[Lustre-discuss] Luster 1.6.3 & cross compilation

Andreas Dilger adilger at clusterfs.com
Wed Oct 17 13:00:48 PDT 2007


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.




More information about the lustre-discuss mailing list