AFAIK, we don't ever cross-compile ourselves, so it's quite possible there are problems
with our configure scripts.
Andy, this is potentially another area to add to our testing coverage.

Snider, Tim wrote:
I'm attempting to cross compile, build, and collect files to install Lustre and run on a separate machine. According to the documentation and web pages Lustre can be installed in an alternate directory path according to the web pages and configure using the --prefix, --exec-prefix, --with-lustre options when configure is run.
For me the configure script seems to be ignoring those options.
2 unique problems occur depending on if I build as a normal user or as root. Environment settings for both user and root builds are:
   LINUX=/home/tsnider/linux-2.6.18.3
   GCC_EXEC_PREFIX=/home/tsnider/tsLustre/lustre-1.5.95
   CFLAGS="-I/cross/armv5l-linux/include -g -O2"
   GCC=/cross/armv5l-linux/bin:/cross/libexec/gcc/armv5l-linux/3.4.4
   EXEC_PREFIX=/home/tsnider/tsLustre/lustre-1.5.95
   CC=/cross/armv5l-linux/bin:/cross/libexec/gcc/armv5l-linux/3.4.4
   LUSTRE=/home/tsnider/tsLustre/lustre-1.5.95
A common configuration command is also used: sh configure --host=armv5l-linux --target=armv5l-linux --with-linux=/home/tsnider/linux-2.6.18.3 --disable-l iblustre --prefix=/home/tsnider/lustre2/installLustre/ -- --exec-prefix=/home/tsnider/lustre2/installLustre// According to my understanding the --with-linux, --prefix, and --exec-prefix should cause Lustre executables/files
to be installed in the specified alternate path.
"Normal user" make issue: As a normal user "make install" tries to copy files to the system path /lib/modules/2.6.18.3...... Make errors out (as expected) since a normal user can't modify system paths/files. I assumed that one of the alternate paths would be used since they were specified during configure, but they weren't. There are 2 main possibilities for sources of the problem:
            A. pilot error (probably)
B. Configure (& associated scripts) ignore the alternate path options. "make install" output as user: make[3]: Entering directory `/home/tsnider/tsLustre/lustre-1.5.95/lnet/libcfs/linux' make[4]: Entering directory `/home/tsnider/tsLustre/lustre-1.5.95/lnet/libcfs/linux'
     make[4]: Nothing to be done for `install-exec-am'.
     make[4]: Nothing to be done for `install-data-am'.
make[4]: Leaving directory `/home/tsnider/tsLustre/lustre-1.5.95/lnet/libcfs/linux' make[3]: Leaving directory `/home/tsnider/tsLustre/lustre-1.5.95/lnet/libcfs/linux' make[3]: Entering directory `/home/tsnider/tsLustre/lustre-1.5.95/lnet/libcfs' make[4]: Entering directory `/home/tsnider/tsLustre/lustre-1.5.95/lnet/libcfs'
     make[4]: Nothing to be done for `install-exec-am'.
     /bin/sh ../../mkinstalldirs
     /bin/sh ../../mkinstalldirs /lib/modules/2.6.18.3/kernel/net/lustre
     mkdir -p -- /lib/modules/2.6.18.3/kernel/net/lustre
mkdir: cannot create directory `/lib/modules/2.6.18.3/kernel/net/lustre': Permission denied
     make[4]: *** [install-modulenetDATA] Error 1
make[4]: Leaving directory `/home/tsnider/tsLustre/lustre-1.5.95/lnet/libcfs'
     make[3]: *** [install-am] Error 2
Why doesn't mkinstalldirs redirect the install path to the one specified by the --with-linux, --prefix, or --exec-prefix option that was given during configure? Am I missing something or do the configure scripts need to be investigated? "Root" make issue: I understand from the manual and read me files that RPMs can not be made for distros other than redhat or sles. "make install" will build lustre. It appears that installation path directives are ignored. The attached file shows that makinstalldirs behaves inconsistently. Sometimes it installs in the specified path and other times it
 installs in the system path.
   /bin/sh ../../../mkinstalldirs /lib/modules/2.6.18.3/kernel/net/lustre
   /bin/sh ../../mkinstalldirs
   /bin/sh ../../mkinstalldirs
   /bin/sh ../../mkinstalldirs /home/tsnider/lustre2/installLustre//lib
   /bin/sh ../../mkinstalldirs /lib/modules/2.6.18.3/kernel/fs/lustre
For cross compilation and installation on another machine files should be in a common place so they can
 be packaged, in some manner, and sent to the target machine.
I'd like to know how to correctly specify options to do this. Or do the auto config/make scripts need
 work in order for this to work?
As root "make install" Details of errors are below. Other minor things: 1. files have to modified during build, the patches don't seem to be entirely complete. 2. Configure spits out the following warning: 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.
 3.  a few warnings appear for 2.6 port / implemnentation stuff:
/home/tsnider/lustre2/lustre-1.5.95/lustre/obdecho/echo_client.c:650:2: warning: #warning "echo_client_ubrw() needs to be ported on 2.6 yet" /home/tsnider/lustre2/lustre-1.5.95/lustre/obdfilter/lproc_obdfilter.c:392:2: warning: #warning "port on 2.6 -bzzz" Any help someone can give is appreciated. I don't know if it's possible to do what I'd like to do. The attached file contains the console output from configure and build commands. Thanks,
Timothy Snider
Storage Architect
Strategic Planning, Technology and Architecture

LSI Logic Corporation
3718 North Rock Road
Wichita, KS 67226
(316) 636-8736
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>_

------------------------------------------------------------------------

_______________________________________________
Lustre-discuss mailing list
[email protected]
https://mail.clusterfs.com/mailman/listinfo/lustre-discuss

_______________________________________________
Lustre-discuss mailing list
[email protected]
https://mail.clusterfs.com/mailman/listinfo/lustre-discuss

Reply via email to