[Patch] was: MIPS assembler no longer "combines symbols in different segments"...

David Daney ddaney@avtrex.com
Sun Feb 27 02:47:00 GMT 2005


David Daney wrote:
> A recent change to gas seems to have broken it so that it no longer 
> works with gcc-3.3.  Configured as target=mipsel-linux
> 
> The .eh_frame code generated by gcc-3.3 contains things like this:
> 
>         .4byte  $LFB2-.
> 
> Where '$LFB2' is in .text and '.' is in .eh_frame.  This worked well in 
> 2.15 but for:
> 
> $ mipsel-linux-as --version
> GNU assembler 050218 20050218
> 
> I am getting:
> 
> Error: operation combines symbols in different segments
> 
> for this.
> 
> Is there a good reason that this was changed?
> 
> If not can we change it back?
> 
> There are enough ld bugs in 2.15 that I want to use this snapshot, but I 
> will probably have to resolve this issue first.
> 
> David Daney.


Attached is a patch that fixes this problem.  This one I am much more 
confident of.  It passes make check in libffi for my hacked up back 
ported to gcc-3.4.3 version.  This include the exception test that 
failed with my last patch.

make -k check with no regressions.  Oddly enough for me this fixes one 
ld XFAIL even though I am only fixing gas.

I think my copyright things are in order for binutils, but I don't think 
I have CVS write access for binutils so someone else will have to commit 
for me.


2005-02-35  David Daney  <ddaney@avtrex.com>

         * config/tc-mips.h: #define DIFF_EXPR_OK.
         * config/tc-mips.c (md_apply_fix3): Remove assert (!fixP->fx_pcrel)
         because DIFF_EXPR_OK generates them.
         (tc_gen_reloc) : Handle fixP->fx_pcrel for BFD_RELOC_32 case.


David Daney.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: binutils.diff
URL: <https://sourceware.org/pipermail/binutils/attachments/20050227/6aa1b726/attachment.ksh>


More information about the Binutils mailing list