Fri Apr 11 15:56:09 2014 UTC ()
explain what's going on, add another kludge for -g


(christos)
diff -r1.351 -r1.352 src/share/mk/bsd.lib.mk

cvs diff -r1.351 -r1.352 src/share/mk/bsd.lib.mk (expand / switch to unified diff)

--- src/share/mk/bsd.lib.mk 2014/04/09 19:23:09 1.351
+++ src/share/mk/bsd.lib.mk 2014/04/11 15:56:09 1.352
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: bsd.lib.mk,v 1.351 2014/04/09 19:23:09 christos Exp $ 1# $NetBSD: bsd.lib.mk,v 1.352 2014/04/11 15:56:09 christos Exp $
2# @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 2# @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94
3 3
4.include <bsd.init.mk> 4.include <bsd.init.mk>
5.include <bsd.shlib.mk> 5.include <bsd.shlib.mk>
6.include <bsd.gcc.mk> 6.include <bsd.gcc.mk>
7# Pull in <bsd.sys.mk> here so we can override its .c.o rule 7# Pull in <bsd.sys.mk> here so we can override its .c.o rule
8.include <bsd.sys.mk> 8.include <bsd.sys.mk>
9 9
10LIBISMODULE?= no 10LIBISMODULE?= no
11LIBISPRIVATE?= no 11LIBISPRIVATE?= no
12LIBISCXX?= no 12LIBISCXX?= no
13 13
14.if ${LIBISMODULE} != "no" 14.if ${LIBISMODULE} != "no"
@@ -612,46 +612,52 @@ LIBCC:= ${CC} @@ -612,46 +612,52 @@ LIBCC:= ${CC}
612.endif 612.endif
613 613
614_LDADD.${_LIB}= ${LDADD} ${LDADD.${_LIB}} 614_LDADD.${_LIB}= ${LDADD} ${LDADD.${_LIB}}
615_LDFLAGS.${_LIB}= ${LDFLAGS} ${LDFLAGS.${_LIB}} 615_LDFLAGS.${_LIB}= ${LDFLAGS} ${LDFLAGS.${_LIB}}
616 616
617${_LIB.so.full}: ${SOLIB} ${DPADD} ${DPLIBC} \ 617${_LIB.so.full}: ${SOLIB} ${DPADD} ${DPLIBC} \
618 ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} 618 ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE}
619 ${_MKTARGET_BUILD} 619 ${_MKTARGET_BUILD}
620 rm -f ${.TARGET} 620 rm -f ${.TARGET}
621 ${LIBCC} ${LDLIBC} -shared ${SHLIB_SHFLAGS} \ 621 ${LIBCC} ${LDLIBC} -shared ${SHLIB_SHFLAGS} \
622 ${_LDFLAGS.${_LIB}} -o ${.TARGET} ${_LIBLDOPTS} \ 622 ${_LDFLAGS.${_LIB}} -o ${.TARGET} ${_LIBLDOPTS} \
623 -Wl,--whole-archive ${SOLIB} \ 623 -Wl,--whole-archive ${SOLIB} \
624 -Wl,--no-whole-archive ${_LDADD.${_LIB}} 624 -Wl,--no-whole-archive ${_LDADD.${_LIB}}
625.if !defined(_LIB.so.debug) 625# XXX[1]: When the arm linker bug where -Wl,-x eats $a,$d,$t from shared
 626# libraries remove the following conditional and put this back in the linker
 627# line. For now we delay stripping symbols until the debug split step or skip
 628# it alltogether if we are using -g
 629.if !defined(_LIB.so.debug) && !empty(CFLAGS:M*-g*)
626 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET} 630 ${OBJCOPY} ${OBJCOPYLIBFLAGS} ${.TARGET}
627.endif 631.endif
628# We don't use INSTALL_SYMLINK here because this is just 632# We don't use INSTALL_SYMLINK here because this is just
629# happening inside the build directory/objdir. XXX Why does 633# happening inside the build directory/objdir. XXX Why does
630# this spend so much effort on libraries that aren't live??? XXX 634# this spend so much effort on libraries that aren't live??? XXX
631.if defined(SHLIB_FULLVERSION) && defined(SHLIB_MAJOR) && \ 635.if defined(SHLIB_FULLVERSION) && defined(SHLIB_MAJOR) && \
632 "${SHLIB_FULLVERSION}" != "${SHLIB_MAJOR}" 636 "${SHLIB_FULLVERSION}" != "${SHLIB_MAJOR}"
633 ${HOST_LN} -sf ${_LIB.so.full} ${_LIB.so.major}.tmp 637 ${HOST_LN} -sf ${_LIB.so.full} ${_LIB.so.major}.tmp
634 mv -f ${_LIB.so.major}.tmp ${_LIB.so.major} 638 mv -f ${_LIB.so.major}.tmp ${_LIB.so.major}
635.endif 639.endif
636 ${HOST_LN} -sf ${_LIB.so.full} ${_LIB.so}.tmp 640 ${HOST_LN} -sf ${_LIB.so.full} ${_LIB.so}.tmp
637 mv -f ${_LIB.so}.tmp ${_LIB.so} 641 mv -f ${_LIB.so}.tmp ${_LIB.so}
638.if ${MKSTRIPIDENT} != "no" 642.if ${MKSTRIPIDENT} != "no"
639 ${OBJCOPY} -R .ident ${.TARGET} 643 ${OBJCOPY} -R .ident ${.TARGET}
640.endif 644.endif
641 645
642.if defined(_LIB.so.debug) 646.if defined(_LIB.so.debug)
643${_LIB.so.debug}: ${_LIB.so.full} 647${_LIB.so.debug}: ${_LIB.so.full}
644 ${_MKTARGET_CREATE} 648 ${_MKTARGET_CREATE}
 649# XXX[2]: OBJCOPYLIBFLAGS is used to strip the symbols because it was not
 650# done above.
645 ( ${OBJCOPY} --only-keep-debug ${_LIB.so.full} ${_LIB.so.debug} \ 651 ( ${OBJCOPY} --only-keep-debug ${_LIB.so.full} ${_LIB.so.debug} \
646 && ${OBJCOPY} ${OBJCOPYLIBFLAGS} --strip-debug -p -R .gnu_debuglink \ 652 && ${OBJCOPY} ${OBJCOPYLIBFLAGS} --strip-debug -p -R .gnu_debuglink \
647 --add-gnu-debuglink=${_LIB.so.debug} ${_LIB.so.full} \ 653 --add-gnu-debuglink=${_LIB.so.debug} ${_LIB.so.full} \
648 ) || (rm -f ${.TARGET}; false) 654 ) || (rm -f ${.TARGET}; false)
649.endif 655.endif
650 656
651.if !empty(LOBJS) # { 657.if !empty(LOBJS) # {
652LLIBS?= -lc 658LLIBS?= -lc
653${_LIB.ln}: ${LOBJS} 659${_LIB.ln}: ${LOBJS}
654 ${_MKTARGET_COMPILE} 660 ${_MKTARGET_COMPILE}
655 rm -f ${.TARGET} 661 rm -f ${.TARGET}
656.if defined(DESTDIR) 662.if defined(DESTDIR)
657 ${LINT} -C${LIB} ${.ALLSRC} -L${DESTDIR}/usr/libdata ${LLIBS} 663 ${LINT} -C${LIB} ${.ALLSRC} -L${DESTDIR}/usr/libdata ${LLIBS}