Tue Mar 29 21:23:05 2016 UTC ()
crt0-common.c is miscompiled by gcc 5.3 on evbarm with -O2 so use -O1.  Do
this for all non-x86 arches.


(skrll)
diff -r1.26 -r1.27 src/lib/csu/common/Makefile.inc

cvs diff -r1.26 -r1.27 src/lib/csu/common/Makefile.inc (expand / switch to unified diff)

--- src/lib/csu/common/Makefile.inc 2016/03/27 00:03:06 1.26
+++ src/lib/csu/common/Makefile.inc 2016/03/29 21:23:05 1.27
@@ -1,35 +1,36 @@ @@ -1,35 +1,36 @@
1# $NetBSD: Makefile.inc,v 1.26 2016/03/27 00:03:06 mrg Exp $ 1# $NetBSD: Makefile.inc,v 1.27 2016/03/29 21:23:05 skrll Exp $
2 2
3.include <bsd.own.mk> 3.include <bsd.own.mk>
4 4
5# XXX: FIXME: This is defined in bsd.lib.mk 5# XXX: FIXME: This is defined in bsd.lib.mk
6PICFLAGS ?= -fPIC 6PICFLAGS ?= -fPIC
7 7
8COMMON_DIR:= ${.CURDIR}/common 8COMMON_DIR:= ${.CURDIR}/common
9.PATH: ${COMMON_DIR} 9.PATH: ${COMMON_DIR}
10 10
11CPPFLAGS+= -I${NETBSDSRCDIR}/libexec/ld.elf_so -I${COMMON_DIR} -I. 11CPPFLAGS+= -I${NETBSDSRCDIR}/libexec/ld.elf_so -I${COMMON_DIR} -I.
12 12
13OBJS+= crt0.o gcrt0.o crti.o crtn.o 13OBJS+= crt0.o gcrt0.o crti.o crtn.o
14OBJS+= crtbegin.o crtend.o 14OBJS+= crtbegin.o crtend.o
15 15
16.if ${MKPIC} == "yes" 16.if ${MKPIC} == "yes"
17OBJS+= crtbeginS.o 17OBJS+= crtbeginS.o
18CFLAGS.crtbegin.c+= -fPIE 18CFLAGS.crtbegin.c+= -fPIE
19# XXXGCC5 - GCC 5 miscompiles crtbeginS.c on many platforms. on SPARC it 19# XXXGCC5 - GCC 5 miscompiles crtbeginS.c on many platforms. on SPARC it
20# XXXGCC5 emits "clr %g1; call %g1", which is effectively jumping to zero. 20# XXXGCC5 emits "clr %g1; call %g1", which is effectively jumping to zero.
21. if defined(HAVE_GCC) && ${HAVE_GCC} == 53 && \ 21. if defined(HAVE_GCC) && ${HAVE_GCC} == 53 && \
22 ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH} != "amd64" 22 ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH} != "amd64"
 23CFLAGS.crt0-common.c+= -O1
23CFLAGS.crtbeginS.c+= -O1 24CFLAGS.crtbeginS.c+= -O1
24. endif 25. endif
25.endif 26.endif
26 27
27.if ${MACHINE_ARCH} == "alpha" 28.if ${MACHINE_ARCH} == "alpha"
28OBJS+= crtfm.o 29OBJS+= crtfm.o
29.endif 30.endif
30 31
31.if ${CSU_MACHINE_ARCH} == "sparc64" 32.if ${CSU_MACHINE_ARCH} == "sparc64"
32# create helper objects for the compiler to mark compiler memory models 33# create helper objects for the compiler to mark compiler memory models
33.for m in medlow medmid medany 34.for m in medlow medmid medany
34sparc_mc${m}.o: compident.S sysident_assym.h 35sparc_mc${m}.o: compident.S sysident_assym.h
35 ${CC} ${ASFLAGS} -I. -DCONTENT=\"${m}\\0\\0\" -DCONTENTLENGTH=8 -c \ 36 ${CC} ${ASFLAGS} -I. -DCONTENT=\"${m}\\0\\0\" -DCONTENTLENGTH=8 -c \
@@ -78,27 +79,27 @@ crtend.o: crtend.S @@ -78,27 +79,27 @@ crtend.o: crtend.S
78.if ${MKSTRIPIDENT} != "no" 79.if ${MKSTRIPIDENT} != "no"
79 ${OBJCOPY} -R .ident ${.TARGET} 80 ${OBJCOPY} -R .ident ${.TARGET}
80.endif 81.endif
81 82
82.if ${MKPIC} != "no" 83.if ${MKPIC} != "no"
83MY_PICFLAGS= ${PICFLAGS} 84MY_PICFLAGS= ${PICFLAGS}
84.else 85.else
85MY_PICFLAGS= 86MY_PICFLAGS=
86.endif 87.endif
87 88
88crt0.o: crt0.S crt0-common.c 89crt0.o: crt0.S crt0-common.c
89 ${_MKTARGET_COMPILE} 90 ${_MKTARGET_COMPILE}
90 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 91 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o
91 ${COMPILE.c} ${MY_PICFLAGS} ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 92 ${COMPILE.c} ${CFLAGS.crt0-common.c} ${MY_PICFLAGS} ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o
92 ${LD} -r -o ${.TARGET}.o ${.TARGET}.S.o ${.TARGET}.c.o 93 ${LD} -r -o ${.TARGET}.o ${.TARGET}.S.o ${.TARGET}.c.o
93 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET}  94 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET}
94 rm -f ${.TARGET}.S.o ${.TARGET}.c.o ${.TARGET}.o 95 rm -f ${.TARGET}.S.o ${.TARGET}.c.o ${.TARGET}.o
95.if ${MKSTRIPIDENT} != "no" 96.if ${MKSTRIPIDENT} != "no"
96 ${OBJCOPY} -R .ident ${.TARGET} 97 ${OBJCOPY} -R .ident ${.TARGET}
97.endif 98.endif
98 99
99gcrt0.o: crt0.S crt0-common.c 100gcrt0.o: crt0.S crt0-common.c
100 ${_MKTARGET_COMPILE} 101 ${_MKTARGET_COMPILE}
101 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 102 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o
102 ${COMPILE.c} ${MY_PICFLAGS} -DMCRT0 ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 103 ${COMPILE.c} ${MY_PICFLAGS} -DMCRT0 ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o
103 ${LD} -r -o ${.TARGET}.o ${.TARGET}.S.o ${.TARGET}.c.o 104 ${LD} -r -o ${.TARGET}.o ${.TARGET}.S.o ${.TARGET}.c.o
104 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET}  105 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET}