mirror of git://gcc.gnu.org/git/gcc.git
re PR lto/82598 (lto debugobj lacks .note.GNU-stack)
PR lto/82598 * simple-object.c (handle_lto_debug_sections): Copy over also .note.GNU-stack section with unchanged name. * simple-object-elf.c (SHF_EXECINSTR): Define. (simple_object_elf_copy_lto_debug_section): Drop SHF_EXECINSTR bit on .note.GNU-stack section. From-SVN: r253851
This commit is contained in:
parent
ac2bb5222b
commit
f8049c44b9
|
@ -1,3 +1,12 @@
|
|||
2017-10-18 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR lto/82598
|
||||
* simple-object.c (handle_lto_debug_sections): Copy over also
|
||||
.note.GNU-stack section with unchanged name.
|
||||
* simple-object-elf.c (SHF_EXECINSTR): Define.
|
||||
(simple_object_elf_copy_lto_debug_section): Drop SHF_EXECINSTR bit
|
||||
on .note.GNU-stack section.
|
||||
|
||||
2017-09-25 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
PR demangler/82195
|
||||
|
|
|
@ -196,6 +196,7 @@ typedef struct {
|
|||
|
||||
/* Values for sh_flags field. */
|
||||
|
||||
#define SHF_EXECINSTR 0x00000004 /* Executable section. */
|
||||
#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude this
|
||||
section from executable and
|
||||
shared library that it builds
|
||||
|
@ -1403,7 +1404,14 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
|
|||
flags = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
|
||||
shdr, sh_flags, Elf_Addr);
|
||||
if (ret == 0)
|
||||
flags &= ~SHF_EXCLUDE;
|
||||
{
|
||||
/* The debugobj doesn't contain any code, thus no trampolines.
|
||||
Even when the original object needs trampolines, debugobj
|
||||
doesn't. */
|
||||
if (strcmp (name, ".note.GNU-stack") == 0)
|
||||
flags &= ~SHF_EXECINSTR;
|
||||
flags &= ~SHF_EXCLUDE;
|
||||
}
|
||||
else if (ret == -1)
|
||||
flags = SHF_EXCLUDE;
|
||||
ELF_SET_FIELD (type_functions, ei_class, Shdr,
|
||||
|
|
|
@ -273,6 +273,9 @@ handle_lto_debug_sections (const char **name)
|
|||
*name = *name + sizeof (".gnu.lto_") - 1;
|
||||
return 1;
|
||||
}
|
||||
/* Copy over .note.GNU-stack section under the same name if present. */
|
||||
else if (strcmp (*name, ".note.GNU-stack") == 0)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue