Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Dec 2012 00:03:35 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r244236 - head/share/mk
Message-ID:  <201212150003.qBF03Zr0085865@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Sat Dec 15 00:03:35 2012
New Revision: 244236
URL: http://svnweb.freebsd.org/changeset/base/244236

Log:
  Put shared library debug info into separate .symbols file
  
  Sponsored by: ADARA Networks

Modified:
  head/share/mk/bsd.lib.mk
  head/share/mk/sys.mk

Modified: head/share/mk/bsd.lib.mk
==============================================================================
--- head/share/mk/bsd.lib.mk	Fri Dec 14 23:13:06 2012	(r244235)
+++ head/share/mk/bsd.lib.mk	Sat Dec 15 00:03:35 2012	(r244236)
@@ -173,11 +173,15 @@ SOLINKOPTS+=	-Wl,--fatal-warnings -Wl,--
 .if target(beforelinking)
 ${SHLIB_NAME}: beforelinking
 .endif
+.if defined(DEBUG_FLAGS)
+${SHLIB_NAME}.debug: ${SOBJS}
+.else
 ${SHLIB_NAME}: ${SOBJS}
+.endif
 	@${ECHO} building shared library ${SHLIB_NAME}
-	@rm -f ${.TARGET} ${SHLIB_LINK}
+	@rm -f ${SHLIB_NAME} ${SHLIB_LINK}
 .if defined(SHLIB_LINK)
-	@ln -fs ${.TARGET} ${SHLIB_LINK}
+	@ln -fs ${SHLIB_NAME} ${SHLIB_LINK}
 .endif
 .if !defined(NM)
 	@${CC} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \
@@ -191,6 +195,15 @@ ${SHLIB_NAME}: ${SOBJS}
 .if ${MK_CTF} != "no"
 	${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${SOBJS}
 .endif
+
+.if defined(DEBUG_FLAGS)
+${SHLIB_NAME}: ${SHLIB_NAME}.debug ${SHLIB_NAME}.symbols
+	${OBJCOPY} --strip-debug --add-gnu-debuglink=${SHLIB_NAME}.symbols \
+	    ${SHLIB_NAME}.debug ${.TARGET}
+
+${SHLIB_NAME}.symbols: ${SHLIB_NAME}.debug
+	${OBJCOPY} --only-keep-debug ${SHLIB_NAME}.debug ${.TARGET}
+.endif
 .endif
 
 .if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no"
@@ -267,6 +280,11 @@ _libinstall:
 	${INSTALL} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
 	    ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \
 	    ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
+.if defined(DEBUG_FLAGS)
+	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
+	    ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \
+	    ${SHLIB_NAME}.symbols ${DESTDIR}${SHLIBDIR}
+.endif
 .if defined(SHLIB_LINK)
 # ${_SHLIBDIRPREFIX} and ${_LDSCRIPTROOT} are both needed when cross-building
 # and when building 32 bits library shims.  ${_SHLIBDIRPREFIX} is the directory

Modified: head/share/mk/sys.mk
==============================================================================
--- head/share/mk/sys.mk	Fri Dec 14 23:13:06 2012	(r244235)
+++ head/share/mk/sys.mk	Sat Dec 15 00:03:35 2012	(r244236)
@@ -134,6 +134,8 @@ NM		?=	nm
 OBJC		?=	cc
 OBJCFLAGS	?=	${OBJCINCLUDES} ${CFLAGS} -Wno-import
 
+OBJCOPY		?=	objcopy
+
 PC		?=	pc
 PFLAGS		?=
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201212150003.qBF03Zr0085865>