This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [Patch] was: MIPS assembler no longer "combines symbols indifferent segments"...
- From: "Maciej W. Rozycki" <macro at linux-mips dot org>
- To: David Daney <ddaney at avtrex dot com>
- Cc: binutils at sources dot redhat dot com
- Date: Mon, 28 Feb 2005 14:46:31 +0000 (GMT)
- Subject: Re: [Patch] was: MIPS assembler no longer "combines symbols indifferent segments"...
- References: <421FAE77.8010206@avtrex.com> <421FE7A6.7020500@avtrex.com>
On Fri, 25 Feb 2005, David Daney wrote:
> 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.
[...]
> 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.
Have you seen the comment about R_MIPS_PC32 in bfd/elf32-mips.c? This is
a GNU extension which we don't want to support for generation of new code.
It's not even supported by elfn32-mips.c and elf64-mips.c at all, so if
your GCC uses it for the (n)64 or the n32 ABI, it will not work anyway.
How about updating GCC so that it does not emit these problematic
statements? Either your local copy or the 3.3 branch (if there is
interest). Using older binutils is another option.
Maciej