mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-17 16:05:56 +08:00
PR ld/10744
* ldlang.c (lang_new_phdr): Allow FILEHDR/PHDRS on more than the first PT_LOAD header. * ld.texinfo: Update.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2009-10-08 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
PR ld/10744
|
||||||
|
* ldlang.c (lang_new_phdr): Allow FILEHDR/PHDRS on more than the
|
||||||
|
first PT_LOAD header.
|
||||||
|
* ld.texinfo: Update.
|
||||||
|
|
||||||
2009-10-06 Nathan Sidwell <nathan@codesourcery.com>
|
2009-10-06 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
* ldlang.c (lang_new_phdr): Check PHDRS and FILEHDR in loadable
|
* ldlang.c (lang_new_phdr): Check PHDRS and FILEHDR in loadable
|
||||||
|
@ -4740,7 +4740,8 @@ the program header type to further describe the contents of the segment.
|
|||||||
The @code{FILEHDR} keyword means that the segment should include the ELF
|
The @code{FILEHDR} keyword means that the segment should include the ELF
|
||||||
file header. The @code{PHDRS} keyword means that the segment should
|
file header. The @code{PHDRS} keyword means that the segment should
|
||||||
include the ELF program headers themselves. If applied to a loadable
|
include the ELF program headers themselves. If applied to a loadable
|
||||||
segment (@code{PT_LOAD}), it must be the first loadable segment.
|
segment (@code{PT_LOAD}), all prior loadable segments must have one of
|
||||||
|
these keywords.
|
||||||
|
|
||||||
The @var{type} may be one of the following. The numbers indicate the
|
The @var{type} may be one of the following. The numbers indicate the
|
||||||
value of the keyword.
|
value of the keyword.
|
||||||
|
@ -6779,9 +6779,11 @@ lang_new_phdr (const char *name,
|
|||||||
hdrs = n->type == 1 && (phdrs || filehdr);
|
hdrs = n->type == 1 && (phdrs || filehdr);
|
||||||
|
|
||||||
for (pp = &lang_phdr_list; *pp != NULL; pp = &(*pp)->next)
|
for (pp = &lang_phdr_list; *pp != NULL; pp = &(*pp)->next)
|
||||||
if (hdrs && (*pp)->type == 1)
|
if (hdrs
|
||||||
|
&& (*pp)->type == 1
|
||||||
|
&& !((*pp)->filehdr || (*pp)->phdrs))
|
||||||
{
|
{
|
||||||
einfo (_("%X%P:%S: PHDRS and FILEHDR are only permitted for the first PT_LOAD segment\n"));
|
einfo (_("%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"));
|
||||||
hdrs = FALSE;
|
hdrs = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user