progress towards mipsel glibc-2.3.5

Jake C. Page jcpage@2wire.com
Sat Apr 16 05:30:00 GMT 2005


>   Known issues:
>    * gcc-3.4.1-glibc-2.3.3 target mips fails on "make
sysdeps/gnu/errlist.c" with
>      sysdeps/generic/bits/types.h:127:3: #error
>      due to undefined __WORDSIZE?!

Hey,

I found the reason(s) behind the mips compile failures on glibc-2.3.5
(using gcc-3.4.1, but I imagine 3.4.2 & 3.4.3 are similar...)
I managed to get it to compile with some really ugly hacks.  Still
working on a cleaner patch, but I thought some might find this info
useful since there were several questions about it on the list.

Peeling back the onion...

* sysdeps/mips/mips32/Makefile has "CC += -mabi=32" which causes my i386
host gcc used for the header config to choke when generating dependency
info.  I just added an "ifneq ($(findstring mipsel,$(CC)),) ... endif"
block around this to workaround (will only use -mabi=32 if the compiler
has 'mipsel' in it's name).

* glibc-headers won't compile due to the fact that several places are
checking for gcc-defined macros _MIPS_SIM and _MIPS_SZPTR.
I defined CFLAGS="-D_MIPS_SIM=_ABIO32 -D_MIPS_SZPTR=32" in the configure
to get around this.
I also had to add $(CFLAGS) after the $(CC) at Makerules:1285 so they
could be picked up.  I TOLD you these hacks were ugly :)

This is enough to build glibc-headers.  I also removed the steps to make
sysdeps/gnu/errlist.c & touch errlist-compat.c, they weren't necessary
anymore...

A couple more issues when building full glibc:

* gcc was compiled with --disable-shared, and glibc-2.3.5's Makeconfig
tries to link with -lgcc_eh, which does not exist on a non-shared gcc
build (doesn't work to try --enable-shared, don't bother...).  I had to
comment Makeconfig lines 506 and 511 to remove the reference to
libgcc_eh (there was some attempt in this file to workaround the fact
that it could be missing, but it fails since the check in configure
tries to link with libgcc_s.so during the process (DOH!)

With those changes glibc compiles & installs.

However, I have NOT tested it at all yet.   When building gcc-full I get
a compile error (it builds the C & C++ compilers, but fails on Java.
Looks like the glibc syscall.h header file was generated incorrectly by
the glibc build... something is still wrong...
 

-Jake

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



More information about the crossgcc mailing list