Jan Kratochvil [Fri, 22 Feb 2013 16:40:56 +0000 (16:40 +0000)]
gdb/
Code cleanup.
* elfread.c (build_id_bfd_get): Make the return type const.
(build_id_verify): Make the check parameter const.
(build_id_to_debug_filename): Make the build_id parameter and variable
data const.
(find_separate_debug_file_by_buildid): Make the variable build_id const.
H.J. Lu [Fri, 22 Feb 2013 01:20:48 +0000 (01:20 +0000)]
Set unique_global only for definition
bfd/
PR ld/15167
* elf64-ia64-vms.c (elf64_vms_link_add_object_symbols): Set
unique_global only for definition.
* elflink.c (_bfd_elf_merge_symbol): Don't set unique_global
here.
(elf_link_add_object_symbols): Set unique_global only
for definition.
ld/testsuite/
PR ld/15167
* ld-unique/unique.exp: Add a test for shared library with
reference.
gdbadmin [Fri, 22 Feb 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Thu, 21 Feb 2013 23:00:05 +0000 (23:00 +0000)]
daily update
Tom Tromey [Thu, 21 Feb 2013 19:08:10 +0000 (19:08 +0000)]
* gdb.texinfo: Remove bad @syncodeindex.
(Values From Inferior, Types In Python, Inferiors In Python)
(Events In Python, Threads In Python, Frames In Python, Blocks In
Python, Symbols In Python, Symbol Tables In Python): Remove
@tables.
(Packets, General Query Packets, Tracepoint Packets)
(Host I/O Packets): Use @w{} for empty @item.
Alan Modra [Thu, 21 Feb 2013 05:10:28 +0000 (05:10 +0000)]
* scripttempl/elf.sc (.init_array, .fini_array): Don't sort all
.init_array/.fini_array input sections before .ctors/.dtors input
sections.
(CTORS_IN_INIT_ARRAY, DTORS_IN_INIT_ARRAY): Adjust to suit.
Alan Modra [Thu, 21 Feb 2013 04:35:22 +0000 (04:35 +0000)]
bfd/
* elf-bfd.h (struct elf_build_id): Extracted from..
(struct elf_build_id_info): ..here. Delete.
(struct output_elf_obj_tdata): New, extracted from..
(struct elf_obj_tdata): ..here. Reorganize for better packing.
Add "o" field.
(elf_program_header_size): Reference tdata->o.
(elf_seg_map, elf_next_file_pos, elf_eh_frame_hdr, elf_linker,
elf_stack_flags, elf_shstrtab, elf_strtab_sec, elf_shstrtab_sec,
elf_section_syms, elf_num_section_syms, elf_flags_init): Likewise.
* elf.c (bfd_elf_allocate_object): Allocate output_elf_obj_tdata
when opening bfd in any mode that might write.
(_bfd_elf_write_object_contents): Use build_id field in
output_elf_obj_tdata.
(_bfd_elf_close_and_cleanup): Tweak elf_shstrtab test.
(elfobj_grok_gnu_build_id): Adjust for elf_tdata changes.
gdb/
* elfread.c (build_id_bfd_get): Adjust for elf_tdata changes.
ld/
* emultempl/elf32.em (write_build_id, setup_build_id): Adjust
for elf_tdata changes.
Alan Modra [Thu, 21 Feb 2013 03:02:30 +0000 (03:02 +0000)]
* elf-bfd.h (struct core_elf_obj_tdata): New.
(struct elf_obj_tdata): Delete core_signal, core_pid, core_lwpid,
core_program, and core_command. Add "core".
* elf.c (bfd_elf_mkcorefile): Allocate "core" struct.
Update all refs to tdata core fields.
* elf32-am33lin.c, * elf32-arm.c, * elf32-cris.c, * elf32-frv.c,
* elf32-hppa.c, * elf32-i386.c, * elf32-m68k.c, * elf32-mips.c,
* elf32-nios2.c, * elf32-ppc.c, * elf32-s390.c, * elf32-score.c,
* elf32-score7.c, * elf32-sh.c, * elf32-sparc.c, * elf32-tilegx.c,
* elf32-tilepro.c, * elf32-xtensa.c, * elf64-aarch64.c,
* elf64-hppa.c, * elf64-mips.c, * elf64-ppc.c, * elf64-tilegx.c,
* elf64-x86-64.c, * elfcore.h, * elfn32-mips.c: Update all refs
to tdata core fields.
Alan Modra [Thu, 21 Feb 2013 02:29:11 +0000 (02:29 +0000)]
bfd/
* elf-bfd.h (struct elf_obj_tdata): Rename segment_map to seg_map.
Delete num_locals and num_globals.
(elf_num_locals, elf_num_globals): Don't define.
(elf_seg_map, elf_next_file_pos, elf_eh_frame_hdr, elf_linker,
elf_stack_flags, elf_strtab_sec, elf_shstrtab_sec): Define.
* bfd.c, * elf-eh-frame.c, * elf-nacl.c, * elf-vxworks.c, * elf.c,
* elf32-arm.c, * elf32-lm32.c, * elf32-ppc.c, * elf32-rx.c,
* elf32-spu.c, * elf64-hppa.c, * elfcode.h, * elflink.c,
* elfnn-ia64.c, * elfxx-mips.c: Use newly defined elf_obj_tdata
accessor macros.
* elf.c (elf_map_symbols): Add pnum_locals param. Return
number of locals syms via new param.
(swap_out_syms): Adjust to suit elf_map_symbols change.
ld/
* emultempl/elf-generic.em: Use newly defined elf_obj_tdata
accessor macros.
Siva Chandra Reddy [Thu, 21 Feb 2013 01:46:57 +0000 (01:46 +0000)]
Add a new method 'disassemble' to gdb.Architecture class.
* python/py-arch.c (archpy_disassmble): Implementation of the
new method gdb.Architecture.disassemble.
(arch_object_methods): Add entry for the new method.
* doc/gdb.texinfo (Architectures In Python): Add description
about the new method gdb.Architecture.disassemble.
* testsuite/gdb.python/py-arch.c: New test case
* testsuite/gdb.python/py-arch.exp: New tests to test
gdb.Architecture.disassemble
* testsuite/gdb.python/Makefile.in: Add py-arch to the list of
EXECUTABLES.
gdbadmin [Thu, 21 Feb 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Wed, 20 Feb 2013 23:00:06 +0000 (23:00 +0000)]
daily update
Alan Modra [Wed, 20 Feb 2013 10:24:11 +0000 (10:24 +0000)]
* Makefile.am: Use $(ELF_DEPS) on a number of eelf*.c rules.
* Makefile.in: Regenerate.
Jiong Wang [Wed, 20 Feb 2013 07:45:14 +0000 (07:45 +0000)]
gdb/
* MAINTAINERS (Write After Approval): Add myself to the list.
gdbadmin [Wed, 20 Feb 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Tue, 19 Feb 2013 23:00:05 +0000 (23:00 +0000)]
daily update
Maciej W. Rozycki [Tue, 19 Feb 2013 21:58:46 +0000 (21:58 +0000)]
* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Also clear
STO_MICROMIPS annotation.
Pedro Alves [Tue, 19 Feb 2013 20:52:57 +0000 (20:52 +0000)]
gdbserver:server.c - use unpack_varlen_hex to extract hex numbers.
Addresses, as most numbers in the RSP are hex encoded, with variable
length (that just means the width isn't specified, and there's no top
cap. So they should be extracted with unpack_varlen_hex.
A couple spots in server.c are using strto(u)l, which doesn't work on
LLP64 targets.
This patch fixes it.
Tested on x86_64 Fedora 17.
2013-02-19 Pedro Alves <palves@redhat.com>
Kai Tietz <ktietz@redhat.com>
PR gdb/15161
* server.c (handle_query) <CRC check>: Use unpack_varlen_hex
instead of strtoul to extract address from packet.
(process_serial_event) <'z'>: Likewise.
Pedro Alves [Tue, 19 Feb 2013 19:41:28 +0000 (19:41 +0000)]
Garbage collect struct monitor_ops::load_routine.
While touching monitor_load in a previous patch, I noticed this method
is no longer set to anything other than NULL in the tree, so we can
remove it.
Tested by building with --enable-targets=all.
2013-02-19 Pedro Alves <palves@redhat.com>
Garbage collect 'struct monitor_ops'::load_routine.
* monitor.h (struct monitor_ops) <load_routine>: Remove field.
* monitor.c (monitor_load): No longer call
current_monitor->load_routine.
* dbug-rom.c (init_dbug_cmds): Don't set 'load_routine'.
* m32r-rom.c (init_m32r_cmds): Don't set 'load_routine'.
* ppcbug-rom.c (init_ppc_cmds): Don't set 'load_routine'.
Pedro Alves [Tue, 19 Feb 2013 19:27:21 +0000 (19:27 +0000)]
Harmonize this monitor_load with generic_load.
Harmonize this old-looking code with generic_load, which fixes several
issues.
2013-02-19 Pedro Alves <palves@redhat.com>
PR gdb/15161
Harmonize with generic_load.
* monitor.c: Include "readline/readline.h".
(monitor_load): Rename parameter 'file' to 'args'. Use build_argv
instead of sscanf. Use CORE_ADDR/strtoulst instead of unsigned
long/strtol for the 'load_offset' local. Error out if no argument
is given or if too many arguments are given. Tilde expand the
passed in file name.
H.J. Lu [Tue, 19 Feb 2013 19:10:31 +0000 (19:10 +0000)]
Implement Intel SMAP instructions
gas/
PR gas/15159
* config/tc-i386.c (cpu_arch): Add ".smap".
* doc/c-i386.texi: Document smap.
gas/testsuite/
PR gas/15159
* gas/i386/i386.exp: Run smap and x86-64-smap.
* gas/i386/smap.d: New file.
* gas/i386/smap.s: likewise.
* gas/i386/x86-64-smap.d: likewise.
opcodes/
PR gas/15159
* i386-dis.c (rm_table): Add clac and stac to RM_0F01_REG_1.
* i386-gen.c (cpu_flag_init): Add CPU_SMAP_FLAGS.
(cpu_flags): Add CpuSMAP.
* i386-opc.h (CpuSMAP): New.
(i386_cpu_flags): Add cpusmap.
* i386-opc.tbl: Add clac and stac.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
Kai Tietz [Tue, 19 Feb 2013 18:31:49 +0000 (18:31 +0000)]
PR gdb/15161
* symfile.c (load_section_data): Change type of load_offset
to CORE_ADDR.
(generic_load): User strtoulst instead of strtoul for conversion
of load_offset.
Walter Lee [Tue, 19 Feb 2013 16:22:42 +0000 (16:22 +0000)]
* tilegx-tdep.c (tilegx_analyze_prologue): add check for
for return address, "lr" register, saved on stack.
* tilegx-tdep.c (tilegx_frame_cache): update "PC" reg
after we invoke tilegx_analyze_prologue.
Walter Lee [Tue, 19 Feb 2013 16:21:29 +0000 (16:21 +0000)]
* tilegx-tdep.c (itilegx_gdbarch_init): char type should be signed.
Walter Lee [Tue, 19 Feb 2013 16:20:47 +0000 (16:20 +0000)]
* tilegx-tdep.c (tilegx_skip_prologue): Use skip_prologue_using_sal.
Walter Lee [Tue, 19 Feb 2013 16:19:33 +0000 (16:19 +0000)]
* tilegx-tdep.c (INT_SWINT_1_SIGRETURN): New macro.
(tilegx_write_pc): New function.
(tilegx_cannot_reference_register): Return zero if REGNO
is TILEGX_FAULTNUM_REGNUM.
(tilegx_gdbarch_init): Add call to set_gdbarch_write_pc.
(tilegx_register_name): Add handling of "faultnum" register.
* tilegx-tdep.h (enum tilegx_regnum): Add TILEGX_FAULTNUM_REGNUM.
* tilegx-linux-tdep.c (tilegx_linux_supply_regset): Add
handling of TILEGX_FAULTNUM_REGNUM.
* tilegx-linux-nat.c (regmap): Add entry for TILEGX_FAULTNUM_REGNUM.
Walter Lee [Tue, 19 Feb 2013 16:09:13 +0000 (16:09 +0000)]
* tilegx-tdep.c (tilegx_push_dummy_call): args pushed on stack
should be aligned to 64bit.
Kai Tietz [Tue, 19 Feb 2013 15:46:32 +0000 (15:46 +0000)]
* windows-nat.c (windows_xfer_memory): Fix debug-output
for LLP64.
Lei Liu [Tue, 19 Feb 2013 07:50:30 +0000 (07:50 +0000)]
2013-02-19 Lei Liu <lei.liu2@windriver.com>
* mips-linux-nat.c (mips64_linux_regsets_store_registers):
Don't check DSP register number if HAVE_DSP is not set.
Lei Liu [Tue, 19 Feb 2013 07:01:07 +0000 (07:01 +0000)]
2013-02-19 Lei Liu <lei.liu2@windriver.com>
* MAINTAINERS (Write After Approval): Add myself to the list.
Sandra Loosemore [Tue, 19 Feb 2013 03:59:08 +0000 (03:59 +0000)]
2013-02-19 Sandra Loosemore <sandra@codesourcery.com>
PR ld/15146
ld/
* plugin.c (plugin_notice): Add null check before dereferencing
pointer.
Maciej W. Rozycki [Tue, 19 Feb 2013 01:10:06 +0000 (01:10 +0000)]
* lib/ld-lib.exp (run_ld_link_tests): Add another argument, pass
its contents to ar_simple_create and ld_simple_link after
objfiles.
* ld-aarch64/aarch64-elf.exp: Adjust accordingly.
* ld-alpha/alpha.exp: Likewise.
* ld-arm/arm-elf.exp: Likewise.
* ld-arm/export-class.exp: Likewise.
* ld-elf/comm-data.exp: Likewise.
* ld-elf/eh-group.exp: Likewise.
* ld-elf/elf.exp: Likewise.
* ld-elf/export-class.exp: Likewise.
* ld-elfvers/vers.exp: Likewise.
* ld-frv/tls.exp: Likewise.
* ld-i386/export-class.exp: Likewise.
* ld-i386/i386.exp: Likewise.
* ld-ia64/ia64.exp: Likewise.
* ld-libs/libs.exp: Likewise.
* ld-m68k/m68k.exp: Likewise.
* ld-metag/metag.exp: Likewise.
* ld-mips-elf/comm-data.exp: Likewise.
* ld-mips-elf/export-class.exp: Likewise.
* ld-mips-elf/mips-elf.exp: Likewise.
* ld-mn10300/mn10300.exp: Likewise.
* ld-pe/pe-compile.exp: Likewise.
* ld-pe/pe.exp: Likewise.
* ld-plugin/plugin.exp: Likewise.
* ld-powerpc/aix52.exp: Likewise.
* ld-powerpc/export-class.exp: Likewise.
* ld-powerpc/powerpc.exp: Likewise.
* ld-s390/s390.exp: Likewise.
* ld-sh/sh-vxworks.exp: Likewise.
* ld-sh/sh64/sh64.exp: Likewise.
* ld-sparc/sparc.exp: Likewise.
* ld-tic6x/tic6x.exp: Likewise.
* ld-tilegx/tilegx.exp: Likewise.
* ld-tilepro/tilepro.exp: Likewise.
* ld-undefined/entry.exp: Likewise.
* ld-vax-elf/vax-elf.exp: Likewise.
* ld-x86-64/dwarfreloc.exp: Likewise.
* ld-x86-64/export-class.exp: Likewise.
* ld-x86-64/x86-64.exp: Likewise.
* ld-xc16x/xc16x.exp: Likewise.
* ld-xstormy16/xstormy16.exp: Likewise.
* ld-xtensa/xtensa.exp: Likewise.
gdbadmin [Tue, 19 Feb 2013 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Mon, 18 Feb 2013 23:50:32 +0000 (23:50 +0000)]
include/
* bfdlink.h (struct bfd_link_info): Delete emit_note_gnu_build_id.
bfd/
* configure.in: Bump version to 2.23.52.
* elf-bfd.h (struct elf_build_id_info): New.
(struct elf_obj_tdata): Delete after_write_object_contents,
after_write_object_contents_info and build_id_size. Make build_id
a pointer to struct elf_build_id_info.
* elf.c (_bfd_elf_write_object_contents): Style. Update
after_write_ibject_contents invocation.
(elfobj_grok_gnu_build_id): Update for new build_id struct. Don't
allow zero size notes.
* configure: Regenerate.
gdb/
* elfread.c (struct build_id): Delete. Use struct elf_build_id
throughout file instead.
(build_id_bfd_get): Update to use new elf_tdata build_id field.
Don't xmalloc return value.
(build_id_verify): Similarly. Don't xfree.
(build_id_to_debug_filename): Update.
(find_separate_debug_file_by_buildid): Update, don't xfree.
ld/
* emultempl/elf32.em (emit_note_gnu_build_id): New static var.
Replace all info->emit_note_gnu_build_id refs.
(id_note_section_size): Rename from
gld${EMULATION_NAME}_id_note_section_size.
(struct build_id_info): Delete.
(write_build_id): Rename from
gld${EMULATION_NAME}_write_build_id_section.
Update elf_tdata usage. Style, formatting.
(setup_build_id): New function.
(gld${EMULATION_NAME}_after_open): Use setup_build_id.
Maciej W. Rozycki [Mon, 18 Feb 2013 23:35:17 +0000 (23:35 +0000)]
* ld-mips-elf/jalx-2.ld: Include .rel.plt in output, give .plt a
mapping.
* ld-mips-elf/jalx-2.dd: Adjust disassembly accordingly.
Maciej W. Rozycki [Mon, 18 Feb 2013 23:27:23 +0000 (23:27 +0000)]
* config/tc-mips.c (s_cpload): Call mips_mark_labels and set
mips_assembling_insn appropriately.
(s_cpsetup, s_cprestore, s_cpreturn, s_cpadd): Likewise.
Maciej W. Rozycki [Mon, 18 Feb 2013 23:20:45 +0000 (23:20 +0000)]
* elf64-mips.c (micromips_elf64_howto_table_rel): Add
R_MICROMIPS_SCN_DISP and R_MICROMIPS_JALR.
(micromips_elf64_howto_table_rela): Likewise.
(micromips_reloc_map): Add BFD_RELOC_MICROMIPS_JALR.
* elfn32-mips.c (elf_micromips_howto_table_rel): Add
R_MICROMIPS_SCN_DISP and R_MICROMIPS_JALR.
(elf_micromips_howto_table_rela): Likewise.
(micromips_reloc_map): Add BFD_RELOC_MICROMIPS_JALR.
Maciej W. Rozycki [Mon, 18 Feb 2013 23:18:16 +0000 (23:18 +0000)]
* elfxx-mips.c (MICROMIPS_P): New macro.
(_bfd_mips_elf_symbol_processing): Use it.
Maciej W. Rozycki [Mon, 18 Feb 2013 23:16:35 +0000 (23:16 +0000)]
* elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Clarify
comment on _PROCEDURE_LINKAGE_TABLE_ creation.
Alan Modra [Mon, 18 Feb 2013 23:00:04 +0000 (23:00 +0000)]
daily update
Tom Tromey [Mon, 18 Feb 2013 21:04:28 +0000 (21:04 +0000)]
PR gdb/15102:
* dwarf2read.c (read_subrange_type): Use result of
'check_typedef'.
gdb/testsuite
* gdb.dwarf2/subrange.exp: New file.
Yao Qi [Mon, 18 Feb 2013 14:54:57 +0000 (14:54 +0000)]
gdb/gdbserver
* linux-bfin-low.c (the_low_target): Use NULL instead of 0.
Maciej W. Rozycki [Mon, 18 Feb 2013 14:02:47 +0000 (14:02 +0000)]
Fix ChangeLog typo.
Maciej W. Rozycki [Mon, 18 Feb 2013 14:02:02 +0000 (14:02 +0000)]
* config/tc-mips.c (append_insn): Correcting indentation, remove
extraneous braces.
Alan Modra [Mon, 18 Feb 2013 10:40:19 +0000 (10:40 +0000)]
PR ld/12549
* elf-bfd.h (_bfd_elf_strtab_clear_refs): Delete.
(_bfd_elf_strtab_clear_all_refs): Declare.
(_bfd_elf_strtab_resize): Declare.
* elf-strtab.c (_bfd_elf_strtab_clear_refs): Delete.
(_bfd_elf_strtab_clear_all_refs): New function.
(_bfd_elf_strtab_resize): Likewise.
* elflink.c (elf_link_add_object_symbols): Use _bfd_elf_strtab_resize.
Alan Modra [Mon, 18 Feb 2013 09:13:11 +0000 (09:13 +0000)]
* ld-plugin/lto.exp (Build pr15146b.so) Add -Wl,--no-as-needed.
(PR ld/15146 (1), (2)): Likewise.
(LTO 7): Likewise.
Alan Modra [Mon, 18 Feb 2013 04:44:16 +0000 (04:44 +0000)]
missed from last commit
Alan Modra [Mon, 18 Feb 2013 02:56:58 +0000 (02:56 +0000)]
* elf-bfd.h (struct elf_obj_tdata): Move find_line_info, local_stubs,
local_call_stubs, elf_data_symbol, elf_text_symbol, elf_data_section,
and elf_text_section to..
* elfxx-mips.c (struct mips_elf_obj_tdata): ..here. Update all refs.
* elf64-alpha.c (struct mips_elf_find_line): Rename to..
(struct alpha_elf_find_line): ..this.
(struct alpha_elf_obj_tdata): Add find_line_info, update refs.
gdbadmin [Mon, 18 Feb 2013 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sun, 17 Feb 2013 23:00:06 +0000 (23:00 +0000)]
daily update
gdbadmin [Sun, 17 Feb 2013 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 16 Feb 2013 23:00:05 +0000 (23:00 +0000)]
daily update
H.J. Lu [Sat, 16 Feb 2013 17:54:37 +0000 (17:54 +0000)]
Don't add DT_NEEDED for references from the dummy bfd
bfd/
PR ld/15146
* elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
for references from the dummy bfd.
ld/
PR ld/15146
* plugin.c (plugin_notice): Replace the undefined dummy bfd with
the real one.
ld/testsuite/
PR ld/15146
* ld-plugin/pr15146.d: New file.
* ld-plugin/pr15146a.c: Likewise.
* ld-plugin/pr15146b.c: Likewise.
* ld-plugin/pr15146c.c: Likewise.
* ld-plugin/pr15146d.c: Likewise.
* ld-plugin/lto.exp: Add tests for PR ld/15146.
H.J. Lu [Sat, 16 Feb 2013 17:50:20 +0000 (17:50 +0000)]
Also trace symbol from the IR bfd
PR ld/15141
* plugin.c (plugin_notice): Also trace symbol from the IR bfd.
H.J. Lu [Sat, 16 Feb 2013 17:48:57 +0000 (17:48 +0000)]
Also track weak references
PR ld/15149
* elflink.c (elf_link_add_object_symbols): Also track weak
references.
Yao Qi [Sat, 16 Feb 2013 08:57:48 +0000 (08:57 +0000)]
gdb/
2013-02-16 Yuanhui Zhang <asmwarrior@gmail.com>
* frame.c: Remove one extra white space after #include
directive.
gdbadmin [Sat, 16 Feb 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Fri, 15 Feb 2013 23:00:05 +0000 (23:00 +0000)]
daily update
Jan Kratochvil [Fri, 15 Feb 2013 20:30:16 +0000 (20:30 +0000)]
gdb/
* contrib/cc-with-tweaks.sh: Extend the comment for -p option.
Jan Kratochvil [Fri, 15 Feb 2013 20:28:24 +0000 (20:28 +0000)]
gdb/
* gdb-gdb.gdb.in: Wrap set complaints, b internal_error, b info_command
and dir commands into an if block.
H.J. Lu [Fri, 15 Feb 2013 18:26:06 +0000 (18:26 +0000)]
Don't allow a nested archive pointing to itself
PR binutils/15151
* archive.c (_bfd_find_nested_archive): Don't allow a nested
archive pointing to itself.
(_bfd_get_elt_at_filepos): Revert the last 2 changes.
Yufeng Zhang [Fri, 15 Feb 2013 17:55:25 +0000 (17:55 +0000)]
* configure.ac: Sync with GCC repo.
* configure: Ditto.
Tom Tromey [Fri, 15 Feb 2013 17:12:29 +0000 (17:12 +0000)]
2013-02-15 Sanimir Agovic <sanimir.agovic@intel.com>
* python/py-breakpoint (struct pybp_code): Use int instead of
enum type_code.
Nick Clifton [Fri, 15 Feb 2013 15:53:42 +0000 (15:53 +0000)]
Allow for some recursion when scanning archives.
Ian Lance Taylor [Fri, 15 Feb 2013 15:44:03 +0000 (15:44 +0000)]
* options.h (DEFINE_uint64_alias): Define.
(class General_options): Add -Ttext-segment as an alias for
-Ttext.
Nick Clifton [Fri, 15 Feb 2013 14:54:28 +0000 (14:54 +0000)]
* metag-dis.c: Initialize outf->bytes_per_chunk to 4
which also makes the disassembler output be in little
endian like it should be.
* metag/labelarithmetic.d: Fix the expected disassembler
output to be in little endian format
* metag/metacore12.d: likewise
* metag/metacore21.d: likewise
* metag/metacore21ext.d: likewise
* metag/metadsp21.d: likewise
* metag/metadsp21ext.d: likewise
* metag/metafpu.d: likewise
* metag/metafpuext.d: likewise
* metag/tls.d: likewise
* ld-metag/pcrel.d: Fix the expected disassembler
output to be in little endian format
* ld-metag/shared.d: likewise
* ld-metag/stub.d: likewise
* ld-metag/stub_pic_app.d: likewise
* ld-metag/stub_pic_shared.d: likewise
* ld-metag/stub_shared.d: likewise
Nick Clifton [Fri, 15 Feb 2013 14:37:39 +0000 (14:37 +0000)]
PR binutils/15140
* ar.c (open_inarch): Fail on attempts to convert a normal archive
to a thin archive or vice versa.
* elfcomm.c (make_qualified_name): Handle corrupted thin
archives.
* readelf.c (process_archive): Likewise.
* doc/binutils.texi: Clarify documentation describing thin
archives.
* archive.c (_bfd_get_elt_at_filepos): Prevent an infinite loop
accessing a corrupt nested archive.
Kai Tietz [Fri, 15 Feb 2013 14:25:34 +0000 (14:25 +0000)]
* objcopy.c (copy_main): Initialize context variable.
Alan Modra [Fri, 15 Feb 2013 12:59:15 +0000 (12:59 +0000)]
* powerpc.cc (Stub_table::plt_off): New function, extracted from..
(Stub_table::do_write): ..here, two places.
(Stub_table::plt_call_size): Use it here too.
Kai Tietz [Fri, 15 Feb 2013 11:08:01 +0000 (11:08 +0000)]
* scripttempl/pep.sc (.xdata): Merge .xdata* into .xdata section.
(.pdata): Merge .pdata* into .pdata section.
Nick Clifton [Fri, 15 Feb 2013 10:07:47 +0000 (10:07 +0000)]
* gas/arm/neon-vmov-bad.d: New file.
* gas/arm/neon-vmov-bad.s: Likewise.
* gas/arm/neon-vmov-bad.l: Likewise.
* config/tc-arm.c (do_neon_mov): Break on NS_NULL.
Hafiz Abid Qadeer [Fri, 15 Feb 2013 09:47:50 +0000 (09:47 +0000)]
2013-02-15 Pedro Alves <pedro@codesourcery.com>
Hafiz Abid Qadeer <abidh@codesourcery.com>
gdb/
* NEWS: Mention new field "trace-file".
* tracepoint.c (trace_status_mi): Output "trace-file" field.
(tfile_open): Record the trace file's filename in the trace
status.
(tfile_files_info): Mention the name of the trace file.
Check the "filename" field explicitely.
(trace_status_command): Explicitely check "filename" field.
(trace_find_command): Ditto.
(trace_find_pc_command): Ditto.
(trace_find_tracepoint_command): Ditto.
(trace_find_line_command): Ditto.
(trace_find_range_command): Ditto.
(trace_find_outside_command): Ditto.
* tracepoint.h (struct trace_status) <from_file>: Rename it
to "filename" and make it hold the trace file's filename
instead of a boolean.
* remote.c (remote_get_trace_status): Initialize "filename"
field with NULL instead of 0.
gdb/doc/
* gdb.texinfo (GDB/MI Tracepoint Commands) <-trace-status>:
Document the "trace-file" field.
gdb/testsuite/
* gdb.trace/tfile.exp: Add test for -trace-status command.
Nick Clifton [Fri, 15 Feb 2013 09:36:32 +0000 (09:36 +0000)]
* configure.tgt: Add nios2-*-rtems*.
Nick Clifton [Fri, 15 Feb 2013 09:32:31 +0000 (09:32 +0000)]
PR binutils/15033
* objcopy.c (enum change_action): Delete.
(struct section_list): Delete remove, copy, change_vma, change_lma
and set_flags fields. Add context field.
(find_section_list): Add a context parameter. Add support for
wildcard characters in section names.
(is_strip_section): Check for sections being both copied and
removed.
(copy_object): Pass context to find_section_list.
(setup_section): Likewise.
(copy_section): Likewise.
(copy_main): Likewise.
* doc/binutils: Document the new behaviour.
* NEWS: Mention the new feature
Yao Qi [Fri, 15 Feb 2013 03:37:12 +0000 (03:37 +0000)]
gdb/
* remote.c: Fix a typo.
DJ Delorie [Fri, 15 Feb 2013 02:48:33 +0000 (02:48 +0000)]
merge from gcc
gdbadmin [Fri, 15 Feb 2013 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Maciej W. Rozycki [Thu, 14 Feb 2013 23:48:18 +0000 (23:48 +0000)]
* binutils-all/mips/mixed-mips16.s: Add missing stack adjustment.
* binutils-all/mips/mixed-mips16.d: Update accordingly.
Alan Modra [Thu, 14 Feb 2013 23:00:04 +0000 (23:00 +0000)]
daily update
Pierre Muller [Thu, 14 Feb 2013 21:08:35 +0000 (21:08 +0000)]
* contrib/ari/gdb_ari.sh (GNU/Linux rule): Remove.
Yufeng Zhang [Thu, 14 Feb 2013 18:12:51 +0000 (18:12 +0000)]
opcodes/
* aarch64-opc.c (aarch64_prfops): Change unnamed operation 'name'
fields to NULL.
(aarch64_print_operand): Adjust the printing for AARCH64_OPND_PRFOP.
gas/
* config/tc-aarch64.c (md_begin): Change to check if 'name' is
NULL.
gas/testsuite/
* gas/aarch64/system.s: Add tests.
* gas/aarch64/system.d: Update.
Pedro Alves [Thu, 14 Feb 2013 18:07:19 +0000 (18:07 +0000)]
gdbserver: QTNotes, plug memory leak.
The previous notes aren't being released before setting new ones.
Tested on x86_64 Fedora 17.
gdb/gdbserver/
2013-02-14 Pedro Alves <palves@redhat.com>
Plug memory leak.
* tracepoint.c (cmd_qtnotes): Free TRACING_USER_NAME,
TRACING_NOTES and TRACING_STOP_NOTE before clobbering.
Pedro Alves [Thu, 14 Feb 2013 17:30:03 +0000 (17:30 +0000)]
gdbserver:tracepoint.c:cmd_qtdpsrc use savestring.
An obvious use case for savestring.
Tested on x86_64 Fedora 17.
2013-02-14 Pedro Alves <palves@redhat.com>
* tracepoint.c (cmd_qtdpsrc): Use savestring.
Pedro Alves [Thu, 14 Feb 2013 17:11:41 +0000 (17:11 +0000)]
Move savestring to common/common-utils.c, make gdbserver use it.
This makes gdbserver share gdb's savestring, instead of baking its own.
Tested on x86_64 Fedora 17.
gdb/
2013-02-14 Pedro Alves <palves@redhat.com>
* utils.c (savestring): Don't #undef it. Move function to
common/common-utils.c.
* common/common-utils.c: Include gdb_string.h.
(savestring): Move here from utils.c.
* common/common-utils.h (savestring): Declare.
gdb/gdbserver/
2013-02-14 Pedro Alves <palves@redhat.com>
* tracepoint.c (save_string): Delete.
(add_tracepoint_action): Use savestring instead of save_string.
Pedro Alves [Thu, 14 Feb 2013 17:09:00 +0000 (17:09 +0000)]
savestring: Rename parameter 'size' to 'len'.
It's better to avoid needless confusion, and call string length,
length, instead of size, which is usually used to refer to sizeof of
the string (len+1):
size_t len = strlen (str);
size_t size = sizeof (str);
Tested on x86_64 Fedora 17.
2013-02-14 Pedro Alves <palves@redhat.com>
* utils.c (savestring): Rename parameter 'size' to 'len'.
Jan Kratochvil [Thu, 14 Feb 2013 15:24:11 +0000 (15:24 +0000)]
gdb/testsuite/
* gdb.threads/pthread_cond_wait.c (main): Remove variable ts. Replace
nanosleep by sleep.
Yufeng Zhang [Thu, 14 Feb 2013 13:50:30 +0000 (13:50 +0000)]
2013-02-14 Pedro Alves <palves@redhat.com>
Yufeng Zhang <yufeng.zhang@arm.com>
* aarch64-linux-nat.c (aarch64_init_debug_reg_state): Delete.
(aarch64_inferior_data, struct aarch64_inferior_data):
Delete.
(struct aarch64_process_info): New.
(aarch64_process_list): New global.
(aarch64_find_process_pid, aarch64_add_process)
(aarch64_process_info_get): New functions.
(aarch64_inferior_data_get): Delete.
(aarch64_process_info_get): New function.
(aarch64_forget_process): New function.
(aarch64_get_debug_reg_state): New parameter 'pid'. Reimplement.
(aarch64_linux_prepare_to_resume): Pass the lwp's pid to
aarch64_get_debug_reg_state.
(aarch64_notify_debug_reg_change): Use iterate_over_lwps
instead of linux_nat_iterate_watchpoint_lwps.
(aarch64_linux_new_fork): New function.
(aarch64_linux_child_post_startup_inferior): Use
aarch64_forget_process instead of aarch64_init_debug_reg_state.
(aarch64_handle_breakpoint, aarch64_linux_insert_hw_breakpoint)
(aarch64_linux_remove_hw_breakpoint)
(aarch64_handle_aligned_watchpoint)
(aarch64_handle_unaligned_watchpoint)
(aarch64_linux_insert_watchpoint)
(aarch64_linux_remove_watchpoint)
(aarch64_linux_stopped_data_address): Adjust to pass the current
process id to aarch64_debug_reg_state.
(_initialize_aarch64_linux_nat): Install aarch64_linux_new_fork as
linux_nat_new_fork hook, and aarch64_forget_process as
linux_nat_forget_process hook; remove the call to
register_inferior_data_with_cleanup.
Pedro Alves [Thu, 14 Feb 2013 12:43:46 +0000 (12:43 +0000)]
Fix ptype bug actually exercised in userdef.exp
I happened to notice a bug with ptype &Ref, and found out userdef.exp
actually exercises the bug. With:
class Container
{
public:
Member m;
Member& operator* ();
};
Member& Container::operator* ()
{
return this->m;
}
And 'c' is of type Container:
(gdb) p c
$1 = {m = {z = -9192}}
(gdb) p *c
$2 = (Member &) @0x7fffffffda20: {z = -9192}
(gdb) ptype *c
type = class Member {
public:
int z;
} &
(gdb) p &*c
$3 = (Member *) 0x7fffffffda20
(gdb) ptype &*c
type = class Member {
public:
int z;
} &*
(gdb)
Notice that last print (&*c) on says the type is a pointer - that's
how you get the address behind a reference. But notice the last ptype
instead says the type of the same expression is a pointer _reference_.
This looks like a bug to me.
This patch fixes it. The issue is that we're entering the VALUE_LVAL
(x) == lval_memory branch by mistake for references. The fix is just
to swap the tests so references are checked first, like value_addr
also handles references first.
Tested on x86_64 Fedora 17.
2013-02-14 Pedro Alves <palves@redhat.com>
* eval.c (evaluate_subexp_for_address) <default_case_after_eval,
EVAL_AVOID_SIDE_EFFECTS>: Swap and handle TYPE_CODE_REF before
lval_memory.
2013-02-14 Pedro Alves <palves@redhat.com>
* gdb.cp/userdef.exp (ptype &*c): Don't expect an &.
Nick Clifton [Thu, 14 Feb 2013 11:52:25 +0000 (11:52 +0000)]
PR binutils/15125
* objcopy.c (copy_object): Provide a helpful warning message when
adding a gnu_debuglink section to an object which already contains
one.
Hafiz Abid Qadeer [Thu, 14 Feb 2013 10:19:39 +0000 (10:19 +0000)]
2013-02-14 Pedro Alves <pedro@codesourcery.com>
Hafiz Abid Qadeer <abidh@codesourcery.com>
gdb/
* tracepoint.h (validate_trace_state_variable_name): Declare.
* tracepoint.c (validate_trace_state_variable_name): New.
(trace_variable_command): Parse the trace state variable's name
without using parse_expression. Do several validations.
* mi/mi-main.c (mi_cmd_trace_define_variable): Don't parse the
trace state variable's name with parse_expression. Validate it.
gdb/testsuite/
* gdb.trace/tsv.exp: Adjust tests, and add a few more.
Yao Qi [Thu, 14 Feb 2013 04:00:16 +0000 (04:00 +0000)]
gdb/
* infcmd.c (breakpoint_proceeded): Remove it.
Yao Qi [Thu, 14 Feb 2013 03:57:13 +0000 (03:57 +0000)]
gdb/
* tracepoint.c (end_actions_pseudocommand): Make it static.
(while_stepping_pseudocommand): Likewise.
* tracepoint.h (end_actions_pseudocommand): Remove the
declaration.
(while_stepping_pseudocommand): Likewise.
Yao Qi [Thu, 14 Feb 2013 03:51:59 +0000 (03:51 +0000)]
gdb/
Indent one changelog entry.
Yao Qi [Thu, 14 Feb 2013 03:39:42 +0000 (03:39 +0000)]
gdb/
* cli/cli-decode.c (help_cmd): Remove the declaration of
"cmdlist".
(help_all): Likewise.
gdbadmin [Thu, 14 Feb 2013 00:00:36 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Wed, 13 Feb 2013 23:00:05 +0000 (23:00 +0000)]
daily update
Maciej W. Rozycki [Wed, 13 Feb 2013 19:36:10 +0000 (19:36 +0000)]
Correct ChangeLog dates.
Maciej W. Rozycki [Wed, 13 Feb 2013 17:09:09 +0000 (17:09 +0000)]
opcodes/
* mips-dis.c (is_compressed_mode_p): Only match symbols from the
section disassembled.
binutils/testsuite/
* binutils-all/mips/mixed-micromips.d: New test.
* binutils-all/mips/mixed-mips16.d: New test.
* binutils-all/mips/mixed-micromips.s: New test source.
* binutils-all/mips/mixed-mips16.s: New test source.
* binutils-all/mips/mips.exp: New file.
Pedro Alves [Wed, 13 Feb 2013 15:06:50 +0000 (15:06 +0000)]
Fix typo: amd64 -> i386.
Pedro Alves [Wed, 13 Feb 2013 14:59:49 +0000 (14:59 +0000)]
[native x86 GNU/Linux] Access debug register mirror from the corresponding process.
While reviewing the native AArch64 patch, I noticed a problem:
On 02/06/2013 08:46 PM, Pedro Alves wrote:
>
>> > +static void
>> > +aarch64_linux_prepare_to_resume (struct lwp_info *lwp)
>> > +{
>> > + struct arch_lwp_info *info = lwp->arch_private;
>> > +
>> > + /* NULL means this is the main thread still going through the shell,
>> > + or, no watchpoint has been set yet. In that case, there's
>> > + nothing to do. */
>> > + if (info == NULL)
>> > + return;
>> > +
>> > + if (DR_HAS_CHANGED (info->dr_changed_bp)
>> > + || DR_HAS_CHANGED (info->dr_changed_wp))
>> > + {
>> > + int tid = GET_LWP (lwp->ptid);
>> > + struct aarch64_debug_reg_state *state = aarch64_get_debug_reg_state ();
> Hmm. This is always fetching the debug_reg_state of
> the current inferior, but may not be the inferior of lwp.
> I see the same bug on x86. Sorry about that. I'll fix it.
A natural fix would be to make xxx_get_debug_reg_state take an
inferior argument, but that doesn't work because of the case where we
detach breakpoints/watchpoints from the child fork, at a time there's
no inferior for the child fork at all. We do a nasty hack in
i386_inferior_data_get, but that relies on all callers pointing the
current inferior to the correct inferior, which isn't actually being
done by all callers, and I don't think we want to enforce that -- deep
in the bowls of linux-nat.c, there are many cases we resume lwps
behind the scenes, and it's be better to not have that code rely on
global state (as it doesn't today).
The fix is to decouple the watchpoints code from inferiors, making it
track target processes instead. This way, we can freely keep track of
the watchpoint mirrors for these processes behind the core's back.
Checkpoints also play dirty tricks with swapping the process behind
the inferior, so they get special treatment too in the patch (which
just amounts to calling a new hook). Instead of the old hack in
i386_inferior_data_get, where we returned a copy of the current
inferior's debug registers mirror, as soon as we detect a fork in the
target, we copy the debug register mirror from the parent to the child
process.
I don't have an old kernel handy to test, but I stepped through gdb doing
the watchpoint removal in the fork child in the watchpoint-fork test
seeing that the debug registers end up cleared in the child.
I didn't find the need for linux_nat_iterate_watchpoint_lwps. If
we use plain iterate_over_lwps instead, what happens is that
when removing watchpoints, that iterate_over_lwps doesn't actually
iterate over anything, since the fork child is not added to the
lwp list until later, at detach time, in linux_child_follow_fork.
And if we don't iterate over that lwp, we don't mark its debug
registers as needing update. But linux_child_follow_fork takes
care of doing that explicitly:
child_lp = add_lwp (inferior_ptid);
child_lp->stopped = 1;
child_lp->last_resume_kind = resume_stop;
make_cleanup (delete_lwp_cleanup, child_lp);
/* CHILD_LP has new PID, therefore linux_nat_new_thread is not called for it.
See i386_inferior_data_get for the Linux kernel specifics.
Ensure linux_nat_prepare_to_resume will reset the hardware debug
registers. It is done by the linux_nat_new_thread call, which is
being skipped in add_lwp above for the first lwp of a pid. */
gdb_assert (num_lwps (GET_PID (child_lp->ptid)) == 1);
if (linux_nat_new_thread != NULL)
linux_nat_new_thread (child_lp);
if (linux_nat_prepare_to_resume != NULL)
linux_nat_prepare_to_resume (child_lp);
ptrace (PTRACE_DETACH, child_pid, 0, 0);
so unless I'm missing something (quite possible) it ends up all
the same. But, the !detach-on-fork, and the "follow-fork child" paths
should also call linux_nat_new_thread, and they don't presently. It
seems to me in those cases we're not clearing debug regs correctly
when that's needed. Instead of copying that bit that works around
add_lwp bypassing the linux_nat_new_thread call, I thought it'd
be better to add an add_initial_lwp call to be used in the case we
really need to bypass linux_nat_new_thread, and make
add_lwp always call linux_nat_new_thread.
i386_cleanup_dregs is rewritten to forget about the current process
debug mirrors, which takes cares of other i386 ports. Only a couple
of extra tweaks here and there were needed, as some targets wheren't
actually calling i386_cleanup_dregs.
Tested on Fedora 17 x86_64 -m64/-m32.
GDBserver already fetches the i386_debug_reg_state from the right
process, and, it doesn't handle forks at all, so no fix is needed over
there.
gdb/
2013-02-13 Pedro Alves <palves@redhat.com>
* amd64-linux-nat.c (update_debug_registers_callback):
Update comment.
(amd64_linux_dr_set_control, amd64_linux_dr_set_addr): Use
iterate_over_lwps.
(amd64_linux_prepare_to_resume): Pass the lwp's pid to
i386_debug_reg_state.
(amd64_linux_new_fork): New function.
(_initialize_amd64_linux_nat): Install amd64_linux_new_fork as
linux_nat_new_fork hook, and i386_forget_process as
linux_nat_forget_process hook.
* i386-linux-nat.c (update_debug_registers_callback):
Update comment.
(amd64_linux_dr_set_control, amd64_linux_dr_set_addr): Use
iterate_over_lwps.
(i386_linux_prepare_to_resume): Pass the lwp's pid to
i386_debug_reg_state.
(i386_linux_new_fork): New function.
(_initialize_i386_linux_nat): Install i386_linux_new_fork as
linux_nat_new_fork hook, and i386_forget_process as
linux_nat_forget_process hook.
* i386-nat.c (i386_init_dregs): Delete.
(i386_inferior_data, struct i386_inferior_data):
Delete.
(struct i386_process_info): New.
(i386_process_list): New global.
(i386_find_process_pid, i386_add_process, i386_process_info_get):
New functions.
(i386_inferior_data_get): Delete.
(i386_process_info_get): New function.
(i386_debug_reg_state): New parameter 'pid'. Reimplement.
(i386_forget_process): New function.
(i386_cleanup_dregs): Rewrite.
(i386_update_inferior_debug_regs, i386_insert_watchpoint)
(i386_remove_watchpoint, i386_region_ok_for_watchpoint)
(i386_stopped_data_address, i386_insert_hw_breakpoint)
(i386_remove_hw_breakpoint): Adjust to pass the current process id
to i386_debug_reg_state.
(i386_use_watchpoints): Don't register inferior data.
* i386-nat.h (i386_debug_reg_state): Add new 'pid' parameter, and
adjust comment.
(i386_forget_process): Declare.
* linux-fork.c (delete_fork): Call linux_nat_forget_process.
* linux-nat.c (linux_nat_new_fork, linux_nat_forget_process_hook):
New static globals.
(linux_child_follow_fork): Don't call linux_nat_new_thread here.
(add_initial_lwp): New, factored out from ...
(add_lwp): ... this. Don't check the number of lwps before
calling linux_nat_new_thread.
(linux_nat_iterate_watchpoint_lwps): Delete.
(linux_nat_attach): Use add_initial_lwp instead of add_lwp.
(linux_handle_extended_wait): Call the linux_nat_new_fork hook on
forks and vforks.
(linux_nat_wait_1): Use add_initial_lwp instead of add_lwp for the
initial lwp.
(linux_nat_kill, linux_nat_mourn_inferior): Call
linux_nat_forget_process.
(linux_nat_set_new_fork, linux_nat_set_forget_process)
(linux_nat_forget_process): New functions.
* linux-nat.h (linux_nat_iterate_watchpoint_lwps_ftype): Delete
type.
(linux_nat_iterate_watchpoint_lwps): Delete declaration.
(linux_nat_new_fork_ftype, linux_nat_forget_process_ftype): New
types.
(linux_nat_set_new_fork, linux_nat_set_forget_process)
(linux_nat_forget_process): New declarations.
* amd64fbsd-nat.c (super_mourn_inferior): New global.
(amd64fbsd_mourn_inferior): New function.
(_initialize_amd64fbsd_nat): Override to_mourn_inferior.
* windows-nat.c (windows_detach): Call i386_cleanup_dregs.