Skip to content

[PAC][lld] Do not emit AUTH relocs against undef weak non-preemptible symbols#194636

Draft
kovdan01 wants to merge 2 commits into
users/kovdan01/llvm-support-auth-tlsdesc-call-relfrom
users/kovdan01/lld-pauth-undef-weak
Draft

[PAC][lld] Do not emit AUTH relocs against undef weak non-preemptible symbols#194636
kovdan01 wants to merge 2 commits into
users/kovdan01/llvm-support-auth-tlsdesc-call-relfrom
users/kovdan01/lld-pauth-undef-weak

Conversation

@kovdan01
Copy link
Copy Markdown
Contributor

@kovdan01 kovdan01 commented Apr 28, 2026

Undefined weak non-preemptible symbols should be statically resolved to the addend value and not signed. Previously, a dynamic relocation against such symbols was emitted, which is not a correct behavior.

See also docs: ARM-software/abi-aa#391

Depends on: #198327

Resolves #173296

@kovdan01
Copy link
Copy Markdown
Contributor Author

Ensured pauthtest buildbot is passing (including llvm-test-suite run): https://lab.llvm.org/buildbot/#/builders/227/builds/1828

@kovdan01
Copy link
Copy Markdown
Contributor Author

The CI checks are expected to fail unless the dependency #198327 is merged

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

🐧 Linux x64 Test Results

  • 195706 tests passed
  • 5258 tests skipped

✅ The build succeeded and all tests passed.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

🪟 Windows x64 Test Results

  • 135015 tests passed
  • 3322 tests skipped

✅ The build succeeded and all tests passed.

@kovdan01 kovdan01 changed the base branch from main to users/kovdan01/pauth-tlsdesc-call-reloc May 25, 2026 09:35
@kovdan01 kovdan01 force-pushed the users/kovdan01/lld-pauth-undef-weak branch from 79a0c1d to 727f788 Compare May 25, 2026 09:36
kovdan01 added a commit that referenced this pull request May 25, 2026
The R_AARCH64_AUTH_TLSDESC_CALL is introduced to allow linker relaxation of
AUTH TLSDESC call sequences for non-preemptible undefined weak symbols.

The lld patch introducing the relaxation: #194636

Corresponding ARM docs PR: ARM-software/abi-aa#395
kovdan01 added a commit that referenced this pull request May 25, 2026
The R_AARCH64_AUTH_TLSDESC_CALL is introduced to allow linker relaxation of
AUTH TLSDESC call sequences for non-preemptible undefined weak symbols.

The lld patch introducing the relaxation: #194636

Corresponding ARM docs PR: ARM-software/abi-aa#395
kovdan01 added 2 commits May 25, 2026 13:45
… symbols

Undefined weak non-preemptible symbols should be statically resolved to
the addend value and not signed. Previously, a dynamic relocation
against such symbols was emitted, which is not a correct behavior.

See also docs: ARM-software/abi-aa#391

Resolves #173296
@kovdan01 kovdan01 force-pushed the users/kovdan01/lld-pauth-undef-weak branch from 727f788 to 565d156 Compare May 25, 2026 10:45
@kovdan01 kovdan01 changed the base branch from users/kovdan01/pauth-tlsdesc-call-reloc to users/kovdan01/llvm-support-auth-tlsdesc-call-rel May 25, 2026 12:01
@kovdan01
Copy link
Copy Markdown
Contributor Author

Ensured pauthtest buildbot is passing (including llvm-test-suite run): https://lab.llvm.org/buildbot/#/builders/227/builds/2008

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

[ELF][AArch64][PAC] Weak undefined symbols treated as symbol with value 0 and signed

1 participant