Hi - Time to give Lustre another shot since it now supports a kernel version I can get built on my mac G5 linux cluster :-). Since I am still running Debian Sarge on the nodes in 32-bit mode, and the kernel needs to be build in 64-bit mode, I need to build in a cross compilation environment. This gets close to seeming to work: I can patch and build the kernel no problem (2.6.18.8). I can configure & build lustre --without-modules. When I try to build modules I get a cross compilation test for module compile failing that requires this hack patch to add the needed CROSS_COMPILE option to the kernel make: --- orig/lustre-1.6.3/configure 2007-10-07 19:05:26.000000000 -0500 +++ lustre-1.6.3/configure 2007-10-11 15:38:44.000000000 -0500 @@ -4954,7 +4954,7 @@ _ACEOF rm -f build/conftest.o build/conftest.mod.c build/conftest.ko -if { ac_try=''cp conftest.c build && make modules CC="$CC" -f $PWD/ build/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG LINUXINCLUDE="$EXTRA_LNET_INCLUDE -Iinclude -include include/linux/ autoconf.h" -o tmp_include_depends -o scripts -o include/config/ MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function- declaration $EXTRA_KCFLAGS" $ARCH_UM $MODULE_TARGET=$PWD/build'' +if { ac_try=''cp conftest.c build && make modules CROSS_COMPILE=powerpc64-unknown-linux-gnu- CC="$CC" -f $PWD/build/ Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG LINUXINCLUDE="$EXTRA_LNET_INCLUDE -Iinclude -include include/linux/ autoconf.h" -o tmp_include_depends -o scripts -o include/config/ MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function- declaration $EXTRA_KCFLAGS" $ARCH_UM $MODULE_TARGET=$PWD/build'' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? After that is in place, I can run through the compile until it tries to configure ldiskfs. configure error output below. Thanks for any advice. --bob $ ./configure --host=powerpc64-unknown-linux-gnu --with-linux=/disks/ space1/scratch/olson/linux-2.6.18.8 --disable-ldiskfs configure: WARNING: If you wanted to set the --build type, don''t use --host. If a cross compiler is detected then cross compile mode will be used. checking build system type... powerpc64-unknown-linux-gnu checking host system type... powerpc64-unknown-linux-gnu checking target system type... powerpc64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for powerpc64-unknown-linux-gnu-strip... powerpc64-unknown- linux-gnu-strip checking for powerpc64-unknown-linux-gnu-gcc... powerpc64-unknown- linux-gnu-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... yes checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether powerpc64-unknown-linux-gnu-gcc accepts -g... yes checking for powerpc64-unknown-linux-gnu-gcc option to accept ANSI C... none needed checking for style of include used by make... GNU checking dependency style of powerpc64-unknown-linux-gnu-gcc... gcc3 checking how to run the C preprocessor... powerpc64-unknown-linux-gnu- gcc -E checking for egrep... grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking whether to build Cray XT3 features... no checking whether to build BGL features... no checking for powerpc64-unknown-linux-gnu-ranlib... powerpc64-unknown- linux-gnu-ranlib checking for buggy compiler... no known problems checking for unsigned long long... yes checking size of unsigned long long... 8 ---> size SIZEOF ---> size SIZEOF 8 checking whether __i386__ is declared... no checking if powerpc64-unknown-linux-gnu-gcc accepts -m64... yes checking whether to posix osd... no checking whether to build docs... no checking whether to build utilities... yes checking whether to install init scripts... no checking whether to build Lustre tests... yes checking whether to build Lustre server support... yes checking whether to build Lustre client support... yes ./configure: line 4445: LC_CONFIG_SPLIT: command not found ./configure: line 4446: LC_CONFIG_LDISKFS: command not found checking whether to enable CDEBUG, CWARN... yes checking whether to enable ENTRY/EXIT... yes checking whether to enable LASSERT, LASSERTF... yes checking whether to build kernel modules... yes (linux-gnu) checking for Linux sources... /disks/space1/scratch/olson/linux-2.6.18.8 checking for /disks/space1/scratch/olson/linux-2.6.18.8... yes checking for Linux objects dir... /disks/space1/scratch/olson/ linux-2.6.18.8 checking for /boot/kernel.h... no checking for /var/adm/running-kernel.h... no checking for /disks/space1/scratch/olson/linux-2.6.18.8/.config... yes checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ autoconf.h... yes checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ version.h... yes checking if you are running user mode linux for powerpc64... no (asm doesn''t point at asm-um) checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ namei.h... yes checking if you are using Linux 2.6... yes checking for external module build support... yes checking that modules can be built at all... yes checking for Linux release... 2.6.18.8 checking for Lustre release... 2.6.18.8_200710111551 checking if Linux was built with CONFIG_MODULES... yes checking if Linux was built with CONFIG_MODVERSIONS... no checking if Linux was built with CONFIG_PREEMPT... no checking if Linux was built with CONFIG_KALLSYMS... yes checking if Linux was built with CONFIG_KMOD... yes checking if kernel defines cpu_online()... yes checking if kernel defines gfp_t... yes checking if kernel defines cpumask_t... yes checking for CPU affinity support... yes checking for tunable backoff TCP support... no (no kernel support) checking for tunable panic_dumplog support... no checking for QsNet sources... /disks/space1/scratch/olson/linux-2.6.18.8 checking if quadrics kernel headers are present... no checking whether to enable GM support... no checking whether to enable OpenIB support... no checking whether to enable Cisco/TopSpin IB support... no checking whether to enable Voltaire IB support... no checking whether to enable Infinicon support... no checking whether to enable OpenIB gen2 support... no checking if RapidArray kernel headers are present... no checking for portals... no checking whether to build the kernel portals LND... no checking whether to enable Myrinet MX support... no checking if struct page has a list field... no checking if task_struct has a sighand field... yes checking if Linux was built with symbol show_task is exported... yes checking if Linux was built with symbol tasklist_lock is exported... no checking kmem_cache_destroy(cachep) return int... yes checking panic_notifier_list is atomic... yes checking check INIT_WORK want 3 args... yes checking check register_sysctl_table want 2 args... yes checking check kernel has struct kmem_cache_s... yes checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ lustre_version.h... yes checking which backing filesystem to use... ldiskfs checking whether to enable pinger support... yes checking whether to enable data checksum support... yes checking whether to enable liblustre recovery support... yes checking whether to enable quota support... yes checking whether to enable a write with the health check... no checking whether to enable lru self-adjusting... yes checking task p_pptr found... no checking if Linux was built with symbol truncate_complete_page is exported... yes checking if Linux was built with symbol d_rehash_cond is exported... yes checking if Linux was built with symbol __d_rehash is exported... no checking Linux kernel architecture... powerpc checking if Linux was built with symbol node_to_cpumask is exported... no checking if Linux was built with symbol node_to_cpu_mask is exported... no checking if Linux was built with symbol node_2_cpu_mask is exported... no checking if struct kiobuf has a dovary field... no checking if kernel offers cond_resched... yes checking if zap_page_range with vma parameter... yes checking if kernel defines PDE... yes checking if kernel passes struct file to direct_IO... no checking if kernel has mm_inline.h header... no checking if struct inode has i_alloc_sem... yes checking if kernel defines register_cache()... no checking if kernel defines grab_cache_page_nowait_gfp()... no checking if kernel has new dev_set_rdonly... yes checking whether filemap_fdatawrite() is defined... yes checking if struct statfs has a f_namelen field... yes checking if kernel offers page_mapped... yes checking if struct file_operations has an unlocked_ioctl field... yes checking for exported filemap_populate... yes checking for d_add_unique... yes checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ bit_spinlock.h... yes checking if bit_spinlock.h can be compiled... yes checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ xattr_acl.h... no checking if struct open_intent has a file field... yes checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ posix_acl_xattr.h... yes checking if linux/posix_acl_xattr.h can be compiled... yes checking if Linux was built with symbol __iget is exported... no checking if Linux was built with symbol set_fs_pwd is exported... yes checking if kernel has MS_FLOCK_LOCK sb flag... no checking if kernel has third arg can_sleep in fs/locks.c: flock_lock_file_wait()... no checking if struct file_operations has flock field... yes checking if kernel supports quota_read... yes checking if inode_operations->follow_link returns a cookie... yes checking if kernel have RCU supported... yes checking if call_rcu takes three parameters... no checking if the kernel has the VFS intent patches... no checking use inode have i_mutex ... yes checking use dqonoff_mutex... yes checking kernel export nr_pagecache... NO checking first vfs_statfs parameter is dentry... yes checking vfs_kern_mount exist in kernel... yes checking invalidatepage has return int... NO checking if umount_begin needs vfsmount parameter instead of super_block... yes checking kernel has PG_fs_misc... NO checking inode has i_blksize field... yes checking check vfs_readdir need 64bit inode number... yes checking use generic_file_read... yes checking use generic_file_write... yes checking kernel has cancel_dirty_page... NO checking if kernel have PageConstant defined... no checking location of libsysio... internal checking for ./libsysio/src/rmdir.c... yes checking for ./snmp/lustre-snmp.c... yes checking location of ldiskfs... internal checking for ./ldiskfs/lustre-ldiskfs.spec.in... yes checking whether to build Lustre library... yes checking whether to build liblustre tests... yes checking whether to build mpitests... no configure: Enabling Lustre configure options for libsysio checking whether to enable pinger support... yes checking whether to enable liblustre recovery support... yes checking netdb.h usability... yes checking netdb.h presence... yes checking for netdb.h... yes checking netinet/tcp.h usability... yes checking netinet/tcp.h presence... yes checking for netinet/tcp.h... yes checking asm/types.h usability... yes checking asm/types.h presence... yes checking for asm/types.h... yes checking endian.h usability... yes checking endian.h presence... yes checking for endian.h... yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking for gethostbyname... yes checking for socket... yes checking for connect... yes checking linux/version.h usability... yes checking linux/version.h presence... yes checking for linux/version.h... yes checking for spinlock_t... yes checking for strnlen... yes checking whether to enable readline support... yes checking for readline in -lreadline... no checking if efence debugging support is requested... no checking if libwrap support is requested... no checking whether to use libpthread for lnet library... checking for pthread_create in -lpthread... yes yes checking whether to initialize libsysio... yes checking whether to use /dev/urandom for liblustre... yes checking for cap_get_proc in -lcap... no checking for non-default maximum LNET payload... no checking whether to build the userspace portals LND... no checking whether to build usocklnd... yes checking maximum OBD ioctl size... 8192 bytes checking asm/page.h usability... yes checking asm/page.h presence... yes checking for asm/page.h... yes checking sys/user.h usability... yes checking sys/user.h presence... yes checking for sys/user.h... yes checking sys/vfs.h usability... yes checking sys/vfs.h presence... yes checking for sys/vfs.h... yes checking for stdint.h... (cached) yes checking blkid/blkid.h usability... no checking blkid/blkid.h presence... no checking for blkid/blkid.h... no checking linux/quota.h usability... yes checking linux/quota.h presence... yes checking for linux/quota.h... yes checking xtio.h usability... no checking xtio.h presence... no checking for xtio.h... no checking file.h usability... no checking file.h presence... no checking for file.h... no checking linux/types.h usability... yes checking linux/types.h presence... yes checking for linux/types.h... yes checking for sys/types.h... (cached) yes checking linux/unistd.h usability... yes checking linux/unistd.h presence... yes checking for linux/unistd.h... yes checking for unistd.h... (cached) yes checking netinet/in.h usability... yes checking netinet/in.h presence... yes checking for netinet/in.h... yes checking arpa/inet.h usability... yes checking arpa/inet.h presence... yes checking for arpa/inet.h... yes checking catamount/data.h usability... no checking catamount/data.h presence... no checking for catamount/data.h... no checking for inet_ntoa... yes checking if readlink returns ssize_t... no checking ext2fs/ext2fs.h usability... no checking ext2fs/ext2fs.h presence... no checking for ext2fs/ext2fs.h... no checking whether to randomly failing memory alloc... yes checking whether to try to build SNMP support... auto checking for net-snmp-config... no checking for SNMP support... no (see config.log for errors) configure: creating ./config.status config.status: creating Makefile config.status: creating autoMakefile config.status: creating Rules config.status: creating lustre.spec config.status: creating lnet/Kernelenv config.status: creating lnet/Makefile config.status: creating lnet/autoMakefile config.status: creating lnet/autoconf/Makefile config.status: creating lnet/doc/Makefile config.status: creating lnet/include/Makefile config.status: creating lnet/include/libcfs/Makefile config.status: creating lnet/include/libcfs/linux/Makefile config.status: creating lnet/include/lnet/Makefile config.status: creating lnet/include/lnet/linux/Makefile config.status: creating lnet/klnds/Makefile config.status: creating lnet/klnds/autoMakefile config.status: creating lnet/klnds/gmlnd/Makefile config.status: creating lnet/klnds/mxlnd/autoMakefile config.status: creating lnet/klnds/mxlnd/Makefile config.status: creating lnet/klnds/gmlnd/autoMakefile config.status: creating lnet/klnds/openiblnd/Makefile config.status: creating lnet/klnds/openiblnd/autoMakefile config.status: creating lnet/klnds/o2iblnd/Makefile config.status: creating lnet/klnds/o2iblnd/autoMakefile config.status: creating lnet/klnds/ciblnd/Makefile config.status: creating lnet/klnds/ciblnd/autoMakefile config.status: creating lnet/klnds/iiblnd/Makefile config.status: creating lnet/klnds/iiblnd/autoMakefile config.status: creating lnet/klnds/viblnd/Makefile config.status: creating lnet/klnds/viblnd/autoMakefile config.status: creating lnet/klnds/qswlnd/Makefile config.status: creating lnet/klnds/qswlnd/autoMakefile config.status: creating lnet/klnds/ralnd/Makefile config.status: creating lnet/klnds/ralnd/autoMakefile config.status: creating lnet/klnds/socklnd/Makefile config.status: creating lnet/klnds/socklnd/autoMakefile config.status: creating lnet/klnds/ptllnd/Makefile config.status: creating lnet/klnds/ptllnd/autoMakefile config.status: creating lnet/libcfs/Makefile config.status: creating lnet/libcfs/autoMakefile config.status: creating lnet/libcfs/linux/Makefile config.status: creating lnet/lnet/Makefile config.status: creating lnet/lnet/autoMakefile config.status: creating lnet/selftest/Makefile config.status: creating lnet/selftest/autoMakefile config.status: creating lnet/ulnds/Makefile config.status: creating lnet/ulnds/autoMakefile config.status: creating lnet/ulnds/socklnd/Makefile config.status: creating lnet/ulnds/ptllnd/Makefile config.status: creating lnet/utils/Makefile config.status: creating lustre/Makefile config.status: creating lustre/autoMakefile config.status: creating lustre/autoconf/Makefile config.status: creating lustre/contrib/Makefile config.status: creating lustre/doc/Makefile config.status: creating lustre/include/Makefile config.status: creating lustre/include/lustre_ver.h config.status: creating lustre/include/linux/Makefile config.status: creating lustre/include/lustre/Makefile config.status: creating lustre/kernel_patches/targets/2.6-suse.target config.status: creating lustre/kernel_patches/targets/2.6-vanilla.target config.status: creating lustre/kernel_patches/targets/2.6-rhel4.target config.status: creating lustre/kernel_patches/targets/2.6-rhel5.target config.status: creating lustre/kernel_patches/targets/2.6-fc5.target config.status: creating lustre/kernel_patches/targets/2.6- patchless.target config.status: creating lustre/kernel_patches/targets/2.6-sles10.target config.status: creating lustre/kernel_patches/targets/hp_pnnl-2.4.target config.status: creating lustre/kernel_patches/targets/rh-2.4.target config.status: creating lustre/kernel_patches/targets/rhel-2.4.target config.status: creating lustre/kernel_patches/targets/ suse-2.4.21-2.target config.status: creating lustre/kernel_patches/targets/sles-2.4.target config.status: creating lustre/ldlm/Makefile config.status: creating lustre/liblustre/Makefile config.status: creating lustre/liblustre/tests/Makefile config.status: creating lustre/llite/Makefile config.status: creating lustre/llite/autoMakefile config.status: creating lustre/lov/Makefile config.status: creating lustre/lov/autoMakefile config.status: creating lustre/lvfs/Makefile config.status: creating lustre/lvfs/autoMakefile config.status: creating lustre/mdc/Makefile config.status: creating lustre/mdc/autoMakefile config.status: creating lustre/mds/Makefile config.status: creating lustre/mds/autoMakefile config.status: creating lustre/obdclass/Makefile config.status: creating lustre/obdclass/autoMakefile config.status: creating lustre/obdclass/linux/Makefile config.status: creating lustre/obdecho/Makefile config.status: creating lustre/obdecho/autoMakefile config.status: creating lustre/obdfilter/Makefile config.status: creating lustre/obdfilter/autoMakefile config.status: creating lustre/osc/Makefile config.status: creating lustre/osc/autoMakefile config.status: creating lustre/ost/Makefile config.status: creating lustre/ost/autoMakefile config.status: creating lustre/mgc/Makefile config.status: creating lustre/mgc/autoMakefile config.status: creating lustre/mgs/Makefile config.status: creating lustre/mgs/autoMakefile config.status: creating lustre/ptlrpc/Makefile config.status: creating lustre/ptlrpc/autoMakefile config.status: creating lustre/quota/Makefile config.status: creating lustre/quota/autoMakefile config.status: creating lustre/scripts/Makefile config.status: creating lustre/scripts/version_tag.pl config.status: creating lustre/tests/Makefile config.status: creating lustre/utils/Makefile config.status: creating snmp/Makefile config.status: creating snmp/autoconf/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands configure: configuring in libsysio configure: running /bin/sh ''./configure'' --prefix=/usr ''-- host=powerpc64-unknown-linux-gnu'' ''--with-linux=/disks/space1/scratch/ olson/linux-2.6.18.8'' ''--disable-ldiskfs'' ''host_alias=powerpc64- unknown-linux-gnu'' --with-lustre-hack --with-sockets --cache-file=/ dev/null --srcdir=. configure: WARNING: If you wanted to set the --build type, don''t use --host. If a cross compiler is detected then cross compile mode will be used. checking build system type... powerpc64-unknown-linux-gnu checking host system type... powerpc64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for powerpc64-unknown-linux-gnu-strip... powerpc64-unknown- linux-gnu-strip checking for powerpc64-unknown-linux-gnu-gcc... powerpc64-unknown- linux-gnu-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... yes checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether powerpc64-unknown-linux-gnu-gcc accepts -g... yes checking for powerpc64-unknown-linux-gnu-gcc option to accept ANSI C... none needed checking for style of include used by make... GNU checking dependency style of powerpc64-unknown-linux-gnu-gcc... gcc3 checking whether powerpc64-unknown-linux-gnu-gcc and cc understand -c and -o together... yes checking for powerpc64-unknown-linux-gnu-ranlib... powerpc64-unknown- linux-gnu-ranlib checking whether make sets $(MAKE)... (cached) yes checking how to run the C preprocessor... powerpc64-unknown-linux-gnu- gcc -E checking for egrep... grep -E checking for ANSI C header files... yes checking whether stat file-mode macros are broken... no checking whether time.h and sys/time.h may both be included... yes Using sysio library directory /disks/space1/scratch/olson/ lustre-1.6.3/libsysio/lib checking for symlink support... yes checking if readlink returns int... yes checking if readlink returns ssize_t... no checking whether _LARGEFILE64_SOURCE definition is required... yes checking for alpha linux... no checking for __st_ino... no checking for st_gen... no checking whether .text pseudo-op must be used... no checking for assembler global-symbol directive... .globl checking for .set assembler directive... yes checking for assembler .weak directive... yes configure: creating ./config.status config.status: creating Makefile config.status: creating tests/Makefile config.status: executing depfiles commands configure: configuring in ldiskfs configure: running /bin/sh ''./configure'' --prefix=/usr ''-- host=powerpc64-unknown-linux-gnu'' ''--with-linux=/disks/space1/scratch/ olson/linux-2.6.18.8'' ''--disable-ldiskfs'' ''host_alias=powerpc64- unknown-linux-gnu'' --with-lustre-hack --with-sockets --cache-file=/ dev/null --srcdir=. configure: WARNING: If you wanted to set the --build type, don''t use --host. If a cross compiler is detected then cross compile mode will be used. checking build system type... powerpc64-unknown-linux-gnu checking host system type... powerpc64-unknown-linux-gnu checking target system type... powerpc64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for powerpc64-unknown-linux-gnu-strip... powerpc64-unknown- linux-gnu-strip checking for powerpc64-unknown-linux-gnu-gcc... powerpc64-unknown- linux-gnu-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... yes checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether powerpc64-unknown-linux-gnu-gcc accepts -g... yes checking for powerpc64-unknown-linux-gnu-gcc option to accept ANSI C... none needed checking for style of include used by make... GNU checking dependency style of powerpc64-unknown-linux-gnu-gcc... none checking how to run the C preprocessor... powerpc64-unknown-linux-gnu- gcc -E checking for egrep... grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for powerpc64-unknown-linux-gnu-ranlib... powerpc64-unknown- linux-gnu-ranlib checking for buggy compiler... no known problems checking for unsigned long long... yes checking size of unsigned long long... 8 ---> size SIZEOF ---> size SIZEOF 8 checking whether __i386__ is declared... no checking if powerpc64-unknown-linux-gnu-gcc accepts -m64... yes checking whether to build kernel modules... yes checking for Linux sources... /disks/space1/scratch/olson/linux-2.6.18.8 checking for /disks/space1/scratch/olson/linux-2.6.18.8... yes checking for Linux objects dir... /disks/space1/scratch/olson/ linux-2.6.18.8 checking for /boot/kernel.h... no checking for /var/adm/running-kernel.h... no checking for /disks/space1/scratch/olson/linux-2.6.18.8/.config... yes checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ autoconf.h... yes checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ version.h... yes checking if you are running user mode linux for powerpc64... no (asm doesn''t point at asm-um) checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ namei.h... yes checking if you are using Linux 2.6... yes checking for external module build support... yes checking that modules can be built at all... yes checking for Linux release... 2.6.18.8 checking for Lustre release... 2.6.18.8_200710111551 checking if Linux was built with CONFIG_MODULES... yes checking if Linux was built with CONFIG_MODVERSIONS... no checking if Linux was built with CONFIG_PREEMPT... no checking if Linux was built with CONFIG_KALLSYMS... yes checking if Linux was built with CONFIG_KMOD... yes checking for /disks/space1/scratch/olson/linux-2.6.18.8/scripts/mod/ modpost... configure: error: cannot check for file existence when cross compiling configure: error: /bin/sh ''./configure'' failed for ldiskfs
Hacking the ldiskfs configure script to just wire in the modpost information lets me complete the configure. Building smacks into the #error in linux/ldiskfs_fs.h: #ifndef ext2_find_next_le_bit #ifdef __LITTLE_ENDIAN #define ext2_find_next_le_bit(addr, size, off) find_next_bit((addr), (size), (off)) #else #error "mballoc needs a patch for big-endian systems - CFS bug 10634" #endif /* __LITTLE_ENDIAN */ #endif /* !ext2_find_next_le_bit */ the bitops patch that is in the patches directory (bitops_ext2_find_next_le_bit-2.6.patch) fails against the 2.6.18 sources. --bob On Oct 11, 2007, at 3:55 PM, Robert Olson wrote:> Hi - > > Time to give Lustre another shot since it now supports a kernel > version I can get built on my mac G5 linux cluster :-). > > Since I am still running Debian Sarge on the nodes in 32-bit mode, > and the kernel needs to be build in 64-bit mode, I need to build in a > cross compilation environment. This gets close to seeming to work: > > I can patch and build the kernel no problem (2.6.18.8). > > I can configure & build lustre --without-modules. > > When I try to build modules I get a cross compilation test for module > compile failing that requires this hack patch to add the needed > CROSS_COMPILE option to the kernel make: > > --- orig/lustre-1.6.3/configure 2007-10-07 19:05:26.000000000 -0500 > +++ lustre-1.6.3/configure 2007-10-11 15:38:44.000000000 -0500 > @@ -4954,7 +4954,7 @@ > _ACEOF > rm -f build/conftest.o build/conftest.mod.c build/conftest.ko > -if { ac_try=''cp conftest.c build && make modules CC="$CC" -f $PWD/ > build/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG > LINUXINCLUDE="$EXTRA_LNET_INCLUDE -Iinclude -include include/linux/ > autoconf.h" -o tmp_include_depends -o scripts -o include/config/ > MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function- > declaration $EXTRA_KCFLAGS" $ARCH_UM $MODULE_TARGET=$PWD/build'' > +if { ac_try=''cp conftest.c build && make modules > CROSS_COMPILE=powerpc64-unknown-linux-gnu- CC="$CC" -f $PWD/build/ > Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG > LINUXINCLUDE="$EXTRA_LNET_INCLUDE -Iinclude -include include/linux/ > autoconf.h" -o tmp_include_depends -o scripts -o include/config/ > MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function- > declaration $EXTRA_KCFLAGS" $ARCH_UM $MODULE_TARGET=$PWD/build'' > { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 > (eval $ac_try) 2>&5 > ac_status=$? > > > After that is in place, I can run through the compile until it tries > to configure ldiskfs. configure error output below. > > Thanks for any advice. > > --bob > > $ ./configure --host=powerpc64-unknown-linux-gnu --with-linux=/disks/ > space1/scratch/olson/linux-2.6.18.8 --disable-ldiskfs > configure: WARNING: If you wanted to set the --build type, don''t use > --host. > If a cross compiler is detected then cross compile mode will be > used. > checking build system type... powerpc64-unknown-linux-gnu > checking host system type... powerpc64-unknown-linux-gnu > checking target system type... powerpc64-unknown-linux-gnu > checking for a BSD-compatible install... /usr/bin/install -c > checking whether build environment is sane... yes > checking for gawk... gawk > checking whether make sets $(MAKE)... yes > checking for powerpc64-unknown-linux-gnu-strip... powerpc64-unknown- > linux-gnu-strip > checking for powerpc64-unknown-linux-gnu-gcc... powerpc64-unknown- > linux-gnu-gcc > checking for C compiler default output file name... a.out > checking whether the C compiler works... yes > checking whether we are cross compiling... yes > checking for suffix of executables... > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether powerpc64-unknown-linux-gnu-gcc accepts -g... yes > checking for powerpc64-unknown-linux-gnu-gcc option to accept ANSI > C... none needed > checking for style of include used by make... GNU > checking dependency style of powerpc64-unknown-linux-gnu-gcc... gcc3 > checking how to run the C preprocessor... powerpc64-unknown-linux-gnu- > gcc -E > checking for egrep... grep -E > checking for ANSI C header files... yes > checking for sys/types.h... yes > checking for sys/stat.h... yes > checking for stdlib.h... yes > checking for string.h... yes > checking for memory.h... yes > checking for strings.h... yes > checking for inttypes.h... yes > checking for stdint.h... yes > checking for unistd.h... yes > checking whether to build Cray XT3 features... no > checking whether to build BGL features... no > checking for powerpc64-unknown-linux-gnu-ranlib... powerpc64-unknown- > linux-gnu-ranlib > checking for buggy compiler... no known problems > checking for unsigned long long... yes > checking size of unsigned long long... 8 > ---> size SIZEOF > ---> size SIZEOF 8 > checking whether __i386__ is declared... no > checking if powerpc64-unknown-linux-gnu-gcc accepts -m64... yes > > checking whether to posix osd... no > checking whether to build docs... no > checking whether to build utilities... yes > checking whether to install init scripts... no > checking whether to build Lustre tests... yes > checking whether to build Lustre server support... yes > checking whether to build Lustre client support... yes > ./configure: line 4445: LC_CONFIG_SPLIT: command not found > ./configure: line 4446: LC_CONFIG_LDISKFS: command not found > checking whether to enable CDEBUG, CWARN... yes > checking whether to enable ENTRY/EXIT... yes > checking whether to enable LASSERT, LASSERTF... yes > checking whether to build kernel modules... yes (linux-gnu) > checking for Linux sources... /disks/space1/scratch/olson/ > linux-2.6.18.8 > checking for /disks/space1/scratch/olson/linux-2.6.18.8... yes > checking for Linux objects dir... /disks/space1/scratch/olson/ > linux-2.6.18.8 > checking for /boot/kernel.h... no > checking for /var/adm/running-kernel.h... no > checking for /disks/space1/scratch/olson/linux-2.6.18.8/.config... yes > checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ > autoconf.h... yes > checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ > version.h... yes > checking if you are running user mode linux for powerpc64... no (asm > doesn''t point at asm-um) > checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ > namei.h... yes > checking if you are using Linux 2.6... yes > checking for external module build support... yes > checking that modules can be built at all... yes > checking for Linux release... 2.6.18.8 > checking for Lustre release... 2.6.18.8_200710111551 > checking if Linux was built with CONFIG_MODULES... yes > checking if Linux was built with CONFIG_MODVERSIONS... no > checking if Linux was built with CONFIG_PREEMPT... no > checking if Linux was built with CONFIG_KALLSYMS... yes > checking if Linux was built with CONFIG_KMOD... yes > checking if kernel defines cpu_online()... yes > checking if kernel defines gfp_t... yes > checking if kernel defines cpumask_t... yes > checking for CPU affinity support... yes > checking for tunable backoff TCP support... no (no kernel support) > checking for tunable panic_dumplog support... no > checking for QsNet sources... /disks/space1/scratch/olson/ > linux-2.6.18.8 > checking if quadrics kernel headers are present... no > checking whether to enable GM support... no > checking whether to enable OpenIB support... no > checking whether to enable Cisco/TopSpin IB support... no > checking whether to enable Voltaire IB support... no > checking whether to enable Infinicon support... no > checking whether to enable OpenIB gen2 support... no > checking if RapidArray kernel headers are present... no > checking for portals... no > checking whether to build the kernel portals LND... no > checking whether to enable Myrinet MX support... no > checking if struct page has a list field... no > checking if task_struct has a sighand field... yes > checking if Linux was built with symbol show_task is exported... yes > checking if Linux was built with symbol tasklist_lock is > exported... no > checking kmem_cache_destroy(cachep) return int... yes > checking panic_notifier_list is atomic... yes > checking check INIT_WORK want 3 args... yes > checking check register_sysctl_table want 2 args... yes > checking check kernel has struct kmem_cache_s... yes > checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ > lustre_version.h... yes > checking which backing filesystem to use... ldiskfs > checking whether to enable pinger support... yes > checking whether to enable data checksum support... yes > checking whether to enable liblustre recovery support... yes > checking whether to enable quota support... yes > checking whether to enable a write with the health check... no > checking whether to enable lru self-adjusting... yes > checking task p_pptr found... no > checking if Linux was built with symbol truncate_complete_page is > exported... yes > checking if Linux was built with symbol d_rehash_cond is > exported... yes > checking if Linux was built with symbol __d_rehash is exported... no > checking Linux kernel architecture... powerpc > checking if Linux was built with symbol node_to_cpumask is > exported... no > checking if Linux was built with symbol node_to_cpu_mask is > exported... no > checking if Linux was built with symbol node_2_cpu_mask is > exported... no > checking if struct kiobuf has a dovary field... no > checking if kernel offers cond_resched... yes > checking if zap_page_range with vma parameter... yes > checking if kernel defines PDE... yes > checking if kernel passes struct file to direct_IO... no > checking if kernel has mm_inline.h header... no > checking if struct inode has i_alloc_sem... yes > checking if kernel defines register_cache()... no > checking if kernel defines grab_cache_page_nowait_gfp()... no > checking if kernel has new dev_set_rdonly... yes > checking whether filemap_fdatawrite() is defined... yes > checking if struct statfs has a f_namelen field... yes > checking if kernel offers page_mapped... yes > checking if struct file_operations has an unlocked_ioctl field... yes > checking for exported filemap_populate... yes > checking for d_add_unique... yes > checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ > bit_spinlock.h... yes > checking if bit_spinlock.h can be compiled... yes > checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ > xattr_acl.h... no > checking if struct open_intent has a file field... yes > checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ > posix_acl_xattr.h... yes > checking if linux/posix_acl_xattr.h can be compiled... yes > checking if Linux was built with symbol __iget is exported... no > checking if Linux was built with symbol set_fs_pwd is exported... yes > checking if kernel has MS_FLOCK_LOCK sb flag... no > checking if kernel has third arg can_sleep in fs/locks.c: > flock_lock_file_wait()... no > checking if struct file_operations has flock field... yes > checking if kernel supports quota_read... yes > checking if inode_operations->follow_link returns a cookie... yes > checking if kernel have RCU supported... yes > checking if call_rcu takes three parameters... no > checking if the kernel has the VFS intent patches... no > checking use inode have i_mutex ... yes > checking use dqonoff_mutex... yes > checking kernel export nr_pagecache... NO > checking first vfs_statfs parameter is dentry... yes > checking vfs_kern_mount exist in kernel... yes > checking invalidatepage has return int... NO > checking if umount_begin needs vfsmount parameter instead of > super_block... yes > checking kernel has PG_fs_misc... NO > checking inode has i_blksize field... yes > checking check vfs_readdir need 64bit inode number... yes > checking use generic_file_read... yes > checking use generic_file_write... yes > checking kernel has cancel_dirty_page... NO > checking if kernel have PageConstant defined... no > checking location of libsysio... internal > checking for ./libsysio/src/rmdir.c... yes > checking for ./snmp/lustre-snmp.c... yes > checking location of ldiskfs... internal > checking for ./ldiskfs/lustre-ldiskfs.spec.in... yes > checking whether to build Lustre library... yes > checking whether to build liblustre tests... yes > checking whether to build mpitests... no > configure: Enabling Lustre configure options for libsysio > checking whether to enable pinger support... yes > checking whether to enable liblustre recovery support... yes > checking netdb.h usability... yes > checking netdb.h presence... yes > checking for netdb.h... yes > checking netinet/tcp.h usability... yes > checking netinet/tcp.h presence... yes > checking for netinet/tcp.h... yes > checking asm/types.h usability... yes > checking asm/types.h presence... yes > checking for asm/types.h... yes > checking endian.h usability... yes > checking endian.h presence... yes > checking for endian.h... yes > checking sys/ioctl.h usability... yes > checking sys/ioctl.h presence... yes > checking for sys/ioctl.h... yes > checking for gethostbyname... yes > checking for socket... yes > checking for connect... yes > checking linux/version.h usability... yes > checking linux/version.h presence... yes > checking for linux/version.h... yes > checking for spinlock_t... yes > checking for strnlen... yes > checking whether to enable readline support... yes > checking for readline in -lreadline... no > checking if efence debugging support is requested... no > checking if libwrap support is requested... no > checking whether to use libpthread for lnet library... checking for > pthread_create in -lpthread... yes > yes > checking whether to initialize libsysio... yes > checking whether to use /dev/urandom for liblustre... yes > checking for cap_get_proc in -lcap... no > checking for non-default maximum LNET payload... no > checking whether to build the userspace portals LND... no > checking whether to build usocklnd... yes > checking maximum OBD ioctl size... 8192 bytes > checking asm/page.h usability... yes > checking asm/page.h presence... yes > checking for asm/page.h... yes > checking sys/user.h usability... yes > checking sys/user.h presence... yes > checking for sys/user.h... yes > checking sys/vfs.h usability... yes > checking sys/vfs.h presence... yes > checking for sys/vfs.h... yes > checking for stdint.h... (cached) yes > checking blkid/blkid.h usability... no > checking blkid/blkid.h presence... no > checking for blkid/blkid.h... no > checking linux/quota.h usability... yes > checking linux/quota.h presence... yes > checking for linux/quota.h... yes > checking xtio.h usability... no > checking xtio.h presence... no > checking for xtio.h... no > checking file.h usability... no > checking file.h presence... no > checking for file.h... no > checking linux/types.h usability... yes > checking linux/types.h presence... yes > checking for linux/types.h... yes > checking for sys/types.h... (cached) yes > checking linux/unistd.h usability... yes > checking linux/unistd.h presence... yes > checking for linux/unistd.h... yes > checking for unistd.h... (cached) yes > checking netinet/in.h usability... yes > checking netinet/in.h presence... yes > checking for netinet/in.h... yes > checking arpa/inet.h usability... yes > checking arpa/inet.h presence... yes > checking for arpa/inet.h... yes > checking catamount/data.h usability... no > checking catamount/data.h presence... no > checking for catamount/data.h... no > checking for inet_ntoa... yes > checking if readlink returns ssize_t... no > checking ext2fs/ext2fs.h usability... no > checking ext2fs/ext2fs.h presence... no > checking for ext2fs/ext2fs.h... no > checking whether to randomly failing memory alloc... yes > checking whether to try to build SNMP support... auto > checking for net-snmp-config... no > checking for SNMP support... no (see config.log for errors) > configure: creating ./config.status > config.status: creating Makefile > config.status: creating autoMakefile > config.status: creating Rules > config.status: creating lustre.spec > config.status: creating lnet/Kernelenv > config.status: creating lnet/Makefile > config.status: creating lnet/autoMakefile > config.status: creating lnet/autoconf/Makefile > config.status: creating lnet/doc/Makefile > config.status: creating lnet/include/Makefile > config.status: creating lnet/include/libcfs/Makefile > config.status: creating lnet/include/libcfs/linux/Makefile > config.status: creating lnet/include/lnet/Makefile > config.status: creating lnet/include/lnet/linux/Makefile > config.status: creating lnet/klnds/Makefile > config.status: creating lnet/klnds/autoMakefile > config.status: creating lnet/klnds/gmlnd/Makefile > config.status: creating lnet/klnds/mxlnd/autoMakefile > config.status: creating lnet/klnds/mxlnd/Makefile > config.status: creating lnet/klnds/gmlnd/autoMakefile > config.status: creating lnet/klnds/openiblnd/Makefile > config.status: creating lnet/klnds/openiblnd/autoMakefile > config.status: creating lnet/klnds/o2iblnd/Makefile > config.status: creating lnet/klnds/o2iblnd/autoMakefile > config.status: creating lnet/klnds/ciblnd/Makefile > config.status: creating lnet/klnds/ciblnd/autoMakefile > config.status: creating lnet/klnds/iiblnd/Makefile > config.status: creating lnet/klnds/iiblnd/autoMakefile > config.status: creating lnet/klnds/viblnd/Makefile > config.status: creating lnet/klnds/viblnd/autoMakefile > config.status: creating lnet/klnds/qswlnd/Makefile > config.status: creating lnet/klnds/qswlnd/autoMakefile > config.status: creating lnet/klnds/ralnd/Makefile > config.status: creating lnet/klnds/ralnd/autoMakefile > config.status: creating lnet/klnds/socklnd/Makefile > config.status: creating lnet/klnds/socklnd/autoMakefile > config.status: creating lnet/klnds/ptllnd/Makefile > config.status: creating lnet/klnds/ptllnd/autoMakefile > config.status: creating lnet/libcfs/Makefile > config.status: creating lnet/libcfs/autoMakefile > config.status: creating lnet/libcfs/linux/Makefile > config.status: creating lnet/lnet/Makefile > config.status: creating lnet/lnet/autoMakefile > config.status: creating lnet/selftest/Makefile > config.status: creating lnet/selftest/autoMakefile > config.status: creating lnet/ulnds/Makefile > config.status: creating lnet/ulnds/autoMakefile > config.status: creating lnet/ulnds/socklnd/Makefile > config.status: creating lnet/ulnds/ptllnd/Makefile > config.status: creating lnet/utils/Makefile > config.status: creating lustre/Makefile > config.status: creating lustre/autoMakefile > config.status: creating lustre/autoconf/Makefile > config.status: creating lustre/contrib/Makefile > config.status: creating lustre/doc/Makefile > config.status: creating lustre/include/Makefile > config.status: creating lustre/include/lustre_ver.h > config.status: creating lustre/include/linux/Makefile > config.status: creating lustre/include/lustre/Makefile > config.status: creating lustre/kernel_patches/targets/2.6-suse.target > config.status: creating lustre/kernel_patches/targets/2.6- > vanilla.target > config.status: creating lustre/kernel_patches/targets/2.6-rhel4.target > config.status: creating lustre/kernel_patches/targets/2.6-rhel5.target > config.status: creating lustre/kernel_patches/targets/2.6-fc5.target > config.status: creating lustre/kernel_patches/targets/2.6- > patchless.target > config.status: creating lustre/kernel_patches/targets/2.6- > sles10.target > config.status: creating lustre/kernel_patches/targets/ > hp_pnnl-2.4.target > config.status: creating lustre/kernel_patches/targets/rh-2.4.target > config.status: creating lustre/kernel_patches/targets/rhel-2.4.target > config.status: creating lustre/kernel_patches/targets/ > suse-2.4.21-2.target > config.status: creating lustre/kernel_patches/targets/sles-2.4.target > config.status: creating lustre/ldlm/Makefile > config.status: creating lustre/liblustre/Makefile > config.status: creating lustre/liblustre/tests/Makefile > config.status: creating lustre/llite/Makefile > config.status: creating lustre/llite/autoMakefile > config.status: creating lustre/lov/Makefile > config.status: creating lustre/lov/autoMakefile > config.status: creating lustre/lvfs/Makefile > config.status: creating lustre/lvfs/autoMakefile > config.status: creating lustre/mdc/Makefile > config.status: creating lustre/mdc/autoMakefile > config.status: creating lustre/mds/Makefile > config.status: creating lustre/mds/autoMakefile > config.status: creating lustre/obdclass/Makefile > config.status: creating lustre/obdclass/autoMakefile > config.status: creating lustre/obdclass/linux/Makefile > config.status: creating lustre/obdecho/Makefile > config.status: creating lustre/obdecho/autoMakefile > config.status: creating lustre/obdfilter/Makefile > config.status: creating lustre/obdfilter/autoMakefile > config.status: creating lustre/osc/Makefile > config.status: creating lustre/osc/autoMakefile > config.status: creating lustre/ost/Makefile > config.status: creating lustre/ost/autoMakefile > config.status: creating lustre/mgc/Makefile > config.status: creating lustre/mgc/autoMakefile > config.status: creating lustre/mgs/Makefile > config.status: creating lustre/mgs/autoMakefile > config.status: creating lustre/ptlrpc/Makefile > config.status: creating lustre/ptlrpc/autoMakefile > config.status: creating lustre/quota/Makefile > config.status: creating lustre/quota/autoMakefile > config.status: creating lustre/scripts/Makefile > config.status: creating lustre/scripts/version_tag.pl > config.status: creating lustre/tests/Makefile > config.status: creating lustre/utils/Makefile > config.status: creating snmp/Makefile > config.status: creating snmp/autoconf/Makefile > config.status: creating config.h > config.status: config.h is unchanged > config.status: executing depfiles commands > configure: configuring in libsysio > configure: running /bin/sh ''./configure'' --prefix=/usr ''-- > host=powerpc64-unknown-linux-gnu'' ''--with-linux=/disks/space1/scratch/ > olson/linux-2.6.18.8'' ''--disable-ldiskfs'' ''host_alias=powerpc64- > unknown-linux-gnu'' --with-lustre-hack --with-sockets --cache-file=/ > dev/null --srcdir=. > configure: WARNING: If you wanted to set the --build type, don''t use > --host. > If a cross compiler is detected then cross compile mode will be > used. > checking build system type... powerpc64-unknown-linux-gnu > checking host system type... powerpc64-unknown-linux-gnu > checking for a BSD-compatible install... /usr/bin/install -c > checking whether build environment is sane... yes > checking for gawk... gawk > checking whether make sets $(MAKE)... yes > checking for powerpc64-unknown-linux-gnu-strip... powerpc64-unknown- > linux-gnu-strip > checking for powerpc64-unknown-linux-gnu-gcc... powerpc64-unknown- > linux-gnu-gcc > checking for C compiler default output file name... a.out > checking whether the C compiler works... yes > checking whether we are cross compiling... yes > checking for suffix of executables... > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether powerpc64-unknown-linux-gnu-gcc accepts -g... yes > checking for powerpc64-unknown-linux-gnu-gcc option to accept ANSI > C... none needed > checking for style of include used by make... GNU > checking dependency style of powerpc64-unknown-linux-gnu-gcc... gcc3 > checking whether powerpc64-unknown-linux-gnu-gcc and cc understand -c > and -o together... yes > checking for powerpc64-unknown-linux-gnu-ranlib... powerpc64-unknown- > linux-gnu-ranlib > checking whether make sets $(MAKE)... (cached) yes > checking how to run the C preprocessor... powerpc64-unknown-linux-gnu- > gcc -E > checking for egrep... grep -E > checking for ANSI C header files... yes > checking whether stat file-mode macros are broken... no > checking whether time.h and sys/time.h may both be included... yes > Using sysio library directory /disks/space1/scratch/olson/ > lustre-1.6.3/libsysio/lib > checking for symlink support... yes > checking if readlink returns int... yes > checking if readlink returns ssize_t... no > checking whether _LARGEFILE64_SOURCE definition is required... yes > checking for alpha linux... no > checking for __st_ino... no > checking for st_gen... no > checking whether .text pseudo-op must be used... no > checking for assembler global-symbol directive... .globl > checking for .set assembler directive... yes > checking for assembler .weak directive... yes > configure: creating ./config.status > config.status: creating Makefile > config.status: creating tests/Makefile > config.status: executing depfiles commands > configure: configuring in ldiskfs > configure: running /bin/sh ''./configure'' --prefix=/usr ''-- > host=powerpc64-unknown-linux-gnu'' ''--with-linux=/disks/space1/scratch/ > olson/linux-2.6.18.8'' ''--disable-ldiskfs'' ''host_alias=powerpc64- > unknown-linux-gnu'' --with-lustre-hack --with-sockets --cache-file=/ > dev/null --srcdir=. > configure: WARNING: If you wanted to set the --build type, don''t use > --host. > If a cross compiler is detected then cross compile mode will be > used. > checking build system type... powerpc64-unknown-linux-gnu > checking host system type... powerpc64-unknown-linux-gnu > checking target system type... powerpc64-unknown-linux-gnu > checking for a BSD-compatible install... /usr/bin/install -c > checking whether build environment is sane... yes > checking for gawk... gawk > checking whether make sets $(MAKE)... yes > checking for powerpc64-unknown-linux-gnu-strip... powerpc64-unknown- > linux-gnu-strip > checking for powerpc64-unknown-linux-gnu-gcc... powerpc64-unknown- > linux-gnu-gcc > checking for C compiler default output file name... a.out > checking whether the C compiler works... yes > checking whether we are cross compiling... yes > checking for suffix of executables... > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether powerpc64-unknown-linux-gnu-gcc accepts -g... yes > checking for powerpc64-unknown-linux-gnu-gcc option to accept ANSI > C... none needed > checking for style of include used by make... GNU > checking dependency style of powerpc64-unknown-linux-gnu-gcc... none > checking how to run the C preprocessor... powerpc64-unknown-linux-gnu- > gcc -E > checking for egrep... grep -E > checking for ANSI C header files... yes > checking for sys/types.h... yes > checking for sys/stat.h... yes > checking for stdlib.h... yes > checking for string.h... yes > checking for memory.h... yes > checking for strings.h... yes > checking for inttypes.h... yes > checking for stdint.h... yes > checking for unistd.h... yes > checking for powerpc64-unknown-linux-gnu-ranlib... powerpc64-unknown- > linux-gnu-ranlib > checking for buggy compiler... no known problems > checking for unsigned long long... yes > checking size of unsigned long long... 8 > ---> size SIZEOF > ---> size SIZEOF 8 > checking whether __i386__ is declared... no > checking if powerpc64-unknown-linux-gnu-gcc accepts -m64... yes > checking whether to build kernel modules... yes > checking for Linux sources... /disks/space1/scratch/olson/ > linux-2.6.18.8 > checking for /disks/space1/scratch/olson/linux-2.6.18.8... yes > checking for Linux objects dir... /disks/space1/scratch/olson/ > linux-2.6.18.8 > checking for /boot/kernel.h... no > checking for /var/adm/running-kernel.h... no > checking for /disks/space1/scratch/olson/linux-2.6.18.8/.config... yes > checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ > autoconf.h... yes > checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ > version.h... yes > checking if you are running user mode linux for powerpc64... no (asm > doesn''t point at asm-um) > checking for /disks/space1/scratch/olson/linux-2.6.18.8/include/linux/ > namei.h... yes > checking if you are using Linux 2.6... yes > checking for external module build support... yes > checking that modules can be built at all... yes > checking for Linux release... 2.6.18.8 > checking for Lustre release... 2.6.18.8_200710111551 > checking if Linux was built with CONFIG_MODULES... yes > checking if Linux was built with CONFIG_MODVERSIONS... no > checking if Linux was built with CONFIG_PREEMPT... no > checking if Linux was built with CONFIG_KALLSYMS... yes > checking if Linux was built with CONFIG_KMOD... yes > checking for /disks/space1/scratch/olson/linux-2.6.18.8/scripts/mod/ > modpost... configure: error: cannot check for file existence when > cross compiling > configure: error: /bin/sh ''./configure'' failed for ldiskfs > > _______________________________________________ > Lustre-discuss mailing list > Lustre-discuss at clusterfs.com > https://mail.clusterfs.com/mailman/listinfo/lustre-discuss >
On Oct 11, 2007 15:55 -0500, Robert Olson wrote:> Time to give Lustre another shot since it now supports a kernel > version I can get built on my mac G5 linux cluster :-). > > Since I am still running Debian Sarge on the nodes in 32-bit mode, > and the kernel needs to be build in 64-bit mode, I need to build in a > cross compilation environment. This gets close to seeming to work: > > I can patch and build the kernel no problem (2.6.18.8). > > I can configure & build lustre --without-modules. > > When I try to build modules I get a cross compilation test for module > compile failing that requires this hack patch to add the needed > CROSS_COMPILE option to the kernel make: > > --- orig/lustre-1.6.3/configure 2007-10-07 19:05:26.000000000 -0500 > +++ lustre-1.6.3/configure 2007-10-11 15:38:44.000000000 -0500 > @@ -4954,7 +4954,7 @@ > _ACEOF > rm -f build/conftest.o build/conftest.mod.c build/conftest.ko > -if { ac_try=''cp conftest.c build && make modules CC="$CC" -f $PWD/ > build/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG > LINUXINCLUDE="$EXTRA_LNET_INCLUDE -Iinclude -include include/linux/ > autoconf.h" -o tmp_include_depends -o scripts -o include/config/ > MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function- > declaration $EXTRA_KCFLAGS" $ARCH_UM $MODULE_TARGET=$PWD/build'' > +if { ac_try=''cp conftest.c build && make modules > CROSS_COMPILE=powerpc64-unknown-linux-gnu- CC="$CC" -f $PWD/build/ > Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG > LINUXINCLUDE="$EXTRA_LNET_INCLUDE -Iinclude -include include/linux/ > autoconf.h" -o tmp_include_depends -o scripts -o include/config/ > MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function- > declaration $EXTRA_KCFLAGS" $ARCH_UM $MODULE_TARGET=$PWD/build'' > { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 > (eval $ac_try) 2>&5 > ac_status=$?Can you please put this in a patch attachment on a bug, so it will be tracked for landing.> After that is in place, I can run through the compile until it tries > to configure ldiskfs. configure error output below.> configure: running /bin/sh ''./configure'' --prefix=/usr ''-- > host=powerpc64-unknown-linux-gnu'' ''--with-linux=/disks/space1/scratch/ > olson/linux-2.6.18.8'' ''--disable-ldiskfs'' ''host_alias=powerpc64- > unknown-linux-gnu'' --with-lustre-hack --with-sockets --cache-file=/ > dev/null --srcdir=. > configure: WARNING: If you wanted to set the --build type, don''t use > --host. > If a cross compiler is detected then cross compile mode will be > used.This might be a result of running the configure recursively? I''m not very well versed in cross-compiling.> checking if Linux was built with CONFIG_KMOD... yes > checking for /disks/space1/scratch/olson/linux-2.6.18.8/scripts/mod/ > modpost... configure: error: cannot check for file existence when > cross compiling > configure: error: /bin/sh ''./configure'' failed for ldiskfsHmm, this seems to be yet a separate issue, and probably worthy of a bug report. I suspect it is mostly a matter of fixing up the configure check (which you are probably in the best position to examine). Cheers, Andreas -- Andreas Dilger Principal Software Engineer Cluster File Systems, Inc.
Thanks; unfortunately I''m a bit out of my depth as well - the patch I did to the configure script is a raw hack, and really should be done more correctly by someone who knows what they''re doing. I''ll be upgrading this cluster to native 64-bit at some point, so may just wait until then to try out lustre. --bob On Oct 17, 2007, at 3:00 PM, Andreas Dilger wrote:> On Oct 11, 2007 15:55 -0500, Robert Olson wrote: >> Time to give Lustre another shot since it now supports a kernel >> version I can get built on my mac G5 linux cluster :-). >> >> Since I am still running Debian Sarge on the nodes in 32-bit mode, >> and the kernel needs to be build in 64-bit mode, I need to build in a >> cross compilation environment. This gets close to seeming to work: >> >> I can patch and build the kernel no problem (2.6.18.8). >> >> I can configure & build lustre --without-modules. >> >> When I try to build modules I get a cross compilation test for module >> compile failing that requires this hack patch to add the needed >> CROSS_COMPILE option to the kernel make: >> >> --- orig/lustre-1.6.3/configure 2007-10-07 19:05:26.000000000 -0500 >> +++ lustre-1.6.3/configure 2007-10-11 15:38:44.000000000 -0500 >> @@ -4954,7 +4954,7 @@ >> _ACEOF >> rm -f build/conftest.o build/conftest.mod.c build/conftest.ko >> -if { ac_try=''cp conftest.c build && make modules CC="$CC" -f $PWD/ >> build/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG >> LINUXINCLUDE="$EXTRA_LNET_INCLUDE -Iinclude -include include/linux/ >> autoconf.h" -o tmp_include_depends -o scripts -o include/config/ >> MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function- >> declaration $EXTRA_KCFLAGS" $ARCH_UM $MODULE_TARGET=$PWD/build'' >> +if { ac_try=''cp conftest.c build && make modules >> CROSS_COMPILE=powerpc64-unknown-linux-gnu- CC="$CC" -f $PWD/build/ >> Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG >> LINUXINCLUDE="$EXTRA_LNET_INCLUDE -Iinclude -include include/linux/ >> autoconf.h" -o tmp_include_depends -o scripts -o include/config/ >> MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function- >> declaration $EXTRA_KCFLAGS" $ARCH_UM $MODULE_TARGET=$PWD/build'' >> { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 >> (eval $ac_try) 2>&5 >> ac_status=$? > > Can you please put this in a patch attachment on a bug, so it will > be tracked for landing. > >> After that is in place, I can run through the compile until it tries >> to configure ldiskfs. configure error output below. > >> configure: running /bin/sh ''./configure'' --prefix=/usr ''-- >> host=powerpc64-unknown-linux-gnu'' ''--with-linux=/disks/space1/ >> scratch/ >> olson/linux-2.6.18.8'' ''--disable-ldiskfs'' ''host_alias=powerpc64- >> unknown-linux-gnu'' --with-lustre-hack --with-sockets --cache-file=/ >> dev/null --srcdir=. >> configure: WARNING: If you wanted to set the --build type, don''t use >> --host. >> If a cross compiler is detected then cross compile mode will be >> used. > > This might be a result of running the configure recursively? I''m not > very well versed in cross-compiling. > >> checking if Linux was built with CONFIG_KMOD... yes >> checking for /disks/space1/scratch/olson/linux-2.6.18.8/scripts/mod/ >> modpost... configure: error: cannot check for file existence when >> cross compiling >> configure: error: /bin/sh ''./configure'' failed for ldiskfs > > Hmm, this seems to be yet a separate issue, and probably worthy of > a bug report. I suspect it is mostly a matter of fixing up the > configure check (which you are probably in the best position to > examine). > > Cheers, Andreas > -- > Andreas Dilger > Principal Software Engineer > Cluster File Systems, Inc. >