Module Name: src
Committed By: pooka
Date: Mon Dec 10 20:58:55 UTC 2012
Modified Files:
src/share/mk: bsd.gcc.mk
Log Message:
Deal with crti and crtn not present in some EXTERNAL_TOOLCHAIN's. Also,
handle "missing" crtstuff internally instead of depending on external
intervention.
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/share/mk/bsd.gcc.mk
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/share/mk/bsd.gcc.mk
diff -u src/share/mk/bsd.gcc.mk:1.7 src/share/mk/bsd.gcc.mk:1.8
--- src/share/mk/bsd.gcc.mk:1.7 Wed Nov 21 20:30:01 2012
+++ src/share/mk/bsd.gcc.mk Mon Dec 10 20:58:55 2012
@@ -1,22 +1,30 @@
-# $NetBSD: bsd.gcc.mk,v 1.7 2012/11/21 20:30:01 pooka Exp $
+# $NetBSD: bsd.gcc.mk,v 1.8 2012/12/10 20:58:55 pooka Exp $
.if !defined(_BSD_GCC_MK_)
_BSD_GCC_MK_=1
.if defined(EXTERNAL_TOOLCHAIN)
_GCC_CRTBEGIN!= ${CC} --print-file-name=crtbegin.o
-.ifndef _GCC_CRTBEGINS
-_GCC_CRTBEGINS!= ${CC} --print-file-name=crtbeginS.o
-.endif
_GCC_CRTEND!= ${CC} --print-file-name=crtend.o
-.ifndef _GCC_CRTENDS
-_GCC_CRTENDS!= ${CC} --print-file-name=crtendS.o
-.endif
-_GCC_CRTI!= ${CC} --print-file-name=crti.o
-_GCC_CRTN!= ${CC} --print-file-name=crtn.o
-_GCC_CRTDIR!= dirname ${_GCC_CRTBEGIN}
-_GCC_LIBGCCDIR!= dirname `${CC} --print-libgcc-file-name`
+
+# If the toolchain does not know about a file, --print-file-name echoes
+# the input file name (why??). In that case we want an empty string for
+# dependencies to work correctly. Note: do _not_ use TOOL_SED here because
+# this file is used before TOOL_SED is built.
+_GCC_CRTBEGINS!= ${CC} --print-file-name=crtbeginS.o \
+ | sed 's|^crtbeginS.o$$||'
+_GCC_CRTENDS!= ${CC} --print-file-name=crtendS.o \
+ | sed 's|^crtendS.o$$||'
+_GCC_CRTI!= ${CC} --print-file-name=crti.o \
+ | sed 's|^crti.o$$||'
+_GCC_CRTN!= ${CC} --print-file-name=crtn.o \
+ | sed 's|^crtn.o$$||'
+
+_GCC_CRTDIR!= dirname ${_GCC_CRTBEGIN}
+_GCC_LIBGCCDIR!= dirname `${CC} --print-libgcc-file-name`
+
.else
+
_GCC_CRTBEGIN?= ${DESTDIR}/usr/lib/crtbegin.o
_GCC_CRTBEGINS?= ${DESTDIR}/usr/lib/crtbeginS.o
_GCC_CRTEND?= ${DESTDIR}/usr/lib/crtend.o