svn commit: r280179 - in head: . lib/atf/libatf-c++ share/mk
Bryan Drewery
bdrewery at FreeBSD.org
Tue Mar 17 15:16:38 UTC 2015
Author: bdrewery
Date: Tue Mar 17 15:16:36 2015
New Revision: 280179
URL: https://svnweb.freebsd.org/changeset/base/280179
Log:
Add LIB_CXX so that C++ libraries will use CXX to link.
This fixes C++ libraries not implicitly linking in libc++. This is
generally not an issue because the final linking with the compiled binary
will involve CXX via PROG_CXX or other means. It is however
inconsistent with libraries implicitly linking in libc and problematic
for trying to build libraries with '-z defs' to ensure all direct
dependencies are linked in.
libatf-c++ is currently the only consumer of this new feature.
Differential Revision: https://reviews.freebsd.org/D2039
Reviewed by: imp
Discussed with: bapt
MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division
Modified:
head/Makefile.inc1
head/lib/atf/libatf-c++/Makefile
head/share/mk/bsd.lib.mk
Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1 Tue Mar 17 15:12:52 2015 (r280178)
+++ head/Makefile.inc1 Tue Mar 17 15:16:36 2015 (r280179)
@@ -1685,6 +1685,10 @@ gnu/lib/libstdc++__L: lib/msun__L
gnu/lib/libsupc++__L: gnu/lib/libstdc++__L
.endif
+.if ${MK_LIBCPLUSPLUS} != "no"
+_prebuild_libs+= lib/libc++
+.endif
+
lib/libgeom__L: lib/libexpat__L
.if ${MK_LIBTHR} != "no"
Modified: head/lib/atf/libatf-c++/Makefile
==============================================================================
--- head/lib/atf/libatf-c++/Makefile Tue Mar 17 15:12:52 2015 (r280178)
+++ head/lib/atf/libatf-c++/Makefile Tue Mar 17 15:16:36 2015 (r280179)
@@ -28,7 +28,7 @@
.include <src.opts.mk>
.include <bsd.init.mk>
-LIB= atf-c++
+LIB_CXX= atf-c++
PRIVATELIB= true
SHLIB_MAJOR= 2
Modified: head/share/mk/bsd.lib.mk
==============================================================================
--- head/share/mk/bsd.lib.mk Tue Mar 17 15:12:52 2015 (r280178)
+++ head/share/mk/bsd.lib.mk Tue Mar 17 15:16:36 2015 (r280179)
@@ -4,6 +4,13 @@
.include <bsd.init.mk>
+.if defined(LIB_CXX)
+LIB= ${LIB_CXX}
+_LD= ${CXX}
+.else
+_LD= ${CC}
+.endif
+
# Set up the variables controlling shared libraries. After this section,
# SHLIB_NAME will be defined only if we are to create a shared library.
# SHLIB_LINK will be defined only if we are to create a link to it.
@@ -217,7 +224,7 @@ ${SHLIB_NAME_FULL}: ${SOBJS}
.if defined(SHLIB_LINK)
@${INSTALL_SYMLINK} ${SHLIB_NAME} ${SHLIB_LINK}
.endif
- ${CC} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \
+ ${_LD} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \
-o ${.TARGET} -Wl,-soname,${SONAME} \
`NM='${NM}' lorder ${SOBJS} | tsort -q` ${LDADD}
.if ${MK_CTF} != "no"
More information about the svn-src-head
mailing list