binutils-gdb.git
11 years ago * gdb.gdb/selftest.exp (do_steps_and_nexts): Check for
Tom Tromey [Mon, 22 Apr 2013 20:18:23 +0000 (20:18 +0000)]
* gdb.gdb/selftest.exp (do_steps_and_nexts): Check for
notice_open_fds.

11 years ago2013-04-22 Jan-Benedict Glaw <jbglaw@lug-owl.de>
Jan-Benedict Glaw [Mon, 22 Apr 2013 17:11:22 +0000 (17:11 +0000)]
2013-04-22  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* Makefile.def: Sync with GCC.
* Makefile.in: Regenerate.

11 years ago PR gdb/7912:
Tom Tromey [Mon, 22 Apr 2013 16:46:15 +0000 (16:46 +0000)]
PR gdb/7912:
* Makefile.in (SFILES): Add filestuff.c
(COMMON_OBS): Add filestuff.o.
(filestuff.o): New target.
* auto-load.c (auto_load_objfile_script_1): Use
gdb_fopen_cloexec.
* auxv.c (procfs_xfer_auxv): Use gdb_open_cloexec.
* cli/cli-cmds.c (shell_escape): Call close_most_fds.
* cli/cli-dump.c (fopen_with_cleanup): Use gdb_fopen_cloexec.
* common/agent.c (gdb_connect_sync_socket): Use
gdb_socket_cloexec.
* common/filestuff.c: New file.
* common/filestuff.h: New file.
* common/linux-osdata.c (linux_common_core_of_thread)
(command_from_pid, commandline_from_pid, print_source_lines)
(linux_xfer_osdata_shm, linux_xfer_osdata_sem)
(linux_xfer_osdata_msg, linux_xfer_osdata_modules): Use
gdb_fopen_cloexec.
* common/linux-procfs.c (linux_proc_get_int)
(linux_proc_pid_has_state): Use gdb_fopen_cloexec.
* config.in, configure: Rebuild.
* configure.ac: Don't check for sys/socket.h.  Check for
fdwalk, pipe2.
* corelow.c (core_open): Use gdb_open_cloexec.
* dwarf2read.c (write_psymtabs_to_index): Use gdb_fopen_cloexec.
* fork-child.c (fork_inferior): Call close_most_fds.
* gdb_bfd.c (gdb_bfd_open): Use gdb_open_cloexec.
* inf-child.c (inf_child_fileio_readlink): Use gdb_open_cloexec.
* linux-nat.c (linux_nat_thread_name, linux_proc_pending_signals):
Use gdb_fopen_cloexec.
(linux_proc_xfer_partial, linux_proc_xfer_spu): Use
gdb_open_cloexec.
(linux_async_pipe): Use gdb_pipe_cloexec.
* remote-fileio.c (remote_fileio_func_open): Use
gdb_open_cloexec.
* remote.c (remote_file_put, remote_file_get): Use
gdb_fopen_cloexec.
* ser-pipe.c (pipe_open): Use gdb_socketpair_cloexec,
close_most_fds.
* ser-tcp.c (net_open): Use gdb_socket_cloexec.
* ser-unix.c (hardwire_open): Use gdb_open_cloexec.
* solib.c (solib_find): Use gdb_open_cloexec.
* source.c (openp, find_and_open_source): Use gdb_open_cloexec.
* tracepoint.c (tfile_start): Use gdb_fopen_cloexec.
(tfile_open): Use gdb_open_cloexec.
* tui/tui-io.c (tui_initialize_io): Use gdb_pipe_cloexec.
* ui-file.c (gdb_fopen): Use gdb_fopen_cloexec.
* xml-support.c (xml_fetch_content_from_file): Use
gdb_fopen_cloexec.
* main.c (captured_main): Call notice_open_fds.
gdbserver
* Makefile.in (SFILES): Add filestuff.c.
(OBS): Add filestuff.o.
(filestuff.o): New target.
* config.in, configure: Rebuild.
* configure.ac: Check for fdwalk, pipe2.

11 years ago2013-04-22 Edjunior Machado <emachado@linux.vnet.ibm.com>
Edjunior Barbosa Machado [Mon, 22 Apr 2013 15:50:57 +0000 (15:50 +0000)]
2013-04-22  Edjunior Machado  <emachado@linux.vnet.ibm.com>

* remote-sim.c (dump_mem): Change the type of 'buf' parameter from
'char *' to 'gdb_byte *'.
(gdbsim_store_register): Change the type of 'tmp' from 'char' to
'gdb_byte'.

11 years ago2013-04-22 Jan-Benedict Glaw <jbglaw@lug-owl.de>
Jan-Benedict Glaw [Mon, 22 Apr 2013 15:25:09 +0000 (15:25 +0000)]
2013-04-22  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* configure.ac: Sync with GCC.
* configure: Regenerated.

11 years ago PR ld/15382
Alan Modra [Mon, 22 Apr 2013 15:03:01 +0000 (15:03 +0000)]
PR ld/15382
* elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Don't multiply
sh_size or reloc_count adjustment by count.

11 years agogdb/
Yao Qi [Mon, 22 Apr 2013 09:34:27 +0000 (09:34 +0000)]
gdb/

* infrun.c: Fix typo in comment.

11 years ago2013-04-22 Sergio Durigan Junior <sergiodj@redhat.com>
Sergio Durigan Junior [Mon, 22 Apr 2013 09:32:21 +0000 (09:32 +0000)]
2013-04-22  Sergio Durigan Junior  <sergiodj@redhat.com>

* gdb.arch/arm-bl-branch-dest.exp: Replace additional_flags by
ldflags.

11 years agoAndrew Haley found a bug on GDB running on ARM when using
Sergio Durigan Junior [Mon, 22 Apr 2013 09:20:33 +0000 (09:20 +0000)]
Andrew Haley found a bug on GDB running on ARM when using
--enable-64-bit-bfd.  Basically the issue happens when dealing with "bl"
instructions: GDB does branch destination calculation and (wrongly)
sign-extends the PC.  Here is a piece of his original message explaining
the problem:

>      next_pc = arm_get_next_pc (frame, get_frame_pc (frame));
>
>      /* The Linux kernel offers some user-mode helpers in a high page.  We can
>         not read this page (as of 2.6.23), and even if we could then we couldn't
>         set breakpoints in it, and even if we could then the atomic operations
>         would fail when interrupted.  They are all called as functions and return
>         to the address in LR, so step to there instead.  */
>      if (next_pc > 0xffff0000)
>        next_pc = get_frame_register_unsigned (frame, ARM_LR_REGNUM);
>
>      arm_insert_single_step_breakpoint (gdbarch, aspace, next_pc);
>
>    Unfortunately, branch destination addresses are SIGN EXTENDED to 64
>    bits.  So,
>
>    (top-gdb) p/x next_pc
>    $14 = 0xffffffffb6df2864
>
>    Which triggers the next_pc = get_frame_register_unsigned(), and we
>    cannot step into any branches because the destination PC is wrong.

Anyway, the fix is simple and Andrew himself provided it for us.  It
took a while for me to figure out how to trigger the bug (in order to
write a testcase for it), but I finally made it.

