aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-10-29Fix reporting of command line options that need an argument, but which occur ↵Nick Clifton2-4/+32
as the last option on the command line. PR ld/19146 * lexsup.c (parse_args): Correct error message for an option that is missing its argument if that option is the last one on the command line.
2015-10-29Re: Orphan output section with multiple input sectionsAlan Modra7-18/+76
The last patch missed handling the case where the ideal place to put an orphan was after a non-existent output section statement, as can happen when not using the builtin linker scripts. This patch uses the updated flags for that case too, and extends the support to mmo and pe. PR ld/19162 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Pass updated flags to lang_output_section_find_by_flags. * emultempl/mmo.em (mmo_place_orphan): Merge flags for any other input sections that might match a new output section to decide placement. * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise. * emultempl/pep.em (gld_${EMULATION_NAME}_place_orphan): Likewise. * ldlang.c (lang_output_section_find_by_flags): Add sec_flags param. * ldlang.h (lang_output_section_find_by_flags): Update prototype.
2015-10-29fix typo in ld's texinfoMatthias Klose2-1/+5
* ld.texinfo (Options <-rpath>): Fix typo.
2015-10-29Fix CPS availability.Thomas Preud'homme2-1/+6
2015-10-29 Thomas Preud'homme <thomas.preudhomme@arm.com> gas/ * config/tc-arm.c (insns): Guard cps by arm_ext_v6_notm instead of arm_ext_v6_dsp.
2015-10-29Automatic date update in version.inGDB Administrator1-1/+1
2015-10-28Add __attribute__((__aligned__(1))) to unaligned symbols from scripts (for ↵Marcin Kościelnicki5-14/+28
s390). gold/ * testsuite/binary_test.cc: Add __attribute__((aligned(1))). * testsuite/script_test_12a.c: Likewise. * testsuite/script_test_1a.cc: Likewise. * testsuite/script_test_2.cc: Likewise.
2015-10-28Make debug_msg.sh more open-minded about line numbers (needed for s390).Marcin Kościelnicki2-19/+23
gold/ * testsuite/debug_msg.sh: Accept more fuzz in line numbers.
2015-10-28Fix empty string alignment in .rodata.str*Marcin Kościelnicki2-3/+11
gold/ PR gold/18959 * stringpool.cc (Stringpool_template::new_key_offset): Align all strings, even zero-length. (Stringpool_template::set_string_offsets):
2015-10-28Add s390 backend.Marcin Kościelnicki10-7/+4502
elfcpp/ * s390.h: New file. gold/ * s390.cc: New file. * Makefile.am (TARGETSOURCES): Add s390.cc. (ALL_TARGETOBJS): Add s390.o. * Makefile.in: Regenerate. * configure.ac: Add s390 support. * configure: Regenerate. * configure.tgt: Add s390-*-* and s390x-*-*. * testsuite/icf_safe_test.sh (arch_specific_safe_fold): Add s390 support.
2015-10-28Add 64-bit archive support.Marcin Kościelnicki3-6/+38
gold/ * archive.cc (Archive::sym64name): New const. (Archive::setup): Add support for SYM64 armap. (Archive::read_armap): Likewise. (Archive::interpret_header): Likewise. (Archive::const_iterator::read_next_header): Likewise. * archive.h (Archive::sym64name): New const. (Archive::read_armap): Add mapsize template parameter.
2015-10-28Support 64-bit entry size in SHT_HASH (for s390).Marcin Kościelnicki14-46/+134
gold/ * dynobj.cc (Dynobj::create_elf_hash_table): Create hash table with target-specific entry size. (Dynobj::sized_create_elf_hash_table): Add size template parameter. * dynobj.h (Dynobj::sized_create_elf_hash_table): Likewise. * layout.cc (Layout::create_dynamic_symtab): Set entsize to hash_entry_size. * target.h (Target::hash_entry_size): New method. (Target::Target_info::hash_entry_size): New data member. * aarch64.cc (Target_aarch64::aarch64_info): Add hash_entry_size. * arm.cc (Target_arm::arm_info): Likewise. (Target_arm_nacl::arm_nacl_info): Likewise. * i386.cc (Target_i386::i386_info): Likewise. (Target_i386_nacl::i386_nacl_info): Likewise. (Target_iamcu::iamcu_info): Likewise. * mips.cc (Target_mips::mips_info): Likewise. (Target_mips_nacl::mips_nacl_info): Likewise. * powerpc.cc (Target_powerpc::powerpc_info): Likewise. * sparc.cc (Target_sparc::sparc_info): Likewise. * tilegx.cc (Target_tilegx::tilegx_info): Likewise. * x86_64.cc (Target_x86_64::x86_64_info): Likewise. (Target_x86_64_nacl::x86_64_nacl_info): Likewise. * testsuite/testfile.cc (Target_test::test_target_info): Likewise.
2015-10-28Move encoded as 'or' in binutils.Simon Dardis2-4/+11
A patch (http://sourceware.org/ml/binutils/2015-07/msg00376.html) submitted to binutils will be encoding move as an 'or' instruction over [d]addu in assembly and various code stubs. This patch for gdb addresses that change for the mips specific parts of gdb. gdb/ChangeLog: * mips-linux-tdep.c (mips_linux_in_dynsym_stub): Recognise 'or' as move along with [d]addu.
2015-10-28Check R_386_GOT32/R_386_GOT32X without base registerH.J. Lu2-2/+32
The R_386_GOT32 and R_386_GOT32X relocations may be used without base register: movl bar@GOT, %eax Its calculation is G + A, instead of G + A - GOT, and it can only used to generate non-PIC executable. Include the .got.plt section address for R_386_GOT32 and R_386_GOT32X relocations without base register. Don't allow R_386_GOT32 and R_386_GOT32X relocations without base register when making a PIC output. PR gold/19177 * i386.cc (Target_i386::Relocate::relocate): Check R_386_GOT32 and R_386_GOT32X relocations without base register.
2015-10-28Fix a typo in comment in elf32-i386.cH.J. Lu2-1/+6
* elf32-i386.c (elf_i386_relocate_section): Fix a typo in comment.
2015-10-28Add tests for 16-bit versions of ARM teq, tst, cmp and cmn instructions.Nick Clifton3-0/+45
* gas/arm/pinsn.s: New. * gas/arm/pinsn.d: Likewise.
2015-10-28Pass noaliases_p to aarch64_decode_insnYao Qi6-8/+27
Nowadays aarch64_decode_insn is a public interface used by both opcodes and gdb. However, its behaviour relies on a global variable no_aliases, which isn't a good practise. On the other hand, In default, no_aliases is zero, but in GDB, we do want no alias when decoding instructions for prologue analysis (patches to be posted), so that we can handle both instructions "add" and "mov" (an alias of "add") as "add". The code in GDB can be simplified. This patch adds a new argument in aarch64_decode_insn, and pass no_aliases to it. In GDB side, always pass 1 to it. include/opcode: 2015-10-28 Yao Qi <yao.qi@linaro.org> * aarch64.h (aarch64_decode_insn): Update declaration. opcodes: 2015-10-28 Yao Qi <yao.qi@linaro.org> * aarch64-dis.c (aarch64_decode_insn): Add one argument noaliases_p. Update comments. Pass noaliases_p rather than no_aliases to aarch64_opcode_decode. (print_insn_aarch64_word): Pass no_aliases to aarch64_decode_insn. gdb: 2015-10-28 Yao Qi <yao.qi@linaro.org> * aarch64-tdep.c (aarch64_software_single_step): Pass 1 to aarch64_decode_insn.
2015-10-28Fix recent STM324LXX patch to compile on 32-bit hosts.Nick Clifton2-28/+28
* elf32-arm.c (create_instruction_branch_absolute): Replace pointer parameters with a simple integer parameter. (stm32l4xx_create_replacing_stub_ldmia): Update calls to create_instruction_branch_absolute. (stm32l4xx_create_replacing_stub_ldmdb): Likewise. (stm32l4xx_create_replacing_stub_vldm): Likewise. (elf32_arm_write_section): Use pointer type for veneer addresses.
2015-10-28Fix errors in the gas testsuite for the ARC target.Cupertino Miranda9-197/+270
bfd * reloc.c (BFD_RELOC_ARC_32_PCREL): New entry. (ARC_TLS_DTPOFF): Arrange it in order. * elf32-arc.c (arc_elf_howto_ini): Update formula. (get_middle_endian_relocation): New function. (PDATA): Define. * bfd-in2.h: Regenerate. * libbfd.h: Likewise. elf * arc-reloc.def (ARC_32_PCREL): New definition. gas * config/tc-arc.c (tokenize_arguments): Avoid creating unused symbols when parsing relocation types. (md_apply_fix): Handle TLS relocations. Fix BFD_RELOC_ARC_32_PCREL relocation. (arc_check_reloc): Emit BFD_RELOC_ARC_32_PCREL relocation.
2015-10-28Add a test for PR ld/19162H.J. Lu5-0/+23
PR ld/19162 * ld-x86-64/x86-64.exp: Run pr19162. * ld-x86-64/pr19162.d: New file. * ld-x86-64/pr19162a.s: Likewise. * ld-x86-64/pr19162b.s: Likewise.
2015-10-28Orphan output section with multiple input sectionsAlan Modra7-40/+71
If given input sections with differing flags, we'd like to place the section according to the final output section flags. bfd/ PR ld/19162 * elflink.c (_bfd_elf_gc_mark_reloc): Move code iterating over linker input bfds.. * section.c (bfd_get_next_section_by_name): ..to here. Add ibfd param. (bfd_get_linker_section): Adjust bfd_get_next_section_by_name call. * tekhex.c (first_phase): Likewise. * elflink.c (bfd_elf_gc_sections): Likewise. * bfd-in2.h: Regenerate. ld/ PR ld/19162 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Check flags before calling _bfd_elf_match_sections_by_type. Merge flags for any other input sections that might match a new output section to decide placement.
2015-10-28Automatic date update in version.inGDB Administrator1-1/+1
2015-10-27Patch for PR gold/19042 - unsupported reloc 311/312.Han Shen2-0/+30
gold/ * aarch64.cc (Target_aarch64::Scan::local): Add support for reloc 311/312.
2015-10-27Make host_address_to_string/gdb_print_host_address cast parameter to 'void *'Pedro Alves5-4/+23
Fixes a set of errors like: ../../src/gdb/symfile-debug.c: In function ‘int debug_qf_map_symtabs_matching_filename(objfile*, const char*, const char*, int (*)(symtab*, void*), void*)’: ../../src/gdb/symfile-debug.c:137:39: error: invalid conversion from ‘int (*)(symtab*, void*)’ to ‘const void*’ [-fpermissive] host_address_to_string (callback), ^ Note this has to work with data and function pointers. In C++11 we may perhaps do something a bit safer, but we're not there yet, and I don't think it really matters. For now just always do a simple C-style cast in host_address_to_string itself. No point in adding a void * cast to each and every caller. gdb/ChangeLog: 2015-10-27 Pedro Alves <palves@redhat.com> * common/print-utils.c (host_address_to_string): Rename to ... (host_address_to_string_1): ... this. * common/print-utils.h (host_address_to_string): Reimplement as wrapper around host_address_to_string_1. * utils.c (gdb_print_host_address): Rename to ... (gdb_print_host_address_1): ... this. * utils.h (gdb_print_host_address): Reimplement as wrapper macro around host_address_to_string_1.
2015-10-27target_read_memory&co: no longer return target_xfer_statusPedro Alves8-49/+72
Years ago, these functions used to return errno/EIO. Later, through a series of changes that intended to remove native/remote differences, they ended up returning a target_xfer_status in disguise. Unlike target_xfer_partial&co, the point of target_read_memory&co is to either fully succeed or fail. On error, they always return TARGET_XFER_E_IO. So there's no real point in casting the return of target_read_memory to a target_xfer_status to pass it to memory_error. Instead, it results in clearer code to simply decouple target_read_memory&co's return from target_xfer_status. This fixes build errors like this in C++ mode: ../../src/gdb/corefile.c: In function ‘void read_stack(CORE_ADDR, gdb_byte*, ssize_t)’: ../../src/gdb/corefile.c:276:34: error: invalid conversion from ‘int’ to ‘target_xfer_status’ [-fpermissive] memory_error (status, memaddr); ^ ../../src/gdb/corefile.c:216:1: error: initializing argument 1 of ‘void memory_error(target_xfer_status, CORE_ADDR)’ [-fpermissive] gdb/ChangeLog: 2015-10-27 Pedro Alves <palves@redhat.com> * alpha-tdep.c (alpha_read_insn): Always pass TARGET_XFER_E_IO to memory_error. Rename local 'status' to 'res'. * c-lang.c (c_get_string): Always pass TARGET_XFER_E_IO to memory_error. * corefile.c (read_stack, read_code, write_memory): Always pass TARGET_XFER_E_IO to memory_error. * disasm.c (dis_asm_memory_error): Always pass TARGET_XFER_E_IO to memory_error. Rename parameter 'status' to 'err'. (dump_insns): Rename local 'status' to 'err'. * mips-tdep.c (mips_fetch_instruction): Rename parameter 'statusp' to 'errp'. Rename local 'status' to 'err'. Always pass TARGET_XFER_E_IO to memory_error. (mips_breakpoint_from_pc): Rename local 'status' to 'err'. * target.c (target_read_memory, target_read_raw_memory) (target_read_stack, target_read_code, target_write_memory) (target_write_raw_memory): Return -1 on error instead of TARGET_XFER_E_IO. * valprint.c (val_print_string): Rename local 'errcode' to 'err'. Always pass TARGET_XFER_E_IO to memory_error. Update comment.
2015-10-27guile: Change return value of gdbscm_with_guile for const char *Simon Marchi4-13/+31
The documentation of gdbscm_with_guile says that it returns a statically allocated string (IOW, a const char *). We can reflect that in its return value type, and get rid of C++ build errors. Initially fixes: /home/simark/src/binutils-gdb/gdb/guile/scm-disasm.c: In function ‘void* gdbscm_disasm_read_memory_worker(void*)’: /home/simark/src/binutils-gdb/gdb/guile/scm-disasm.c:93:12: error: invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive] return "seek error"; gdb/ChangeLog: * guile/guile-internal.h (gdbscm_with_guile): Change return types to const char *. * guile/scm-safe-call.c (gdbscm_with_guile): Likewise. (struct c_data) <func>: Likewise. (struct c_data) <result>: Change type to const char *. (scscm_eval_scheme_string): Change return type to const char *. (scscm_source_scheme_script): Likewise. (gdbscm_safe_eval_string): Change type of result variable to const char * and remove cast. (gdbscm_safe_source_script): Likewise. * guile/scm-disasm.c (gdbscm_disasm_read_memory_worker): Change return type to const char *. (gdbscm_disasm_read_memory): Change type of status to const char *.
2015-10-27source.c:openp: save/restore errnoPedro Alves2-0/+12
openp's return is documented as: ~~~ If a file is found, return the descriptor. Otherwise, return -1, with errno set for the last name we tried to open. */ ~~~ By inspection, I noticed that there are function calls after the ones that first set errno, and those may clobber errno. It's safer to save errno when see an open fail, and restore it on exit. Tested on x86_64 Fedora 20. gdb/ChangeLog: 2015-10-27 Pedro Alves <palves@redhat.com> * source.c (openp): New local 'last_errno'. Use it to save/restore errno.
2015-10-27Fix RL78 disassembly of DE+offset addressing to always show the offset, even ↵Vinay Kumar8-25/+68
when zero. PR binutils/19159 opcodes * rl78-decode.opc (MOV): Added offset to DE register in index addressing mode. * rl78-decode.c: Regenerate. test * gas/rl78/pr19159.s: New test source file. * gas/rl78/pr19159.d: New test case. * gas/rl78/rl78.exp: Run the new test.
2015-10-27psymtab.c: Add castsPedro Alves2-2/+7
... as needed for C++. gdb/ChangeLog: 2015-10-27 Pedro Alves <palves@redhat.com> * psymtab.c (dump_psymtab_addrmap_1): Add casts.
2015-10-27ctf.c: Fix int/enum implicit castSimon Marchi2-2/+14
This patch was taken directly from Pedro's branch. Right now, SET_INT32_FIELD is used to set enum fields. This works in C, but not C++. Therefore, define the new SET_ENUM_FIELD, which casts the value to the right enum type. gdb/ChangeLog: * ctf.c (SET_ENUM_FIELD): New macro. (ctf_read_status): Use it. (ctf_read_tp): Use it.
2015-10-27Display system registers by their names when disassembling RL78 instructions.Vinay Kumar8-13/+81
PR binutils/19158 opcodes * rl78-decode.opc: Add 's' print operator to instructions that access system registers. * rl78-decode.c: Regenerate. * rl78-dis.c (print_insn_rl78_common): Decode all system registers. tests * gas/rl78/pr19158.s: New test source file. * gas/rl78/pr19158.d: New test case. * gas/rl78/rl78.exp: Run the new test.
2015-10-27Fix RL78 disassembly so that SP+OFFSET addressing always shows the offset, ↵Vinay Kumar7-20/+86
even when zero. PR binutils/19157 opcodes * rl78-decode.opc: Add 'a' print operator to mov instructions using stack pointer plus index addressing. * rl78-decode.c: Regenerate. tests * gas/rl78: New directory. * gas/rl78/rl78.exp: New test driver. * gas/rl78/pr19157.s: New test source file. * gas/rl78/pr19157.d: New test case.
2015-10-27Add scm_t_dynwind_flags castsSimon Marchi5-5/+13
There is a handful of calls to scm_dynwind_begin (0); where the parameter is an enum, scm_t_dynwind_flags. In C++, we have no choice but to add an explicit cast, since there is no enum value that represents 0 (no flags set). gdb/ChangeLog: * guile/scm-breakpoint.c (gdbscm_set_breakpoint_stop_x): Add scm_t_dynwind_flags casts. * guile/scm-cmd.c (gdbscm_parse_command_name): Likewise. * guile/scm-ports.c (gdbscm_open_memory): Likewise. * guile/scm-value.c (gdbscm_value_to_string): Likewise.
2015-10-27Introduce ax_raw_byte and use itSimon Marchi4-3/+20
This patch was taken directly from Pedro's branch. ax_simple is used to append an agent expression operator to an agent expression string. Therefore, it takes an enum agent_op as input. There is an instance where it's called to append a raw byte, unrelated to the enum. It makes the build fail in C++ mode. This patch introduces ax_raw_byte for that purpose and uses it. gdb/ChangeLog: * ax.h (ax_raw_byte): New declaration. * ax-general.c (ax_raw_byte): New function. (ax_simple): Use ax_raw_byte. * ax-gdb.c (gen_printf): Likewise.
2015-10-27ada-lang.h: Add cast in GROW_VECTSimon Marchi2-1/+5
The assignment requires a cast in C++. We only use this macro for vectors of chars, so adding (char *) diretly will do for now. gdb/ChangeLog: * ada-lang.h (GROW_VECT): Add cast.
2015-10-27Add --fix-stm32l4xx-629360 to the ARM linker to enable a link-time ↵Laurent Alfonsi22-8/+2533
workaround for a bug in the bus matrix / memory controller for some of the STM32 Cortex-M4 based products (STM32L4xx). bfd * bfd-in2.h: Regenerate. * bfd-in.h (bfd_arm_stm32l4xx_fix): New enum. Specify how STM32L4XX instruction scanning should be done. (bfd_elf32_arm_set_stm32l4xx_fix) (bfd_elf32_arm_stm32l4xx_erratum_scan) (bfd_elf32_arm_stm32l4xx_fix_veneer_locations): Add prototypes. (bfd_elf32_arm_set_target_relocs): Add stm32l4xx fix type argument to prototype. * elf32-arm.c (STM32L4XX_ERRATUM_VENEER_SECTION_NAME) (STM32L4XX_ERRATUM_VENEER_ENTRY_NAME): Define macros. (elf32_stm32l4xx_erratum_type): New enum. (elf32_stm32l4xx_erratum_list): New struct. List of veneers or jumps to veneers. (_arm_elf_section_data): Add stm32l4xx_erratumcount, stm32l4xx_erratumlist. (elf32_arm_link_hash_table): Add stm32l4xx_erratum_glue_size, stm32l4xx_fix and num_stm32l4xx_fixes fields. (ctz): New function. (popcount): New function. (elf32_arm_link_hash_table_create): Initialize stm32l4xx_fix. (put_thumb2_insn): New function. (STM32L4XX_ERRATUM_LDM_VENEER_SIZE): Define. Size of a veneer for LDM instructions. (STM32L4XX_ERRATUM_VLDM_VENEER_SIZE): Define. Size of a veneer for VLDM instructions. (bfd_elf32_arm_allocate_interworking_sections): Initialise erratum glue section. (record_stm32l4xx_erratum_veneer) : New function. Create a single veneer, and its associated symbols. (bfd_elf32_arm_add_glue_sections_to_bfd): Add STM32L4XX erratum glue. (bfd_elf32_arm_set_stm32l4xx_fix): New function. Set the type of erratum workaround required. (bfd_elf32_arm_stm32l4xx_fix_veneer_locations): New function. Find out where veneers and branches to veneers have been placed in virtual memory after layout. (is_thumb2_ldmia): New function. (is_thumb2_ldmdb): Likewise. (is_thumb2_vldm ): Likewise. (stm32l4xx_need_create_replacing_stub): New function. Decide if a veneer must be emitted. (bfd_elf32_arm_stm32l4xx_erratum_scan): Scan the sections of an input BFD for potential erratum-triggering insns. Record results. (bfd_elf32_arm_set_target_relocs): Set stm32l4xx_fix field in global hash table. (elf32_arm_size_dynamic_sections): Collect glue information. (create_instruction_branch_absolute): New function. (create_instruction_ldmia): Likewise. (create_instruction_ldmdb): Likewise. (create_instruction_mov): Likewise. (create_instruction_sub): Likewise. (create_instruction_vldmia): Likewise. (create_instruction_vldmdb): Likewise. (create_instruction_udf_w): Likewise. (create_instruction_udf): Likewise. (push_thumb2_insn32): Likewise. (push_thumb2_insn16): Likewise. (stm32l4xx_fill_stub_udf): Likewise. (stm32l4xx_create_replacing_stub_ldmia): New function. Expands the replacing stub for ldmia instructions. (stm32l4xx_create_replacing_stub_ldmdb): Likewise for ldmdb. (stm32l4xx_create_replacing_stub_vldm): Likewise for vldm. (stm32l4xx_create_replacing_stub): New function. Dispatches the stub emission to the appropriate functions. (elf32_arm_write_section): Output veneers, and branches to veneers. ld * ld.texinfo: Description of the STM32L4xx erratum workaround. * emultempl/armelf.em (stm32l4xx_fix): New. (arm_elf_before_allocation): Choose the type of fix, scan for erratum. (gld${EMULATION_NAME}_finish): Fix veneer locations. (arm_elf_create_output_section_statements): Propagate stm32l4xx_fix value. (PARSE_AND_LIST_PROLOGUE): Define OPTION_STM32L4XX_FIX. (PARSE_AND_LIST_LONGOPTS): Add entry for handling --fix-stm32l4xx-629360. (PARSE_AND_LIST_OPTION): Add entry for helping on --fix-stm32l4xx-629360. (PARSE_AND_LIST_ARGS_CASES): Treat OPTION_STM32L4XX_FIX. tests * ld-arm/arm-elf.exp (armelftests_common): Add STM32L4XX tests. * ld-arm/stm32l4xx-cannot-fix-far-ldm.d: New. * ld-arm/stm32l4xx-cannot-fix-far-ldm.s: Likewise. * ld-arm/stm32l4xx-cannot-fix-it-block.d: Likewise. * ld-arm/stm32l4xx-cannot-fix-it-block.s: Likewise. * ld-arm/stm32l4xx-fix-all.d: Likewise. * ld-arm/stm32l4xx-fix-all.s: Likewise. * ld-arm/stm32l4xx-fix-it-block.d: Likewise. * ld-arm/stm32l4xx-fix-it-block.s: Likewise. * ld-arm/stm32l4xx-fix-ldm.d: Likewise. * ld-arm/stm32l4xx-fix-ldm.s: Likewise. * ld-arm/stm32l4xx-fix-vldm.d: Likewise. * ld-arm/stm32l4xx-fix-vldm.s: Likewise.
2015-10-27Add support to readelf for reading NetBSD ELF core notes.Stephen Fisher4-0/+48
binutils * binutils.c (process_netbsd_elf_note): New function. (process_note): Call the new function for NetBSD core notes. include * common.h (NT_NETBSD_MARCH): Define.
2015-10-27Add support for 32-bit and 64-bit PowerPC AIX core files.Sangamesh Mallayya4-23/+101
* configure.ac (powerpc64-*-aix[5-9].*): Match powerpc64 running aix for core file support. * configure: Regenerate. * rs6000-core.c: Check for __ld_info64 if compiling 64-bit gdb. Added BFD64 check if we are using old core file format for 32-bit gdb. Set sizeof CORE_COMMONSZ appropriately in case of either new or old core file format. (read_hdr): Added BFD64 check for 64-bit support. (rs6000coff_core_p): Likewise. (rs6000coff_core_file_matches_executable_p): Likewise. (rs6000coff_core_file_failing_command): Likewise. (rs6000coff_core_file_failing_signal): Likewise. Add support for debugging core files generated by binaries in Large Memory model. (rs6000coff_core_p): If Large Memory Model is used, then the .data segment should start from BDATAORG which has been defined in the system header files.
2015-10-27Prevent overflowing the selected_cpu_name buffer in the ARM assembler.Jim Wilson2-2/+15
* config/tc-arm.c (selected_cpu_name): Increase length of array to accomodate "Samsung Exynos M1". (arm_parse_cpu): Add assertion and length check to prevent overfilling selected_cpu_name.
2015-10-27xfail pr19161 test on hppa-linuxAlan Modra2-1/+6
HPPA linux needs libgcc.a for millicode routine $$dyncall. * ld-gc/pr19161.d: xfail hppa-*-*.
2015-10-27Fix access_to_packed_array.exp typos/errorsJan Kratochvil2-4/+8
Running ./gdb.ada/access_to_packed_array.exp ... ERROR: tcl error sourcing ./gdb.ada/access_to_packed_array.exp. ERROR: extra characters after close-quote while executing "gdb_test "print pack.a" "\\(0 => 1, 2, 3, 4, 5, 6, 7, 8, 9, 10\\)")" (file "./gdb.ada/access_to_packed_array.exp" line 29) invoked from within "source ./gdb.ada/access_to_packed_array.exp" ("uplevel" body line 1) invoked from within "uplevel #0 source ./gdb.ada/access_to_packed_array.exp" invoked from within "catch "uplevel #0 source $test_file_name"" Unrelated to the typos I have changed the print expectations s/"x"/" = x"/ as for example expectation "3" should not match " = 43". 2015-10-27 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.ada/access_to_packed_array.exp: Fix typos erroring the testfile.
2015-10-26symtab.h (struct general_symbol_info> <ada_mangled>: Update comment.Doug Evans2-1/+5
gdb/ChangeLog: * symtab.h (struct general_symbol_info> <ada_mangled>: Update comment.
2015-10-27Evaluate __start_* and __stop_* symbol PROVIDE expressions earlyAlan Modra3-9/+32
Makes these symbols defined before bfd_elf_size_dynamic_sections, to avoid horrible hacks elsewhere. The exp_fold_tree undefweak change is necessary to define undefweak symbols early too. The comment was wrong. PROVIDE in fact defines undefweak symbols, via bfd_elf_record_link_assignment. PR ld/19175 * ldlang.c (lang_insert_orphan): Evaluate __start_* and __stop_* symbol PROVIDE expressions. * ldexp.c (exp_fold_tree_1 <etree_provide>): Define undefweak references.
2015-10-26target.c: Add a cast and change a typeSimon Marchi2-4/+10
Fixes some errors in C++ build. gdb/ChangeLog: * target.c (memory_xfer_partial): Change type of buf to gdb_byte pointer. (simple_search_memory): Cast return of memmem.
2015-10-26stap-probe.c: Add castsSimon Marchi2-4/+10
gdb/ChangeLog: * stap-probe.c (handle_stap_probe): Add (const char *) casts.
2015-10-26ctf_xfer_partial: Return TARGET_XFER_E_IO instead of -1 on errorSimon Marchi2-1/+6
Use the enum value instead of the corresponding int value. gdb/ChangeLog: * ctf.c (ctf_xfer_partial): Return TARGET_XFER_E_IO instead of -1 on error.
2015-10-27Automatic date update in version.inGDB Administrator1-1/+1
2015-10-26Check symbol defined by assignment in linker scriptH.J. Lu14-102/+102
Symbol symbol defined by an assignment in a linker script has type bfd_link_hash_new. elf_i386_convert_load and elf_x86_64_convert_load should check bfd_link_hash_new to see if a symbol is defined by a linker script. bfd/ PR ld/19175 * elf32-i386.c (elf_i386_convert_load): Check bfd_link_hash_new instead of calling bfd_link_get_defined_symbol. * elf64-x86-64.c (elf_x86_64_convert_load): Likewise. Skip relocation overflow for bfd_link_hash_new. * linker.c (bfd_link_get_defined_symbol): Removed. * bfd-in2.h: Regenerated. ld/testsuite/ PR ld/19175 * ld-i386/i386.exp: Run pr19175. * ld-x86-64/x86-64.exp: Likewise. * ld-i386/pr19175.d: New file. * ld-i386/pr19175.s: Likewise. * ld-i386/pr19175.t: Likewise. * ld-x86-64/pr19175.d: Likewise. * ld-x86-64/pr19175.s: Likewise. * ld-x86-64/pr19175.t: Likewise.
2015-10-26PR symtab/17391 gdb internal error: assertion fails in regcache.c:178Doug Evans31-191/+411
gdb/ChangeLog: * dwarf2-frame.c (dwarf2_restore_rule): Call dwarf_reg_to_regnum instead of gdbarch_dwarf2_reg_to_regnum. (dwarf2_frame_cache): Ditto. (read_addr_from_reg): Call dwarf_reg_to_regnum_or_error instead of gdbarch_dwarf2_reg_to_regnum. (get_reg_value): Ditto. (dwarf2_fetch_cfa_info): Ditto. (dwarf2_frame_prev_register): Ditto. * dwarf2loc.c: #include "complaints.h". (dwarf_expr_read_addr_from_reg): Call dwarf_reg_to_regnum_or_error instead of gdbarch_dwarf2_reg_to_regnum. (dwarf_expr_get_reg_value): Ditto. (read_pieced_value): Ditto. (write_pieced_value): Ditto. (dwarf2_evaluate_loc_desc_full): Ditto. (dwarf_reg_to_regnum): New function. (throw_bad_regnum_error): New function. (dwarf_reg_to_regnum_or_error): Renamed from dwarf2_reg_to_regnum_or_errorChange to take a ULONGEST regnum. All callers updated. Call throw_bad_regnum_error. (locexpr_regname): Improve text of bad register number. * dwarf2loc.h (dwarf_reg_to_regnum): Declare. (dwarf_reg_to_regnum_or_error): Update prototype. * dwarf2expr.c: #include "dwarf2loc.h". (dwarf_block_to_sp_offset): Call dwarf_reg_to_regnum instead of gdbarch_dwarf2_reg_to_regnum. * gdbarch.sh (dwarf2_reg_to_regnum): Add comment. * gdbarch.h: Regenerate. * amd64-tdep.c (amd64_dwarf_reg_to_regnum): Remove warning for bad register. * avr-tdep.c (avr_dwarf_reg_to_regnum): Ditto. * cris-tdep.c (cris_dwarf2_reg_to_regnum): Ditto. * bfin-tdep.c (bfin_reg_to_regnum): Fix error checking. * hppa-linux-tdep.c (hppa_dwarf_reg_to_regnum): Improve error checking. Remove warning for bad register. * hppa-tdep.c (hppa64_dwarf_reg_to_regnum): Ditto. * i386-tdep.c (i386_svr4_dwarf_reg_to_regnum): Renamed from i386_svr4_reg_to_regnum. Return -1 for bad registers. (i386_svr4_reg_to_regnum): New function. (i386_gdbarch_init): Update call to set_gdbarch_dwarf2_reg_to_regnum. * microblaze-tdep.c (microblaze_dwarf2_reg_to_regnum): Don't assert on bad registers, return -1. * msp430-tdep.c (msp430_dwarf2_reg_to_regnum): Improve error checking. Remove warning for bad register. * nios2-tdep.c: Add static assert for NIOS2_NUM_REGS. (nios2_dwarf_reg_to_regnum): Fix off-by-one error. Remove warning for bad register. Return -1 for bad register. * rl78-tdep.c (rl78_dwarf_reg_to_regnum): Don't flag an internal error for bad register, return -1. * rx-tdep.c (rx_dwarf_reg_to_regnum): Ditto. * m68k-tdep.c (m68k_dwarf_reg_to_regnum): Fix error result. * mep-tdep.c (mep_debug_reg_to_regnum): Ditto. * mips-tdep.c (mips_stab_reg_to_regnum): Ditto. (mips_dwarf_dwarf2_ecoff_reg_to_regnum): Ditto. * mn10300-tdep.c (mn10300_dwarf2_reg_to_regnum): Remove warning for bad regs. * xtensa-tdep.c (xtensa_reg_to_regnum): Remove internal error for bad regs. Fix error result. * stabsread.c (stab_reg_to_regnum): Watch for negative regno. (reg_value_complaint): Update complaint text. * mdebugread.c (reg_value_complaint): New function. (mdebug_reg_to_regnum): Rewrite to watch for bad reg numbers. gdb/testsuite/ChangeLog: * lib/dwarf.exp (_location): Add support for DW_OP_regx. * gdb.dwarf2/bad-regnum.c: New file. * gdb.dwarf2/bad-regnum.exp: New file.
2015-10-26PR python/18938: source -s foo.py with foo.py a symlink to foo.notpy failsDoug Evans4-4/+35
gdb/ChangeLog: PR python/18938 * cli/cli-cmds (source_script_fron_sctream): New arg file_to_open. All callers updated. gdb/testsuite/ChangeLog: * gdb.python/python.exp: Add test for symlink from .py file to .notpy file.
2015-10-26Print address map in output of "mt print psymbols"Doug Evans2-2/+98
gdb/ChangeLog: * psymtab.c (struct dump_psymtab_addrmap_data): Define. (dump_psymtab_addrmap_1, dump_psymtab_addrmap): New functions. (maintenance_print_psymbols): Print address map.