Tom Tromey [Fri, 11 Nov 2011 16:56:47 +0000 (16:56 +0000)]
* gdb.texinfo (Compilation): Don't mention -gdwarf-2. Link to GCC
manual.
(Variables): Don't mention -gdwarf-2. Link to Compilation node.
(Macros): Add a footnote.
(C): Remove paragraph about compiler options.
(C Constants): Mention wide character and string constants.
(C Plus Plus Expressions): Update compiler option advice. Mention
using declarations. Mention ADL. Remove old HP compiler
information.
Joel Brobecker [Thu, 10 Nov 2011 17:14:41 +0000 (17:14 +0000)]
read_frame_register_value and big endian arches
The read_frame_register_value function as it was implemented introduced
a regression on big-endian targets. The problem appears when trying to
get the value of an entity stored inside a register, and when the size
of the entity is smaller than the size of the register. In that case,
we were always reading the first N bytes of the register, which is wrong
for big-endian architectures, where we need to read the last N bytes of
the register.
gdb/ChangeLog:
* findvar.c (read_frame_register_value): Read correct bytes from
register on big-endian architectures.
Joel Brobecker [Thu, 10 Nov 2011 16:36:18 +0000 (16:36 +0000)]
[procfs] /proc/.../map file descriptor leak
When opening the procfs map file, we create a cleanup routine to make
sure that the associated file descriptor gets closed, but we never
call the cleanup. So the FD gets leaked.
gdb/ChangeLog:
* procfs.c (iterate_over_mappings): Call do_cleanups before
returning.
Tom Tromey [Wed, 9 Nov 2011 19:50:15 +0000 (19:50 +0000)]
gdb
PR c++/13342:
* valops.c (value_full_object): Return early if real type is
smaller than the enclosing type.
gdb/testsuite
* gdb.cp/destrprint.exp: New file.
* gdb.cp/destrprint.cc: New file.
Meador Inge [Wed, 9 Nov 2011 00:53:40 +0000 (00:53 +0000)]
gdb/
* arm-tdep.c (thumb_analyze_prologue): Always fallback on the SP
register when the frame can't be determined.
* arm-tdep.c (arm_analyze_prologue): Ditto.
gdb/testsuite/
* gdb.arch/thumb-prologue.c (switch_stack_to_same): New test function.
(switch_stack_to_other): New test function.
* gdb.arch/thumb-prologue.exp: New test cases.
Alan Modra [Tue, 8 Nov 2011 13:06:03 +0000 (13:06 +0000)]
bfd/
* elf64-ppc.c (struct ppc64_elf_obj_tdata): Rename
ha_relocs_not_using_r2 to unexpected_toc_insn.
(ok_lo_toc_insn): New function.
(ppc64_elf_edit_toc): Check insn on lo toc reloc. Emit warning.
(ppc64_elf_relocate_section): Don't check insn on lo toc reloc here.
Handle addic on lo toc reloc.
ld/testsuite/
* ld-powerpc/powerpc.exp: Expect ld warnings for tocopt test.
* ld-powerpc/tocopt.out: New file.
Mike Frysinger [Mon, 7 Nov 2011 16:28:52 +0000 (16:28 +0000)]
sim: dv-cfi: check for posix_fallocate
Some systems (like OS X) do not have posix_fallocate. Add a configure
check for it before we try to use it. This is less work than trying
to support old systems.
URL: http://sourceware.org/bugzilla/show_bug.cgi?id=13161 Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Joel Brobecker [Mon, 7 Nov 2011 14:45:09 +0000 (14:45 +0000)]
[gdbserver] Fix watchpoint support on Windows
Watchpoint support doesn't work anymore when using gdbserver on Windows.
They just never trigger.
The problem comes from the fact that we always set the debug registers
to zero, no matter what. This in turn comes from the fact that we
use i386_low_insert_watchpoint to compute the DR values:
This function saves the new values in debug_reg_state. However,
the values we actually use when setting the DR registers are
taken from two different globals:
These are really never actually changed (their value is set from
the DR values read from the inferior, but since we never change
them, in practice, they never change).
The fix is to use the values provided by debug_reg_state, and
to eliminate the two dr_[...] globals.
gdb/gdbserver/ChangeLog:
* win32-i386-low.c (dr_status_mirror, dr_control_mirror): Delete.
(i386_dr_low_get_control, i386_dr_low_get_status): Use
dr_status_mirror and dr_control_mirror from debug_reg_state.
(i386_dr_low_get_status): Use debug_reg_state.dr_status_mirror
(i386_initial_stuff): Remove use of deleted globals.
(i386_get_thread_context, i386_set_thread_context,
i386_thread_added): Use dr_status_mirror and dr_control_mirror
from debug_reg_state.
Dave Anglin [Sun, 6 Nov 2011 20:25:17 +0000 (20:25 +0000)]
PR ld/13387
* elf32-hppa.c (elf32_hppa_hide_symbol): Make STT_GNU_IFUNC symbol
go through PLT. Reset plt field with init_plt_offset.
(elf32_hppa_adjust_dynamic_symbol): Ensure that a PLT slot is
allocated for symbols referenced by a plabel.
* configure.ac: Add --with-lib-path option. Define LIB_PATH and
NATIVE_LINKER.
* Makefile.am (AM_CPPFLAGS): Define TOOLLIBDIR.
* options.cc (General_options::finalize): Use library search path
from configure script if specified. If not native and no sysroot,
only search TOOLLIBDIR.
* options.h (Search_directory::Search_directory): Change name to
const std::string&.
(General_options::add_to_library_path_with_sysroot): Change arg to
const std::string&.
* configure, Makefile.in, config.in: Rebuild.
* arm.cc (Target_arm::may_use_v5t_interworking): Check whether
we are working around the ARM1176 Erratum.
* options.h (General_options::fix_arm1176): Add option.
* testsuite/Makefile.am: Add testcases, and keep current ones
working.
* testsuite/Makefile.in: Regenerate.
* testsuite/arm_fix_1176.s: New file.
* testsuite/arm_fix_1176.sh: Likewise.
Jan Beulich [Wed, 2 Nov 2011 14:53:04 +0000 (14:53 +0000)]
Building EFI binaries, particularly larger ones (like e.g. Xen does), on Linux
(where relocatable objects are in ELF format) so far led to all local (aka
static) symbols to be discarded, making debugging quite a bit more difficult
(like Linux, Xen builds an internal symbol lookup table from nm output
generated on the binary produced by an earlier linking pass). Therefore, this
patch arranges to insert all (relevant) local symbols from non-COFF objects
into the final executable's symbol table between those coming from COFF input
files and the global ones.
bfd/
2011-11-02 Jan Beulich <jbeulich@suse.com>
* coffgen.c (coff_write_alien_symbol): Make public. Add 'struct
internal_syment *' parameter. Extend 'dummy' to an array with two
elements. Set n_numaux early. Handle BSF_FILE.
(coff_write_symbols): Pass NULL as new third argument to
coff_write_alien_symbol().
* cofflink.c (_bfd_coff_final_link): Don't use COFF-specific
obj_raw_syment_count() on non-COFF input BFD. Insert local symbols
from non-COFF input BFDs.
* libcoff-in.h (coff_write_alien_symbol): Declare.
* libcoff.h (coff_write_alien_symbol): Re-generate.
Nick Clifton [Wed, 2 Nov 2011 11:13:59 +0000 (11:13 +0000)]
* config/tc-arm.c (md_begin): Remove ARM_PLT32 reloc associated
with the (PLT) instruction suffix when operating in eabi mode.
* doc/c-arm.texi (ARM_Relocations): Extend description of (PLT)
suffix.
Jan Kratochvil [Wed, 2 Nov 2011 08:43:40 +0000 (08:43 +0000)]
gdb/testsuite/
* gdb.base/skip-solib.exp (executable_main): New variable.
(binfile_main): Base it on that.
Use $executable_main in clean_restart calls. Drop gdb_exit and
gdb_start calls.