aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2024-06-19 15:48:30 +0000
committerChristophe Lyon <christophe.lyon@linaro.org>2024-06-26 09:02:32 +0000
commitc2091f706c1d6aa9d187d116885de5e8defaa695 (patch)
tree0445b65cfd9af2ad0aba5904ed1cf499d7d1f52f
parent7e3c833592b282355a57dd34459b152e4e078d19 (diff)
downloadnewlib-c2091f706c1d6aa9d187d116885de5e8defaa695.zip
newlib-c2091f706c1d6aa9d187d116885de5e8defaa695.tar.gz
newlib-c2091f706c1d6aa9d187d116885de5e8defaa695.tar.bz2
arm: emit .type %function directive in FUNC_START macro
The linker needs to know whether a symbol is STT_FUNCTION when deciding which farcall stub to emit (if needed), this patch adds this to the FUNC_START macro which is used in crt0.
-rw-r--r--libgloss/arm/crt0.S2
-rw-r--r--libgloss/arm/redboot-crt0.S2
-rw-r--r--newlib/libc/sys/arm/crt0.S2
3 files changed, 6 insertions, 0 deletions
diff --git a/libgloss/arm/crt0.S b/libgloss/arm/crt0.S
index cd1a20d..9ff0e63 100644
--- a/libgloss/arm/crt0.S
+++ b/libgloss/arm/crt0.S
@@ -48,6 +48,7 @@
.thumb
.macro FUNC_START name
.global \name
+ .type \name, %function
.thumb_func
\name:
.endm
@@ -55,6 +56,7 @@
.code 32
.macro FUNC_START name
.global \name
+ .type \name, %function
\name:
.endm
#endif
diff --git a/libgloss/arm/redboot-crt0.S b/libgloss/arm/redboot-crt0.S
index 0e3a9b4..c9f3440 100644
--- a/libgloss/arm/redboot-crt0.S
+++ b/libgloss/arm/redboot-crt0.S
@@ -17,6 +17,7 @@
#ifdef PREFER_THUMB
.macro FUNC_START name
.global \name
+ .type \name, %function
.thumb_func
\name:
.endm
@@ -24,6 +25,7 @@
#else
.macro FUNC_START name
.global \name
+ .type \name, %function
\name:
.endm
.code 32
diff --git a/newlib/libc/sys/arm/crt0.S b/newlib/libc/sys/arm/crt0.S
index 90d5be3..dae0f04 100644
--- a/newlib/libc/sys/arm/crt0.S
+++ b/newlib/libc/sys/arm/crt0.S
@@ -48,6 +48,7 @@
.thumb
.macro FUNC_START name
.global \name
+ .type \name, %function
.thumb_func
\name:
.endm
@@ -55,6 +56,7 @@
.code 32
.macro FUNC_START name
.global \name
+ .type \name, %function
\name:
.endm
#endif