[Pvfs2-developers] pvfs2 2.6.3 fixes
slang
slang at mcs.anl.gov
Fri Apr 27 10:42:30 EDT 2007
Hi Marc,
Thanks for the fixes! I've made some comments inline.
On Apr 27, 2007, at 9:01 AM, Marc Aurele La France wrote:
> 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
I'd prefer to fix the check for kmem_cache in TRY_COMPILE, rather
than grep. We should be able to add some bits to the second
parameter to TRY_COMPILE. Probably something like:
AC_TRY_COMPILE([
#define __KERNEL__
#include <linux/slab.h>
static struct kmem_cache;
],
[
struct kmem_cache *c;
c = kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);
],
...
>
> 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.
>
Seems fine. I do out of tree builds all the time though, so I'm
curious how this broke for you. Are you creating symlinks of the
pvfs tree or something?
Thanks again!
-sam
>
> 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.
> <pvfs-2.6.3.udiff.gz>
> _______________________________________________
> Pvfs2-developers mailing list
> Pvfs2-developers at beowulf-underground.org
> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
More information about the Pvfs2-developers
mailing list