svn commit: r270882 - in head/lib/libc/arm: gen string sys

Ian Lepore ian at FreeBSD.org
Sun Aug 31 17:21:56 UTC 2014


Author: ian
Date: Sun Aug 31 17:21:51 2014
New Revision: 270882
URL: http://svnweb.freebsd.org/changeset/base/270882

Log:
  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.
  
  Reported by:	bapt
  Reviewed by:	imp

Modified:
  head/lib/libc/arm/gen/__aeabi_read_tp.S
  head/lib/libc/arm/gen/_ctx_start.S
  head/lib/libc/arm/gen/_setjmp.S
  head/lib/libc/arm/gen/alloca.S
  head/lib/libc/arm/gen/divsi3.S
  head/lib/libc/arm/gen/setjmp.S
  head/lib/libc/arm/gen/sigsetjmp.S
  head/lib/libc/arm/string/ffs.S
  head/lib/libc/arm/string/memcmp.S
  head/lib/libc/arm/string/memcpy_arm.S
  head/lib/libc/arm/string/memcpy_xscale.S
  head/lib/libc/arm/string/memmove.S
  head/lib/libc/arm/string/memset.S
  head/lib/libc/arm/string/strcmp.S
  head/lib/libc/arm/string/strlen.S
  head/lib/libc/arm/string/strncmp.S
  head/lib/libc/arm/sys/Ovfork.S
  head/lib/libc/arm/sys/brk.S
  head/lib/libc/arm/sys/cerror.S
  head/lib/libc/arm/sys/pipe.S
  head/lib/libc/arm/sys/ptrace.S
  head/lib/libc/arm/sys/sbrk.S

Modified: head/lib/libc/arm/gen/__aeabi_read_tp.S
==============================================================================
--- head/lib/libc/arm/gen/__aeabi_read_tp.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/gen/__aeabi_read_tp.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -38,6 +38,7 @@ ENTRY(__aeabi_read_tp)
 	mrc	p15, 0, r0, c13, c0, 3
 #endif
 	RET
+END(__aeabi_read_tp)
 
 #ifdef ARM_TP_ADDRESS
 .Larm_tp_address:

Modified: head/lib/libc/arm/gen/_ctx_start.S
==============================================================================
--- head/lib/libc/arm/gen/_ctx_start.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/gen/_ctx_start.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -7,3 +7,4 @@ ENTRY(_ctx_start)
 	mov	r0, r5
 	bl	_C_LABEL(ctx_done)
 	bl	_C_LABEL(abort)
+END(_ctx_start)

Modified: head/lib/libc/arm/gen/_setjmp.S
==============================================================================
--- head/lib/libc/arm/gen/_setjmp.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/gen/_setjmp.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -89,6 +89,7 @@ ENTRY(_setjmp)
 
         mov	r0, #0x00000000
 	RET
+END(_setjmp)
 
 .L_setjmp_magic:
 	.word	_JB_MAGIC__SETJMP
@@ -140,3 +141,4 @@ botch:
 #else
 	b	.
 #endif
+END(_longjmp)

Modified: head/lib/libc/arm/gen/alloca.S
==============================================================================
--- head/lib/libc/arm/gen/alloca.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/gen/alloca.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -43,3 +43,4 @@ ENTRY(alloca)
 	sub	sp, sp, r0		/* Adjust the stack pointer */
 	mov	r0, sp			/* r0 = base of new space */
 	RET
+END(alloca)

Modified: head/lib/libc/arm/gen/divsi3.S
==============================================================================
--- head/lib/libc/arm/gen/divsi3.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/gen/divsi3.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -29,6 +29,7 @@ ENTRY(__umodsi3)
 	add	sp, sp, #4	/* unalign stack */
 	mov	r0, r1
 	ldmfd	sp!, {pc}
+END(__umodsi3)
 
 ENTRY(__modsi3)
 	stmfd	sp!, {lr}
