From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26041 invoked by alias); 12 Mar 2009 20:10:35 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 25301 invoked by uid 9674); 12 Mar 2009 20:10:29 -0000 Date: Thu, 12 Mar 2009 20:10:00 -0000 Message-ID: <20090312201028.25282.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-jankratochvil-expr: Merge commit 'origin/master' into archer-jankratochvil-expr X-Git-Refname: refs/heads/archer-jankratochvil-expr X-Git-Reftype: branch X-Git-Oldrev: b4558a84eef66bc3cc05581f4a501fb03732fdcd X-Git-Newrev: 33c502e17267911cb39423250a386bd948ba7168 X-SW-Source: 2009-q1/txt/msg00303.txt.bz2 List-Id: The branch, archer-jankratochvil-expr has been updated via 33c502e17267911cb39423250a386bd948ba7168 (commit) via 942eb01d1d89c831ac01b3cd41bcf7d5baaf835a (commit) via 852c0e0d0263f85b62090507be8daa135a87a53a (commit) via fca72fa5ad030093f21211e1b4394ef40ab1d0cc (commit) via bd553788ac40acb65c8a0849f38266955f905814 (commit) via a0ef3038786538a8d390c907e8d11953bae47bc3 (commit) via ddba7e72ef21e86088399b5b9364848f9d474921 (commit) via 24b599131ae218b0aca33621a06043e05bfea682 (commit) via 398035ce19b44ec266da36255133cf3d8ffd2295 (commit) via b3328989e625642287d2d9a0dbafd7f357172c9b (commit) via 3d1209ec9ee4547aeb4bc46af829f2c7bbcd5d2e (commit) via 79e74d313b4bc7c56b58b1ccfd48cf07e754dc32 (commit) via 9339cc18dd5700a48ae62e73dddcab789ac6f2b6 (commit) via 92dfc8c682f091812f76ab979cde6e13d9f5f91d (commit) via fc9cc7082d87f0011abd57fce1b2f52861fd67e8 (commit) via 094d2e715385262a524d8402e6fae589573422c0 (commit) via 451faa4f3d4bbf7e288b83aade43cb0ac9e3fe15 (commit) via 734bf3302f8a087bb95c33facf93cbab88296e62 (commit) via a88555d5710428614dbdade1bcddea2c7b81f071 (commit) via 0503f5df2489d32c57558a3fd733ab7a180b688d (commit) via a3040cde74b99c348ce534d90b8f5330e88ec0ec (commit) via 4fe17d038a0891bdf400b17f5c01babb11e18c43 (commit) via 3d60ec7d687cd613e00aea316190936b9e47624d (commit) via be87af029b506c0082a3e47f282e77052a368f8d (commit) via bb895e00aedc40d6b47f1c76162c43cca0bf9655 (commit) via c2972ffea8572552b612c7c2da82d3836b4a2c8a (commit) via 62c45004981d213b9fe085264e57f01d55fea73b (commit) via 0ed0ce6569cdb43df57173f703f5987da367625e (commit) via be2e1c8d04cc278c352b05afcd2f92caad740b87 (commit) via 8444b262861157b6478ea024f77df2ed1ff02789 (commit) via 7a82cea5ae873f8b53eaf13f730a417a289a6aa9 (commit) via 01939d0bc5b5e377d2d2e1041336174f88d75657 (commit) via ba3b27c6841ed40d7a38517348b34180797c2334 (commit) via a602008d1bc4bd7ae94f48f258b42fe8b9fc6e35 (commit) via 7736f57ac722d86d8735aa89f71e86924ffb38cc (commit) via f56e4cce499eef6d0f54e5febf00aa66f8a82f29 (commit) via 7028ef3bbdbc5e4a111d0b7cc780ee0c35a7292e (commit) via 129997da4c6c2aea81696300903da1ad47b7f48e (commit) via f2f3abead03c81796832772dc2be966191b2f80c (commit) via a93539b2e002585b2a1a2d32f0e2df2445fe6579 (commit) via 57eb800b475de56bba3f720dc7c64179f5899cec (commit) via f1c4daa594919152e47c111c830393e10530443a (commit) via 3e5fb2e1453d9b8d09983a5a3d1d3ff203e8352a (commit) via 6e9407b3a655b3339a97bfeb9f79e6bf8e9a90ae (commit) via a31bdfa66308b389d2a94de814afafbb4f0d9ff5 (commit) via 000b2df5b139714e6ec5d9fc79f1c59477b75126 (commit) via 8f21114a8f63389d6d516164a5a5fbd4de31e21b (commit) via 631a01f69c65c713332b5c5c152b583fd41cefd7 (commit) via b2ec49e547711d2e267442bd571eb7253394d10f (commit) via ef0744bb1590a8aad7f0b52c25f947de1e9b3e36 (commit) via 92f4807a51643d91c9f466fa62c1dc30c7a554ac (commit) via 6df02fc5bff4e11da68894137831fb27e8263d5c (commit) via 6ae22736c8ecbc8312af3631bd8be2ff156c3f64 (commit) via 4a7fe2eed71d84af81771722168df100149ebcc4 (commit) via 6722bb0b7991e0f20fd75883a2db654eea8438d3 (commit) via a2e6917f7307db762725a77922ad8b0cf370e7ac (commit) via c53b171a2083fdc3d959398d654aa2f4069b1c20 (commit) via 478ff543e243a47bb8934f738814ef69d9936ea5 (commit) via fb597d271837a83d02703ca6fad12f9590845b3e (commit) via 9de9f540f0e38df29cca71eb7426e5791d1004dd (commit) via a35213375f8b628f9e42fd5bc6cf67000c893248 (commit) via 62e5f942420bc61f1566a6becc79892ea08b27cd (commit) via bb7fbd4a9265f0fceea0d0f0ca21933ccbee004e (commit) via dad3bf19f9381ec7b0e8ba188626dddc81e8334e (commit) via c7c96c12054b0089c813555d72c60e8cdaa56946 (commit) via 89308881045da59ed60edaa07f891df15db630c6 (commit) via 67ce5c51fad3b8bdc866d181e58293e87dc265a3 (commit) via 9c0fd74003677eef751f51629c403a03f2241c06 (commit) via 348985d7c203ef469d9ffdb1d921475f48a7e823 (commit) via 632bf4271d3217495085f83b1de7845ac2da0032 (commit) via eec15c138feaba1072ea64acfb27eef7357dc3a7 (commit) via db8f8a559425859ed43df0ea70b4f6b2a4dcd506 (commit) via 5f25e94a1252325146a1fc7d3b2449450292d38d (commit) via f3859ae1c33373a36e211e7c1500054908f6a189 (commit) via 70baabfbb4e13618de72299df79682022cdf9bd8 (commit) via 22e9b41768f640a6dece93c706e0bf6f43779cc7 (commit) via 3db9d948d9ea2a69608f2cb5260364979c4c326b (commit) via b0f394cdd4280b1f8ad7dd4a034318badf3cb04c (commit) via de8053313621eb1ba7db9f44d691b366d50143f9 (commit) from b4558a84eef66bc3cc05581f4a501fb03732fdcd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: ChangeLog | 11 + bfd/ChangeLog | 184 +++ bfd/Makefile.am | 31 +- bfd/Makefile.in | 31 +- bfd/archive.c | 44 +- bfd/archures.c | 4 +- bfd/bfd-in2.h | 35 +- bfd/bfd.c | 5 + bfd/configure | 259 +++- bfd/configure.in | 26 +- bfd/cpu-score.c | 68 +- bfd/dwarf2.c | 76 +- bfd/ecoff.c | 11 +- bfd/elf-hppa.h | 1160 +-------------- bfd/elf32-arm.c | 85 +- bfd/elf32-hppa.c | 70 +- bfd/elf32-i386.c | 7 +- bfd/elf32-ppc.c | 192 ++- bfd/elf32-score.c | 2250 +++++++++++++++++---------- bfd/elf32-score.h | 152 ++ bfd/{elf32-score.c => elf32-score7.c} | 1842 ++++++++++++----------- bfd/elf32-spu.c | 13 + bfd/elf64-hppa.c | 2206 +++++++++++++++++++++------ bfd/elf64-ppc.c | 280 +++- bfd/elf64-x86-64.c | 5 +- bfd/libbfd.h | 6 +- bfd/peXXigen.c | 16 +- bfd/po/es.po | 1943 +++++++++++++----------- bfd/reloc.c | 21 +- bfd/section.c | 13 +- bfd/som.c | 6 +- bfd/version.h | 2 +- gdb/ChangeLog | 181 +++ gdb/Makefile.in | 12 +- gdb/ada-lang.c | 48 - gdb/ada-lang.h | 4 - gdb/ada-tasks.c | 37 - gdb/aix-thread.c | 26 +- gdb/breakpoint.c | 24 +- gdb/c-exp.y | 129 ++- gdb/cli/cli-cmds.c | 2 +- gdb/common/gdb_signals.h | 56 + gdb/{signals => common}/signals.c | 9 +- gdb/cp-name-parser.y | 2 +- gdb/dec-thread.c | 75 +- gdb/disasm.c | 1 - gdb/disasm.h | 1 - gdb/doc/ChangeLog | 7 + gdb/doc/gdb.texinfo | 45 +- gdb/dwarf2read.c | 187 ++- gdb/eval.c | 39 - gdb/expression.h | 2 - gdb/gdbserver/ChangeLog | 8 + gdb/gdbserver/Makefile.in | 7 +- gdb/gdbserver/server.h | 8 +- gdb/infcmd.c | 81 +- gdb/inferior.h | 2 + gdb/infrun.c | 58 +- gdb/mi/mi-cmd-disas.c | 1 - gdb/objfiles.c | 4 +- gdb/printcmd.c | 94 ++- gdb/remote.c | 100 +- gdb/solib-osf.c | 4 +- gdb/solib.c | 62 +- gdb/solib.h | 6 +- gdb/stack.c | 2 +- gdb/symtab.c | 145 +- gdb/target.h | 34 +- gdb/testsuite/ChangeLog | 10 + gdb/testsuite/gdb.arch/i386-permbkpt.S | 30 + gdb/testsuite/gdb.arch/i386-permbkpt.exp | 52 + gdb/testsuite/gdb.base/solib-display-lib.c | 30 + gdb/testsuite/gdb.base/solib-display-main.c | 32 + gdb/testsuite/gdb.base/solib-display.exp | 115 ++ gdb/testsuite/gdb.cp/namespace-using.exp | 35 +- gdb/testsuite/gdb.cp/ovldbreak.exp | 4 +- gdb/top.c | 3 +- gdb/valops.c | 93 +- gdb/varobj.c | 2 + gdb/version.in | 2 +- gdb/windows-nat.c | 33 +- gdb/xcoffread.c | 34 +- include/elf/ChangeLog | 10 + include/elf/common.h | 3 + include/elf/ppc.h | 6 +- include/elf/ppc64.h | 4 +- include/elf/score.h | 13 +- include/opcode/ChangeLog | 10 + include/opcode/ppc.h | 4 +- include/opcode/score-datadep.h | 227 +--- include/opcode/score-inst.h | 313 +---- libtool.m4 | 12 +- opcodes/ChangeLog | 50 + opcodes/Makefile.am | 341 ++--- opcodes/Makefile.in | 349 ++--- opcodes/configure | 257 +++- opcodes/configure.in | 24 +- opcodes/po/es.po | 249 ++- opcodes/po/id.po | 1021 +++++++++++-- opcodes/ppc-dis.c | 291 +++-- opcodes/ppc-opc.c | 20 +- opcodes/score-dis.c | 880 ++++++++++-- opcodes/score-opc.h | 460 +++--- opcodes/score7-dis.c | 972 ++++++++++++ 104 files changed, 11974 insertions(+), 6574 deletions(-) create mode 100644 bfd/elf32-score.h copy bfd/{elf32-score.c => elf32-score7.c} (69%) create mode 100644 gdb/common/gdb_signals.h rename gdb/{signals => common}/signals.c (99%) create mode 100644 gdb/testsuite/gdb.arch/i386-permbkpt.S create mode 100644 gdb/testsuite/gdb.arch/i386-permbkpt.exp create mode 100644 gdb/testsuite/gdb.base/solib-display-lib.c create mode 100644 gdb/testsuite/gdb.base/solib-display-main.c create mode 100644 gdb/testsuite/gdb.base/solib-display.exp create mode 100644 opcodes/score7-dis.c First 500 lines of diff: diff --git a/ChangeLog b/ChangeLog index 474f3d4..5ee9384 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2009-03-01 Ralf Wildenhues + + Backport from git Libtool: + + 2009-01-19 Robert Millan + Support GNU/kOpenSolaris. + * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) + (_LT_CHECK_MAGIC_METHOD, _LT_COMPILER_PIC, _LT_LINKER_SHLIBS) + (_LT_LANG_CXX_CONFIG) [kopensolaris*-gnu]: Recognize + GNU/kOpenSolaris. + 2009-02-05 Andreas Schwab * Makefile.tpl (stage_last): Define $r and $s before using diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bdd2f80..9841e5d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,187 @@ +2009-03-12 H.J. Lu + + PR ld/9938 + * elf32-i386.c (elf_i386_check_tls_transition): Use strncmp + to check ___tls_get_addr. + + * elf64-x86-64.c (elf64_x86_64_check_tls_transition): Use + strncmp to check __tls_get_addr. + +2009-03-12 Andrew Stubbs + + * dwarf2.c (read_section): Always check the offset, even when the + section has been read before. + +2009-03-11 H.J. Lu + + * elf32-i386.c (elf_i386_check_tls_transition): Fix a typo in + comments. + +2009-03-11 Chris Demetriou + + * bfd.c (BFD_DETERMINISTIC_OUTPUT): New flag. + * bfd-in2.h: Regenerate. + * archive.c (bfd_ar_hdr_from_filesystem): If BFD_DETERMINISTIC_OUTPUT + flag is set, use 0 for uid, gid, and timestamp, and use 0644 for file + mode. + (bsd_write_armap): Likewise. + (_bfd_archive_bsd_update_armap_timestamp): If BFD_DETERMINISTIC_OUTPUT + flag is set, do nothing. + (coff_write_armap): If BFD_DETERMINISTIC_OUTPUT flag is set, use 0 + for timestamp. + +2009-03-11 Ulrich Weigand + + * elf32-spu.c (find_function_stack_adjust): Handle sf instruction + used to update stack pointer. + +2009-03-07 John David Anglin + + PR binutils/9921 + * som.c (som_bfd_derive_misc_symbol_info): Set symbol type ST_ABSOLUTE + for unknown symbols in absolute section. + +2009-03-06 Nick Clifton + + * po/es.po: Updated Spanish translation. + +2009-03-05 Christophe Lyon + + * elf32-arm.c (group_sections): Take next section size into + account before accepting to group it. + +2009-03-05 Christophe Lyon + + * elf32-arm.c (arm_type_of_stub): Handle long branches targetting + PLT entries. + (elf32_arm_final_link_relocate): Likewise. + +2009-03-05 Moritz Kroll + + PR 9923 + * peXXigen.c (_bfd_XXi_final_link_postscript): Check h->root.type. + +2009-03-04 Alan Modra + + * reloc.c (BFD_RELOC_PPC_TLSGD, BFD_RELOC_PPC_TLSLD): New. + * section.c (struct bfd_section): Add has_tls_get_addr_call. + (BFD_FAKE_SECTION): Init new flag. + * ecoff.c (bfd_debug_section): Likewise. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_TLSGD and R_PPC_TLSLD. + (ppc_elf_reloc_type_lookup): Handle new relocs. + (ppc_elf_check_relocs): Set has_tls_get_addr_call on finding such + without marker relocs. + (ppc_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs + if section has no old-style calls. + (ppc_elf_relocate_section): Set tls_mask for non-tls relocs too. + Don't try to optimize new-style __tls_get_addr call when handling + arg setup relocs. Instead do so for R_PPC_TLSGD and R_PPC_TLSLD + relocs. + * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_TLSGD, R_PPC64_TLSLD. + (ppc64_elf_reloc_type_lookup): Handle new relocs. + (ppc64_elf_check_relocs): Set has_tls_get_addr_call on finding such + without marker relocs. + (ppc64_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs + if section has no old-style calls. Set toc_ref for new relocs as + appropriate. + (ppc64_elf_relocate_section): Set tls_mask for non-tls relocs too. + Don't try to optimize new-style __tls_get_addr call when handling + arg setup relocs. Instead do so for R_PPC_TLSGD and R_PPC_TLSLD + relocs. + +2009-03-04 Alan Modra + + PR 6768 + * configure.in: Test for ld --as-needed support. Link shared + libbfd against libm. + * configure: Regenerate. + +2009-03-03 Alan Modra + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + +2009-03-02 Qinwei + + * elf32-score7.c: New file. + * elf32-score.h: New file. + * elf32-score.c: Add code to support score 7. Set score7 as the + default. + * cpu-score.c: Add score7 architecure. + (compatibile): New function. + * Makefile.am: Add rules for building elf32-score7 object. + * Makefile.in: Regenerate. + * configure.in: Add elf32-score7 object to score vectors. + * configure: Regenerate. + * reloc.c: Add score7 relocs. + * archures.c: Add score3 and score7 machine numbers. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2009-03-01 Ralf Wildenhues + + * configure: Regenerate. + +2009-03-01 John David Anglin + + * elf32-hppa.c (hppa32_elf_local_refcounts): New function. + (elf32_hppa_check_relocs): Use it. + + * elf_hppa_add_symbol_hook (elf_hppa_add_symbol_hook): Move to + elf64-hppa.c. + (elf_hppa_unmark_useless_dynamic_symbols): Likewise. + (elf_hppa_remark_useless_dynamic_symbols): Likewise. + (elf_hppa_is_dynamic_loader_symbol): Likewise. + (elf_hppa_record_segment_addrs): Likewise. + (elf_hppa_final_link): Likewise. + (elf_hppa_relocate_insn): Likewise. + (elf_hppa_final_link_relocate): Likewise. + (elf64_hppa_relocate_section): Likewise. + * elf64-hppa.c: Insert above. + +2009-02-28 John David Anglin + + * elf-hppa.h (elf_hppa_final_link): Use elf_hppa_final_link. + (elf_hppa_final_link_relocate ): Rewrite eliminating dynamic hash table. + (elf_hppa_relocate_section): Likewise. + * elf64-hppa.c (struct elf64_hppa_link_hash_entry): Change to derive + from struct elf_link_hash_entry. Add count field. + (struct elf64_hppa_dyn_hash_table): Delete. + (struct elf64_hppa_link_hash_table): Delete dyn_hash_table field. + (elf64_hppa_hash_table): Rename to hppa_link_hash_table. + (hppa_elf_hash_entry, eh_name): Define. + (elf64_hppa_new_dyn_hash_entry): Delete. + (elf64_hppa_dyn_hash_lookup): Delete. + (elf64_hppa_dyn_hash_traverse): Delete. + (get_dyn_name): Delete. + (elf64_hppa_finalize_opd): Use struct elf_link_hash_entry * instead + of struct elf64_hppa_dyn_hash_entry *. + (elf64_hppa_finalize_dlt, llocate_global_data_dlt, + allocate_global_data_plt, allocate_global_data_stub, + allocate_global_data_opd, count_dyn_reloc, allocate_dynrel_entries): + Likewise. + (hppa64_link_hash_newfunc): New. + (elf64_hppa_hash_table_create): Rework. + (count_dyn_reloc): Likewise. + (hppa64_elf_local_refcounts): New. + (elf64_hppa_check_relocs): Rework using standard technique for recording + local DLT, PLT and OPD reference counts. + (elf64_hppa_dynamic_symbol_p): Revise using "eh" for struct + elf_link_hash_entry *. + (elf64_hppa_mark_exported_functions, allocate_global_data_dlt, + allocate_global_data_plt, allocate_global_data_stub, + allocate_global_data_opd, allocate_dynrel_entries, + elf64_hppa_adjust_dynamic_symbol, + elf64_hppa_mark_milli_and_exported_functions): Likewise. + (elf64_hppa_create_dynamic_sections, elf64_hppa_size_dynamic_sections): + Use hppa_link_hash_table. Rework. + (elf64_hppa_link_output_symbol_hook): Rework. + (elf64_hppa_finish_dynamic_symbol, elf64_hppa_finalize_opd, + elf64_hppa_finalize_dlt, elf64_hppa_finalize_dynreloc, + elf64_hppa_finish_dynamic_sections): Likewise. + 2009-02-26 Christophe Lyon * elf32-arm.c (stub_reloc_type): Removed. diff --git a/bfd/Makefile.am b/bfd/Makefile.am index 8d67cb8..1c150cd 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -289,6 +289,7 @@ BFD32_BACKENDS = \ elf32-ppc.lo \ elf32-s390.lo \ elf32-score.lo \ + elf32-score7.lo \ elf32-sh.lo \ elf32-sh-symbian.lo \ elf32-sh64.lo \ @@ -474,6 +475,7 @@ BFD32_BACKENDS_CFILES = \ elf32-sh64-com.c \ elf32-s390.c \ elf32-score.c \ + elf32-score7.c \ elf32-sh.c \ elf32-sh-symbian.c \ elfxx-sparc.c \ @@ -1050,11 +1052,10 @@ archive.lo: archive.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \ archures.lo: archures.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ $(INCDIR)/safe-ctype.h bfd.lo: bfd.c $(INCDIR)/filenames.h bfdver.h $(INCDIR)/libiberty.h \ - $(INCDIR)/demangle.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ - $(INCDIR)/bfdlink.h $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h \ - $(INCDIR)/coff/sym.h libcoff.h libecoff.h $(INCDIR)/coff/ecoff.h \ - elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ - $(INCDIR)/elf/internal.h + $(INCDIR)/demangle.h $(INCDIR)/safe-ctype.h $(INCDIR)/bfdlink.h \ + $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/sym.h \ + libcoff.h libecoff.h $(INCDIR)/coff/ecoff.h elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h bfdio.lo: bfdio.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h bfdwin.lo: bfdwin.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cache.lo: cache.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ @@ -1458,15 +1459,15 @@ elf32-iq2000.lo: elf32-iq2000.c $(INCDIR)/filenames.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h \ $(INCDIR)/elf/iq2000.h $(INCDIR)/elf/reloc-macros.h \ elf32-target.h +elf32-lm32.lo: elf32-lm32.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/lm32.h \ + $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-m32c.lo: elf32-m32c.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32c.h \ $(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \ elf32-target.h -elf32-lm32.lo: elf32-lm32.c $(INCDIR)/filenames.h elf-bfd.h \ - $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ - $(INCDIR)/bfdlink.h $(INCDIR)/elf/lm32.h $(INCDIR)/elf/reloc-macros.h \ - elf32-target.h elf32-m32r.lo: elf32-m32r.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32r.h \ @@ -1571,7 +1572,12 @@ elf32-score.lo: elf32-score.c $(INCDIR)/filenames.h \ $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \ - elf32-target.h + elf32-score.h elf32-target.h +elf32-score7.lo: elf32-score7.c $(INCDIR)/filenames.h \ + $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \ + elf32-score.h elf32-sh.lo: elf32-sh.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/hashtab.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h elf-vxworks.h \ @@ -1716,7 +1722,8 @@ m88kopenbsd.lo: m88kopenbsd.c netbsd.h $(INCDIR)/filenames.h \ $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def \ $(INCDIR)/aout/ar.h mach-o.lo: mach-o.c $(INCDIR)/filenames.h mach-o.h \ - $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h mach-o-target.c + $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h $(INCDIR)/aout/stab_gnu.h \ + $(INCDIR)/aout/stab.def mach-o-target.c mipsbsd.lo: mipsbsd.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ libaout.h $(INCDIR)/bfdlink.h aout-target.h $(INCDIR)/aout/aout64.h \ $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h @@ -1865,7 +1872,7 @@ vms-misc.lo: vms-misc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/hashtab.h vms.h vms-tir.lo: vms-tir.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/hashtab.h vms.h -vmsutil.lo: vmsutil.c vmsutil.h $(INCDIR)/ansidecl.h +vmsutil.lo: vmsutil.c vmsutil.h xcofflink.lo: xcofflink.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/xcoff.h \ libcoff.h libxcoff.h diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 9932dea..32191a1 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -555,6 +555,7 @@ BFD32_BACKENDS = \ elf32-ppc.lo \ elf32-s390.lo \ elf32-score.lo \ + elf32-score7.lo \ elf32-sh.lo \ elf32-sh-symbian.lo \ elf32-sh64.lo \ @@ -740,6 +741,7 @@ BFD32_BACKENDS_CFILES = \ elf32-sh64-com.c \ elf32-s390.c \ elf32-score.c \ + elf32-score7.c \ elf32-sh.c \ elf32-sh-symbian.c \ elfxx-sparc.c \ @@ -1646,11 +1648,10 @@ archive.lo: archive.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \ archures.lo: archures.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ $(INCDIR)/safe-ctype.h bfd.lo: bfd.c $(INCDIR)/filenames.h bfdver.h $(INCDIR)/libiberty.h \ - $(INCDIR)/demangle.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \ - $(INCDIR)/bfdlink.h $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h \ - $(INCDIR)/coff/sym.h libcoff.h libecoff.h $(INCDIR)/coff/ecoff.h \ - elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ - $(INCDIR)/elf/internal.h + $(INCDIR)/demangle.h $(INCDIR)/safe-ctype.h $(INCDIR)/bfdlink.h \ + $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/sym.h \ + libcoff.h libecoff.h $(INCDIR)/coff/ecoff.h elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h bfdio.lo: bfdio.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h bfdwin.lo: bfdwin.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cache.lo: cache.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ @@ -2054,15 +2055,15 @@ elf32-iq2000.lo: elf32-iq2000.c $(INCDIR)/filenames.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h \ $(INCDIR)/elf/iq2000.h $(INCDIR)/elf/reloc-macros.h \ elf32-target.h +elf32-lm32.lo: elf32-lm32.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/lm32.h \ + $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-m32c.lo: elf32-m32c.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32c.h \ $(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \ elf32-target.h -elf32-lm32.lo: elf32-lm32.c $(INCDIR)/filenames.h elf-bfd.h \ - $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ - $(INCDIR)/bfdlink.h $(INCDIR)/elf/lm32.h $(INCDIR)/elf/reloc-macros.h \ - elf32-target.h elf32-m32r.lo: elf32-m32r.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32r.h \ @@ -2167,7 +2168,12 @@ elf32-score.lo: elf32-score.c $(INCDIR)/filenames.h \ $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \ - elf32-target.h + elf32-score.h elf32-target.h +elf32-score7.lo: elf32-score7.c $(INCDIR)/filenames.h \ + $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \ + elf32-score.h elf32-sh.lo: elf32-sh.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/hashtab.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h elf-vxworks.h \ @@ -2312,7 +2318,8 @@ m88kopenbsd.lo: m88kopenbsd.c netbsd.h $(INCDIR)/filenames.h \ $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def \ $(INCDIR)/aout/ar.h mach-o.lo: mach-o.c $(INCDIR)/filenames.h mach-o.h \ - $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h mach-o-target.c + $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h $(INCDIR)/aout/stab_gnu.h \ + $(INCDIR)/aout/stab.def mach-o-target.c mipsbsd.lo: mipsbsd.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ libaout.h $(INCDIR)/bfdlink.h aout-target.h $(INCDIR)/aout/aout64.h \ $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h @@ -2461,7 +2468,7 @@ vms-misc.lo: vms-misc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/hashtab.h vms.h vms-tir.lo: vms-tir.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/hashtab.h vms.h -vmsutil.lo: vmsutil.c vmsutil.h $(INCDIR)/ansidecl.h +vmsutil.lo: vmsutil.c vmsutil.h xcofflink.lo: xcofflink.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/xcoff.h \ libcoff.h libxcoff.h diff --git a/bfd/archive.c b/bfd/archive.c index 437a085..5e0fd6b 100644 --- a/bfd/archive.c +++ b/bfd/archive.c @@ -1652,6 +1652,16 @@ bfd_ar_hdr_from_filesystem (bfd *abfd, const char *filename, bfd *member) return NULL; } + /* If the caller requested that the BFD generate deterministic output, + fake values for modification time, UID, GID, and file mode. */ + if ((abfd->flags & BFD_DETERMINISTIC_OUTPUT) != 0) + { + status.st_mtime = 0; + status.st_uid = 0; + status.st_gid = 0; + status.st_mode = 0644; + } + amt = sizeof (struct ar_hdr) + sizeof (struct areltdata); ared = bfd_zalloc (abfd, amt); if (ared == NULL) @@ -2220,20 +2230,39 @@ bsd_write_armap (bfd *arch, unsigned int count; struct ar_hdr hdr; struct stat statbuf; + long uid, gid; firstreal = mapsize + elength + sizeof (struct ar_hdr) + SARMAG; stat (arch->filename, &statbuf); + if ((arch->flags & BFD_DETERMINISTIC_OUTPUT) == 0) + { + /* Remember the timestamp, to keep it holy. But fudge it a little. */ + bfd_ardata (arch)->armap_timestamp = (statbuf.st_mtime + + ARMAP_TIME_OFFSET); + uid = getuid(); + gid = getgid(); + } + else + { + /* If deterministic, we use 0 as the timestamp in the map. + Some linkers may require that the archive filesystem modification + time is less than (or near to) the archive map timestamp. Those + linkers should not be used with deterministic mode. (GNU ld and + Gold do not have this restriction.) */ + bfd_ardata (arch)->armap_timestamp = 0; + uid = 0; + gid = 0; + } + memset (&hdr, ' ', sizeof (struct ar_hdr)); memcpy (hdr.ar_name, RANLIBMAG, strlen (RANLIBMAG)); - /* Remember the timestamp, to keep it holy. But fudge it a little. */ - bfd_ardata (arch)->armap_timestamp = statbuf.st_mtime + ARMAP_TIME_OFFSET; bfd_ardata (arch)->armap_datepos = (SARMAG + offsetof (struct ar_hdr, ar_date[0])); _bfd_ar_spacepad (hdr.ar_date, sizeof (hdr.ar_date), "%ld", bfd_ardata (arch)->armap_timestamp); - _bfd_ar_spacepad (hdr.ar_uid, sizeof (hdr.ar_uid), "%ld", getuid ()); - _bfd_ar_spacepad (hdr.ar_gid, sizeof (hdr.ar_gid), "%ld", getgid ()); + _bfd_ar_spacepad (hdr.ar_uid, sizeof (hdr.ar_uid), "%ld", uid); + _bfd_ar_spacepad (hdr.ar_gid, sizeof (hdr.ar_gid), "%ld", gid); _bfd_ar_spacepad (hdr.ar_size, sizeof (hdr.ar_size), "%-10ld", mapsize); memcpy (hdr.ar_fmag, ARFMAG, 2); if (bfd_bwrite (&hdr, sizeof (struct ar_hdr), arch) @@ -2301,6 +2330,10 @@ _bfd_archive_bsd_update_armap_timestamp (bfd *arch) struct stat archstat; struct ar_hdr hdr; + /* If creating deterministic archives, just leave the timestamp as-is. */ + if ((arch->flags & BFD_DETERMINISTIC_OUTPUT) != 0) + return TRUE; + /* Flush writes, get last-write timestamp from file, and compare it to the timestamp IN the file. */ bfd_flush (arch); @@ -2385,7 +2418,8 @@ coff_write_armap (bfd *arch, _bfd_ar_spacepad (hdr.ar_size, sizeof (hdr.ar_size), "%-10ld", mapsize); _bfd_ar_spacepad (hdr.ar_date, sizeof (hdr.ar_date), "%ld", - time (NULL)); + ((arch->flags & BFD_DETERMINISTIC_OUTPUT) == 0 + ? time (NULL) : 0)); /* This, at least, is what Intel coff sets the values to. */ _bfd_ar_spacepad (hdr.ar_uid, sizeof (hdr.ar_uid), "%ld", 0); _bfd_ar_spacepad (hdr.ar_gid, sizeof (hdr.ar_gid), "%ld", 0); diff --git a/bfd/archures.c b/bfd/archures.c index f548ea2..fa03d81 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -1,6 +1,6 @@ /* BFD library support routines for architectures. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Hacked by John Gilmore and Steve Chamberlain of Cygnus Support. @@ -376,6 +376,8 @@ DESCRIPTION .#define bfd_mach_s390_31 31 .#define bfd_mach_s390_64 64 . bfd_arch_score, {* Sunplus score *} +.#define bfd_mach_score3 3 +.#define bfd_mach_score7 7 . bfd_arch_openrisc, {* OpenRISC *} . bfd_arch_mmix, {* Donald Knuth's educational processor. *} . bfd_arch_xstormy16, diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 7870962..7e3defd 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h hooks/post-receive -- Repository for Project Archer.