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