• R/O
  • HTTP
  • SSH
  • HTTPS

List of commits

Tags
No 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/hjl/branch
RSS
Rev. Tiempo Autor
d0c899f users/hjl/branch 2015-05-15 22:48:19 H.J. Lu

-mamd64 -mintel64

c830236 2015-05-15 21:49:00 H.J. Lu

Add AMD64 call/jmp

95d04ed 2015-05-15 20:57:58 H.J. Lu

Add CpuAMD64 and CpuIntel64

* i386-gen.c (cpu_flags): Add CpuAMD64 and CpuIntel64.
* i386-opc.h (AMD64): New.
(CpuIntel64): Likewise.
(i386_cpu_flags): Add cpuamd64 and cpuintel64.

8dcea93 2015-05-15 19:30:53 H.J. Lu

Add -mshared option to x86 ELF assembler

This patch adds -mshared option to x86 ELF assembler. By default,
assembler will optimize out non-PLT relocations against defined non-weak
global branch targets with default visibility. The -mshared option tells
the assembler to generate code which may go into a shared library
where all non-weak global branch targets with default visibility can
be preempted. The resulting code is slightly bigger. This option
only affects the handling of branch instructions.

This Linux kernel patch is needed to create a working x86 Linux kernel if
it hasn't been applied:

diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index ae6588b..b91a00c 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -339,8 +339,8 @@ early_idt_handlers:
i = i + 1
.endr

-/* This is global to keep gas from relaxing the jumps */
-ENTRY(early_idt_handler)
+/* This is weak to keep gas from relaxing the jumps */
+WEAK(early_idt_handler)
cld

cmpl $2,(%rsp) # X86_TRAP_NMI
--

gas/

* config/tc-i386.c (shared): New.
(OPTION_MSHARED): Likewise.
(elf_symbol_resolved_in_segment_p): Add relocation argument.
Check PLT relocations and shared.
(md_estimate_size_before_relax): Pass fragP->fr_var to
elf_symbol_resolved_in_segment_p.
(md_longopts): Add -mshared.
(md_show_usage): Likewise.
(md_parse_option): Handle OPTION_MSHARED.
* doc/c-i386.texi: Document -mshared.

gas/testsuite/

* gas/i386/i386.exp: Don't run pcrel for ELF targets. Run
pcrel-elf, relax-4 and x86-64-relax-3 for ELF targets.
* gas/i386/pcrel-elf.d: New file.
* gas/i386/relax-4.d: Likewise.
* gas/i386/x86-64-relax-3.d: Likewise.
* gas/i386/relax-3.d: Pass -mshared to assembler. Updated.
* gas/i386/x86-64-relax-2.d: Likewise.
* gas/i386/relax-3.s: Add test for PLT relocation.

d1c4b12 2015-05-15 19:24:33 Nick Clifton

Fix PR18374 by making readelf and objdump ignore end-of-list markers in the .debug_loc section if there are relocations against them.

PR binutils/18374
bin * dwarf.h (struct dwarf_section): Add reloc_info and num_relocs
fields.
(struct dwarf_section_display): Change bitfield to boolean.
(reloc_at): Add prototype.
* dwarf.c (display_loc_list): Ignore list terminators if there are
relocs against them.
(display_debug_loc): Issue a warning if there are relocs against
the .debug_loc section.
(display_displays): Initialise reloc_info and num_relocs fields.
* objdump.c (load_specific_debug_section): Initialise reloc_info
and num_relocs fields.
(reloc_at): New function.
* readelf.c (is_32bit_abs_reloc): Add IA64's R_IA64_DIS32LSB
reloc.
(reloc_at): New function.
(apply_relocations): Add relocs_return and num_relocs_return
parameters. Fill them in with the loaded relocs if non-NULL.
(dump_section_as_bytes): Update call to apply_relocations.
(load_specific_debug_section): Initialise reloc_info and
num_relocs fields.

tests * binutils-all/pr18374.s: New test file.
* binutils-all/readelf.exp: Assemble and run the new test.
* binutils-all/readelf.pr18374: Expected output from readelf.

4bc0608 2015-05-15 11:02:50 Peter Bergner

Fix some PPC assembler errors.

