diff options
author | ian <ian@FreeBSD.org> | 2014-09-09 22:24:01 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2014-09-09 22:24:01 +0000 |
commit | 8a1958876831eb70c472ced915114915eafb844a (patch) | |
tree | e54bc1142cf9ebc5791f625d6b51d3604bdf427e /lib/libc/arm/string | |
parent | 30e366f556dde8950782845d6a3bdbc2c5a84b6f (diff) | |
download | FreeBSD-src-8a1958876831eb70c472ced915114915eafb844a.zip FreeBSD-src-8a1958876831eb70c472ced915114915eafb844a.tar.gz |
MFC r270882, r270930:
In ARM asm code, ensure that every ENTRY(foo) has a matching END(foo).
The EABI unwind info requires a .fnend for every .fnstart, and newer
binutils will complain about seeing two .fnstart in a row. This change
allows newer tools to compile our code.
Do not generate unwind info in asm functions if _STANDALONE is defined.
The .fnend op causes the assembler to emit RELOC references to unwind
support functions that don't exist in libstand.
Approved by: re(gjb)
Diffstat (limited to 'lib/libc/arm/string')
-rw-r--r-- | lib/libc/arm/string/ffs.S | 1 | ||||
-rw-r--r-- | lib/libc/arm/string/memcmp.S | 1 | ||||
-rw-r--r-- | lib/libc/arm/string/memcpy_arm.S | 1 | ||||
-rw-r--r-- | lib/libc/arm/string/memcpy_xscale.S | 1 | ||||
-rw-r--r-- | lib/libc/arm/string/memmove.S | 5 | ||||
-rw-r--r-- | lib/libc/arm/string/memset.S | 5 | ||||
-rw-r--r-- | lib/libc/arm/string/strcmp.S | 1 | ||||
-rw-r--r-- | lib/libc/arm/string/strlen.S | 1 | ||||
-rw-r--r-- | lib/libc/arm/string/strncmp.S | 1 |
9 files changed, 17 insertions, 0 deletions
diff --git a/lib/libc/arm/string/ffs.S b/lib/libc/arm/string/ffs.S index af4e118..d3684ed 100644 --- a/lib/libc/arm/string/ffs.S +++ b/lib/libc/arm/string/ffs.S @@ -80,3 +80,4 @@ ENTRY(ffs) rsbne r0, r0, #32 RET #endif +END(ffs) diff --git a/lib/libc/arm/string/memcmp.S b/lib/libc/arm/string/memcmp.S index a81c960..63a00ef 100644 --- a/lib/libc/arm/string/memcmp.S +++ b/lib/libc/arm/string/memcmp.S @@ -178,3 +178,4 @@ ENTRY(memcmp) sub r0, r3, r2 /* r0 = b1#5 - b2#5 */ RET #endif +END(memcmp) diff --git a/lib/libc/arm/string/memcpy_arm.S b/lib/libc/arm/string/memcpy_arm.S index b84a32e..eff1eb0 100644 --- a/lib/libc/arm/string/memcpy_arm.S +++ b/lib/libc/arm/string/memcpy_arm.S @@ -330,3 +330,4 @@ ENTRY(memcpy) .Lmemcpy_srcul3l4: sub r1, r1, #1 b .Lmemcpy_l4 +END(memcpy) diff --git a/lib/libc/arm/string/memcpy_xscale.S b/lib/libc/arm/string/memcpy_xscale.S index 02cca5e..1f48cd9 100644 --- a/lib/libc/arm/string/memcpy_xscale.S +++ b/lib/libc/arm/string/memcpy_xscale.S @@ -1781,3 +1781,4 @@ ENTRY(memcpy) strb r1, [r0, #0x0b] bx lr #endif /* !_STANDALONE */ +END(memcpy) diff --git a/lib/libc/arm/string/memmove.S b/lib/libc/arm/string/memmove.S index 8b8baaf..75a2744 100644 --- a/lib/libc/arm/string/memmove.S +++ b/lib/libc/arm/string/memmove.S @@ -580,3 +580,8 @@ ENTRY(bcopy) .Lmemmove_bsrcul1l4: add r1, r1, #1 b .Lmemmove_bl4 +#ifndef _BCOPY +END(memmove) +#else +END(bcopy) +#endif diff --git a/lib/libc/arm/string/memset.S b/lib/libc/arm/string/memset.S index 5387aab..458f8f7 100644 --- a/lib/libc/arm/string/memset.S +++ b/lib/libc/arm/string/memset.S @@ -234,3 +234,8 @@ ENTRY(memset) strgeb r3, [ip], #0x01 /* Set another byte */ strgtb r3, [ip] /* and a third */ RET /* Exit */ +#ifdef _BZERO +END(bzero) +#else +END(memset) +#endif diff --git a/lib/libc/arm/string/strcmp.S b/lib/libc/arm/string/strcmp.S index e5cba7d..3dd7453 100644 --- a/lib/libc/arm/string/strcmp.S +++ b/lib/libc/arm/string/strcmp.S @@ -41,3 +41,4 @@ ENTRY(strcmp) beq 1b sub r0, r2, r3 RET +END(strcmp) diff --git a/lib/libc/arm/string/strlen.S b/lib/libc/arm/string/strlen.S index 378257d..3d7726f 100644 --- a/lib/libc/arm/string/strlen.S +++ b/lib/libc/arm/string/strlen.S @@ -76,3 +76,4 @@ ENTRY(strlen) .Lexit: mov r0, r1 RET +END(strlen) diff --git a/lib/libc/arm/string/strncmp.S b/lib/libc/arm/string/strncmp.S index fce0159..ac59deb 100644 --- a/lib/libc/arm/string/strncmp.S +++ b/lib/libc/arm/string/strncmp.S @@ -52,3 +52,4 @@ ENTRY(strncmp) beq 1b sub r0, r2, r3 RET +END(strncmp) |