Module Name:    src
Committed By:   lukem
Date:           Mon Nov  8 06:54:53 UTC 2010

Modified Files:
        src/share/mk: bsd.lib.mk bsd.prog.mk

Log Message:
Preserve date on original shared library or program when stripping
the debug symbols and adding the debug-link to .debug.
Use '(rm -f file; false)' in the failure path to force failure.
Based on solution proposed by Nicolas Joly on tech-toolchain in July 2010.
Should fix PR toolchain/44046 from Andreas Gustafsson.


To generate a diff of this commit:
cvs rdiff -u -r1.308 -r1.309 src/share/mk/bsd.lib.mk
cvs rdiff -u -r1.250 -r1.251 src/share/mk/bsd.prog.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.lib.mk
diff -u src/share/mk/bsd.lib.mk:1.308 src/share/mk/bsd.lib.mk:1.309
--- src/share/mk/bsd.lib.mk:1.308	Tue Jul  6 05:59:56 2010
+++ src/share/mk/bsd.lib.mk	Mon Nov  8 06:54:52 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.lib.mk,v 1.308 2010/07/06 05:59:56 mrg Exp $
+#	$NetBSD: bsd.lib.mk,v 1.309 2010/11/08 06:54:52 lukem Exp $
 #	@(#)bsd.lib.mk	8.3 (Berkeley) 4/22/94
 
 .include <bsd.init.mk>
@@ -589,10 +589,10 @@
 .if defined(_LIB.debug)
 ${_LIB.debug}: ${_LIB.so}
 	${_MKTARGET_CREATE}
-	${OBJCOPY} --only-keep-debug ${_LIB.so} ${_LIB.debug}
-	${OBJCOPY} --strip-debug \
-	    -R .gnu_debuglink --add-gnu-debuglink=${_LIB.debug} ${_LIB.so} \
-	    || rm -f ${_LIB.debug}
+	(  ${OBJCOPY} --only-keep-debug ${_LIB.so} ${_LIB.debug} \
+	&& ${OBJCOPY} --strip-debug -p -R .gnu_debuglink \
+		--add-gnu-debuglink=${_LIB.debug} ${_LIB.so} \
+	) || (rm -f ${_LIB.debug}; false)
 .endif
 
 .if !empty(LOBJS)							# {

Index: src/share/mk/bsd.prog.mk
diff -u src/share/mk/bsd.prog.mk:1.250 src/share/mk/bsd.prog.mk:1.251
--- src/share/mk/bsd.prog.mk:1.250	Sun Oct 31 11:52:53 2010
+++ src/share/mk/bsd.prog.mk	Mon Nov  8 06:54:52 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.prog.mk,v 1.250 2010/10/31 11:52:53 mbalmer Exp $
+#	$NetBSD: bsd.prog.mk,v 1.251 2010/11/08 06:54:52 lukem Exp $
 #	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
 
 .ifndef HOSTPROG
@@ -315,9 +315,10 @@
 .if defined(_PROGDEBUG.${_P})
 ${_PROGDEBUG.${_P}}: ${_P}
 	${_MKTARGET_CREATE}
-	${OBJCOPY} --only-keep-debug ${_P} ${_PROGDEBUG.${_P}}
-	${OBJCOPY} --strip-debug -R .gnu_debuglink --add-gnu-debuglink=${_PROGDEBUG.${_P}} ${_P} \
-	    || rm -f ${_PROGDEBUG.${_P}}
+	(  ${OBJCOPY} --only-keep-debug ${_P} ${_PROGDEBUG.${_P}} \
+	&& ${OBJCOPY} --strip-debug -p -R .gnu_debuglink \
+		--add-gnu-debuglink=${_PROGDEBUG.${_P}} ${_P} \
+	) || (rm -f ${_PROGDEBUG.${_P}}; false)
 .endif
 
 .endif	# defined(OBJS.${_P}) && !empty(OBJS.${_P})			# }

Reply via email to