This is the mail archive of the crossgcc@sourceware.cygnus.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more infromation.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

CrosGCC: [cross]compiling egcs/gcc with glibc headers



I'm trying to cross-compile gcc-2.95.2 and egcs-1.1.2 for a
powerpc-linux system.  Kai Ruotto suggested preinstalling headers and
libs from an exisiting powerpc-linux system (yellowdog) into the
$prefix/$target/include and $prefix/$target/lib directory.  This does
work but I'm not too keen on this method.  I'd prefer to compile
everything from the sources.

I would prefer to use gcc-2.95.2 but it has problems compiling
glibc-2.1.1 and glibc-2.1.2.  It complains about
__libc_global_constructors not being defined.  I do not have this
problem when I use egcs-1.1.2.  This problem shows up for both native
ix86-linux compiles and also powerpc-linux cross-compiles.  Any ideas ?

The egcs/gcc configure documentation says that the --with-headers=
option can be used to point to the libc headers.  I have used this
method when using newlib for a powerpc-eabi target, so I tried it
("--with-headers=<glibc-2.1.2-path>/include") with glibc-2.1.2 for a
powerpc-linux target.  When making I get errors saying that
stdlib/stdlib.h and posix/unistd.h can not be found.  eg.
In file included from
/usr/local/src/gnu-tools/egcs-1.1.2/gcc/libgcc2.c:41:
/usr/local/gcc/powerpc-linux/sys-include/stdlib.h:7: stdlib/stdlib.h: No
such file or directory
In file included from
/usr/local/src/gnu-tools/egcs-1.1.2/gcc/libgcc2.c:42:
/usr/local/gcc/powerpc-linux/sys-include/unistd.h:2: posix/unistd.h: No
such file or directory

It seems that the header files in the glib-2.1.2/include directory
actually include other files (eg. glibc-2.1.2/stdio/stdio.h,
glibc-2.1.2/stdlib/stdlib.h).  I don't know which of these header files
should be copied to the $prefix/$target/include directory.  The
configure script copies all the files from the directory specified
(--with-headers=) to $prefix/$target/sys-include.  So the other header
files can't be found.  Also, why does the configure script copy the
files to $prefix/$target/sys-include instead of $prefix/$target/include
?

What do I do ?
How do I get the correct header files from glibc to the standard place
for the [cross]compiler ?
Which are the correct header files ?  Do I need the ones in
glibc/inlcude only ?  What about the other depencies ?
I dont recall seeing stdio.h including stdio/stdio.h before.  I just
checked my /usr/include/stdio.h and there is nothing like this to be
found.  Is there some kind of script that parses the header files
first.  Does "make install" do something funky.

Please help.
I'm a bit confused with the glibc header file setup.

Thanks,
Brendan Simon.




------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]