Whamcloud - gitweb
Branch HEAD
authoradilger <adilger>
Sat, 28 Jun 2008 04:54:49 +0000 (04:54 +0000)
committeradilger <adilger>
Sat, 28 Jun 2008 04:54:49 +0000 (04:54 +0000)
Ensure all module symbols from ldiskfs and OFED are available.
b=16112
i=brian
i=shadow

autoMakefile.am
build/autoconf/lustre-build-linux.m4
lnet/autoconf/lustre-lnet.m4
lustre/autoconf/lustre-core.m4

index bade975..6601397 100644 (file)
@@ -12,7 +12,9 @@ EXTRA_DIST += config.h.in
 
 if LDISKFS_ENABLED
 @SYMVERFILE@: @LDISKFS_DIR@/@SYMVERFILE@
 
 if LDISKFS_ENABLED
 @SYMVERFILE@: @LDISKFS_DIR@/@SYMVERFILE@
-       cp @LDISKFS_DIR@/@SYMVERFILE@ @SYMVERFILE@
+       touch @SYMVERFILE@
+       -grep -v ldiskfs @SYMVERFILE@ > @SYMVERFILE@.old
+       cat @SYMVERFILE@.old @LDISKFS_DIR@/@SYMVERFILE@ > @SYMVERFILE@
 endif
 
 CSTK=/tmp/checkstack
 endif
 
 CSTK=/tmp/checkstack
index e47efd8..9ce393e 100644 (file)
@@ -230,6 +230,20 @@ LB_LINUX_TRY_COMPILE([],[],[
 LB_LINUX_RELEASE
 ]) # end of LB_LINUX_PATH
 
 LB_LINUX_RELEASE
 ]) # end of LB_LINUX_PATH
 
+# LB_LINUX_SYMVERFILE
+# SLES 9 uses a different name for this file - unsure about vanilla kernels
+# around this version, but it matters for servers only.
+AC_DEFUN([LB_LINUX_SYMVERFILE],
+       [AC_MSG_CHECKING([name of module symbol version file])
+       if grep -q Modules.symvers $LINUX/scripts/Makefile.modpost ; then
+               SYMVERFILE=Modules.symvers
+       else
+               SYMVERFILE=Module.symvers
+       fi
+       AC_MSG_RESULT($SYMVERFILE)
+       AC_SUBST(SYMVERFILE)
+])
+
 #
 #
 # LB_LINUX_MODPOST
 #
 #
 # LB_LINUX_MODPOST
@@ -446,6 +460,7 @@ fi
 AC_DEFUN([LB_PROG_LINUX],
 [LB_LINUX_PATH
 LB_LINUX_ARCH
 AC_DEFUN([LB_PROG_LINUX],
 [LB_LINUX_PATH
 LB_LINUX_ARCH
+LB_LINUX_SYMVERFILE
 
 if test $LINUX_ARCH == "powerpc64"; then
        CFLAGS="$CFLAGS -m64"
 
 if test $LINUX_ARCH == "powerpc64"; then
        CFLAGS="$CFLAGS -m64"
@@ -499,7 +514,7 @@ AC_DEFUN([LB_LINUX_CONDITIONALS],
 # or check 
 AC_DEFUN([LB_CHECK_SYMBOL_EXPORT],
 [AC_MSG_CHECKING([if Linux was built with symbol $1 is exported])
 # or check 
 AC_DEFUN([LB_CHECK_SYMBOL_EXPORT],
 [AC_MSG_CHECKING([if Linux was built with symbol $1 is exported])
-grep -q -E '[[[:space:]]]$1[[[:space:]]]' $LINUX/Module.symvers 2>/dev/null
+grep -q -E '[[[:space:]]]$1[[[:space:]]]' $LINUX/$SYMVERFILE 2>/dev/null
 rc=$?
 if test $rc -ne 0; then
     export=0
 rc=$?
 if test $rc -ne 0; then
     export=0
index 7558caa..3443063 100644 (file)
@@ -520,8 +520,11 @@ else
                # we know at this point that the found OFED source is good
                if test \( $ENABLEO2IB = 3 \); then
                        if test \( -f $O2IBPATH/Module.symvers \); then
                # we know at this point that the found OFED source is good
                if test \( $ENABLEO2IB = 3 \); then
                        if test \( -f $O2IBPATH/Module.symvers \); then
-                               AC_MSG_NOTICE([adding $O2IBPATH/Module.symvers to $PWD/Module.symvers])
-                               cat $O2IBPATH/Module.symvers >> $PWD/Module.symvers
+                               AC_MSG_NOTICE([adding $O2IBPATH/Module.symvers to $PWD/$SYMVERFILE])
+                               # strip out the existing symbols versions first
+                               touch $O2IBPATH/Module.symvers
+                               egrep -v $(echo $(awk '{ print $2 }' $O2IBPATH/Module.symvers) | tr ' ' '|') $PWD/$SYMVERFILE > $PWD/$SYMVERFILE.old
+                               cat $PWD/$SYMVERFILE.old $O2IBPATH/Module.symvers > $PWD/$SYMVERFILE
                        else
                                AC_MSG_ERROR([an external source tree was specified for o2iblnd however I could not find a $O2IBPATH/Module.symvers there])
                        fi
                        else
                                AC_MSG_ERROR([an external source tree was specified for o2iblnd however I could not find a $O2IBPATH/Module.symvers there])
                        fi
index 493a35a..4ba3d8a 100644 (file)
@@ -878,19 +878,6 @@ LB_LINUX_TRY_COMPILE([
 ])
 ])
 
 ])
 ])
 
-# LC_SYMVERFILE
-# SLES 9 uses a different name for this file - unsure about vanilla kernels
-# around this version, but it matters for servers only.
-AC_DEFUN([LC_SYMVERFILE],
-         [AC_MSG_CHECKING([name of symverfile])
-          if grep -q Modules.symvers $LINUX/scripts/Makefile.modpost ; then
-              SYMVERFILE=Modules.symvers
-          else
-              SYMVERFILE=Module.symvers
-          fi
-         AC_MSG_RESULT($SYMVERFILE)
-          AC_SUBST(SYMVERFILE)])
-
 # LC_DQUOTOFF_MUTEX
 # after 2.6.17 dquote use mutex instead if semaphore
 AC_DEFUN([LC_DQUOTOFF_MUTEX],
 # LC_DQUOTOFF_MUTEX
 # after 2.6.17 dquote use mutex instead if semaphore
 AC_DEFUN([LC_DQUOTOFF_MUTEX],
@@ -1537,9 +1524,6 @@ AC_DEFUN([LC_PROG_LINUX],
          # 2.6.15
          LC_INODE_I_MUTEX
 
          # 2.6.15
          LC_INODE_I_MUTEX
 
-          # SLES 10 (at least)
-          LC_SYMVERFILE
-
          # 2.6.17
          LC_DQUOTOFF_MUTEX
 
          # 2.6.17
          LC_DQUOTOFF_MUTEX