Remove the wait instructions for server processors, since they were never
implemented. Also add the extra operands added to the tlbie and slbia
instructions with ISA 2.06 and ISA 2.05 respectively.

binutils/
* MAINTAINERS: Add myself as PPC maintainer.

opcodes/
* ppc-opc.c (IH) New define.
(powerpc_opcodes) <wait>: Do not enable for POWER7.
<tlbie>: Add RS operand for POWER7.
<slbia>: Add IH operand for POWER6.

gas/testsuite/
* gas/ppc/power4.d: Add a slbia test.
* gas/ppc/power4.s: Likewise.
* gas/ppc/power6.d: Add slbia and tlbie tests.
* gas/ppc/power6.s: Likewise.
* gas/ppc/power7.d: Remove wait tests. Add a tlbie test.
* gas/ppc/power7.s: Likewise.

49a84e1 2015-05-15 09:00:08 GDB Administrator

Automatic date update in version.in

dab394d 2015-05-15 08:02:08 H.J. Lu

Don't add the zlib header to SHF_COMPRESSED section

In a SHF_COMPRESSED compressed section, the raw compressed data should
begin immediately after the compression header. This patch removes the
extra zlib header from the SHF_COMPRESSED section.

bfd/

* bfd.c (bfd_update_compression_header): Also write the zlib
header if the SHF_COMPRESSED bit cleared..
(bfd_check_compression_header): Return the uncompressed size.
* compress.c (decompress_contents): Don't skip the zlib header.
(bfd_compress_section_contents): Properly handle ELFCOMPRESS_ZLIB,
which doesn't have the zlib header.
(bfd_init_section_decompress_status): Likewise.
(bfd_get_full_section_contents): Updated.
(bfd_is_section_compressed): Likewise.
(bfd_is_section_compressed_with_header): Return the uncompressed
size.
* elf.c (_bfd_elf_make_section_from_shdr): Updated.
* bfd-in2.h: Regenerated.

binutils/

* readelf.c (uncompress_section_contents): Add a parameter for
uncompressed size. Don't check the zlib header.
(load_specific_debug_section): Updated.

binutils/testsuite/

* binutils-all/compress.exp: Replace "$OBJDUMP -s -j .debug_info"
with "$OBJDUMP -W".
* binutils-all/libdw2-compressedgabi.out: Updated.

gas/

2015-05-14 H.J. Lu <hongjiu.lu@intel.com>

* write.c (compress_debug): Don't write the zlib header, which
is handled by bfd_update_compression_header.

61a7418 2015-05-15 05:11:41 Don Breazeal

Fix build gdbserver build errors on arm, mips, aarch64.

Fix build errors introduced by
https://sourceware.org/ml/gdb-patches/2015-05/msg00281.html, which
didn't account for the change of the name of the struct process_info
field 'private' to 'priv' made in
https://sourceware.org/ml/gdb-patches/2015-02/msg00829.html.

gdb/gdbserver/ChangeLog:

* linux-aarch64-low.c (aarch64_linux_new_fork): Change reference
to process_info.private to process_info.priv.
* linux-arm-low.c (arm_new_fork): Likewise.
* linux-mips-low.c (mips_linux_new_fork): Likewise.

1041a03 2015-05-14 23:13:16 Joel Brobecker

Fix gdbserver build failure on arm-android.

The following patch...

| proc-service, extern "C"
|
| libthread_db.so calls symbols in the client (GDB), through the
| proc-service interface. These routines must have extern "C" linkage
| so their symbol names are not mangled when GDB is built as a C++
| program. On the GDBserver side, we were missing fallback declarations for
| all these symbols.
|
| gdb/ChangeLog:
|
| * gdb_proc_service.h: Wrap with EXTERN_C_PUSH/EXTERN_C_POP.
|
| gdb/gdbserver/ChangeLog:
| 2015-02-27 Pedro Alves <palves@redhat.com>
|
| * gdb_proc_service.h: Wrap with EXTERN_C_PUSH/EXTERN_C_POP.
| [!HAVE_PROC_SERVICE_H] (struct ps_prochandle): Forward declare.
| [!HAVE_PROC_SERVICE_H] (ps_pdread, ps_pdwrite, ps_ptread)
| ps_ptwrite, ps_lgetregs, ps_lsetregs, ps_lgetfpregs)
| (ps_lsetfpregs, ps_getpid)
| (ps_get_thread_area, ps_pglobal_lookup, ps_pstop, ps_pcontinue)
| (ps_lstop, ps_lcontinue, ps_lgetxregsize, ps_lgetxregs)
| (ps_lsetxregs, ps_plog): Declare.

