summaryrefslogtreecommitdiffstats
path: root/sys/conf/kmod.mk
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2005-10-27 14:24:45 +0000
committerru <ru@FreeBSD.org>2005-10-27 14:24:45 +0000
commitc771550d168007ede459f3a42c5bcbf710684830 (patch)
tree5c34a77ae04255b0b8f74f2e1feb2f7f0cab1d78 /sys/conf/kmod.mk
parent912a374cd0d0fe5652fc00f90abbe8545f22d897 (diff)
downloadFreeBSD-src-c771550d168007ede459f3a42c5bcbf710684830.zip
FreeBSD-src-c771550d168007ede459f3a42c5bcbf710684830.tar.gz
Installing debug modules was a bad idea -- I bogusly assumed that
our kernel linker will only load PT_LOAD segments, apparently not. Instead, produce .dbg objects from .debug objects, and install them together with non-debug objects, as described in objcopy(1). Original code by: obrien
Diffstat (limited to 'sys/conf/kmod.mk')
-rw-r--r--sys/conf/kmod.mk16
1 files changed, 9 insertions, 7 deletions
diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk
index 0f010e8..d067b2c 100644
--- a/sys/conf/kmod.mk
+++ b/sys/conf/kmod.mk
@@ -143,8 +143,11 @@ PROG= ${KMOD}.ko
FULLPROG= ${PROG}
.else
FULLPROG= ${PROG}.debug
-${PROG}: ${FULLPROG}
- ${OBJCOPY} --strip-debug ${FULLPROG} ${PROG}
+${PROG}: ${FULLPROG} ${PROG}.dbg
+ ${OBJCOPY} --strip-debug --add-gnu-debuglink=${PROG}.dbg\
+ ${FULLPROG} ${.TARGET}
+${PROG}.dbg: ${FULLPROG}
+ ${OBJCOPY} --only-keep-debug ${FULLPROG} ${.TARGET}
.endif
.if ${MACHINE_ARCH} != amd64
@@ -226,7 +229,7 @@ ${_ILINKS}:
CLEANFILES+= ${PROG} ${KMOD}.kld ${OBJS} ${_ILINKS}
.if defined(DEBUG_FLAGS)
-CLEANFILES+= ${FULLPROG}
+CLEANFILES+= ${FULLPROG} ${PROG}.dbg
.endif
.if !target(install)
@@ -240,12 +243,11 @@ _INSTALLFLAGS:= ${_INSTALLFLAGS${ie}}
realinstall: _kmodinstall
.ORDER: beforeinstall _kmodinstall
_kmodinstall:
-.if defined(DEBUG_FLAGS) && !defined(INSTALL_NODEBUG)
- ${INSTALL} -o ${KMODOWN} -g ${KMODGRP} -m ${KMODMODE} \
- ${_INSTALLFLAGS} ${FULLPROG} ${DESTDIR}${KMODDIR}/${PROG}
-.else
${INSTALL} -o ${KMODOWN} -g ${KMODGRP} -m ${KMODMODE} \
${_INSTALLFLAGS} ${PROG} ${DESTDIR}${KMODDIR}
+.if defined(DEBUG_FLAGS) && !defined(INSTALL_NODEBUG)
+ ${INSTALL} -o ${KMODOWN} -g ${KMODGRP} -m ${KMODMODE} \
+ ${_INSTALLFLAGS} ${PROG}.dbg ${DESTDIR}${KMODDIR}
.endif
.include <bsd.links.mk>
OpenPOWER on IntegriCloud