The attached patch fixes the problem (by casting to `unsigned long'
instead of just `long'), and also includes a testcase to reproduce the
issue.

gdb/ChangeLog:

2013-04-22  Andrew Haley  <aph@redhat.com>

* arm-tdep.c (BranchDest): Cast result as "unsigned long",
instead of "long".

gdb/testsuite/ChangeLog:

2013-04-22  Sergio Durigan Junior  <sergiodj@redhat.com>

* gdb.arch/arm-bl-branch-dest.c: New file.
* gdb.arch/arm-bl-branch-dest.exp: Likewise.

11 years agobfd/
Alan Modra [Mon, 22 Apr 2013 03:11:40 +0000 (03:11 +0000)]
bfd/
* elf64-ppc.c (ppc64_elf_check_relocs): Don't call
create_linkage_sections here..
(ppc64_elf_init_stub_bfd): ..do so here.  Return status.
(create_linkage_sections): Move earlier in file.
(ppc64_elf_setup_section_lists): Remove now useless htab->brlt test.
* elf64-ppc.h (ppc64_elf_init_stub_bfd): Update proto.
ld/
* emultempl/ppc64elf.em (ppc_create_output_section_statements):
Check return from ppc64_elf_init_stub_bfd.
ld/testsuite/
* ld-powerpc/tlsexe.d: Adjust.
* ld-powerpc/tlsexe.r: Adjust.
* ld-powerpc/tlsexetoc.d: Adjust.
* ld-powerpc/tlsexetoc.r: Adjust.
* ld-powerpc/tlsso.d: Adjust.
* ld-powerpc/tlsso.r: Adjust.
* ld-powerpc/tlstocso.d: Adjust.
* ld-powerpc/tlstocso.r: Adjust.

11 years ago*** empty log message ***
gdbadmin [Mon, 22 Apr 2013 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Mon, 22 Apr 2013 00:00:04 +0000 (00:00 +0000)]
daily update

11 years ago PR gold/15355
Alan Modra [Sun, 21 Apr 2013 23:21:56 +0000 (23:21 +0000)]
PR gold/15355
* layout.cc (Layout::segment_precedes): Allow more than one
segment with the same type and flags.

11 years ago*** empty log message ***
gdbadmin [Sun, 21 Apr 2013 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Sun, 21 Apr 2013 00:00:05 +0000 (00:00 +0000)]
daily update

11 years agogdb/
Yao Qi [Sat, 20 Apr 2013 07:38:39 +0000 (07:38 +0000)]
gdb/

* ctf.c (ctf_fetch_registers): Change the type of 'regs' from
'char *' to 'gdb_byte *'.  Cast the return value of
'bt_ctf_get_char_array' to 'gdb_byte *'.

11 years ago*** empty log message ***
gdbadmin [Sat, 20 Apr 2013 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Sat, 20 Apr 2013 00:00:04 +0000 (00:00 +0000)]
daily update

11 years agos/signness/signedness in gdbint.texinfo.
Pedro Alves [Fri, 19 Apr 2013 18:41:32 +0000 (18:41 +0000)]
s/signness/signedness in gdbint.texinfo.

"signedness" is more typical.

gdb/doc/
2013-04-19  Pedro Alves  <palves@redhat.com>

* gdbint.texinfo (Misc Guidelines) <Compiler Warnings>: Write
"signedness" instead of "signness".

11 years agoEnable -Wpointer-sign by default.
Pedro Alves [Fri, 19 Apr 2013 18:32:54 +0000 (18:32 +0000)]
Enable -Wpointer-sign by default.

This enables -Wpointer-sign by default.

I've checked that --enable-targets=all builds fine with the following
as --host, on x86_64 Fedora 17 --build:

x86_64 GNU/Linux
i386 GNU/Linux
i386 MinGW-w64
i386 msdos/djgpp

OK?

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* configure.ac (build_warnings): Replace -Wno-pointer-sign with
-Wpointer-sign.
* configure: Regenerate.

gdb/doc
2013-04-19  Pedro Alves  <palves@redhat.com>

* gdbint.texinfo (Misc Guidelines) <Compiler Warnings>: Replace
-Wno-pointer-sign text with text on -Wpointer-sign.

11 years ago2013-04-19 Nathan Froyd <froydnj@codesourcery.com>
Hafiz Abid Qadeer [Fri, 19 Apr 2013 18:17:32 +0000 (18:17 +0000)]
2013-04-19  Nathan Froyd  <froydnj@codesourcery.com>

* ppc-instructions (isel): New instruction.

11 years agoMake GDB -Wpointer-sign clean on MinGW too.
Pedro Alves [Fri, 19 Apr 2013 17:48:10 +0000 (17:48 +0000)]
Make GDB -Wpointer-sign clean on MinGW too.

This is the remaining issue impeding GDB to build with "-Wpointer-sign
-Werror" with Fedora 17's i686-w64-mingw32 cross toolchain.

../../src/gdb/ser-tcp.c: In function 'net_read_prim':
../../src/gdb/ser-tcp.c:341:3: error: pointer targets in passing argument 2 of 'recv' differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/serial.h:23:0,
                 from ../../src/gdb/ser-tcp.c:21:
/usr/i686-w64-mingw32/sys-root/mingw/include/winsock2.h:983:34: note: expected 'char *' but argument is of type 'unsigned char *'

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* ser-tcp.c (net_read_prim): Cast second argument to recv to
'void *'.

11 years ago-Wpointer-sign: monitor.c.
Pedro Alves [Fri, 19 Apr 2013 17:44:18 +0000 (17:44 +0000)]
-Wpointer-sign: monitor.c.

This fixes -Wpointer-sign issues in monitor.c.

Tested by building on x86_64 Fedora 17 w/ --enable-targets=all.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* monitor.c (monitor_write_memory, monitor_write_memory_bytes):
Change type of 'myaddr' parameter to gdb_byte pointer.
(monitor_write_memory_longlongs): Likewise.  Cast 'myaddr' pointer
to 'long long' pointer instead of to 'unsigned long long'.
(monitor_write_memory_block, monitor_read_memory_single)
(monitor_read_memory): Change type of 'myaddr' parameter to
gdb_byte pointer.

11 years ago-Wpointer-sign: record.c.
Pedro Alves [Fri, 19 Apr 2013 15:37:31 +0000 (15:37 +0000)]
-Wpointer-sign: record.c.

../../src/gdb/record.c: In function ‘set_record_insn_history_size’:
../../src/gdb/record.c:670:5: error: pointer targets in passing argument 2 of ‘validate_history_size’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/record.c:646:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’
../../src/gdb/record.c: In function ‘set_record_call_history_size’:
../../src/gdb/record.c:682:5: error: pointer targets in passing argument 2 of ‘validate_history_size’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/record.c:646:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’

This fixes it in the obvious way.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* record.c (validate_history_size): Make parameter 'setting'
unsigned.

11 years ago-Wpointer-sign: ctf.c.
Pedro Alves [Fri, 19 Apr 2013 15:36:52 +0000 (15:36 +0000)]
-Wpointer-sign: ctf.c.

ctf_save_write's second parameter is gdb_byte *, and all these
arguments are 'char *'.  Since this function is ultimately just
writing host bytes to a local file with fwrite, an alternative would
be to change ctf_save_write to take a 'void *' instead of 'gdb_byte
*', thus removing the need for any cast (we have more calls with casts
than without).

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* ctf.c (ctf_write_uploaded_tsv, ctf_write_uploaded_tp): Add casts
to 'gdb_byte *'.

11 years ago-Wpointer-sign: cp-valprint.c.
Pedro Alves [Fri, 19 Apr 2013 15:36:24 +0000 (15:36 +0000)]
-Wpointer-sign: cp-valprint.c.

Fix:

../../src/gdb/cp-valprint.c: In function ‘cp_print_class_member’:
../../src/gdb/cp-valprint.c:793:3: error: pointer targets in passing argument 2 of ‘cp_find_class_member’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/cp-valprint.c:721:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’

'fieldno' is used throughout as 'int', so just follow the trend.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* cp-valprint.c (cp_print_class_member): Change type of 'fieldno'
local to int.

11 years ago-Wpointer-sign: ada-lang.c, ada-tasks.c.
Pedro Alves [Fri, 19 Apr 2013 15:35:58 +0000 (15:35 +0000)]
-Wpointer-sign: ada-lang.c, ada-tasks.c.

We're reading strings using the target memory access routines, which
work with raw bytes, so we need a couple casts.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* ada-lang.c (print_it_exception): Add cast to gdb_byte *.
* ada-tasks.c (read_fat_string_value): Likewise.

11 years ago-Wpointer-sign: dwarf2-frame.c: Pass unsigned variable to safe_read_uleb128.
Pedro Alves [Fri, 19 Apr 2013 15:35:21 +0000 (15:35 +0000)]
-Wpointer-sign: dwarf2-frame.c: Pass unsigned variable to safe_read_uleb128.

The 'bytes_read' change should be obvious.  As for the other hunk,
we're passing the address of the signed 'offset' to safe_read_uleb128,
which expects unsigned.  Fix it by passing the address of the unsigned
'utmp' instead, like already done on other spots in the file.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* dwarf2-frame.c (execute_cfa_program): Make 'bytes_read' local
unsigned.  Pass 'tmp' to safe_read_uleb128 instead of the signed
'offset', and adjust.

11 years ago-Wpointer-sign: dwarf2read.c.
Pedro Alves [Fri, 19 Apr 2013 15:34:46 +0000 (15:34 +0000)]
-Wpointer-sign: dwarf2read.c.

This fixes the remaining issues necessary to make the DWARF reader
-Wpointer-sign clean.  The 'filename' bit should be obvious.
'constant_pool' holds the contents of an obstack, which are 'char *'.
gdb_byte would work too, but it'd need more casts elsewhere, so I just
chose the minimal approach.  Any way would be fine with me.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* dwarf2read.c (dwarf2_get_dwz_file): Add cast to const char *.
(read_index_from_section): Add cast to 'char *'.

11 years ago-Wpointer-sign: xcoffread.c.
Pedro Alves [Fri, 19 Apr 2013 15:33:58 +0000 (15:33 +0000)]
-Wpointer-sign: xcoffread.c.

../../src/gdb/xcoffread.c: In function ‘xcoff_initial_scan’:
../../src/gdb/xcoffread.c:2982:17: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]

'debugsec' is a 'bfd_byte *', holding the result of a
bfd_get_full_section_contents.  'info->debugsec' holds the same
contents throughout the whole xcoff read, and everywhere it's used to
read symbol names.  Simply adding a cast feels appropriate.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* xcoffread.c (xcoff_initial_scan): Add cast to 'char *'.

11 years ago-Wpointer-sign: coff-pe-read.c: treat strings in PE/COFF data as char *.
Pedro Alves [Fri, 19 Apr 2013 15:33:29 +0000 (15:33 +0000)]
-Wpointer-sign: coff-pe-read.c: treat strings in PE/COFF data as char *.

A couple places take a pointer to the middle of some raw section
buffer and treat them as strings.  Add casts to char * as appropriate,
fixing -Wpointer-sign warnings.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* coff-pe-read.c (read_pe_exported_syms): Handle strings as char.

11 years ago-Wpointer-sign: bookmarks.
Pedro Alves [Fri, 19 Apr 2013 15:32:56 +0000 (15:32 +0000)]
-Wpointer-sign: bookmarks.

Bookmarks are opaque to the core code -- by design, the target is free
to use any sort of blob as bookmark identifier.

The record target chooses to use strings for bookmarks.  This adds
casts following that direction, fixing -Wpointer-sign warnings.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* record-full.c (record_full_get_bookmark): Change local 'ret'
type to char * and add cast to gdb_byte *.
(record_full_goto_bookmark): Handle 'bookmark' argument as a
string.
* reverse.c (goto_bookmark_command): Add casts to gdb_byte *.

11 years ago-Wpointer-sign: python/.
Pedro Alves [Fri, 19 Apr 2013 15:29:09 +0000 (15:29 +0000)]
-Wpointer-sign: python/.

This fixes -Wpointer-sign warnings in the python/ code in the manner
that seems most appropriate to me.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* python/py-inferior.c (infpy_write_memory): Add cast to gdb_byte
* python/py-prettyprint.c (print_string_repr): Change type of
'output' local to char *.  Add cast to gdb_byte * in
LA_PRINT_STRING call.
(print_children): Change type of 'output' local to char *.
* python/py-value.c (valpy_string): Add cast to const char * in
PyUnicode_Decode call.

11 years ago-Wpointer-sign: remote-mips.c.
Pedro Alves [Fri, 19 Apr 2013 15:28:42 +0000 (15:28 +0000)]
-Wpointer-sign: remote-mips.c.

remote-mips.c has a bunch of -Wpointer-sign warnings:

../../src/gdb/remote-mips.c: In function ‘mips_receive_packet’:
../../src/gdb/remote-mips.c:1128:7: error: pointer targets in passing argument 2 of ‘mips_cksum’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:830:1: note: expected ‘const unsigned char *’ but argument is of type ‘char *’
../../src/gdb/remote-mips.c:1135:7: error: pointer targets in passing argument 2 of ‘mips_cksum’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:830:1: note: expected ‘const unsigned char *’ but argument is of type ‘char *’
../../src/gdb/remote-mips.c: In function ‘mips_load_srec’:
../../src/gdb/remote-mips.c:2830:12: error: pointer targets in passing argument 4 of ‘mips_make_srec’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:134:12: note: expected ‘unsigned char *’ but argument is of type ‘char *’
../../src/gdb/remote-mips.c: In function ‘pmon_zeroset’:
../../src/gdb/remote-mips.c:3030:3: error: pointer targets in passing argument 4 of ‘pmon_makeb64’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:2977:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’
../../src/gdb/remote-mips.c: In function ‘pmon_make_fastrec’:
../../src/gdb/remote-mips.c:3124:6: error: pointer targets in passing argument 3 of ‘pmon_zeroset’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:3025:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’
../../src/gdb/remote-mips.c:3126:4: error: pointer targets in passing argument 4 of ‘pmon_makeb64’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:2977:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’
../../src/gdb/remote-mips.c:3148:3: error: pointer targets in passing argument 3 of ‘pmon_zeroset’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:3025:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’
../../src/gdb/remote-mips.c:3153:3: error: pointer targets in passing argument 3 of ‘pmon_zeroset’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:3025:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’
../../src/gdb/remote-mips.c:3154:8: error: pointer targets in passing argument 4 of ‘pmon_makeb64’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:2977:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’
../../src/gdb/remote-mips.c: In function ‘pmon_load_fast’:
../../src/gdb/remote-mips.c:3423:2: error: pointer targets in passing argument 4 of ‘pmon_makeb64’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:2977:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’
../../src/gdb/remote-mips.c:3457:4: error: pointer targets in passing argument 3 of ‘pmon_checkset’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:3051:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’
../../src/gdb/remote-mips.c:3484:8: error: pointer targets in passing argument 3 of ‘pmon_zeroset’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:3025:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’
../../src/gdb/remote-mips.c:3489:3: error: pointer targets in passing argument 3 of ‘pmon_checkset’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/remote-mips.c:3051:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’

The mips packet payload is ASCII, so it makes sense for
mips_send_packet and mips_receive_packet to expose 'char *'-based
interfaces, as currently they do.  But, mips packets have a binary
header, so if you look at e.g., mips_receive_packet's implementation,
you'll see "unsigned char" buffers in use.  I find it the most natural
to make the payload pointer passed to mips_cksum 'char *' too.

The other changes are straightforward adjustments -- a checksum is
naturally unsigned, and there's one point where we're reading a bfd section.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* remote-mips.c (mips_cksum): Rename 'data' parameter to 'datastr'
and change its type to 'const char *'.  Adjust.
(mips_send_packet): Add cast to 'char *', and remove cast to
'unsigned char *'.
(mips_receive_packet): Remove cast to 'unsigned char *'.
(mips_load_srec): Use bfd_byte.
(pmon_makeb64, pmon_zeroset): Make 'chksum' parameter unsigned.
(pmon_checkset): Make 'value' parameter unsigned.

11 years agogdb_byte for binary buffer, char for string: common/agent.c.
Pedro Alves [Fri, 19 Apr 2013 15:27:54 +0000 (15:27 +0000)]
gdb_byte for binary buffer, char for string: common/agent.c.

Similarly to the remote code, agent commands are mostly ascii.  Cast to
gdb_byte when treating the command buffer as raw memory bytes.

2013-04-19  Pedro Alves  <palves@redhat.com>

* common/agent.c (agent_run_command): Add cast to gdb_byte *.

11 years agogdb_byte for binary buffer, char for string: remote.c, tracepoint.c.
Pedro Alves [Fri, 19 Apr 2013 15:27:06 +0000 (15:27 +0000)]
gdb_byte for binary buffer, char for string: remote.c, tracepoint.c.

While the RSP is largely ASCII based (hence the packet buffer type is
char *), at places we pass around 8-bit binary packets in that buffer.
Functions like hex2bin or remote_escape_output conceptually are
handling binary buffers, so I left them as working with gdb_byte, and
added casts where necessary.  Whether these are host bytes or target
bytes is blurry at present, so this is largely a matter of taste.
Switching some of these functions to take "char *" or "void *" would
be equally good.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* remote.c (remote_write_bytes_aux, compare_sections_command)
(remote_read_qxfer)
(remote_search_memory, remote_hostio_pwrite, remote_hostio_pread)
(remote_hostio_readlink, remote_bfd_iovec_pread)
(remote_set_trace_notes): Use gdb_byte when RSP buffer is used as
binary buffer, and char when buffer is used as string.
* tracepoint.c (encode_source_string, tfile_write_uploaded_tp)
(trace_save, tfile_open, traceframe_walk_blocks)
(tfile_fetch_registers): Likewise.

11 years agoserial_write: change prototype to take a void-pointer buffer.
Pedro Alves [Fri, 19 Apr 2013 15:26:17 +0000 (15:26 +0000)]
serial_write: change prototype to take a void-pointer buffer.

While remote.c works with "char *" buffers most of the time, other
remote targets have binary-ish-er protocols, and choose to use
"unsigned char" throughout, like e.g., remote-mips.c or
remote-m32r-sdi.c.  That results in -Wpointer-sign warnings in those
targets, unless we add casts in calls to serial_write.  Since
serial_write is only concerned about sending raw host bytes out, and
serial_ops->write_prim already works with "void *"/"size_t", a similar
interface to the "write" or "send" system calls, I find it natural to
change serial_write's prototype accordingly, avoiding the need for
casts.

Tested on x86_64 Fedora 17, and also by building x86_64-mingw32
and DJGPP/go32 -hosted gdbs.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* ser-base.c (ser_base_write): Change prototype -- take 'void *'
buffer and size_t size.  Adjust.
* ser-base.h (ser_base_write): Adjust.
* ser-go32.c (cnts): Change type to size_t.
(dos_write): Change prototype -- take 'void *'
buffer and size_t size.  Adjust.
(dos_info): Print elements of 'cnts' as unsigned long.
* serial.c (serial_write): Likewise.
* serial.h (serial_write): Adjust.
(struct serial_ops) <write>: Change prototype -- take 'void *'
buffer and size_t size.  Adjust.

11 years agoCast result of obstack_base to gdb_byte * in a couple spots.
Pedro Alves [Fri, 19 Apr 2013 15:24:55 +0000 (15:24 +0000)]
Cast result of obstack_base to gdb_byte * in a couple spots.

obstack_base returns char *.  Need to cast to gdb_byte * in a couple spots.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* c-lang.c (evaluate_subexp_c): Cast result of obstack_base to
gdb_byte *.
* linux-tdep.c (linux_make_mappings_corefile_notes): Likewise.

11 years ago-Wpointer-sign: alpha-tdep.c.
Pedro Alves [Fri, 19 Apr 2013 15:24:25 +0000 (15:24 +0000)]
-Wpointer-sign: alpha-tdep.c.

../../src/gdb/alpha-tdep.c: In function ‘alpha_extract_return_value’:
../../src/gdb/alpha-tdep.c:520:4: error: pointer targets in passing argument 3 of ‘regcache_cooked_read_signed’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/alpha-tdep.c:36:0:

We use regcache_cooked_read_unsigned everywhere else too.

2013-04-19  Pedro Alves  <palves@redhat.com>

* alpha-tdep.c (alpha_extract_return_value): Use
regcache_cooked_read_unsigned to read 'v0'.

11 years ago-Wpointer-sign: xtensa-tdep.c.
Pedro Alves [Fri, 19 Apr 2013 15:23:52 +0000 (15:23 +0000)]
-Wpointer-sign: xtensa-tdep.c.

../../src/gdb/xtensa-tdep.c:2914:4: error: pointer targets in passing argument 7 of ‘xtensa_operand_get_field’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/xtensa-tdep.c:53:0:
../../src/gdb/../include/xtensa-isa.h:487:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’
../../src/gdb/xtensa-tdep.c:2916:4: error: pointer targets in passing argument 4 of ‘xtensa_operand_decode’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/xtensa-tdep.c:53:0:
../../src/gdb/../include/xtensa-isa.h:507:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’
../../src/gdb/xtensa-tdep.c:2918:4: error: pointer targets in passing argument 7 of ‘xtensa_operand_get_field’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/xtensa-tdep.c:53:0:
../../src/gdb/../include/xtensa-isa.h:487:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’
../../src/gdb/xtensa-tdep.c:2920:4: error: pointer targets in passing argument 4 of ‘xtensa_operand_decode’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/xtensa-tdep.c:53:0:
../../src/gdb/../include/xtensa-isa.h:507:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’
../../src/gdb/xtensa-tdep.c:2922:4: error: pointer targets in passing argument 7 of ‘xtensa_operand_get_field’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/xtensa-tdep.c:53:0:
../../src/gdb/../include/xtensa-isa.h:487:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’
../../src/gdb/xtensa-tdep.c:2924:4: error: pointer targets in passing argument 4 of ‘xtensa_operand_decode’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/xtensa-tdep.c:53:0:
../../src/gdb/../include/xtensa-isa.h:507:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’

Those bfd functions that decode instructions output uint32_t values.
Hence this fix:

2013-04-19  Pedro Alves  <palves@redhat.com>

* xtensa-tdep.c (execute_l32e, execute_s32e): Change type of
parameters 'at', 'as' and 'offset' to uint32_t.

11 years ago-Wpointer-sign: aarch64-tdep.c.
Pedro Alves [Fri, 19 Apr 2013 15:23:18 +0000 (15:23 +0000)]
-Wpointer-sign: aarch64-tdep.c.

../../src/gdb/aarch64-tdep.c: In function ‘aarch64_analyze_prologue’:
../../src/gdb/aarch64-tdep.c:713:7: error: pointer targets in passing argument 3 of ‘decode_cb’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/aarch64-tdep.c:386:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’
../../src/gdb/aarch64-tdep.c:747:7: error: pointer targets in passing argument 3 of ‘decode_stur’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/aarch64-tdep.c:597:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’

'is64' is just used as a boolean; signed/unsigned doesn't really matter.

2013-04-19  Pedro Alves  <palves@redhat.com>

* aarch64-tdep.c (aarch64_analyze_prologue): Change type of local
'is64' to signed 'int'.

11 years ago-Wpointer-sign: s390-tdep.c.
Pedro Alves [Fri, 19 Apr 2013 15:22:47 +0000 (15:22 +0000)]
-Wpointer-sign: s390-tdep.c.

-Wpointer-sign reveals a bunch of:

../../src/gdb/s390-tdep.c:1342:7: error: pointer targets in passing argument 4 of ‘is_rx’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/s390-tdep.c:1038:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’
../../src/gdb/s390-tdep.c:1343:9: error: pointer targets in passing argument 5 of ‘is_rxy’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/s390-tdep.c:1055:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’
../../src/gdb/s390-tdep.c:1344:9: error: pointer targets in passing argument 5 of ‘is_rxy’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/s390-tdep.c:1055:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’
...
../../src/gdb/s390-tdep.c:1363:7: error: pointer targets in passing argument 5 of ‘is_rs’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/s390-tdep.c:966:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’
../../src/gdb/s390-tdep.c:1364:9: error: pointer targets in passing argument 6 of ‘is_rsy’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/s390-tdep.c:983:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’
../../src/gdb/s390-tdep.c:1365:9: error: pointer targets in passing argument 6 of ‘is_rsy’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/s390-tdep.c:983:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’
...

I don't know much about s390, but from reading the code I believe the
right fix is to treat d2 as signed.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* s390-tdep.c (is_rs, is_rsy, is_rx, is_rxy): Change type of 'd2'
parameter to int *.

11 years agoppc-linux-tdep.c: Wrong signness for buffer holding instructions.
Pedro Alves [Fri, 19 Apr 2013 15:22:14 +0000 (15:22 +0000)]
ppc-linux-tdep.c: Wrong signness for buffer holding instructions.

There seems to be no reason for this buffer to be signed.  We pass it
around to functions expecting it to be unsigned (which triggers
-Wpointer-sign warnings).

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* ppc-linux-tdep.c (ppc_skip_trampoline_code): Change local
'insnbuf' buffer type to unsigned int[].

11 years agomips-tdep.c: Wrong signness for local holding PC register.
Pedro Alves [Fri, 19 Apr 2013 15:21:24 +0000 (15:21 +0000)]
mips-tdep.c: Wrong signness for local holding PC register.

