[Ocfs2-devel] 2.6.x make support
Villalovos, John L
john.l.villalovos at intel.com
Wed Mar 3 13:43:27 CST 2004
I seem to have included the wrong diff.
Let me fix and resend.
Aaacckkk!! :(
John
> -----Original Message-----
> From: ocfs2-devel-bounces at oss.oracle.com
> [mailto:ocfs2-devel-bounces at oss.oracle.com] On Behalf Of
> Villalovos, John L
> Sent: Wednesday, March 03, 2004 1:42 PM
> To: ocfs2-devel at oss.oracle.com
> Subject: [Ocfs2-devel] 2.6.x make support
>
>
> Updated to get the make system to be able to build for 2.6.x kernels.
>
> More work still needs to be done but it will compile.
>
> I had to create a Config-minimal.make.in file because when I
> included Config.make during the portion of the build when the
> kernel is calling back into our Makefile it broke :( We seem
> to be setting some variables which are being used by the
> kernel build system.
>
> So instead I created this minimal one.
>
> This is just a first start at this. There is more work to be
> done in this area but it does make it so that people should
> be able to build a kernel for 2.6.x.
>
> John
>
>
> Index: configure.in
> ===================================================================
> --- configure.in (revision 747)
> +++ configure.in (working copy)
> @@ -83,6 +83,13 @@
> AC_MSG_ERROR(GCC is required)
> fi
>
> +AC_ARG_ENABLE(kernel-2_6,
> AC_HELP_STRING([--enable-kernel-2_6], [(BROKEN!) Enable
> building on Linux kernel version 2.6.x
> (default=no)]),enable_kernel26=yes,enable_kernel26=no)
> +OCFS_KERNEL_2_6=
> +if test "x$enable_kernel26" = "xyes"; then
> + OCFS_KERNEL_2_6=yes
> +fi
> +AC_SUBST(OCFS_KERNEL_2_6)
> +
> AC_ARG_ENABLE(debug, [ --enable-debug=[yes/no]
> Turn on debugging [default=yes]],,enable_debug=yes)
> OCFS_DEBUG=
> if test "x$enable_debug" = "xyes"; then
> @@ -178,6 +185,13 @@
> case "$kversion" in
> 2.4.*)
> ;;
> + 2.6.*)
> + if test "x$enable_kernel26" = "xyes"; then
> + AC_MSG_NOTICE([Support for kernel version 2.6 is
> BROKEN at this time! Your system WILL hang.])
> + else
> + AC_MSG_ERROR([Support for kernel version 2.6 is BROKEN
> (Your system WILL hang!) at this time. You must use
> --enable-kernel-2_6 to get past this point.])
> + fi
> + ;;
> *)
> AC_MSG_ERROR([This module only supports kernel version 2.4.x])
> ;;
> @@ -304,6 +318,9 @@
> GCCINC=$gccdir
> AC_SUBST(GCCINC)
>
> +OCFS_BUILD_DIR=`pwd`
> +AC_SUBST(OCFS_BUILD_DIR)
> +
> AC_OUTPUT([Config.make
> vendor/redhat/ocfs2-2.4.9-e.spec
> vendor/redhat/ocfs2-2.4.18-e.spec
> @@ -314,4 +331,5 @@
> vendor/unitedlinux/ocfs2-2.4.21-107.spec
> vendor/unitedlinux/ocfs2-2.4.21-111.spec
> vendor/unitedlinux/ocfs2-2.4.21-138.spec
> +src/Makefile-2.6
> ])
> Index: Config.make.in
> ===================================================================
> --- Config.make.in (revision 747)
> +++ Config.make.in (working copy)
> @@ -58,5 +58,6 @@
> OCFS_MEMDEBUG = @OCFS_MEMDEBUG@
> OCFS_TRACE = @OCFS_TRACE@
> OCFS_PROCESSOR = @OCFS_PROCESSOR@
> +OCFS_KERNEL_2_6 = @OCFS_KERNEL_2_6@
>
> USE_JOURNAL_CREATE_REPLACEMENT = @USE_JOURNAL_CREATE_REPLACEMENT@
> Index: src/Makefile
> ===================================================================
> --- src/Makefile (revision 747)
> +++ src/Makefile (working copy)
> @@ -1,3 +1,11 @@
> +# See if we are being included by the 2.6 kernel build system.
> +ifneq ($(KERNELRELEASE),)
> +# We are being included by the 2.6 kernel build system. So
> we will include the
> +# 2.6.x Makefile and skip everything else.
> +include $(obj)/Makefile-2.6
> +else
> +# Normal build that is being called locally
> +
> TOPDIR = ..
>
> include $(TOPDIR)/Preamble.make
> @@ -2,2 +10,7 @@
>
> +# Preliminary 2.6.x kernel support. See if we are building
> for the 2.6.x
> +# kernel
> +ifndef OCFS_KERNEL_2_6
> +# Building for a 2.4.x kernel
> +
> WARNINGS = -Wall -Wstrict-prototypes -Wno-format
> @@ -196,4 +209,11 @@
> dist-subdircreate:
> $(TOPDIR)/mkinstalldirs $(DIST_DIR)/inc
>
> +
> +else # OCFS_KERNEL_2_6
> +# Building for a 2.6.x kernel
> +include Makefile-2.6
> +endif # OCFS_KERNEL_2_6
> +
> include $(TOPDIR)/Postamble.make
> +endif # ifneq ($(KERNELRELEASE),)
> --- /dev/null 2004-02-23 13:02:56.000000000 -0800
> +++ src/Makefile-2.6.in 2004-03-02 14:17:21.207201128 -0800
> @@ -0,0 +1,74 @@
> +# The 2.6.x kernel makefile
> +
> +# Global parameter so we know where our stuff is
> +OCFS_SRC_DIR := @OCFS_BUILD_DIR@/src
> +
> +# This Makefile has two ways through it. They are:
> +# 1. We are being included by the local Makefile to
> do a 2.6 kernel build.
> +# In this method we will call the kernel make system to
> build our module.
> +# This will cause the kernel make system to call back
> into our makefile
> +# (2nd way).
> +#
> +# 2. We are being included by the kernel make
> system. So in this method we
> +# just setup the variables that the make system wants and
> then the kernel
> +# make system will take care of the build.
> +
> +ifeq ($(KERNELRELEASE),)
> +# 1st method. Local Makefile is including us. We will now
> call the kernel
> +# make system to do the build.
> +
> +KDIR := $(KERNELDIR)
> +
> +all:
> + $(MAKE) -C $(KDIR) V=1 SUBDIRS=$(OCFS_SRC_DIR) modules
> +
> +else
> +# 2nd method. The kernel make system is including us. We
> need to setup the
> +# various parameters for the kernel make system and then it
> will take care of
> +# building us.
> +
> +EXTRA_CFLAGS += -D__ILP32__ -I$(OCFS_SRC_DIR)/inc \
> + -DALLOW_NO_HANDLE_SYNCING -DOCFS_PARANOID_ABORTS \
> + -Wno-format
> +
> +# FIXME: Need to figure out how to use the stuff from
> Postamble.make. In
> +# particular the MD5 and Version strings
> +EXTRA_CFLAGS += -DOCFS_BUILD_DATE=\"y\" -DOCFS_BUILD_MD5=\"z\" \
> + -DOCFS_BUILD_VERSION=\"x\"
> +
> +# FIXME: Probably should not be doing this
> +EXTRA_CFLAGS += -Werror
> +
> +# Defines
> +HAVE_NPTL = @HAVE_NPTL@
> +OCFS_DEBUG = @OCFS_DEBUG@
> +OCFS_LARGEIO = @OCFS_LARGEIO@
> +OCFS_AIO = @OCFS_AIO@
> +OCFS_MEMDEBUG = @OCFS_MEMDEBUG@
> +OCFS_TRACE = @OCFS_TRACE@
> +OCFS_PROCESSOR = @OCFS_PROCESSOR@
> +OCFS_KERNEL_2_6 = @OCFS_KERNEL_2_6@
> +
> +# Setup all the extra parameters that might be needed by the build.
> +# FIXME: Not sure if we have all the parameters here.
> +ifdef OCFS_DEBUG
> +EXTRA_CFLAGS += -DDEBUG
> +endif
> +
> +ifdef OCFS_TRACE
> +EXTRA_CFLAGS += -DTRACE
> +endif
> +
> +ifdef HAVE_NPTL
> +EXTRA_CFLAGS += -DHAVE_NPTL
> +endif
> +
> +# Kernel Module file to produce
> +obj-m += ocfs2.o
> +
> +# list of object files that are used to create our module
> +ocfs2-objs := alloc.o divdi3.o hash.o ioctl.o oin.o super.o ver.o \
> + bitmap.o dlm.o heartbeat.o journal.o osb.o
> symlink.o volcfg.o \
> + dcache.o extmap.o inode.o namei.o proc.o
> sysfile.o vote.o \
> + dir.o file.o io.o nm.o sem.o util.o
> +endif
>
>
More information about the Ocfs2-devel
mailing list