[issue543] kern.post.mk patch - NO_KERNEL_OLD_STRIP

Thomas Nikolajsen thomas.nikolajsen at mail.dk
Mon Feb 5 13:18:59 PST 2007


cp(1) should be fine.
(will close window with no /kernel somewhat)

 -thomas
> Simon 'corecode' Schubert <corecode at fs.ei.tum.de> added the
> comment:
> 
> Is there a particular reason why you use mv instead of cp
> (or ln)?
> 
> Looks good else.
> 
> ----------
> priority:  -> feature
> status: unread -> chatting
> 
> _____________________________________________________
> DragonFly issue tracker <bugs at lists.dragonflybsd.org>
> <http://bugs.dragonflybsd.org/issue543>
> _____________________________________________________

Index: kern.post.mk
===================================================================
RCS file: /home/dcvs/src/sys/conf/kern.post.mk,v
retrieving revision 1.8
diff -u -r1.8 kern.post.mk
--- kern.post.mk	19 Jan 2007 07:23:42 -0000	1.8
+++ kern.post.mk	4 Feb 2007 17:26:54 -0000
@@ -103,7 +103,7 @@
 	rm -f tags1
 	sed -e 's,      ../,    ,' tags > tags1
 
-# Note: when moving the existing kernel to .old, make sure it is stripped
+# Note: when moving the existing kernel to .old, it is by default stripped
 # so we do not have two full debug environments sitting in / eating up space.
 #
 kernel-install:
@@ -112,16 +112,24 @@
 		exit 1 ; \
 	fi
 .ifdef NOFSCHG
-.if exists(${DESTDIR}/${KERNEL})
+.  if exists(${DESTDIR}/${KERNEL})
+.    ifdef NO_KERNEL_OLD_STRIP
+	cp -p ${DESTDIR}/${KERNEL} ${DESTDIR}/${KERNEL}.old
+.    else
 	${OBJCOPY} --strip-debug ${DESTDIR}/${KERNEL} ${DESTDIR}/${KERNEL}.old
-.endif
+.    endif
+.  endif
 	${INSTALL} -m 555 -o root -g wheel \
 		${SELECTEDKERNEL} ${DESTDIR}/${KERNEL}
 .else
-.if exists(${DESTDIR}/${KERNEL})
+.  if exists(${DESTDIR}/${KERNEL})
 	-chflags noschg ${DESTDIR}/${KERNEL}
+.    ifdef NO_KERNEL_OLD_STRIP
+	cp -p ${DESTDIR}/${KERNEL} ${DESTDIR}/${KERNEL}.old
+.    else
 	${OBJCOPY} --strip-debug ${DESTDIR}/${KERNEL} ${DESTDIR}/${KERNEL}.old
-.endif
+.    endif
+.  endif
 	${INSTALL} -m 555 -o root -g wheel -fschg \
 		${SELECTEDKERNEL} ${DESTDIR}/${KERNEL}
 .endif
@@ -172,11 +180,20 @@
 modules-tags:
 	cd $S ; env ${MKMODULESENV} ${MAKE} -f Makefile.modules tags
 
-# Note: when moving the existing modules to .old, make sure they are stripped
+# Note: when moving the existing modules to .old, they are by default stripped
 # so we do not have two full debug environments sitting in / eating up space.
 #
 modules-install:
 .if !defined(NO_MODULES_OLD)
+.  ifdef NO_KERNEL_OLD_STRIP
+	set -- ${DESTDIR}/modules/*; \
+	if [ -f "$$1" ]; then \
+		mkdir -p ${DESTDIR}/modules.old; \
+		for file; do \
+		cp -p $$file ${DESTDIR}/modules.old; \
+		done; \
+	fi
+.  else
 	set -- ${DESTDIR}/modules/*; \
 	if [ -f "$$1" ]; then \
 		mkdir -p ${DESTDIR}/modules.old; \
@@ -184,6 +201,7 @@
 		${OBJCOPY} --strip-debug $$file ${DESTDIR}/modules.old/$${file##*/}; \
 		done; \
 	fi
+.  endif
 .endif
 	cd $S ; env ${MKMODULESENV} ${MAKE} -f Makefile.modules install
 
Index: make.conf.5
===================================================================
RCS file: /home/dcvs/src/share/man/man5/make.conf.5,v
retrieving revision 1.23
diff -u -r1.23 make.conf.5
--- make.conf.5	2 Feb 2007 06:33:17 -0000	1.23
+++ make.conf.5	4 Feb 2007 18:40:09 -0000
@@ -339,6 +339,11 @@
 .Dq Li "${MAKE} depend"
 during
 .Dq Li "${MAKE} buildkernel" .
+.It Va NO_KERNEL_OLD_STRIP
+.Pq Vt bool
+Set this to skip stripping debugging symbols from old kernel and modules
+(kernel.old, modules.old) during
+.Dq Li "${MAKE} installkernel" .
 .It Va NO_MODULES
 .Pq Vt bool
 Set to not build modules with the kernel.




More information about the Bugs mailing list