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