From d7e09157c4929c99a1342b21e920c6be3315b365 Mon Sep 17 00:00:00 2001
From: scjody <scjody>
Date: Tue, 24 Jul 2007 00:46:55 +0000
Subject: [PATCH] Branch b1_6

Update Module.symvers after building the ldiskfs module so its symbols
appear in fsfilt_ldiskfs - avoids build warnings and kernel tainting.

This commit includes both the original patch (which was backed out) and fixes
to the build issues seen on SLES 9 and RHEL 4.

b=12842
i=brian
i=mjmac
---
 build/autoconf/lustre-build-linux.m4 | 15 +++++++++++++--
 ldiskfs/ldiskfs/autoMakefile.am      |  8 ++++++++
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/build/autoconf/lustre-build-linux.m4 b/build/autoconf/lustre-build-linux.m4
index d92ab36e29..ae29434c64 100644
--- a/build/autoconf/lustre-build-linux.m4
+++ b/build/autoconf/lustre-build-linux.m4
@@ -100,6 +100,7 @@ AC_MSG_RESULT($RELEASE)
 AC_SUBST(RELEASE)
 ])
 
+#
 #
 # LB_LINUX_PATH
 #
@@ -187,6 +188,16 @@ if grep rhconfig $LINUX_OBJ/include/linux/version.h >/dev/null ; then
 	EXTRA_KCFLAGS="-include $KERNEL_SOURCE_HEADER $EXTRA_KCFLAGS"
 fi
 
+# Find the modpost utility
+AC_CHECK_FILE([$LINUX_OBJ/scripts/mod/modpost],
+	[MODPOST=$LINUX_OBJ/scripts/mod/modpost],
+	[AC_CHECK_FILE([$LINUX_OBJ/scripts/modpost],
+		[MODPOST=$LINUX_OBJ/scripts/modpost],
+		AC_MSG_ERROR([modpost not found.])
+	)]
+)
+AC_SUBST(MODPOST)
+
 # this is needed before we can build modules
 LB_LINUX_UML
 LB_LINUX_VERSION
@@ -199,11 +210,11 @@ LB_LINUX_TRY_COMPILE([],[],[
 	AC_MSG_RESULT([no])
 	AC_MSG_WARN([Consult config.log for details.])
 	AC_MSG_WARN([If you are trying to build with a kernel-source rpm, consult build/README.kernel-source])
-	AC_MSG_ERROR([Kernel modules cannot be build.])
+	AC_MSG_ERROR([Kernel modules cannot be built.])
 ])
 
 LB_LINUX_RELEASE
-])
+]) # end of LB_LINUX_PATH
 
 #
 # LB_LINUX_UML
diff --git a/ldiskfs/ldiskfs/autoMakefile.am b/ldiskfs/ldiskfs/autoMakefile.am
index f7b83ad06b..1815a9db3e 100644
--- a/ldiskfs/ldiskfs/autoMakefile.am
+++ b/ldiskfs/ldiskfs/autoMakefile.am
@@ -70,3 +70,11 @@ CLEANFILES = sources $(notdir $(linux_headers) $(ext3_headers) $(ext3_sources) $
 
 clean: clean-am
 	rm -rf linux linux-stage
+
+all: @LINUX_OBJ@/Module.symvers
+
+# Update the kernel's Module.symvers to add ldiskfs symbols before building
+# fsfilt_ldiskfs - see bug 12842.
+@LINUX_OBJ@/Module.symvers: ldiskfs.o
+	cd .. ; $(MODPOST) -m -i @LINUX_OBJ@/Module.symvers \
+		-o @LINUX_OBJ@/Module.symvers ldiskfs/ldiskfs.o
-- 
GitLab