]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.20] cmd/link/internal/arm: fix off-by-1 in trampoline reachabilit...
authorThan McIntosh <thanm@google.com>
Mon, 13 Mar 2023 16:02:36 +0000 (12:02 -0400)
committerHeschi Kreinick <heschi@google.com>
Wed, 22 Mar 2023 17:41:43 +0000 (17:41 +0000)
commitb52a6963bf6dfdddb8f8e7e85d52012ac305476f
tree93253c8fbaa7cf37222acd644726f85868c0316d
parent3ff6dbdf5b65e4c9da1a2020e45a56a7ae48cc91
[release-branch.go1.20] cmd/link/internal/arm: fix off-by-1 in trampoline reachability computation

Tweak the code in trampoline generation that determines if a given
call branch will reach, changing the lower limit guard from "x <
-0x800000" to "x <= -0x800000". This is to resolve linking failures
when the computed displacement is exactly -0x800000, which results in
errors of the form

  .../ld.gold: internal error in arm_branch_common, at ../../gold/arm.cc:4079

when using the Gold linker, and

  ...:(.text+0x...): relocation truncated to fit: R_ARM_CALL against `runtime.morestack_noctxt'

when using the bfd linker.

Fixes #59059.
Updates #59034.
Updates #58425.

Change-Id: I8a76986b38727df1b961654824c2af23f06b9fcf
Reviewed-on: https://go-review.googlesource.com/c/go/+/475957
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
(cherry picked from commit f26bf203ac67fd917f2eb992baa1cb2d01edf3c8)
Reviewed-on: https://go-review.googlesource.com/c/go/+/476936
src/cmd/link/internal/arm/asm.go