• R/O
  • HTTP
  • SSH
  • HTTPS

Liste der Commits

Tags
Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


users/pinskia/gdb-aarch64-ilp32
RSS
Rev. Zeit Autor
888a447 users/pinskia/gdb-aarch64-ilp32 2015-09-10 21:02:38 Andrew Pinski

2015-09-22 Andrew Pinski <apinski@cavium.com>

* elfxx-aarch64.c (_bfd_aarch64_elf_grok_prstatus):
Add ILP32 sized prstatus.
(_bfd_aarch64_elf_grok_psinfo): Likewise.

9af9f32 2015-09-20 07:16:43 Andrew Pinski

2015-09-19 Andrew Pinski <apinski@cavium.com>

* gdb.arch/aarch64-atomic-inst.c: Use unsigned long long
instead of unsigned long to fix for ILP32.

99f731e 2015-09-07 18:12:36 Andrew Pinski

2015-09-07 Andrew Pinski <apinski@cavium.com>

* aarch64-tdep.h (gdbarch_tdep): Add ilp32 field.
* aarch64-tdep.c (aarch64_gdbarch_init): Setup ILP32 support.
Make sure the gdbarches have compatible ilp32 flags.
Set long and ptr sizes correctly for ilp32.
* aarch64-linux-tdep.c (aarch64_linux_init_abi):
Add support for ILP32.

5fce561 2015-09-07 18:06:18 Andrew Pinski

2015-09-07 Andrew Pinski <apinski@cavium.com>

* cpu-aarch64.c (compatible):
Don't reject different mach or ILP32 here.
* elfnn-aarch64.c (elfNN_aarch64_merge_private_bfd_data):
Add an error message on why endianess is rejected.
Reject different ILP32/LP64 settings.

b31103a 2015-09-07 09:00:07 GDB Administrator

Automatic date update in version.in

7d8316e 2015-09-06 09:00:08 GDB Administrator

Automatic date update in version.in

e32aa93 2015-09-05 22:44:53 H.J. Lu

Update ld-elf/orphan-8.map to support 32-bit targets

* ld-elf/orphan-8.map: Updated to support 32-bit targets.

53db1ab 2015-09-05 09:00:08 GDB Administrator

Automatic date update in version.in

c005eb9 2015-09-05 06:30:55 Andrew Burgess

ld: Extend options for altering orphan handling behaviour.

Replace the options --warn-orphan and --no-warn-orphan with a single
option --orphan-handling=MODE, where mode can be place, warn, error, and
discard.

Mode 'place' is the default, and is the current behaviour, placing the
orphan section into a suitable output section.

Mode 'warn' is the same as '--warn-orphan'. The orphan is also placed
using the same algorithm as for 'place'.

Mode 'error' is the same as '--warn-orphan' and '--fatal-warnings'.

Mode 'discard' assigns all output sections to the /DISCARD/ section.

ld/ChangeLog:

* ld.h (enum orphan_handling_enum): New.
(ld_config_type): Remove warn_orphan, add orphan_handling.
* ldemul.c (ldemul_place_orphan): Remove warning about orphan
sections.
* ldlang.c (ldlang_place_orphan): New function.
(lang_place_orphans): Call ldlang_place_orphan.
* ldlex.h (enum option_values): Remove OPTION_WARN_ORPHAN and
OPTION_NO_WARN_ORPHAN, add OPTION_ORPHAN_HANDLING.
* lexsup.c (ld_options): Remove 'warn-orphan' and
'no-warn-orphan', add 'orphan-handling'.
(parse_args): Remove handling for OPTION_WARN_ORPHAN and
OPTION_NO_WARN_ORPHAN, add handling for OPTION_ORPHAN_HANDLING.
* NEWS: Replace text about --warn-orphan with --orphan-handling.
* ld.texinfo (Options): Remove --warn-orphan entry and add
entry on --orphan-handling.
(Orphan Sections): Add reference to relevant command line options.

ld/testsuite/ChangeLog:

