[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/26141] New: -fvisibility=hidden generates JUMP11 relocations on
From: |
jason at zx2c4 dot com |
Subject: |
[Bug gas/26141] New: -fvisibility=hidden generates JUMP11 relocations on ARM |
Date: |
Fri, 19 Jun 2020 19:21:41 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=26141
Bug ID: 26141
Summary: -fvisibility=hidden generates JUMP11 relocations on
ARM
Product: binutils
Version: 2.33
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: jason at zx2c4 dot com
Target Milestone: ---
There used to be a problem with binutils where JUMP11 relocations would be
generated for THUMB2 code, prompting the linux kernel to add this interesting
workaround:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/Kconfig?id=5e857ce6eae7ca21b2055cca4885545e29228fe2#n1431
This worked, but was suboptimal, so in time binutils fixed the bug, tracked
here: https://sourceware.org/bugzilla/show_bug.cgi?id=12532
AFAICT, the fix there worked, and the kernel no longer generates JUMP11
relocations in THUMB2 mode and all is well.
However, the fix appears to stop working with -fvisibility=hidden. I imagine
this is so due to some conflicting code where the forced B.W is only generated
for static functions, since non-static ones will be relocated differently, but
then because of -fvisibility=hidden, they get treated like statics, only B is
used instead of the forced B.W, causing this issue to crop up again.
OpenWRT experienced this when including WireGuard on a new board. I fixed it
like this:
https://git.zx2c4.com/wireguard-linux-compat/commit/?id=178cdfffb99f2fd6fb4a5bfd2f9319461d93f53b
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug gas/26141] New: -fvisibility=hidden generates JUMP11 relocations on ARM,
jason at zx2c4 dot com <=
- [Bug gas/26141] -fvisibility=hidden generates JUMP11 relocations on ARM, jason at zx2c4 dot com, 2020/06/19
- [Bug gas/26141] -fvisibility=hidden generates JUMP11 relocations on ARM, jason at zx2c4 dot com, 2020/06/19
- [Bug gas/26141] -fvisibility=hidden generates JUMP11 relocations on ARM, nickc at redhat dot com, 2020/06/22
- [Bug gas/26141] -fvisibility=hidden generates JUMP11 relocations on ARM, jason at zx2c4 dot com, 2020/06/22
- [Bug gas/26141] -fvisibility=hidden generates JUMP11 relocations on ARM, jason at zx2c4 dot com, 2020/06/22
- [Bug gas/26141] -fvisibility=hidden generates JUMP11 relocations on ARM, nickc at redhat dot com, 2020/06/23
- [Bug gas/26141] -fvisibility=hidden generates JUMP11 relocations on ARM, nickc at redhat dot com, 2020/06/23
- [Bug gas/26141] -fvisibility=hidden generates JUMP11 relocations on ARM, jason at zx2c4 dot com, 2020/06/23
- [Bug gas/26141] -fvisibility=hidden generates JUMP11 relocations on ARM, jason at zx2c4 dot com, 2020/06/24
- [Bug gas/26141] -fvisibility=hidden generates JUMP11 relocations on ARM, cvs-commit at gcc dot gnu.org, 2020/06/25