From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19330 invoked by alias); 14 Aug 2012 16:08:56 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 19270 invoked by uid 9514); 14 Aug 2012 16:08:53 -0000 Date: Tue, 14 Aug 2012 16:08:00 -0000 Message-ID: <20120814160853.19255.qmail@sourceware.org> From: pmuldoon@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-pmuldoon-python-backtrace: Merge remote-tracking branch 'gdb/master' into archer-pmuldoon-python-backtrace X-Git-Refname: refs/heads/archer-pmuldoon-python-backtrace X-Git-Reftype: branch X-Git-Oldrev: 12f3ffcbc3530fb011af47e03f6dabfb96f42147 X-Git-Newrev: ce126c971ee4f1908c026de832cedd633c4028b5 X-SW-Source: 2012-q3/txt/msg00029.txt.bz2 List-Id: The branch, archer-pmuldoon-python-backtrace has been updated via ce126c971ee4f1908c026de832cedd633c4028b5 (commit) via fb70436ebc191361813bc4890db962cf803b3cd8 (commit) via 75da6212538db29efe995a7a4bdbbe12033c050c (commit) via af8c77a2f255997ad4f71748ece2219ea307f7e8 (commit) via 8e0ca418b7af62eb2032b79ec8354ae246a94152 (commit) via 9fe322b663d844a11bdd9a4267dce63f58cd8851 (commit) via b6f75956dfe844ba4249c99332794d2af98d93dc (commit) via 8dfb0e518d13a7637d02318f3c07394bba3a2ab7 (commit) via 996895acb6041dbba07aa0f43a38e7442d4d1400 (commit) via d8037c4af5316234e59dd4166bebb57229de5cd0 (commit) via ae1a9a25e6c71e1b584eceecc87b3fff16e5f70e (commit) via 9a354aaa1d797e1f964b1be1fb253858f35d4c30 (commit) via 91a2c2e8d41e78fe2bcc387abcd5664fe2fd1db2 (commit) via 492a50b4c9f9d51d29e0035417e29e7d4f5cc1cc (commit) via 4e691aa3ce0784b9c7f566bbc4c7f960e836bc76 (commit) via ea01ce5cb4525da9f982a57fd3a5cdd2dd70d099 (commit) via f048063d75fd0f6b4f186d1512a4977733808340 (commit) via 0068840d036189ab124ca3b550a17e29765b24e1 (commit) via c4fa24b5f722e0e6e6c3c5e98d8551da88164c64 (commit) via ded47deef0bf6cbeeb56497d6483162b4017c93d (commit) via d4082faa79cd3424941e9a88b228598892868c5e (commit) via e826334f04fb6027489f33575846bcb9616d7ac5 (commit) via f5197d42c13e329056e811f1cea4352407efc4d2 (commit) via 96e5de1146522ad853b4cb51ff58fdad6ad79f7d (commit) via 89a52f35ac455f4ea8395433bf99dafb2a03c27c (commit) via 95ed1154af62257f640e8a879fca62858e508818 (commit) via a4320238c2c4996859ee325cf438fdd46b39c515 (commit) via 03476df4899aedbb8d926c9554273adc6b9e955e (commit) via 8a5713fa5196e387768911062b131d97926683c3 (commit) from 12f3ffcbc3530fb011af47e03f6dabfb96f42147 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ce126c971ee4f1908c026de832cedd633c4028b5 Merge: 12f3ffc fb70436 Author: Phil Muldoon Date: Tue Aug 14 17:08:31 2012 +0100 Merge remote-tracking branch 'gdb/master' into archer-pmuldoon-python-backtrace Conflicts: gdb/data-directory/Makefile.in commit fb70436ebc191361813bc4890db962cf803b3cd8 Author: Nick Clifton Date: Tue Aug 14 11:59:04 2012 +0000 Updated Ukranian translations. commit 75da6212538db29efe995a7a4bdbbe12033c050c Author: gdbadmin Date: Tue Aug 14 00:00:33 2012 +0000 *** empty log message *** commit af8c77a2f255997ad4f71748ece2219ea307f7e8 Author: Alan Modra Date: Tue Aug 14 00:00:05 2012 +0000 daily update commit 8e0ca418b7af62eb2032b79ec8354ae246a94152 Author: Doug Evans Date: Mon Aug 13 21:14:47 2012 +0000 * gdb.base/help.exp: Update expected output. commit 9fe322b663d844a11bdd9a4267dce63f58cd8851 Author: Maciej W. Rozycki Date: Mon Aug 13 19:43:37 2012 +0000 * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Look up the options section in the output rather than input BFD to decide if to add a DT_MIPS_OPTIONS tag. commit b6f75956dfe844ba4249c99332794d2af98d93dc Author: Mike Frysinger Date: Mon Aug 13 15:43:59 2012 +0000 gdb: ignore generated go-exp.c commit 8dfb0e518d13a7637d02318f3c07394bba3a2ab7 Author: Maciej W. Rozycki Date: Mon Aug 13 15:01:13 2012 +0000 * config.bfd: Wrap mips*el-*-linux* and mips*-*-linux* into #ifdef BFD64. commit 996895acb6041dbba07aa0f43a38e7442d4d1400 Author: Nick Clifton Date: Mon Aug 13 14:52:30 2012 +0000 Add support for 64-bit ARM architecture: AArch64 commit d8037c4af5316234e59dd4166bebb57229de5cd0 Author: Doug Evans Date: Mon Aug 13 14:30:55 2012 +0000 * value.c (show_convenience): Tweak comment. (_initialize_values): Mention convenience functions in the help text for "show convenience". doc/ * gdb.texinfo (Convenience Vars): Update text for "show convenience" to include functions. testsuite/ * gdb.base/default.exp: Update expected output of "show convenience". commit ae1a9a25e6c71e1b584eceecc87b3fff16e5f70e Author: Maciej W. Rozycki Date: Mon Aug 13 14:26:09 2012 +0000 include/opcode/ * mips.h (mips_opcode): Add the exclusions field. (OPCODE_IS_MEMBER): Remove macro. (cpu_is_member): New inline function. (opcode_is_member): Likewise. opcodes/ * micromips-opc.c (micromips_opcodes): Update comment. * mips-opc.c (mips_builtin_opcodes): Likewise. Mark coprocessor instructions for IOCT as appropriate. * mips-dis.c (print_insn_mips): Replace OPCODE_IS_MEMBER with opcode_is_member. * configure.in: Substitute NO_WMISSING_FIELD_INITIALIZERS with the result of a check for the -Wno-missing-field-initializers GCC option. * Makefile.am (NO_WMISSING_FIELD_INITIALIZERS): New variable. (mips-opc.lo): Pass $(NO_WMISSING_FIELD_INITIALIZERS) to compilation. (mips16-opc.lo): Likewise. (micromips-opc.lo): Likewise. * aclocal.m4: Regenerate. * configure: Regenerate. * Makefile.in: Regenerate. gas/ * config/tc-mips.c (NO_ISA_COP, COP_INSN): Remove macros. (is_opcode_valid): Remove coprocessor instruction exclusions. Replace OPCODE_IS_MEMBER with opcode_is_member. (is_opcode_valid_16): Replace OPCODE_IS_MEMBER with opcode_is_member. (macro): Remove coprocessor instruction exclusions. commit 9a354aaa1d797e1f964b1be1fb253858f35d4c30 Author: Maciej W. Rozycki Date: Mon Aug 13 13:06:13 2012 +0000 * elfxx-mips.c (mips_elf_calculate_relocation): Fix the handling of protected symbols. commit 91a2c2e8d41e78fe2bcc387abcd5664fe2fd1db2 Author: qiyao Date: Mon Aug 13 01:02:05 2012 +0000 gdb/ * std-operator.def: Remove TERNOP_SLICE_COUNT. * breakpoint.c (watchpoint_exp_is_const): Remove handling to TERNOP_SLICE_COUNT. * eval.c (evaluate_subexp_standard): Likewise. * expprint.c (print_subexp_standard): Likewise. (dump_subexp_body_standard): Likewise. * parse.c (operator_length_standard): Likewise. commit 492a50b4c9f9d51d29e0035417e29e7d4f5cc1cc Author: qiyao Date: Mon Aug 13 00:54:03 2012 +0000 gdb/ * std-operator.def: Remove OP_BITSTRING. * breakpoint.c (watchpoint_exp_is_const): Update. * eval.c (evaluate_subexp_standard): Remove handling to OP_BITSTRING. * expprint.c (print_subexp_standard): Likewise. (dump_subexp_body_standard): Likewise. * parse.c (operator_length_standard): Likewise. * valops.c (value_bitstring): Remove. * value.h: Remove the declaration of 'value_bitstring'. commit 4e691aa3ce0784b9c7f566bbc4c7f960e836bc76 Author: Alan Modra Date: Mon Aug 13 00:00:05 2012 +0000 daily update commit ea01ce5cb4525da9f982a57fd3a5cdd2dd70d099 Author: gdbadmin Date: Mon Aug 13 00:00:03 2012 +0000 *** empty log message *** commit f048063d75fd0f6b4f186d1512a4977733808340 Author: gdbadmin Date: Sun Aug 12 00:00:32 2012 +0000 *** empty log message *** commit 0068840d036189ab124ca3b550a17e29765b24e1 Author: Alan Modra Date: Sun Aug 12 00:00:05 2012 +0000 daily update commit c4fa24b5f722e0e6e6c3c5e98d8551da88164c64 Author: sergiodj Date: Sat Aug 11 00:20:14 2012 +0000 2012-08-10 Sergio Durigan Junior * linespec.c (find_methods): Remove unused variables `i1' and `name_len'. (decode_line_full): Likewise for `arg_start'. commit ded47deef0bf6cbeeb56497d6483162b4017c93d Author: sergiodj Date: Sat Aug 11 00:05:53 2012 +0000 2012-08-10 Sergio Durigan Junior * gdb_bfd.c (gdb_bfd_unref): Remove unused variable `slot'. (zlib_decompress_section): Likewise for `section_data'. (gdb_bfd_map_section): Likewise for `buf' and `retbuf'. commit d4082faa79cd3424941e9a88b228598892868c5e Author: gdbadmin Date: Sat Aug 11 00:00:33 2012 +0000 *** empty log message *** commit e826334f04fb6027489f33575846bcb9616d7ac5 Author: Alan Modra Date: Sat Aug 11 00:00:05 2012 +0000 daily update commit f5197d42c13e329056e811f1cea4352407efc4d2 Author: H.J. Lu Date: Fri Aug 10 21:19:39 2012 +0000 Enable FMA instructions for bdver2 gas/testsuite/ PR gas/14423 * gas/i386/arch-10-bdver2.d: New file. * gas/i386/x86-64-arch-2-bdver2.d: Likewise. * gas/i386/i386.exp: Run new test opcodes/ 2012-08-11 Saravanan Ekanathan PR gas/14423 * i386-gen.c (cpu_flag_init): Add CpuFMA in CPU_BDVER2_FLAGS. * i386-init.h: Regenerated. commit 96e5de1146522ad853b4cb51ff58fdad6ad79f7d Author: Doug Evans Date: Fri Aug 10 20:25:50 2012 +0000 Add $_memeq, $_regex, $_streq, $_strlen convenience functions. * NEWS: Document them. * data-directory/Makefile.in (PYTHON_FILES): Add function/__init__.py, function/strfns.py. * python/py-type.c (typy_array_1): New function. (typy_array): Call it. (typy_vector): New function. (type_object_methods): Add "vector". * python/lib/gdb/function/__init__.py: New file. * python/lib/gdb/function/strfns.py: New file. doc/ * gdb.texinfo (Convenience Funs): New node. (Types In Python): Document Type.vector. testsuite/ * gdb.python/py-strfns.c: New file. * gdb.python/py-strfns.exp: New file. * gdb.python/py-type.exp (test_fields): Add vector tests. commit 89a52f35ac455f4ea8395433bf99dafb2a03c27c Author: siddhesh Date: Fri Aug 10 18:55:16 2012 +0000 * python/py-type.c (convert_field): Use gdb_py_long_from_longest for TYPE_FIELD_BITPOS. (typy_get_sizeof): Likewise for TYPE_LENGTH. commit 95ed1154af62257f640e8a879fca62858e508818 Author: Mike Frysinger Date: Fri Aug 10 05:03:07 2012 +0000 gdb: add completion handler for "handle" and "signal" The command line completion has spoiled me. Thus the lack of completion with the "handle" command annoys me. Patch! This does a few things: - adds a VEC_merge helper - adds a generic signal completer - adds a completion handler for the "handle" command - sets the completion handler for the "signal" command URL: http://sourceware.org/bugzilla/show_bug.cgi?id=10436 Signed-off-by: Mike Frysinger commit a4320238c2c4996859ee325cf438fdd46b39c515 Author: Alan Modra Date: Fri Aug 10 02:14:49 2012 +0000 PR binutils/14444 * elf.c (IS_VALID_GROUP_SECTION_HEADER) Add minsize param. (setup_group): Adjust uses. (bfd_section_from_shdr): Allow SHT_GROUP sections with just a flag word. commit 03476df4899aedbb8d926c9554273adc6b9e955e Author: Alan Modra Date: Fri Aug 10 00:00:04 2012 +0000 daily update commit 8a5713fa5196e387768911062b131d97926683c3 Author: gdbadmin Date: Fri Aug 10 00:00:03 2012 +0000 *** empty log message *** ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 112 +- bfd/Makefile.am | 4 + bfd/Makefile.in | 6 + bfd/archures.c | 4 + bfd/bfd-in.h | 26 + bfd/bfd-in2.h | 242 + bfd/config.bfd | 23 +- bfd/configure | 2 + bfd/configure.in | 2 + bfd/cpu-aarch64.c | 121 + bfd/doc/Makefile.in | 4 +- bfd/elf-bfd.h | 3 +- bfd/elf.c | 10 +- bfd/elf64-aarch64.c | 7016 ++++++++++++++++++++++++++++ bfd/elfxx-mips.c | 7 +- bfd/libbfd.h | 57 + bfd/po/uk.po | 92 +- bfd/reloc.c | 274 ++- bfd/targets.c | 4 + bfd/version.h | 2 +- gdb/.gitignore | 1 + gdb/ChangeLog | 81 + gdb/NEWS | 11 + gdb/breakpoint.c | 2 - gdb/common/vec.h | 72 + gdb/completer.c | 32 + gdb/completer.h | 3 + gdb/data-directory/Makefile.in | 2 + gdb/doc/ChangeLog | 10 + gdb/doc/gdb.texinfo | 54 +- gdb/eval.c | 21 - gdb/expprint.c | 10 - gdb/gdb_bfd.c | 3 - gdb/infcmd.c | 3 +- gdb/infrun.c | 35 +- gdb/linespec.c | 3 - gdb/parse.c | 7 - gdb/python/lib/gdb/function/__init__.py | 14 + gdb/python/lib/gdb/function/strfns.py | 108 + gdb/python/py-type.c | 34 +- gdb/std-operator.def | 11 - gdb/testsuite/ChangeLog | 16 + gdb/testsuite/gdb.base/completion.exp | 26 + gdb/testsuite/gdb.base/default.exp | 22 +- gdb/testsuite/gdb.base/help.exp | 2 +- gdb/testsuite/gdb.python/py-strfns.c | 50 + gdb/testsuite/gdb.python/py-strfns.exp | 103 + gdb/testsuite/gdb.python/py-type.exp | 15 + gdb/valops.c | 13 - gdb/value.c | 30 +- gdb/value.h | 2 - gdb/version.in | 2 +- include/ChangeLog | 15 + include/dis-asm.h | 3 + include/elf/ChangeLog | 15 + include/elf/aarch64.h | 214 + include/elf/common.h | 4 +- include/opcode/ChangeLog | 21 + include/opcode/aarch64.h | 928 ++++ include/opcode/mips.h | 135 +- opcodes/ChangeLog | 54 + opcodes/Makefile.am | 41 +- opcodes/Makefile.in | 48 +- opcodes/aarch64-asm-2.c | 345 ++ opcodes/aarch64-asm.c | 1268 +++++ opcodes/aarch64-asm.h | 73 + opcodes/aarch64-dis-2.c | 7655 +++++++++++++++++++++++++++++++ opcodes/aarch64-dis.c | 2392 ++++++++++ opcodes/aarch64-dis.h | 94 + opcodes/aarch64-gen.c | 1317 ++++++ opcodes/aarch64-opc-2.c | 195 + opcodes/aarch64-opc.c | 3074 +++++++++++++ opcodes/aarch64-opc.h | 392 ++ opcodes/aarch64-tbl.h | 2253 +++++++++ opcodes/aclocal.m4 | 1 + opcodes/configure | 51 +- opcodes/configure.in | 3 + opcodes/disassemble.c | 15 + opcodes/i386-gen.c | 2 +- opcodes/i386-init.h | 2 +- opcodes/micromips-opc.c | 2 +- opcodes/mips-dis.c | 2 +- opcodes/mips-opc.c | 182 +- 83 files changed, 29288 insertions(+), 317 deletions(-) create mode 100644 bfd/cpu-aarch64.c create mode 100644 bfd/elf64-aarch64.c create mode 100644 gdb/python/lib/gdb/function/__init__.py create mode 100644 gdb/python/lib/gdb/function/strfns.py create mode 100644 gdb/testsuite/gdb.python/py-strfns.c create mode 100644 gdb/testsuite/gdb.python/py-strfns.exp create mode 100644 include/elf/aarch64.h create mode 100644 include/opcode/aarch64.h create mode 100644 opcodes/aarch64-asm-2.c create mode 100644 opcodes/aarch64-asm.c create mode 100644 opcodes/aarch64-asm.h create mode 100644 opcodes/aarch64-dis-2.c create mode 100644 opcodes/aarch64-dis.c create mode 100644 opcodes/aarch64-dis.h create mode 100644 opcodes/aarch64-gen.c create mode 100644 opcodes/aarch64-opc-2.c create mode 100644 opcodes/aarch64-opc.c create mode 100644 opcodes/aarch64-opc.h create mode 100644 opcodes/aarch64-tbl.h First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index af00be7..deac174 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,75 @@ +2012-08-14 Nick Clifton + + * po/uk.po: Updated Ukranian translation. + +2012-08-13 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Look up + the options section in the output rather than input BFD to + decide if to add a DT_MIPS_OPTIONS tag. + +2012-08-13 Maciej W. Rozycki + + * config.bfd: Wrap mips*el-*-linux* and mips*-*-linux* into + #ifdef BFD64. + +2012-08-13 Ian Bolton + Laurent Desnogues + Jim MacArthur + Marcus Shawcroft + Nigel Stephens + Ramana Radhakrishnan + Richard Earnshaw + Sofiane Naci + Tejas Belagod + Yufeng Zhang + + * Makefile.am: Add AArch64 files. + * Makefile.in: Regenerate. + * archures.c (bfd_aarch64_arch): New declaration. + (bfd_archures_list): Use bfd_archures_list. + * bfd-in.h (bfd_elf64_aarch64_init_maps): New declaration. + (bfd_aarch64_process_before_allocation): New declaration. + (bfd_elf64_aarch64_process_before_allocation): New declaration. + (bfd_elf64_aarch64_set_options): New declaration. + (bfd_elf64_aarch64_add_glue_sections_to_bfd): New declaration. + (BFD_AARCH64_SPECIAL_SYM_TYPE_MAP): New definition. + (BFD_AARCH64_SPECIAL_SYM_TYPE_TAG): New definition. + (BFD_AARCH64_SPECIAL_SYM_TYPE_OTHER): New definition. + (BFD_AARCH64_SPECIAL_SYM_TYPE_ANY): New definition. + (bfd_is_aarch64_special_symbol_name): New declaration. + (bfd_aarch64_merge_machines): New declaration. + (bfd_aarch64_update_notes): New declaration. + (int bfd_aarch64_get_mach_from_notes): New declaration. + (elf64_aarch64_setup_section_lists): New declaration. + (elf64_aarch64_next_input_section): New declaration. + (elf64_aarch64_size_stubs): New declaration. + (elf64_aarch64_build_stubs): New declaration. + * config.bfd: Add AArch64. + * configure.in: Add AArch64. + * configure: Regenerate. + * cpu-aarch64.c: New file. + * elf-bfd.h: Add AArch64. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + * elf64-aarch64.c: New file. + * reloc.c: Add AArch64 relocations. + * targets.c: Add AArch64. + * po/SRC-POTFILES.in: Regenerate. + +2012-08-13 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_calculate_relocation): Fix the handling + of protected symbols. + +2012-08-10 Alan Modra + + PR binutils/14444 + * elf.c (IS_VALID_GROUP_SECTION_HEADER) Add minsize param. + (setup_group): Adjust uses. + (bfd_section_from_shdr): Allow SHT_GROUP sections with just a flag + word. + 2012-08-09 Nick Clifton * po/vi.po: Updated Vietnamese translation. @@ -139,47 +211,47 @@ * dwarf2.c (struct line_info): Add discriminator field. (add_line_info): Fill in new discriminator field. (decode_line_info): Record discriminator information instead - of ignoring it. + of ignoring it. (lookup_address_in_line_info_table): Return discriminator field if - requested. + requested. (comp_unit_find_nearest_line): Add discriminator argument. (find_line): Likewise. (_bfd_dwarf2_find_nearest_line): Likewise. (_bfd_dwarf2_find_line): Likewise. * elf-bfd.h (_bfd_elf_find_nearest_line_discriminator): New. - (_bfd_elf_find_line_discriminator): Likewise. - (_bfd_generic_find_nearest_line_discriminator): Likewise. Defined. + (_bfd_elf_find_line_discriminator): Likewise. + (_bfd_generic_find_nearest_line_discriminator): Likewise. Defined. * elf.c (_bfd_elf_find_nearest_line): Change to a wrapper - that invokes _bfd_elf_find_nearest_line_discriminator with correct - arguments. + that invokes _bfd_elf_find_nearest_line_discriminator with correct + arguments. (_bfd_elf_find_nearest_line_discriminator): New. (_bfd_elf_find_line): Change to a wrapper - that invokes _bfd_elf_find_line_discriminator with correct - arguments. + that invokes _bfd_elf_find_line_discriminator with correct + arguments. (_bfd_elf_find_line_discriminator): New. * coffgen.c (coff_find_nearest_line_with_names): Handle - new discriminator argument. + new discriminator argument. * elf32-arm.c (elf32_arm_find_nearest_line): Likewise. * elf64-alpha.c (elf64_alpha_find_nearest_line): Likewise. * elfxx-mips.c (_bfd_mips_elf_find_nearest_line): Likewise. * mach-o.c (bfd_mach_o_find_nearest_line): Likewise. * libbfd-in.h (_bfd_dwarf2_find_nearest_line): Add discriminator - argument. - (_bfd_dwarf2_find_line): Likewise. - (_bfd_generic_find_nearest_line_discriminator): New. + argument. + (_bfd_dwarf2_find_line): Likewise. + (_bfd_generic_find_nearest_line_discriminator): New. * libbfd.c (_bfd_generic_find_nearest_line_discriminator): New. * bfd-in2.h: Regenerated. * libbfd.h: Likewise. * targets.c (BFD_JUMP_TABLE_SYMBOLS): Initialize - _bfd_find_nearest_line_discriminator with - _bfd_generic_find_nearest_line_discriminator. - (bfd_target): Add _bfd_find_nearest_line_discriminator. + _bfd_find_nearest_line_discriminator with + _bfd_generic_find_nearest_line_discriminator. + (bfd_target): Add _bfd_find_nearest_line_discriminator. 2012-07-24 Sean Keys - * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Added code + * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Added code that enables the linker to offset addresses, when linking against - symbols from the XGATE processor and vice versa. + symbols from the XGATE processor and vice versa. 2012-07-23 Nick Clifton @@ -657,7 +729,7 @@ 2012-05-23 Alan Modra * elf-eh-frame.c (_bfd_elf_maybe_strip_eh_frame_hdr): Handle - BFDs with multiple .eh_frame sections. + BFDs with multiple .eh_frame sections. 2012-05-23 Alan Modra @@ -891,8 +963,8 @@ 2012-05-16 Alan Modra - PR ld/13962 - PR ld/7023 + PR ld/13962 + PR ld/7023 * elf.c (bfd_section_from_shdr): Fail when .dynsym sh_info is out of range. As a special case, fix sh_info for zero sh_size. Do the same for .symtab. diff --git a/bfd/Makefile.am b/bfd/Makefile.am index b7271cc..49f9662 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -71,6 +71,7 @@ BFD64_LIBS_CFILES = archive64.c # This list is alphabetized to make it easier to keep in sync # with the decls and initializer in archures.c. ALL_MACHINES = \ + cpu-aarch64.lo \ cpu-alpha.lo \ cpu-arc.lo \ cpu-arm.lo \ @@ -151,6 +152,7 @@ ALL_MACHINES = \ cpu-z8k.lo ALL_MACHINES_CFILES = \ + cpu-aarch64.c \ cpu-alpha.c \ cpu-arc.c \ cpu-arm.c \ @@ -613,6 +615,7 @@ BFD32_BACKENDS_CFILES = \ # elf32-ia64.c requires a 64-bit bfd_vma, and hence can not be put in # BFD32_BACKENDS. BFD64_BACKENDS = \ + elf64-aarch64.lo \ aix5ppc-core.lo \ aout64.lo \ coff-alpha.lo \ @@ -651,6 +654,7 @@ BFD64_BACKENDS = \ vms-alpha.lo BFD64_BACKENDS_CFILES = \ + elf64-aarch64.c \ aix5ppc-core.c \ aout64.c \ coff-alpha.c \ diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 8ee6681..5718fab 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -370,6 +370,7 @@ BFD64_LIBS_CFILES = archive64.c # This list is alphabetized to make it easier to keep in sync # with the decls and initializer in archures.c. ALL_MACHINES = \ + cpu-aarch64.lo \ cpu-alpha.lo \ cpu-arc.lo \ cpu-arm.lo \ @@ -450,6 +451,7 @@ ALL_MACHINES = \ cpu-z8k.lo ALL_MACHINES_CFILES = \ + cpu-aarch64.c \ cpu-alpha.c \ cpu-arc.c \ cpu-arm.c \ @@ -914,6 +916,7 @@ BFD32_BACKENDS_CFILES = \ # elf32-ia64.c requires a 64-bit bfd_vma, and hence can not be put in # BFD32_BACKENDS. BFD64_BACKENDS = \ + elf64-aarch64.lo \ aix5ppc-core.lo \ aout64.lo \ coff-alpha.lo \ @@ -952,6 +955,7 @@ BFD64_BACKENDS = \ vms-alpha.lo BFD64_BACKENDS_CFILES = \ + elf64-aarch64.c \ aix5ppc-core.c \ aout64.c \ coff-alpha.c \ @@ -1270,6 +1274,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cofflink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compress.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/corefile.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-aarch64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-alpha.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-arc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-arm.Plo@am__quote@ @@ -1427,6 +1432,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-xstormy16.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-xtensa.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-aarch64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-alpha.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-gen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-hppa.Plo@am__quote@ diff --git a/bfd/archures.c b/bfd/archures.c index a23534b..3198436 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -461,6 +461,8 @@ DESCRIPTION .#define bfd_mach_tilepro 1 .#define bfd_mach_tilegx 1 .#define bfd_mach_tilegx32 2 +. bfd_arch_aarch64, {* AArch64 *} +.#define bfd_mach_aarch64 0 . bfd_arch_last . }; */ @@ -505,6 +507,7 @@ DESCRIPTION . */ +extern const bfd_arch_info_type bfd_aarch64_arch; extern const bfd_arch_info_type bfd_alpha_arch; extern const bfd_arch_info_type bfd_arc_arch; extern const bfd_arch_info_type bfd_arm_arch; @@ -590,6 +593,7 @@ static const bfd_arch_info_type * const bfd_archures_list[] = #ifdef SELECT_ARCHITECTURES SELECT_ARCHITECTURES, #else + &bfd_aarch64_arch, &bfd_alpha_arch, &bfd_arc_arch, &bfd_arm_arch, diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h index 5300b14..a8c2db1 100644 --- a/bfd/bfd-in.h +++ b/bfd/bfd-in.h @@ -928,6 +928,32 @@ extern unsigned int _bfd_elf_ppc_at_tls_transform extern unsigned int _bfd_elf_ppc_at_tprel_transform (unsigned int, unsigned int); +extern void bfd_elf64_aarch64_init_maps + (bfd *); + +void bfd_elf64_aarch64_set_options + (bfd *, struct bfd_link_info *, int, int, int); + +/* ELF AArch64 mapping symbol support. */ +#define BFD_AARCH64_SPECIAL_SYM_TYPE_MAP (1 << 0) +#define BFD_AARCH64_SPECIAL_SYM_TYPE_TAG (1 << 1) +#define BFD_AARCH64_SPECIAL_SYM_TYPE_OTHER (1 << 2) +#define BFD_AARCH64_SPECIAL_SYM_TYPE_ANY (~0) +extern bfd_boolean bfd_is_aarch64_special_symbol_name + (const char * name, int type); + +/* AArch64 stub generation support. Called from the linker. */ +extern int elf64_aarch64_setup_section_lists + (bfd *, struct bfd_link_info *); +extern void elf64_aarch64_next_input_section + (struct bfd_link_info *, struct bfd_section *); +extern bfd_boolean elf64_aarch64_size_stubs + (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma, + struct bfd_section * (*) (const char *, struct bfd_section *), + void (*) (void)); +extern bfd_boolean elf64_aarch64_build_stubs + (struct bfd_link_info *); + /* TI COFF load page support. */ extern void bfd_ticoff_set_section_load_page (struct bfd_section *, int); diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index c7ce4cc..e496083 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -935,6 +935,32 @@ extern unsigned int _bfd_elf_ppc_at_tls_transform extern unsigned int _bfd_elf_ppc_at_tprel_transform (unsigned int, unsigned int); +extern void bfd_elf64_aarch64_init_maps + (bfd *); + +void bfd_elf64_aarch64_set_options + (bfd *, struct bfd_link_info *, int, int, int); + +/* ELF AArch64 mapping symbol support. */ +#define BFD_AARCH64_SPECIAL_SYM_TYPE_MAP (1 << 0) +#define BFD_AARCH64_SPECIAL_SYM_TYPE_TAG (1 << 1) +#define BFD_AARCH64_SPECIAL_SYM_TYPE_OTHER (1 << 2) +#define BFD_AARCH64_SPECIAL_SYM_TYPE_ANY (~0) +extern bfd_boolean bfd_is_aarch64_special_symbol_name + (const char * name, int type); + +/* AArch64 stub generation support. Called from the linker. */ +extern int elf64_aarch64_setup_section_lists + (bfd *, struct bfd_link_info *); +extern void elf64_aarch64_next_input_section + (struct bfd_link_info *, struct bfd_section *); +extern bfd_boolean elf64_aarch64_size_stubs + (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma, + struct bfd_section * (*) (const char *, struct bfd_section *), + void (*) (void)); +extern bfd_boolean elf64_aarch64_build_stubs + (struct bfd_link_info *); + /* TI COFF load page support. */ extern void bfd_ticoff_set_section_load_page (struct bfd_section *, int); @@ -2164,6 +2190,8 @@ enum bfd_architecture #define bfd_mach_tilepro 1 #define bfd_mach_tilegx 1 #define bfd_mach_tilegx32 2 + bfd_arch_aarch64, /* AArch64 */ +#define bfd_mach_aarch64 0 bfd_arch_last }; @@ -5040,6 +5068,220 @@ value in a word. The relocation is relative offset from */ the dynamic object into the runtime process image. */ BFD_RELOC_MICROBLAZE_COPY, +/* AArch64 ADD immediate instruction, holding bits 0 to 11 of the address. +Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. */ + BFD_RELOC_AARCH64_ADD_LO12, + +/* Get to the page base of the global offset table entry for a symbol as +part of an ADRP instruction using a 21 bit PC relative value.Used in +conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC. */ + BFD_RELOC_AARCH64_ADR_GOT_PAGE, + +/* AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page +offset, giving a 4KB aligned page base address. */ + BFD_RELOC_AARCH64_ADR_HI21_PCREL, + +/* AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page +offset, giving a 4KB aligned page base address, but with no overflow +checking. */ + BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL, + +/* AArch64 ADR instruction, holding a simple 21 bit pc-relative byte offset. */ + BFD_RELOC_AARCH64_ADR_LO21_PCREL, + +/* AArch64 19 bit pc-relative conditional branch and compare & branch. +The lowest two bits must be zero and are not stored in the instruction, +giving a 21 bit signed byte offset. */ + BFD_RELOC_AARCH64_BRANCH19, + +/* AArch64 26 bit pc-relative unconditional branch and link. +The lowest two bits must be zero and are not stored in the instruction, +giving a 28 bit signed byte offset. */ + BFD_RELOC_AARCH64_CALL26, + +/* AArch64 pseudo relocation code to be used internally by the AArch64 +assembler and not (currently) written to any object files. */ + BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP, + +/* AArch64 26 bit pc-relative unconditional branch. +The lowest two bits must be zero and are not stored in the instruction, +giving a 28 bit signed byte offset. */ + BFD_RELOC_AARCH64_JUMP26, + +/* AArch64 Load Literal instruction, holding a 19 bit pc-relative word +offset. The lowest two bits must be zero and are not stored in the +instruction, giving a 21 bit signed byte offset. */ + BFD_RELOC_AARCH64_LD_LO19_PCREL, + +/* Unsigned 12 bit byte offset for 64 bit load/store from the page of +the GOT entry for this symbol. Used in conjunction with +BFD_RELOC_AARCH64_ADR_GOTPAGE. */ + BFD_RELOC_AARCH64_LD64_GOT_LO12_NC, + +/* AArch64 unspecified load/store instruction, holding bits 0 to 11 of the +address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. */ + BFD_RELOC_AARCH64_LDST_LO12, + +/* AArch64 8-bit load/store instruction, holding bits 0 to 11 of the +address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. */ + BFD_RELOC_AARCH64_LDST8_LO12, + +/* AArch64 16-bit load/store instruction, holding bits 0 to 11 of the +address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. */ + BFD_RELOC_AARCH64_LDST16_LO12, + +/* AArch64 32-bit load/store instruction, holding bits 0 to 11 of the +address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. */ + BFD_RELOC_AARCH64_LDST32_LO12, + +/* AArch64 64-bit load/store instruction, holding bits 0 to 11 of the +address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. */ + BFD_RELOC_AARCH64_LDST64_LO12, + +/* AArch64 128-bit load/store instruction, holding bits 0 to 11 of the +address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. */ + BFD_RELOC_AARCH64_LDST128_LO12, + +/* AArch64 MOV[NZK] instruction with most significant bits 0 to 15 +of an unsigned address/value. */ + BFD_RELOC_AARCH64_MOVW_G0, + +/* AArch64 MOV[NZ] instruction with most significant bits 0 to 15 +of a signed value. Changes instruction to MOVZ or MOVN depending on the +value's sign. */ + BFD_RELOC_AARCH64_MOVW_G0_S, + +/* AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of +an address/value. No overflow checking. */ + BFD_RELOC_AARCH64_MOVW_G0_NC, + +/* AArch64 MOV[NZK] instruction with most significant bits 16 to 31 +of an unsigned address/value. */ + BFD_RELOC_AARCH64_MOVW_G1, + +/* AArch64 MOV[NZK] instruction with less significant bits 16 to 31 +of an address/value. No overflow checking. */ + BFD_RELOC_AARCH64_MOVW_G1_NC, + +/* AArch64 MOV[NZ] instruction with most significant bits 16 to 31 +of a signed value. Changes instruction to MOVZ or MOVN depending on the +value's sign. */ + BFD_RELOC_AARCH64_MOVW_G1_S, + +/* AArch64 MOV[NZK] instruction with most significant bits 32 to 47 +of an unsigned address/value. */ + BFD_RELOC_AARCH64_MOVW_G2, + +/* AArch64 MOV[NZK] instruction with less significant bits 32 to 47 +of an address/value. No overflow checking. */ + BFD_RELOC_AARCH64_MOVW_G2_NC, + +/* AArch64 MOV[NZ] instruction with most significant bits 32 to 47 +of a signed value. Changes instruction to MOVZ or MOVN depending on the +value's sign. */ + BFD_RELOC_AARCH64_MOVW_G2_S, + +/* AArch64 MOV[NZK] instruction with most signficant bits 48 to 64 +of a signed or unsigned address/value. */ + BFD_RELOC_AARCH64_MOVW_G3, + +/* AArch64 TLS relocation. */ + BFD_RELOC_AARCH64_TLSDESC, + +/* AArch64 TLS DESC relocation. */ + BFD_RELOC_AARCH64_TLSDESC_ADD, + +/* AArch64 TLS DESC relocation. */ + BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC, + +/* AArch64 TLS DESC relocation. */ + BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE, + +/* AArch64 TLS DESC relocation. */ + BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21, hooks/post-receive -- Repository for Project Archer.