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 * 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.