[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/12921] New: sh_offset for SHT_NOBITS sections
From: |
jakub at redhat dot com |
Subject: |
[Bug ld/12921] New: sh_offset for SHT_NOBITS sections |
Date: |
Wed, 22 Jun 2011 16:24:03 +0000 |
http://sourceware.org/bugzilla/show_bug.cgi?id=12921
Summary: sh_offset for SHT_NOBITS sections
Product: binutils
Version: 2.22 (HEAD)
Status: NEW
Severity: normal
Priority: P2
Component: ld
AssignedTo: address@hidden
ReportedBy: address@hidden
A recent change in ld broke prelink.
E>g. on the attached testcase:
struct A { char a; struct A *b; int *c; };
static struct A local = { 77, &local, 0 };
int vbss[16384] __attribute__((aligned (4096)));
int vdata __attribute__((aligned (4096))) = 5;
asm (".text; .balign 4096; vtext:; .previous");
int main()
{
asm volatile ("" : : "m" (local), "m" (vbss[0]), "m" (vdata));
return 0;
}
we used to emit (e.g. in 2.21.0.51.0.6, but like since forever):
[24] .data PROGBITS 0000000000603000 003000 001028 00 WA
0 0 4096
[25] .bss NOBITS 0000000000605000 004028 011000 00 WA
0 0 4096
[26] .comment PROGBITS 0000000000000000 004028 000058 01 MS
0 0 1
[27] .shstrtab STRTAB 0000000000000000 004080 0000ee 00
0 0 1
but now (2.21.52.0.1) we emit:
[24] .data PROGBITS 0000000000603000 003000 002004 00 WA
0 0 4096
[25] .bss NOBITS 0000000000606000 006000 011000 00 WA
0 0 4096
[26] .comment PROGBITS 0000000000000000 005004 000059 01 MS
0 0 1
[27] .shstrtab STRTAB 0000000000000000 00505d 0000ee 00
0 0 1
The problem is that the sh_offset for .bss is no longer smaller or equal to the
next section's sh_offset, but, what's more important, is that it is even way
after the end of the file on disk.
When elfutils libelf tries to write this during prelink --undo, it will write
0x6000 bytes of file instead of just 0x505d+0xee the original file had.
Can this change be please reverted?
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
- [Bug ld/12921] New: sh_offset for SHT_NOBITS sections,
jakub at redhat dot com <=
- [Bug ld/12921] sh_offset for SHT_NOBITS sections, amodra at gmail dot com, 2011/06/22
- [Bug ld/12921] sh_offset for SHT_NOBITS sections, amodra at gmail dot com, 2011/06/22
- [Bug ld/12921] sh_offset for SHT_NOBITS sections, jakub at redhat dot com, 2011/06/23
- [Bug ld/12921] sh_offset for SHT_NOBITS sections, hjl.tools at gmail dot com, 2011/06/23
- [Bug ld/12921] sh_offset for SHT_NOBITS sections, jakub at redhat dot com, 2011/06/23
- [Bug ld/12921] sh_offset for SHT_NOBITS sections, amodra at gmail dot com, 2011/06/23
- [Bug ld/12921] sh_offset for SHT_NOBITS sections, amodra at gmail dot com, 2011/06/23
- [Bug ld/12921] sh_offset for SHT_NOBITS sections, hjl.tools at gmail dot com, 2011/06/23
- [Bug ld/12921] sh_offset for SHT_NOBITS sections, cvs-commit at gcc dot gnu.org, 2011/06/23
- [Bug ld/12921] sh_offset for SHT_NOBITS sections, cvs-commit at gcc dot gnu.org, 2011/06/23