Addresses on MIPS are signed, and we're indeed using
regcache_cooked_read_signed to read the PC, but, we're passing it the
address of an unsigned variable, which triggers a -Wpointer-sign
warning.  I've chosen to change the variable's type.  I believe this
will end up being the same (though I can't test it).

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* mips-tdep.c (mips_read_pc): Change local 'pc' type to LONGEST.

11 years agomep-tdep.c: Wrong signness for instruction buffer.
Pedro Alves [Fri, 19 Apr 2013 15:15:55 +0000 (15:15 +0000)]
mep-tdep.c: Wrong signness for instruction buffer.

There seems to be no reason for this to be signed.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* mep-tdep.c (mep_get_insn): Change 'insn' parameter type to
unsigned long *.

11 years agoalpha-tdep.c/mips-tdep.c: "set heuristic-fence-post" is signed/zinteger.
Pedro Alves [Fri, 19 Apr 2013 15:15:21 +0000 (15:15 +0000)]
alpha-tdep.c/mips-tdep.c: "set heuristic-fence-post" is signed/zinteger.

These commands are currently var_zinteger, hence their control
variable is signed.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* alpha-tdep.c (heuristic_fence_post): Change type to int.
(alpha_heuristic_proc_start): Adjust to check -1 instead of
UINT_MAX.
* mips-tdep.c (heuristic_fence_post): Change type to int.
(heuristic_proc_start): Adjust to check -1 instead of UINT_MAX.

11 years agocris-tdep.c: Use unsigned variable for unsigned command.
Pedro Alves [Fri, 19 Apr 2013 15:14:23 +0000 (15:14 +0000)]
cris-tdep.c: Use unsigned variable for unsigned command.

"set cris-version" is an unsigned command:

    /* CRIS-specific user-commands.  */
    add_setshow_uinteger_cmd ("cris-version", class_support,
       &usr_cmd_cris_version,
       _("Set the current CRIS version."),
       _("Show the current CRIS version."),
       _("\
  Set to 10 for CRISv10 or 32 for CRISv32 if autodetection fails.\n\
  Defaults to 10. "),

Tested by building on x86_64 Fedora 17.

2013-04-19  Pedro Alves  <palves@redhat.com>

* cris-tdep.c (usr_cmd_cris_version): Make unsigned.
(struct gdbarch_tdep) <cris_version>: Make unsigned.
(cris_spec_reg_applicable, cris_gdbarch_init): Adjust locals.

11 years ago-Wpointer-sign: gdb_byte -> char.
Pedro Alves [Fri, 19 Apr 2013 15:10:53 +0000 (15:10 +0000)]
-Wpointer-sign: gdb_byte -> char.

This is sort of the opposite of the previous patch.  Places that
manipulate strings or interfaces that return strings are changed to
use char* instead of gdb_byte*.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* avr-tdep.c (avr_io_reg_read_command): New local 'bufstr'.  Use
it to get a string view of the byte buffer.
* i386-cygwin-tdep.c (core_process_module_section): Change local 'buf'
type to gdb_byte *.  Adjust.
* linux-tdep.c (linux_info_proc, linux_find_memory_regions_full):
Change local to char *.
* solib-darwin.c (find_program_interpreter): Change return type to
char *.  Adjust.
(darwin_solib_get_all_image_info_addr_at_init): Adjust.
* solib-dsbt.c (enable_break2): Change local 'buf' to char *.
* solib-frv.c (enable_break2): Change local 'buf' to char *.
* solib-spu.c (spu_current_sos): Add gdb_byte * cast.
* solib-svr4.c (find_program_interpreter): Change return type to
char *.  Adjust.
(enable_break): Change local 'interp_name' to char *.
* spu-multiarch.c (spu_xfer_partial): Add cast to 'char *'.
* spu-tdep.c (spu_pseudo_register_read_spu): Add cast to 'char *'.
(spu_pseudo_register_write_spu): Use char for string buffer.
Adjust.
(info_spu_event_command, info_spu_signal_command): Add casts to
'char *'.

11 years ago-Wpointer-sign: char -> gdb_byte.
Pedro Alves [Fri, 19 Apr 2013 15:09:46 +0000 (15:09 +0000)]
-Wpointer-sign: char -> gdb_byte.

-Wpointer-sign catches all these cases across the codebase that should
be using gdb_byte for raw target bytes.  I think these are all
obvious, hence I've collapsed into a single patch.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

* aarch64-tdep.c (aarch64_default_breakpoint): Change type to
gdb_byte[].
(aarch64_breakpoint_from_pc): Change return type to gdb_byte *.
* ada-lang.c (ada_value_assign): Use gdb_byte.
* alphanbsd-tdep.c (sigtramp_retcode): Change type to gdb_byte[].
(alphanbsd_sigtramp_offset): Use gdb_byte.
* arm-linux-tdep.c (arm_linux_arm_le_breakpoint)
(arm_linux_arm_be_breakpoint, eabi_linux_arm_le_breakpoint)
(eabi_linux_arm_be_breakpoint, arm_linux_thumb_be_breakpoint)
(arm_linux_thumb_le_breakpoint, arm_linux_thumb2_be_breakpoint)
(arm_linux_thumb2_le_breakpoint): Change type to gdb_byte[].
* arm-tdep.c (arm_stub_unwind_sniffer)
(arm_displaced_init_closure): Use gdb_byte.
(arm_default_arm_le_breakpoint, arm_default_arm_be_breakpoint)
(arm_default_thumb_le_breakpoint)
(arm_default_thumb_be_breakpoint): Change type to gdb_byte[].
* arm-tdep.h (struct gdbarch_tdep) <arm_breakpoint,
thumb_breakpoint, thumb2_breakpoint>: Change type to gdb_byte *.
* arm-wince-tdep.c (arm_wince_le_breakpoint)
(arm_wince_thumb_le_breakpoint): Change type to gdb_byte[].
* armnbsd-tdep.c (arm_nbsd_arm_le_breakpoint)
(arm_nbsd_arm_be_breakpoint, arm_nbsd_thumb_le_breakpoint)
(arm_nbsd_thumb_be_breakpoint): Change type to gdb_byte[].
* armobsd-tdep.c (arm_obsd_thumb_le_breakpoint)
(arm_obsd_thumb_be_breakpoint): Change type to gdb_byte[].
* cris-tdep.c (push_stack_item, cris_push_dummy_call)
(cris_store_return_value, cris_extract_return_value): Use
gdb_byte.
(constraint): Change type of parameter to char * from signed
char*.  Use gdb_byte.
* dwarf2loc.c (read_pieced_value, write_pieced_value): Change type
of local buffer to gdb_byte *.
* dwarf2read.c (read_index_from_section): Use gdb_byte.
(create_dwp_hash_table): Change type of locals to gdb_byte *.
(add_address_entry): Change type of local buffer to gdb_byte[].
* frv-tdep.c (frv_adjust_breakpoint_address, find_func_descr)
(frv_push_dummy_call): Use gdb_byte.
* hppa-hpux-tdep.c (hppa_hpux_push_dummy_code)
(hppa_hpux_supply_ss_fpblock, hppa_hpux_supply_ss_wide)
(hppa_hpux_supply_save_state): Use gdb_byte.
* hppa-tdep.c (hppa32_push_dummy_call)
(hppa64_convert_code_addr_to_fptr): Use gdb_byte.
* ia64-tdep.c (extract_bit_field, replace_bit_field)
(slotN_contents, replace_slotN_contents): Change type of parameter
to gdb_byte *.
(fetch_instruction, ia64_pseudo_register_write)
(ia64_register_to_value, ia64_value_to_register)
(ia64_extract_return_value, ia64_store_return_value)
(ia64_push_dummy_call): Use gdb_byte.
* m32c-tdep.c (m32c_return_value): Remove cast.
* m68hc11-tdep.c (m68hc11_pseudo_register_write)
(m68hc11_push_dummy_call, m68hc11_store_return_value): Use
gdb_byte.
* mipsnbsd-tdep.c (mipsnbsd_get_longjmp_target): Use gdb_byte.
* mn10300-tdep.c (mn10300_store_return_value)
(mn10300_breakpoint_from_pc, mn10300_push_dummy_call): Use
gdb_byte.
* moxie-tdep.c (moxie_process_readu): Use gdb_byte.
(moxie_process_record): Remove casts.
* ppc-ravenscar-thread.c (supply_register_at_address)
(ppc_ravenscar_generic_store_registers): Use gdb_byte.
* ravenscar-thread.c (get_running_thread_id): Use gdb_byte.
* remote-m32r-sdi.c (m32r_fetch_register): Use gdb_byte.
* remote-mips.c (mips_xfer_memory): Use gdb_byte.
* remote.c (compare_sections_command): Use gdb_byte.
* score-tdep.c (score7_free_memblock): Change type of parameter to
gdb_byte *.
* sh-tdep.c (sh_justify_value_in_reg): Change return type to
gdb_byte *.  Use gdb_byte.
(sh_push_dummy_call_fpu): Use gdb_byte.
(sh_extract_return_value_nofpu, sh_extract_return_value_fpu)
(sh_store_return_value_nofpu, sh_store_return_value_fpu)
(sh_register_convert_to_virtual, sh_register_convert_to_raw):
Change parameter type to 'gdb_byte *'.  Use gdb_byte.
(sh_pseudo_register_read, sh_pseudo_register_write): Use gdb_byte.
* sh64-tdep.c (sh64_push_dummy_call): Use gdb_byte.
(sh64_store_return_value, sh64_register_convert_to_virtual):
Change parameter type to 'gdb_byte *'.  Use gdb_byte.
(sh64_pseudo_register_write): Use gdb_byte.
* solib-darwin.c (darwin_current_sos): Add casts to 'gdb_byte *'.
* solib-irix.c (fetch_lm_info): Likewise.  Use gdb_byte for byte
buffer.
(irix_current_sos): Use gdb_byte.
* solib-som.c (som_current_sos): Use gdb_byte.
* sparc-ravenscar-thread.c (supply_register_at_address)
(sparc_ravenscar_generic_store_registers): Use gdb_byte.
* spu-multiarch.c (spu_xfer_partial): Add cast to 'char *'.
* spu-tdep.c (spu_get_overlay_table): Use gdb_byte.
* tic6x-tdep.c (tic6x_breakpoint_from_pc): Change return type to
'gdb_byte *'.
* tic6x-tdep.h (struct gdbarch_tdep) <breakpoint>: Change type to
'gdb_byte *'.
* tracepoint.c (tfile_fetch_registers): Use gdb_byte.
* xstormy16-tdep.c (xstormy16_extract_return_value)
(xstormy16_store_return_value): Change parameter type to
'gdb_byte *'.  Adjust.
(xstormy16_push_dummy_call): Use gdb_byte.
* xtensa-tdep.c (xtensa_scan_prologue, call0_ret)
(call0_analyze_prologue, execute_code): Use gdb_byte.

11 years agoFix the x87 FP register printout when issuing the “info float” command.
Pedro Alves [Fri, 19 Apr 2013 14:13:30 +0000 (14:13 +0000)]
Fix the x87 FP register printout when issuing the “info float” command.

Consider the following simple program:

.globl  _start
.text
_start:
      fldt    val
.data
      val: .byte 0x00,0x00,0x45,0x07,0x11,0x19,0x22,0xe9,0xfe,0xbf

With current GDB on x86-64 GNU/Linux hosts, after the moment the fldt
command has been executed the register st(0) looks like this,
according to the “info regs” output (TOP=7):

  R7: Valid   0xffffffbffffffffeffffffe922191107450000 -0.910676542908976927

which is clearly wrong (just count its length).  The problem is due to
the printf statement (see patch) printing a promoted integer value of
a char argument "raw[i]", and, since char is signed on x86-64
GNU/Linux, the erroneous “ffffff” are printed for the first three
bytes which turn out to be "negative".  The fix is to use gdb_byte
instead which is unsigned (and is the type of value_contents(), the
type to be used for raw target bytes anyway).  After the fix the value
will be printed correctly:

  R7: Valid   0xbffee922191107450000 -0.910676542908976927

gdb/
2013-04-19  Vladimir Kargov <kargov@gmail.com>
    Pedro Alves  <palves@redhat.com>

* i387-tdep.c (i387_print_float_info): Use gdb_byte for pointer to
value contents.

gdb/testsuite/
2013-04-19  Vladimir Kargov  <kargov@gmail.com>
    Pedro Alves  <palves@redhat.com>

* gdb.arch/i386-float.S: New file.
* gdb.arch/i386-float.exp: New file.

11 years ago * configure.tgt (i386-*-cygwin): Handle x86_64 cygwin.
Kai Tietz [Fri, 19 Apr 2013 09:10:28 +0000 (09:10 +0000)]
    * configure.tgt (i386-*-cygwin): Handle x86_64 cygwin.

11 years ago PR binutils/15356
Nick Clifton [Fri, 19 Apr 2013 08:12:30 +0000 (08:12 +0000)]
PR binutils/15356
* compress.c (decompress_contents): Always call inflateEnd, even
when another inflation operation fails.

[Note - the actual patch to compress.c was accidentally committed previously].

11 years agodaily update
Alan Modra [Fri, 19 Apr 2013 00:00:04 +0000 (00:00 +0000)]
daily update

11 years ago*** empty log message ***
gdbadmin [Fri, 19 Apr 2013 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***

11 years ago * gdb.mi/mi-var-create-rtti.exp: Create a variable of
Luis Machado [Thu, 18 Apr 2013 10:08:08 +0000 (10:08 +0000)]
* gdb.mi/mi-var-create-rtti.exp: Create a variable of
type void *.

11 years ago*** empty log message ***
gdbadmin [Thu, 18 Apr 2013 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Thu, 18 Apr 2013 00:00:04 +0000 (00:00 +0000)]
daily update

11 years ago * lib/dwarf.exp (Dwarf): New proc "tu".
Doug Evans [Wed, 17 Apr 2013 21:07:09 +0000 (21:07 +0000)]
* lib/dwarf.exp (Dwarf): New proc "tu".
* gdb.dwarf2/missing-sig-type.exp: New file.

11 years ago * dwarf2read.c (struct signatured_type): New member type.
Doug Evans [Wed, 17 Apr 2013 17:09:30 +0000 (17:09 +0000)]
* dwarf2read.c (struct signatured_type): New member type.
(struct attribute): Replace member signatured_type with signature.
(DW_SIGNATURE): Replaces DW_SIGNATURE_TYPE.
(read_call_site_scope): Call follow_die_ref instead of
follow_die_ref_or_sig.
(read_structure_type): Rewrite handling of signatured types.
(read_enumeration_type): Ditto.
(read_attribute_value): Update.
(build_error_marker_type): New function.
(lookup_die_type): Add assert.  Rewrite handling of signatured types.
Don't call error for bad types, just build an error marker type.
(dump_die_shallow): Update.
(follow_die_sig_1): Renamed from follow_die_sig.
Don't call error for bad types, instead return NULL.
(follow_die_sig): New function.
(get_signatured_type, get_DW_AT_signature_type): New functions.

11 years agoUpdate copyright year on elf-ifunc.c
H.J. Lu [Wed, 17 Apr 2013 16:22:13 +0000 (16:22 +0000)]
Update copyright year on elf-ifunc.c

* elf-ifunc.c: Update copyright year.

11 years agoFix line length problem in last entry.
Joel Brobecker [Wed, 17 Apr 2013 14:57:43 +0000 (14:57 +0000)]
Fix line length problem in last entry.

11 years agogdb/
Yufeng Zhang [Wed, 17 Apr 2013 14:52:46 +0000 (14:52 +0000)]
gdb/

* aarch64-tdep.c (aarch64_write_pc): Removed.
(aarch64_gdbarch_init): Remove set_gdbarch_write_pc of the above function.

11 years ago * coffcode.h: Added a cast to void when a bfd_set_section_*()
Nick Clifton [Wed, 17 Apr 2013 14:16:01 +0000 (14:16 +0000)]
* coffcode.h: Added a cast to void when a bfd_set_section_*()
macro's return value is ignored.
* elf32-hppa.c: Likewise.
* elf32-tic6x.c: Likewise.
* mach-o.c: Likewise.
* mmo.c: Likewise.
* opncls.c: Likewise.
* peicode.h: Likewise.
* elf32-m32r.c: Check return value of bfd_set_section_*().
* elfnn-ia64.c: Likewise.
* elfxx-mips.c: Likewise.
* vms-alpha.c: Likewise.

11 years ago PR binutils/15369
Nick Clifton [Wed, 17 Apr 2013 14:09:49 +0000 (14:09 +0000)]
PR binutils/15369
* cgen-dis.c (hash_insn_array): Use CGEN_CPU_INSN_ENDIAN instead
of CGEN_CPU_ENDIAN.
(hash_insns_list): Likewise.

11 years agoUse AC_DEFINE for USE_THREAD_DB
Pedro Alves [Wed, 17 Apr 2013 09:58:15 +0000 (09:58 +0000)]
Use AC_DEFINE for USE_THREAD_DB

Use AC_DEFINE for USE_THREAD_DB instead of manually passing it down
through -D flags.

gdb/gdbserver/
2013-04-17  Pedro Alves  <palves@redhat.com>

* configure.ac (USE_THREAD_DB): Delete variable.
(if test "$srv_linux_thread_db" = "yes"): AC_DEFINE USE_THREAD_DB.
Don't AC_SUBST USE_THREAD_DB.
* Makefile.in (INTERNAL_CFLAGS): Remove @USE_THREAD_DB@.
* config.in, configure: Regenerate.

11 years agogdb/
Yao Qi [Wed, 17 Apr 2013 01:02:02 +0000 (01:02 +0000)]
gdb/
* top.c (print_gdb_configuration): Print configure-time
parameter on using libbabeltrace or not.

11 years agodaily update
Alan Modra [Wed, 17 Apr 2013 00:00:04 +0000 (00:00 +0000)]
daily update

11 years ago*** empty log message ***
gdbadmin [Wed, 17 Apr 2013 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***

11 years agoOnly define 'struct lwp_info'::thread_known if using libthread-db.
Pedro Alves [Tue, 16 Apr 2013 18:22:15 +0000 (18:22 +0000)]
Only define 'struct lwp_info'::thread_known if using libthread-db.

A small cleanup.  'struct lwp_info'::thread_known is only useful for
thread-db.c.

gdbserver/
2013-04-16  Pedro Alves  <palves@redhat.com>

* linux-low.h (struct lwp_info) <thread_known>: Move under
the USE_THREAD_DB #ifdef.

11 years agoFix remaining GDBserver issues with !HAVE_THREAD_DB_H.
Pedro Alves [Tue, 16 Apr 2013 18:20:40 +0000 (18:20 +0000)]
Fix remaining GDBserver issues with !HAVE_THREAD_DB_H.

The previous patches are still not sufficient to build gdbserver with
our copy of thread_db.h.

../../../src/gdb/gdbserver/thread-db.c: In function ‘find_one_thread’:
../../../src/gdb/gdbserver/thread-db.c:316:6: error: ‘struct lwp_info’ has no member named ‘th’
../../../src/gdb/gdbserver/thread-db.c: In function ‘attach_thread’:
../../../src/gdb/gdbserver/thread-db.c:341:6: error: ‘struct lwp_info’ has no member named ‘th’
../../../src/gdb/gdbserver/thread-db.c: In function ‘thread_db_get_tls_address’:
../../../src/gdb/gdbserver/thread-db.c:514:47: error: ‘struct lwp_info’ has no member named ‘th’
make: *** [thread-db.o] Error 1

First, linux-low.h is including <thread_db.h> directly instead of our
gdb_thread_db.h, although thread-db.c includes the latter.  Then the
'th' field of struct lwp_info is only defined if HAVE_THREAD_DB_H is
defined, which is not true if we're using our replacement copy of
thread_db.h.  We have a USE_THREAD_DB symbol defined if we're building
thread-db.c that's ideal for this, however, it's currently only
defined when compiling linux-low.c (through a Makefile rule).  The
patch makes it defined when compiling any file.

gdb/gdbserver/
2013-04-16  Pedro Alves  <palves@redhat.com>

* Makefile.in (INTERNAL_CFLAGS): Add @USE_THREAD_DB@.
(linux-low.o): Delete rule.
* linux-low.h: Always include "gdb_thread_db.h" instead of
conditionally including thread_db.h.
(struct lwp_info) <th>: Guard with #ifdef USE_THREAD_DB instead of
HAVE_THREAD_DB_H.

11 years agocopyright.py: Don't update glibc_thread_db.h.
Pedro Alves [Tue, 16 Apr 2013 18:19:14 +0000 (18:19 +0000)]
copyright.py: Don't update glibc_thread_db.h.

As glibc_thread_db.h is a 3rd party imported file, we should not
update its copyright year range in the new year process.

gdb/
2013-04-16  Pedro Alves  <palves@redhat.com>

* copyright.py (EXCLUDE_LIST): Add gdb/common/glibc_thread_db.h.

11 years agoFix previous entry.
Pedro Alves [Tue, 16 Apr 2013 18:18:12 +0000 (18:18 +0000)]
Fix previous entry.

11 years agoUpdate glibc_thread_db.h from upstream.
Pedro Alves [Tue, 16 Apr 2013 18:17:11 +0000 (18:17 +0000)]
Update glibc_thread_db.h from upstream.

Attempting to build gdbserver with our copy of thread_db.h yields:

In file included from ../../../src/gdb/gdbserver/../common/gdb_thread_db.h:4:0,
                 from ../../../src/gdb/gdbserver/thread-db.c:30:
../../../src/gdb/gdbserver/../common/glibc_thread_db.h:108:3: error: unknown type name ‘uint32_t’
In file included from ../../../src/gdb/gdbserver/../common/gdb_thread_db.h:4:0,
                 from ../../../src/gdb/gdbserver/thread-db.c:30:
../../../src/gdb/gdbserver/../common/glibc_thread_db.h:199:5: error: unknown type name ‘uintptr_t’
../../../src/gdb/gdbserver/../common/glibc_thread_db.h:269:3: error: unknown type name ‘intptr_t’
../../../src/gdb/gdbserver/../common/glibc_thread_db.h:270:3: error: unknown type name ‘intptr_t’

We used to have a workaround for this, but the patch to import
gnulib's stdint.h removed it:

  http://www.sourceware.org/ml/gdb-patches/2008-06/msg00050.html

and defs.h made to always include stdint.h.  However, gdbserver
doesn't include stdint.h in its equivalent server.h.

Rather than working around the issue, I've imported a more recent
version from glibc, which itself includes <stdint.h>.  Other than
copyright years and FSF snail mail address, the file hasn't been
touched since 2003 in glibc.  AFAICS, our version was updated last in
2000-09-03.

A note on the apparent license change: before the previous patch, this
file's contents were part of gdb_thread_db.h, and we can see that its
license's text was changed in this patch
<http://sourceware.org/ml/gdb-patches/2009-03/msg00251.html>.  That
was certainly just an easy to overlook grep/sed mistake that fell
through the cracks.

gdb/common/
2013-04-16  Pedro Alves  <palves@redhat.com>

* glibc_thread_db.h: Update from upstream glibc
(git 568035b7874a099087b77f7bba3e36a1173787b0).

11 years agoMove fallback thread_db.h to a separate file.
Pedro Alves [Tue, 16 Apr 2013 18:14:55 +0000 (18:14 +0000)]
Move fallback thread_db.h to a separate file.

Having this on a separate file makes it easier to import a new version
-- one can just copy over instead of having to care about preserving
the GDB-specific bits.

2013-04-16  Pedro Alves  <palves@redhat.com>

* common/gdb_thread_db.h [!HAVE_THREAD_DB_H]: Factor out to ...
* common/glibc_thread_db.h: ... this new file ...
* common/gdb_thread_db.h [!HAVE_THREAD_DB_H]: ... and include it.

11 years agoPR build/11881: LIBTHREAD_DB_SO can be undefined.
Pedro Alves [Tue, 16 Apr 2013 18:12:14 +0000 (18:12 +0000)]
PR build/11881: LIBTHREAD_DB_SO can be undefined.

This patch:

 http://sourceware.org/ml/gdb-patches/2009-04/msg00115.html

Changed behaviour by only defining LIBTHREAD_DB_SO if thread_db.h exists. The
definition of LIBTHREAD_DB_SO and LIBTHREAD_DB_SEARCH_PATH should be moved
outside of #ifdef HAVE_THREAD_DB_H.

This is based on a patch attached to the PR, however, it needed a
tweak, as it was it broke the HAVE_THREAD_DB_H path.

2013-04-16  Will Newton  <will.newton@gmail.com>
    Pedro Alves  <palves@redhat.com>

PR build/11881

* common/gdb_thread_db.h (LIBTHREAD_DB_SO)
(LIBTHREAD_DB_SEARCH_PATH): Move outside of #ifdef
HAVE_THREAD_DB_H.

11 years ago * gdb.texinfo (Set Catchpoints): Mention earliest version of
Tom Tromey [Tue, 16 Apr 2013 15:44:32 +0000 (15:44 +0000)]
* gdb.texinfo (Set Catchpoints): Mention earliest version of
GCC that has the SDT probe points.

11 years ago * Makefile.am (emmo.c): Add a dependency upon scripttempl/DWARF.sc.
Nick Clifton [Tue, 16 Apr 2013 14:50:20 +0000 (14:50 +0000)]
* Makefile.am (emmo.c): Add a dependency upon scripttempl/DWARF.sc.

11 years agoNEWS: Mention "set foo unlimited".
Pedro Alves [Tue, 16 Apr 2013 14:36:53 +0000 (14:36 +0000)]
NEWS: Mention "set foo unlimited".

Mention "set foo unlimited" in NEWS, right below the "New options"
section.

2013-04-16  Pedro Alves  <palves@redhat.com>
    Eli Zaretskii  <eliz@gnu.org>

* NEWS: Mention "set foo unlimited".

11 years ago*** empty log message ***
gdbadmin [Tue, 16 Apr 2013 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***

11 years agodaily update
Alan Modra [Tue, 16 Apr 2013 00:00:04 +0000 (00:00 +0000)]
daily update

11 years ago * dwarf2read.c (struct dwo_file): Replace member "cus" with "cu".
Doug Evans [Mon, 15 Apr 2013 23:53:38 +0000 (23:53 +0000)]
* dwarf2read.c (struct dwo_file): Replace member "cus" with "cu".
(struct create_dwo_cu_data): Renamed from create_dwo_info_table_data.
(create_dwo_cu_reader): Renamed from
create_dwo_debug_info_hash_table_reader.
(create_dwo_cu): Renamed from create_dwo_debug_info_hash_table.
Remove support for multiple CUs in a DWO file.
(open_and_init_dwo_file, lookup_dwo_cutu): Update.

11 years ago * dwarf2read.c (create_debug_types_hash_table): Use hex_string
Doug Evans [Mon, 15 Apr 2013 22:14:40 +0000 (22:14 +0000)]
* dwarf2read.c (create_debug_types_hash_table): Use hex_string
instead of phex.
(lookup_dwo_unit, create_dwo_debug_info_hash_table_reader): Ditto.
(create_dwo_in_dwp): Ditto.

11 years agoCheck regular reference without non-GOT reference
H.J. Lu [Mon, 15 Apr 2013 21:16:18 +0000 (21:16 +0000)]
Check regular reference without non-GOT reference

non_got_ref may not be set when building shared library. We need to set
non_got_ref if there are any non-PIC relocations.  But we only did this
when there were no PLT/GOT relocations.  It failed when there is a PLT
relocation.  This checkin moves the non_got_ref check out.

bfd/

2013-04-15  H.J. Lu  <hongjiu.lu@intel.com>

PR ld/15371
* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Check
regular reference without non-GOT reference when building
shared library.

ld/testsuite/

2013-04-15  H.J. Lu  <hongjiu.lu@intel.com>

PR ld/15371
* ld-ifunc/ifunc-20-i386.d: New file.
* ld-ifunc/ifunc-20-x86-64.d: Likewise.
* ld-ifunc/ifunc-20.s: Likewise.
diff --git a/bfd/elf-ifunc.c b/bfd/elf-ifunc.c
index e56427d..7e7ec36 100644
--- a/bfd/elf-ifunc.c
+++ b/bfd/elf-ifunc.c
@@ -187,23 +187,20 @@ _bfd_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info,

   htab = elf_hash_table (info);

+  /* When building shared library, we need to handle the case where it is
+     marked with regular reference, but not non-GOT reference since the
+     non-GOT reference bit may not be set here.  */
+  if (info->shared && !h->non_got_ref && h->ref_regular)
+    for (p = *head; p != NULL; p = p->next)
+      if (p->count)
+ {
+   h->non_got_ref = 1;
+   goto keep;
+ }
+
   /* Support garbage collection against STT_GNU_IFUNC symbols.  */
   if (h->plt.refcount <= 0 && h->got.refcount <= 0)
     {
-      /* When building shared library, we need to handle the case
-         where it is marked with regular reference, but not non-GOT
-  reference.  It may happen if we didn't see STT_GNU_IFUNC
-  symbol at the time when checking relocations.  */
-      if (info->shared
-   && !h->non_got_ref
-   && h->ref_regular)
- for (p = *head; p != NULL; p = p->next)
-   if (p->count)
-     {
-       h->non_got_ref = 1;
-       goto keep;
-     }
-
       h->got = htab->init_got_offset;
       h->plt = htab->init_plt_offset;
       *head = NULL;
diff --git a/ld/testsuite/ld-ifunc/ifunc-20-i386.d b/ld/testsuite/ld-ifunc/ifunc-20-i386.d
new file mode 100644
index 0000000..9373fcf
--- /dev/null
+++ b/ld/testsuite/ld-ifunc/ifunc-20-i386.d
@@ -0,0 +1,13 @@
+#source: ifunc-20.s
+#ld: -shared -m elf_i386 -z nocombreloc
+#as: --32
+#readelf: -r --wide
+#target: x86_64-*-* i?86-*-*
+
+Relocation section '.rel.ifunc' at offset 0x[0-9a-f]+ contains 1 entries:
+[ ]+Offset[ ]+Info[ ]+Type[ ]+.*
+[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_386_32[ ]+ifunc\(\)[ ]+ifunc
+
+Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries:
+[ ]+Offset[ ]+Info[ ]+Type[ ]+.*
+[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_386_JUMP_SLOT[ ]+ifunc\(\)[ ]+ifunc
diff --git a/ld/testsuite/ld-ifunc/ifunc-20-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-20-x86-64.d
new file mode 100644
index 0000000..39492d4
--- /dev/null
+++ b/ld/testsuite/ld-ifunc/ifunc-20-x86-64.d
@@ -0,0 +1,13 @@
+#source: ifunc-20.s
+#ld: -shared -m elf_x86_64 -z nocombreloc
+#as: --64
+#readelf: -r --wide
+#target: x86_64-*-*
+
+Relocation section '.rela.ifunc' at offset 0x[0-9a-f]+ contains 1 entries:
+[ ]+Offset[ ]+Info[ ]+Type[ ]+.*
+[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_X86_64_64[ ]+ifunc\(\)[ ]+ifunc \+ 0
+
+Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
+[ ]+Offset[ ]+Info[ ]+Type[ ]+.*
+[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_X86_64_JUMP_SLOT[ ]+ifunc\(\)[ ]+ifunc \+ 0
diff --git a/ld/testsuite/ld-ifunc/ifunc-20.s b/ld/testsuite/ld-ifunc/ifunc-20.s
new file mode 100644
index 0000000..9d45455
--- /dev/null
+++ b/ld/testsuite/ld-ifunc/ifunc-20.s
@@ -0,0 +1,16 @@
+ .section .data.rel,"aw",@progbits
+ .globl ifunc_ptrt
+ .type ifunc_ptr, @object
+ifunc_ptr:
+ .dc.a ifunc
+ .text
+ .type ifunc, @gnu_indirect_function
+ .globl ifunc
+ifunc:
+ ret
+ .size ifunc, .-ifunc
+ .type bar, @function
+ .globl bar
+bar:
+ call ifunc@PLT
+ .size bar, .-bar

11 years ago2013-04-15 Siva Chandra Reddy <sivachandra@google.com>
Siva Chandra Reddy [Mon, 15 Apr 2013 20:37:37 +0000 (20:37 +0000)]
2013-04-15  Siva Chandra Reddy  <sivachandra@google.com>

Add option to link testcases with Pthreads library when
using 'prepare_for_testing' in tests.

testsuite/
* lib/gdb.exp (build_executable_from_specs): Use
gdb_compile_pthreads to compile if option "pthreads" is
specified.

11 years ago * NEWS: Move recent entries into "since 7.6" section.
Tom Tromey [Mon, 15 Apr 2013 18:24:48 +0000 (18:24 +0000)]
* NEWS: Move recent entries into "since 7.6" section.

11 years ago PR c++/13588:
Tom Tromey [Mon, 15 Apr 2013 18:13:01 +0000 (18:13 +0000)]
PR c++/13588:
* NEWS: Update.
* break-catch-throw.c (struct exception_catchpoint)
<exception_rx, pattern>: New fields.
(fetch_probe_arguments, dtor_exception_catchpoint)
(check_status_exception_catchpoint)
(print_one_detail_exception_catchpoint): New functions.
(handle_gnu_v3_exceptions): Add "except_rx" argument.
Compile regular expression if needed.
(extract_exception_regexp): New function.
(catch_exception_command_1): Use extract_exception_regexp.
(compute_exception): Use fetch_probe_arguments.
(initialize_throw_catchpoint_ops): Set dtor, print_one_detail,
and check_status fields.
* cp-abi.c (cplus_typename_from_type_info): New function.
* cp-abi.h (cplus_typename_from_type_info): Declare.
(struct cp_abi_ops) <get_typename_from_type_info>: New field.
* gdb_regex.h (compile_rx_or_error): Declare.
* gnu-v3-abi.c (gnuv3_get_typename_from_type_info): Update
comment.
(init_gnuv3_ops): Set get_type_from_type_info field.
* probe.c (compile_rx_or_error): Move...
* utils.c (compile_rx_or_error): ... here.
gdb/doc
* gdb.texinfo (Set Catchpoints): Document regexp syntax for
exception catchpoints.
gdb/testsuite
* gdb.cp/exceptprint.exp: Add regexp catchpoint tests.

11 years ago PR c++/15176:
Tom Tromey [Mon, 15 Apr 2013 18:09:02 +0000 (18:09 +0000)]
PR c++/15176:
* NEWS: Update.
* break-catch-throw.c (compute_exception): New function.
(exception_funcs): New global.
(_initialize_break_catch_throw): Create $_exception.
* cp-abi.c (cplus_type_from_type_info): New function.
* cp-abi.h (cplus_type_from_type_info): Declare.
(struct cp_abi_ops) <get_type_from_type_info>: New field.
* gnu-v3-abi.c (gnuv3_get_typename_from_type_info)
(gnuv3_get_type_from_type_info): New functions.
(init_gnuv3_ops): Set get_type_from_type_info ABI field.
gdb/doc
* gdb.texinfo (Set Catchpoints): Document $_exception.
(Convenience Vars): Mention $_exception.
gdb/testsuite
* gdb.base/default.exp: Update for $_exception.
* gdb.cp/exceptprint.cc: New file.
* gdb.cp/exceptprint.exp: New file.
* lib/gdb.exp (skip_libstdcxx_probe_tests): New proc.

11 years ago * break-catch-throw.c (struct exception_names): New.
Tom Tromey [Mon, 15 Apr 2013 18:06:42 +0000 (18:06 +0000)]
* break-catch-throw.c (struct exception_names): New.
(exception_functions): Change type.
(re_set_exception_catchpoint): Look for SDT probes.

11 years ago PR c++/10119:
Tom Tromey [Mon, 15 Apr 2013 18:05:48 +0000 (18:05 +0000)]
PR c++/10119:
* break-catch-throw.c (exception_functions): New global.
(gnu_v3_exception_catchpoint_ops): Move earlier.
(struct exception_catchpoint): New.
(classify_exception_breakpoint): Rewrite.
(re_set_exception_catchpoint): New function.
(handle_gnu_v3_exceptions): Return void.  Use init_catchpoint.
Allocate a struct exception_catchpoint.
(catch_exception_command_1): Update.
(initialize_throw_catchpoint_ops): Set 're_set' method.

11 years ago * Makefile.in (SFILES): Add break-catch-throw.c
Tom Tromey [Mon, 15 Apr 2013 18:04:53 +0000 (18:04 +0000)]
* Makefile.in (SFILES): Add break-catch-throw.c
(COMMON_OBS): Add break-catch-throw.o.
* break-catch-throw.c: New file.
* breakpoint.c: Move exception-catching code to new file.
(ep_parse_optional_if_clause): No longer static.
* breakpoint.h (ep_parse_optional_if_clause): Declare.

11 years ago PR c++/9065:
Tom Tromey [Mon, 15 Apr 2013 17:36:14 +0000 (17:36 +0000)]
PR c++/9065:
* NEWS: Update.
* breakpoint.c (watchpoint_exp_is_const): Add OP_TYPEID.
* c-exp.y (TYPEID): New token.
(exp): Add new TYPEID productions.
(ident_tokens): Add "typeid".
* cp-abi.c (cplus_typeid, cplus_typeid_type): New functions.
* cp-abi.h (cplus_typeid, cplus_typeid_type): Declare.
(struct cp_abi_ops) <get_typeid, get_typeid_type>: New fields.
* eval.c (evaluate_subexp_standard) <OP_TYPEID>: New case.
* expprint.c (dump_subexp_body_standard) <OP_TYPEID>: New
case.
* gnu-v3-abi.c (std_type_info_gdbarch_data): New global.
(build_std_type_info_type, gnuv3_get_typeid_type)
(gnuv3_get_typeid): New functions.
(init_gnuv3_ops): Initialize std_type_info_gdbarch_data.  Set
new fields on ABI object.
* parse.c (operator_length_standard) <OP_TYPEID>: New case.
* std-operator.def (OP_TYPEID): New.
gdb/testsuite
* gdb.cp/typeid.cc: New file.
* gdb.cp/typeid.exp: New file.

11 years ago * elfread.c (elf_symtab_read): Install versioned symbol under
Tom Tromey [Mon, 15 Apr 2013 17:31:17 +0000 (17:31 +0000)]
* elfread.c (elf_symtab_read): Install versioned symbol under
unversioned name as well.

11 years ago PR c++/11990:
Tom Tromey [Mon, 15 Apr 2013 17:30:36 +0000 (17:30 +0000)]
PR c++/11990:
* c-lang.c (cplus_language_defn): Use gdb_demangle.
* c-typeprint.c (c_type_print_base): Use gdb_demangle.
* cp-support.c (mangled_name_to_comp): Use gdb_demangle.
(gdb_demangle): New function.
* cp-support.h (gdb_demangle): Declare.
* dwarf2read.c (dwarf2_physname, fixup_partial_die)
(dwarf2_name): Use gdb_demangle.
* gdbtypes.c (check_stub_method): Use gdb_demangle.
* gnu-v3-abi.c (gnuv3_rtti_type): Strip @plt and version
suffixes from name.
(gnuv3_print_method_ptr): Use gdb_demangle.
* jv-lang.c (java_demangle): Use gdb_demangle.
* jv-typeprint.c (java_type_print_base): Use gdb_demangle.
* language.c (unk_lang_demangle): Use gdb_demangle.
* symtab.c (symbol_find_demangled_name)
(demangle_for_lookup): Use gdb_demangle.

11 years ago PR c++/12824:
Tom Tromey [Mon, 15 Apr 2013 17:27:44 +0000 (17:27 +0000)]
PR c++/12824:
* NEWS: Update.
* breakpoint.c (enum exception_event_kind) <EX_EVENT_RETHROW>:
New constant.
(classify_exception_breakpoint): New function.
(print_it_exception_catchpoint, print_one_exception_catchpoint)
(print_mention_exception_catchpoint)
(print_recreate_exception_catchpoint, handle_gnu_v3_exceptions)
(catch_exception_command_1): Handle "rethrow" catchpoint.
(catch_rethrow_command): New function.
(_initialize_breakpoint): Add "catch rethrow" command.
gdb/doc
* gdb.texinfo (Set Catchpoints): Reorganize exception
catchpoints.  Document "catch rethrow".
(Debugging C Plus Plus): Mention "catch rethrow".
gdb/testsuite
* gdb.cp/exception.exp: Add "catch rethrow" tests.

11 years ago * gdb.texinfo (Set Catchpoints): Remove obsolete text.
Tom Tromey [Mon, 15 Apr 2013 17:20:39 +0000 (17:20 +0000)]
* gdb.texinfo (Set Catchpoints): Remove obsolete text.

11 years agogold/
Cary Coutant [Mon, 15 Apr 2013 16:40:59 +0000 (16:40 +0000)]
gold/
* layout.cc (Layout::set_relocatable_section_offsets): Don't
allocate space in file for BSS sections.

11 years agogold/
Cary Coutant [Mon, 15 Apr 2013 16:37:30 +0000 (16:37 +0000)]
gold/
* script-sections.cc (Orphan_output_section): Reset address
to zero after each orphaned section for relocatable links.

11 years agogold/
Cary Coutant [Mon, 15 Apr 2013 16:34:12 +0000 (16:34 +0000)]
gold/
     * symtab.cc (Symbol_table::sized_write_globals): Subtract
     section starting address for relocatable link.
     * testsuite/Makefile.am (script_test_11): New test.
     * testsuite/Makefile.in: Regenerate.
     * testsuite/script_test_11.c: New source file.
     * testsuite/script_test_11.t: New linker script.

11 years ago * contrib/ari/gdb_ari.sh (write_pc rule): Do not consider
Pierre Muller [Mon, 15 Apr 2013 14:23:54 +0000 (14:23 +0000)]
* contrib/ari/gdb_ari.sh (write_pc rule): Do not consider
set_gdbarch_write_pc as deprecated anymore.

11 years agoAdd missing empty line in spu_write_pc.
Joel Brobecker [Mon, 15 Apr 2013 13:04:05 +0000 (13:04 +0000)]
Add missing empty line in spu_write_pc.

gdb/ChangeLog:

        * spu-tdep.c (spu_write_pc): Add empty line after local variable
        declarations.