[Lustre-discuss] Luster 1.6.3 & cross compilation

Robert Olson olson at mcs.anl.gov
Thu Oct 18 09:37:54 PDT 2007


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.
>




More information about the lustre-discuss mailing list