deliverable/binutils-gdb.git
8 years ago[C++/mingw] Fix windows-nat.c::xlate
Pedro Alves [Tue, 17 Nov 2015 15:17:45 +0000 (15:17 +0000)] 
[C++/mingw] Fix windows-nat.c::xlate

Fixes:

../../src/gdb/windows-nat.c:287:11: error: invalid conversion from 'int' to 'gdb_signal' [-fpermissive]
   {-1, -1}};
           ^

The signal number here doesn't really matter.

gdb/ChangeLog:
2015-11-17  Pedro Alves  <palves@redhat.com>

* windows-nat.c (xslate): Use GDB_SIGNAL_UNKNOWN instead of -1 as
signal number for terminator.

8 years ago[C++/mingw] handle_output_debug_string
Pedro Alves [Tue, 17 Nov 2015 15:17:45 +0000 (15:17 +0000)] 
[C++/mingw] handle_output_debug_string

Fixes:

 ../../../src/gdb/gdbserver/win32-low.c: In function 'int win32_kill(int)':
 ../../../src/gdb/gdbserver/win32-low.c:823:46: error: invalid conversion from 'int' to 'target_waitkind' [-fpermissive]
     struct target_waitstatus our_status = { 0 };
       ^

handle_output_debug_string doesn't use the parameter for anything
(it's an output parameter in the gdb version), so just remove it.

gdb/gdbserver/ChangeLog:
2015-11-17  Pedro Alves  <palves@redhat.com>

* win32-low.c (handle_output_debug_string): Remove parameter.
(win32_kill): Remove our_status local and adjust call to
handle_output_debug_string.
(get_child_debug_event): Adjust call to
handle_output_debug_string.

8 years ago[C++/mingw] ser-tcp.c casts
Pedro Alves [Tue, 17 Nov 2015 15:17:45 +0000 (15:17 +0000)] 
[C++/mingw] ser-tcp.c casts

Fixes a few errors like these:

../../src/gdb/ser-tcp.c: In function 'int net_open(serial*, const char*)':
../../src/gdb/ser-tcp.c:286:73: error: invalid conversion from 'void*' to 'char*' [-fpermissive]
     res = getsockopt (scb->fd, SOL_SOCKET, SO_ERROR, (void *) &err, &len);
                                                                         ^

gdb/ChangeLog:
2015-11-17  Pedro Alves  <palves@redhat.com>

* ser-tcp.c (net_open) : Cast getsockopt argument to char *
instead of void *.  Update comment.
(net_read_prim): Cast recv argument to char * instead of void *.
(net_write_prim): Cast send argument to char *.  Add comment.

8 years ago[C++/mingw] gdbserver casts
Pedro Alves [Tue, 17 Nov 2015 15:17:45 +0000 (15:17 +0000)] 
[C++/mingw] gdbserver casts

A set of obviously-needed C++ casts.

gdb/gdbserver/ChangeLog:
2015-11-17  Pedro Alves  <palves@redhat.com>

* win32-i386-low.c (update_debug_registers_callback)
(win32_get_current_dr): Add cast.
* win32-low.c (thread_rec, delete_thread_info)
(continue_one_thread): Add casts.
(strwinerror): Cast FormatMessage argument to LPTSTR instead of
LPVOID.
(win32_create_inferior, suspend_one_thread): Add casts.

8 years ago[C++/mingw] windows-nat.c casts
Pedro Alves [Tue, 17 Nov 2015 15:17:44 +0000 (15:17 +0000)] 
[C++/mingw] windows-nat.c casts

Fixes a set of errors like:

../../src/gdb/windows-nat.c: In function 'void _initialize_loadable()':
../../src/gdb/windows-nat.c:2778:30: error: invalid conversion from 'void*' to 'BOOL (*)(DWORD) {aka int (*)(long unsigned int)}' [-fpermissive]
       DebugActiveProcessStop = (void *)
                              ^

gdb/ChangeLog:
2015-11-17  Pedro Alves  <palves@redhat.com>

* windows-nat.c (AdjustTokenPrivileges_ftype)
(DebugActiveProcessStop_ftype, DebugBreakProcess_ftype)
(DebugSetProcessKillOnExit_ftype, EnumProcessModules_ftype)
(GetCurrentConsoleFont_ftype, GetModuleInformation_ftype)
(LookupPrivilegeValueA_ftype, OpenProcessToken_ftype)
(GetConsoleFontSize_ftype): New typedefs.
(AdjustTokenPrivileges, DebugActiveProcessStop)
(DebugBreakProcess, DebugSetProcessKillOnExit, EnumProcessModules)
(GetConsoleFontSize, GetCurrentConsoleFont, GetModuleInformation)
(LookupPrivilegeValueA, OpenProcessToken, GetConsoleFontSize):
Adjust.
(GetModuleFileNameEx_ftype): New typedef.
(GetModuleFileNameEx): Use it.
(_initialize_loadable): Define GPA macro and use it.

8 years ago[C++/mingw] gdb-dlfcn.c casts
Pedro Alves [Tue, 17 Nov 2015 15:17:44 +0000 (15:17 +0000)] 
[C++/mingw] gdb-dlfcn.c casts

Fixes:

../../src/gdb/gdb-dlfcn.c: In function 'void* gdb_dlsym(void*, const char*)':
../../src/gdb/gdb-dlfcn.c:105:49: error: invalid conversion from 'void*' to 'HMODULE {aka HINSTANCE__*}' [-fpermissive]
   return (void *) GetProcAddress (handle, symbol);
                                                 ^

gdb/ChangeLog:
2015-11-17  Pedro Alves  <palves@redhat.com>

* gdb-dlfcn.c (gdb_dlsym, gdb_dlclose) [__MINGW32__]: Add casts to
HMODULE.

8 years ago[C++/mingw] Misc alloca casts
Pedro Alves [Tue, 17 Nov 2015 15:17:44 +0000 (15:17 +0000)] 
[C++/mingw] Misc alloca casts

gdb/ChangeLog:
2015-11-17  Pedro Alves  <palves@redhat.com>

* exec.c (exec_file_attach, symfile_bfd_open) [__GO32__ || _WIN32
|| __CYGWIN__]: Add casts.
* utils.c (gdb_filename_fnmatch): Add cast.
* windows-nat.c (windows_create_inferior): Add cast.

8 years ago[C++/mingw] ser-mingw.c casts
Pedro Alves [Tue, 17 Nov 2015 15:17:44 +0000 (15:17 +0000)] 
[C++/mingw] ser-mingw.c casts

2015-11-17  Pedro Alves  <palves@redhat.com>

* ser-mingw.c (CancelIo_ftype): New typedef.
(CancelIo): Use CancelIo_ftype.
(ser_windows_close, ser_windows_wait_handle)
(ser_windows_read_prim, stop_select_thread)
(console_select_thread, pipe_select_thread, file_select_thread)
(ser_console_wait_handle, ser_console_done_wait_handle)
(ser_console_close, cleanup_pipe_state, pipe_windows_close)
(pipe_windows_write, pipe_wait_handle, pipe_done_wait_handle)
(net_windows_socket_check_pending, net_windows_select_thread)
(net_windows_wait_handle, net_windows_done_wait_handle)
(net_windows_close): Add casts.
(_initialize_ser_windows): Cast to CancelIo_ftype* instead of
void*.

8 years agoMach-O: add new defines and struct for darwin 14.5
Tristan Gingold [Tue, 17 Nov 2015 13:56:04 +0000 (14:56 +0100)] 
Mach-O: add new defines and struct for darwin 14.5

include/mach-o/
* arm64.h: New file.
* unwind.h: Add arm64 encodings.
* loader.h (bfd_mach_o_cpu_subtype): Add arm64 literals.
(BFD_MACH_O_LC_ENCRYPTION_INFO_64, BFD_MACH_O_LC_LINKER_OPTIONS)
(BFD_MACH_O_LC_LINKER_OPTIMIZATION_HINT)
(BFD_MACH_O_LC_VERSION_MIN_WATCHOS): Define.
* external.h (mach_o_encryption_info_64_command_external):
(mach_o_linker_option_command_external)
(mach_o_dyld_cache_header_external)
(mach_o_dyld_cache_mapping_info_external)
(mach_o_dyld_cache_image_info_external): New types.

8 years agoConvert c_string_type to an enum flags type
Simon Marchi [Tue, 17 Nov 2015 13:31:29 +0000 (13:31 +0000)] 
Convert c_string_type to an enum flags type

c_string_type contains values meant to be OR'ed together (even though
some bits are mutually exclusive), so it makes sense to make it an
enum flags type.

gdb/ChangeLog:
2015-11-17  Simon Marchi  <simon.marchi@ericsson.com>

* c-exp.y (exp): Adjust, change enum c_string_type to
c_string_type.
(parse_string_or_char): Likewise.
* c-lang.c (charset_for_string_type): Likewise.
(classify_type): Likewise.
(c_printchar): Likewise.
(c_printstr): Likewise.
(evaluate_subexp_c): Likewise.  And change cast to enum
c_string_type_values.
* c-lang.h: Include "common/enum_flags.h".
(enum c_string_type): Rename to...
(enum c_string_type_values): ...this.
(c_string_type): Define new enum flags type.

8 years agoType-safe wrapper for enum flags
Pedro Alves [Tue, 17 Nov 2015 13:31:29 +0000 (13:31 +0000)] 
Type-safe wrapper for enum flags

This patch fixes C++ build errors like this:

/home/pedro/gdb/mygit/cxx-convertion/src/gdb/linux-tdep.c:1126:35: error: invalid conversion from ‘int’ to ‘filterflags’ [-fpermissive]
       | COREFILTER_HUGETLB_PRIVATE);
                                   ^

This is a case of enums used as bit flags.  Unlike "regular" enums,
these values are supposed to be or'ed together.  However, in C++, the
type of "(ENUM1 | ENUM2)" is int, and you then can't assign an int to
an enum variable without a cast.  That means that this:

  enum foo_flags flags = 0;

  if (...)
    flags |= FOO_FLAG1;
  if (...)
    flags |= FOO_FLAG2;

