The attached patches are needed for building systemimager on
i386/ia64/x86_64 under RHEL3. Following changes have been made:

1: Makefile
   - mklibs call is cleaned up a bit. If /lib64 exists on the compiling
   system the target directory will be tmp/boel_binaries/lib64 , otherwise it
   will be tmp/boel_binaries/lib.
   - the order of -L arguments to mklibs was wrong. The default system libs
   should come at the end of the list, such that the self-compiled libraries
   in systemimager are picked up.

2: Makefile, initrd_source/initrd.rul and
initrd_source/make.d/module-init-tools.rul
   - the "ifdef DEPMOD_BINARY block was never touched. As a consequence when
   one was building a 2.6 kernel on a system with 2.4 kernel (and modutils)
   installed, the 2.4 modutils were leading to wrong module
   dependencies. Switched to the latest module-init-tools release
   version. Using this instead of busybox and modutils! It works under 2.6
   more reliably. Also replace in the Makefile the $(shell find ...)
   statemement. That one was plainly wrong because the $(shell ...) is
   interpreted when Makefile is read in, which is too early for the detection
   of the boel kernel version.

3: make.d/zlib.rul
   - as Bernard Li observed, with the new zlib version one doesn't need the
   "-fPIC" option any more.
   - still a "rm -f *.o" is needed between the two zlib library builds (static
   and shared).

Please consider adding these into the systemimager SVN. We need the changes
for enabling x86_64 support in OSCAR.

Thanks,
best regards,
Erich

--- initrd_source/initrd.rul.old	2005-06-26 13:44:26.000000000 +0200
+++ initrd_source/initrd.rul	2005-07-11 16:22:40.000000000 +0200
@@ -65,13 +65,8 @@
 # inodes needed on the initial RAM disk -BEF-
 
 ### BEGIN module utility decisions ###
-MODULE_UTILS=modutils
-ifeq ($(ARCH),i386)
-  MODULE_UTILS=busybox
-endif
-ifeq ($(ARCH),x86_64)
-  MODULE_UTILS=busybox
-endif
+# Need newer module-init-tools for 2.6.X kernels.
+MODULE_UTILS=module-init-tools
 ifeq ($(ARCH),ppc64)
   MODULE_UTILS=busybox
 endif
@@ -151,11 +146,18 @@
 	cp -a /lib/ld*   $(INITRD_BUILD_DIR)/lib
 	test ! -d /lib64 || cp -a /lib64/ld* $(INITRD_BUILD_DIR)/lib64
 	# Explicitly include more w/mklibs -L.  -dawild-
+ifeq ($(ARCH),x86_64)
+	( cd $(INITRD_BUILD_DIR) && \
+		$(PYTHON) $(INITRD_DIR)/mklibs -L /lib64:/usr/lib64:/lib:/usr/lib -v -d lib64 ./*bin/* )
+	# copy libnss files as they are not automatically included
+	cp -a /lib64/libnss_dns* $(INITRD_BUILD_DIR)/lib64
+else
 	( cd $(INITRD_BUILD_DIR) && \
 		$(PYTHON) $(INITRD_DIR)/mklibs -L /lib:/usr/lib:/lib64:/usr/lib64 -v -d lib ./*bin/* )
 	# copy libnss files as they are not automatically included
 	cp -a /lib/libnss_dns* $(INITRD_BUILD_DIR)/lib
 endif
+endif
 
 	# Strip 'em. -BEF-
 	strip $(INITRD_BUILD_DIR)/bin/*
--- Makefile.old	2005-07-11 16:25:26.000000000 +0200
+++ Makefile	2005-07-11 16:20:50.000000000 +0200
@@ -143,7 +144,12 @@
 # is userspace 64bit
 USERSPACE64 := 0
 ifeq ($(ARCH),ia64) 
-	USERSPACE64 :=1
+	USERSPACE64 := 1
+endif
+
+USERSPACE64 := 0
+ifeq ($(ARCH),x86_64)
+        USERSPACE64 := 1
 endif
 
 ifneq ($(BUILD_ARCH),)
@@ -563,13 +569,10 @@
 	test ! -d /lib64 || cp -a /lib64/ld* $(BOEL_BINARIES_DIR)/lib64
 endif
 
-ifeq ($(USERSPACE64),1)
+	TGTLIBDIR=lib ; \
+	test ! -d /lib64 || TGTLIBDIR=lib64 ; \
 	cd $(BOEL_BINARIES_DIR) \
-		&& $(PYTHON) $(TOPDIR)/initrd_source/mklibs -L /lib64:/usr/lib64:$(SRC_DIR)/$(PARTED_DIR)/libparted/.libs:/usr/kerberos/lib:$(SRC_DIR)/$(DISCOVER_DIR)/lib/.libs -v -d lib bin/* sbin/*
-else
-	cd $(BOEL_BINARIES_DIR) \
-		&& $(PYTHON) $(TOPDIR)/initrd_source/mklibs -L /lib:/usr/lib:$(SRC_DIR)/$(PARTED_DIR)/libparted/.libs:/usr/kerberos/lib:$(SRC_DIR)/$(DISCOVER_DIR)/lib/.libs -v -d lib bin/* sbin/*
-endif
+		&& $(PYTHON) $(TOPDIR)/initrd_source/mklibs -L $(SRC_DIR)/$(PARTED_DIR)/libparted/.libs:$(SRC_DIR)/$(DISCOVER_DIR)/lib/.libs:$(SRC_DIR)/$(DEVMAPPER_DIR)/lib/ioctl:$(SRC_DIR)/$(E2FSPROGS_DIR)/lib:/lib64:/usr/lib64:/usr/kerberos/lib64:/lib:/usr/lib:/usr/kerberos/lib -v -d $$TGTLIBDIR bin/* sbin/*
 	#
 	# Include other files required by openssh that apparently aren't 
 	# picked up by mklibs for some reason. -BEF-
@@ -587,9 +590,8 @@
 	#
 	# The find command is to figure out the kernel version string
 	#
-	$(DEPMOD_BINARY) -r -b $(BOEL_BINARIES_DIR) \
-	  $(shell find $(BOEL_BINARIES_DIR)/lib/modules -type d -mindepth 1 \
-                       -maxdepth 1 -printf "%f")
+	BOEL_KERNEL_VERSION=`find $(BOEL_BINARIES_DIR)/lib/modules -type d -mindepth 1 -maxdepth 1 -printf "%f"` ; \
+	$(DEPMOD_BINARY) -b $(BOEL_BINARIES_DIR) $$BOEL_KERNEL_VERSION
 	#
 endif
 	#
--- initrd_source/make.d/module-init-tools.rul.old	2005-06-26 13:44:25.000000000 +0200
+++ initrd_source/make.d/module-init-tools.rul	2005-07-11 16:22:40.000000000 +0200
@@ -1,4 +1,4 @@
-MODULE_INIT_TOOLS_VERSION = 3.1-pre3
+MODULE_INIT_TOOLS_VERSION = 3.2-pre7
 MODULE_INIT_TOOLS_TARBALL = module-init-tools-$(MODULE_INIT_TOOLS_VERSION).tar.bz2
 MODULE_INIT_TOOLS_URL = http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/$(MODULE_INIT_TOOLS_TARBALL)
 MODULE_INIT_TOOLS_DIR = module-init-tools-$(MODULE_INIT_TOOLS_VERSION)
--- make.d/zlib.rul.old	2005-07-05 12:56:10.000000000 +0200
+++ make.d/zlib.rul	2005-07-11 16:22:40.000000000 +0200
@@ -1,13 +1,9 @@
-#
-#   $Id: zlib.rul 3162 2005-06-29 05:43:19Z finley $
-#   
-
-ZLIB_VERSION    := 1.1.4
-ZLIB_DIR        := zlib-$(ZLIB_VERSION)
-ZLIB_TARBALL    := zlib-$(ZLIB_VERSION).tar.gz
-ZLIB_URL        := http://www.zlib.net/$(ZLIB_TARBALL)
-ZLIB_PATCHES    := $(shell ls $(PATCH_DIR)/zlib.*.patch 2>/dev/null | sort)
-ZLIB_LIBRARY    := $(SRC_DIR)/$(ZLIB_DIR)/libz.a
+ZLIB_VERSION := 1.2.2
+ZLIB_DIR := zlib-$(ZLIB_VERSION)
+ZLIB_TARBALL := zlib-$(ZLIB_VERSION).tar.gz
+ZLIB_URL := http://www.zlib.net/$(ZLIB_TARBALL)
+ZLIB_PATCHES := $(shell ls $(PATCH_DIR)/zlib.*.patch 2>/dev/null | sort)
+ZLIB_LIBRARY := libz.a
 
 ALL_SOURCE += $(SRC_DIR)/$(ZLIB_TARBALL)
 
@@ -23,6 +19,7 @@
 	# So, we just do it twice...
 	( cd $(SRC_DIR)/$(ZLIB_DIR) && ./configure)
 	$(MAKE) -C $(SRC_DIR)/$(ZLIB_DIR)
+	( cd $(SRC_DIR)/$(ZLIB_DIR) && rm -f *.o)
 	( cd $(SRC_DIR)/$(ZLIB_DIR) && ./configure --shared)
 	$(MAKE) -C $(SRC_DIR)/$(ZLIB_DIR)
 

Reply via email to