From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1106 invoked by alias); 27 Mar 2009 00:35:05 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 663 invoked by uid 9674); 27 Mar 2009 00:35:01 -0000 Date: Fri, 27 Mar 2009 00:35:00 -0000 Message-ID: <20090327003500.627.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-jankratochvil-python: Merge commit 'origin/archer-tromey-python' into archer-jankratochvil-python X-Git-Refname: refs/heads/archer-jankratochvil-python X-Git-Reftype: branch X-Git-Oldrev: 2e4985cad1fc3d054eaceac9aef5fed7dfa2fd37 X-Git-Newrev: 68ac9fbeb0ff5bc68f44bfd25445a2243ef3dc79 X-SW-Source: 2009-q1/txt/msg00376.txt.bz2 List-Id: The branch, archer-jankratochvil-python has been updated via 68ac9fbeb0ff5bc68f44bfd25445a2243ef3dc79 (commit) via 33b84b7e2f03c65b80ccaf9fbb23b74ea1daa15e (commit) via 95b4138baf512e661d95b09c38bdd95c05234a1e (commit) via 2425a4d7939bae66a15832bd8a325be4aa26e4bf (commit) via 3157aba1ab73fb5b5cd0e2dbb5c031a1336a93db (commit) via 64c287329177f68d0da2ce81207f5f3f105dabfe (commit) via cbd12f3666346846dd18e762f7881f4a0b1767ee (commit) via 3092115a3d791e551209af2e1945666169a04de7 (commit) via 27c4a5d2ebbfd4f68a5e87b459adbbc6eeda7cf8 (commit) via 8c4195d13e945d3cf2c8583c9f818bbf4a3b5710 (commit) via 390ac7259731cdf469ea739345e64d3a7d248818 (commit) via 9533c58c4b0c692975a4b97267222ad002364a29 (commit) via 3f81316d6eb8f3c951acd8774da7bc8ad23bdedd (commit) via c5f1a7ef72922178569418b5d5060f8240c1767e (commit) via 6f1a685bc7bfe44af998e54b99963dffc8e715e5 (commit) via d7b3c9ecbb4f7c782aacbe4224c9aeb8d0d161b2 (commit) via b20dff1b337ceb1bd5f241bff2ed1233780936df (commit) via 032f67142ca0678c31a574314adc53d316960f72 (commit) via 817ede0ad440e39f3311cc8a1f55ad5655b97e9a (commit) via 165709eaa90768f4d03e76188188e5e5afa4ac2c (commit) via 50a6b4966bccf97597d65486bd60561d05a65dff (commit) via b3c3db206b652d19fad5290df7b630335acc5889 (commit) via 02dc98a6209b37e8473ee3218b5eb4ff6bc7e44d (commit) via 70e735001ef74606d3e86a75cf4fd04173e10974 (commit) via 90ab18a605385cb7e7984c4ac83a4f7461f99906 (commit) via 3836cfdf3b7de8b0f34fda25e5a1b4ae33e253ea (commit) via 6c2b67e0220165c9411c128b2f8f7d1e8856795b (commit) via 7f0e4fa27448e8da47cdedfa6f8342f94245ab76 (commit) via ff21434d7a766aba9f937e270016e4e7d9e6ba40 (commit) via 40dd9754f21987e1fca43c2cde6b3adc18464f1d (commit) via 60194aaeeb94372651c09fb5dc0cb5d3329b921e (commit) via c3bcf1c464f8633b5ce91cb72bafee27ce9b05ce (commit) via 7d1733001ce46390908da9e6868f45006409b056 (commit) via 214296a4b2a36f3e0bc8a270647da2fc21b8b874 (commit) via 7ad6aabd74342df423bc2ba496c9750e14d86e85 (commit) via 0ee8ee241dcc7feeaf538a120826051dcd8cccfd (commit) via 3caef2b656659161247d9c8d418ba8fcc889a04c (commit) via da12fddea1a71fb3b808e88a5ef83bbca8e2cb30 (commit) via 297cccbb83721274c4df1eec08dde9eb9f51a733 (commit) via 7f43a566f95a1cf96ed799471319b5c574ee575e (commit) via e0f2167a8e0855ab0a1545da2b5f1472cac923dc (commit) via 0db2376071441d14829885eaa95b2b8a69a3a1ae (commit) via 22a744906c7e0303d9f56c9160900946eff17206 (commit) via d65e7bd9988748a8d39dba3439cbf3cfc873f724 (commit) via e5e85060ca59a79204d185b1b4cf3e30eb0fd1ba (commit) via 50158e6deec5d6304429f655fd0a7990c0c14cfc (commit) via f01a34d4d484fb2a8e69233429e993283ee39235 (commit) via d33df476c193a636fbc205d541dce62a6b327fdb (commit) via 5943423dd8fd3c0df0586c8c05631165d84f341d (commit) via b4494ffc89755afd15f3dda0b71b82244aa5ea2f (commit) via 095e9826734cc7660ab9f444e72a517736272902 (commit) via a371c4d2c371566a571f9c9d08df72f200024b9c (commit) via 2e7a4dfe356485e3d14ec2b73b405f016336fcd2 (commit) via d351e41f278158d1b8219d523b0fa03c02b76189 (commit) via 8a4ca176c977982bf74c885ec927ed3d6c677bde (commit) via 6418262610197a1d63af6393d077f10fac01304c (commit) via 67df65cc54808054e45498160f67ce682a9aaa7b (commit) via 7075b478c79fa7bf8a95b17474f5f799b0ad5523 (commit) from 2e4985cad1fc3d054eaceac9aef5fed7dfa2fd37 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 50 + bfd/cpu-i386.c | 8 +- bfd/elf32-cris.c | 32 +- bfd/elf32-ppc.c | 31 +- bfd/elf32-s390.c | 33 +- bfd/elf64-ppc.c | 12 +- bfd/elf64-s390.c | 33 +- bfd/version.h | 2 +- gdb/ChangeLog | 487 +++++ gdb/Makefile.in | 12 +- gdb/NEWS | 14 + gdb/acinclude.m4 | 37 +- gdb/ada-exp.y | 1 + gdb/ada-lang.c | 33 +- gdb/ada-lang.h | 8 +- gdb/ada-typeprint.c | 11 +- gdb/ada-valprint.c | 26 +- gdb/auxv.c | 3 +- gdb/breakpoint.c | 61 +- gdb/buildsym.c | 26 + gdb/c-exp.y | 477 +++-- gdb/c-lang.c | 826 +++++++- gdb/c-lang.h | 41 +- gdb/c-valprint.c | 83 +- gdb/charset-list.h | 1190 +++++++++++ gdb/charset.c | 1559 +++++--------- gdb/charset.h | 184 +- gdb/config.in | 6 + gdb/configure | 639 ++++--- gdb/configure.ac | 58 +- gdb/darwin-nat.c | 8 +- gdb/defs.h | 2 + gdb/doc/ChangeLog | 50 + gdb/doc/gdb.texinfo | 88 +- gdb/doc/gdbint.texinfo | 1651 +++++++++++---- gdb/doc/observer.texi | 4 + gdb/doc/stack_frame.eps | 3708 +++++++++++++++++++++++++++++++++ gdb/doc/stack_frame.pdf | Bin 0 -> 77972 bytes gdb/doc/stack_frame.png | Bin 0 -> 67273 bytes gdb/doc/stack_frame.svg | 866 ++++++++ gdb/doc/stack_frame.txt | 39 + gdb/dwarf2expr.c | 2 +- gdb/eval.c | 1 + gdb/expprint.c | 12 +- gdb/f-lang.c | 20 +- gdb/f-valprint.c | 7 +- gdb/gdb_locale.h | 4 + gdb/gdb_obstack.h | 3 + gdb/{mi/mi-main.h => gdb_usleep.c} | 35 +- gdb/{mi/mi-main.h => gdb_usleep.h} | 24 +- gdb/gdb_wchar.h | 62 + gdb/gdbserver/ChangeLog | 25 + gdb/gdbserver/Makefile.in | 18 +- gdb/gdbserver/configure | 2 +- gdb/gdbserver/configure.ac | 6 +- gdb/gdbserver/gdbreplay.c | 2 +- gdb/gdbserver/i387-fp.c | 40 +- gdb/gdbserver/inferiors.c | 5 +- gdb/gdbserver/linux-arm-low.c | 2 +- gdb/gdbserver/linux-cris-low.c | 4 +- gdb/gdbserver/linux-crisv32-low.c | 44 +- gdb/gdbserver/linux-i386-low.c | 4 +- gdb/gdbserver/linux-low.c | 177 +- gdb/gdbserver/linux-mips-low.c | 2 +- gdb/gdbserver/linux-s390-low.c | 1 - gdb/gdbserver/linux-sparc-low.c | 39 +- gdb/gdbserver/linux-x86-64-low.c | 10 +- gdb/gdbserver/linux-xtensa-low.c | 2 +- gdb/gdbserver/proc-service.c | 2 - gdb/gdbserver/regcache.c | 5 +- gdb/gdbserver/remote-utils.c | 48 +- gdb/gdbserver/server.c | 56 +- gdb/gdbserver/spu-low.c | 8 +- gdb/gdbserver/target.h | 8 +- gdb/gdbserver/thread-db.c | 2 +- gdb/gdbserver/win32-low.c | 82 +- gdb/gdbserver/xtensa-xtregs.c | 1 - gdb/gdbthread.h | 4 + gdb/infcall.c | 26 +- gdb/infcmd.c | 27 +- gdb/inferior.h | 12 - gdb/infrun.c | 34 +- gdb/jv-lang.c | 5 +- gdb/jv-valprint.c | 4 +- gdb/language.c | 16 +- gdb/language.h | 21 +- gdb/m2-lang.c | 19 +- gdb/m2-valprint.c | 10 +- gdb/macroexp.c | 31 +- gdb/mi/mi-interp.c | 32 +- gdb/mi/mi-main.c | 5 + gdb/mi/mi-main.h | 1 + gdb/objc-lang.c | 16 +- gdb/p-lang.c | 32 +- gdb/p-lang.h | 9 +- gdb/p-valprint.c | 20 +- gdb/parse.c | 59 + gdb/parser-defs.h | 18 + gdb/printcmd.c | 104 +- gdb/python/python-cmd.c | 2 +- gdb/python/python.c | 11 +- gdb/scm-lang.c | 6 +- gdb/scm-lang.h | 2 +- gdb/scm-valprint.c | 3 +- gdb/ser-unix.c | 9 +- gdb/symfile.c | 9 +- gdb/symtab.c | 2 +- gdb/testsuite/ChangeLog | 41 + gdb/testsuite/gdb.base/auxv.exp | 12 +- gdb/testsuite/gdb.base/call-rt-st.exp | 2 +- gdb/testsuite/gdb.base/callfuncs.exp | 14 +- gdb/testsuite/gdb.base/charset.c | 39 +- gdb/testsuite/gdb.base/charset.exp | 214 ++- gdb/testsuite/gdb.base/constvars.exp | 6 +- gdb/testsuite/gdb.base/long_long.exp | 10 +- gdb/testsuite/gdb.base/pointers.exp | 2 +- gdb/testsuite/gdb.base/printcmds.exp | 58 +- gdb/testsuite/gdb.base/setvar.exp | 6 +- gdb/testsuite/gdb.base/store.exp | 4 +- gdb/testsuite/gdb.cp/ref-types.exp | 4 +- gdb/testsuite/lib/gdb.exp | 3 + gdb/thread.c | 6 +- gdb/typeprint.c | 2 +- gdb/utils.c | 127 +- gdb/valops.c | 18 + gdb/valprint.c | 13 +- gdb/valprint.h | 5 +- gdb/value.c | 1 + gdb/value.h | 4 +- gdb/varobj.c | 10 +- gdb/version.in | 2 +- gdb/windows-nat.c | 350 ++-- include/elf/ChangeLog | 4 + include/elf/common.h | 1 + libiberty/ChangeLog | 8 + libiberty/cp-demangle.c | 24 +- libiberty/testsuite/demangle-expected | 10 +- 137 files changed, 11663 insertions(+), 3050 deletions(-) create mode 100644 gdb/charset-list.h create mode 100644 gdb/doc/stack_frame.eps create mode 100644 gdb/doc/stack_frame.pdf create mode 100644 gdb/doc/stack_frame.png create mode 100644 gdb/doc/stack_frame.svg create mode 100644 gdb/doc/stack_frame.txt copy gdb/{mi/mi-main.h => gdb_usleep.c} (58%) copy gdb/{mi/mi-main.h => gdb_usleep.h} (58%) create mode 100644 gdb/gdb_wchar.h First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index dc5454b..dfb9bb5 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,53 @@ +2009-03-24 H.J. Lu + + * cpu-i386.c (bfd_x86_64_arch_intel_syntax): Make it static. + (bfd_i386_arch_intel_syntax): Likewise. + (i8086_arch): Likewise. + (bfd_x86_64_arch): Likewise. + +2009-03-24 Hans-Peter Nilsson + + * elf32-cris.c (cris_elf_relocate_section): : Allow use of non-local + symbols for non-allocated sections. Don't check whether to + generate R_CRIS_DTPMOD for non-allocated sections. + (cris_elf_gc_sweep_hook) : Don't + handle relocation GC:ing if applied to non-allocated section. + (cris_elf_check_relocs): Similar. + + * elf32-cris.c (cris_elf_relocate_section) + : Don't include the TLS size + when emitting a known TP offset in the GOT. + +2009-03-23 Alan Modra + + * elf64-ppc.c (synthetic_opd): Delete. + (compare_symbols): Look for .opd name rather than section match. + (ppc64_elf_get_synthetic_symtab): Likewise. + +2009-03-21 Alan Modra + + * elf32-ppc.c (is_pic_glink_stub): Delete. + (is_nonpic_glink_stub): New function. + (ppc_elf_get_synthetic_symtab): Check for last non-pic stub rather + than first pic one. + (struct ppc_elf_link_hash_table ): Comment fix. + +2009-03-20 Martin Schwidefsky + Andreas Krebbel + + * elf32-s390.c (elf_s390_check_relocs): Use the SYMBOL_* + macros for visibilty and locality checks. + (elf_s390_adjust_dynamic_symbol): Likewise. + (allocate_dynrelocs): Likewise. + (elf_s390_relocate_section): Likewise. + (elf_s390_finish_dynamic_symbol): Likewise. + * elf64-s390.c (elf_s390_check_relocs): Likewise. + (elf_s390_adjust_dynamic_symbol): Likewise. + (allocate_dynrelocs): Likewise. + (elf_s390_relocate_section): Likewise. + (elf_s390_finish_dynamic_symbol): Likewise. + 2009-03-19 Kai Tietz * bfd-in2.h: Regenerated. diff --git a/bfd/cpu-i386.c b/bfd/cpu-i386.c index 4001a05..952e659 100644 --- a/bfd/cpu-i386.c +++ b/bfd/cpu-i386.c @@ -23,7 +23,7 @@ #include "bfd.h" #include "libbfd.h" -const bfd_arch_info_type bfd_x86_64_arch_intel_syntax = +static const bfd_arch_info_type bfd_x86_64_arch_intel_syntax = { 64, /* 64 bits in a word */ 64, /* 64 bits in an address */ @@ -39,7 +39,7 @@ const bfd_arch_info_type bfd_x86_64_arch_intel_syntax = 0 }; -const bfd_arch_info_type bfd_i386_arch_intel_syntax = +static const bfd_arch_info_type bfd_i386_arch_intel_syntax = { 32, /* 32 bits in a word */ 32, /* 32 bits in an address */ @@ -55,7 +55,7 @@ const bfd_arch_info_type bfd_i386_arch_intel_syntax = &bfd_x86_64_arch_intel_syntax }; -const bfd_arch_info_type i8086_arch = +static const bfd_arch_info_type i8086_arch = { 32, /* 32 bits in a word */ 32, /* 32 bits in an address (well, not really) */ @@ -71,7 +71,7 @@ const bfd_arch_info_type i8086_arch = &bfd_i386_arch_intel_syntax }; -const bfd_arch_info_type bfd_x86_64_arch = +static const bfd_arch_info_type bfd_x86_64_arch = { 64, /* 32 bits in a word */ 64, /* 32 bits in an address */ diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c index bd6de29..ed1f3e8 100644 --- a/bfd/elf32-cris.c +++ b/bfd/elf32-cris.c @@ -1615,10 +1615,12 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section, case R_CRIS_16_DTPREL: case R_CRIS_32_DTPREL: /* This relocation must only be performed against local - symbols. It's also ok when we link a program and the - symbol is defined in an ordinary (non-DSO) object (if - it's undefined there, we've already seen an error). */ + symbols, or to sections that are not loadable. It's also + ok when we link a program and the symbol is defined in an + ordinary (non-DSO) object (if it's undefined there, we've + already seen an error). */ if (h != NULL + && (input_section->flags & SEC_ALLOC) != 0 && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT && (info->shared || (!h->def_regular @@ -1641,14 +1643,16 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section, return FALSE; } - BFD_ASSERT (elf_cris_hash_table (info)->dtpmod_refcount != 0); + BFD_ASSERT ((input_section->flags & SEC_ALLOC) == 0 + || elf_cris_hash_table (info)->dtpmod_refcount != 0); /* Fill in a R_CRIS_DTPMOD reloc at offset 3 if we haven't already done so. Note that we do this in .got.plt, not in .got, as .got.plt contains the first part, still the reloc is against .got, because the linker script directs (is required to direct) them both into .got. */ - if (elf_cris_hash_table (info)->dtpmod_refcount > 0) + if (elf_cris_hash_table (info)->dtpmod_refcount > 0 + && (input_section->flags & SEC_ALLOC) != 0) { asection *sgotplt = bfd_get_section_by_name (dynobj, ".got.plt"); BFD_ASSERT (sgotplt != NULL); @@ -1735,9 +1739,8 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section, bfd_vma off; /* The symbol is defined in the program, so just write - (1, -prog_tls_size+known_tpoffset) into the GOT. */ + (1, known_tpoffset) into the GOT. */ relocation -= elf_hash_table (info)->tls_sec->vma; - relocation -= elf_hash_table (info)->tls_size; if (h != NULL) { @@ -2685,6 +2688,10 @@ cris_elf_gc_sweep_hook (bfd *abfd, break; case R_CRIS_32_DTPREL: + /* This'd be a .dtpreld entry in e.g. debug info. */ + if ((sec->flags & SEC_ALLOC) == 0) + break; + /* Fall through. */ case R_CRIS_16_DTPREL: elf_cris_hash_table (info)->dtpmod_refcount--; if (elf_cris_hash_table (info)->dtpmod_refcount == 0) @@ -3152,8 +3159,17 @@ cris_elf_check_relocs (abfd, info, sec, relocs) on the first input bfd we found that contained dynamic relocs. */ switch (r_type) { - case R_CRIS_16_DTPREL: case R_CRIS_32_DTPREL: + if ((sec->flags & SEC_ALLOC) == 0) + /* This'd be a .dtpreld entry in e.g. debug info. We have + several different switch statements below, but none of + that is needed; we need no preparations for resolving + R_CRIS_32_DTPREL into a non-allocated section (debug + info), so let's just move on to the next + relocation. */ + continue; + /* Fall through. */ + case R_CRIS_16_DTPREL: /* The first .got.plt entry is right after the R_CRIS_DTPMOD entry at index 3. */ if (elf_cris_hash_table (info)->dtpmod_refcount == 0) diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 5db64b0..e15f88e 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -2328,26 +2328,17 @@ ppc_elf_final_write_processing (bfd *abfd, bfd_boolean linker ATTRIBUTE_UNUSED) } static bfd_boolean -is_pic_glink_stub (bfd *abfd, asection *glink, bfd_vma off) +is_nonpic_glink_stub (bfd *abfd, asection *glink, bfd_vma off) { - bfd_byte buf[16]; - unsigned int insn; + bfd_byte buf[GLINK_ENTRY_SIZE]; - if (!bfd_get_section_contents (abfd, glink, buf, off, 16)) + if (!bfd_get_section_contents (abfd, glink, buf, off, GLINK_ENTRY_SIZE)) return FALSE; - insn = bfd_get_32 (abfd, buf); - if ((insn & 0xffff0000) == LWZ_11_30 - && bfd_get_32 (abfd, buf + 4) == MTCTR_11 - && bfd_get_32 (abfd, buf + 8) == BCTR) - return TRUE; - - if ((insn & 0xffff0000) == ADDIS_11_30 - && (bfd_get_32 (abfd, buf + 4) & 0xffff0000) == LWZ_11_11 - && bfd_get_32 (abfd, buf + 8) == MTCTR_11 - && bfd_get_32 (abfd, buf + 12) == BCTR) - return TRUE; - return FALSE; + return ((bfd_get_32 (abfd, buf + 0) & 0xffff0000) == LIS_11 + && (bfd_get_32 (abfd, buf + 4) & 0xffff0000) == LWZ_11_11 + && bfd_get_32 (abfd, buf + 8) == MTCTR_11 + && bfd_get_32 (abfd, buf + 12) == BCTR); } static bfd_boolean @@ -2484,10 +2475,8 @@ ppc_elf_get_synthetic_symtab (bfd *abfd, long symcount, asymbol **syms, multiple stubs for each plt entry. If that is the case then there is no way to associate stubs with their plt entries short of figuring out the GOT pointer value used in the stub. */ - if (!bfd_get_section_contents (abfd, glink, buf, - stub_vma - glink->vma, 4) - || ((bfd_get_32 (abfd, buf) & 0xffff0000) != LIS_11 - && is_pic_glink_stub (abfd, glink, stub_vma - glink->vma - 16))) + if (!is_nonpic_glink_stub (abfd, glink, + glink_vma - GLINK_ENTRY_SIZE - glink->vma)) return 0; slurp_relocs = get_elf_backend_data (abfd)->s->slurp_reloc_table; @@ -2722,7 +2711,7 @@ struct ppc_elf_link_hash_table bfd_vma offset; } tlsld_got; - /* Offset of PltResolve function in glink. */ + /* Offset of branch table to PltResolve function in glink. */ bfd_vma glink_pltresolve; /* Size of reserved GOT entries. */ diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c index 7aadadc..14c4cb0 100644 --- a/bfd/elf32-s390.c +++ b/bfd/elf32-s390.c @@ -1261,7 +1261,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs) && ELF32_R_TYPE (rel->r_info) != R_390_PC32DBL && ELF32_R_TYPE (rel->r_info) != R_390_PC32) || (h != NULL - && (! info->symbolic + && (! SYMBOLIC_BIND (info, h) || h->root.type == bfd_link_hash_defweak || !h->def_regular)))) || (ELIMINATE_COPY_RELOCS @@ -1566,11 +1566,9 @@ elf_s390_adjust_dynamic_symbol (info, h) || h->needs_plt) { if (h->plt.refcount <= 0 - || (! info->shared - && !h->def_dynamic - && !h->ref_dynamic - && h->root.type != bfd_link_hash_undefweak - && h->root.type != bfd_link_hash_undefined)) + || 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 PLT32 reloc in an input file, but the symbol was never referred to by a dynamic @@ -1709,9 +1707,7 @@ allocate_dynrelocs (h, inf) htab = elf_s390_hash_table (info); if (htab->elf.dynamic_sections_created - && h->plt.refcount > 0 - && (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT - || h->root.type != bfd_link_hash_undefweak)) + && h->plt.refcount > 0) { /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ @@ -1840,7 +1836,7 @@ allocate_dynrelocs (h, inf) if (info->shared) { - if (SYMBOL_REFERENCES_LOCAL (info, h)) + if (SYMBOL_CALLS_LOCAL (info, h)) { struct elf_s390_dyn_relocs **pp; @@ -2364,10 +2360,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, dyn = htab->elf.dynamic_sections_created; if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h) || (info->shared - && (info->symbolic - || h->dynindx == -1 - || h->forced_local) - && h->def_regular) + && SYMBOL_REFERENCES_LOCAL (info, h)) || (ELF_ST_VISIBILITY (h->other) && h->root.type == bfd_link_hash_undefweak)) { @@ -2537,8 +2530,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, && r_type != R_390_PC16DBL && r_type != R_390_PC32DBL && r_type != R_390_PC32) - || (h != NULL - && !SYMBOL_REFERENCES_LOCAL (info, h)))) + || !SYMBOL_CALLS_LOCAL (info, h))) || (ELIMINATE_COPY_RELOCS && !info->shared && h != NULL @@ -2580,7 +2572,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, || r_type == R_390_PC32DBL || r_type == R_390_PC32 || !info->shared - || !info->symbolic + || !SYMBOLIC_BIND (info, h) || !h->def_regular)) { outrel.r_info = ELF32_R_INFO (h->dynindx, r_type); @@ -3262,11 +3254,10 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym) The entry in the global offset table will already have been initialized in the relocate_section function. */ if (info->shared - && (info->symbolic - || h->dynindx == -1 - || h->forced_local) - && h->def_regular) + && SYMBOL_REFERENCES_LOCAL (info, h)) { + if (!h->def_regular) + return FALSE; BFD_ASSERT((h->got.offset & 1) != 0); rela.r_info = ELF32_R_INFO (0, R_390_RELATIVE); rela.r_addend = (h->root.u.def.value diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index 1873728..ce82e16 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -2689,7 +2689,6 @@ get_opd_info (asection * sec) } /* Parameters for the qsort hook. */ -static asection *synthetic_opd; static bfd_boolean synthetic_relocatable; /* qsort comparison function for ppc64_elf_get_synthetic_symtab. */ @@ -2707,9 +2706,11 @@ compare_symbols (const void *ap, const void *bp) return 1; /* then .opd symbols. */ - if (a->section == synthetic_opd && b->section != synthetic_opd) + if (strcmp (a->section->name, ".opd") == 0 + && strcmp (b->section->name, ".opd") != 0) return -1; - if (a->section != synthetic_opd && b->section == synthetic_opd) + if (strcmp (a->section->name, ".opd") != 0 + && strcmp (b->section->name, ".opd") == 0) return 1; /* then other code symbols. */ @@ -2863,7 +2864,6 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd, else memcpy (syms, static_syms, (symcount + 1) * sizeof (*syms)); - synthetic_opd = opd; synthetic_relocatable = relocatable; qsort (syms, symcount, sizeof (*syms), compare_symbols); @@ -2881,7 +2881,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd, } i = 0; - if (syms[i]->section == opd) + if (strcmp (syms[i]->section->name, ".opd") == 0) ++i; codesecsym = i; @@ -2898,7 +2898,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd, secsymend = i; for (; i < symcount; ++i) - if (syms[i]->section != opd) + if (strcmp (syms[i]->section->name, ".opd") != 0) break; opdsymend = i; diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c index 7d8795e..21a5864 100644 --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -1228,7 +1228,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs) && ELF64_R_TYPE (rel->r_info) != R_390_PC32DBL && ELF64_R_TYPE (rel->r_info) != R_390_PC64) || (h != NULL - && (! info->symbolic + && (! SYMBOLIC_BIND (info, h) || h->root.type == bfd_link_hash_defweak || !h->def_regular)))) || (ELIMINATE_COPY_RELOCS @@ -1541,11 +1541,9 @@ elf_s390_adjust_dynamic_symbol (info, h) || h->needs_plt) { if (h->plt.refcount <= 0 - || (! info->shared - && !h->def_dynamic - && !h->ref_dynamic - && h->root.type != bfd_link_hash_undefweak - && h->root.type != bfd_link_hash_undefined)) + || 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 PLT32 reloc in an input file, but the symbol was never referred to by a dynamic @@ -1684,9 +1682,7 @@ allocate_dynrelocs (h, inf) htab = elf_s390_hash_table (info); if (htab->elf.dynamic_sections_created - && h->plt.refcount > 0 - && (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT - || h->root.type != bfd_link_hash_undefweak)) + && h->plt.refcount > 0) { /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ @@ -1815,7 +1811,7 @@ allocate_dynrelocs (h, inf) if (info->shared) { - if (SYMBOL_REFERENCES_LOCAL (info, h)) + if (SYMBOL_CALLS_LOCAL (info, h)) { struct elf_s390_dyn_relocs **pp; @@ -2340,10 +2336,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, dyn = htab->elf.dynamic_sections_created; if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h) || (info->shared - && (info->symbolic - || h->dynindx == -1 - || h->forced_local) - && h->def_regular) + && SYMBOL_REFERENCES_LOCAL (info, h)) || (ELF_ST_VISIBILITY (h->other) && h->root.type == bfd_link_hash_undefweak)) { @@ -2519,8 +2512,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, && r_type != R_390_PC32 && r_type != R_390_PC32DBL && r_type != R_390_PC64) - || (h != NULL - && !SYMBOL_REFERENCES_LOCAL (info, h)))) + || !SYMBOL_CALLS_LOCAL (info, h))) || (ELIMINATE_COPY_RELOCS && !info->shared && h != NULL @@ -2563,7 +2555,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, || r_type == R_390_PC32DBL || r_type == R_390_PC64 || !info->shared - || !info->symbolic + || !SYMBOLIC_BIND (info, h) || !h->def_regular)) { outrel.r_info = ELF64_R_INFO (h->dynindx, r_type); @@ -3168,11 +3160,10 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym) The entry in the global offset table will already have been initialized in the relocate_section function. */ if (info->shared - && (info->symbolic - || h->dynindx == -1 - || h->forced_local) - && h->def_regular) + && SYMBOL_REFERENCES_LOCAL (info, h)) { + if (!h->def_regular) + return FALSE; BFD_ASSERT((h->got.offset & 1) != 0); rela.r_info = ELF64_R_INFO (0, R_390_RELATIVE); rela.r_addend = (h->root.u.def.value diff --git a/bfd/version.h b/bfd/version.h index 8fe3dcb..21bfd82 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20090319 +#define BFD_VERSION_DATE 20090324 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 107396e..a88bc6b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,490 @@ +2009-03-24 Jan Kratochvil + + * configure.ac: Initialize the variable $PREFER_CURSES. + * configure: Regenerated. + +2009-03-24 Jan Kratochvil + hooks/post-receive -- Repository for Project Archer.