https://sourceware.org/bugzilla/show_bug.cgi?id=32082
Bug ID: 32082
Summary: gas arm aarch64: missing mapping symbols $d in the
absence of alignment directives
Product: binutils
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: i at maskray dot me
Target Milestone: ---
Data sections without alignment directives (excluding
BSS) might lack '$d' symbols, and mixing data and text sections can
introduce state transition problems.
The relevant code was modified by
https://sourceware.org/pipermail/binutils/2015-March/088214.html
% cat x.c
char var = 1;
char arr[2] = {1};
% arm-linux-gnueabi-gcc -c -fdata-sections x.c && objdump -t x.o #
aarch64-linux-gnu-gcc is similar
x.o: file format elf32-little
SYMBOL TABLE:
00000000 l df *ABS* 00000000 x.c
00000000 l d .text 00000000 .text
00000000 l d .data 00000000 .data
00000000 l d .bss 00000000 .bss
00000000 l d .data.var 00000000 .data.var
00000000 l d .data.arr 00000000 .data.arr
00000000 l .data.arr 00000000 $d
...
LLVM integrated assembler's AArch32 port doesn't insert '$d' unless
code is present, which could lead to similar issues.
(https://reviews.llvm.org/D30724)
% clang -c --target=armv7-linux-gnueabi -fdata-sections x.c && objdump -t x.o
x.o: file format elf32-little
SYMBOL TABLE:
00000000 l df *ABS* 00000000 x.c
00000000 g O .data.var 00000001 var
00000000 g O .data.arr 00000002 arr
--
You are receiving this mail because:
You are on the CC list for the bug.