public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
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
Date: Fri, 23 Mar 2012 14:48:00 -0000 [thread overview]
Message-ID: <20120323144838.25426.qmail@sourceware.org> (raw)
The branch, archer-pmuldoon-python-backtrace has been updated
via b755687278b49a949add8bb903f0dc4f53e35d1b (commit)
via 238a89c5e410f61d2786cffca0a55dcf50325cd4 (commit)
via 7bd3bcfebb31726b090ee1e94a598f7b1ae97ff8 (commit)
via 483b15745ae9f8ea4490ca5fb87cb9c1405785a4 (commit)
via 3fa74e6cd934b778a46812e85aacb75f5bb8ebf0 (commit)
via abef1f2b99a19695e75d2b8caca0409d68377a68 (commit)
via 68a5e2c18948f7654ff9e1ba942e6384223eafd1 (commit)
via 1ee91b8dc930c4a3093ada1ff16e46247143415f (commit)
via de9e84839d6034a7ceeb77c774f2e36e48cbd97d (commit)
via bee9c58b7e871312ed9f00f244dcfc3ea7888c0d (commit)
via 104ac57ff96d3a8854569062910c42f7a9f762af (commit)
via 6b02e7db494f5b445c71de1f59b034854008002b (commit)
via 5371d4e89fdf618acf847a6337a8c91b99c673fa (commit)
via db6edb160e34a79d59886896b36650ac4e089539 (commit)
via c99aab9dc7c3a1bf110176158f87a630c08a719f (commit)
via fda4b74499e5d26b718a51b84ec637e435997fa6 (commit)
via 88a05594363f87bf8fa19b0832c3fa96a61cbcf6 (commit)
via 7be9989f3742c1a538e5736c86165e1aa03bc563 (commit)
via a7f9ca9cb797d653dc7919538e1dfa0c26010331 (commit)
via 4c128abac9c5ae4c9f11f85d842cdc0c666499dc (commit)
via 111bb24e08681edb232d7f8b0ac2b8bed3196fad (commit)
via 442ce9b2cb41503472ed40a869324160b2579d1b (commit)
via 18e847d87b24578d0972f1db0d968a3bf2cc2766 (commit)
via 090670303d7de01450f38a906bfe3752f25ba783 (commit)
via 92ab086d5a3f9dc7e03dfe21c98b70274fc411ea (commit)
via 6080f942dde1a88ecfa33cead8fad514b87b6d7b (commit)
via e9051f959054c7c0e19515f8174d894726d345e9 (commit)
via 856b6d33858f363c9f7b4f1276ffc1c35f336cf7 (commit)
via b878b3dd27664f3c1aea39f6bc5173c6054a0b4b (commit)
via b8ccb946064deec565e9649fb1eba34817f5fded (commit)
via a653dea6799b8e39d42cb7e133541a69e30cb238 (commit)
via 9faa4a2a8ed056f9d999a7f0559e8e581e5a0bbc (commit)
via c44fcf813d108cd1e63c067117f72f6cc130ad53 (commit)
via 23f3d45fa5cccdb7bb331f23484555e662a2ae4a (commit)
via 03ae95e867a4c94f0bdf7a2358cedc39a19a1fdb (commit)
via 35d2e24b5a91d04403d10514e896f68df8b40dea (commit)
via dff5a25c1f0ade13d791de1864948696381debeb (commit)
via f0a040c143cbcec1244eebc0970b32013fb98a8a (commit)
via 107d4a8ed2758747ffea0ca6ce5796f8dba96157 (commit)
from 999c175b15ed114fa5e7ffe0aff7891cd16845af (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit b755687278b49a949add8bb903f0dc4f53e35d1b
Merge: 999c175 238a89c
Author: Phil Muldoon <pmuldoon@redhat.com>
Date: Fri Mar 23 14:48:23 2012 +0000
Merge remote-tracking branch 'gdb/master' into archer-pmuldoon-python-backtrace
commit 238a89c5e410f61d2786cffca0a55dcf50325cd4
Author: Alan Modra <amodra@bigpond.net.au>
Date: Fri Mar 23 09:34:57 2012 +0000
* elf.c (assign_file_positions_for_non_load_sections): Don't warn
on empty alloc sections.
commit 7bd3bcfebb31726b090ee1e94a598f7b1ae97ff8
Author: Alan Modra <amodra@bigpond.net.au>
Date: Fri Mar 23 09:27:40 2012 +0000
* linker.c (_bfd_nearby_section): New function, split out from..
(fix_syms): ..here.
* bfd-in.h (_bfd_nearby_section): Declare.
* bfd-in2.h: Regenerate.
* elflink.c (elf_link_input_bfd): Don't use text_index_section or
data_index_section with ld -q or ld -r output relocs against
stripped output sections. Instead use _bfd_nearby_section.
commit 483b15745ae9f8ea4490ca5fb87cb9c1405785a4
Author: Alan Modra <amodra@bigpond.net.au>
Date: Fri Mar 23 06:41:20 2012 +0000
PR binutils/13894
* elf64-ppc.c (opd_entry_value): Read full symbol table when
sym hashes unavailable.
commit 3fa74e6cd934b778a46812e85aacb75f5bb8ebf0
Author: Mike Frysinger <vapier@gentoo.org>
Date: Fri Mar 23 04:30:55 2012 +0000
sim: testsuite: regen configure after rl78 addition
commit abef1f2b99a19695e75d2b8caca0409d68377a68
Author: Mike Frysinger <vapier@gentoo.org>
Date: Fri Mar 23 04:00:23 2012 +0000
sim: rx: fix warnings with AC_DEFINE
This lets `autoheader` work again.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
commit 68a5e2c18948f7654ff9e1ba942e6384223eafd1
Author: Mike Frysinger <vapier@gentoo.org>
Date: Fri Mar 23 03:27:44 2012 +0000
sim: sync build_warnings handling with gdb
The sim code gets the logic for SIM_AC_OPTION_WARNINGS from gdb, but
it hasn't been updated in a good long while. Sync with the latest
gdb code.
There is a sim specific change in here: we disable -Werror for now.
This is because all sim code atm contains warnings. Will probably
have to slowly add a white list of targets which can tolerate this
until everyone is updated.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
commit 1ee91b8dc930c4a3093ada1ff16e46247143415f
Author: gdbadmin <gdbadmin@sourceware.org>
Date: Fri Mar 23 00:00:33 2012 +0000
*** empty log message ***
commit de9e84839d6034a7ceeb77c774f2e36e48cbd97d
Author: Alan Modra <amodra@bigpond.net.au>
Date: Thu Mar 22 23:00:05 2012 +0000
daily update
commit bee9c58b7e871312ed9f00f244dcfc3ea7888c0d
Author: Richard Henderson <rth@redhat.com>
Date: Thu Mar 22 20:36:34 2012 +0000
* sparc-linux-nat.c (_initialize_sparc_linux_nat): Fix prototype.
* sparc-nat.c (sparc_xfer_wcookie): Make static.
commit 104ac57ff96d3a8854569062910c42f7a9f762af
Author: Richard Henderson <rth@redhat.com>
Date: Thu Mar 22 20:33:39 2012 +0000
* jit.c (jit_read_code_entry): Compute alignment and offset of
int64_t member before computing entry_size.
commit 6b02e7db494f5b445c71de1f59b034854008002b
Author: sivachandra <sivachandra>
Date: Thu Mar 22 08:10:40 2012 +0000
2012-03-14 Siva Chandra <sivachandra@google.com>
Python scripting: Add new method Value.referenced_value to
gdb.Value which can dereference pointer as well as reference
values.
* NEWS: Add entry under 'Python scripting' about the new method
Value.referenced_value on gdb.Value objects.
* python/py-value.c (valpy_referenced_value): New function
defining a new method on gdb.Value objects which can dereference
pointer and reference values.
* testsuite/gdb.python/py-value.cc: Add test case for
testing the methodology exposing C++ values to Python.
* testsuite/gdb.python/py-value-cc.exp: Add tests testing the
methodology exposing C++ values to Python.
* testsuite/gdb.python/Makefile.in: Add py-value-cc to
EXECUTABLES.
* docs/gdb.texinfo (Python API/Values From Inferior): Add
description about the new method Value.referenced_value. Add
description on how Value.dereference is different (and similar)
to Value.referenced_value.
commit 5371d4e89fdf618acf847a6337a8c91b99c673fa
Author: sivachandra <sivachandra>
Date: Thu Mar 22 07:48:33 2012 +0000
2012-03-22 Siva Chandra Reddy <sivachandra@google.com>
* MAINTAINERS (Write After Approval): Add myself to the list.
commit db6edb160e34a79d59886896b36650ac4e089539
Author: gdbadmin <gdbadmin@sourceware.org>
Date: Thu Mar 22 00:00:03 2012 +0000
*** empty log message ***
-----------------------------------------------------------------------
Summary of changes:
bfd/ChangeLog | 51 +++
bfd/bfd-in.h | 3 +
bfd/bfd-in2.h | 3 +
bfd/config.in | 3 +
bfd/configure | 16 +
bfd/configure.in | 3 +
bfd/elf.c | 13 +-
bfd/elf32-i386.c | 1 +
bfd/elf32-tic6x.c | 3 +
bfd/elf64-ppc.c | 9 +-
bfd/elf64-x86-64.c | 3 +-
bfd/elflink.c | 21 +-
bfd/linker.c | 143 ++++----
bfd/plugin.c | 37 ++
bfd/version.h | 2 +-
gdb/.gitignore | 2 +
gdb/ChangeLog | 154 ++++++++-
gdb/MAINTAINERS | 1 +
gdb/NEWS | 10 +
gdb/amd64-linux-nat.c | 4 +-
gdb/amd64-tdep.c | 2 +-
gdb/arm-linux-nat.c | 2 +-
gdb/ax-gdb.c | 2 +-
gdb/doc/ChangeLog | 14 +
gdb/doc/gdb.texinfo | 105 +++++-
gdb/dwarf2expr.c | 52 ++-
gdb/dwarf2expr.h | 25 +-
gdb/dwarf2loc.c | 45 ++-
gdb/dwarf2loc.h | 6 +-
gdb/dwarf2read.c | 365 ++++++++++--------
gdb/expprint.c | 3 +-
gdb/expression.h | 2 +
gdb/gdbserver/.gitignore | 8 +
gdb/gdbserver/ChangeLog | 23 ++
gdb/gdbserver/linux-arm-low.c | 2 +-
gdb/gdbserver/linux-low.c | 10 +-
gdb/gdbserver/linux-low.h | 5 +-
gdb/gdbserver/linux-x86-low.c | 4 +-
gdb/gdbserver/server.c | 24 +-
gdb/gnu-v3-abi.c | 2 +-
gdb/ia64-linux-nat.c | 2 +-
gdb/jit.c | 13 +-
gdb/linux-nat.c | 16 +-
gdb/linux-nat.h | 6 +-
gdb/main.c | 121 ++++--
gdb/ppc-linux-nat.c | 2 +-
gdb/procfs.c | 2 +-
gdb/python/py-auto-load.c | 15 +-
gdb/python/py-value.c | 43 ++
gdb/remote.c | 2 +
gdb/sparc-linux-nat.c | 2 +-
gdb/sparc-nat.c | 2 +-
gdb/symtab.c | 2 +-
gdb/testsuite/ChangeLog | 22 +
gdb/testsuite/gdb.base/auxv.c | 15 +
gdb/testsuite/gdb.base/auxv.exp | 7 +-
gdb/testsuite/gdb.gdb/selftest.exp | 20 +-
gdb/testsuite/gdb.python/Makefile.in | 2 +-
gdb/testsuite/gdb.python/py-value-cc.exp | 48 +++
gdb/testsuite/gdb.python/py-value.cc | 39 ++
gdb/version.in | 2 +-
sim/common/ChangeLog | 6 +
sim/common/acinclude.m4 | 64 ++--
sim/rx/ChangeLog | 5 +
sim/rx/configure.ac | 6 +-
sim/testsuite/ChangeLog | 613 ------------------------------
sim/testsuite/configure | 3 +
sim/testsuite/sim/arm/ChangeLog | 117 ++++++
sim/testsuite/sim/cris/ChangeLog | 154 ++++++++
sim/testsuite/sim/cris/asm/addqpc.ms | 2 +-
sim/testsuite/sim/cris/asm/boundmv32.ms | 2 +-
sim/testsuite/sim/cris/asm/fidxd.ms | 2 +-
sim/testsuite/sim/cris/asm/fidxi.ms | 2 +-
sim/testsuite/sim/cris/asm/ftagd.ms | 2 +-
sim/testsuite/sim/cris/asm/ftagi.ms | 2 +-
sim/testsuite/sim/cris/asm/halt.ms | 2 +-
sim/testsuite/sim/cris/asm/io6.ms | 2 +-
sim/testsuite/sim/cris/asm/io7.ms | 2 +-
sim/testsuite/sim/cris/asm/io8.ms | 2 +-
sim/testsuite/sim/cris/asm/io9.ms | 2 +-
sim/testsuite/sim/cris/asm/movecpc.ms | 2 +-
sim/testsuite/sim/cris/asm/movempc.ms | 2 +-
sim/testsuite/sim/cris/asm/movepcb.ms | 2 +-
sim/testsuite/sim/cris/asm/movepcd.ms | 2 +-
sim/testsuite/sim/cris/asm/movepcw.ms | 2 +-
sim/testsuite/sim/cris/asm/moveqpc.ms | 2 +-
sim/testsuite/sim/cris/asm/moverbpc.ms | 2 +-
sim/testsuite/sim/cris/asm/moverdpc.ms | 2 +-
sim/testsuite/sim/cris/asm/moverpcb.ms | 2 +-
sim/testsuite/sim/cris/asm/moverpcw.ms | 2 +-
sim/testsuite/sim/cris/asm/moverwpc.ms | 2 +-
sim/testsuite/sim/cris/asm/movppc.ms | 2 +-
sim/testsuite/sim/cris/asm/movrss.ms | 2 +-
sim/testsuite/sim/cris/asm/movscpc.ms | 2 +-
sim/testsuite/sim/cris/asm/movsmpc.ms | 2 +-
sim/testsuite/sim/cris/asm/movsrpc.ms | 2 +-
sim/testsuite/sim/cris/asm/movssr.ms | 2 +-
sim/testsuite/sim/cris/asm/movucpc.ms | 2 +-
sim/testsuite/sim/cris/asm/movumpc.ms | 2 +-
sim/testsuite/sim/cris/asm/movurpc.ms | 2 +-
sim/testsuite/sim/cris/asm/msteppc1.ms | 2 +-
sim/testsuite/sim/cris/asm/msteppc2.ms | 2 +-
sim/testsuite/sim/cris/asm/msteppc3.ms | 2 +-
sim/testsuite/sim/cris/asm/rfg.ms | 2 +-
sim/testsuite/sim/cris/asm/sbfs.ms | 2 +-
sim/testsuite/sim/cris/asm/subqpc.ms | 2 +-
sim/testsuite/sim/fr30/ChangeLog | 112 ++++++
sim/testsuite/sim/frv/ChangeLog | 76 ++++
sim/testsuite/sim/m32r/ChangeLog | 122 ++++++
sim/testsuite/sim/v850/ChangeLog | 19 +
110 files changed, 1847 insertions(+), 1090 deletions(-)
create mode 100644 gdb/testsuite/gdb.python/py-value-cc.exp
create mode 100644 gdb/testsuite/gdb.python/py-value.cc
create mode 100644 sim/testsuite/sim/arm/ChangeLog
create mode 100644 sim/testsuite/sim/cris/ChangeLog
create mode 100644 sim/testsuite/sim/fr30/ChangeLog
create mode 100644 sim/testsuite/sim/frv/ChangeLog
create mode 100644 sim/testsuite/sim/m32r/ChangeLog
create mode 100644 sim/testsuite/sim/v850/ChangeLog
First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index b9849f8..04c3b31 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,54 @@
+2012-03-23 Alan Modra <amodra@gmail.com>
+
+ * elf.c (assign_file_positions_for_non_load_sections): Don't warn
+ on empty alloc sections.
+
+2012-03-23 Alan Modra <amodra@gmail.com>
+
+ * linker.c (_bfd_nearby_section): New function, split out from..
+ (fix_syms): ..here.
+ * bfd-in.h (_bfd_nearby_section): Declare.
+ * bfd-in2.h: Regenerate.
+ * elflink.c (elf_link_input_bfd): Don't use text_index_section or
+ data_index_section with ld -q or ld -r output relocs against
+ stripped output sections. Instead use _bfd_nearby_section.
+
+2012-03-23 Alan Modra <amodra@gmail.com>
+
+ PR binutils/13894
+ * elf64-ppc.c (opd_entry_value): Read full symbol table when
+ sym hashes unavailable.
+
+2012-03-21 Eliot Dresselhaus <eliot@sonic.net>
+
+ * elf32-tic6x.c (elf32_tic6x_merge_private_bfd_data): Return TRUE
+ for non-C6X objects.
+
+2012-03-20 Kai Tietz <ktietz@redhat.com>
+
+ PR ld/12742
+ * configure.in (AC_CHECK_HEADERS): Test for windows.h and dlfcn.h.
+ * plugin.c: Guard include of dlfcn.h if HAVE_DLFCN_H is defined.
+ Add windows.h header include if HAVE_WINDOWS_H is defined.
+ (dlerror): New static function if windows variant is used instead
+ of dlfcn.h.
+ (dlclose): Likewise.
+ (dlopen): Likewise.
+ (dlsym): Likewise.
+ * configure: Regenerated.
+ * config.in: Regenerated.
+
+2012-03-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/13880
+ * elf32-i386.c (elf_i386_relocate_section): Don't issue an error
+ for R_386_GOTOFF relocation against protected function if
+ SYMBOLIC_BIND is true.
+
+ * elf64-x86-64.c (elf_x86_64_relocate_section): Don't issue an
+ error for R_X86_64_GOTOFF64 relocation against protected function
+ when building executable or SYMBOLIC_BIND is true.
+
2012-03-16 Roland McGrath <mcgrathr@google.com>
* config.bfd: Handle x86_64-*-nacl*.
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 40ed786..c331f3b 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -705,6 +705,9 @@ extern int bfd_get_sign_extend_vma
extern struct bfd_section *_bfd_elf_tls_setup
(bfd *, struct bfd_link_info *);
+extern struct bfd_section *
+_bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
+
extern void _bfd_fix_excluded_sec_syms
(bfd *, struct bfd_link_info *);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index bea3a05..61513f2 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -712,6 +712,9 @@ extern int bfd_get_sign_extend_vma
extern struct bfd_section *_bfd_elf_tls_setup
(bfd *, struct bfd_link_info *);
+extern struct bfd_section *
+_bfd_nearby_section (bfd *, struct bfd_section *, bfd_vma);
+
extern void _bfd_fix_excluded_sec_syms
(bfd *, struct bfd_link_info *);
diff --git a/bfd/config.in b/bfd/config.in
index 98157e1..cb53b14 100644
--- a/bfd/config.in
+++ b/bfd/config.in
@@ -245,6 +245,9 @@
/* Define if <sys/procfs.h> has win32_pstatus_t. */
#undef HAVE_WIN32_PSTATUS_T
+/* Define to 1 if you have the <windows.h> header file. */
+#undef HAVE_WINDOWS_H
+
/* Define to 1 if you have the <zlib.h> header file. */
#undef HAVE_ZLIB_H
diff --git a/bfd/configure b/bfd/configure
index cff9b26..58a57ba 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -13508,6 +13508,22 @@ fi
fi
+
+for ac_header in windows.h dlfcn.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether string.h and strings.h may both be included" >&5
$as_echo_n "checking whether string.h and strings.h may both be included... " >&6; }
if test "${gcc_cv_header_string+set}" = set; then :
diff --git a/bfd/configure.in b/bfd/configure.in
index c40c825..f443915 100644
--- a/bfd/configure.in
+++ b/bfd/configure.in
@@ -190,6 +190,9 @@ AC_CHECK_HEADERS(fcntl.h sys/file.h sys/time.h sys/stat.h)
GCC_HEADER_STDINT(bfd_stdint.h)
AC_HEADER_TIME
AC_HEADER_DIRENT
+
+AC_CHECK_HEADERS(windows.h dlfcn.h)
+
ACX_HEADER_STRING
AC_CHECK_FUNCS(fcntl getpagesize setitimer sysconf fdopen getuid getgid fileno)
AC_CHECK_FUNCS(strtoull)
diff --git a/bfd/elf.c b/bfd/elf.c
index 5aabeeb..df43a6a 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -4820,12 +4820,13 @@ assign_file_positions_for_non_load_sections (bfd *abfd,
BFD_ASSERT (hdr->sh_offset == hdr->bfd_section->filepos);
else if ((hdr->sh_flags & SHF_ALLOC) != 0)
{
- (*_bfd_error_handler)
- (_("%B: warning: allocated section `%s' not in segment"),
- abfd,
- (hdr->bfd_section == NULL
- ? "*unknown*"
- : hdr->bfd_section->name));
+ if (hdr->sh_size != 0)
+ (*_bfd_error_handler)
+ (_("%B: warning: allocated section `%s' not in segment"),
+ abfd,
+ (hdr->bfd_section == NULL
+ ? "*unknown*"
+ : hdr->bfd_section->name));
/* We don't need to page align empty sections. */
if ((abfd->flags & D_PAGED) != 0 && hdr->sh_size != 0)
off += vma_page_aligned_bias (hdr->sh_addr, off,
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index 4ae2166..f35e3c2 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -3503,6 +3503,7 @@ elf_i386_relocate_section (bfd *output_bfd,
return FALSE;
}
else if (!info->executable
+ && !SYMBOLIC_BIND (info, h)
&& h->type == STT_FUNC
&& ELF_ST_VISIBILITY (h->other) == STV_PROTECTED)
{
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
index 6d6b59b..8abfdd0 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
@@ -4011,6 +4011,9 @@ elf32_tic6x_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
if (!_bfd_generic_verify_endian_match (ibfd, obfd))
return FALSE;
+ if (! is_tic6x_elf (ibfd) || ! is_tic6x_elf (obfd))
+ return TRUE;
+
if (!elf32_tic6x_merge_attributes (ibfd, obfd))
return FALSE;
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index f4f5d0b..e7a01c2 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -5585,15 +5585,18 @@ opd_entry_value (asection *opd_sec,
unsigned long symndx = ELF64_R_SYM (look->r_info);
asection *sec;
- if (symndx < symtab_hdr->sh_info)
+ if (symndx < symtab_hdr->sh_info
+ || elf_sym_hashes (opd_bfd) == NULL)
{
Elf_Internal_Sym *sym;
sym = (Elf_Internal_Sym *) symtab_hdr->contents;
if (sym == NULL)
{
- sym = bfd_elf_get_elf_syms (opd_bfd, symtab_hdr,
- symtab_hdr->sh_info,
+ size_t symcnt = symtab_hdr->sh_info;
+ if (elf_sym_hashes (opd_bfd) == NULL)
+ symcnt = symtab_hdr->sh_size / symtab_hdr->sh_entsize;
+ sym = bfd_elf_get_elf_syms (opd_bfd, symtab_hdr, symcnt,
0, NULL, NULL, NULL);
if (sym == NULL)
break;
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index f2f803a..cc5ee42 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -3464,8 +3464,9 @@ elf_x86_64_relocate_section (bfd *output_bfd,
/* Check to make sure it isn't a protected function symbol
for shared library since it may not be local when used
as function address. */
- if (info->shared
+ if (!info->executable
&& h
+ && !SYMBOLIC_BIND (info, h)
&& h->def_regular
&& h->type == STT_FUNC
&& ELF_ST_VISIBILITY (h->other) == STV_PROTECTED)
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 7f9ec60..3236911 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -9747,23 +9747,12 @@ elf_link_input_bfd (struct elf_final_link_info *finfo, bfd *input_bfd)
r_symndx = osec->target_index;
if (r_symndx == STN_UNDEF)
{
- struct elf_link_hash_table *htab;
- asection *oi;
-
- htab = elf_hash_table (finfo->info);
- oi = htab->text_index_section;
- if ((osec->flags & SEC_READONLY) == 0
- && htab->data_index_section != NULL)
- oi = htab->data_index_section;
-
- if (oi != NULL)
- {
- irela->r_addend += osec->vma - oi->vma;
- r_symndx = oi->target_index;
- }
+ irela->r_addend += osec->vma;
+ osec = _bfd_nearby_section (output_bfd, osec,
+ osec->vma);
+ irela->r_addend -= osec->vma;
+ r_symndx = osec->target_index;
}
-
- BFD_ASSERT (r_symndx != STN_UNDEF);
}
}
diff --git a/bfd/linker.c b/bfd/linker.c
index 0404474..2f8ecbb 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -3130,6 +3130,81 @@ _bfd_generic_section_already_linked (bfd *abfd ATTRIBUTE_UNUSED,
return FALSE;
}
+/* Choose a neighbouring section to S in OBFD that will be output, or
+ the absolute section if ADDR is out of bounds of the neighbours. */
+
+asection *
+_bfd_nearby_section (bfd *obfd, asection *s, bfd_vma addr)
+{
+ asection *next, *prev, *best;
+
+ /* Find preceding kept section. */
+ for (prev = s->prev; prev != NULL; prev = prev->prev)
+ if ((prev->flags & SEC_EXCLUDE) == 0
+ && !bfd_section_removed_from_list (obfd, prev))
+ break;
+
+ /* Find following kept section. Start at prev->next because
+ other sections may have been added after S was removed. */
+ if (s->prev != NULL)
+ next = s->prev->next;
+ else
+ next = s->owner->sections;
+ for (; next != NULL; next = next->next)
+ if ((next->flags & SEC_EXCLUDE) == 0
+ && !bfd_section_removed_from_list (obfd, next))
+ break;
+
+ /* Choose better of two sections, based on flags. The idea
+ is to choose a section that will be in the same segment
+ as S would have been if it was kept. */
+ best = next;
+ if (prev == NULL)
+ {
+ if (next == NULL)
+ best = bfd_abs_section_ptr;
+ }
+ else if (next == NULL)
+ best = prev;
+ else if (((prev->flags ^ next->flags)
+ & (SEC_ALLOC | SEC_THREAD_LOCAL | SEC_LOAD)) != 0)
+ {
+ if (((next->flags ^ s->flags)
+ & (SEC_ALLOC | SEC_THREAD_LOCAL)) != 0
+ /* We prefer to choose a loaded section. Section S
+ doesn't have SEC_LOAD set (it being excluded, that
+ part of the flag processing didn't happen) so we
+ can't compare that flag to those of NEXT and PREV. */
+ || ((prev->flags & SEC_LOAD) != 0
+ && (next->flags & SEC_LOAD) == 0))
+ best = prev;
+ }
+ else if (((prev->flags ^ next->flags) & SEC_READONLY) != 0)
+ {
+ if (((next->flags ^ s->flags) & SEC_READONLY) != 0)
+ best = prev;
+ }
+ else if (((prev->flags ^ next->flags) & SEC_CODE) != 0)
+ {
+ if (((next->flags ^ s->flags) & SEC_CODE) != 0)
+ best = prev;
+ }
+ else
+ {
+ /* Flags we care about are the same. Prefer the following
+ section if that will result in a positive valued sym. */
+ if (addr < next->vma)
+ best = prev;
+ }
+
+ /* Refuse to choose a section for which we are out of bounds. */
+ /* ??? This may make most of the above moot. */
+ if (addr < best->vma || addr > best->vma + best->size)
+ best = bfd_abs_section_ptr;
+
+ return best;
+}
+
/* Convert symbols in excluded output sections to use a kept section. */
static bfd_boolean
@@ -3146,74 +3221,10 @@ fix_syms (struct bfd_link_hash_entry *h, void *data)
&& (s->output_section->flags & SEC_EXCLUDE) != 0
&& bfd_section_removed_from_list (obfd, s->output_section))
{
- asection *op, *op1;
+ asection *op;
h->u.def.value += s->output_offset + s->output_section->vma;
-
- /* Find preceding kept section. */
- for (op1 = s->output_section->prev; op1 != NULL; op1 = op1->prev)
- if ((op1->flags & SEC_EXCLUDE) == 0
- && !bfd_section_removed_from_list (obfd, op1))
- break;
-
- /* Find following kept section. Start at prev->next because
- other sections may have been added after S was removed. */
- if (s->output_section->prev != NULL)
- op = s->output_section->prev->next;
- else
- op = s->output_section->owner->sections;
- for (; op != NULL; op = op->next)
- if ((op->flags & SEC_EXCLUDE) == 0
- && !bfd_section_removed_from_list (obfd, op))
- break;
-
- /* Choose better of two sections, based on flags. The idea
- is to choose a section that will be in the same segment
- as S would have been if it was kept. */
- if (op1 == NULL)
- {
- if (op == NULL)
- op = bfd_abs_section_ptr;
- }
- else if (op == NULL)
- op = op1;
- else if (((op1->flags ^ op->flags)
- & (SEC_ALLOC | SEC_THREAD_LOCAL | SEC_LOAD)) != 0)
- {
- if (((op->flags ^ s->flags)
- & (SEC_ALLOC | SEC_THREAD_LOCAL)) != 0
- /* We prefer to choose a loaded section. Section S
- doesn't have SEC_LOAD set (it being excluded, that
- part of the flag processing didn't happen) so we
- can't compare that flag to those of OP and OP1. */
- || ((op1->flags & SEC_LOAD) != 0
- && (op->flags & SEC_LOAD) == 0))
- op = op1;
- }
- else if (((op1->flags ^ op->flags) & SEC_READONLY) != 0)
- {
- if (((op->flags ^ s->flags) & SEC_READONLY) != 0)
- op = op1;
- }
- else if (((op1->flags ^ op->flags) & SEC_CODE) != 0)
- {
- if (((op->flags ^ s->flags) & SEC_CODE) != 0)
- op = op1;
- }
- else
- {
- /* Flags we care about are the same. Prefer the following
- section if that will result in a positive valued sym. */
- if (h->u.def.value < op->vma)
- op = op1;
- }
-
- /* Refuse to choose a section for which we are out of bounds. */
- /* ??? This may make most of the above moot. */
- if (h->u.def.value < op->vma
- || h->u.def.value > op->vma + op->size)
- op = bfd_abs_section_ptr;
-
+ op = _bfd_nearby_section (obfd, s->output_section, h->u.def.value);
h->u.def.value -= op->vma;
h->u.def.section = op;
}
diff --git a/bfd/plugin.c b/bfd/plugin.c
index 064e273..0a29e37 100644
--- a/bfd/plugin.c
+++ b/bfd/plugin.c
@@ -25,7 +25,13 @@
#if BFD_SUPPORTS_PLUGINS
#include <assert.h>
+#ifdef HAVE_DLFCN_H
#include <dlfcn.h>
+#elif defined (HAVE_WINDOWS_H)
+#include <windows.h>
+#else
+#error Unknown how to handle dynamic-load-libraries.
+#endif
#include <stdarg.h>
#include "plugin-api.h"
#include "sysdep.h"
@@ -34,6 +40,37 @@
#include "libiberty.h"
#include <dirent.h>
+#if !defined (HAVE_DLFCN_H) && defined (HAVE_WINDOWS_H)
+
+#define RTLD_NOW 0 /* Dummy value. */
+
+static void *
+dlopen (const char *file, int mode ATTRIBUTE_UNUSED)
+{
+ return LoadLibrary (file);
+}
+
+static void *
+dlsym (void *handle, const char *name)
+{
+ return GetProcAddress (handle, name);
+}
+
+static int ATTRIBUTE_UNUSED
+dlclose (void *handle)
+{
+ FreeLibrary (handle);
+ return 0;
+}
+
+static const char *
+dlerror (void)
+{
+ return "Unable to load DLL.";
+}
+
+#endif /* !defined (HAVE_DLFCN_H) && defined (HAVE_WINDOWS_H) */
+
#define bfd_plugin_close_and_cleanup _bfd_generic_close_and_cleanup
#define bfd_plugin_bfd_free_cached_info _bfd_generic_bfd_free_cached_info
#define bfd_plugin_new_section_hook _bfd_generic_new_section_hook
diff --git a/bfd/version.h b/bfd/version.h
index 241c6fe..afd724b 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20120319
+#define BFD_VERSION_DATE 20120323
#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/.gitignore b/gdb/.gitignore
index f0cbd8c..7a0dd1a 100644
--- a/gdb/.gitignore
+++ b/gdb/.gitignore
@@ -7,7 +7,9 @@
hooks/post-receive
--
Repository for Project Archer.
next reply other threads:[~2012-03-23 14:48 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-23 14:48 pmuldoon [this message]
-- strict thread matches above, loose matches on Subject: below --
2013-02-26 10:18 pmuldoon
2013-02-02 13:02 pmuldoon
2013-01-04 11:43 pmuldoon
2012-11-28 14:55 pmuldoon
2012-11-23 16:55 pmuldoon
2012-11-09 15:09 pmuldoon
2012-10-22 13:01 pmuldoon
2012-09-07 13:38 pmuldoon
2012-09-04 12:17 pmuldoon
2012-09-04 12:13 pmuldoon
2012-08-30 16:58 pmuldoon
2012-08-23 14:56 pmuldoon
2012-08-14 16:08 pmuldoon
2012-08-09 17:02 pmuldoon
2012-08-01 17:00 pmuldoon
2012-07-23 19:41 pmuldoon
2012-07-19 12:40 pmuldoon
2012-07-18 14:22 pmuldoon
2012-07-11 14:21 pmuldoon
2012-06-25 17:43 pmuldoon
2012-06-21 11:12 pmuldoon
2012-06-14 10:27 pmuldoon
2012-06-13 13:52 pmuldoon
2012-06-06 10:42 pmuldoon
2012-05-22 12:36 pmuldoon
2012-04-26 13:31 pmuldoon
2012-04-10 19:22 pmuldoon
2012-04-04 15:05 pmuldoon
2012-03-27 16:42 pmuldoon
2012-03-19 15:08 pmuldoon
2012-03-12 13:42 pmuldoon
2012-03-05 15:58 pmuldoon
2012-02-20 17:52 pmuldoon
2012-02-13 10:41 pmuldoon
2012-01-23 16:39 pmuldoon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120323144838.25426.qmail@sourceware.org \
--to=pmuldoon@sourceware.org \
--cc=archer-commits@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).