... would have to be written as:

  enum foo_flags flags = (enum foo_flags) 0;

  if (...)
    flags = (enum foo_flags) (flags | FOO_FLAG1);
  if (...)
    flags = (enum foo_flags) (flags | FOO_FLAG2);

which is ... ugly.  Alternatively, we'd have to use an int for the
variable's type, which isn't ideal either.

This patch instead adds an "enum flags" class.  "enum flags" are
exactly the enums where the values are bits that are meant to be ORed
together.

This allows writing code like the below, while with raw enums this
would fail to compile without casts to enum type at the assignments to
'f':

  enum some_flag
  {
     flag_val1 = 1 << 1,
     flag_val2 = 1 << 2,
     flag_val3 = 1 << 3,
     flag_val4 = 1 << 4,
  };
  DEF_ENUM_FLAGS_TYPE(enum some_flag, some_flags)

  some_flags f = flag_val1 | flag_val2;
  f |= flag_val3;

It's also possible to assign literal zero to an enum flags variable
(meaning, no flags), dispensing either adding an awkward explicit "no
value" value to the enumeration or the cast to assignments from 0.
For example:

  some_flags f = 0;
  f |= flag_val3 | flag_val4;

Note that literal integers other than zero do fail to compile:

  some_flags f = 1; // error

C is still supported -- DEF_ENUM_FLAGS_TYPE is just a typedef in that
case.

gdb/ChangeLog:
2015-11-17  Pedro Alves  <palves@redhat.com>

* btrace.h: Include common/enum-flags.h.
(btrace_insn_flags): Define.
(struct btrace_insn) <flags>: Change type.
(btrace_function_flags): Define.
(struct btrace_function) <flags>: Change type.
(btrace_thread_flags): Define.
(struct btrace_thread_info) <flags>: Change type.
* c-exp.y (token_flags): Rename to ...
(token_flag): ... this.
(token_flags): Define.
(struct token) <flags>: Change type.
* common/enum-flags.h: New file.
* compile/compile-c-types.c (convert_qualified): Change type of
'quals' local.
* compile/compile-internal.h: Include "common/enum-flags.h".
(gcc_qualifiers_flags): Define.
* completer.c (enum reg_completer_targets): Rename to ...
(enum reg_completer_target): ... this.
(reg_completer_targets): Define.
(reg_or_group_completer_1): Change type of 'targets' parameter.
* disasm.c (do_mixed_source_and_assembly_deprecated): Change type
of 'psl_flags' local.
(do_mixed_source_and_assembly): Change type of 'psl_flags' local.
* infrun.c: Include "common/enum-flags.h".
(enum step_over_what): Rename to ...
(enum step_over_what_flag): ... this.
(step_over_what): Change type.
(start_step_over): Change type of 'step_what' local.
(thread_still_needs_step_over): Now returns a step_over_what.
Adjust.
(keep_going_pass_signal): Change type of 'step_what' local.
* linux-tdep.c: Include "common/enum-flags.h".
(enum filterflags): Rename to ...
(enum filter_flag): ... this.
(filter_flags): Define.
(dump_mapping_p): Change type of 'filterflags' parameter.
(linux_find_memory_regions_full): Change type of 'filterflags'
local.
(linux_find_memory_regions_full): Pass the address of an unsigned
int to sscanf instead of the address of an enum.
* record-btrace.c (btrace_print_lines): Change type of local
'psl_flags'.
(btrace_call_history): Replace 'flags' parameter
with 'int_flags' parameter.  Adjust.
(record_btrace_call_history, record_btrace_call_history_range)
(record_btrace_call_history_from): Rename 'flags' parameter to
'int_flags'.  Use record_print_flags.
* record.h: Include "common/enum-flags.h".
(record_print_flags): Define.
* source.c: Include "common/enum-flags.h".
(print_source_lines_base, print_source_lines): Change type of
flags parameter.
* symtab.h: Include "common/enum-flags.h".
(enum print_source_lines_flags): Rename to ...
(enum print_source_lines_flag): ... this.
(print_source_lines_flags): Define.
(print_source_lines): Change prototype.

8 years agoguile disassembly hardcode TARGET_XFER_E_IO
Pedro Alves [Tue, 17 Nov 2015 13:31:28 +0000 (13:31 +0000)] 
guile disassembly hardcode TARGET_XFER_E_IO

Instead of adding a cast at the memory_error call, as needed for C++,
and have the reader understand the indirection, make it simple and
hardcode the generic memory error at the memory_error call site.

gdb/ChangeLog:
2015-11-17  Pedro Alves  <palves@redhat.com>

* guile/scm-disasm.c (gdbscm_disasm_read_memory): Return -1 on
error instead of TARGET_XFER_E_IO.
(gdbscm_disasm_memory_error): Always pass TARGET_XFER_E_IO to
memory_error.

8 years agoFix a problematic message with the STM32L4XX fixup on 32-bit hosts.
Christophe Lyon [Tue, 17 Nov 2015 11:35:08 +0000 (11:35 +0000)] 
Fix a problematic message with the STM32L4XX fixup on 32-bit hosts.

* elf32-arm.c (elf32_arm_write_section): Force offset output as
long (%ld).

8 years agoFix the disassembly of conditional instructions will illegal condition selections.
Nick Clifton [Mon, 16 Nov 2015 14:26:07 +0000 (14:26 +0000)] 
Fix the disassembly of conditional instructions will illegal condition selections.

* rx-dis.c (condition_names): Replace always and never with
invalid, since the always/never conditions can never be legal.

8 years agogdb/testsuite: Fix left shift of negative value.
Dominik Vogt [Tue, 17 Nov 2015 09:56:32 +0000 (10:56 +0100)] 
gdb/testsuite: Fix left shift of negative value.

This patch fixes all occurences of left-shifting negative constants in C cod
which is undefined by the C standard.

gdb/testsuite/ChangeLog:

        * lib/dwarf.exp (_note): Fix left shift of negative value.
        * gdb.trace/trace-condition.exp: Likewise.

8 years agogdb: Fix left shift of negative value.
Dominik Vogt [Tue, 17 Nov 2015 09:56:32 +0000 (10:56 +0100)] 
gdb: Fix left shift of negative value.

This patch fixes all occurences of left-shifting negative constants in C cod
which is undefined by the C standard.

gdb/ChangeLog:

        * hppa-tdep.c (hppa_sign_extend, hppa_low_hppa_sign_extend)
        (prologue_inst_adjust_sp, hppa_frame_cache): Fix left shift of negative
        value.
        * dwarf2read.c (read_subrange_type): Likewise.

8 years agosim: sim-close: use XCONCAT2 helper
Mike Frysinger [Mon, 16 Nov 2015 08:12:23 +0000 (00:12 -0800)] 
sim: sim-close: use XCONCAT2 helper

No point in open coding this logic when we've got nifty helpers to do it.

8 years agogas: microblaze: fix shift overflow
Mike Frysinger [Sun, 15 Nov 2015 07:46:03 +0000 (02:46 -0500)] 
gas: microblaze: fix shift overflow

This code tries to shift an integer 31 bits which triggers a werror:
gas/config/tc-microblaze.c:742:21: error: integer overflow in expression [-Werror=overflow]
  e->X_add_number |= -(1 << 31);

Cast the 1 to offsetT to match X_add_number to fix things.

8 years agoAutomatic date update in version.in
GDB Administrator [Tue, 17 Nov 2015 00:00:09 +0000 (00:00 +0000)] 
Automatic date update in version.in

8 years agoFix stack buffer overflow in aarch64_extract_return_value
Yao Qi [Mon, 16 Nov 2015 15:37:03 +0000 (15:37 +0000)] 
Fix stack buffer overflow in aarch64_extract_return_value

Hi,
I build GDB with -fsanitize=address, and run testsuite.  In
gdb.base/callfuncs.exp, I see the following error,

p/c fun1()
=================================================================^M
==9601==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fffee858530 at pc 0x6df079 bp 0x7fffee8583a0 sp 0x7fffee858398
WRITE of size 16 at 0x7fffee858530 thread T0
    #0 0x6df078 in regcache_raw_read /home/yao/SourceCode/gnu/gdb/git/gdb/regcache.c:673
    #1 0x6dfe1e in regcache_cooked_read /home/yao/SourceCode/gnu/gdb/git/gdb/regcache.c:751
    #2 0x4696a3 in aarch64_extract_return_value /home/yao/SourceCode/gnu/gdb/git/gdb/aarch64-tdep.c:1708
    #3 0x46ae57 in aarch64_return_value /home/yao/SourceCode/gnu/gdb/git/gdb/aarch64-tdep.c:1918

We are extracting return value from V registers (128 bit), but only
allocate X_REGISTER_SIZE-byte array, which isn't sufficient.  This
patch changes the array to V_REGISTER_SIZE.

gdb:

2015-11-16  Yao Qi  <yao.qi@linaro.org>

* aarch64-tdep.c (aarch64_extract_return_value):  Change array
buf's length to V_REGISTER_SIZE.

8 years agoPass value * instead of bfd_byte * to pass_* functions in aarch64-tdep.c
Yao Qi [Mon, 16 Nov 2015 14:50:29 +0000 (14:50 +0000)] 
Pass value * instead of bfd_byte * to pass_* functions in aarch64-tdep.c

This patch changes the last argument of functions pass_in_x_or_stack,
pass_in_v_or_stack, pass_on_stack, and pass_in_x to type value *.

gdb:

2015-11-16  Yao Qi  <yao.qi@linaro.org>

* aarch64-tdep.c (pass_in_x_or_stack): Change argument type
from bfd_byte * to value *.  Caller updated.
(pass_in_x): Likewise.
(pass_in_v_or_stack): Likewise.
(pass_on_stack): Likewise.

