From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17479 invoked by alias); 9 Aug 2012 17:02:39 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 17357 invoked by uid 9514); 9 Aug 2012 17:02:32 -0000 Date: Thu, 09 Aug 2012 17:02:00 -0000 Message-ID: <20120809170232.17340.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: 3f14f035eced37f12bd9c065ea8f86ccf26f4150 X-Git-Newrev: ee73819ce0a91fd1e20670770445f5a50d7d7ec6 X-SW-Source: 2012-q3/txt/msg00027.txt.bz2 List-Id: The branch, archer-pmuldoon-python-backtrace has been updated via ee73819ce0a91fd1e20670770445f5a50d7d7ec6 (commit) via d025f3b80a6e91653651ef4d20b87ad91f5e6e39 (commit) via ab0f756b94697f0b57d14a68c6d64aabac7b7dea (commit) via 923405685ea8614b15b725bb383e058ee03d1488 (commit) via c07854ab1c19dbd8d1be09f436376c5f4efe8b36 (commit) via 3f363d4c03ba972b772f67f524e384bd88797cdf (commit) via 7060e755f6c22397f2af30e6b57b599d50086cd6 (commit) via bc8049a5a4dd19712571a02210950c6a63fa452d (commit) via d5742f3ab6d2361640215aa6b1c1289f795ef8e3 (commit) via cf66372305f92eca89b35258468f1d6f35f08f30 (commit) via 155177fa8d70fe06875531061667780bff67895a (commit) via 765eef0ea9c7b0e6648086b3d5a6c354ff312977 (commit) via 6351e1f17146b297a928f87db5f3f5af851dd56a (commit) via cf4705fb0f809bcd8d13fa55c78cb24ec3be85ea (commit) via 0de675940ff71c2f2039bbaef7e826e021e525ec (commit) via 773bfd8c4a562463f3ffc12c6c99ecddbfe036bf (commit) via edaebf6a03fee764d69efb18d3fff1c37f5bfd75 (commit) via 2636a39d8bf9b24dce328e4f906e8710b52d2105 (commit) via 61ab2e32245eadc40c36c5d7d4c4962962df59bd (commit) via 4104321ae5ce78f7c0fce93857eb0a1611df51dd (commit) via 3818a6b073c83ecc3cba0d2568b687defcc74908 (commit) via 435c79ec2e45c7d8b5c1b6b5631084360af0ddae (commit) via 82763a3d329b0d342d0273941b1521be9ef0c604 (commit) via 1be123a1b1a624d83ee1e10ba5749c9b2920bf46 (commit) via cf55925a2df37f4a1c7edd8b9bcb71c304bf9d09 (commit) via f682fcd892b0d53015a5ddca2bc6d27b2f56053b (commit) via 5b9f55068e782e001f2a5bd6d2cb9d327d7f0896 (commit) via 0a63f46c30ac533601323c9e7926293651ee589d (commit) via ac92fbc1bd38f3a8678fd8602cbf24df98fa2884 (commit) via ad6123b3e82f60a15860ba4c929dcd483f9fe12d (commit) via d3b3c8dd0eb5ab8234c134de5509548d7ed76dd6 (commit) via 6a5015ed5386e216af14f32db09ea6314155f91f (commit) via 3e23650b21fdf05adedf50acefce844aa61e80b0 (commit) via 509660fbbf8dfd7cae77c9f937fefd9961534455 (commit) via 173d53526020d61eb8b8cb530422c79169afbb11 (commit) via b285235a737e55c8a7d97263dcc33b7347202375 (commit) via 937c5d40dc6e5bac1044a7c483391c7d57e1d7ed (commit) via 74f43db8536616516b003f3313417de128776044 (commit) via 21608c273fd4113f8054ce90dfe4be111f99dead (commit) via f2902fc436387e437b8a459001aab774acd08dfb (commit) via 82f42acdb28854895f41ad2f71abe5518ea16c17 (commit) via a430374139ebb1082b911391af4684fa7a7c2981 (commit) via 38087e6ccac9e5992ad1387def238f7840921a4b (commit) via af7b35f5336f3f0ca582043cfa098db8c7c6d703 (commit) via 1bb2706479adb304a34363e067e3fe6e53c396e8 (commit) via 89e26fde9d6b097f0821548b05235bf2cb1a80dc (commit) via a040b20d88cc17d813e9fe2a4c9e6623194268a5 (commit) via c4864d027bc680df986e7be110b21657cdaa9412 (commit) via c7932a1967ed306ea6ac7ae793933b478612137a (commit) via f22ddace5cea8e78fdbdb375493efe52d5bcdbfd (commit) via 36f7176799067ae1d016a6d4e424185a85ef0d28 (commit) via 14f9eec8aad488c211b72db213d15382b00cb111 (commit) via 5f1d0ab00a40cafb9e2a670d7ad2e6ee50f22bf0 (commit) via a9ea00ea2b5f8fa1ff976e3bb05c2a5bca18bdcc (commit) via 8b47c2bdf43ba50cabeb24b029a505f50935061f (commit) via 61e7624bbb28d0d7e353a462319266175cbc99a0 (commit) via 27f238d47a2a1c478f2aed4ab5e7ce6bacd2bffa (commit) via 7a9f5d1c57eb00d3398d51b224d635131e8c25c7 (commit) via 7d8593e1e8a7effa576bd746a41078d3557b667d (commit) via 2c0d8392efb75e96b914c6f5b338ab77c65fcbbe (commit) via 5cb0a0b4f6483462c515c05f8004dd6080710e01 (commit) via 715c3c9de50a7008f1297d6d64f79135a23c3b50 (commit) via 638a452d3c11f61ac374ae155e611deac48bfbd9 (commit) via c0cf8ae366f2c9dae4b69210f1759957b35a9be4 (commit) via d24ced2b05aee89993491eb8070967dea3e5d20b (commit) via f21d0f2d9afa0db1a2e9d48fdba42132ca5b6f21 (commit) via 78519d5d4649373e80ec027e356e11ef521adfdf (commit) via a7c105a57959095559e436ee51346f2e7e2f4afd (commit) via 46735f6cad93eaa46f32a512b87b8746322e4490 (commit) from 3f14f035eced37f12bd9c065ea8f86ccf26f4150 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ee73819ce0a91fd1e20670770445f5a50d7d7ec6 Merge: 3f14f03 d025f3b Author: Phil Muldoon Date: Thu Aug 9 18:02:00 2012 +0100 Merge remote-tracking branch 'gdb/master' into archer-pmuldoon-python-backtrace commit d025f3b80a6e91653651ef4d20b87ad91f5e6e39 Author: Nick Clifton Date: Thu Aug 9 14:46:33 2012 +0000 Updated Vietnamese translation. commit ab0f756b94697f0b57d14a68c6d64aabac7b7dea Author: qiyao Date: Thu Aug 9 12:53:41 2012 +0000 gdb/ * cli/cli-decode.c (set_cmd_prefix): New. (lookup_cmd_for_prefixlist): New. (add_prefix_cmd): Call set_cmd_prefix and update field 'prefix' of each cmd_list_element in *prefixlist. (add_setshow_cmd_full): set_cmd_prefix. (add_alias_cmd): Likewise. * cli/cli-decode.h (struct cmd_list_element) : New field. Declare 'auto_boolean_enums'. * cli/cli-setshow.c: Include "observer.h". (notify_command_param_changed_p): New. (add_setshow_auto_boolean_cmd): Move auto_boolean_enums out. Remove 'static'. (do_setshow_command): Split it to ... (do_set_command, do_show_command): ... them. New. (do_set_command): Call observer_notify_command_param_changed if notify_command_param_changed_p returns true. (cmd_show_list): Caller update. * auto-load.c (set_auto_load_cmd): Likewise. * remote.c (show_remote_cmd): Likewise. * cli/cli-setshow.h: Update declarations. * top.c (execute_command): Call do_set_command and do_show_command. * NEWS: Mention new MI notification. * mi/mi-interp.c: Declare mi_command_param_changed. (mi_interpreter_init): Attach mi_command_param_changed to observer command_param_changed. (mi_command_param_changed): New. Remove mi_suppress_breakpoint_notifications. Define global variable mi_suppress_notification. (mi_breakpoint_created): Update. (mi_breakpoint_deleted): Likewise. (mi_breakpoint_modified): Likewise. * mi/mi-main.c (mi_cmd_execute): Likewise. Check command 'gdb-set' and set mi_suppress_notification. * mi/mi-main.h: (mi_suppress_notification): New struct. gdb/doc/ * observer.texi: New observer command_param_changed. * gdb.texinfo (GDB/MI Async Records): Doc for '=cmd-param-changed'. gdb/testsuite/ * gdb.mi/mi-cmd-param-changed.exp: New. * gdb.mi/mi-cli.exp: Update for MI notification "=cmd-param-changed". * gdb.mi/mi-var-rtti.exp, gdb.mi/mi2-cli.exp: Likewise. * gdb.mi/mi2-prompt.exp: Likewise. commit 923405685ea8614b15b725bb383e058ee03d1488 Author: Maciej W. Rozycki Date: Thu Aug 9 12:05:14 2012 +0000 * elfxx-mips.c (LA25_LUI_MICROMIPS_1, LA25_LUI_MICROMIPS_2): Remove macros, folding them into... (LA25_LUI_MICROMIPS): ... this new macro. (LA25_J_MICROMIPS_1, LA25_J_MICROMIPS_2): Likewise into... (LA25_J_MICROMIPS): ... this new macro. (LA25_ADDIU_MICROMIPS_1, LA25_ADDIU_MICROMIPS_2): Likewise into... (LA25_ADDIU_MICROMIPS): ... this new macro. (bfd_put_micromips_32, bfd_get_micromips_32): New functions. (mips_elf_create_la25_stub): Use them. (check_br32_dslot, check_br32, check_relocated_bzc): Likewise. (_bfd_mips_elf_relax_section): Likewise. commit c07854ab1c19dbd8d1be09f436376c5f4efe8b36 Author: Jan Kratochvil Date: Thu Aug 9 09:24:22 2012 +0000 gdb/ * fbsd-nat.h (fbsd_find_memory_regions): Use find_memory_region_ftype. commit 3f363d4c03ba972b772f67f524e384bd88797cdf Author: qiyao Date: Thu Aug 9 06:48:21 2012 +0000 gdb/ * cli/cli-cmds.c (enablebreaklist): Move it to breakpoint.c. (skiplist): Move it to skip.c. (init_cmd_lists): Remove code setting enablebreaklist and skiplist to NULL. * breakpoint.c (enablebreaklist): Moved from cli/cli-cmds.c. * cli/cli-cmds.h: Remove declaration of enablebreaklist and skiplist. * gdbcmd.h: Likewise. * skip.c (_initialize_step_skip): Move 'skiplist' from cli/cli-cmds.c. commit 7060e755f6c22397f2af30e6b57b599d50086cd6 Author: qiyao Date: Thu Aug 9 06:26:21 2012 +0000 gdb/ * cli/cli-dump.c: Add 'static' to some cmd_list_element variables. * gnu-nat.c, symfile.c: Likewise. commit bc8049a5a4dd19712571a02210950c6a63fa452d Author: Alan Modra Date: Thu Aug 9 06:25:51 2012 +0000 * archive.c (SECTION Archives): Update documentation. (_bfd_delete_archive_data): Remove. (_bfd_add_bfd_to_archive_cache): Set 'parent_cache' and 'key'. (archive_close_worker, _bfd_archive_close_and_cleanup): New functions. * libbfd-in.h (struct areltdata ): New fields. (_bfd_delete_archive_data): Don't declare. (_bfd_archive_close_and_cleanup): Declare. (_bfd_generic_close_and_cleanup): Redefine. * libbfd.h: Rebuild. * opncls.c (_bfd_delete_bfd): Don't call _bfd_delete_archive_data. (bfd_close): Don't close nested thin archives here. commit d5742f3ab6d2361640215aa6b1c1289f795ef8e3 Author: Alan Modra Date: Thu Aug 9 00:00:05 2012 +0000 daily update commit cf66372305f92eca89b35258468f1d6f35f08f30 Author: gdbadmin Date: Thu Aug 9 00:00:03 2012 +0000 *** empty log message *** commit 155177fa8d70fe06875531061667780bff67895a Author: Doug Evans Date: Wed Aug 8 21:55:00 2012 +0000 * utils.c (prompt_for_continue_wait_time): New static global. (make_command_stats_cleanup): Initialize it. (report_command_stats): Subtract time waiting for user. (prompt_for_continue): Track time waiting for user. (defaulted_query): Track time waiting for user. commit 765eef0ea9c7b0e6648086b3d5a6c354ff312977 Author: Doug Evans Date: Wed Aug 8 21:17:03 2012 +0000 * eval.c (evaluate_subexp_standard): Fix thinko in handling UNOP_MEMVAL_TYPE. * expprint.c (print_subexp_standard, case OP_TYPE): New. (print_subexp_standard, case UNOP_CAST_TYPE): Don't increment pos. (print_subexp_standard, case UNOP_DYNAMIC_CAST): Ditto. (print_subexp_standard, case UNOP_REINTERPRET_CAST): Ditto. (print_subexp_standard, case UNOP_MEMVAL_TYPE): Ditto. (dump_subexp_body_standard, case UNOP_DYNAMIC_CAST): Don't increment elt. (dump_subexp_body_standard, case UNOP_REINTERPRET_CAST): Ditto. (dump_subexp_body_standard, case UNOP_CAST_TYPE): Ditto. (dump_subexp_body_standard, case UNOP_MEMVAL_TYPE): Ditto. (dump_prefix_expression): Handle OP_TYPE. testsuite/ * gdb.base/debug-expr.c: New file. * gdb.base/debug-expr.exp: New file. * gdb.base/exprs.exp: Test {type} casts. * gdb.cp/debug-expr.exp: New file. commit 6351e1f17146b297a928f87db5f3f5af851dd56a Author: Keith Seitz Date: Wed Aug 8 20:39:33 2012 +0000 * breakpoint.c (parse_breakpoint_sals): Remove unused variable addr_start. commit cf4705fb0f809bcd8d13fa55c78cb24ec3be85ea Author: Doug Evans Date: Wed Aug 8 19:48:16 2012 +0000 * gdb_string.h: Moved to ... * common/gdb_string.h: ... here. * common/vec.h: Remove #ifndef GDBSERVER conditional inclusion of gdb_string.h and gdb_assert.h. gdbserver/ * configure.ac: Add check for strstr. * config.in: Regenerate. * configure: Regenerate. * linux-thread-db.c: #include "gdb_vecs.h". (try_thread_db_load_from_pdir_1): New arg "subdir". All callers updated. (try_thread_db_load_from_pdir): New arg "subdir". All callers updated. (thread_db_load_search): Use a vector to iterate over path elements. Handle text appearing after "$pdir". gdbserver/ * Makefile.in (SFILES): Add gdb_vecs.c. (OBS): Add gdb_vecs.o. (gdb_vecs_h, host_defs_h): New variables. (thread-db.o): Add $(gdb_vecs_h) dependency. (gdb_vecs.o): New rule. * thread-db.c: #include "gdb_vecs.h". (thread_db_load_search): Use a vector to iterate over path elements. Handle text appearing after "$pdir". commit 0de675940ff71c2f2039bbaef7e826e021e525ec Author: qiyao Date: Wed Aug 8 05:47:54 2012 +0000 gdb/ * tic6x-tdep.c (tic6x_register_to_value): Remove. (tic6x_value_to_register): Likewise. (tic6x_gdbarch_init): Don't call set_gdbarch_register_to_value and set_gdbarch_value_to_register. commit 773bfd8c4a562463f3ffc12c6c99ecddbfe036bf Author: gdbadmin Date: Wed Aug 8 00:00:32 2012 +0000 *** empty log message *** commit edaebf6a03fee764d69efb18d3fff1c37f5bfd75 Author: Alan Modra Date: Wed Aug 8 00:00:05 2012 +0000 daily update commit 2636a39d8bf9b24dce328e4f906e8710b52d2105 Author: Roland McGrath Date: Tue Aug 7 18:22:04 2012 +0000 gas/testsuite/ * gas/i386/prefetch.s: New file. * gas/i386/prefetch.d: New file. * gas/i386/prefetch-intel.d: New file. * gas/i386/x86-64-prefetch.d: New file. * gas/i386/x86-64-prefetch-intel.d: New file. * gas/i386/i386.exp: Run them. opcodes/ * i386-dis.c (reg_table): Fill out REG_0F0D table with AMD-reserved cases as "prefetch". (MOD_0F18_REG_4, MOD_0F18_REG_5): New enum constants. (MOD_0F18_REG_6, MOD_0F18_REG_7): Likewise. (reg_table): Use those under REG_0F18. (mod_table): Add those cases as "nop/reserved". commit 61ab2e32245eadc40c36c5d7d4c4962962df59bd Author: Jan Kratochvil Date: Tue Aug 7 18:04:11 2012 +0000 gdb/testsuite/ * gdb.base/valgrind-infcall.exp (continue #$continue_count): Use global variable loop, not a 'break'. Add loop count limit to 100. Add new fail case for terminated vgdb. commit 4104321ae5ce78f7c0fce93857eb0a1611df51dd Author: Jan Beulich Date: Tue Aug 7 16:51:33 2012 +0000 There were several cases where the registers in the REX encoded range got treated identically to the ones in the base range, due to not paying attention to the fact that reg_entry's reg_num field doesn't fully specify the register number (reg_flags also needs to be checked for RegRex). This patch introduces and uses a new (inline) function to obtain the full register number, and uses it to fix all those cases. It additionally adds the missing operand checks for SVME instructions (which match the monitor/mwait ones). gas/ 2012-08-07 Jan Beulich * config/tc-i386.c (register_number): New function. (build_vex_prefix, process_immext, process_operands, build_modrm_byte, i386_index_check): Use it. gas/testsuite/ 2012-08-07 Jan Beulich * gas/i386/x86-64-specific-reg.{s,l}: New. * gas/i386/i386.exp: Run new test. opcodes/ 2012-08-07 Jan Beulich * i386-opc.tbl: Remove "FIXME" comments from SVME instructions. commit 3818a6b073c83ecc3cba0d2568b687defcc74908 Author: Jan Kratochvil Date: Tue Aug 7 16:49:38 2012 +0000 gdb/doc/ * gdbint.texinfo (Debugging GDB): In section 'Debugging @value{GDBN} with itself' change .gdbinit for gdb-gdb.gdb. Mention also gdb-gdb.py. commit 435c79ec2e45c7d8b5c1b6b5631084360af0ddae Author: Nick Clifton Date: Tue Aug 7 13:47:13 2012 +0000 * config/tc-i386.c (lex_got): Provide implementation for PE format. * gas/i386/secrel.s: Add test of @SECREL32. * gas/i386/secrel.d: Add expected disassembly. * scripttempl/pe.sc (R_TLS): Add .tls$AAA and .tls$ZZZ. * scripttempl/pep.sc (R_TLS): Add .tls$AAA and .tls$ZZZ. * archive.c (_bfd_delete_archive_data): New function. * libbfd-in.h (_bfd_delete_archive_data): Declare. * libbfd.h: Rebuild. * opncls.c (_bfd_delete_bfd): Call _bfd_delete_archive_data. commit 82763a3d329b0d342d0273941b1521be9ef0c604 Author: Jan Kratochvil Date: Tue Aug 7 13:26:29 2012 +0000 gdb/ PR 11804 * defs.h (find_memory_region_ftype): New comment. New arg modified. * fbsd-nat.c (fbsd_find_memory_regions): Add the passed modified value. * gcore.c (gcore_create_callback): New function comment. Add modified parameter. Only write modified regions. Set SEC_READONLY exactly according to MODIFIED. (objfile_find_memory_regions): Ignore separate debug info files. Ass the passed modified value to FUNC. * gnu-nat.c (gnu_find_memory_regions): Add the passed modified value. * linux-tdep.c (linux_find_memory_regions): Try to reads smaps file first. New variables modified and has_anonymous. Parse the lines of smaps file. Add the passed MODIFIED value to FUNC. * procfs.c (find_memory_regions_callback): Add the passed modified value. gdb/testsuite/ PR 11804 * gdb.base/gcore-relro.exp: New file. * gdb.base/gcore-relro-main.c: New file. * gdb.base/gcore-relro-lib.c: New file. commit 1be123a1b1a624d83ee1e10ba5749c9b2920bf46 Author: Jan Kratochvil Date: Tue Aug 7 13:13:49 2012 +0000 gdb/testsuite/ Do not false FAIL with old GCCs. * gdb.base/watchpoint.exp (self-delete local watch) <$no_hw>: XFAIL for GCC < 4.5 in $no_hw mode. commit cf55925a2df37f4a1c7edd8b9bcb71c304bf9d09 Author: Nick Clifton Date: Tue Aug 7 10:37:29 2012 +0000 Updated Ukranian and Japanese translations. commit f682fcd892b0d53015a5ddca2bc6d27b2f56053b Author: Jan Kratochvil Date: Tue Aug 7 05:49:01 2012 +0000 gdb/testsuite/ * gdb.base/default.exp (cd): Accept new directory with no arguments. commit 5b9f55068e782e001f2a5bd6d2cb9d327d7f0896 Author: qiyao Date: Tue Aug 7 01:11:02 2012 +0000 gdb/doc: Revert the folloing patch: 2012-08-06 Yao Qi * gdb.texinfo (Remote Configuration): Add kindex for 'set remote hardware-watchpoint-limit' and 'set remote hardware-breakpoint-limit'. commit 0a63f46c30ac533601323c9e7926293651ee589d Author: Alan Modra Date: Tue Aug 7 00:00:05 2012 +0000 daily update commit ac92fbc1bd38f3a8678fd8602cbf24df98fa2884 Author: gdbadmin Date: Tue Aug 7 00:00:03 2012 +0000 *** empty log message *** commit ad6123b3e82f60a15860ba4c929dcd483f9fe12d Author: Maciej W. Rozycki Date: Mon Aug 6 22:27:49 2012 +0000 bfd/ * elflink.c (bfd_elf_record_link_assignment): Remove --defsym symbols special case. ld/ * ldexp.h (etree_union): Add defsym member to the assign member structure. (exp_assign): Add hidden argument to prototype. * ldexp.c (exp_fold_tree_1): Use the defsym member to handle --defsym symbols. (exp_assop): Add defsym argument, initialize the defsym member of the assign structure. (exp_assign): Handle hidden symbols. (exp_defsym): Update to use the defsym argument to exp_assop. (exp_provide): Update to handle the defsym argument to exp_assop. * ldlex.l (HIDDEN): New token. * ldgram.y (HIDDEN): Likewise. (assignment, section): Update calls to exp_assign. * ldctor.c (ldctor_build_sets): Likewise. * mri.c (mri_format): Likewise. * ldlang.c (lang_insert_orphan, lang_leave_overlay): Likewise. (open_input_bfds): Remove --defsym symbols special case. * emultempl/beos.em (gld_${EMULATION_NAME}_set_symbols): Update call to exp_assign. * emultempl/pe.em (gld_${EMULATION_NAME}_set_symbols): Likewise. * emultempl/pep.em (gld_${EMULATION_NAME}_set_symbols): Likewise. * emultempl/spuelf.em (spu_place_special_section): Likewise. * emultempl/xtensaelf.em (ld_xtensa_insert_page_offsets): Likewise. * ld.texinfo (Assigning Values to Symbols): Add HIDDEN. (HIDDEN): New subsection. commit d3b3c8dd0eb5ab8234c134de5509548d7ed76dd6 Author: Roland McGrath Date: Mon Aug 6 22:08:25 2012 +0000 gas/testsuite/ * gas/i386/x86-64-stack.s: Add cases for push segment register. * gas/i386/x86-64-stack.d: Updated. * gas/i386/x86-64-stack-suffix.d: Updated. * gas/i386/x86-64-stack-intel.d: Updated. * gas/i386/ilp32/x86-64-stack.d: Updated. * gas/i386/ilp32/x86-64-stack-suffix.d: Updated. * gas/i386/ilp32/x86-64-stack-intel.d: Updated. opcodes/ * i386-dis.c (print_insn): Print spaces between multiple excess prefixes. Return actual number of excess prefixes consumed, not always one. * i386-dis.c (OP_REG): Ignore REX_B for segment register cases. commit 6a5015ed5386e216af14f32db09ea6314155f91f Author: Roland McGrath Date: Mon Aug 6 20:19:34 2012 +0000 gas/testsuite/ * gas/i386/x86-64-stack.s: Add cases for push immediate. * gas/testsuite/gas/i386/ilp32/x86-64-stack-intel.d: Updated. * gas/testsuite/gas/i386/ilp32/x86-64-stack-suffix.d: Updated. * gas/testsuite/gas/i386/ilp32/x86-64-stack.d: Updated. * gas/testsuite/gas/i386/x86-64-stack-intel.d: Updated. * gas/testsuite/gas/i386/x86-64-stack-suffix.d: Updated. * gas/testsuite/gas/i386/x86-64-stack.d: Updated. opcodes/ * i386-dis.c (OP_sI): In b_T_mode and v_mode, REX_W trumps DFLAG. (putop): For 'T', 'U', and 'V', treat REX_W like DFLAG. (intel_operand_size): For stack_v_mode, treat REX_W like DFLAG. (OP_E_register): Likewise. (OP_REG): For low 8 whole registers, treat REX_W like DFLAG. commit 3e23650b21fdf05adedf50acefce844aa61e80b0 Author: Jan Kratochvil Date: Mon Aug 6 20:14:10 2012 +0000 gdb/testsuite/ * gdb.base/list.exp (test_only_end): New function. Call it. commit 509660fbbf8dfd7cae77c9f937fefd9961534455 Author: Tom Tromey Date: Mon Aug 6 19:20:42 2012 +0000 * dwarf2-frame.c (clear_pointer_cleanup): New function. (dwarf2_frame_cache): Use it. * frame-unwind.h (frame_sniffer_ftype): Document prologue cache initialization constraint. commit 173d53526020d61eb8b8cb530422c79169afbb11 Author: Tom Tromey Date: Mon Aug 6 18:44:43 2012 +0000 PR python/14386: * varobj.c (update_dynamic_varobj_children): Don't call PyIter_Check. gdb/testsuite * gdb.python/py-mi.exp: Add test for printer whose children are a list. * gdb.python/py-prettyprint.c (struct children_as_list): New. (main): New variable children_as_list. * gdb.python/py-prettyprint.py (class pp_children_as_list): New. (register_pretty_printers): Register new printer. commit b285235a737e55c8a7d97263dcc33b7347202375 Author: Tom Tromey Date: Mon Aug 6 18:28:12 2012 +0000 PR cli/14392: * cli/cli-cmds.c (list_command): Filter 'sals_end'. commit 937c5d40dc6e5bac1044a7c483391c7d57e1d7ed Author: Jan Kratochvil Date: Mon Aug 6 17:13:23 2012 +0000 gdb/ 2012-08-06 Nathaniel Flath * NEWS: New entry for 'cd' default parameters. * cli/cli-cmds.c (cd_command): Replace error_no_arg by DIR assignment. gdb/doc/ 2012-08-06 Nathaniel Flath * gdb.texinfo (Working Directory): Added information about new default argument for 'cd' command. commit 74f43db8536616516b003f3313417de128776044 Author: qiyao Date: Mon Aug 6 14:28:45 2012 +0000 gdb/doc/ * gdb.texinfo (Remote Configuration): Add kindex for 'set remote hardware-watchpoint-limit' and 'set remote hardware-breakpoint-limit'. commit 21608c273fd4113f8054ce90dfe4be111f99dead Author: qiyao Date: Mon Aug 6 14:21:10 2012 +0000 gdb/doc/ Fix PR14371. * gdb.texinfo (GDB/MI Async Records): Fix the doc for '=breakpoint-deleted'. commit f2902fc436387e437b8a459001aab774acd08dfb Author: Alan Modra Date: Mon Aug 6 00:00:05 2012 +0000 daily update commit 82f42acdb28854895f41ad2f71abe5518ea16c17 Author: gdbadmin Date: Mon Aug 6 00:00:03 2012 +0000 *** empty log message *** commit a430374139ebb1082b911391af4684fa7a7c2981 Author: Maciej W. Rozycki Date: Sun Aug 5 22:45:18 2012 +0000 bfd/ * elf32-vax.c (elf_vax_adjust_dynamic_symbol): Don't allocate PLT slots for local symbols. ld/testsuite/ * ld-vax-elf: New directory. * ld-vax-elf/plt-local-lib.dd: New test. * ld-vax-elf/plt-local-lib.ld: New test linker script. * ld-vax-elf/plt-local-lib.s: New test source. * ld-vax-elf/plt-local.dd: New test. * ld-vax-elf/plt-local.ld: New test linker script. * ld-vax-elf/plt-local.s: New test source. * ld-vax-elf/plt-local-hidden-pic.s: New test source. * ld-vax-elf/plt-local-rehidden-pic.s: New test source. * ld-vax-elf/vax-elf.exp: New test script. commit 38087e6ccac9e5992ad1387def238f7840921a4b Author: gdbadmin Date: Sun Aug 5 00:00:33 2012 +0000 *** empty log message *** commit af7b35f5336f3f0ca582043cfa098db8c7c6d703 Author: Alan Modra Date: Sun Aug 5 00:00:05 2012 +0000 daily update commit 1bb2706479adb304a34363e067e3fe6e53c396e8 Author: Alan Modra Date: Sat Aug 4 00:00:04 2012 +0000 daily update commit 89e26fde9d6b097f0821548b05235bf2cb1a80dc Author: gdbadmin Date: Sat Aug 4 00:00:02 2012 +0000 *** empty log message *** commit a040b20d88cc17d813e9fe2a4c9e6623194268a5 Author: Maciej W. Rozycki Date: Fri Aug 3 22:17:19 2012 +0000 * elf64-mips.c (mips16_elf64_howto_table_rela): Correct src_mask field initializers throughout. * elfn32-mips.c (elf_mips16_howto_table_rela): Likewise. commit c4864d027bc680df986e7be110b21657cdaa9412 Author: Maciej W. Rozycki Date: Fri Aug 3 22:14:20 2012 +0000 bfd/ * elfxx-mips.c (mips_elf_perform_relocation): Update the cross-mode jump message. ld/testsuite/ * ld-mips-elf/mode-change-error-1.d: Update the error message. commit c7932a1967ed306ea6ac7ae793933b478612137a Author: Maciej W. Rozycki Date: Fri Aug 3 22:09:40 2012 +0000 * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Update the comment on DT_MIPS_RLD_MAP. commit f22ddace5cea8e78fdbdb375493efe52d5bcdbfd Author: Tom Tromey Date: Fri Aug 3 20:52:46 2012 +0000 * dwarf2-frame.c (dwarf2_frame_cache): Call do_cleanups before return. commit 36f7176799067ae1d016a6d4e424185a85ef0d28 Author: Tom Tromey Date: Fri Aug 3 20:09:39 2012 +0000 * opncls.c (_bfd_delete_bfd): Now static. * libbfd-in.h (_bfd_delete_bfd): Don't declare. * libbfd.h: Rebuild. commit 14f9eec8aad488c211b72db213d15382b00cb111 Author: emachado Date: Fri Aug 3 16:03:06 2012 +0000 2012-08-03 Edjunior Machado * gdb.base/valgrind-infcall.exp: Expect leading `.' on ppc64's symbols. Abort if vgdb remote connection is closed. ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 84 + bfd/archive.c | 73 +- bfd/elf32-m68hc1x.c | 6 +- bfd/elf32-vax.c | 32 +- bfd/elf64-mips.c | 14 +- bfd/elflink.c | 2 +- bfd/elfn32-mips.c | 14 +- bfd/elfxx-mips.c | 99 +- bfd/libbfd-in.h | 8 +- bfd/libbfd.h | 8 +- bfd/opncls.c | 12 +- bfd/po/uk.po | 624 ++-- bfd/po/vi.po | 5241 ++++++++++++++++++------- bfd/version.h | 2 +- gdb/ChangeLog | 261 ++ gdb/NEWS | 8 + gdb/arch-utils.h | 3 - gdb/auto-load.c | 2 +- gdb/breakpoint.c | 6 +- gdb/cli/cli-cmds.c | 12 +- gdb/cli/cli-cmds.h | 6 - gdb/cli/cli-decode.c | 67 +- gdb/cli/cli-decode.h | 4 + gdb/cli/cli-dump.c | 14 +- gdb/cli/cli-setshow.c | 615 ++- gdb/cli/cli-setshow.h | 10 +- gdb/{ => common}/gdb_string.h | 0 gdb/common/vec.h | 2 - gdb/configure.tgt | 4 +- gdb/darwin-nat.c | 10 +- gdb/defs.h | 7 +- gdb/doc/ChangeLog | 41 + gdb/doc/gdb.texinfo | 36 +- gdb/doc/gdbint.texinfo | 10 +- gdb/doc/observer.texi | 8 + gdb/dwarf2-frame.c | 16 +- gdb/dwarf2loc.c | 26 +- gdb/dwarf2loc.h | 2 +- gdb/dwarf2read.c | 10 +- gdb/eval.c | 5 +- gdb/expprint.c | 14 +- gdb/fbsd-nat.c | 5 +- gdb/fbsd-nat.h | 4 +- gdb/frame-unwind.h | 4 +- gdb/frame.c | 10 +- gdb/frame.h | 2 +- gdb/gcore.c | 24 +- gdb/gdbarch.c | 4 +- gdb/gdbarch.h | 2 +- gdb/gdbarch.sh | 6 +- gdb/gdbcmd.h | 6 - gdb/gdbserver/ChangeLog | 21 + gdb/gdbserver/Makefile.in | 11 +- gdb/gdbserver/config.in | 4 + gdb/gdbserver/configure | 10 + gdb/gdbserver/configure.ac | 2 +- gdb/gdbserver/hostio.c | 22 +- gdb/gdbserver/thread-db.c | 34 +- gdb/gdbtypes.c | 18 +- gdb/gnu-nat.c | 6 +- gdb/inf-child.c | 22 +- gdb/inferior.h | 2 +- gdb/infrun.c | 10 +- gdb/jit.c | 16 +- gdb/linux-nat.c | 12 +- gdb/linux-tdep.c | 42 +- gdb/linux-thread-db.c | 89 +- gdb/machoread.c | 14 +- gdb/mi/mi-cmd-var.c | 2 +- gdb/mi/mi-interp.c | 44 +- gdb/mi/mi-main.c | 11 +- gdb/mi/mi-main.h | 10 +- gdb/microblaze-tdep.c | 12 +- gdb/mips-tdep.c | 14 +- gdb/monitor.c | 10 +- gdb/nto-tdep.c | 21 - gdb/nto-tdep.h | 5 - gdb/observer.c | 12 +- gdb/parse.c | 20 +- gdb/procfs.c | 1 + gdb/record.c | 16 +- gdb/record.h | 2 +- gdb/remote.c | 2 +- gdb/serial.c | 12 +- gdb/skip.c | 1 + gdb/solib-dsbt.c | 12 +- gdb/solib-frv.c | 12 +- gdb/stap-probe.c | 20 +- gdb/symfile.c | 2 +- gdb/target.c | 10 +- gdb/testsuite/ChangeLog | 104 + gdb/testsuite/boards/local-remote-host.exp | 55 + gdb/testsuite/gdb.base/annota1.exp | 2 +- gdb/testsuite/gdb.base/debug-expr.c | 7 + gdb/testsuite/gdb.base/debug-expr.exp | 52 + gdb/testsuite/gdb.base/default.exp | 2 +- gdb/testsuite/gdb.base/exprs.exp | 4 + gdb/testsuite/gdb.base/gcore-relro-lib.c | 21 + gdb/testsuite/gdb.base/gcore-relro-main.c | 25 + gdb/testsuite/gdb.base/gcore-relro.exp | 78 + gdb/testsuite/gdb.base/info-fun.exp | 10 +- gdb/testsuite/gdb.base/list.exp | 7 + gdb/testsuite/gdb.base/pc-fp.exp | 2 +- gdb/testsuite/gdb.base/valgrind-infcall.exp | 16 +- gdb/testsuite/gdb.base/watchpoint.c | 3 +- gdb/testsuite/gdb.base/watchpoint.exp | 45 +- gdb/testsuite/gdb.cp/debug-expr.exp | 43 + gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S | 14 +- gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp | 8 +- gdb/testsuite/gdb.mi/mi-cli.exp | 4 +- gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp | 103 + gdb/testsuite/gdb.mi/mi-var-rtti.exp | 2 +- gdb/testsuite/gdb.mi/mi2-cli.exp | 4 +- gdb/testsuite/gdb.mi/mi2-prompt.exp | 5 +- gdb/testsuite/gdb.python/py-mi.exp | 4 + gdb/testsuite/gdb.python/py-prettyprint.c | 5 + gdb/testsuite/gdb.python/py-prettyprint.py | 15 + gdb/testsuite/gdb.python/py-value.exp | 4 +- gdb/testsuite/gdb.server/server-exec-info.exp | 7 + gdb/testsuite/gdb.threads/linux-dp.exp | 1 + gdb/tic6x-tdep.c | 24 - gdb/top.c | 6 +- gdb/utils.c | 39 + gdb/valops.c | 2 +- gdb/varobj.c | 19 +- gdb/version.in | 2 +- gdb/xtensa-tdep.c | 14 +- include/ChangeLog | 5 + include/elf/m68hc11.h | 3 + opcodes/ChangeLog | 40 + opcodes/configure | 22 +- opcodes/configure.in | 22 +- opcodes/i386-dis.c | 112 +- opcodes/i386-opc.tbl | 5 - opcodes/po/vi.po | 355 +- 135 files changed, 6594 insertions(+), 2799 deletions(-) rename gdb/{ => common}/gdb_string.h (100%) create mode 100644 gdb/testsuite/boards/local-remote-host.exp create mode 100644 gdb/testsuite/gdb.base/debug-expr.c create mode 100644 gdb/testsuite/gdb.base/debug-expr.exp create mode 100644 gdb/testsuite/gdb.base/gcore-relro-lib.c create mode 100644 gdb/testsuite/gdb.base/gcore-relro-main.c create mode 100644 gdb/testsuite/gdb.base/gcore-relro.exp create mode 100644 gdb/testsuite/gdb.cp/debug-expr.exp create mode 100644 gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 73f9eff..af00be7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,87 @@ +2012-08-09 Nick Clifton + + * po/vi.po: Updated Vietnamese translation. + +2012-08-09 Maciej W. Rozycki + + * elfxx-mips.c (LA25_LUI_MICROMIPS_1, LA25_LUI_MICROMIPS_2): + Remove macros, folding them into... + (LA25_LUI_MICROMIPS): ... this new macro. + (LA25_J_MICROMIPS_1, LA25_J_MICROMIPS_2): Likewise into... + (LA25_J_MICROMIPS): ... this new macro. + (LA25_ADDIU_MICROMIPS_1, LA25_ADDIU_MICROMIPS_2): Likewise + into... + (LA25_ADDIU_MICROMIPS): ... this new macro. + (bfd_put_micromips_32, bfd_get_micromips_32): New functions. + (mips_elf_create_la25_stub): Use them. + (check_br32_dslot, check_br32, check_relocated_bzc): Likewise. + (_bfd_mips_elf_relax_section): Likewise. + +2012-08-09 Alan Modra + Tom Tromey + + * archive.c (SECTION Archives): Update documentation. + (_bfd_delete_archive_data): Remove. + (_bfd_add_bfd_to_archive_cache): Set 'parent_cache' and 'key'. + (archive_close_worker, _bfd_archive_close_and_cleanup): New + functions. + * libbfd-in.h (struct areltdata ): New fields. + (_bfd_delete_archive_data): Don't declare. + (_bfd_archive_close_and_cleanup): Declare. + (_bfd_generic_close_and_cleanup): Redefine. + * libbfd.h: Rebuild. + * opncls.c (_bfd_delete_bfd): Don't call _bfd_delete_archive_data. + (bfd_close): Don't close nested thin archives here. + +2012-08-07 Tom Tromey + + * archive.c (_bfd_delete_archive_data): New function. + * libbfd-in.h (_bfd_delete_archive_data): Declare. + * libbfd.h: Rebuild. + * opncls.c (_bfd_delete_bfd): Call _bfd_delete_archive_data. + +2012-08-07 Nick Clifton + + * po/uk.po: Updated Ukranian translation. + +2012-08-06 Maciej W. Rozycki + + * elflink.c (bfd_elf_record_link_assignment): Remove --defsym + symbols special case. + +2012-08-05 Maciej W. Rozycki + + * elf32-vax.c (elf_vax_adjust_dynamic_symbol): Don't allocate + PLT slots for local symbols. + +2012-08-03 Maciej W. Rozycki + + * elf64-mips.c (mips16_elf64_howto_table_rela): Correct src_mask + field initializers throughout. + * elfn32-mips.c (elf_mips16_howto_table_rela): Likewise. + +2012-08-03 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_perform_relocation): Update the + cross-mode jump message. + +2012-08-03 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Update the + comment on DT_MIPS_RLD_MAP. + +2012-08-03 Tom Tromey + + * opncls.c (_bfd_delete_bfd): Now static. + * libbfd-in.h (_bfd_delete_bfd): Don't declare. + * libbfd.h: Rebuild. + +2012-08-02 Sean Keys + + * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Modified + conditional statment to allow suppression of mismatched bank + warning. + 2012-08-01 Alan Modra * dwarf2.c (struct dwarf2_debug): Add close_on_cleanup. diff --git a/bfd/archive.c b/bfd/archive.c index fe57755..dc67da7 100644 --- a/bfd/archive.c +++ b/bfd/archive.c @@ -42,11 +42,17 @@ DESCRIPTION have to read the entire archive if you don't want to! Read it until you find what you want. + A BFD returned by <> can be + closed manually with <>. If you do not close it, + then a second iteration through the members of an archive may + return the same BFD. If you close the archive BFD, then all + the member BFDs will automatically be closed as well. + Archive contents of output BFDs are chained through the - <> pointer in a BFD. The first one is findable through - the <> slot of the archive. Set it with - <> (q.v.). A given BFD may be in only one - open output archive at a time. + <> pointer in a BFD. The first one is findable + through the <> slot of the archive. Set it with + <> (q.v.). A given BFD may be in only + one open output archive at a time. As expected, the BFD archive code is more general than the archive code of any given environment. BFD archives may @@ -362,6 +368,10 @@ _bfd_add_bfd_to_archive_cache (bfd *arch_bfd, file_ptr filepos, bfd *new_elt) cache->arbfd = new_elt; *htab_find_slot (hash_table, (const void *) cache, INSERT) = cache; + /* Provide a means of accessing this from child. */ + arch_eltdata (new_elt)->parent_cache = hash_table; + arch_eltdata (new_elt)->key = filepos; + return TRUE; } @@ -2682,3 +2692,58 @@ coff_write_armap (bfd *arch, return TRUE; } + +static int +archive_close_worker (void **slot, void *inf ATTRIBUTE_UNUSED) +{ + struct ar_cache *ent = (struct ar_cache *) *slot; + + bfd_close_all_done (ent->arbfd); + return 1; +} + +bfd_boolean +_bfd_archive_close_and_cleanup (bfd *abfd) +{ + if (bfd_read_p (abfd) && abfd->format == bfd_archive) + { + bfd *nbfd; + bfd *next; + htab_t htab; + + /* Close nested archives (if this bfd is a thin archive). */ + for (nbfd = abfd->nested_archives; nbfd; nbfd = next) + { + next = nbfd->archive_next; + bfd_close (nbfd); + } + + htab = bfd_ardata (abfd)->cache; + if (htab) + { + htab_traverse_noresize (htab, archive_close_worker, NULL); + htab_delete (htab); + bfd_ardata (abfd)->cache = NULL; + } + } + else if (arch_eltdata (abfd) != NULL) + { + struct areltdata *ared = arch_eltdata (abfd); + htab_t htab = (htab_t) ared->parent_cache; + + if (htab) + { + struct ar_cache ent; + void **slot; + + ent.ptr = ared->key; + slot = htab_find_slot (htab, &ent, NO_INSERT); + if (slot != NULL) + { + BFD_ASSERT (((struct ar_cache *) *slot)->arbfd == abfd); + htab_clear_slot (htab, slot); + } + } + } + return TRUE; +} diff --git a/bfd/elf32-m68hc1x.c b/bfd/elf32-m68hc1x.c index 442a411..ef0a9f1 100644 --- a/bfd/elf32-m68hc1x.c +++ b/bfd/elf32-m68hc1x.c @@ -918,9 +918,11 @@ elf32_m68hc11_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED, struct m68hc11_page_info *pinfo; const struct elf_backend_data * const ebd = get_elf_backend_data (input_bfd); struct m68hc11_elf_link_hash_table *htab; + unsigned long e_flags; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); + e_flags = elf_elfheader (input_bfd)->e_flags; htab = m68hc11_elf_hash_table (info); if (htab == NULL) @@ -1048,7 +1050,7 @@ elf32_m68hc11_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED, a LO8XG. Does not actually check that it was a LO8XG. Adjusts high and low bytes. */ relocation = phys_addr; - if ((elf_elfheader (input_bfd)->e_flags & E_M68HC11_XGATE_RAMOFFSET) + if ((e_flags & E_M68HC11_XGATE_RAMOFFSET) && (relocation >= 0x2000)) relocation += 0xc000; /* HARDCODED RAM offset for XGATE. */ @@ -1162,7 +1164,7 @@ elf32_m68hc11_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED, if (m68hc11_addr_is_banked (pinfo, relocation + rel->r_addend) && m68hc11_addr_is_banked (pinfo, insn_addr) - && phys_page != insn_page) + && phys_page != insn_page && !(e_flags & E_M68HC11_NO_BANK_WARNING)) { const char * msg; char * buf; diff --git a/bfd/elf32-vax.c b/bfd/elf32-vax.c index 84ec972..6258d96 100644 --- a/bfd/elf32-vax.c +++ b/bfd/elf32-vax.c @@ -933,39 +933,21 @@ elf_vax_adjust_dynamic_symbol (info, h) if (h->type == STT_FUNC || h->needs_plt) { - if (! info->shared - && !h->def_dynamic - && !h->ref_dynamic - /* We must always create the plt entry if it was referenced - by a PLTxxO relocation. In this case we already recorded - it as a dynamic symbol. */ - && h->dynindx == -1) + if (h->plt.refcount <= 0 + || SYMBOL_CALLS_LOCAL (info, h) + || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT + && h->root.type == bfd_link_hash_undefweak)) { /* This case can occur if we saw a PLTxx reloc in an input file, but the symbol was never referred to by a dynamic - object. In such a case, we don't actually need to build - a procedure linkage table, and we can just do a PCxx - reloc instead. */ - BFD_ASSERT (h->needs_plt); + object, or if all references were garbage collected. In + such a case, we don't actually need to build a procedure + linkage table, and we can just do a PCxx reloc instead. */ h->plt.offset = (bfd_vma) -1; - return TRUE; - } - - /* GC may have rendered this entry unused. */ - if (h->plt.refcount <= 0) - { h->needs_plt = 0; - h->plt.offset = (bfd_vma) -1; return TRUE; } - /* Make sure this symbol is output as a dynamic symbol. */ - if (h->dynindx == -1) - { - if (! bfd_elf_link_record_dynamic_symbol (info, h)) - return FALSE; - } - s = bfd_get_linker_section (dynobj, ".plt"); BFD_ASSERT (s != NULL); diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c index e02f969..093c700 100644 --- a/bfd/elf64-mips.c +++ b/bfd/elf64-mips.c @@ -1803,7 +1803,7 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_GD", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1818,7 +1818,7 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_LDM", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1833,7 +1833,7 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_DTPREL_HI16", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1848,7 +1848,7 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_DTPREL_LO16", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1863,7 +1863,7 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_GOTTPREL", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1878,7 +1878,7 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_TPREL_HI16", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1893,7 +1893,7 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_TPREL_LO16", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ }; diff --git a/bfd/elflink.c b/bfd/elflink.c index 574b6e2..7335114 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -569,7 +569,7 @@ bfd_elf_record_link_assignment (bfd *output_bfd, h->def_regular = 1; - if (provide && hidden) + if (hidden) { bed = get_elf_backend_data (output_bfd); h->other = (h->other & ~ELF_ST_VISIBILITY (-1)) | STV_HIDDEN; diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c index 6728371..81d4cf1 100644 --- a/bfd/elfn32-mips.c +++ b/bfd/elfn32-mips.c @@ -1768,7 +1768,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_GD", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1783,7 +1783,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_LDM", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1798,7 +1798,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_DTPREL_HI16", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1813,7 +1813,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_DTPREL_LO16", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1828,7 +1828,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_GOTTPREL", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1843,7 +1843,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_TPREL_HI16", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ @@ -1858,7 +1858,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] = _bfd_mips_elf_generic_reloc, /* special_function */ "R_MIPS16_TLS_TPREL_LO16", /* name */ FALSE, /* partial_inplace */ - 0x0000ffff, /* src_mask */ + 0, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ }; diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 9fef8ef..2a4c278 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -306,12 +306,12 @@ struct mips_elf_la25_stub { #define LA25_LUI(VAL) (0x3c190000 | (VAL)) /* lui t9,VAL */ #define LA25_J(VAL) (0x08000000 | (((VAL) >> 2) & 0x3ffffff)) /* j VAL */ #define LA25_ADDIU(VAL) (0x27390000 | (VAL)) /* addiu t9,t9,VAL */ -#define LA25_LUI_MICROMIPS_1(VAL) (0x41b9) /* lui t9,VAL */ -#define LA25_LUI_MICROMIPS_2(VAL) (VAL) -#define LA25_J_MICROMIPS_1(VAL) (0xd400 | (((VAL) >> 17) & 0x3ff)) /* j VAL */ -#define LA25_J_MICROMIPS_2(VAL) ((VAL) >> 1) -#define LA25_ADDIU_MICROMIPS_1(VAL) (0x3339) /* addiu t9,t9,VAL */ -#define LA25_ADDIU_MICROMIPS_2(VAL) (VAL) +#define LA25_LUI_MICROMIPS(VAL) \ + (0x41b90000 | (VAL)) /* lui t9,VAL */ +#define LA25_J_MICROMIPS(VAL) \ + (0xd4000000 | (((VAL) >> 1) & 0x3ffffff)) /* j VAL */ +#define LA25_ADDIU_MICROMIPS(VAL) \ + (0x33390000 | (VAL)) /* addiu t9,t9,VAL */ /* This structure is passed to mips_elf_sort_hash_table_f when sorting the dynamic symbols. */ @@ -1013,6 +1013,23 @@ static const bfd_vma mips_vxworks_shared_plt_entry[] = 0x24180000 /* li t8, */ }; +/* microMIPS 32-bit opcode helper installer. */ + +static void +bfd_put_micromips_32 (const bfd *abfd, bfd_vma opcode, bfd_byte *ptr) +{ + bfd_put_16 (abfd, (opcode >> 16) & 0xffff, ptr); + bfd_put_16 (abfd, opcode & 0xffff, ptr + 2); +} + +/* microMIPS 32-bit opcode helper retriever. */ + +static bfd_vma +bfd_get_micromips_32 (const bfd *abfd, const bfd_byte *ptr) +{ + return (bfd_get_16 (abfd, ptr) << 16) | bfd_get_16 (abfd, ptr + 2); +} + /* Look up an entry in a MIPS ELF linker hash table. */ #define mips_elf_link_hash_lookup(table, string, create, copy, follow) \ @@ -5930,11 +5947,12 @@ mips_elf_perform_relocation (struct bfd_link_info *info, jalx_opcode = 0x1d; } - /* If the opcode is not JAL or JALX, there's a problem. */ + /* If the opcode is not JAL or JALX, there's a problem. We cannot + convert J or JALS to JALX. */ if (!ok) { (*_bfd_error_handler) - (_("%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled."), + (_("%B: %A+0x%lx: Unsupported jump between ISA modes; consider recompiling with interlinking enabled."), input_bfd, input_section, (unsigned long) relocation->r_offset); @@ -9172,8 +9190,8 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd, /* SGI object has the equivalence of DT_DEBUG in the DT_MIPS_RLD_MAP entry. This must come first because glibc - only fills in DT_MIPS_RLD_MAP (not DT_DEBUG) and GDB only - looks at the first one it sees. */ + only fills in DT_MIPS_RLD_MAP (not DT_DEBUG) and some tools + may only look at the first one they see. */ if (!info->shared && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_RLD_MAP, 0)) return FALSE; @@ -9776,14 +9794,12 @@ mips_elf_create_la25_stub (void **slot, void *data) loc += offset; if (ELF_ST_IS_MICROMIPS (stub->h->root.other)) { - bfd_put_16 (hti->output_bfd, LA25_LUI_MICROMIPS_1 (target_high), - loc); - bfd_put_16 (hti->output_bfd, LA25_LUI_MICROMIPS_2 (target_high), hooks/post-receive -- Repository for Project Archer.