This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
> > David Daney wrote: > > > > There are many problems with the binutils ld in version 2.15 > > under mips. > > > > I would recommend either the CVS HEAD version or 2.17 with > this patch > > applied: > > > > http://sources.redhat.com/ml/binutils/2006-11/msg00059.html > > > > Specifically, I think the problem you are seeing mignt be > > fixed by said > > patch. > > > > I am running GCC-3.4.3/binutils-2.17 with the patch/glibc > 2.3.3 with > > good results. > Chris MacGregor wrote: > > Thanks very much for that. Now, however, with binutils 2.17 (under > crosstool 0.42, with that patch plus the crosstool binutils-2.16.1 > bfd-hash-tweak.patch and cross-gprof.patch manually copied to a new > binutils-2.17 patch dir), glibc 2.3.6, and either gcc 3.4.5 > or 3.4.6, I > now get the dreaded: > > /tmp/cccIYnFh.s: Assembler messages: > /tmp/cccIYnFh.s:905: Error: symbol definition loop encountered at > `__divdi3_internal' > /tmp/cccIYnFh.s:905: Error: symbol definition loop encountered at > `__udivdi3_internal' > /tmp/cccIYnFh.s:905: Error: symbol definition loop encountered at > `__moddi3_internal' > /tmp/cccIYnFh.s:905: Error: symbol definition loop encountered at > `__umoddi3_internal' > > when compiling glibc's divdi3.c. I solved the symbol loop problem with the following patch, essentially backported from glibc 2.4: --- glibc-2.3.6/sysdeps/wordsize-32/Makefile 2002-09-18 23:47:56.000000000 -0700 +++ glibc-2.4/sysdeps/wordsize-32/Makefile 2005-11-16 11:19:03.000000000 -0800 @@ -2,5 +2,6 @@ ifeq ($(subdir),csu) ifeq (yes,$(build-shared)) sysdep_routines += divdi3 shared-only-routines += divdi3 +CPPFLAGS-divdi3.c = -Din_divdi3_c endif endif --- glibc-2.3.6/sysdeps/wordsize-32/symbol-hacks.h~ 2004-03-08 12:59:34.000000000 -0800 +++ glibc-2.3.6/sysdeps/wordsize-32/symbol-hacks.h 2007-01-22 16:02:30.000000000 -0800 @@ -22,7 +22,7 @@ therefore we get PLTs. Unnecessarily so. Changing gcc is a big task which might not be worth it so we play tricks with the assembler. */ -#if !defined __ASSEMBLER__ && !defined NOT_IN_libc && defined SHARED +#if !defined __ASSEMBLER__ && !defined NOT_IN_libc && defined SHARED && !defined in_divdi3_c asm ("__divdi3 = __divdi3_internal"); asm ("__udivdi3 = __udivdi3_internal"); asm ("__moddi3 = __moddi3_internal"); so, adding that to crosstool-*/patches/glibc-2.3.6, adding the patch pointed out by David Daney to crosstool-*/patches/binutils-2.17 along with the bfd-hash-tweak.patch and cross-gprof.patch from the binutils-2.16.1 patches, I can build a toolchain (mipsel for soft-float) which seems to work. I recommend adding a binutils-2.17 patches dir with those patches, and adding the symbol-loop patch to the glibc-2.3.6 (and perhaps 2.3.x) patches dirs. I can submit a crosstool patch to do that, if desired. -- For unsubscribe information see http://sourceware.org/lists.html#faq
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |