aboutsummaryrefslogtreecommitdiff
path: root/bfd/configure.in
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2005-05-29 23:13:39 +0000
committerRichard Henderson <rth@redhat.com>2005-05-29 23:13:39 +0000
commit6ec7057aa5cdbf5b1544ce29d0df8d0d6f603179 (patch)
treec5e487eac9f7c2ac7655266b3cd580f1f54a4127 /bfd/configure.in
parentc24162389c22a438dc7561eb6d69061b5330059d (diff)
downloadgdb-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.in12
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)