http://sourceware.org/bugzilla/show_bug.cgi?id=14926
Bug #: 14926
Summary: "Not enough room for program headers" error, even
though there is
Product: binutils
Version: 2.23
Status: NEW
Severity: normal
Priority: P2
Component: ld
AssignedTo: [email protected]
ReportedBy: [email protected]
Classification: Unclassified
In the following example, I get an unwarranted error message:
$ cat test.s
.file "test.c"
.text
.p2align 4,,15
.globl _start
.type _start, @function
_start:
.LFB0:
movl $42, %eax
ret
.LFE0:
.size _start, .-_start
$ as test.s -o test.o
$ ld test.o -o test -Ttext=0x60
ld: test: Not enough room for program headers, try linking with -N
ld: final link failed: Bad value
$
If I specify -Ttext=0x30 (or less) or -Ttext=0x80 (or greater), the link
happens as expected.
I'm reporting this because we've had a fix in our local tree for a while, and
it would be nice to get it into mainline. The problem is that when we are
determining if the ELF and program headers can share the same segment as .text,
we only compare the address of .text against the size of the program headers --
we fail to take into account the size of the ELF header.
Specifically, in _bfd_elf_map_sections_to_segments (elf.c), the code following
this comment:
/* Deal with -Ttext or something similar such that the first section
...
should add the ELF header size to the program header size when determining
whether the section needs to go into a new segment.
--
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-binutils mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-binutils