* ld-elf/elf.exp: Switch to rely on run_dump_test.
* ld-elf/orphan-5.l: Update expected output.
* ld-elf/orphan-5.d: New file.
* ld-elf/orphan-6.d: New file.
* ld-elf/orphan-6.l: New file.
* ld-elf/orphan-7.d: New file.
* ld-elf/orphan-7.map: New file.
* ld-elf/orphan-8.d: New file.
* ld-elf/orphan-8.map: New file.

e65b524 2015-09-05 00:50:41 Andrew Burgess

gdb/tui: Remove casts of NULL during assignment.

In the following code:

struct symbol *wsym = (struct symbol *) NULL;

the cast of NULL is redundant, it adds noise, and is just one more thing
to change if the type of wsym ever changes. There are a relatively
small number of places in gdb where the above code pattern is used.
Usually the cast is removed like this:

struct symbol *wsym = NULL;

This commit updates all the places within the gdb/tui directory where we
cast NULL during assignment, removing the cast.

gdb/ChangeLog:

* tui/tui-data.c (win_with_focus): Remove cast of NULL pointer.
(tui_next_win): Likewise.
(tui_prev_win): Likewise.
(tui_partial_win_by_name): Likewise.
(tui_init_generic_part): Likewise.
(init_content_element): Likewise.
(tui_del_window): Likewise.
(tui_free_window): Likewise.
(tui_del_data_windows): Likewise.
(tui_free_data_content): Likewise.
* tui/tui-layout.c (make_source_or_disasm_window): Likewise.
* tui/tui-regs.c (tui_show_register_group): Likewise.
* tui/tui-win.c (tui_resize_all): Likewise.
(tui_set_focus): Likewise.
(tui_set_win_height): Likewise.
(make_invisible_and_set_new_height): Likewise.
* tui/tui-windata.c (tui_delete_data_content_windows): Likewise.
* tui/tui-wingeneral.c (make_visible): Likewise.

b03e6ad 2015-09-05 00:50:20 Andrew Burgess

gdb/cli: Remove casts of NULL during assignment.

In the following code:

struct symbol *wsym = (struct symbol *) NULL;

the cast of NULL is redundant, it adds noise, and is just one more thing
to change if the type of wsym ever changes. There are a relatively
small number of places in gdb where the above code pattern is used.
Usually the cast is removed like this:

struct symbol *wsym = NULL;

This commit updates all the places within the gdb/cli directory where we
cast NULL during assignment, removing the cast.

gdb/ChangeLog:

* cli/cli-decode.c (find_cmd): Remove cast of NULL pointer.

be90335 2015-09-05 00:49:54 Andrew Burgess

gdb: Remove casts of NULL during assignment.

In the following code:

struct symbol *wsym = (struct symbol *) NULL;

the cast of NULL is redundant, it adds noise, and is just one more thing
to change if the type of wsym ever changes. There are a relatively
small number of places in gdb where the above code pattern is used.
Usually the cast is removed like this:

struct symbol *wsym = NULL;

This commit updates all the places within the gdb/ directory where we
cast NULL during assignment, removing the cast.

gdb/ChangeLog:

* c-valprint.c (print_unpacked_pointer): Remove cast of NULL
pointer.
* dbxread.c (dbx_end_psymtab): Likewise.
* gnu-nat.c (gnu_write_inferior): Likewise.
* mdebugread.c (cross_ref): Likewise.
* p-valprint.c (pascal_val_print): Likewise.
* xcoffread.c (xcoff_end_psymtab): Likewise.

02f024f 2015-09-04 23:27:52 Yao Qi

Mention multi-arch debugging support in NEWS

gdb:

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

* NEWS: Mention the aarch64 multi-arch debugging support.

096abbe 2015-09-04 09:00:09 GDB Administrator

Automatic date update in version.in

cd7c177 2015-09-04 00:52:05 Pierre-Marie de Rodat

[Ada] Make string_char_type a true TYPE_CODE_CHAR type in Ada

Before this change, trying to call an overloaded function with at least
one character literal in argument would fail. For instance, given these
two functions:

function F (C : Character) return Integer is
begin
return Character'Pos (C);
end F;

function F (I : Integer) return Integer is
begin
return -I;
end F;

We would get the following GDB session:

(gdb) p f('A')
$1 = -65
(gdb) p f(1)
$1 = -1

This is wrong because the first call should select the first F function
and thus return 65.

The root problem is that ada-lang.c:ada_language_arch_info stores in
string_char_type a type whose code is TYPE_CODE_INT instead of
TYPE_CODE_CHAR. As a result, all parsed character literals are turned
into integer values and during overload matching, the TYPE_CODE_CHAR
formal rejects the TYPE_CODE_INT actual.

This change turns string_char_type into a true TYPE_CODE_CHAR type in
ada-lang.c so that we have instead the expected:

(gdb) p f('A')
$1 = 65

gdb/ChangeLog:

* ada-lang.c (ada_language_arch_info): Create a TYPE_CODE_CHAR
type instead of a TYPE_CODE_INT one for the string_char_type
and the ada_primitive_type_char types.

gdb/testsuite/ChangeLog:

* gdb.ada/funcall_char.exp: New testcase.
* gdb.ada/funcall_char/foo.adb: New file.

Tested on x86_64-linux, no regression.

a5e406b 2015-09-04 00:49:18 Nick Clifton

Fix typo in desription of linker script symbols.

(Source Code Reference): Fix off-by-one typo in example of how to
use linker script symbols in C source code.

1a91555 2015-09-04 00:15:49 Nick Clifton

Fix seg-fault in readelf when scanniing a corrupt binary.

PR binutils/18879
* readelf.c (get_unwind_section_word): Check for negative offsets
and very small sections.
(dump_arm_unwind): Warn if the table offset is too large.

39edd16 2015-09-03 22:01:49 Yao Qi

[aarch64] Check region OK for HW watchpoint in GDBserver

Nowadays, if user requests HW watchpoint to monitor a large memory area
or unaligned area, aarch64 GDB will split into multiple aligned areas,
and use multiple debugging registers to watch them. However, the
registers are not updated in a transaction way. GDBserver doesn't revert
updates in previous iterations if some debugging registers fail to update
due to some reason, like no free debugging registers available, in the
latter iteration. For example, if we have a char buf[34], and watch buf
in gdb,

(gdb) watch buf
Hardware watchpoint 2: buf
(gdb) c
Continuing.
infrun: clear_proceed_status_thread (Thread 13466)
infrun: proceed (addr=0xffffffffffffffff, signal=GDB_SIGNAL_DEFAULT)
infrun: step-over queue now empty
infrun: resuming [Thread 13466] for step-over
Sending packet: $m410838,22#35...Packet received: 00000000000000000000000000000000000000000000000000000000000000000000
infrun: skipping breakpoint: stepping past insn at: 0x400524
infrun: skipping breakpoint: stepping past insn at: 0x400524
Sending packet: $Z2,410838,22#80...Packet received: E01 <----- [1]
Packet Z2 (write-watchpoint) is supported
Sending packet: $Z0,7fb7fe0a8c,4#43...Packet received: OK
Warning:
Could not insert hardware watchpoint 2.
Could not insert hardware breakpoints:
You may have requested too many hardware breakpoints/watchpoints.

GDB receives E01 for Z2 packet [1] but GDBserver updates the debugging
register status,

insert_point (addr=0x00410838, len=34, type=hw-write-watchpoint):
BREAKPOINTs:
BP0: addr=0x0, ctrl=0x00000000, ref.count=0
BP1: addr=0x0, ctrl=0x00000000, ref.count=0
BP2: addr=0x0, ctrl=0x00000000, ref.count=0
BP3: addr=0x0, ctrl=0x00000000, ref.count=0
BP4: addr=0x0, ctrl=0x00000000, ref.count=0
BP5: addr=0x0, ctrl=0x00000000, ref.count=0
WATCHPOINTs:
WP0: addr=0x410850, ctrl=0x00001ff5, ref.count=1
WP1: addr=0x410848, ctrl=0x00001ff5, ref.count=1
WP2: addr=0x410840, ctrl=0x00001ff5, ref.count=1
WP3: addr=0x410838, ctrl=0x00001ff5, ref.count=1

four debugging registers can not monitor 34-byte long area, so the last
iteration of updating debugging register state fails but previous
iterations succeed. This makes GDB think no HW watchpoint is inserted
but some debugging registers are used.

This problem was exposed by "watch buf" gdb.base/watchpoint.exp with
aarch64 GDBserver debugging arm 32-bit program. The buf is 30-byte long
but 4-byte aligned, and four debugging registers can't cover 34-byte
(extend 4 bytes to be 8-byte aligned) area. However, this problem
does exist on non-multi-arch debugging scenario as well.

This patch moves code in aarch64_linux_region_ok_for_hw_watchpoint to
aarch64_linux_region_ok_for_watchpoint in nat/aarch64-linux-hw-point.c.
Then, checks with aarch64_linux_region_ok_for_watchpoint, like what we
are doing in GDB. If the region is OK, call aarch64_handle_watchpoint.

Regression tested on aarch64 with both 64-bit program and 32-bit
program. Some fails in gdb.base/watchpoint.exp are fixed.

gdb:

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

* aarch64-linux-nat.c (aarch64_linux_region_ok_for_hw_watchpoint):
Move code to aarch64_linux_region_ok_for_watchpoint. Call
aarch64_linux_region_ok_for_watchpoint.
* nat/aarch64-linux-hw-point.c (aarch64_linux_region_ok_for_watchpoint):
New function.
* nat/aarch64-linux-hw-point.h (aarch64_linux_region_ok_for_watchpoint):
Declare it.

gdb/gdbserver:

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

* linux-aarch64-low.c (aarch64_insert_point): Call
aarch64_handle_watchpoint if aarch64_linux_region_ok_for_watchpoint
returns true.

6033bf4 2015-09-03 20:55:57 Nick Clifton

Fix a typo in the linker documentation: The COFF section .build-id should be .buildid.

77697d4 2015-09-03 20:17:05 H.J. Lu

Remove convert_mov_to_lea

* elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Remove
convert_mov_to_lea.

8c650f1 2015-09-03 20:03:13 H.J. Lu

Add ifunc tests for call, jmp, add, test

* ld-ifunc/ifunc-21-i386.s: Add tests for call, jmp, add, test.
* ld-ifunc/ifunc-21-x86-64.s: Likewise.
* ld-ifunc/ifunc-22-i386.s: Likewise.
* ld-ifunc/ifunc-22-x86-64.s: Likewise.
* ld-ifunc/ifunc-21-i386.d: Updated.
* ld-ifunc/ifunc-21-x86-64.d: Likewise.
* ld-ifunc/ifunc-22-i386.d: Likewise.
* ld-ifunc/ifunc-22-x86-64.d: Likewise.

6c214e7 2015-09-03 09:53:33 Patrick Palka

Use gdbarch obstack to allocate the TYPE_NAME string in arch_type

Since the type whose name is being set is now being allocated on the
gdbarch obstack, we should allocate its TYPE_NAME on the obstack too.
This reduces the number of individual valgrind warnings for the command
"gdb gdb" from ~300 to ~150.

Tested on x86_64-unknown-linux-gnu.

gdb/ChangeLog:

* gdb_obstack.h (obstack_strdup): Declare.
* gdb_obstack.c (obstack_strdup): Define.
* gdbarch.sh (gdbarch_obstack_strdup): Declare and define.
* gdbarch.c: Regenerate.
* gdbarch.h: Regenerate.
* gdbtypes.c (arch_type): Use gdbarch_obstack_strdup.

eed8b28 2015-09-03 09:50:46 Patrick Palka

Update documentation of function copy_type_recursive

