diff options
author | Yuri Gribov <y.gribov@samsung.com> | 2014-02-27 14:35:37 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2014-02-27 14:35:37 +0000 |
commit | 1db37fe62781b677a37acbe801c1e69d8912a124 (patch) | |
tree | 48caffe8619eea72d91b80bb71ca0a6632bc5a63 /ld/ld.texinfo | |
parent | fa96cb382c12b099675c5cc238aaa7352a3fd3d7 (diff) | |
download | gdb-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 'ld/ld.texinfo')
-rw-r--r-- | ld/ld.texinfo | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/ld/ld.texinfo b/ld/ld.texinfo index b1dff79..eb0b991 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -1,6 +1,6 @@ \input texinfo @setfilename ld.info -@c Copyright 1991-2013 Free Software Foundation, Inc. +@c Copyright 1991-2014 Free Software Foundation, Inc. @syncodeindex ky cp @c man begin INCLUDE @include configdoc.texi @@ -55,7 +55,7 @@ This file documents the @sc{gnu} linker LD @end ifset version @value{VERSION}. -Copyright @copyright{} 1991-2013 Free Software Foundation, Inc. +Copyright @copyright{} 1991-2014 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 @@ -92,7 +92,7 @@ section entitled ``GNU Free Documentation License''. @vskip 0pt plus 1filll @c man begin COPYRIGHT -Copyright @copyright{} 1991-2013 Free Software Foundation, Inc. +Copyright @copyright{} 1991-2014 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 @@ -6257,17 +6257,6 @@ instructions into @code{bal} instructions when it determines that the target subroutine is a leaf routine (that is, the target subroutine does not itself call any subroutines). -@cindex Cortex-A8 erratum workaround -@kindex --fix-cortex-a8 -@kindex --no-fix-cortex-a8 -The @samp{--fix-cortex-a8} switch enables a link-time workaround for an erratum in certain Cortex-A8 processors. The workaround is enabled by default if you are targeting the ARM v7-A architecture profile. It can be enabled otherwise by specifying @samp{--fix-cortex-a8}, or disabled unconditionally by specifying @samp{--no-fix-cortex-a8}. - -The erratum only affects Thumb-2 code. Please contact ARM for further details. - -@kindex --merge-exidx-entries -@kindex --no-merge-exidx-entries -The @samp{--no-merge-exidx-entries} switch disables the merging of adjacent exidx entries in debuginfo. - @ifclear GENERIC @lowersections @end ifclear @@ -6526,6 +6515,24 @@ Farcalls stubs insertion is fully supported for the ARM-EABI target only, because it relies on object files properties not present otherwise. +@cindex Cortex-A8 erratum workaround +@kindex --fix-cortex-a8 +@kindex --no-fix-cortex-a8 +The @samp{--fix-cortex-a8} switch enables a link-time workaround for an erratum in certain Cortex-A8 processors. The workaround is enabled by default if you are targeting the ARM v7-A architecture profile. It can be enabled otherwise by specifying @samp{--fix-cortex-a8}, or disabled unconditionally by specifying @samp{--no-fix-cortex-a8}. + +The erratum only affects Thumb-2 code. Please contact ARM for further details. + +@kindex --merge-exidx-entries +@kindex --no-merge-exidx-entries +@cindex Merging exidx entries +The @samp{--no-merge-exidx-entries} switch disables the merging of adjacent exidx entries in debuginfo. + +@kindex --long-plt +@cindex 32-bit PLT entries +The @samp{--long-plt} option enables the use of 16 byte PLT entries +which support up to 4Gb of code. The default is to use 12 byte PLT +entries which only support 512Mb of code. + @ifclear GENERIC @lowersections @end ifclear |