summaryrefslogtreecommitdiff
path: root/palm
diff options
context:
space:
mode:
authorEdwin Groothuis <edwin@FreeBSD.org>2007-09-08 12:31:14 +0000
committerEdwin Groothuis <edwin@FreeBSD.org>2007-09-08 12:31:14 +0000
commite141b3c45d5cf838915debe3aecf8a9082162375 (patch)
tree0e7fe46a14b281df1db28f4d650c1bc4d564808e /palm
parentUpgrade to 3.71 beta 1 (diff)
uppc kmod installation problem on amd64
Please see a discussion thread starting with the following message: http://lists.freebsd.org/pipermail/freebsd-ports/2007-August/042999.html It seems that installation action of uppc-kmod port (do-install target) uses incorrect tool to put uppc.ko in its destination. It seems that the tool (${INSTALL_PROGRAM}) corrupts the .ko, so that it is not a valid kernel module anymore. If I put uppc.ko into /boot/kernel and do kldxref then kldxref complains about missing symbol table in uppc.ko and dumps core. If the module is loaded then it crashes my system. On the other hand, if I simply copy uppc.ko from work directory then it works ok. Essentially this is the same issue as described in the following PR only with another port: http://www.freebsd.org/cgi/query-pr.cgi?pr=100703 Kostik Belousov confirms the issue with stripping kernel modules on amd64: You cannot strip kernel modules on amd64, because modules are elf object files, as opposed to shared objects on all other archs. Strip strips the object file symbol table, that is used by the static linker and in-kernel linker on amd64. On the other hand, shared object contains also a dynamic symbol table, that is not stripped and used by in-kernel linker on !amd64. PR: ports/115517 Submitted by: Andriy Gapon <avg@icyb.net.ua>
Notes
Notes: svn path=/head/; revision=199105
Diffstat (limited to 'palm')
-rw-r--r--palm/uppc-kmod/Makefile5
1 files changed, 5 insertions, 0 deletions
diff --git a/palm/uppc-kmod/Makefile b/palm/uppc-kmod/Makefile
index 43179a5bd4bc..a6dd48ea2188 100644
--- a/palm/uppc-kmod/Makefile
+++ b/palm/uppc-kmod/Makefile
@@ -24,6 +24,11 @@ IGNORE= Requires kernel source (/usr/src/sys) to build
.include <bsd.port.pre.mk>
+# Don't strip module on amd64 systems
+.if ${ARCH} == "amd64"
+STRIP=
+.endif
+
post-build:
@${REINPLACE_CMD} -e 's|%%INITIAL_INSTALLDIR%%|${PREFIX}/lib|g' ${BUILD_WRKSRC}/uppcsetup
@${REINPLACE_CMD} -e 's|%%INITIAL_MODDIR%%|${KMODDIR}|g' ${WRKSRC}/uppcsetup