Following commit 8f57eec2fb3 ("Use gdbarch obstack to allocate types in
alloc_type_arch") it is no longer the case that the type returned by
copy_type_recursive is allocated using malloc. Because the function
uses alloc_type_arch internally, the new type is now allocated on the
gdbarch associated with the type, and is thus owned by that gdbarch.

gdb/ChangeLog:

* gdbtypes.c (copy_type_recursive): Update documentation.

8cbebaa 2015-09-03 09:00:11 GDB Administrator

Automatic date update in version.in

0762fbb 2015-09-03 07:30:32 H.J. Lu

Add 2 ifunc tests for i386 and x86-64

* ld-ifunc/ifunc-21-i386.d: Likewise.
* ld-ifunc/ifunc-21-i386.s: Likewise.
* ld-ifunc/ifunc-21-x86-64.d: Likewise.
* ld-ifunc/ifunc-21-x86-64.s: Likewise.
* ld-ifunc/ifunc-22-i386.d: Likewise.
* ld-ifunc/ifunc-22-i386.s: Likewise.
* ld-ifunc/ifunc-22-x86-64.d: Likewise.
* ld-ifunc/ifunc-22-x86-64.s: Likewise.

c74be52 2015-09-02 21:13:08 H.J. Lu

Rename R_386_irelative to R_386_ext2

* elf32-i386.c (R_386_irelative): Renamed to ...
(R_386_ext2): This.
(R_386_vt_offset): Updated.
(elf_i386_rtype_to_howto): Likewise.
(elf_i386_relocate_section): Likewise.

358de98 2015-09-02 20:17:43 H.J. Lu

Turn IFUNC symbols from shared libraries into normal FUNC symbols

Turn IFUNC symbols from shared libraries into normal FUNC symbols when
we are resolving symbol references, instead of when we are writing out
the symbol table.

PR gold/18886
* resolve.cc (Symbol::override_base): Turn IFUNC symbols from
shared libraries into normal FUNC symbols.
* symtab.cc (Symbol_table::sized_write_symbol): Assert IFUNC
symbols aren't from shared libraries.

d49044c 2015-09-02 15:37:02 Alan Modra

[GOLD] ppc64 out-of-line register save/restore functions

Gold version of a4b6fadd. Don't emit long branch or plt branch stubs
to save/restore functions. Copy them instead.

PR 18878
* powerpc.cc (Target_powerpc): Add savres_section_ and accessor.
(Target_powerpc::Branch_info::make_stub): Determine whether long
branch stub is for save/restore function.
(Branch_stub_ent): Add save_res_, and extra parm to constructor.
(Stub_table): Add need_save_res_.
(Stub_table:clear_stubs): Clear need_save_res_.
(Stub_table:set_address_and_size): Add save/restore section size.
(Stub_table::add_long_branch_entry): Add save_res param. Set
need_save_res_, but don't add space for save/restore stubs.
(Stub_table::find_long_branch_entry): Return offset to local copy
of save/restore func.
(Stub_table::do_write): Don't output save/restore stubs. Instead
copy the save/restore functions.
(Output_data_save_res:contents): New accessor.
(Target_powerpc::define_save_restore_funcs): Set savres_section_.

73c6b47 2015-09-02 13:46:43 Sergio Durigan Junior

Initialize yet another variable to silence GCC warning from last-but-one commit

Yet another BuildBot e-mail, yet another breakage on RHEL-7.1 s390x
(which uses an older GCC). This time,
solib-svr4.c:solib_event_probe_action has the probe_argc variable,
which is now inside a TRY..CATCH and therefore needs to be
initialized. Pushed as obvious.

gdb/ChangeLog:
2015-09-01 Sergio Durigan Junior <sergiodj@redhat.com>

* solib-svr4.c (solib_event_probe_action): Initialize 'probe_argc'
as zero.

ad1c917 2015-09-02 13:34:22 Sergio Durigan Junior

Initialize variable and silence GCC warning from last commit

BuildBot e-mailed me to let me know that my last commit broke GDB on
RHEL-7.1 s390x. On solib-svr4.c:svr4_handle_solib_event, 'val' now
needs to be initialized as NULL because it is inside a TRY..CATCH
block. This patch does that. Pushed as obvious.

gdb/ChangeLog:
2015-09-01 Sergio Durigan Junior <sergiodj@redhat.com>

* solib-svr4.c (svr4_handle_solib_event): Initialize 'val' as NULL