I found today that none of the ld -z options are available on ELF targets that lack shared lib support (unless the target happens to provide some target specific options, which is weird). This patch rearranges the option support code in elf32.em to make a few useful options generally available, and moves a couple of x86/x86_64 options out of the general set. I'll commit this after running tests overnight. * emultempl/elf32.em (gld${EMULATION_NAME}_add_options, gld${EMULATION_NAME}_handle_option, gld${EMULATION_NAME}_list_options): Provide --build-id, -z defs, -z muldefs, -z max-page-size, -z common-page-size, -z execstack, -z noexecstack for all targets. Add help for --exclude-libs. (OPTION_LD_GENERATED_UNWIND_INFO, OPTION_NO_LD_GENERATED_UNWIND_INFO): Move this.. (gld${EMULATION_NAME}_handle_option): ..and code handling --ld-generated-unwind-info and --no-ld-generated-unwind-info.. * emultempl/plt_unwind.em: ..to here. New file. Add help. * emulparams/elf_i386.sh (EXTRA_EM_FILE): Define. * emulparams/elf_x86_64.sh (EXTRA_EM_FILE): Define. I'd normally put the patch inline but sourceware.org just rejected the patch as spam, so trying compressed. -- Alan Modra Australia Development Lab, IBM