... added a number of declarations which do not compile when cross-
compiling GDBserver on arm-android. The problem comes from type
prfpregset_t not being declared:

/[...]/gdbserver/gdb_proc_service.h:98:47:
error: unknown type name 'prfpregset_t'

After searching through the includes of the install we have,
I could not find that type being declared anywhere. So I did
the same as for prgregset_t, and created the typedef if the
type isn't declared.

gdb/gdbserver/ChangeLog:

* configure.ac: Add prfpregset_t BFD_HAVE_SYS_PROCFS_TYPE check.
* configure, config.in: Regenerate.
* gdb_proc_service.h [HAVE_PRFPREGSET_T] (prfpregset_t):
Declare typedef.

e355523 2015-05-14 21:18:06 Patrick Palka

Remove buggy xterm workaround in tui_dispatch_ctrl_char()

The function tui_dispatch_ctrl_char() has an old workaround (from 1999)
for buggy terminals and/or ncurses library that don't return page
up/down keys as single characters. Because the workaround is so old, I
think the bug it is targetting is no longer relevant anymore.

But more importantly, the workaround is itself buggy: it 1) performs a
blocking call to wgetch() and 2) if the key returned by wgetch() does
not make up a relevant key sequence it throws away the input instead of
pushing it back via ungetch(). And indeed the workaround breaks Alt-key
sequences under TERM=xterm because of bug #2.

So this patch removes the buggy workaround and tidies up the function
accordingly.

I personally tested this change on a recent xterm (with TERM=xterm) in
Fedora 20 and had no problems with having ncurses properly interpret
page up/down keys. And Alt-key sequences now work when TERM=xterm too.

gdb/ChangeLog:

* tui/tui-command.c: Remove include of <ctype.h>.
(tui_dispatch_ctrl_char): Remove workaround for xterm terminals.

fdc3b1b 2015-05-14 20:46:31 Jiong Wang

[AArch64] Remove BFD overflow check restrictions

bfd/
* elfnn-aarch64.c (elfNN_aarch64_relocate_section): Remove overflow
check restriction.

fd1c423 2015-05-14 20:32:12 Nick Clifton

Update description of the ASSERT linker script command to note its interation with PROVIDEd symbols.

* ld.texinfo (ASSERT): Describe the interaction with PROVIDEd
symbols.

e6c9a08 2015-05-14 13:07:27 Max Filippov

xtensa: fix localized symbol refcounting with --gc-sections

elf_xtensa_gc_sweep_hook doesn't correctly unreference symbols that were
made local, that results in link failure with the following message:

BFD (GNU Binutils) 2.24 internal error, aborting at elf32-xtensa.c line
3372 in elf_xtensa_finish_dynamic_sections

elf_xtensa_gc_sweep_hook determines symbol reference type (PLT or GOT) by
relocation type. Relocation types are not changed when symbol becomes
local, but its PLT references are added to GOT references and
plt.refcount is set to 0. Such symbol cannot be unreferences in the
elf_xtensa_gc_sweep_hook and its extra references make calculated GOT
relocations section size not match number of GOT relocations.

Fix it by treating PLT reference as GOT reference when plt.refcount is
not positive.

2015-05-14 Max Filippov <jcmvbkbc@gmail.com>
bfd/
* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Treat PLT reference
as GOT reference when plt.refcount is not positive.

d121800 2015-05-14 09:00:07 GDB Administrator

Automatic date update in version.in

08a76f8 2015-05-14 06:09:19 Martin Galvan

dwarf2read.c (die_needs_namespace): Return 1 for DW_TAG_inlined_subroutine.

gdb/ChangeLog:

* dwarf2read.c (die_needs_namespace): Return 1 for
DW_TAG_inlined_subroutine.

93b2e21 2015-05-14 06:07:03 Doug Evans

revert previous patch, author not set

da0580a 2015-05-14 05:55:09 Doug Evans

dwarf2read.c (die_needs_namespace): Return 1 for DW_TAG_inlined_subroutine.

gdb/ChangeLog:

* dwarf2read.c (die_needs_namespace): Return 1 for
DW_TAG_inlined_subroutine.

bd49952 2015-05-14 03:50:11 Jan Kratochvil

Make regcache_cpy_no_passthrough static

regcache_cpy_no_passthrough is no longer used for a standalone call.

gdb/ChangeLog
2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com>

* regcache.c (regcache_cpy_no_passthrough): New declaration.
(regcache_cpy_no_passthrough): Make it static, add function comment.
* regcache.h (regcache_dup, regcache_cpy): Reduce/update their comment.
(regcache_cpy_no_passthrough): Remove declaration.

46c0346 2015-05-14 03:49:45 Jan Kratochvil

Remove stop_registers

Now stop_registers are no longer used and it can be removed.

I am not much sure what 'proceed_to_finish' really means now so I make a wild
guess while updating comments about it.

gdb/ChangeLog
2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com>

* gdbthread.h (struct thread_control_state): Update comment for
proceed_to_finish.
* infcall.c (run_inferior_call): Update comment about
proceed_to_finish.
* infcmd.c (get_return_value): Update comment about stop_registers.
(finish_forward): Update comment about proceed_to_finish.
* infrun.c (stop_registers): Remove.
(clear_proceed_status, normal_stop): Remove stop_registers handling.
* infrun.h (stop_registers): Remove.

8a6c403 2015-05-14 03:49:08 Jan Kratochvil

infcall: stop_registers -> register_dummy_frame_dtor

With dummy_frame destructors GDB no longer has to use global stop_registers.
dummy_frame's registers can be now stored associated with their specific
dummy_frame.

gdb/ChangeLog
2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com>

* infcall.c (struct dummy_frame_context_saver)
(dummy_frame_context_saver_data_free, dummy_frame_context_saver_dtor)
(dummy_frame_context_saver_drop, dummy_frame_context_saver_cleanup)
(dummy_frame_context_saver_get_regs, dummy_frame_context_saver_setup):
New.
(call_function_by_hand_dummy): Move discard_cleanups of
inf_status_cleanup before dummy_frame_push. Call
dummy_frame_context_saver_setup and prepare context_saver_cleanup.
Use dummy_frame_context_saver_get_regs instead of stop_registers.
* infcall.h (struct dummy_frame_context_saver)
(dummy_frame_context_saver_drop, dummy_frame_context_saver_cleanup)
(dummy_frame_context_saver_get_regs, dummy_frame_context_saver_setup):
New declarations.
* infcmd.c: Include infcall.h.
(get_return_value): Add parameter ctx_saver, use it instead of
stop_registers.
(print_return_value): Add parameter ctx_saver, pass it.
(struct finish_command_continuation_args): Add field ctx_saver.
(finish_command_continuation): Update print_return_value caller.
(finish_command_continuation_free_arg): Free also ctx_saver.
(finish_forward): Call dummy_frame_context_saver_setup.
* inferior.h (struct dummy_frame_context_saver): New declaration.
(get_return_value): Add parameter ctx_saver.
* python/py-finishbreakpoint.c (bpfinishpy_pre_stop_hook): Update
get_return_value caller.

1098969 2015-05-14 03:49:00 Jan Kratochvil

register_dummy_frame_dtor: Permit multiple dtors

Later patch needs two independent destructors for the same dummy_frame.
Therefore the registrar has been extended to an arbitrary number of
destructors.

gdb/ChangeLog
2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com>

* dummy-frame.c (struct dummy_frame_dtor_list): New.
(struct dummy_frame): Replace dtor and dtor_data by dtor_list.
(remove_dummy_frame): Process dtor_list.
(pop_dummy_frame): Process dtor_list.
(register_dummy_frame_dtor): Maintain dtor_list.
(find_dummy_frame_dtor): Handle dtor_list.
* dummy-frame.h (register_dummy_frame_dtor, find_dummy_frame_dtor):
Update comments.

