[Bug middle-end/61577] [4.9.0 Regression] can't compile on hp-ux v3 ia64

peter.bisroev at groundlabs dot com gcc-bugzilla@gcc.gnu.org
Thu Feb 13 05:25:00 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61577

--- Comment #167 from Peter Bisroev <peter.bisroev at groundlabs dot com> ---
(In reply to dave.anglin from comment #166)
> The problem is is the branch offset is too big.  I believe GNU ld will
> create a PLTOFF
> entry in the PLT to handle this, but that's not happening with HP ld.
> 
> In pa, we have have the -mlong-calls option which avoids these pc-relative
> branches.
> 
> It would be helpful to know how aCC avoids this problem.
...
> It's the branch distance distance that's the main problem.  Weak functions
> are available
> in C but they are much more common in C++.

Thank you for the explanation Dave,

Tonight I have been trying to find a test case where this problem can be
reproduced with gcc and then compiled with aCC. Unfortunately no luck so far. 

With objdump I can see PCREL21B relocations in my .o files. However after the
final linking, disassembly shows direct short branch if the distance is small
enough and a call through a stub with brl.few if the distance is large enough.
I have almost no experience with IA-64 arch, but this behavior seems expected
to me.

I will keep trying.

Thanks!
--peter


More information about the Gcc-bugs mailing list