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

David Daney
Sun Mar 5 23:58:00 GMT 2006

Dan Kegel wrote:
> On 3/5/06, Philip Rakity <> 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
>>-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
>>make[1]: *** [libgcc.a] Error 2
>>make[1]: Leaving directory
>>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:
> 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

More information about the crossgcc mailing list