Landing: 1cc9aa9de2af

Project / Subsystem

binutils / binutils/ld

Date

2026-09-04

Author

Alan Modra <amodra@sourceware.org>

Commit

1cc9aa9de2af3cd54d5433c0e4a522b73719c3cb

Source

public_inbox

Perf win

No

Breaking

No

All attributes

project
binutils
subsystem
binutils/ld
patch_id
—
commit_hash
1cc9aa9de2af3cd54d5433c0e4a522b73719c3cb
source_type
public_inbox
headline
ld: Account for .tbss size on Arm embedded targets
tldr
Ensures .tbss occupies VMA for ARM embedded targets, aligning with LLVM lld.
author
Alan Modra <amodra@sourceware.org>
outcome
committed
performance_win
false
breaking_change
false
series_id
—
series_parts
[]
tags
  • • binutils
  • • linker
  • • ARM
  • • embedded
  • • TLS
discussion_id_link
—
bugzilla_pr
—
date
2026-09-04T00:00:00.000Z

This commit modifies the GNU linker (ld) to account for the size of the .tbss section on ARM embedded targets by making it occupy a virtual memory address (VMA). This behavior is necessary for embedded systems where TLS storage is allocated directly and prevents overlap with subsequent sections like .bss. The change introduces a new build-time property tls_nobits_occupies_vma and sets it to true for ARM embedded targets, aligning with LLVM’s lld behavior. New tests are added to cover static, executable, PIE, and dynamic link scenarios.