Paul Koning [Wed, 28 Oct 2015 19:34:35 +0000 (15:34 -0400)]
turn remote into a to_xclose target
this turns the remote into a to_xclose target
it now subclasses target_ops and puts the remote state there
this isn't really complete unfortunately
I think remote_protocol_packets must be made per-remote
also perhaps the "notif" stuff -- I forget
2014-07-29 Tom Tromey <tromey@redhat.com>
* remote.c (remote_ops, extended_remote_ops): Move earlier.
(struct remote_ops_with_data): New.
(remote_state): Remove.
(REMOTE_TARGET_STRATUM): New define.
(get_remote_state_raw): Redefine.
(new_remote_state): Return void and take a remote_state as a
parameter. Update.
(destroy_remote_state): New function.
(get_remote_state): Return NULL if get_remote_state_raw does.
(init_remote_state, get_remote_packet_size, remote_threads_info)
(remote_threads_extra_info): Check for rs==NULL.
(remote_xclose): Rename from remote_close. Call
destroy_remote_state. Free "self".
(remote_unpush_target): Use REMOTE_TARGET_STRATUM.
(remote_open_1): Check for rs==NULL. Use TARGET_NEW.
(discard_pending_stop_replies): Check for rs==NULL.
(remote_mourn_1): Update comment.
(packet_command, remote_file_put, remote_file_get)
(remote_file_delete): Check for rs==NULL.
(init_remote_ops): Set to_xclose, not to_close. Use
REMOTE_TARGET_STRATUM.
(remote_new_objfile, set_range_stepping): Check for rs==NULL.
(_initialize_remote): Don't call new_remote_state.
Paul Koning [Mon, 26 Oct 2015 19:53:37 +0000 (15:53 -0400)]
fix exec_close to be multi-target-aware
This changes exec_close so it doesn't close inferiors from other
targets.
2014-07-29 Tom Tromey <tromey@redhat.com>
* target.h (target_stack_decref_cleanup): Declare.
* exec.c (exec_xclose_1): Skip program spaces from other targets.
* target.c (target_stack_decref_cleanup): New function.
Paul Koning [Fri, 23 Oct 2015 20:29:54 +0000 (16:29 -0400)]
Use target_gdbarch in corefile handling
This changes corelow.c to use target_gdbarch() -- i.e., the gdbarch
of the current inferior -- once the inferior has been set up. This
ensures that setup such as fetching processor option specific flags
carries over.
Paul Koning [Mon, 19 Oct 2015 19:16:46 +0000 (15:16 -0400)]
convert current_target to be a pointer
This converts current_target to be a pointer rather than a struct.
This is more efficient when we move to multi-target, because then we
can switch targets by simply changing the pointer.
Paul Koning [Fri, 16 Oct 2015 18:52:29 +0000 (14:52 -0400)]
convert exec target to to_xclose
This converts the exec target to use to_xclose, to make it suitable
for multi-target.
2014-07-29 Tom Tromey <tromey@redhat.com>
* exec.c (exec_xclose_1): Rename from exec_close_1. Free "self".
(add_target_sections): Push a new target instance.
(section_table_read_available_memory): Don't refer to "exec_ops".
(set_section_command): Likewise.
(init_exec_ops): Set to_xclose, not to_close.
Paul Koning [Thu, 15 Oct 2015 20:25:49 +0000 (16:25 -0400)]
convert corelow to to_xclose
This converts corelow to be a to_xclose target. It moves all the
corelow-related globals into a new subclass of target_ops and arranges
for core_open to push an instance of this.
This is preparatory work for multi-target. After this patch, corelow
doesn't rely on global state and multiple instances can readily be
instantiated.
2014-07-29 Tom Tromey <tromey@redhat.com>
* corelow.c (struct core_target_ops_with_data): New struct.
(core_vec, core_gdbarch, core_data): Remove. Now fields of
core_target_ops_with_data.
(sniff_core_bfd): Add core_gdbarch parameter.
(get_core_target_ops): New function.
(core_xclose): Rename from core_close. Update for
core_target_ops_with_data. Free the target.
(core_close_cleanup): Rename parameter. Update.
(core_open): Use TARGET_NEW. Update.
(get_core_register_section, get_core_registers, core_files_info)
(core_xfer_partial, core_read_description, core_pid_to_str): Use
get_core_target_ops. Update.
(init_core_ops): Set to_xclose, not to_close.
* target.c (allocate_target): New function.
* target.h (allocate_target): Declare.
(TARGET_NEW): New macro.
Paul Koning [Wed, 14 Oct 2015 20:03:09 +0000 (16:03 -0400)]
add to_identity
Right now a target_ops has an odd sense of identity.
Most times some identity is needed, a pointer to a static object is
passed in. For example, calls to unpush_target generally work like
this:
unpush_target (&exec_ops);
Conceptually this is a kind of "instanceof" checking.
Now, consider this with "to_xclose" targets. In this case the
target_ops is allocated on the heap and there's no good way to talk
about the identity. Code could remember the pointer, of course, but
this usually just begs the question.
For example in a to_open implementation it is reasonably normal to
check target_is_pushed and then do nothing if the target is pushed.
However, there's no reasonable way way to do this with a to_xclose
target.
This patch introduces a to_identity field that just points to the
"prototype" implementation of a target_ops. This lets us convert
targets to to_xclose without difficulty.
2014-07-29 Tom Tromey <tromey@redhat.com>
* bfd-target.c (target_bfd_reopen): Set to_identity.
* target.c (complete_target_initialization): Set to_identity.
(unpush_target): Check to_identity. Call target_close on the real
target.
(target_is_pushed): Check to_identity.
* target.h (struct target_ops) <to_identity>: New field.
Paul Koning [Tue, 13 Oct 2015 18:53:43 +0000 (14:53 -0400)]
move core_bfd to program space
This moves the core_bfd global to be a field of the program space. It
then replaces core_bfd with a macro to avoid a massive patch -- the
same approach taken for various other program space fields.
This patch is a basic transformation for eventual multi-target work.
2014-07-29 Tom Tromey <tromey@redhat.com>
* corefile.c (core_bfd): Remove.
* gdbcore.h (core_bfd): Now a macro.
* progspace.h (struct program_space) <cbfd>: New field.
Simon Marchi [Fri, 9 Oct 2015 14:08:23 +0000 (10:08 -0400)]
Change some void* to gdb_byte*
There are a bunch of places where a void* is implicitely casted into a
gdb_byte*. The auto-insert-casts script added explicit casts at those
places. However, in many cases, it makes more sense to just change the
void* to a gdb_byte*.
gdb/ChangeLog:
* aarch64-tdep.c (stack_item_t): Change type of data to gdb_byte*.
* arm-tdep.c (struct stack_item): Likewise.
(push_stack_item): Add gdb_byte* cast.
* avr-tdep.c (struct stack_item): Change type of data to gdb_byte*.
(push_stack_item): Add gdb_byte* cast.
* cli/cli-dump.c (dump_memory_to_file): Change type of buf to gdb_byte*
and add cast.
* cris-tdep.c (struct stack_item): Change type of data to gdb_byte*.
(push_stack_item): Add gdb_byte* cast.
* gcore.c (gcore_copy_callback): Change type of memhunk to gdb_byte* and
add cast.
* gdbtypes.h (print_scalar_formatted): Change type of first parameter to
gdb_byte*.
* h8300-tdep.c (h8300_extract_return_value): Change type of valbuf to
gdb_byte* and remove unnecessary cast.
(h8300h_extract_return_value): Likewise.
(h8300_store_return_value): Change type of valbuf to gdb_byte*.
(h8300h_store_return_value): Likewise.
* iq2000-tdep.c (iq2000_extract_return_value): Change type of valbuf to
gdb_byte* and remove unnecessary cast.
* jit.c (jit_reader_try_read_symtab): Change type of gdb_mem to gdb_byte*
and add cast.
* m32r-tdep.c (m32r_store_return_value): Change type of valbuf to
gdb_byte* and remove unnecessary cast.
(m32r_extract_return_value): Change type of dst to gdb_byte* and remove
valbuf.
* mep-tdep.c (mep_pseudo_cr32_read): Change type of buf to gdb_byte*.
(mep_pseudo_cr64_read): Likewise.
(mep_pseudo_csr_write): Likewise.
(mep_pseudo_cr32_write): Likewise.
(mep_pseudo_cr64_write): Likewise.
* mi/mi-main.c (mi_cmd_data_write_memory): Change type of buffer to
gdb_byte* and add cast.
* moxie-tdep.c (moxie_store_return_value): Change type of valbuf to
gdb_byte* and remove unnecessary cast.
(moxie_extract_return_value): Change type of dst to gdb_byte* and remove
valbuf.
* p-valprint.c (print_scalar_formatted): Change type of valaddr to
gdb_byte*.
* printcmd.c (void): Likewise.
* python/py-inferior.c (infpy_read_memory): Change type of buffer to
gdb_byte* and add cast.
(infpy_write_memory): Likewise.
(infpy_search_memory): Likewise.
* regcache.c (regcache_raw_write_signed): Change type of buf to gdb_byte*
and add cast.
(regcache_raw_write_unsigned): Likewise.
(regcache_cooked_write_signed): Likewise.
(regcache_cooked_write_unsigned): Likewise.
* sh64-tdep.c (h64_extract_return_value): Change type of valbuf to
gdb_byte*.
Markus Metzger [Wed, 30 Sep 2015 09:41:35 +0000 (11:41 +0200)]
btrace, test: avoid gdb.btrace/vdso.exp fail
The vdso.exp test checks that we can access the VDSO memory when replaying.
Depending on the line information generated by the compiler, runto_main may run
to the line marked with bp.1 or stop before that line. The test incorrectly
assumes that it will always run to the marked line and fails if it doesn't.
The test does not really care about what is traced. It does care that GDB is
replaying when capturing the second disassemble output.
Reflect that in the test by ignoring the output of the stepping and record goto
begin commands and by checking that GDB is actually replaying.
testsuite/
* gdb.btrace/vdso.c (main): Remove breakpoint markers.
* gdb.btrace/vdso.exp: Change stepping command to "next" and ignore
its output. Ignore the output of "record goto begin" and instead
check that GDB is replaying.
Pedro Alves [Fri, 9 Oct 2015 11:56:26 +0000 (12:56 +0100)]
Fix gdb.base/a2-run.exp race
This patch fixes this racy failure, with the native-extended-gdbserver
board:
(gdb) run
Starting program: build/gdb/testsuite/outputs/gdb.base/a2-run/a2-run
Remote debugging from host 127.0.0.1
Process build/gdb/testsuite/outputs/gdb.base/a2-run/a2-run created; pid = 23832
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
Reading /lib64/libm.so.6 from remote target...
Reading /lib64/libc.so.6 from remote target...
[Inferior 1 (process 23832) exited with code 01]
(gdb) FAIL: gdb.base/a2-run.exp: run "a2-run" with no args
PASS: gdb.base/a2-run.exp: no spurious messages at program exit
run 5
Starting program: build/gdb/testsuite/outputs/gdb.base/a2-run/a2-run 5
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
usage: factorial <number>
Child exited with status 1
Note that the output is correct; it's just that inferior output
appeared after gdb's output, and the test doesn't handle that
correctly.
This comment isn't really correct, unfortunately:
# waiting. If we had already seen the status wrapper exit,
# gdb_test_multiple/expect has no spawn ids left, and thus
# returns.
That's true of expect in general, but I had missed / forgot that
gdb_test_multiple internally has extra matches using "-i
$gdb_spawn_id", so even if the caller clears all the indirect spawn id
lists, gdb_test_multiple will continue waiting.
So do a conditional exp_continue manually instead.
gdb/testsuite/ChangeLog:
2015-10-09 Pedro Alves <palves@redhat.com>
* gdb.base/a2-run.exp (maybe_exp_continue): New procedure.
(top level): Use it in the run with no args test.
Iain Buclaw [Thu, 8 Oct 2015 19:38:05 +0000 (21:38 +0200)]
[D] Support D style sizeof and typeof expressions.
gdb/ChangeLog:
* d-exp.y: (UnaryExpression): Support `type.sizeof' expressions.
(PostfixExpression): Support `expr.sizeof' expressions.
(PrimaryExpression): Support `typeof(expr)' expressions.
and it triggers compilation errors when GDB is built in C++ mode.
In file included from git/gdb/aarch64-tdep.c:62:0:
git/gdb/../include/opcode/aarch64.h:651:15: error: expected unqualified-id before 'template'
const char *template;
This patch is to rename field template to name.
gas/
* config/tc-aarch64.c (md_begin): Access field 'name' rather
than 'template'.
include/opcode/
* aarch64.h (aarch64_sys_ins_reg) <template>: Removed.
<name>: New field.
opcodes/
* aarch64-dis.c (aarch64_ext_sysins_op): Access field
'name' rather than 'template'.
* aarch64-opc.c (aarch64_print_operand): Likewise.
Yao Qi [Wed, 7 Oct 2015 11:35:46 +0000 (12:35 +0100)]
Wrap include/opcode/aarch64.h in extern "C" for C++
This is sufficient to link an aarch64 GDB built in C++ mode. Pedro
did something similar in Feb
https://sourceware.org/ml/binutils/2015-02/msg00176.html
Nick Clifton [Wed, 7 Oct 2015 13:20:19 +0000 (14:20 +0100)]
New ARC implementation.
bfd * archures.c: Remove support for older ARC. Added support for new
ARC cpus (ARC600, ARC601, ARC700, ARCV2).
* bfd-in2.h: Likewise.
* config.bfd: Likewise.
* cpu-arc.c: Likewise.
* elf32-arc.c: Totally changed file with a refactored
inplementation of the ARC port.
* libbfd.h: Added ARC specific relocation types.
* reloc.c: Likewise.
gas * config/tc-arc.c: Revamped file for ARC support.
* config/tc-arc.h: Likewise.
* doc/as.texinfo: Add new ARC options.
* doc/c-arc.texi: Likewise.
opcodes * arc-dis.c: Revamped file for ARC support
* arc-dis.h: Likewise.
* arc-ext.c: Likewise.
* arc-ext.h: Likewise.
* arc-opc.c: Likewise.
* arc-fxi.h: New file.
* arc-regs.h: Likewise.
* arc-tbl.h: Likewise.
binutils * readelf.c (get_machine_name): Remove A5 reference. Add ARCompact
and ARCv2.
(get_machine_flags): Handle EM_ARCV2 and EM_ARCOMPACT.
(guess_is_rela): Likewise.
(dump_relocations): Likewise.
(is_32bit_abs_reloc): Likewise.
(is_16bit_abs_reloc): Likewise.
(is_none_reloc): Likewise.
* NEWS: Mention the new feature.
include * dis-asm.h (arc_get_disassembler): Correct declaration.
* arc-reloc.def: Macro file with definition of all relocation
types.
* arc.h: Changed macros for the newly supported ARC cpus. Altered
enum defining the supported relocations.
* common.h: Changed EM_ARC_A5 definition to EM_ARC_COMPACT. Added
macro for EM_ARC_COMPACT2.
* arc-func.h: New file.
* arc.h: Likewise.
Yao Qi [Wed, 7 Oct 2015 08:52:46 +0000 (09:52 +0100)]
[aarch64] use aarch64_decode_insn to decode instructions in GDB
In this patch, we start to use aarch64_decode_insn to decode instructions
in aarch64_software_single_step.
gdb:
2015-10-07 Yao Qi <yao.qi@linaro.org>
* aarch64-tdep.c: Include opcode/aarch64.h.
(submask): Move it above.
(bit): Likewise.
(bits): Likewise.
(aarch64_software_single_step): Call aarch64_decode_insn.
Decode instruction by aarch64_inst instead of using
aarch64_decode_bcond and decode_masked_match.
Cary Coutant [Tue, 6 Oct 2015 21:43:49 +0000 (14:43 -0700)]
Fix bug when applying R_SPARC_GOTDATA_OP* relocations to local symbols.
When applying a GOTDATA_OP* relocation to a local symbol, the addend
is being applied after getting the value of the symbol. When the
relocation refers to a merge section, however, the addend must be
provided when computing the symbol value, since the contents of
the section may have been rearranged.
gold/
PR gold/18855
* sparc.cc (Sparc_relocate_functions::gdop_hix22): Remove addend
parameter.
(Sparc_relocate_functions::gdop_lox10): Likewise.
(Target_sparc::Relocate::relocate): Use addend when computing
symbol value for R_SPARC_GOTDATA_OP*.
parse load_offset (bias) of restore command as long
Following failures are noticed for avr-gdb. This may be the case
for targets like AVR which has integer_to_address hook defined.
FAIL: gdb.base/dump.exp: struct copy, srec; value restored ok
FAIL: gdb.base/dump.exp: struct copy, ihex; value restored ok
FAIL: gdb.base/dump.exp: struct copy, tekhex; value restored ok
These tests are failed because load_offset(bias) of restore command
parsed as address.
command: restore filename [binary] bias start end
Except binary, other BFDs have a built-in location; gdb restores content
at offset 'bias' from that location. So, 'bias' of 'restore' command should
be parsed as address only when the file is binary.
Below patch changes gdb to parse 'bias' as long if the file is not binary.
H.J. Lu [Mon, 5 Oct 2015 21:45:17 +0000 (14:45 -0700)]
Don't re-export common symbols
For ELF linker, a common symbol isn't a definition. When we decide if a
symbol should be re-exported, we should check if the symbol isn't
undefined, not if it is a definition.
bfd/
PR ld/18914
* elflink.c (elf_link_add_object_symbols): Don't re-export a
symbol if it isn't undefined.
H.J. Lu [Sun, 4 Oct 2015 13:14:13 +0000 (06:14 -0700)]
Change ch_type to Elf_Word in struct Chdr_data<64>
The ch_type field in struct Chdr_data<64> is 4 bytes, followed by a
4-byte padding. This change doesn't introduce any functional change
since only the lower 32 bits of the ch_type field are used.
PR gold/19060
* elfcpp.h (Chdr::get_ch_type): Change return type to Elf_Word.
* elfcpp_internal.h (Chdr_data<64>): Change ch_type to 4 bytes
and add ch_reserved.
Renlin Li [Fri, 2 Oct 2015 16:48:31 +0000 (17:48 +0100)]
[LD][AARCH64]Add TLSIE relaxation support under large memory model.
bfd/
2015-10-02 Renlin Li <renlin.li@arm.com>
* elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Add
TLSIE_MOVW_GOTTPREL_G1.
(aarch64_tls_transition_without_check): Add
TLSIE_MOVW_GOTTPREL_G1 to TLSLE_MOVW_TPREL_G2
transition for local symbol.
(elfNN_aarch64_tls_relax): Add a argument to pass tp offset.
Add TLSIE_MOVW_GOTTPREL_G1 relaxation.
(elfNN_aarch64_relocate_section): Call elfNN_aarch64_tls_relax
with new argument.
ld/testsuite/
2015-10-02 Renlin Li <renlin.li@arm.com>
* ld-aarch64/aarch64-elf.exp (tls-relax-large-le-ie): Run new test.
* ld-aarch64/tls-relax-large-ie-le.d: New.
* ld-aarch64/tls-relax-large-ie-le.s: New.
Renlin Li [Fri, 2 Oct 2015 16:22:36 +0000 (17:22 +0100)]
[BFD][AARCH64]Add TLSGD relaxation support under large memory model.
bfd/
2015-10-02 Renlin Li <renlin.li@arm.com>
* elfnn-aarch64.c(IS_AARCH64_TLS_RELAX_RELOC):
Add relaxation support for TLSGD_MOVW_G0_NC and TLSGD_MOVW_G1.
(aarch64_tls_transition_without_check): Likewise
(elfNN_aarch64_tls_relax): Likwise.
ld/testsuite/
2015-10-02 Renlin Li <renlin.li@arm.com>
* ld-aarch64/aarch64-elf.exp: run new test
* ld-aarch64/tls-relax-large-gd-ie.d: New.
* ld-aarch64/tls-relax-large-gd-ie.s: New.
* ld-aarch64/tls-relax-large-gd-le.d: New.
* ld-aarch64/tls-relax-large-gd-le.s: New.
Yao Qi [Fri, 2 Oct 2015 10:36:00 +0000 (11:36 +0100)]
[aarch64] expose disas_aarch64_insn and rename it to aarch64_decode_insn
We want to use disas_aarch64_insn inside GDB to decode instructions, so
this patch exposes it and rename it to aarch64_decode_insn to follow
the conventions of other interfaces.
include/opcode:
2015-10-02 Yao Qi <yao.qi@linaro.org>
* aarch64.h (aarch64_decode_insn): Declare it.
opcodes:
2015-10-02 Yao Qi <yao.qi@linaro.org>
* aarch64-dis.c (disas_aarch64_insn): Remove static. Change
argument insn type to aarch64_insn. Rename to ...
(aarch64_decode_insn): ... it.
(print_insn_aarch64_word): Caller updated.
The system compiler (gcc 4.1) in Centos 5 doesn't like that we cast to a
pointer to a type that doesn't exist. I see no real value in using this
kind iof construct over just using void *. So this patch changes the
tdep_info field to void * and removes the casts. Even in C++, we
should not need an explicit cast when assigning to a void *.
Simon Marchi [Wed, 30 Sep 2015 14:04:17 +0000 (10:04 -0400)]
py-type.exp: Do not run tests if binary fails to build
I noticed this while working on the test case. I believe it would make
sense to skip running the tests if the binary failed to build. Although
I would understand the opposite argument: if the binary does not build
for some reason, we probably want to know about it, and some catastrophic
failures in the tests might alarm us better than a timid "UNTESTED".
gdb/testsuite/ChangeLog:
* gdb.python/py-type.exp: Do not run tests if binaries fail to
build.
Kevin Buettner [Wed, 30 Sep 2015 12:54:15 +0000 (05:54 -0700)]
infcmd.c: Don't attempt to record a NULL value after a finish command.
Architectures which use RETURN_VALUE_STRUCT_CONVENTION will have a
NULL return value after executing a finish command. See get_return_value()
in infcmd.c.
This patch avoids an eventual SIGSEV (caused by attempting to
derefrence a NULL pointer) by adding a suitable test to
finish_command_fsm_should_stop().
I encountered this problem while testing msp430:
(gdb) PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tc
finish
Run till exit from #0 fun1 () at /ironwood1/sourceware-git/msp430-elf/../binutils-gdb/gdb/testsuite/gdb.base/structs.c:125
ERROR: Process no longer exists
gdb/ChangeLog:
* infcmd.c (finish_command_fsm_should_stop): Don't attempt to
record a NULL value.
Alan Modra [Wed, 30 Sep 2015 02:15:32 +0000 (11:45 +0930)]
Consistency check for merge sections
We can't allow sections to be merged and sized by the ELF linker
backend and then later be output by the generic linker backend. The
generic linker backend doesn't understand merge sections.
PR ld/19013
* elflink.c (_bfd_elf_merge_sections): Only merge input bfds that
will be handled by elf_link_input_bfd. Rename abfd param to obfd.
Kevin Buettner [Tue, 29 Sep 2015 23:31:48 +0000 (16:31 -0700)]
msp430: Fix bug regarding large memory model inferior function call arguments.
This change causes reference, struct, and union arguments to be treated
the same as pointer arguments when determining the size of the value to
place into a register.
The case for doing this for reference arguments is obvious.
The msp430 ABI specifies that struct and union arguments are passed by
reference. This is why they're treated in the same manner as pointer
and reference arguments when computing the size of the value to place
into a register.
* msp430-tdep.c (msp430_push_dummy_call): Treat reference, struct,
and union arguments the same as pointer arguments when determining
size of argument.
James Bowman [Mon, 28 Sep 2015 23:49:36 +0000 (23:49 +0000)]
sim: ft32: correctly simulate PM write port
The FT32 simulator was not correctly simulating the behavior of the
program memory (PM) write port. When it is locked, writes to the
data register do nothing.
H.J. Lu [Tue, 29 Sep 2015 16:35:47 +0000 (09:35 -0700)]
Don't use the output section size to copy input section
We can't use the output section size to copy input section since
--interleave will shrink the output section. Instead, we change
bfd_convert_section_contents to return the updated input section
size. When we do that, we don't need to adjust the output section
size to skip gap fills.
PR binutils/19020
* objcopy.c (copy_object): Don't adjust the output section size
when copying from input sections.
(copy_section): Use input section size for the copy. Get the
updated section size from bfd_convert_section_contents.
binutils/testsuite/
PR binutils/19020
* binutils-all/objcopy.exp: Run pr19020a and pr19020b.
* lib/utils-lib.exp (run_dump_test): Support binary input.
* binutils-all/pr19020.in: New file.
* binutils-all/pr19020a.d: Likewise.
* binutils-all/pr19020b.d: Likewise.
H.J. Lu [Tue, 29 Sep 2015 13:33:03 +0000 (06:33 -0700)]
Adjust the output section size to skip gap fills
In objcopy, copy_object calls copy_section to copy contents of input
section to output section. When --gap-fill= is used, objcopy extends
the size of output sectios to fill gaps between output sections with
gap fills. In this case, we adjust the output section size to skip
gap files to avoid reading beypond the input section buffer before
calling copy_section and restore the output section size after input
sections have been copied.
binutils/
PR binutils/19005
* objcopy.c (copy_object): Adjust the output section size to
skip gap fills between sections when copying from input sections
to output sections.
Add support for extensions in the .machine pseudoop on S/390, e.g. ".machine zEC12+nohtm+vx"
gas * doc/c-s390.texi: Add documentation.
Add missing code markup.
* config/tc-s390.c (current_flags): New static variable.
(s390_parse_cpu): Parse cpu flags a la "+nohtm" etc.
(s390_setup_opcodes): Use cpu flags to determine the set of opcodes.
Fix indentation.
(md_parse_option): Call s390_parse_cpu with the new signature.
(s390_machine): Likewise.
Keep track of current_flags.
Simplify code a bit.
undefine MAX_HISTORY at end of function.
(s390_machinemode): undefine MAX_HISTORY at end of function.
Update an error message.
opcode * s390.h (S390_INSTR_FLAG_HTM): New flag.
(S390_INSTR_FLAG_VX): New flag.
(S390_INSTR_FLAG_FACILITY_MASK): New flag mask.
opcodes * s390-mkopc.c (main): Parse htm and vx flag.
* s390-opc.txt: Mark instructions from the hardware transactional
memory and vector facilities with the "htm"/"vx" flag.