diff options
author | Richard Henderson <rth@redhat.com> | 2005-05-29 23:13:39 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 2005-05-29 23:13:39 +0000 |
commit | 6ec7057aa5cdbf5b1544ce29d0df8d0d6f603179 (patch) | |
tree | c5e487eac9f7c2ac7655266b3cd580f1f54a4127 /bfd/configure.in | |
parent | c24162389c22a438dc7561eb6d69061b5330059d (diff) | |
download | gdb-6ec7057aa5cdbf5b1544ce29d0df8d0d6f603179.zip gdb-6ec7057aa5cdbf5b1544ce29d0df8d0d6f603179.tar.gz gdb-6ec7057aa5cdbf5b1544ce29d0df8d0d6f603179.tar.bz2 |
* configure.in (--enable-secureplt): New.
* elf64-alpha.c (INSN_LDA, INSN_LDAH, INSN_LDQ, INSN_BR): New.
(INSN_SUBQ, INSN_S4SUBQ, INSN_JMP): New.
(INSN_A, INSN_AB, INSN_ABC, INSN_ABO, INSN_AD): New.
(elf64_alpha_use_secureplt): New.
(OLD_PLT_HEADER_SIZE, OLD_PLT_ENTRY_SIZE): New.
(NEW_PLT_HEADER_SIZE, NEW_PLT_ENTRY_SIZE): New.
(PLT_HEADER_SIZE, PLT_ENTRY_SIZE): Conditionalize on secureplt.
(ALPHA_ELF_LINK_HASH_PLT_LOC): Remove.
(struct alpha_elf_link_hash_entry): Add plt_offset.
(PLT_HEADER_WORD1, PLT_HEADER_WORD2, PLT_HEADER_WORD3): Remove.
(PLT_HEADER_WORD4, PLT_ENTRY_WORD1, PLT_ENTRY_WORD2): Remove.
(PLT_ENTRY_WORD3): Remove.
(elf64_alpha_create_dynamic_sections): If secureplt, set SEC_READONLY
on .plt and create .got.plt.
(elf64_alpha_output_extsym): Remove .plt frobbing for symbol values.
(get_got_entry): Initialize plt_offset.
(elf64_alpha_want_plt): New.
(elf64_alpha_check_relocs): Use it.
(elf64_alpha_adjust_dynamic_symbol): Likewise. Don't allocate
plt entries here.
(elf64_alpha_calc_got_offsets_for_symbol): Don't report internal
error as user error.
(elf64_alpha_size_plt_section_1): Allocate one plt entry per
got subsection.
(elf64_alpha_size_plt_section): Size .got.plt section.
(elf64_alpha_size_rela_got_1): Don't allocate relocations if
plt entries used.
(elf64_alpha_size_dynamic_sections): Call elf64_alpha_size_plt_section.
Add PLTRO DYNAMIC entry.
(elf64_alpha_finish_dynamic_symbol): Generate secureplt format.
(elf64_alpha_finish_dynamic_sections): Likewise.
Diffstat (limited to 'bfd/configure.in')
-rw-r--r-- | bfd/configure.in | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/bfd/configure.in b/bfd/configure.in index 6ae0e22..7664a2c 100644 --- a/bfd/configure.in +++ b/bfd/configure.in @@ -51,6 +51,18 @@ AC_ARG_WITH(mmap, *) AC_MSG_ERROR(bad value ${withval} for BFD with-mmap option) ;; esac],[want_mmap=false])dnl +AC_ARG_ENABLE(secureplt, +[ --enable-secureplt Default to creating read-only plt entries], +[case "${enableval}" in + yes) use_secureplt=true ;; + no) use_secureplt=false ;; + *) AC_MSG_ERROR(bad value ${enableval} for secureplt option) ;; +esac],[use_secureplt=false])dnl +if test $use_secureplt = true; then + AC_DEFINE(USE_SECUREPLT, 1, + [Define if we should default to creating read-only plt entries]) +fi + AM_BINUTILS_WARNINGS AM_CONFIG_HEADER(config.h:config.in) |