aboutsummaryrefslogtreecommitdiff
path: root/bfd/bfd-in2.h
diff options
context:
space:
mode:
authorYuri Gribov <y.gribov@samsung.com>2014-02-27 14:35:37 +0000
committerNick Clifton <nickc@redhat.com>2014-02-27 14:35:37 +0000
commit1db37fe62781b677a37acbe801c1e69d8912a124 (patch)
tree48caffe8619eea72d91b80bb71ca0a6632bc5a63 /bfd/bfd-in2.h
parentfa96cb382c12b099675c5cc238aaa7352a3fd3d7 (diff)
downloadgdb-1db37fe62781b677a37acbe801c1e69d8912a124.zip
gdb-1db37fe62781b677a37acbe801c1e69d8912a124.tar.gz
gdb-1db37fe62781b677a37acbe801c1e69d8912a124.tar.bz2
This patch adds support for ARM PLT entries that support a full 32-bit offset range.
Enabled via the use of a new linker command line option: --long-plt. * bfd-in.h: Add export of bfd_elf32_arm_use_long_plt. * bfd-in2.h: Regenerate. * elf32-arm.c (elf32_arm_plt_entry_long): New array. (elf32_arm_link_hash_table_create): Set plt_entry_size to 16 if using long PLT entries. (bfd_elf32_arm_use_long_plt): New function. (elf32_arm_populate_plt_entry): Add support for long PLT entries. * emultempl/armelf.em (OPTION_LONG_PLT): Define. (PARSE_AND_LIST_LONGOPTS): Add long-plt. (PARSE_AND_LIST_OPTIONS): Likewise. (PARSE_AND_LIST_ARGS_CASES): Handle long-plt. * ld.texinfo: Document --long-plt. * ld-arm/long-plt-format.s: New test case. * ld-arm/long-plt-format.d: Expected disassembly. * ld-arm/arm-elf.exp: Run the new test.
Diffstat (limited to 'bfd/bfd-in2.h')
-rw-r--r--bfd/bfd-in2.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 33792f4..ebc7496 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -7,7 +7,7 @@
/* Main header file for the bfd library -- portable access to object files.
- Copyright 1990-2013 Free Software Foundation, Inc.
+ Copyright 1990-2014 Free Software Foundation, Inc.
Contributed by Cygnus Support.
@@ -884,15 +884,19 @@ extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
(bfd *, struct bfd_link_info *);
-/* ELF ARM mapping symbol support */
+/* ELF ARM mapping symbol support. */
#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0)
#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1)
#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2)
#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0)
+
extern bfd_boolean bfd_is_arm_special_symbol_name
- (const char * name, int type);
+ (const char *, int);
+
+extern void bfd_elf32_arm_set_byteswap_code
+ (struct bfd_link_info *, int);
-extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
+extern void bfd_elf32_arm_use_long_plt (void);
/* ARM Note section processing. */
extern bfd_boolean bfd_arm_merge_machines