bug #2442: Fix bmake regression of kernel build
authorJohn Marino <draco@marino.st>
Tue, 30 Oct 2012 18:14:57 +0000 (19:14 +0100)
committerJohn Marino <draco@marino.st>
Tue, 30 Oct 2012 18:22:01 +0000 (19:22 +0100)
Kernel modules such as acpi.ko didn't load due to missing symbols after
bmake replaced legacy make.  The cause was traced back to a badly
generated header which in turn was caused by the file kern.fwd.mk.  That
file contained ":U" modifiers that should have been converted to ":tu"
modifiers.

The actual cause of the missing symbols were due to atomic.h not getting
included into atomic.c twice.  Case sensitivity prevented a macro from
being properly unset.  The modifiers in question turn everything to
upper case.

A full kernel build is required to fix the module loading.

sys/conf/kern.fwd.mk

index 71dcb65..9d32eaa 100644 (file)
@@ -1,5 +1,3 @@
-# $DragonFly: src/sys/conf/kern.fwd.mk,v 1.7 2007/01/10 16:41:37 corecode Exp $
-
 # Create forwarding headers for ${SYSDIR}/cpu/${MACHINE_ARCH}/*.h in
 # ${_MACHINE_FWD}/include/machine and share the directory among module build
 # directories.
@@ -44,6 +42,19 @@ ${FORWARD_HEADERS_COOKIE}: ${_MACHINE_FWD}/include/machine ${_FWDHDRS} ${_LHDRS}
        @touch ${.TARGET}
 
 ${_FWDHDRS}:
+.if defined(.PARSEDIR)
+       @(echo "creating machine/ forwarding header ${.TARGET}" 1>&2; \
+       echo "/*" ; \
+       echo " * CONFIG-GENERATED FILE, DO NOT EDIT" ; \
+       echo " */" ; \
+       echo ; \
+       echo "#ifndef _MACHINE_${.TARGET:T:S/./_/g:tu}_" ; \
+       echo "#define _MACHINE_${.TARGET:T:S/./_/g:tu}_" ; \
+       echo "#include <cpu/${.TARGET:T}>" ; \
+       echo "#endif" ; \
+       echo) > ${.TARGET}
+.else
+       # LEGACY MAKE - REMOVE FOR DFLY 3.6
        @(echo "creating machine/ forwarding header ${.TARGET}" 1>&2; \
        echo "/*" ; \
        echo " * CONFIG-GENERATED FILE, DO NOT EDIT" ; \
@@ -54,8 +65,22 @@ ${_FWDHDRS}:
        echo "#include <cpu/${.TARGET:T}>" ; \
        echo "#endif" ; \
        echo) > ${.TARGET}
+.endif
 
 ${_LHDRS}:
+.if defined(.PARSEDIR)
+       @(echo "creating sys/ forwarding header ${.TARGET}" 1>&2; \
+       echo "/*" ; \
+       echo " * CONFIG-GENERATED FILE, DO NOT EDIT" ; \
+       echo " */" ; \
+       echo ; \
+       echo "#ifndef _${.TARGET:T:S/./_/g:tu}_" ; \
+       echo "#define _${.TARGET:T:S/./_/g:tu}_" ; \
+       echo "#include <sys/${.TARGET:T}>" ; \
+       echo "#endif" ; \
+       echo) > ${.TARGET}
+.else
+       # LEGACY MAKE - REMOVE FOR DFLY 3.6
        @(echo "creating sys/ forwarding header ${.TARGET}" 1>&2; \
        echo "/*" ; \
        echo " * CONFIG-GENERATED FILE, DO NOT EDIT" ; \
@@ -66,4 +91,5 @@ ${_LHDRS}:
        echo "#include <sys/${.TARGET:T}>" ; \
        echo "#endif" ; \
        echo) > ${.TARGET}
+.endif