mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-09-10 05:52:21 +08:00
binutils/
* readelf.c (get_segment_type): Handle PT_GNU_STACK. bfd/ * elf.c (_bfd_elf_print_private_bfd_data): Handle PT_GNU_STACK. (bfd_section_from_phdr): Likewise. (map_sections_to_segments): Create PT_GNU_STACK segment header. (get_program_header_size): Count with PT_GNU_STACK. * elf-bfd.h (struct elf_obj_tdata): Add stack_flags. * elflink.h (bfd_elfNN_size_dynamic_sections): Set stack_flags. include/ * bfdlink.h (struct bfd_link_info): Add execstack and noexecstack. * elf/common.h (PT_GNU_STACK): Define. ld/ * ldgram.y (phdr_type): Grok PT_GNU_STACK. * emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Add -z execstack and -z noexecstack. (gld${EMULATION_NAME}_list_options): Likewise. * scripttempl/elf.sc: If not -r, discard .note.GNU-stack section.
This commit is contained in:
@ -1684,6 +1684,16 @@ cat >>e${EMULATION_NAME}.c <<EOF
|
||||
link_info.combreloc = FALSE;
|
||||
else if (strcmp (optarg, "nocopyreloc") == 0)
|
||||
link_info.nocopyreloc = TRUE;
|
||||
else if (strcmp (optarg, "execstack") == 0)
|
||||
{
|
||||
link_info.execstack = TRUE;
|
||||
link_info.noexecstack = FALSE;
|
||||
}
|
||||
else if (strcmp (optarg, "noexecstack") == 0)
|
||||
{
|
||||
link_info.noexecstack = TRUE;
|
||||
link_info.execstack = FALSE;
|
||||
}
|
||||
/* What about the other Solaris -z options? FIXME. */
|
||||
break;
|
||||
EOF
|
||||
@ -1722,6 +1732,7 @@ cat >>e${EMULATION_NAME}.c <<EOF
|
||||
fprintf (file, _(" --eh-frame-hdr\tCreate .eh_frame_hdr section\n"));
|
||||
fprintf (file, _(" -z combreloc\t\tMerge dynamic relocs into one section and sort\n"));
|
||||
fprintf (file, _(" -z defs\t\tDisallows undefined symbols\n"));
|
||||
fprintf (file, _(" -z execstack\t\tMark executable as requiring executable stack\n"));
|
||||
fprintf (file, _(" -z initfirst\t\tMark DSO to be initialized first at runtime\n"));
|
||||
fprintf (file, _(" -z interpose\t\tMark object to interpose all DSOs but executable\n"));
|
||||
fprintf (file, _(" -z loadfltr\t\tMark object requiring immediate process\n"));
|
||||
@ -1732,6 +1743,7 @@ cat >>e${EMULATION_NAME}.c <<EOF
|
||||
fprintf (file, _(" -z nodelete\t\tMark DSO non-deletable at runtime\n"));
|
||||
fprintf (file, _(" -z nodlopen\t\tMark DSO not available to dlopen\n"));
|
||||
fprintf (file, _(" -z nodump\t\tMark DSO not available to dldump\n"));
|
||||
fprintf (file, _(" -z noexecstack\t\tMark executable as not requiring executable stack\n"));
|
||||
fprintf (file, _(" -z now\t\tMark object non-lazy runtime binding\n"));
|
||||
fprintf (file, _(" -z origin\t\tMark object requiring immediate \$ORIGIN processing\n\t\t\t at runtime\n"));
|
||||
fprintf (file, _(" -z KEYWORD\t\tIgnored for Solaris compatibility\n"));
|
||||
|
Reference in New Issue
Block a user