Sat Jan 11 00:18:15 2014 UTC ()
Using ${LD} -x screws up BE arm.  Use ${OBJCOPY} ${OBJCOPYLIBFLAGS} instead
so the $a/$t/$d symbols are preserved.


(matt)
diff -r1.23 -r1.24 src/lib/csu/common/Makefile.inc

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

--- src/lib/csu/common/Makefile.inc 2013/11/17 11:16:09 1.23
+++ src/lib/csu/common/Makefile.inc 2014/01/11 00:18:15 1.24
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: Makefile.inc,v 1.23 2013/11/17 11:16:09 martin Exp $ 1# $NetBSD: Makefile.inc,v 1.24 2014/01/11 00:18:15 matt 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
@@ -32,88 +32,90 @@ OBJS += sparc_mcmedlow.o sparc_mcmedmid. @@ -32,88 +32,90 @@ OBJS += sparc_mcmedlow.o sparc_mcmedmid.
32.endif 32.endif
33 33
34realall: ${OBJS} 34realall: ${OBJS}
35 35
36.if exists(${ARCHDIR}/crtbegin.S) 36.if exists(${ARCHDIR}/crtbegin.S)
37crtbegin.o: crtbegin.S 37crtbegin.o: crtbegin.S
38 ${_MKTARGET_COMPILE} 38 ${_MKTARGET_COMPILE}
39 ${COMPILE.S} ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o 39 ${COMPILE.S} ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o
40.else 40.else
41crtbegin.o: crtbegin.c crtbegin.h 41crtbegin.o: crtbegin.c crtbegin.h
42 ${_MKTARGET_COMPILE} 42 ${_MKTARGET_COMPILE}
43 ${COMPILE.c} ${CFLAGS.crtbegin.c} ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o 43 ${COMPILE.c} ${CFLAGS.crtbegin.c} ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o
44.endif 44.endif
45 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 45 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET}
46 rm -f ${.TARGET}.o 46 rm -f ${.TARGET}.o
47.if ${MKSTRIPIDENT} != "no" 47.if ${MKSTRIPIDENT} != "no"
48 ${OBJCOPY} -R .ident ${.TARGET} 48 ${OBJCOPY} -R .ident ${.TARGET}
49.endif 49.endif
50 50
51.if exists(${ARCHDIR}/crtbegin.S) 51.if exists(${ARCHDIR}/crtbegin.S)
52crtbeginS.o: crtbegin.S 52crtbeginS.o: crtbegin.S
53 ${_MKTARGET_COMPILE} 53 ${_MKTARGET_COMPILE}
54 ${COMPILE.S} ${PICFLAGS} -DSHARED ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o 54 ${COMPILE.S} ${PICFLAGS} -DSHARED ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o
55.else 55.else
56crtbeginS.o: crtbegin.c crtbegin.h 56crtbeginS.o: crtbegin.c crtbegin.h
57 ${_MKTARGET_COMPILE} 57 ${_MKTARGET_COMPILE}
58 ${COMPILE.c} ${PICFLAGS} -DSHARED ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o 58 ${COMPILE.c} ${PICFLAGS} -DSHARED ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o
59.endif 59.endif
60 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 60 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET}
61 rm -f ${.TARGET}.o 61 rm -f ${.TARGET}.o
62.if ${MKSTRIPIDENT} != "no" 62.if ${MKSTRIPIDENT} != "no"
63 ${OBJCOPY} -R .ident ${.TARGET} 63 ${OBJCOPY} -R .ident ${.TARGET}
64.endif 64.endif
65 65
66crtend.o: crtend.S 66crtend.o: crtend.S
67 ${_MKTARGET_COMPILE} 67 ${_MKTARGET_COMPILE}
68 ${COMPILE.S} ${ARCHDIR}/crtend.S -o ${.TARGET}.o 68 ${COMPILE.S} ${ARCHDIR}/crtend.S -o ${.TARGET}.o
69 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 69 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET}
70 rm -f ${.TARGET}.o 70 rm -f ${.TARGET}.o
71.if ${MKSTRIPIDENT} != "no" 71.if ${MKSTRIPIDENT} != "no"
72 ${OBJCOPY} -R .ident ${.TARGET} 72 ${OBJCOPY} -R .ident ${.TARGET}
73.endif 73.endif
74 74
75.if ${MKPIC} != "no" 75.if ${MKPIC} != "no"
76MY_PICFLAGS= ${PICFLAGS} 76MY_PICFLAGS= ${PICFLAGS}
77.else 77.else
78MY_PICFLAGS= 78MY_PICFLAGS=
79.endif 79.endif
80 80
81crt0.o: crt0.S crt0-common.c 81crt0.o: crt0.S crt0-common.c
82 ${_MKTARGET_COMPILE} 82 ${_MKTARGET_COMPILE}
83 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 83 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o
84 ${COMPILE.c} ${MY_PICFLAGS} ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 84 ${COMPILE.c} ${MY_PICFLAGS} ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o
85 ${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o 85 ${LD} -r -o ${.TARGET}.o ${.TARGET}.S.o ${.TARGET}.c.o
86 rm -f ${.TARGET}.S.o ${.TARGET}.c.o 86 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET}
 87 rm -f ${.TARGET}.S.o ${.TARGET}.c.o ${.TARGET}.o
87.if ${MKSTRIPIDENT} != "no" 88.if ${MKSTRIPIDENT} != "no"
88 ${OBJCOPY} -R .ident ${.TARGET} 89 ${OBJCOPY} -R .ident ${.TARGET}
89.endif 90.endif
90 91
91gcrt0.o: crt0.S crt0-common.c 92gcrt0.o: crt0.S crt0-common.c
92 ${_MKTARGET_COMPILE} 93 ${_MKTARGET_COMPILE}
93 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o 94 ${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o
94 ${COMPILE.c} ${MY_PICFLAGS} -DMCRT0 ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o 95 ${COMPILE.c} ${MY_PICFLAGS} -DMCRT0 ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o
95 ${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o 96 ${LD} -r -o ${.TARGET}.o ${.TARGET}.S.o ${.TARGET}.c.o
96 rm -f ${.TARGET}.S.o ${.TARGET}.c.o 97 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET}
 98 rm -f ${.TARGET}.S.o ${.TARGET}.c.o ${.TARGET}.o
97.if ${MKSTRIPIDENT} != "no" 99.if ${MKSTRIPIDENT} != "no"
98 ${OBJCOPY} -R .ident ${.TARGET} 100 ${OBJCOPY} -R .ident ${.TARGET}
99.endif 101.endif
100 102
101.if ${MACHINE_ARCH} == "alpha" 103.if ${MACHINE_ARCH} == "alpha"
102# can't do this in Makefile.inc otherwise it will before realall: 104# can't do this in Makefile.inc otherwise it will before realall:
103crtfm.o: crtfm.c 105crtfm.o: crtfm.c
104 ${_MKTARGET_COMPILE} 106 ${_MKTARGET_COMPILE}
105 ${COMPILE.c} ${.ALLSRC} -o ${.TARGET}.o 107 ${COMPILE.c} ${.ALLSRC} -o ${.TARGET}.o
106 ${LD} -x -r -o ${.TARGET} ${.TARGET}.o 108 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}.o ${.TARGET}
107 rm -f ${.TARGET}.o 109 rm -f ${.TARGET}.o
108.endif 110.endif
109 111
110GENASSYM_CONF= ${COMMON_DIR}/sysident_assym.cf  112GENASSYM_CONF= ${COMMON_DIR}/sysident_assym.cf
111sysident_assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS} ${NETBSDSRCDIR}/sys/sys/param.h 113sysident_assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS} ${NETBSDSRCDIR}/sys/sys/param.h
112 ${_MKTARGET_CREATE} 114 ${_MKTARGET_CREATE}
113 cat ${COMMON_DIR}/sysident_assym.cf | \ 115 cat ${COMMON_DIR}/sysident_assym.cf | \
114 ${TOOL_GENASSYM} -- ${CC} ${CFLAGS:N-Wa,*} ${CPPFLAGS} ${PROF} \ 116 ${TOOL_GENASSYM} -- ${CC} ${CFLAGS:N-Wa,*} ${CPPFLAGS} ${PROF} \
115 > sysident_assym.h.tmp && \ 117 > sysident_assym.h.tmp && \
116 mv -f sysident_assym.h.tmp sysident_assym.h 118 mv -f sysident_assym.h.tmp sysident_assym.h
117 119
118CLEANFILES+= sysident_assym.h 120CLEANFILES+= sysident_assym.h
119 121