[Pvfs2-developers] pvfs2 2.6.3 fixes

Marc Aurele La France tsi at ualberta.ca
Fri Apr 27 10:01:55 EDT 2007


Hi,

I recently finished an exercise of building PVFS2 from source for a few
different kernels.  The following are changes I ended up with.  A copy
of this note is included as a compressed attachment should it be
mangled in transit.

==

1) Recent kernels store UTS_RELEASE in <linux/utsrelease.h>, not
   <linux/version.h>.  The following works for both cases.


diff -aNpru pvfs-2.6.3/Makefile.in devel/Makefile.in
--- pvfs-2.6.3/Makefile.in	2007-04-09 08:54:37.000000000 -0600
+++ devel/Makefile.in	2007-04-26 07:36:24.000000000 -0600
@@ -873,9 +873,9 @@ endif
 
 ifneq (,$(LINUX_KERNEL_SRC))
 
-NUM_UTS_LINES := $(shell grep -c UTS_RELEASE $(LINUX_KERNEL_SRC)/include/linux/version.h)
-ifeq ($(NUM_UTS_LINES),1)
-    KERNEL_VERS := $(shell grep UTS_RELEASE $(LINUX_KERNEL_SRC)/include/linux/version.h | cut -d\" -f2)
+UTS_LINE := $(shell grep UTS_RELEASE $(LINUX_KERNEL_SRC)/include/linux/*.h | grep define)
+ifneq (,$(UTS_LINE))
+    KERNEL_VERS := $(shell grep UTS_RELEASE $(LINUX_KERNEL_SRC)/include/linux/*.h | grep define | cut -d\" -f2)
 else
     KERNEL_VERS := $(shell uname -r)
 endif

==

2) As currently coded, the check for whether or not the kernel declares a
   struct kmem_cache, can never fail.  This replaces that check with
   one that works for older kernels that don't declare a struct
   kmem_cache.


diff -aNpru pvfs-2.6.3/maint/config/kernel.m4 devel/maint/config/kernel.m4
--- pvfs-2.6.3/maint/config/kernel.m4	2007-04-09 08:54:37.000000000 -0600
+++ devel/maint/config/kernel.m4	2007-04-26 08:30:29.000000000 -0600
@@ -114,15 +114,12 @@ AC_DEFUN([AX_KERNEL_FEATURES],
 
 	dnl 2.6.20 deprecated kmem_cache_t
 	AC_MSG_CHECKING(for struct kmem_cache in kernel)
-	AC_TRY_COMPILE([
-		#define __KERNEL__
-		#include <linux/slab.h>
-		static struct kmem_cache;
-	], [],
+	if test "`grep 'struct kmem_cache ' $lk_src/include/linux/slab.h`"; then
 		AC_MSG_RESULT(yes)
-		AC_DEFINE(HAVE_STRUCT_KMEM_CACHE, 1, Define if struct kmem_cache is defined in kernel),
+		AC_DEFINE(HAVE_STRUCT_KMEM_CACHE, 1, Define if struct kmem_cache is defined in kernel)
+	else
 		AC_MSG_RESULT(no)
-	)
+	fi
 
 	dnl 2.6.20 removed SLAB_KERNEL.  Need to use GFP_KERNEL instead
 	AC_MSG_CHECKING(for SLAB_KERNEL flag in kernel)

==

3) statecomp should unlink its output file before attempting to
   overwrite it.  This allows for building PVFS2 in a shadow tree and
   leave the base tree it points to untouched.


diff -aNpru pvfs-2.6.3/src/common/statecomp/statecomp.c devel/src/common/statecomp/statecomp.c
--- pvfs-2.6.3/src/common/statecomp/statecomp.c	2007-04-09 08:54:37.000000000 -0600
+++ devel/src/common/statecomp/statecomp.c	2007-04-26 08:20:08.000000000 -0600
@@ -139,6 +139,7 @@ static void parse_args(int argc, char **
 	strcpy (file_name, argv[optind]);
 	file_name[file_name_size-3] = 'c';
 	file_name[file_name_size-2] = 0;
+	unlink(file_name);
 	/* open output file */
 	if (!(out_file = fopen(file_name, "w")))
 	{
@@ -149,6 +150,7 @@ static void parse_args(int argc, char **
 	free(file_name);
     }
     else {
+	unlink(argv[optind+1]);
 	if (!(out_file = fopen(argv[optind+1], "w")))
 	{
 	    /* error opening output file */

==

Thanks.

Marc.

+----------------------------------+----------------------------------+
|  Marc Aurele La France           |  work:   1-780-492-9310          |
|  Academic Information and        |  fax:    1-780-492-1729          |
|    Communications Technologies   |  email:  tsi at ualberta.ca         |
|  352 General Services Building   +----------------------------------+
|  University of Alberta           |                                  |
|  Edmonton, Alberta               |    Standard disclaimers apply    |
|  T6G 2H1                         |                                  |
|  CANADA                          |                                  |
+----------------------------------+----------------------------------+
XFree86 developer and VP.  ATI driver and X server internals.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pvfs-2.6.3.udiff.gz
Type: application/octet-stream
Size: 1562 bytes
Desc: 
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20070427/44cb9ab2/pvfs-2.6.3.udiff.obj


More information about the Pvfs2-developers mailing list