8 years agoUse value_contents instead of value_contents_writeable
Yao Qi [Mon, 16 Nov 2015 14:47:50 +0000 (14:47 +0000)] 
Use value_contents instead of value_contents_writeable

Both aarch64_push_dummy_call and bfin_push_dummy_call only use args[i]
contents but then never write to them, so that we can use
value_contents instead.

gdb:

2015-11-16  Yao Qi  <yao.qi@linaro.org>

* aarch64-tdep.c (aarch64_push_dummy_call): Call value_contents instead
of value_contents_writeable.
* bfin-tdep.c (bfin_push_dummy_call): Likewise.

8 years agoFix bug in arm_push_dummy_call by -fsanitize=address
Yao Qi [Mon, 16 Nov 2015 14:44:19 +0000 (14:44 +0000)] 
Fix bug in arm_push_dummy_call by -fsanitize=address

When I build GDB with -fsanitize=address, and run testsuite,
some gdb.base/*.exp test triggers the ERROR below,

=================================================================
==7646==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603000242810 at pc 0x487844 bp 0x7fffe32e84e0 sp 0x7fffe32e84d8
READ of size 4 at 0x603000242810 thread T0
    #0 0x487843 in push_stack_item /home/yao/SourceCode/gnu/gdb/git/gdb/arm-tdep.c:3405
    #1 0x48998a in arm_push_dummy_call /home/yao/SourceCode/gnu/gdb/git/gdb/arm-tdep.c:3960

In that path, GDB passes value on stack, in an INT_REGISTER_SIZE slot,
but the value contents' length can be less than INT_REGISTER_SIZE, so
the contents will be accessed out of the bound.  This patch adds an
array buf[INT_REGISTER_SIZE], and copy val to buf before writing them
to stack.

gdb:

2015-11-16  Yao Qi  <yao.qi@linaro.org>

* arm-tdep.c (arm_push_dummy_call): New array buf.  Store regval
to buf.  Pass buf instead of val to push_stack_item.

8 years agoFixes an invalid warning about memory region overflow on the ARM.
Nick Clifton [Mon, 16 Nov 2015 14:21:28 +0000 (14:21 +0000)] 
Fixes an invalid warning about memory region overflow on the ARM.

PR ld/19106
* emultempl/armelf.em (_set_symbols): New function.  Enables
relaxation for non-relocatable links.
(LDEMUL_SET_SYMBOLS): Define.

8 years agosim: sim-stop/sim-reason/sim-reg: move to common obj list
Mike Frysinger [Mon, 16 Nov 2015 04:06:42 +0000 (20:06 -0800)] 
sim: sim-stop/sim-reason/sim-reg: move to common obj list

Now that all arches (for the most part) have moved over, move sim-stop.o,
sim-reason.o, and sim-reg.o to the common object list and out of all the
arch ports.

8 years agosim: cr16: drop global callback state
Mike Frysinger [Sun, 15 Nov 2015 11:41:26 +0000 (03:41 -0800)] 
sim: cr16: drop global callback state

Now that we have access to the sim state in all the right places,
use existing sim helpers in place of cr16_callback directly.

8 years agosim: cr16: convert to common sim engine logic
Mike Frysinger [Sun, 15 Nov 2015 11:07:06 +0000 (03:07 -0800)] 
sim: cr16: convert to common sim engine logic

Now that we have access to the sim state everywhere, we can convert to
the common engine logic for overall processing.  This frees us up from
tracking exception state ourselves.

8 years agosim: cr16: convert to common sim memory modules
Mike Frysinger [Sun, 15 Nov 2015 23:57:10 +0000 (15:57 -0800)] 
sim: cr16: convert to common sim memory modules

The cr16 port has a lot of translation/offset logic baked into it, but
it all looks like copy & paste from the d10v port rather than something
the cr16 port wants.

8 years agosim: cr16: push down sd/cpu vars
Mike Frysinger [Sun, 15 Nov 2015 10:57:42 +0000 (02:57 -0800)] 
sim: cr16: push down sd/cpu vars

By itself, this commit doesn't really change anything.  It lays the
groundwork for using the cpu state in follow up commits, both for
engine state and for cpu state.  Splitting things up this way so it
is easier to see how things have changed.

8 years agosim: cr16: delete unused memory helpers
Mike Frysinger [Sun, 15 Nov 2015 20:25:29 +0000 (12:25 -0800)] 
sim: cr16: delete unused memory helpers

These aren't used anywhere and are just leftover from the d10v port.
Delete them so follow up commits are easier to follow.

8 years agosim: cr16: switch to common sim-reg
Mike Frysinger [Sun, 15 Nov 2015 20:22:30 +0000 (12:22 -0800)] 
sim: cr16: switch to common sim-reg

This is mostly to get us off the weird cr16 specific memory functions,
but it's also a good clean up to move to the common core.

8 years agosim: cr16/d10v: drop redundant call to sim_create_inferior
Mike Frysinger [Sun, 15 Nov 2015 11:47:10 +0000 (03:47 -0800)] 
sim: cr16/d10v: drop redundant call to sim_create_inferior

With the conversion to the nrun frontend, this call should no longer be
necessary.  It also actively crashes when trying to use the sd state.

8 years agosim: d10v: drop global callback state
Mike Frysinger [Sun, 15 Nov 2015 11:41:26 +0000 (03:41 -0800)] 
sim: d10v: drop global callback state

Now that we have access to the sim state in all the right places,
use existing sim helpers in place of d10v_callback directly.

8 years agosim: d10v: convert to common sim engine logic
Mike Frysinger [Sun, 15 Nov 2015 11:07:06 +0000 (03:07 -0800)] 
sim: d10v: convert to common sim engine logic

Now that we have access to the sim state everywhere, we can convert to
the common engine logic for overall processing.  This frees us up from
tracking exception state ourselves.

8 years agosim: d10v: push down sd/cpu vars
Mike Frysinger [Sun, 15 Nov 2015 10:57:42 +0000 (02:57 -0800)] 
sim: d10v: push down sd/cpu vars

By itself, this commit doesn't really change anything.  It lays the
groundwork for using the cpu state in follow up commits, both for
engine state and for cpu state.  Splitting things up this way so it
is easier to see how things have changed.

8 years agoAutomatic date update in version.in
GDB Administrator [Mon, 16 Nov 2015 00:00:08 +0000 (00:00 +0000)] 
Automatic date update in version.in

8 years agosim: h8300: convert to common sim_{reason,stop}
Mike Frysinger [Sun, 15 Nov 2015 09:04:31 +0000 (01:04 -0800)] 
sim: h8300: convert to common sim_{reason,stop}

This ends up being pretty easy as the h8300 port already supports
much of the common engine core.

8 years agosim: mcore: pull cpu state out of global scope
Mike Frysinger [Sun, 15 Nov 2015 08:42:33 +0000 (00:42 -0800)] 
sim: mcore: pull cpu state out of global scope

This avoids using global variables to hold the cpu state so we can
better integrate with the sim common code.

There's also a minor fix here where we move the pc register back into
the state that is accessible by the asints array.  When it was pulled
out previously, the reg store/fetch functions broke, but no one really
noticed as the mcore gdb port was dropped a while back.

8 years agosim: mcore: switch to common sim-reg
Mike Frysinger [Sun, 15 Nov 2015 08:17:02 +0000 (00:17 -0800)] 
sim: mcore: switch to common sim-reg

This is not entirely useful as mcore doesn't (yet) store its register
state in the cpu state, but it does allow for switching to the common
code for these functions.

8 years agosim: mcore: add a fail testcase
Mike Frysinger [Sun, 15 Nov 2015 08:13:29 +0000 (00:13 -0800)] 
sim: mcore: add a fail testcase

8 years agosim: mcore: convert to common reason/resume logic
Mike Frysinger [Sun, 15 Nov 2015 08:09:32 +0000 (00:09 -0800)] 
sim: mcore: convert to common reason/resume logic

Switch over to the common event loop logic so we don't have to maintain
the exception/exit logic ourselves.

8 years agosim: clean up redundant objects
Mike Frysinger [Sun, 15 Nov 2015 07:43:11 +0000 (02:43 -0500)] 
sim: clean up redundant objects

Some of the target makefiles listed objects that were already pulled in
via SIM_NEW_COMMON_OBJS.  Clean those up.

8 years agosim: sim-close: unify sim_close logic
Mike Frysinger [Mon, 23 Mar 2015 03:10:09 +0000 (23:10 -0400)] 
sim: sim-close: unify sim_close logic

Other than the nice advantage of all sims having to declare one fewer
common function, this also fixes leakage in pretty much every sim.
Many were not freeing any resources, and a few were inconsistent as
to the ones they did.  Now we have a single module that takes care of
all the logic for us.

Most of the non-cgen based ones could be deleted outright.  The cgen
ones required adding a callback to the arch-specific cleanup func.
The few that still have close callbacks are to manage their internal
state.

We do not convert erc32, m32c, ppc, rl78, or rx as they do not use
the common sim core.

8 years agosim: m32c: add a basic testsuite
Mike Frysinger [Mon, 9 Nov 2015 06:16:01 +0000 (01:16 -0500)] 
sim: m32c: add a basic testsuite

8 years agosim: testsuite: support basic vars in flags
Mike Frysinger [Mon, 9 Nov 2015 06:14:57 +0000 (01:14 -0500)] 
sim: testsuite: support basic vars in flags

Sometimes in tests, we need supplemental files like linker scripts or
board helper files.  There's no way to set those flags in the tests
currently and relative paths don't work (breaks out of tree builds).

Update the main option parser to replace some strings on the fly.  Now
tests can do things like:

Long term we'll want to switch the framework to use the dejagnu helpers
like dg-xxx that gcc & gdb utilize.  But that'll require more rework.

8 years agosim: drop extern C linkage from most sim interface headers
Mike Frysinger [Tue, 10 Nov 2015 07:12:52 +0000 (23:12 -0800)] 
sim: drop extern C linkage from most sim interface headers

Since these headers merely have enum's, drop the extern C linkage
markings.  Helps to reduce the copy & paste spam.

8 years agoBump version to 2.26.51
Tristan Gingold [Sun, 15 Nov 2015 00:24:39 +0000 (16:24 -0800)] 
Bump version to 2.26.51

bfd/
2015-11-13  Tristan Gingold  <gingold@adacore.com>

* version.m4: Bump version to 2.26.51
* configure: Regenerate.

binutils/
2015-11-13  Tristan Gingold  <gingold@adacore.com>

* configure: Regenerate.

gas/
2015-11-13  Tristan Gingold  <gingold@adacore.com>

* configure: Regenerate.

gprof/
2015-11-13  Tristan Gingold  <gingold@adacore.com>

* configure: Regenerate.

ld/
2015-11-13  Tristan Gingold  <gingold@adacore.com>

* configure: Regenerate.

opcodes/
2015-11-13  Tristan Gingold  <gingold@adacore.com>

* configure: Regenerate.

8 years agoAutomatic date update in version.in
GDB Administrator [Sun, 15 Nov 2015 00:00:08 +0000 (00:00 +0000)] 
Automatic date update in version.in

8 years agoFix problem where bss symbols for copy relocations are marked local.
Cary Coutant [Sat, 14 Nov 2015 19:04:01 +0000 (11:04 -0800)] 
Fix problem where bss symbols for copy relocations are marked local.

gold/
PR gold/19244
PR gold/18548
* symtab.cc (Symbol_table::do_define_in_output_data): Check for forced
local symbols only for predefined symbols.

8 years agoAutomatic date update in version.in
GDB Administrator [Sat, 14 Nov 2015 00:00:08 +0000 (00:00 +0000)] 
Automatic date update in version.in

8 years agoPR 19051: support of inferior call with gnu vector support on ARM
Yao Qi [Fri, 13 Nov 2015 15:11:58 +0000 (15:11 +0000)] 
PR 19051: support of inferior call with gnu vector support on ARM

This patch teaches GDB to support gnu vector in inferior calls.  As a
result, fails in gdb.base/gnu_vector.exp are fixed.  The calling
convention of gnu vector isn't documented in the AAPCS, because it
is the GCC extension.  I checked the gcc/config/arm/arm.c, understand
how GCC pass arguments and return values, and do the same in GDB side.

The patch is tested with both hard float and soft float on arm-linux.

gdb:

2015-11-13  Yao Qi  <yao.qi@linaro.org>

PR tdep/19051
* arm-tdep.c (arm_type_align): Return the right alignment
value for vector.
(arm_vfp_cprc_sub_candidate): Return true for 64-bit and
128-bit vector types.
(arm_return_in_memory): Handel vector type.

8 years agoRefactor arm_return_in_memory
Yao Qi [Fri, 13 Nov 2015 15:11:58 +0000 (15:11 +0000)] 
Refactor arm_return_in_memory

Current arm_return_in_memory isn't friendly to adding new things in it.
Moreover, a lot of stuff are about APCS, which is not used nowadays (AAPCS
is being used).  This patch is to refactor arm_return_in_memory, so that
some code can be shared for both APCS and AAPCS at the beginning of
arm_return_in_memory, and then each ABI (APCS and AAPCS) are processed
separately.

gdb:

2015-11-13  Yao Qi  <yao.qi@linaro.org>

* arm-tdep.c (arm_return_in_memory): Rewrite it.
(arm_return_value): Call arm_return_in_memory for
TYPE_CODE_COMPLEX.

8 years agoRemove d10v from testsuite
Yao Qi [Fri, 13 Nov 2015 15:06:38 +0000 (15:06 +0000)] 
Remove d10v from testsuite

This patch removes the leftover of the d10v stuff in the testsuite
directory. The d10v port was removed in GDB 6.7, but I happen to see
that there are still some leftovers about d10v in testsuite.

gdb/testsuite:

2015-11-13  Yao Qi  <yao.qi@linaro.org>

* gdb.base/call-sc.exp (test_scalar_returns): Remove the
comments about d10v.
(test_scalar_returns): Likewise.
* gdb.base/d10v.ld: Remove.
* gdb.base/overlays.exp: Remove the target triplet checking for
d10v-*-*.
* gdb.base/structs.exp (test_struct_returns): Remove the
comments about d10v.
(test_struct_calls): Likewise.

8 years agogdb.base/gnu_vector.exp: Don't test output from the inferior
Yao Qi [Fri, 13 Nov 2015 15:03:25 +0000 (15:03 +0000)] 
gdb.base/gnu_vector.exp: Don't test output from the inferior

gdb.base/gnu_vector.c printf the vector and gdb.base/gnu_vector.exp
expects the output by gdb_test_multiple.  Nowadays, the test doesn't
expect the output from inferior_spawn_id, which is wrong.  Even we
change the test to expect from inferior_spawn_id for the inferior
output, it is still possible the inferior exit before tcl/expect gets
the inferior output.  We see this fail on both s390x-linux and
ppc-linux on buildbot,

  FAIL: gdb.base/gnu_vector.exp: verify vector return value (the program exited)

https://sourceware.org/ml/gdb-testers/2015-q4/msg04922.html
https://sourceware.org/ml/gdb-testers/2015-q4/msg04952.html

In order to address these two shortcomings above in gnu_vector.exp,
this patch rewrites the test a little bit.  Get rid of checking the
inferior output, and instead checking them by printing them.  In this
way, the test can also be run on the target without inferior io
(gdb,noinferiorio is set in the board file).

gdb/testsuite:

2015-11-13  Yao Qi  <yao.qi@linaro.org>

* gdb.base/gnu_vector.exp: Check the return value by "p res".
* gdb.base/gnu_vector.c: Don't include stdio.h.
(main): Don't print res and call add_some_intvecs.

8 years agoAdd markers for release 2.26
Tristan Gingold [Fri, 13 Nov 2015 08:30:08 +0000 (09:30 +0100)] 
Add markers for release 2.26

binutils/
2015-11-13  Tristan Gingold  <gingold@adacore.com>

* NEWS: Add marker for 2.26.

gas/
2015-11-13  Tristan Gingold  <gingold@adacore.com>

* NEWS: Add marker for 2.26.

ld/
2015-11-13  Tristan Gingold  <gingold@adacore.com>

* NEWS: Add marker for 2.26.

8 years agoAutomatic date update in version.in
GDB Administrator [Fri, 13 Nov 2015 00:00:07 +0000 (00:00 +0000)] 
Automatic date update in version.in

8 years agoRevert "[LD][AARCH64]Add TLSIE relaxation support under large memory model."
Marcus Shawcroft [Thu, 12 Nov 2015 15:15:28 +0000 (15:15 +0000)] 
Revert "[LD][AARCH64]Add TLSIE relaxation support under large memory model."

This reverts commit 3ebe65c0ff9f8f76c9971b1cc078273298f0c693.

Reverted due to PR19188

8 years ago[AArch64] Add support for Cortex-A35
James Greenhalgh [Thu, 12 Nov 2015 12:04:22 +0000 (12:04 +0000)] 
[AArch64] Add support for Cortex-A35

This patch adds support to the AArch64 back-end for the Cortex-A35
processor, as recently announced by ARM. The ARM Cortex-A35 provides
full support for the ARMv8-A architecture, including the CRC extension,
with optional Advanced-SIMD and Floating-Point support. We therefore set
feature flags for this CPU to AARCH64_ARCH_V8 and AARCH64_FEATURE_CRC, in
the same fashion as Cortex-A53 and Cortex-A57.

Tested in a cross environment for AArch64 with no issues.

8 years agoFix dates in Changelog for previous commit.
Ramana Radhakrishnan [Thu, 12 Nov 2015 11:13:58 +0000 (11:13 +0000)] 
Fix dates in Changelog for previous commit.

582cfe03cb7496371bc6d83af49b6324d0c36887

8 years agoAdd support for Cortex-A35
Ramana Radhakrishnan [Thu, 12 Nov 2015 11:12:53 +0000 (11:12 +0000)] 
Add support for Cortex-A35

2015-11-12  James Greenhalgh  <james.greenhalgh@arm.com>

* config/tc-arm.c (arm_cpus): Likewise.
* doc/c-arm.texi (-mcpu=): Likewise.

8 years agoFix PR gas/19217
Ramana Radhakrishnan [Thu, 12 Nov 2015 10:50:22 +0000 (10:50 +0000)] 
Fix PR gas/19217

2015-11-11  Matthew Wahab  <matthew.wahab@arm.com>

PR gas/19217
* config/tc-arm.c (move_or_literal_pool): Remove redundant feature
check.  Fix some code formatting.  Drop use of MOVT.  Add some
comments.

2015-11-11  Matthew Wahab  <matthew.wahab@arm.com>

PR gas/19217
        * gas/arm/thumb2_ldr_immediate_armv6t2.d: Update expected output.

8 years agoUse gdb_byte * instead of void * in push_stack_item
Yao Qi [Thu, 12 Nov 2015 09:14:20 +0000 (09:14 +0000)] 
Use gdb_byte * instead of void * in push_stack_item

gdb:

2015-11-12  Yao Qi  <yao.qi@linaro.org>

* arm-tdep.c (push_stack_item): Change contents type to
const gdb_byte *.

8 years agoAdd assembler, disassembler and linker support for power9.
Peter Bergner [Thu, 12 Nov 2015 01:52:52 +0000 (19:52 -0600)] 
Add assembler, disassembler and linker support for power9.

include/opcode/
* ppc.h (PPC_OPCODE_POWER9): New define.
(PPC_OPCODE_VSX3): Likewise.

opcodes/
* ppc-dis.c (ppc_opts): Add "power9" and "pwr9" entries.
Add PPC_OPCODE_VSX3 to the vsx entry.
(powerpc_init_dialect): Set default dialect to power9.
        * ppc-opc.c (insert_dcmxs, extract_dcmxs, insert_dxd, extract_dxd,
        insert_dxdn, extract_dxdn, insert_l0, extract_l0, insert_l1,
        extract_l1 insert_xtq6, extract_xtq6): New static functions.
        (insert_esync): Test for illegal L operand value.
(DCMX, DCMXS, DXD, NDXD, L0, L1, RC, FC, UIM6, X_R, RIC, PRS, XSQ6,
XTQ6, LRAND, IMM8, DQX, DQX_MASK, DX, DX_MASK, VXVAPS_MASK, VXVA,XVA,
XX2VA, XVARC, XBF_MASK, XX2UIM4_MASK, XX2BFD_MASK, XX2DCMXS_MASK,
XVA_MASK, XRLA_MASK, XBFRARB_MASK, XLRAND_MASK, POWER9, PPCVEC3,
PPCVSX3): New defines.
(powerpc_opcodes) <ps_cmpu0, ps_cmpo0, ps_cmpu1, ps_cmpo1, fcmpu,
fcmpo, ftdiv, ftsqrt>: Use XBF_MASK.
<mcrxr>: Use XBFRARB_MASK.
<addpcis, bcdcfn., bcdcfsq., bcdcfz., bcdcpsgn., bcdctn., bcdctsq.,
bcdctz., bcds., bcdsetsgn., bcdsr., bcdtrunc., bcdus., bcdutrunc.,
cmpeqb, cmprb, cnttzd, cnttzd., cnttzw, cnttzw., copy, copy_first,
cp_abort, darn, dtstsfi, dtstsfiq, extswsli, extswsli., ldat, ldmx,
lwat, lxsd, lxsibzx, lxsihzx, lxssp, lxv, lxvb16x, lxvh8x, lxvl, lxvll,
lxvwsx, lxvx, maddhd, maddhdu, maddld, mcrxrx, mfvsrld, modsd, modsw,
modud, moduw, msgsync, mtvsrdd, mtvsrws, paste, paste., paste_last,
rmieg, setb, slbieg, slbsync, stdat, stop, stwat, stxsd, stxsibx,
stxsihx, stxssp, stxv, stxvb16x, stxvh8x, stxvl, stxvll, stxvx,
subpcis, urfid, vbpermd, vclzlsbb, vcmpneb, vcmpneb., vcmpneh,
vcmpneh., vcmpnew, vcmpnew., vcmpnezb, vcmpnezb., vcmpnezh, vcmpnezh.,
vcmpnezw, vcmpnezw., vctzb, vctzd, vctzh, vctzlsbb, vctzw, vextractd,
vextractub, vextractuh, vextractuw, vextsb2d, vextsb2w, vextsh2d,
vextsh2w, vextsw2d, vextublx, vextubrx, vextuhlx, vextuhrx, vextuwlx,
vextuwrx, vinsertb, vinsertd, vinserth, vinsertw, vmul10cuq,
vmul10ecuq, vmul10euq, vmul10uq, vnegd, vnegw, vpermr, vprtybd,
vprtybq, vprtybw, vrldmi, vrldnm, vrlwmi, vrlwnm, vslv, vsrv, wait,
xsabsqp, xsaddqp, xsaddqpo, xscmpeqdp, xscmpexpdp, xscmpexpqp,
xscmpgedp, xscmpgtdp, xscmpnedp, xscmpoqp, xscmpuqp, xscpsgnqp,
xscvdphp, xscvdpqp, xscvhpdp, xscvqpdp, xscvqpdpo, xscvqpsdz,
xscvqpswz, xscvqpudz, xscvqpuwz, xscvsdqp, xscvudqp, xsdivqp,
xsdivqpo, xsiexpdp, xsiexpqp, xsmaddqp, xsmaddqpo, xsmaxcdp,
xsmaxjdp, xsmincdp, xsminjdp, xsmsubqp, xsmsubqpo, xsmulqp, xsmulqpo,
xsnabsqp, xsnegqp, xsnmaddqp, xsnmaddqpo, xsnmsubqp, xsnmsubqpo,
xsrqpi, xsrqpix, xsrqpxp, xssqrtqp, xssqrtqpo, xssubqp, xssubqpo,
xststdcdp, xststdcqp, xststdcsp, xsxexpdp, xsxexpqp, xsxsigdp,
xsxsigqp, xvcmpnedp, xvcmpnedp., xvcmpnesp, xvcmpnesp., xvcvhpsp,
xvcvsphp, xviexpdp, xviexpsp, xvtstdcdp, xvtstdcsp, xvxexpdp,
xvxexpsp, xvxsigdp, xvxsigsp, xxbrd, xxbrh, xxbrq, xxbrw, xxextractuw,
xxinsertw, xxperm, xxpermr, xxspltib>: New instructions.
<doze, nap, sleep, rvwinkle, waitasec, lxvx, stxvx>: Disable on POWER9.
<tlbiel, tlbie, sync, slbmfev, slbmfee>: Add additional operands.

include/elf/
* ppc.h (R_PPC_REL16DX_HA): New reloction.
* ppc64.h (R_PPC64_REL16DX_HA): Likewise.

bfd/
* elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_REL16DX_HA.
(ppc_elf_reloc_type_lookup): Handle R_PPC_REL16DX_HA.
(ppc_elf_addr16_ha_reloc): Likewise.
(ppc_elf_check_relocs): Likewise.
(ppc_elf_relocate_section): Likewise.
(is_insn_dq_form): Handle lxv and stxv instructions.
* elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_REL16DX_HA.
(ppc64_elf_reloc_type_lookup): Handle R_PPC64_REL16DX_HA.
(ppc64_elf_ha_reloc): Likewise.
(ppc64_elf_check_relocs): Likewise.
(ppc64_elf_relocate_section): Likewise.
* bfd-in2.h: Regenerate.
* libbfd.h: Likewise.
* reloc.c (BFD_RELOC_PPC_REL16DX_HA): New.

elfcpp/
* powerpc.h (R_POWERPC_REL16DX_HA): Define.

gas/
* doc/as.texinfo (Target PowerPC): Document -mpower9 and -mpwr9.
* doc/c-ppc.texi (PowerPC-Opts):  Likewise.
* config/tc-ppc.c (md_show_usage): Likewise.
(md_assemble): Handle BFD_RELOC_PPC_REL16DX_HA.
(md_apply_fix): Likewise.
(ppc_handle_align): Handle power9's group ending nop.

gas/testsuite/
* gas/ppc/altivec3.s: New test.
* gas/ppc/altivec3.d: Likewise.
* gas/ppc/vsx3.s: Likewise.
* gas/ppc/vsx3.d: Likewise.
* gas/ppc/power9.s: Likewise.
* gas/ppc/power9.d: Likewise.
* gas/ppc/ppc.exp: Run them.
* gas/ppc/power8.s <lxvx, lxvd2x, stxvx, stxvd2x>: Add new tests.
* gas/ppc/power8.d: Likewise.
* gas/ppc/vsx.s: <lxvx, stxvx>: Rename invalid mnemonics ...
<lxvd2x, stxvd2x>: ...to this.
* gas/ppc/vsx.d: Likewise.

gold/
* gold/powerpc.cc (Powerpc_relocate_functions::addr16_dq): New function.
(Powerpc_relocate_functions::addr16dx_ha): Likewise.
(Target_powerpc::Scan::local): Handle R_POWERPC_REL16DX_HA.
(Target_powerpc::Scan::global): Likewise.
(Target_powerpc::Relocate::relocate): Likewise.

ld/testsuite/
* ld-powerpc/addpcis.d: New test.
* ld-powerpc/addpcis.s: New test.
* ld-powerpc/powerpc.exp: Run it.

8 years agoAutomatic date update in version.in
GDB Administrator [Thu, 12 Nov 2015 00:00:09 +0000 (00:00 +0000)] 
Automatic date update in version.in

8 years agogdb/testsuite/gdb.trace: Deduplicate set_point assembly.
Marcin Kościelnicki [Tue, 10 Nov 2015 11:12:00 +0000 (12:12 +0100)] 
gdb/testsuite/gdb.trace: Deduplicate set_point assembly.

The assembly code for emitting the proper tracepointable instruction
was duplicated in many places.  Keep it in one place, to reduce work
needed for new targets.

gdb/testsuite/ChangeLog:

* gdb.trace/change-loc.h: include "trace-common.h", remove SYMBOL
macro.
(func5): Removed.
(func4): Use FAST_TRACEPOINT_LABEL.
* gdb.trace/ftrace-lock.c: include "trace-common.h", remove SYMBOL
macro.
(func): Removed.
(thread_function): Use FAST_TRACEPOINT_LABEL.
* gdb.trace/ftrace.c: include "trace-common.h", remove SYMBOL macro.
(func): Remove.
(marker): Use FAST_TRACEPOINT_LABEL.
* gdb.trace/pendshr1.c: include "trace-common.h", remove SYMBOL macro.
(pendfunc1): Remove.
(pendfunc): Use FAST_TRACEPOINT_LABEL.
* gdb.trace/pendshr2.c: include "trace-common.h", remove SYMBOL macro.
(foo): Remove.
(pendfunc2): Use FAST_TRACEPOINT_LABEL.
* gdb.trace/trace-break.c: include "trace-common.h", remove SYMBOL
macro.
(func): Remove.
(marker): Use FAST_TRACEPOINT_LABEL.
* gdb.trace/trace-common.h: New header.
* gdb.trace/trace-condition.c: include "trace-common.h", remove SYMBOL
macro.
(func): Remove.
(marker): Use FAST_TRACEPOINT_LABEL.
* gdb.trace/trace-mt.c: include "trace-common.h", remove SYMBOL macro.
(func): Remove.
(thread_function): Use FAST_TRACEPOINT_LABEL.

8 years agoReplace long int * cast with PTRACE_TYPE_RET *
Simon Marchi [Wed, 11 Nov 2015 20:16:05 +0000 (15:16 -0500)] 
Replace long int * cast with PTRACE_TYPE_RET *

These casts uses the typedef target type (long int *) instead of the
typedef name.  This was a little mistake in one of the big C++ cast
patches.

gdb/ChangeLog:

* inf-ptrace.c (inf_ptrace_fetch_register): Change long int *
cast to PTRACE_TYPE_RET *.
(inf_ptrace_store_register): Likewise.

8 years agogdb: Make use of 'add_info' to create info sub-commands.
Andrew Burgess [Mon, 9 Nov 2015 20:27:55 +0000 (20:27 +0000)] 
gdb: Make use of 'add_info' to create info sub-commands.

Switch to using 'add_info' function for creating basic info
sub-commands.

gdb/ChangeLog:

* avr-tdep.c (_initialize_avr_tdep): Switch to 'add_info' for creating
info sub-commands.
* gnu-nat.c (add_task_commands): Likewise.
* macrocmd.c (_initialize_macrocmd): Likewise.

8 years agogdb: Use class_info when creating info commands.
Andrew Burgess [Sat, 7 Nov 2015 11:14:20 +0000 (11:14 +0000)] 
gdb: Use class_info when creating info commands.

The 'add_info' function is used for creating info commands, these
commands should be created as 'class_info' rather than 'no_class'.

gdb/ChangeLog:

* cli/cli-decode.c (add_info): Switch to class_info.

8 years agoAutomatic date update in version.in
GDB Administrator [Wed, 11 Nov 2015 00:00:08 +0000 (00:00 +0000)] 
Automatic date update in version.in

8 years agogdb/testsuite/gdb.trace: Deduplicate pcreg/spreg/fpreg.
Marcin Kościelnicki [Tue, 10 Nov 2015 08:52:29 +0000 (09:52 +0100)] 
gdb/testsuite/gdb.trace: Deduplicate pcreg/spreg/fpreg.

These variables were used in many gdb.trace tests.  Keep them in one place,
to reduce work needed for new targets.

gdb/testsuite/ChangeLog:

* gdb.trace/backtrace.exp: Use global fpreg/spreg definition, add $
in front.
* gdb.trace/change-loc.exp: Use global pcreg definition.
* gdb.trace/collection.exp: Use global pcreg/fpreg/spreg definition.
* gdb.trace/entry-values.exp: Use global spreg definition, add $
in front.
* gdb.trace/mi-trace-frame-collected.exp: Use global pcreg definition.
* gdb.trace/pending.exp: Likewise.
* gdb.trace/report.exp: Use global pcreg/fpreg/spreg definition.
* gdb.trace/trace-break.exp: Likewise.
* gdb.trace/trace-condition.exp: Use global pcreg definition, add $
in front.
* gdb.trace/unavailable.exp: Use global pcreg/fpreg/spreg definition.
* gdb.trace/while-dyn.exp: Use global fpreg definition, add $
in front.
* lib/trace-support.exp: Define fpreg, spreg, pcreg variables.

8 years agoAdd Qualcomm qdf24xx support.
Jim Wilson [Tue, 10 Nov 2015 17:19:45 +0000 (09:19 -0800)] 
Add Qualcomm qdf24xx support.

gas/
* config/tc-aarch64.c (aarch64_cpus): Add qdf24xx.
* config/tc-arm.c (arm_cpus): Likewise.
* doc/c-arm.texi, doc/c-aarch64.texi: Likewise.

8 years agoUpdate the RX simulator to handle the latest opcode types.
Nick Clifton [Tue, 10 Nov 2015 16:07:17 +0000 (16:07 +0000)] 
Update the RX simulator to handle the latest opcode types.

* rx.c (id_names): Add nop4, nop5, nop6 and nop7.
(decode_opcode): Likewise.
(get_op): Handle RX_Operand_Zero_Indirect.
Handle RX_Bad_Size and RX_MAX_SIZE.
(put_op): Likewise.
(N_MAP): Increase to 90.

8 years agoHandle x86 VTINHERIT/VTENTRY relocs when deleting relocations
H.J. Lu [Tue, 10 Nov 2015 12:26:55 +0000 (04:26 -0800)] 
Handle x86 VTINHERIT/VTENTRY relocs when deleting relocations

* elf32-i386.c (elf_i386_relocate_section): Handle VTINHERIT
and VTENTRY relocations when deleting relocations.
* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.

8 years agoProperly move kept relocations when deleting relocations
H.J. Lu [Tue, 10 Nov 2015 07:49:02 +0000 (23:49 -0800)] 
Properly move kept relocations when deleting relocations

* elf32-i386.c (elf_i386_relocate_section): Properly move
kept relocations when deleting relocations.
* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.

8 years agoFix performance regression on x86 with ld -r
H.J. Lu [Tue, 10 Nov 2015 07:49:02 +0000 (23:49 -0800)] 
Fix performance regression on x86 with ld -r

Similar fix to "commit c316a17c40e44e8798b34ff84130904f2e7a53de".

* elf32-i386.c (elf_i386_relocate_section): Use read and write
pointers to reloc array, rather than memmove when deleting a
reloc.  Don't use RELOC_AGAINST_DISCARDED_SECTION.  Adjust
reloc counts at end of loop.
* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.

8 years agosim: cr16/d10v: localize translation funcs
Mike Frysinger [Tue, 10 Nov 2015 07:04:53 +0000 (23:04 -0800)] 
sim: cr16/d10v: localize translation funcs

These functions are only used in the interp module, so there's no point
in exporting them and declaring them in the external sim interface.

8 years agoFix performance regression due to ld -r memmove
Alan Modra [Mon, 9 Nov 2015 04:33:29 +0000 (15:03 +1030)] 
Fix performance regression due to ld -r memmove

The idea here is that instead of using memmove to shuffle the relocs
array every time one is deleted, to add a "wrel" pointer and copy from
rel[0] to wrel[0] as we go.

* elf64-ppc.c (ppc64_elf_relocate_section): Use read and write
pointers to reloc array, rather than memmove when deleting a
reloc.  Don't use RELOC_AGAINST_DISCARDED_SECTION.  Adjust
reloc counts at end of loop.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.

8 years agosim: m32c: move test code to testsuite
Mike Frysinger [Mon, 9 Nov 2015 05:13:08 +0000 (00:13 -0500)] 
sim: m32c: move test code to testsuite

Various target code belongs in the testsuite/ subdir, so move the m32c
code to match all the other targets.

8 years agosim: m32c: drop redundant dependency info
Mike Frysinger [Mon, 9 Nov 2015 05:14:26 +0000 (00:14 -0500)] 
sim: m32c: drop redundant dependency info

8 years agosim: h8300: drop unused littleendian variable
Mike Frysinger [Mon, 9 Nov 2015 02:41:53 +0000 (21:41 -0500)] 
sim: h8300: drop unused littleendian variable

8 years agoAutomatic date update in version.in
GDB Administrator [Tue, 10 Nov 2015 00:00:09 +0000 (00:00 +0000)] 
Automatic date update in version.in

8 years agoRecognize .pdr debug sections.
Vladimir Radosavljevic [Tue, 3 Nov 2015 16:18:09 +0000 (16:18 +0000)] 
Recognize .pdr debug sections.

gold/
* layout.h (Layout::is_debug_info_section): Recognize .pdr debug
sections.

8 years agoRemove unnecessary target dependencies on relocation format.
Cary Coutant [Mon, 9 Nov 2015 16:43:46 +0000 (08:43 -0800)] 
Remove unnecessary target dependencies on relocation format.

2015-11-09  Cary Coutant  <ccoutant@gmail.com>
    Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>

gold/
* copy-relocs.h (Copy_relocs::copy_reloc): Replace reloc parameter
with type, offset, addend.
(Copy_relocs::save): Likewise.
* copy-relocs.cc (Copy_relocs::copy_reloc): Likewise.
(Copy_relocs::save): Likewise.
* aarch64.cc (Target_aarch64::copy_reloc): Pass r_type, r_offset,
and r_addend to Copy_relocs::copy_reloc.
* arm.cc (Target_arm::copy_reloc): Likewise.
* i386.cc (Target_i386::copy_reloc): Likewise.
* mips.cc (Target_mips::copy_reloc): Likewise.
* powerpc.cc (Target_powerpc::copy_reloc): Likewise.
* s390.cc (Target_s390::copy_reloc): Likewise.
* sparc.cc (Target_sparc::copy_reloc): Likewise.
* tilegx.cc (Target_tilegx::copy_reloc): Likewise.
* x86_64.cc (Target_x86_64::copy_reloc): Likewise.

8 years ago[Ada] GDB crash during "finish" of function with out parameters
Joel Brobecker [Mon, 9 Nov 2015 17:58:16 +0000 (09:58 -0800)] 
[Ada] GDB crash during "finish" of function with out parameters

Consider a function with the following signature...

   function F (R : out Rec_Type) return Enum_Type;

... where Rec_Type is a simple record:

   type Rec_Type is record
      Cur : Integer;
   end record;

Trying to "finish" from that function causes GDB to SEGV:

    (gdb) fin
    Run till exit from #0  bar.f (r=...) at bar.adb:5
    0x00000000004022fe in foo () at foo.adb:5
    5          I : Enum_Type := F (R);
    [1]    18949 segmentation fault (core dumped)  /[..]/gdb

This is related to the fact that funtion F has a parameter (R)
which is an "out" parameter being passed by copy. For those,
GNAT transforms the return value to be a record with multiple
fields: The first one is called "RETVAL" and contains the return
value shown in the source, and the remaining fields have the same
name as the "out" or "in out" parameters which are passed by copy.
So, in the example above, function F returns a struct that has
one field who name is "r".

Because "RETVAL" starts with "R", GDB thinks it's a wrapper field,
because it looks like the encoding used for  variant records:

   --    member_name ::= {choice} | others_choice
   --    choice ::= simple_choice | range_choice
   --    simple_choice ::= S number
   --    range_choice  ::= R number T number   <<<<<-----  here
   --    number ::= {decimal_digit} [m]
   --    others_choice ::= O (upper case letter O)

See ada_is_wrapper_field:

  return (name != NULL
          && (startswith (name, "PARENT")
              || strcmp (name, "REP") == 0
              || startswith (name, "_parent")
              || name[0] == 'S' || name[0] == 'R' || name[0] == 'O'));

As a result of this, when trying to print the RETURN value,
we think that RETVAL is a wrapper, and thus recurse into
print_field_values...

      if (ada_is_wrapper_field (type, i))
        {
          comma_needed =
            print_field_values (TYPE_FIELD_TYPE (type, i),
                                valaddr,
                                (offset
                                 + TYPE_FIELD_BITPOS (type, i) / HOST_CHAR_BIT),
                                stream, recurse, val, options,
                                comma_needed, type, offset, language);

... which is a problem since print_field_values assumes that
the type it is given ("TYPE_FIELD_TYPE (type, i)" here), is also
a record type. However, that's not the case, since RETVAL is
an enum. That eventually leads GDB to a NULL type when trying to
extract fields out of the enum, which then leads to a SEGV when
trying to dereference it.

Ideally, we'd want to be a little more careful in identifying
wrapper fields, by enhancing ada_is_wrapper_field to be a little
more complete in its analysis of the field name before declaring
it a variant record wrapper. However, it's not super easy to do
so, considering that the choices can be combined together when
complex choices are used. Eg:

   -- [...] the choice 1 .. 4 | 7 | -10 would be represented by
   --    R1T4S7S10m

Given that we are working towards getting rid of GNAT encodings,
which means that the above will eventually disappear, we took
the more pragmatic approach is just treating  RETVAL as a special
case.

gdb/ChangeLog:

        * ada-lang.c (ada_is_wrapper_field): Add special handling
        for fields called "RETVAL".

gdb/testsuite/ChangeLog:

        * gdb.ada/fin_fun_out: New testcase.

8 years agogas: Fix left shift of negative value.
Dominik Vogt [Mon, 9 Nov 2015 16:12:57 +0000 (17:12 +0100)] 
gas: Fix left shift of negative value.

This patch fixes all occurences of left-shifting negative constants in C cod
which is undefined by the C standard.

gas/ChangeLog:

        * read.c (parse_bitfield_cons): Fix left shift of negative value.
        * config/tc-xstormy16.c (md_section_align): Likewise.
        * config/tc-xgate.c (md_section_align): Likewise.
        * config/tc-visium.c (md_section_align): Likewise.
        * config/tc-v850.c (md_section_align): Likewise.
        * config/tc-tic6x.c (md_section_align): Likewise.
        * config/tc-sh.c (SH64PCREL32_M, SH64PCREL48_M, SH64PCREL32_M)
        (MOVI_32_M, MOVI_48_M, MOVI_32_M, md_section_align): Likewise.
        * config/tc-sh64.c (shmedia_md_estimate_size_before_relax): Likewise.
        * config/tc-score.c (s3_section_align): Likewise.
        * config/tc-score7.c (s7_section_align): Likewise.
        * config/tc-s390.c (md_section_align): Likewise.
        * config/tc-rx.c (md_section_align): Likewise.
        * config/tc-rl78.c (md_section_align): Likewise.
        * config/tc-ppc.c (md_section_align): Likewise.
        * config/tc-or1k.c (md_section_align): Likewise.
        * config/tc-nds32.c (md_section_align): Likewise.
        * config/tc-mt.c (md_section_align): Likewise.
        * config/tc-msp430.c (md_section_align): Likewise.
        * config/tc-mn10300.c (md_section_align): Likewise.
        * config/tc-mn10200.c (md_section_align): Likewise.
        * config/tc-mips.c (md_section_align): Likewise.
        * config/tc-microblaze.c (parse_imm): Likewise.
        * config/tc-mep.c (md_section_align): Likewise.
        * config/tc-m68k.c (md_section_align): Likewise.
        * config/tc-m68hc11.c (md_section_align): Likewise.
        * config/tc-m32r.c (md_section_align): Likewise.
        * config/tc-m32c.c (md_section_align): Likewise.
        * config/tc-lm32.c (md_section_align): Likewise.
        * config/tc-iq2000.c (md_section_align): Likewise.
        * config/tc-ip2k.c (md_section_align): Likewise.
        * config/tc-ia64.c (dot_save, dot_vframe): Likewise.
        * config/tc-i960.c (md_number_to_field, md_section_align): Likewise.
        * config/tc-i386.c (md_section_align): Likewise.
        * config/tc-i370.c (md_section_align): Likewise.
        * config/tc-frv.c (md_section_align): Likewise.
        * config/tc-fr30.c (md_section_align): Likewise.
        * config/tc-epiphany.c (md_section_align): Likewise.
        * config/tc-d30v.c (md_section_align): Likewise.
        * config/tc-d10v.c (md_section_align): Likewise.
        * config/tc-cr16.c (l_cons): Likewise.
        * config/tc-bfin.c (md_section_align): Likewise.
        * config/tc-arm.c (md_section_align): Likewise.
        * config/tc-arc.c (md_section_align): Likewise.
        * config/bfin-parse.y (expr_1): Likewise.

gas/testsuite/ChangeLog:

        * gas/all/test-gen.c (random_order_16s, random_order_24s)
        (random_order_32s): Fix left shift of negative value.

8 years agobinutils: Fix left shift of negative value.
Dominik Vogt [Mon, 9 Nov 2015 16:12:56 +0000 (17:12 +0100)] 
binutils: Fix left shift of negative value.

This patch fixes all occurences of left-shifting negative constants in C code
which is undefined by the C standard.

binutils/ChangeLog:

        * dwarf.c (read_leb128): Fix left shift of negative value.

8 years agobfd: Fix left shift of negative value.
Dominik Vogt [Mon, 9 Nov 2015 16:12:56 +0000 (17:12 +0100)] 
bfd: Fix left shift of negative value.

This patch fixes all occurences of left-shifting negative constants in C code
which is undefined by the C standard.

bfd/ChangeLog:

        * elf64-ppc.c (ppc64_elf_size_stubs, ppc64_elf_build_stubs): Fix left
        shift of negative value.
        * libbfd.c (safe_read_leb128): Likewise.
        * dwarf2.c (place_sections): Likewise.
        * bfd-in.h (align_power): Likewise.
        * bfd-in2.h (align_power): Likewise.

8 years agoUse ELF_STRING_ARM_unwind in arm-tdep.c
Yao Qi [Mon, 9 Nov 2015 15:56:20 +0000 (15:56 +0000)] 
Use ELF_STRING_ARM_unwind in arm-tdep.c

We've already has the definition like this,

 #define ELF_STRING_ARM_unwind           ".ARM.exidx"

so it is better to use the macro rather than the string.

gdb:

2015-11-09  Yao Qi  <yao.qi@linaro.org>

* arm-tdep.c (arm_exidx_new_objfile): Use
ELF_STRING_ARM_unwind.

8 years agoNew function displaced_step_in_progress_thread
Yao Qi [Mon, 9 Nov 2015 14:39:56 +0000 (14:39 +0000)] 
New function displaced_step_in_progress_thread

This patch adds a new function displaced_step_in_progress_thread,
which returns whether the thread is in progress of displaced
stepping.

gdb:

2015-11-09  Yao Qi  <yao.qi@linaro.org>

* infrun.c (displaced_step_in_progress_thread): New function.
(handle_inferior_event_1): Call it.

8 years agoMove copy_u.w to MSA64 ASE, remove copy_u.d.
Robert Suchanek [Mon, 9 Nov 2015 08:43:09 +0000 (08:43 +0000)] 
Move copy_u.w to MSA64 ASE, remove copy_u.d.

opcodes/ChangeLog:

* mips-opc.c (mips_builtin_opcodes): Change "copy_u.w" to MSA64 ASE,
remove "copy_u.d".

gas/testsuite/ChangeLog:

* gas/mips/micromips@msa.d: Remove "copy_u.w".
* gas/mips/msa.d: Likewise.
* gas/mips/msa.s: Likweise.
* gas/mips/mipsr6@msa.d: Likewise.  Replace addresses with regex.
* gas/mips/msa64.d: Add "copy_u.w".  Remove "copy_u.d".
* gas/mips/msa64.s: Likewise.
* gas/mips/micromips@msa64.d: Likewise.

8 years agoConfigury changes for obstack optimization
Alan Modra [Mon, 9 Nov 2015 04:47:05 +0000 (15:17 +1030)] 
Configury changes for obstack optimization

Provides defines used to determine whether glibc obstacks are
compatible.  Generally speaking, 32-bit targets won't need to use
obstack.o from libiberty if glibc is used, while 64-bit targets will,
until glibc gets the new obstack code.

libiberty/
* configure.ac: Get size of size_t.
* config.in: Regenerate.
* configure: Regenerate.

8 years agoSilence obstack.c -Wc++compat warning
Alan Modra [Mon, 9 Nov 2015 04:45:51 +0000 (15:15 +1030)] 
Silence obstack.c -Wc++compat warning

Fixes
warning: request for implicit conversion from ‘void *’ to ‘struct _obstack_chunk *’ not permitted in C++ [-Wc++-compat]

I moved the assignment to h->chunk to fix an overlong line, then
decided it would be better after the alloc failure check just to do
things the same way as in _obstack_newchunk.

* obstack.c (_obstack_newchunk): Silence -Wc++compat warning.
(_obstack_begin_worker): Likewise.  Move assignment to h->chunk
after alloc failure check.

8 years agoModify obstack.[hc] to avoid having to include other gnulib files
Alan Modra [Mon, 9 Nov 2015 04:43:51 +0000 (15:13 +1030)] 
Modify obstack.[hc] to avoid having to include other gnulib files

Using the standard gnulib obstack source requires importing quite a
lot of other files from gnulib, and requires build changes.

include/
PR gdb/17133
* obstack.h (__attribute_pure__): Expand _GL_ATTRIBUTE_PURE.
libiberty/
PR gdb/17133
* obstack.c (__alignof__): Expand alignof_type from alignof.h.
(obstack_exit_failure): Don't use exitfail.h.
(_): Include libintl.h when HAVE_LIBINTL_H and nls enabled.
Provide default.  Don't include gettext.h.
(_Noreturn): Define.
* obstacks.texi: Adjust node references to external libc info files.

8 years agoCopy gnulib obstack files
Alan Modra [Mon, 9 Nov 2015 04:42:45 +0000 (15:12 +1030)] 
Copy gnulib obstack files

This copies obstack.[ch] from gnulib, and updates the docs.  The next
patch should be applied if someone repeats the import at a later date.

include/
PR gdb/17133
* obstack.h: Import current gnulib file.
libiberty/
PR gdb/17133
* obstack.c: Import current gnulib file.
* obstacks.texi: Updated doc, from glibc's manual/memory.texi.

8 years agoAutomatic date update in version.in
GDB Administrator [Mon, 9 Nov 2015 00:00:23 +0000 (00:00 +0000)] 
Automatic date update in version.in

8 years agoAutomatic date update in version.in
GDB Administrator [Sun, 8 Nov 2015 00:00:10 +0000 (00:00 +0000)] 
Automatic date update in version.in

8 years agogdb.dwarf2: Don't hardcode certain constants in Dwarf::assemble constructs
Kevin Buettner [Fri, 30 Oct 2015 04:53:51 +0000 (21:53 -0700)] 
gdb.dwarf2: Don't hardcode certain constants in Dwarf::assemble constructs

Two tests in gdb.dwarf2, data-loc.exp and dynarr-ptr.exp assume that
sizeof(int) is 4.  This patch looks up the integer size and uses this
constant for DW_AT_byte_size, DW_AT_lower_bound, and DW_AT_upper_bound.

I discovered this problem while looking at test results for this
msp430 multilib:

msp430-sim/-msim/-mcpu=msp430x/-mlarge/-mdata-region=either/-mcode-region=either

It fixes the following set of failures:

FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.three_ptr.all'first
FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.three_ptr'first
FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.three_ptr_tdef.all'first
FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.three_ptr_tdef'first
FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.five_ptr.all'first
FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.five_ptr'first
FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.five_ptr_tdef.all'first
FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.five_ptr_tdef'first
FAIL: gdb.dwarf2/data-loc.exp: print foo.three
FAIL: gdb.dwarf2/data-loc.exp: print foo.three(1)
FAIL: gdb.dwarf2/data-loc.exp: print foo.three(2)
FAIL: gdb.dwarf2/data-loc.exp: print foo.three(3)
FAIL: gdb.dwarf2/data-loc.exp: print foo.three_tdef
FAIL: gdb.dwarf2/data-loc.exp: print foo.three_tdef(1)
FAIL: gdb.dwarf2/data-loc.exp: print foo.three_tdef(2)
FAIL: gdb.dwarf2/data-loc.exp: print foo.three_tdef(3)
FAIL: gdb.dwarf2/data-loc.exp: print foo.five
FAIL: gdb.dwarf2/data-loc.exp: print foo.five(2)
FAIL: gdb.dwarf2/data-loc.exp: print foo.five(3)
FAIL: gdb.dwarf2/data-loc.exp: print foo.five(4)
FAIL: gdb.dwarf2/data-loc.exp: print foo.five(5)
FAIL: gdb.dwarf2/data-loc.exp: print foo.five(6)
FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef
FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef(2)
FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef(3)
FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef(4)
FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef(5)
FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef(6)
FAIL: gdb.dwarf2/data-loc.exp: print foo__three
FAIL: gdb.dwarf2/data-loc.exp: print foo__three_tdef
FAIL: gdb.dwarf2/data-loc.exp: print foo__five
FAIL: gdb.dwarf2/data-loc.exp: print foo__five_tdef

As I recall, there are still (other) problems with msp430 multilibs
which don't use -mlarge.

gdb/testsuite/ChangeLog:

* gdb.dwarf2/data-loc.exp (Dwarf::assemble): Don't hardcode
value associated with DW_AT_byte_size.
* gdb.dwarf2/dynarr-ptr.exp (Dwarf::assemble): Don't hardcode
constants for DW_AT_byte_size, DW_AT_lower_bound, and
DW_AT_upper_bound.

8 years agotestsuite: Define and use gdb_target_symbol_prefix_flags_asm.
Kevin Buettner [Fri, 6 Nov 2015 04:40:53 +0000 (21:40 -0700)] 
testsuite: Define and use gdb_target_symbol_prefix_flags_asm.

Some of the source code for the test cases in the GDB testsuite
reside in .S files containing assembly code.  These files typically
define a symbol - such as main - which may, depending on the target,
require a prefix such as underscore.

For example, gdb.dwarf2/dw-compdir-oldgcc.S defines the symbol main:

main: .globl main

Some targets, such as rx-elf, require main to have an underscore
prefix.  (If it doesn't, a linker error results due to not being able
to find _main required by crt0.o.) So, instead, the above should look
like this for rx-elf and other targets with this same requirement:

_main: .globl _main

This patch defines a new tcl proc in lib/gdb named
gdb_target_symbol_prefix_flags_asm.  This proc returns a string
which will - assuming everything else is wired up correctly - cause
-DSYMBOL_PREFIX=_ to be passed on the command line to the compiler.

The test cases are augmented with a macro definition for SYMBOL
as follows:

    #define CONCAT1(a, b) CONCAT2(a, b)
    #define CONCAT2(a, b) a ## b

    #ifdef SYMBOL_PREFIX
    # define SYMBOL(str)     CONCAT1(SYMBOL_PREFIX, str)
    #else
    # define SYMBOL(str)     str
    #endif

Symbols, such as main shown in the example earlier are then wrapped
with SYMBOL like this:

SYMBOL(main): .globl SYMBOL(main)

The net effect will be to add a prefix for those targets which need
it and add no prefix for those targets which do not.

It should be noted that there was already a proc in lib/gdb.exp
called gdb_target_symbol_prefix_flags.  It still exists, but has
been significantly rewritten.  (There is only one small difference
between the two versions.)

That proc used to explicitly list targets which were known to
require an underscore prefix.  This is no longer done; the recently
added proc, gdb_target_symbol_prefix, is now invoked to dynamically
discover whether or not a prefix is required for that particular
target.

The difference between gdb_target_symbol_prefix_flags_asm
and gdb_target_symbol_prefix_flags is that the former returns
a bare prefix while the latter returns the prefix enclosed in
double quotes.  I.e. assuming that the discovered prefix is
underscore, gdb_target_symbol_prefix_flags_asm returns:

    additional_flags=-DSYMBOL_PREFIX=_

while gdb_target_symbol_prefix_flags returns:

    additional_flags=-DSYMBOL_PREFIX="_"

The double-quoted version is not suitable for using with .S files
containing assembly code; there is no way to strip the double quotes
using C preprocessor constructs.

It would be possible to use the bare (non double quoted) version in
C source code.  However, the supporting macros become more complicated
and therefore more difficult to maintain.

gdb/testsuite/ChangeLog:

* lib/gdb (gdb_target_symbol_prefix_flags_asm): New proc.
(gdb_target_symbol_prefix_flags): Define in terms of _asm
version.
* gdb.arch/i386-float.exp, gdb.arch/i386-permbkpt.exp,
gdb.dwarf2/dw2-canonicalize-type.exp,
gdb.dwarf2/dw2-compdir-oldgcc.exp, gdb.dwarf2/dw2-minsym-in-cu.exp,
gdb.dwarf2/dw2-op-stack-value.exp, gdb.dwarf2/dw2-unresolved.exp,
gdb.dwarf2/fission-reread.exp, gdb.dwarf2/pr13961.exp: Use flags
provided by gdb_target_symbol_prefix_flags_asm.
* gdb.dwarf2/dw2-canonicalize-type.S, gdb.dwarf2/dw2-compdir-oldgcc.S,
testsuite/gdb.dwarf2/dw2-minsym-in-cu.S,
testsuite/gdb.dwarf2/dw2-unresolved-main.c,
testsuite/gdb.dwarf2/dw2-unresolved.S, gdb.dwarf2/fission-reread.S,
gdb.dwarf2/pr13961.S: Define and use SYMBOL macro (and supporting
macros where needed).  Use this macro for symbols which require
the prefix provided by SYMBOL_PREFIX.

8 years agoAutomatic date update in version.in
GDB Administrator [Sat, 7 Nov 2015 00:00:07 +0000 (00:00 +0000)] 
Automatic date update in version.in

8 years agoDo not use libiberty's getpagesize on Android
Joel Brobecker [Fri, 6 Nov 2015 21:39:19 +0000 (13:39 -0800)] 
Do not use libiberty's getpagesize on Android

Building libiberty on Android currently fails with the error message
shown below.  This was discovered by trying to build GDBserver
for Android, which stopped building after libiberty became
a GDBserver dependency.

Here is the error message:

[...]/getpagesize.c:64:1: error: redefinition of 'getpagesize'
In file included from /[...]/getpagesize.c:34:0:
/[...]/usr/include/unistd.h:171:23: note: previous definition of 'getpagesize' was here

And looking at the definition, one can see that it defined as
a static inline function...

   static __inline__ int getpagesize(void) {
     extern unsigned int __page_size;
     return __page_size;
   }

... which explains why the AC_CHECK_FUNCS test failed to detect
the function, since there is no associated symbol to be linked in.

This patch prevents getpagesize.c to be compiled in by hard-coding
the fact that getpagesize is available on android hosts.

libiberty/ChangeLog:

        * configure.ac: Set AC_CV_FUNC_GETPAGESIZE to "yes" on
        Android hosts.
        * configure: Regenerate.

This page took 0.052527 seconds and 4 git commands to generate.