problem creating cross compile ia64
I have to create a cross compiler to run on host
machine i686 to compile file for target machine
ia64:
for the binutils 2.15 i have typed:
configure --disable-nls --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--target=ia64-linux
make
make install
and for the gcc 3.3.3:
configure --enable-languages=c --disable-nls
--disable-threads --disable-shared
--disable-checking
--prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --target=ia64-linux
make TARGET_LIBGCC2_CFLAGS='-Dinhibit_libc
-D__gthr_posix_h'
but during the make command i encounter a problem,it don't find file header .h:
"config/ia64/linux.h:62:20: signal.h: No such file or directoryconfig/ia64/linux.h:63:26: sys/ucontext.h: No such file or directory
make[2]: *** [libgcc/./_muldi3.o] Error 1"
so i add to configure command:
--with-headers=/usr/include
but now i have an error on:
" unwind-libunwind.c: In function
`uw_frame_state_for'
"
then i have add to configure command:
--disable-libunwind
but i get the same error (i have installed libunwind)!
i don't have the headers and libs of an ia64 machine, i don't need?!?!
thanks!
____________________________________________________________
Yahoo! Companion - Scarica gratis la toolbar di Ricerca di Yahoo!
http://companion.yahoo.it
Quoted 3 lines · Daniele Velardi
I have to create a cross compiler to run on host
machine i686 to compile file for target machine
ia64:
The best source of info I know of for building linux cross compilers is Dan Kegel's crosstool. See
http://kegel.com/crosstool
This is a collection of scripts to automate the process of building a cross compiler from gcc and glibc sources.
If all you want is a cross compiler for building the kernel, then you are already done. You don't need any of the libraries, as the kernel doesn't use them, so you can ignore the errors you are getting and just install what you have. It might be confusing to have a compiler installed that can only work for compiling kernels though; I don't generally recommend doing this.
If you want to compile anything other than the kernel, then you have to have the libraries. This can be built from gcc and glibc sources by using Kegel's crosstool above, or it can be built from gcc source by copying libraries/header files from the target IA-64 machine. The new way involves using --with-sysroot, the old way involves using --with-headers and --with-libs. I don't recall if --with-sysroot is in 3.3.3, but it is is in 3.3.4. If you don't have a convenient IA-64 machine to copy libraries and header files from, then crosstool might be a better choice.
Quoted 3 lines
configure --disable-nls --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--target=ia64-linux
It isn't a good idea to configure a cross-compiler using --prefix=/usr. The cross compiler might think its header files are in /usr/include and its libraries in /usr/lib. They aren't. Better is to use something like /opt or /usr/local.
Signature · 1 line
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com