ChiTran
(Chi Tran)
April 11, 2022, 2:25pm
1
Hi,
I could not compile the assembly source of Xtensa port with --text-section-literals. I read somewhere they say that I have to add .literal_position directive.
I fixed it in my own work. Could you please support these changes in the official repository?
Thanks,
Chi Tran
archigup
(Archit Gupta)
April 11, 2022, 4:24pm
2
Hi, could you point out which repository you are using?
Additionally, do you have a patch with the changes you made to support this flag?
Thanks
ChiTran
(Chi Tran)
April 11, 2022, 5:29pm
3
Hi Archit,
I’m using the public github repository, branch main.
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
My patch is following:
diff --git a/portable/ThirdParty/XCC/Xtensa/xtensa_context.S b/portable/ThirdParty/XCC/Xtensa/xtensa_context.S
index 55ce8e0..a6545b9 100644
--- a/portable/ThirdParty/XCC/Xtensa/xtensa_context.S
+++ b/portable/ThirdParty/XCC/Xtensa/xtensa_context.S
@@ -62,6 +62,7 @@ NOERROR: .error "C preprocessor needed for this file: make sure its filename\
#endif
.text
+ .literal_position
/*******************************************************************************
diff --git a/portable/ThirdParty/XCC/Xtensa/xtensa_vectors.S b/portable/ThirdParty/XCC/Xtensa/xtensa_vectors.S
index bf5916c..6cb8f37 100644
--- a/portable/ThirdParty/XCC/Xtensa/xtensa_vectors.S
+++ b/portable/ThirdParty/XCC/Xtensa/xtensa_vectors.S
@@ -306,6 +306,7 @@
.global _xt_panic
.type _xt_panic,@function
.align 4
+ .literal_position
_xt_panic:
#ifdef XT_SIMULATOR
@@ -386,6 +387,7 @@ Debug Exception.
.section .DebugExceptionVector.text, "ax"
.global _DebugExceptionVector
.align 4
+ .literal_position
_DebugExceptionVector:
@@ -424,6 +426,7 @@ Double exceptions are not a normal occurrence. They indicate a bug of some kind.
.section .DoubleExceptionVector.text, "ax"
.global _DoubleExceptionVector
.align 4
+ .literal_position
_DoubleExceptionVector:
@@ -447,6 +450,7 @@ Kernel Exception (including Level 1 Interrupt from kernel mode).
.section .KernelExceptionVector.text, "ax"
.global _KernelExceptionVector
.align 4
+ .literal_position
_KernelExceptionVector:
@@ -478,6 +482,7 @@ User Exception (including Level 1 Interrupt from user mode).
.global _UserExceptionVector
.type _UserExceptionVector,@function
.align 4
+ .literal_position
_UserExceptionVector:
@@ -1036,6 +1041,8 @@ _xt_lowint1:
.global _Level2Vector
.type _Level2Vector,@function
.align 4
+ .literal_position
+
_Level2Vector:
wsr a0, EXCSAVE_2 /* preserve a0 */
call0 _xt_medint2 /* load interrupt handler */
@@ -1107,6 +1114,8 @@ _xt_medint2_exit:
.global _Level3Vector
.type _Level3Vector,@function
.align 4
+ .literal_position
+
_Level3Vector:
wsr a0, EXCSAVE_3 /* preserve a0 */
call0 _xt_medint3 /* load interrupt handler */
@@ -1506,6 +1515,8 @@ _xt_highint3:
.global _Level4Vector
.type _Level4Vector,@function
.align 4
+ .literal_position
+
_Level4Vector:
wsr a0, EXCSAVE_4 /* preserve a0 */
call0 _xt_highint4 /* load interrupt handler */
@@ -1546,6 +1557,8 @@ _xt_highint4:
.global _Level5Vector
.type _Level5Vector,@function
.align 4
+ .literal_position
+
_Level5Vector:
wsr a0, EXCSAVE_5 /* preserve a0 */
call0 _xt_highint5 /* load interrupt handler */
@@ -1626,6 +1639,8 @@ _xt_highint6:
.global _NMIExceptionVector
.type _NMIExceptionVector,@function
.align 4
+ .literal_position
+
_NMIExceptionVector:
wsr a0, EXCSAVE + XCHAL_NMILEVEL _ /* preserve a0 */
call0 _xt_nmi /* load interrupt handler */
Chi
archigup
(Archit Gupta)
April 11, 2022, 10:02pm
4
1 Like