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