bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/25599] gas generates invalid PCREL60B relocation offset with br


From: dave.anglin at bell dot net
Subject: [Bug gas/25599] gas generates invalid PCREL60B relocation offset with brl.call
Date: Mon, 17 May 2021 15:05:03 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=25599

--- Comment #5 from dave.anglin at bell dot net ---
Hi John,

Please send change to binutils list with install request.  CC Jim Wilson and
myself.  Jim is the
expert on ia64 assembly code.

There are some GNU style issues with the change as written.  The declaration of
"where"
should be at the start of the block.  There should be no space after "(" or
before ")".  "where++"
should be on following line.  Check white space.

The Debian ia64 Linux port is still active, so I don't think ia64 should be
obsoleted at this time.

After the binutils change is accepted, please submit gcc changes to the gcc
patches list.  Please
test change on master if possible.

On 2021-05-17 6:07 a.m., jvb at cyberscience dot com wrote:
> https://sourceware.org/bugzilla/show_bug.cgi?id=25599
>
> John Buddery <jvb at cyberscience dot com> changed:
>
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |jvb at cyberscience dot com
>
> --- Comment #4 from John Buddery <jvb at cyberscience dot com> ---
> Here's the solution I used to fix the PCREL60B offset for HP:
>
> --- binutils-2.36/gas/config/tc-ia64.c  2021-01-09 10:47:33.000000000 +0000
> +++ binutils-2.36-snake/gas/config/tc-ia64.c    2021-05-17 10:21:40.651307362
> +0100
> @@ -6892,7 +6892,13 @@
>        for (j = 0; j < md.slot[curr].num_fixups; ++j)
>         {
>           ifix = md.slot[curr].fixup + j;
> -         fix = fix_new_exp (frag_now, frag_now_fix () - 16 + i, 8,
> +          
> +          unsigned long where = frag_now_fix () - 16 + i;
> +#ifdef TE_HPUX
> +          if ( ifix->code == BFD_RELOC_IA64_PCREL60B ) where++;
> +#endif
> +                   
> +         fix = fix_new_exp (frag_now, where, 8,
>                              &ifix->expr, ifix->is_pcrel, ifix->code);
>           fix->tc_fix_data.opnd = ifix->opnd;
>           fix->fx_file = md.slot[curr].src_file;
>

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]