ghs: fix the UsageFault:INVSTATE error triggered by exception_common

when we build with greenhills compiler, if the exception_common function
is put into a separate section: ".text.exception_common", then the
address of exception_common function is an even number, for example "0x16a6c",
in this case, it will trigger the UsageFaults:INVSTATE error.
The reason for this error is that in the GHS compiler, a section declared
through the ".section" directive must specify at least the "a" attribute.
Otherwise, this section will not be linked into the final file, and this
is why the address of exception_common function is invalid.
The following is the official explanation in the GHS compiler documentation:
"The reason for this error is that in the GHS compiler, a section
declared through the .section directive must specify at least the "a"
attribute. Otherwise, this section will not be linked into the final
file. The following is the official explanation in the documentation:
"Sections that are intended be part of the final linked output should
have at least the `a` attribute"
and for GHS compiler, the .text section is recommended specify the
attribute of `ax`.

Signed-off-by: guoshichao <guoshichao@xiaomi.com>
This commit is contained in:
guoshichao
2025-03-18 16:48:25 +08:00
committed by Xiang Xiao
parent da43a2e53b
commit ba63a4d234
23 changed files with 32 additions and 32 deletions
+1 -1
View File
@@ -136,7 +136,7 @@
*/
.text
.section .text.memchr
.section .text.memchr, "ax"
.thumb_func
.align 4
.p2align 4,,15
+1 -1
View File
@@ -94,7 +94,7 @@
.syntax unified
.text
.section .text.memcpy
.section .text.memcpy, "ax"
.align 2
.global ARCH_LIBCFUN(memcpy)
.thumb
+1 -1
View File
@@ -72,7 +72,7 @@
.macro def_fn f p2align=0
.text
.section .text.strcmp
.section .text.strcmp, "ax"
.p2align \p2align
.global \f
.type \f, %function
+1 -1
View File
@@ -60,7 +60,7 @@
.syntax unified
.text
.section .text.strcpy
.section .text.strcpy, "ax"
.align 2
.global ARCH_LIBCFUN(strcpy)
.thumb
+1 -1
View File
@@ -70,7 +70,7 @@
.macro def_fn f p2align=0
.text
.section .text.strlen
.section .text.strlen, "ax"
.p2align \p2align
.global \f
.type \f, %function