[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/20364] New: Data-based padding causes current address evaluatio
contact at paulk dot fr
[Bug gas/20364] New: Data-based padding causes current address evaluation to be non-constant on aarch64
Wed, 13 Jul 2016 08:30:00 +0000
Bug ID: 20364
Summary: Data-based padding causes current address evaluation
to be non-constant on aarch64
Assignee: unassigned at sourceware dot org
Reporter: contact at paulk dot fr
Target Milestone: ---
It appears that starting with binutils 2.26, evaluating the current address
(using the dot symbol) after a .align directive using data-based padding (e.g.
.align 6, 0) makes it non-constant, resulting in errors such as: "Error:
non-constant expression in ".if" statement" when evaluating "." inside an .if
statement. This is on aarch64.
The issue appeared when build the ARM Trusted Firmware:
The related assembly is a combination of the vector_entry/vector_base (that
does the alignment) and check_vector_size (that uses the dot symbol) macros,
and used at
The assembly is correct and is apparently not the problem. However, switching
the ".align x, 0" directives to ".align x" solves the issue, but upstream is
not going to make that change.
The issue was discussed in depth at
and an issue was opened on the ARM Trusted Firmware tracker at
A test case was provided at
The issue was bisected down to (bad) commit
Author: Renlin Li <address@hidden>
Date: Thu Apr 2 14:59:45 2015 +0100
[AArch64] Emit DATA_MAP in order within text section
2015-03-27 Renlin Li <address@hidden>
* config/tc-aarch64.c (mapping_state): Emit MAP_DATA within text
section in order.
(mapping_state_2): Don't emit MAP_DATA here.
(s_aarch64_inst): Align frag during state transition.
You are receiving this mail because:
You are on the CC list for the bug.
|[Prev in Thread]
||[Next in Thread]|
- [Bug gas/20364] New: Data-based padding causes current address evaluation to be non-constant on aarch64,
contact at paulk dot fr <=