@@ -48,6 +49,7 @@ ENTRY(__modsi3)
 	mvn	r0, #0
 #endif
 	RET
+END(__modsi3)
 
 ENTRY(__udivsi3)
 .L_udivide:				/* r0 = r0 / r1; r1 = r0 % r1 */
@@ -70,6 +72,7 @@ ENTRY(__udivsi3)
 	mov	r0, r1
 	mov	r1, #0
 	RET
+END(__udivsi3)
 
 ENTRY(__divsi3)
 .L_divide:				/* r0 = r0 / r1; r1 = r0 % r1 */
@@ -385,3 +388,4 @@ ENTRY(__divsi3)
 	addhs	r3, r3, r2
 	mov	r0, r3
 	RET
+END(__divsi3)

Modified: head/lib/libc/arm/gen/setjmp.S
==============================================================================
--- head/lib/libc/arm/gen/setjmp.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/gen/setjmp.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -101,7 +101,7 @@ ENTRY(setjmp)
 .Lfpu_present:
 	.word	PIC_SYM(_libc_arm_fpu_present, GOTOFF)
 #endif /* __ARM_EABI__ */
-
+END(setjmp)
 
 .weak _C_LABEL(longjmp)
 .set _C_LABEL(longjmp), _C_LABEL(__longjmp)
@@ -150,3 +150,4 @@ ENTRY(__longjmp)
 	bl	PIC_SYM(_C_LABEL(longjmperror), PLT)
 	bl	PIC_SYM(_C_LABEL(abort), PLT)
 	b	. - 8		/* Cannot get here */
+END(__longjmp)

Modified: head/lib/libc/arm/gen/sigsetjmp.S
==============================================================================
--- head/lib/libc/arm/gen/sigsetjmp.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/gen/sigsetjmp.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -51,6 +51,7 @@ ENTRY(sigsetjmp)
 	teq	r1, #0
 	beq	PIC_SYM(_C_LABEL(_setjmp), PLT)
 	b	PIC_SYM(_C_LABEL(setjmp), PLT)
+END(sigsetjmp)
 
 .L_setjmp_magic:
 	.word	_JB_MAGIC__SETJMP
@@ -64,3 +65,4 @@ ENTRY(siglongjmp)
 	teq	r2, r3				/* magic correct? */
 	beq	PIC_SYM(_C_LABEL(_longjmp), PLT)
 	b	PIC_SYM(_C_LABEL(longjmp), PLT)
+END(siglongjmp)

Modified: head/lib/libc/arm/string/ffs.S
==============================================================================
--- head/lib/libc/arm/string/ffs.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/string/ffs.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -80,3 +80,4 @@ ENTRY(ffs)
 	rsbne	r0, r0, #32
 	RET
 #endif
+END(ffs)

Modified: head/lib/libc/arm/string/memcmp.S
==============================================================================
--- head/lib/libc/arm/string/memcmp.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/string/memcmp.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -178,3 +178,4 @@ ENTRY(memcmp)
 	sub	r0, r3, r2		/* r0 = b1#5 - b2#5 */
 	RET
 #endif
+END(memcmp)

Modified: head/lib/libc/arm/string/memcpy_arm.S
==============================================================================
--- head/lib/libc/arm/string/memcpy_arm.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/string/memcpy_arm.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -330,3 +330,4 @@ ENTRY(memcpy)
 .Lmemcpy_srcul3l4:
 	sub	r1, r1, #1
 	b	.Lmemcpy_l4
+END(memcpy)