5e97050 2015-05-14 03:47:32 Jan Kratochvil

Call dummy_frame_dtor_ftype also from remove_dummy_frame

There was now a leak-like bug that if dummy_frame "disappeared" by
remove_dummy_frame then its destructor was not called. For example in the case
of 'compile code' dummy frames the injected objfile would never get freed after
some inferior longjmp out of the injected code.

gdb/ChangeLog
2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com>

* compile/compile-object-run.c (do_module_cleanup): Add parameter
registers_valid.
(compile_object_run): Update do_module_cleanup caller.
* dummy-frame.c: Include infcall.h.
(struct dummy_frame): Update dtor comment.
(remove_dummy_frame): Call dtor.
(pop_dummy_frame): Update dtor caller.
* dummy-frame.h (dummy_frame_dtor_ftype): Add parameter
registers_valid.

1c4eb77 2015-05-14 03:00:23 Joel Brobecker

Document the GDB 7.9.1 release in gdb/ChangeLog

gdb/ChangeLog:

GDB 7.9.1 released.

f5f85ab 2015-05-14 02:33:28 Joel Brobecker

gdb/NEWS: Move "Xmethods can now specify a result type" to GDB 7.9.1 section.

As this change was ported to GDB 7.9.1, the NEWS entry is moved to
a newly-created "Changes in GDB 7.9.1" section, matching the NEWS
file which is going to be distributed with the GDB 7.9.1 release.

gdb/ChangeLog:

* NEWS: Create "Changes in GDB 7.9.1" section. Move news about
Xmethods now being able to specify a result type to that new
section.

5569a85 2015-05-14 01:32:01 John David Anglin

Disable the configuration of GDB for HPUX targets.

* configure.ac: Disable configuration of GDB for HPUX targets.
* configure: Regenerate.

dc58915 2015-05-14 01:25:52 Max Filippov

xtensa: fix gas trampolines regression

Extra condition 'abs (addr - trampaddr) < J_RANGE / 2' for trampoline
selection results in regressions: when relaxable jump is little longer
than J_RANGE so that single trampoline makes two new jumps, one longer
than J_RANGE / 2 and one shorter, correct trampoline cannot be found.

Drop that condition.

2015-05-13 Max Filippov <jcmvbkbc@gmail.com>
gas/
* config/tc-xtensa.c (xtensa_relax_frag): Allow trampoline to be
closer than J_RANGE / 2 to jump frag.

gas/testsuite/
* gas/xtensa/trampoline.s: Add regression testcase.

242cd84 2015-05-14 00:58:07 Patrick Palka

Add missing ChangeLog entry for previous commit

1e04046 2015-05-14 00:53:28 Patrick Palka

Avoid race condition when handling a SIGWINCH signal

The control variable win_resized must be cleared before responding to
it.

Otherwise there is a small window where another SIGWINCH might occur in
between the handling of an earlier SIGWINCH and the clearing of
win_resized, at which point win_resized would be set (again) by the
signal handler. Shortly thereafter we would clear win_resized even
though we only handled the earlier SIGWINCH but not the latest one.
This chain of events is all avoided if we clear win_resized first.

gdb/ChangeLog:

* tui/tui-win.c (tui_async_resize_screen): Clear win_resized
first before resizing the window.
* tui.c (tui_enable): Likewise.

558e546 2015-05-13 22:55:09 Jan Kratochvil

dummy_frame_dtor_ftype vs. call_function_by_hand_dummy_dtor_ftype cleanup

Both dummy_frame_dtor_ftype and call_function_by_hand_dummy_dtor_ftype
represent the same type, there was some mistake/duplication during check-in.

gdb/ChangeLog
2015-05-08 Jan Kratochvil <jan.kratochvil@redhat.com>

* dummy-frame.c (struct dummy_frame): Use proper typedef for dtor.
* dummy-frame.h (dummy_frame_dtor_ftype): Add its comment.
* infcall.c (call_function_by_hand_dummy): Use proper typedef for
dummy_dtor parameter.
* infcall.h: Include dummy-frame.h.
(call_function_by_hand_dummy_dtor_ftype): Remove.
(call_function_by_hand_dummy): Use proper typedef for dummy_dtor
parameter.