progress towards mipsel glibc-2.3.5

Dan Kegel dank@kegel.com
Sat Apr 16 14:47:00 GMT 2005


Jake C. Page wrote:
>>  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?!
> 
> 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).

If that ends up being the thing to do,
we probably want to check whether $(CC) supports that flag.
It might not have mipsel in the name... maybe checking
the output of $(CC) -v would be best.

> * 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 :)

Bleah!  :-)    There's clearly a better way, but I don't
have it handy.

> 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...

Really?  I'll have to check into that.  Maybe they get built
by the earlier commands now (which may be why any of the above
hacks were needed).

> 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!)

I think the way to address this is to apply
patches/glibc-2.3.4/make-install-lib-all.patch
Then the lgcc_eh problems go away (assuming you
have a recent crosstools).

> 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...

Just checking: do you really need Java?  If not, you could
configure that out of gcc...
- Dan

-- 
Trying to get a job as a c++ developer?  See http://kegel.com/academy/getting-hired.html


------
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