diff options
author | Alan Modra <amodra@gmail.com> | 2011-07-26 01:57:18 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2011-07-26 01:57:18 +0000 |
commit | 58d180e827fcc256ae661c02d14ff0acae362efa (patch) | |
tree | 3dcab39f4811f6faa2344f9c0c2323e23601786c /ld/emultempl | |
parent | 4f726958388d3ca7abe5b6409ceed4b1d6527b86 (diff) | |
download | gdb-58d180e827fcc256ae661c02d14ff0acae362efa.zip gdb-58d180e827fcc256ae661c02d14ff0acae362efa.tar.gz gdb-58d180e827fcc256ae661c02d14ff0acae362efa.tar.bz2 |
bfd/
* elf32-ppc.c: Include dwarf2.h.
(struct ppc_elf_link_hash_table): Add glink_eh_frame.
(ppc_elf_create_glink): Create .eh_frame section.
(glink_eh_frame_cie): New array.
(ppc_elf_size_dynamic_sections): Size glink_eh_frame.
(ppc_elf_finish_dynamic_sections): Write glink_eh_frame.
* elf64-ppc.c: Include dwarg2.h.
(struct ppc_link_hash_table): Add glink_eh_frame.
(create_linkage_sections): Create .eh_frame section.
(ppc64_elf_size_dynamic_sections): Arrange to drop unneeded
glink_eh_frame.
(glink_eh_frame_cie): New array.
(ppc64_elf_size_stubs): Size glink_eh_frame.
(ppc64_elf_build_stubs): Init glink_eh_frame contents.
(ppc64_elf_finish_dynamic_sections): Write glink_eh_frame.
ld/
* emulparams/elf32ppc.sh: Source plt_unwind.sh.
* emulparams/elf64ppc.sh: Likewise.
* emultempl/ppc32elf.em (OPTION_NO_TLS_OPT): Adjust.
(PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS,
PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Append to
existing values.
* emultempl/ppc64elf.em (OPTION_STUBGROUP_SIZE): Adjust.
(PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS,
PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Append to
existing values.
ld/testsuite/
* ld-powerpc/powerpc.exp: Use --no-ld-generated-unwind-info
with some tests.
* ld-powerpc/relbrlt.d: Likewise.
Diffstat (limited to 'ld/emultempl')
-rw-r--r-- | ld/emultempl/ppc32elf.em | 13 | ||||
-rw-r--r-- | ld/emultempl/ppc64elf.em | 10 |
2 files changed, 12 insertions, 11 deletions
diff --git a/ld/emultempl/ppc32elf.em b/ld/emultempl/ppc32elf.em index 36f9df2..d9d7c03 100644 --- a/ld/emultempl/ppc32elf.em +++ b/ld/emultempl/ppc32elf.em @@ -1,5 +1,6 @@ # This shell script emits a C file. -*- C -*- -# Copyright 2003, 2005, 2007, 2008, 2009 Free Software Foundation, Inc. +# Copyright 2003, 2005, 2007, 2008, 2009, 2010, 2011 +# Free Software Foundation, Inc. # # This file is part of the GNU Binutils. # @@ -176,8 +177,8 @@ fi # Define some shell vars to insert bits of code into the standard elf # parse_args and list_options functions. # -PARSE_AND_LIST_PROLOGUE=' -#define OPTION_NO_TLS_OPT 301 +PARSE_AND_LIST_PROLOGUE=${PARSE_AND_LIST_PROLOGUE}' +#define OPTION_NO_TLS_OPT 321 #define OPTION_NO_TLS_GET_ADDR_OPT (OPTION_NO_TLS_OPT + 1) #define OPTION_NEW_PLT (OPTION_NO_TLS_GET_ADDR_OPT + 1) #define OPTION_OLD_PLT (OPTION_NEW_PLT + 1) @@ -186,7 +187,7 @@ PARSE_AND_LIST_PROLOGUE=' #define OPTION_NO_STUBSYMS (OPTION_STUBSYMS + 1) ' -PARSE_AND_LIST_LONGOPTS=' +PARSE_AND_LIST_LONGOPTS=${PARSE_AND_LIST_LONGOPTS}' { "emit-stub-syms", no_argument, NULL, OPTION_STUBSYMS }, { "no-emit-stub-syms", no_argument, NULL, OPTION_NO_STUBSYMS }, { "no-tls-optimize", no_argument, NULL, OPTION_NO_TLS_OPT }, @@ -196,7 +197,7 @@ PARSE_AND_LIST_LONGOPTS=' { "sdata-got", no_argument, NULL, OPTION_OLD_GOT }, ' -PARSE_AND_LIST_OPTIONS=' +PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}' fprintf (file, _("\ --emit-stub-syms Label linker stubs with a symbol.\n\ --no-emit-stub-syms Don'\''t label linker stubs with a symbol.\n\ @@ -208,7 +209,7 @@ PARSE_AND_LIST_OPTIONS=' )); ' -PARSE_AND_LIST_ARGS_CASES=' +PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}' case OPTION_STUBSYMS: emit_stub_syms = 1; break; diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em index a57861b..8a81beb 100644 --- a/ld/emultempl/ppc64elf.em +++ b/ld/emultempl/ppc64elf.em @@ -652,8 +652,8 @@ fi # Define some shell vars to insert bits of code into the standard elf # parse_args and list_options functions. # -PARSE_AND_LIST_PROLOGUE=' -#define OPTION_STUBGROUP_SIZE 301 +PARSE_AND_LIST_PROLOGUE=${PARSE_AND_LIST_PROLOGUE}' +#define OPTION_STUBGROUP_SIZE 321 #define OPTION_PLT_STATIC_CHAIN (OPTION_STUBGROUP_SIZE + 1) #define OPTION_NO_PLT_STATIC_CHAIN (OPTION_PLT_STATIC_CHAIN + 1) #define OPTION_STUBSYMS (OPTION_NO_PLT_STATIC_CHAIN + 1) @@ -669,7 +669,7 @@ PARSE_AND_LIST_PROLOGUE=' #define OPTION_NON_OVERLAPPING_OPD (OPTION_NO_TOC_SORT + 1) ' -PARSE_AND_LIST_LONGOPTS=' +PARSE_AND_LIST_LONGOPTS=${PARSE_AND_LIST_LONGOPTS}' { "stub-group-size", required_argument, NULL, OPTION_STUBGROUP_SIZE }, { "plt-static-chain", no_argument, NULL, OPTION_PLT_STATIC_CHAIN }, { "no-plt-static-chain", no_argument, NULL, OPTION_NO_PLT_STATIC_CHAIN }, @@ -686,7 +686,7 @@ PARSE_AND_LIST_LONGOPTS=' { "non-overlapping-opd", no_argument, NULL, OPTION_NON_OVERLAPPING_OPD }, ' -PARSE_AND_LIST_OPTIONS=' +PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}' fprintf (file, _("\ --stub-group-size=N Maximum size of a group of input sections that\n\ can be handled by one stub section. A negative\n\ @@ -742,7 +742,7 @@ PARSE_AND_LIST_OPTIONS=' )); ' -PARSE_AND_LIST_ARGS_CASES=' +PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}' case OPTION_STUBGROUP_SIZE: { const char *end; |