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