binutils Newspaper
OCTOBER 6, 2026
ld — Proposed

ld: Default aarch64pe section alignment to 64K

Patch modifies GNU ld to default section alignment for aarch64pe to 64K, ensuring compatibility with 16K page sizes on ARM64 hosts.

This patch addresses an issue where the default 4K section alignment for aarch64pe executables is incompatible with ARM64 hosts using 16K page sizes, such as Apple Silicon or Android devices. The change defaults the section alignment to 64K, ensuring that these executables can be mapped by the loader, even under Wine.

In Details

A patch for GNU ld proposes changing the default section alignment for the aarch64pe (ARM64 PE/COFF) target from 4K to 64K. This is to accommodate modern ARM64 hardware (e.g., Apple Silicon, Android devices) which increasingly use 16K memory pages. The current 4K alignment is not a multiple of 16K, preventing proper memory mapping by the OS loader or Wine. Increasing the alignment to 64K (a multiple of 16K) resolves this.

For Context
ld
The GNU linker, responsible for combining object files and libraries into an executable or shared library.
aarch64pe
The target triplet for linking 64-bit ARM (AArch64) executables in the PE (Portable Executable) format, typically used for Windows.
section alignment
The requirement that sections within an executable file start at memory addresses that are multiples of a specific value, often related to memory page sizes.
ARM64
The 64-bit architecture for ARM processors.
page size
The smallest unit of memory that the operating system manages. Common sizes are 4KB, 16KB, or 64KB.
Wine
A compatibility layer that allows Windows applications to run on POSIX-compliant operating systems, such as Linux and macOS.
Filed Under: ldaarch64windowsalignmentpatch