Skip to content
  • Rich Felker's avatar
    Add --no-dynamic-linker option to ld, for static PIE use · 9b8b325a
    Rich Felker authored
    Inhibits output of .interp section in ELF executables.
    
    include/
    	* bfdlink.h (struct bfd_link_info): Add "nointerp" field.
    bfd/
    	* elflink.c (_bfd_elf_link_create_dynamic_sections): Don't create
    	.interp when info->nointerp.
    	(bfd_elf_size_dynamic_sections): Adjust assert.
    	* elf32-arm.c (elf32_arm_size_dynamic_sections): Don't size .interp
    	when info->nointerp.
    	* elf32-bfin.c (elf32_bfinfdpic_size_dynamic_sections): Likewise.
    	* elf32-cr16.c (_bfd_cr16_elf_size_dynamic_sections): Likewise.
    	* elf32-cris.c (elf_cris_size_dynamic_sections): Likewise.
    	* elf32-frv.c (elf32_frvfdpic_size_dynamic_sections): Likewise.
    	* elf32-hppa.c (elf32_hppa_size_dynamic_sections): Likewise.
    	* elf32-i370.c (i370_elf_size_dynamic_sections): Likewise.
    	* elf32-i386.c (elf_i386_size_dynamic_sections): Likewise.
    	* elf32-lm32.c (lm32_elf_size_dynamic_sections): Likewise.
    	* elf32-m32r.c (m32r_elf_size_dynamic_sections): Likewise.
    	* elf32-m68k.c (elf_m68k_size_dynamic_sections): Likewise.
    	* elf32-metag.c (elf_metag_size_dynamic_sections): Likewise.
    	* elf32-nds32.c (nds32_elf_size_dynamic_sections): Likewise.
    	* elf32-nios2.c (nios2_elf32_size_dynamic_sections): Likewise.
    	* elf32-or1k.c (or1k_elf_size_dynamic_sections): Likewise.
    	* elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
    	* elf32-s390.c (elf_s390_size_dynamic_sections): Likewise.
    	* elf32-score.c (s3_bfd_score_elf_size_dynamic_sections): Likewise.
    	* elf32-score7.c (s7_bfd_score_elf_size_dynamic_sections): Likewise.
    	* elf32-sh.c (sh_elf_size_dynamic_sections): Likewise.
    	* elf32-tic6x.c (elf32_tic6x_size_dynamic_sections): Likewise.
    	* elf32-tilepro.c (tilepro_elf_size_dynamic_sections): Likewise.
    	* elf32-vax.c (elf_vax_size_dynamic_sections): Likewise.
    	* elf32-xtensa.c (elf_xtensa_size_dynamic_sections): Likewise.
    	* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Likewise.
    	* elf64-hppa.c (elf64_hppa_size_dynamic_sections): Likewise.
    	* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Likewise.
    	* elf64-s390.c (elf_s390_size_dynamic_sections): Likewise.
    	* elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise.
    	* elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Likewise.
    	* elfnn-aarch64.c (elfNN_aarch64_size_dynamic_sections): Likewise.
    	* elfnn-ia64.c (elfNN_ia64_size_dynamic_sections): Likewise.
    	* elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Likewise.
    	* elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Likewise.
    	* elfxx-tilegx.c (tilegx_elf_size_dynamic_sections): Likewise.
    ld/
    	* ld.texinfo (--no-dynamic-linker): Document.
    	* ldlex.h (enum option_values): Add OPTION_NO_DYNAMIC_LINKER.
    	* lexsup.c (ld_options, parse_args): Handle --no-dynamic-linker.
    9b8b325a