Modified: head/lib/libc/arm/string/memcpy_xscale.S
==============================================================================
--- head/lib/libc/arm/string/memcpy_xscale.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/string/memcpy_xscale.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -1781,3 +1781,4 @@ ENTRY(memcpy)
 	strb	r1, [r0, #0x0b]
 	bx	lr
 #endif	/* !_STANDALONE */
+END(memcpy)

Modified: head/lib/libc/arm/string/memmove.S
==============================================================================
--- head/lib/libc/arm/string/memmove.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/string/memmove.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -580,3 +580,8 @@ ENTRY(bcopy)
 .Lmemmove_bsrcul1l4:
 	add	r1, r1, #1
 	b	.Lmemmove_bl4
+#ifndef _BCOPY
+END(memmove)
+#else
+END(bcopy)
+#endif

Modified: head/lib/libc/arm/string/memset.S
==============================================================================
--- head/lib/libc/arm/string/memset.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/string/memset.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -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

Modified: head/lib/libc/arm/string/strcmp.S
==============================================================================
--- head/lib/libc/arm/string/strcmp.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/string/strcmp.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -41,3 +41,4 @@ ENTRY(strcmp)
 	beq	1b
 	sub	r0, r2, r3
 	RET
+END(strcmp)

Modified: head/lib/libc/arm/string/strlen.S
==============================================================================
--- head/lib/libc/arm/string/strlen.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/string/strlen.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -76,3 +76,4 @@ ENTRY(strlen)
 .Lexit:
 	mov	r0, r1
 	RET
+END(strlen)

Modified: head/lib/libc/arm/string/strncmp.S
==============================================================================
--- head/lib/libc/arm/string/strncmp.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/string/strncmp.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -52,3 +52,4 @@ ENTRY(strncmp)
 	beq	1b
 	sub	r0, r2, r3
 	RET
+END(strncmp)

Modified: head/lib/libc/arm/sys/Ovfork.S
==============================================================================
--- head/lib/libc/arm/sys/Ovfork.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/sys/Ovfork.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -52,3 +52,4 @@ ENTRY(vfork)
 	sub	r1, r1, #1	/* r1 == 0xffffffff if parent, 0 if child */
 	and	r0, r0, r1	/* r0 == 0 if child, else unchanged */
 	mov	r15, r2
+END(vfork)

Modified: head/lib/libc/arm/sys/brk.S
==============================================================================
--- head/lib/libc/arm/sys/brk.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/sys/brk.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -98,3 +98,4 @@ ENTRY(_brk)
 	.word	PIC_SYM(_C_LABEL(minbrk), GOT)
 .Lcurbrk:
 	.word	PIC_SYM(CURBRK, GOT)
+END(_brk)

Modified: head/lib/libc/arm/sys/cerror.S
==============================================================================
--- head/lib/libc/arm/sys/cerror.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/sys/cerror.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -46,3 +46,4 @@ ASENTRY(CERROR)
 	mvn	r0, #0x00000000
 	mvn	r1, #0x00000000
 	ldmfd	sp!, {r4, pc}
+END(CERROR)

Modified: head/lib/libc/arm/sys/pipe.S
==============================================================================
--- head/lib/libc/arm/sys/pipe.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/sys/pipe.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -48,3 +48,4 @@ ENTRY(_pipe)
 	str	r1, [r2, #0x0004]
 	mov	r0, #0x00000000
 	RET
+END(_pipe)

Modified: head/lib/libc/arm/sys/ptrace.S
==============================================================================
--- head/lib/libc/arm/sys/ptrace.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/sys/ptrace.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -46,3 +46,4 @@ ENTRY(ptrace)
 	SYSTRAP(ptrace)
 	bcs	PIC_SYM(CERROR, PLT)
 	RET
+END(ptrace)

Modified: head/lib/libc/arm/sys/sbrk.S
==============================================================================
--- head/lib/libc/arm/sys/sbrk.S	Sun Aug 31 16:37:41 2014	(r270881)
+++ head/lib/libc/arm/sys/sbrk.S	Sun Aug 31 17:21:51 2014	(r270882)
@@ -86,3 +86,4 @@ ENTRY(_sbrk)
 #endif
 .Lcurbrk:
 	.word	PIC_SYM(CURBRK, GOT)
+END(_sbrk)


More information about the svn-src-head mailing list