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]

Re: tried gcc-4.1.0-glibc-2.3.6 -- mips.dat


Dan Kegel wrote:
On 3/5/06, Philip Rakity <prakity@yahoo.com> wrote:

i tried using DawinPorts make (version 3.80) -- same failure as make
with macintosh)
I then checked out make from the cvs tree and used that instead
Now failure is different
...
/Volumes/unix/crosstool-0.42/build/mips-unknown-linux-gnu/gcc-4.1.0-glibc-2.3.6/gcc-3.3.6/gcc/libgcc2.c
-fexceptions -fnon-call-exceptions -o libgcc/./_divdi3.o
/var/tmp//cchbECRV.s: Assembler messages:
/var/tmp//cchbECRV.s:956: Error: operation combines symbols in
different segments
make[2]: *** [libgcc/./_divdi3.o] Error 1
make[2]: Leaving directory
`/Volumes/unix/crosstool-0.42/build/mips-unknown-linux-gnu/gcc-4.1.0-glibc-2.3.6/build-gcc-core/gcc'
make[1]: *** [libgcc.a] Error 2
make[1]: Leaving directory
`/Volumes/unix/crosstool-0.42/build/mips-unknown-linux-gnu/gcc-4.1.0-glibc-2.3.6/build-gcc-core/gcc'
make: *** [all-gcc] Error 2


(Please trim your logs a bit more (like I did above).
Also please do a google search for the error message before posting.)

I think this error might have been discussed here:
http://sources.redhat.com/ml/crossgcc/2005-09/msg00181.html

Does that help?

I have not followed the entire thread, but know that the 'Error: operation combines symbols in different segments' message is caused by a change in mips binutils around the 2.15 version time frame. Before the change you could do math on symbols in different sections, after the change you could not.


Versions of GCC released before the change (perhaps about 3.4.3 and 3.3.5) try to calculate the offset between symbols in different segments (this happens in .eh_frame and .debug_frame sections) resulting in the error you are seeing.

The solution is to use GCC and Binutils of a compatible vintage. Old GCCs only work with old Binutils. New GCCs work with old and new Binutils.

Now how to make use of this knowledge in relation to crosstool, I have no idea. But I am fairly sure that that is what is happening.

David Daney.

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