This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


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: [PATCH-SH]:Generating proper relocations to link with RenesasSHC linker


"Asgari J. Jinia" <AsgariJ@KPITCummins.com> wrote:
> If GNU object file for SH target which contains static functions is linked 
> with other Renesas SHC objects by SHC linker, it does not call GNU 
> functions properly. It always calls the first static function when other 
> static functions are called. This is because GNU assembler does not emit 
> relocations with addend values in case of static functions.
> 
> Following patch emits addend value in relocations for static declarations so 
> that it will correctly link with Renesas linker.
[snip]
> --- gas/config/tc-sh.c.old      Wed Dec 31 17:05:28 2003
> +++ gas/config/tc-sh.c  Tue Mar 23 17:26:03 2004
> @@ -3957,7 +3957,7 @@ tc_gen_reloc (section, fixp)
>    else if (fixp->fx_pcrel)
>      rel->addend = fixp->fx_addnumber;
>    else if (r_type == BFD_RELOC_32 || r_type == BFD_RELOC_32_GOTOFF)
> -    rel->addend = fixp->fx_addnumber;
> +    rel->addend = fixp->fx_offset;
>    else
>      rel->addend = 0;

With your patch, I've got many failures of ld testsuite for
sh-unknown-linux-gnu and one failure about partial linking
for sh-elf on mainline.  It seems that gas with your patch
sets both in-place relocation and addend for R_SH_DIR32.
It would be a radical change of ABI and anyway, your patch
doesn't work together with the current GNU linker.

Regards,
	kaz


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]