aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-06-10Fix gdbserver <library-list> and its #FIXED version="1.0"Jan Kratochvil4-7/+25
While reimplementing <library-list/> I found from expat-2.0.1-11.fc15.x86_64: warning: while parsing target library list (at line 1): Required attribute "version" of <library-list-svr4> not specified I believe the same bug has to apply for existing FSF gdbserver but I do not have any <library-list/> platform to test it (I did not try to build MinGW). features/library-list.dtd: <!ATTLIST library-list version CDATA #FIXED "1.0"> http://www.xml.com/pub/a/98/10/guide0.html?page=3 says: In this case, the attribute is not required, but if it occurs, it must have the specified value. Which would suggest gdbserver is right but solib-target.c is wrong. One could also make gdbserver explicit for the version (if those 14 bytes are not of a concern). gdb/ChangeLog 2015-06-10 Jan Kratochvil <jan.kratochvil@redhat.com> * solib-target.c (library_list_start_list): Do not dereference variable version in its initialization. Make the VERSION check handle NULL. (library_list_attributes): Make "version" GDB_XML_AF_OPTIONAL. gdb/gdbserver/ChangeLog 2015-06-10 Jan Kratochvil <jan.kratochvil@redhat.com> * server.c (handle_qxfer_libraries): Set `version' attribute for <library-list>.
2015-06-10Announce new container-awareness features for GNU/Linux systemsGary Benson2-0/+13
This commit announces the newly added ability to directly access executable and shared library files when attaching to processes running in containers on GNU/Linux systems. gdb/ChangeLog: * NEWS: Announce support for direct access of executable and shared library files when attaching to inferiors in containers on GNU/Linux systems.
2015-06-10Implement vFile:setfs in gdbserverGary Benson6-4/+117
This commit implements the "vFile:setfs" packet in gdbserver. gdb/gdbserver/ChangeLog: * target.h (struct target_ops) <multifs_open>: New field. <multifs_unlink>: Likewise. <multifs_readlink>: Likewise. * linux-low.c (nat/linux-namespaces.h): New include. (linux_target_ops): Initialize the_target->multifs_open, the_target->multifs_unlink and the_target->multifs_readlink. * hostio.h (hostio_handle_new_gdb_connection): New declaration. * hostio.c (hostio_fs_pid): New static variable. (hostio_handle_new_gdb_connection): New function. (handle_setfs): Likewise. (handle_open): Use the_target->multifs_open as appropriate. (handle_unlink): Use the_target->multifs_unlink as appropriate. (handle_readlink): Use the_target->multifs_readlink as appropriate. (handle_vFile): Handle vFile:setfs packets. * server.c (handle_query): Call hostio_handle_new_gdb_connection after target_handle_new_gdb_connection.
2015-06-10Implement multiple-filesystem support for remote targetsGary Benson5-0/+100
This commit allows GDB to access executables and shared libraries on remote targets where the remote stub does not share a common filesystem with the inferior(s). A new packet "vFile:setfs" is added to the remote protocol and the three remote hostio functions with filename arguments are modified to send "vFile:setfs" packets as necessary. gdb/ChangeLog: * remote.c (struct remote_state) <fs_pid>: New field. (new_remote_state): Initialize the above. (PACKET_vFile_setfs): New enum value. (remote_hostio_set_filesystem): New function. (remote_hostio_open): Call the above. (remote_hostio_unlink): Likewise. (remote_hostio_readlink): Likewise. (_initialize_remote): Register new "set/show remote hostio-setfs-packet" command. * NEWS: Announce new vFile:setfs packet. gdb/doc/ChangeLog: * gdb.texinfo (Remote Configuration): Document the "set/show remote hostio-setfs-packet" command. (Host I/O Packets): Document the vFile:setfs packet.
2015-06-10Implement mount namespace support for native Linux targetsGary Benson5-0/+143
This commit allows GDB to access executables and shared libraries on native Linux targets where GDB and the inferior have different mount namespaces. gdb/ChangeLog: * linux-nat.c (nat/linux-namespaces.h): New include. (fileio.h): Likewise. (linux_nat_filesystem_is_local): New function. (linux_nat_fileio_pid_of): Likewise. (linux_nat_fileio_open): Likewise. (linux_nat_fileio_readlink): Likewise. (linux_nat_fileio_unlink): Likewise. (linux_nat_add_target): Initialize to_filesystem_is_local, to_fileio_open, to_fileio_readlink and to_fileio_unlink. (_initialize_linux_nat): New "set/show debug linux-namespaces" commands. * NEWS: Mention new "set/show debug linux-namespaces" commands. gdb/doc/ChangeLog: * gdb.texinfo (Debugging Output): Document the "set/show debug linux-namespaces" command.
2015-06-10Add "inferior" argument to some target_fileio functionsGary Benson7-88/+179
This commit adds a new argument to all target_fileio functions with filename arguments to allow the desired inferior to be specified. This allows GDB to support systems where processes do not necessarily share a common filesystem. gdb/ChangeLog: * target.h (struct inferior): New forward declaration. (struct target_ops) <to_filesystem_is_local>: Update comment. (struct target_ops) <to_fileio_open>: New argument inf. Update comment. All implementations updated. (struct target_ops) <to_fileio_unlink>: Likewise. (struct target_ops) <to_fileio_readlink>: Likewise. (target_filesystem_is_local): Update comment. (target_fileio_open): New argument inf. Update comment. (target_fileio_unlink): Likewise. (target_fileio_readlink): Likewise. (target_fileio_read_alloc): Likewise. (target_fileio_read_stralloc): Likewise. * target.c (target_fileio_open): New argument inf. Pass inf to implementation. Update debug printing. (target_fileio_unlink): Likewise. (target_fileio_readlink): Likewise. (target_fileio_read_alloc_1): New argument inf. Pass inf to target_fileio_open. (target_fileio_read_alloc): New argument inf. Pass inf to target_fileio_read_alloc_1. (target_fileio_read_stralloc): Likewise. * gdb_bfd.c (inferior.h): New include. (gdb_bfd_iovec_fileio_open): Replace unused "open_closure" argument with new argument "inferior". Pass inferior to target_fileio_open. (gdb_bfd_open): Supply inferior argument to gdb_bfd_iovec_fileio_open. * linux-tdep.c (linux_info_proc): Supply inf argument to relevant target_fileio calls. (linux_find_memory_regions_full): Likewise. (linux_fill_prpsinfo): Likewise. * remote.c (remote_filesystem_is_local): Supply inf argument to remote_hostio_open. (remote_file_put): Likewise. (remote_file_get): Likewise. (remote_file_delete): Supply inf argument to remote_hostio_unlink.
2015-06-10Comment and whitespace changesGary Benson4-61/+63
Comments on the various implementations of target fileio functions duplicate information documented in target.h. This commit replaces the duplicated documentation with breadcrumbs, and inserts blank lines to separate comments from the functions they describe where necessary. gdb/ChangeLog: * inf-child.c (inf_child_fileio_open): Replace comment. (inf_child_fileio_pwrite): Likewise. (inf_child_fileio_pread): Likewise. (inf_child_fileio_fstat): Insert blank line before comment. (inf_child_fileio_close): Replace comment. (inf_child_fileio_unlink): Likewise. (inf_child_fileio_readlink): Likewise. * remote.c (remote_hostio_open): Likewise. (remote_hostio_pread): Likewise. (remote_hostio_pwrite): Likewise. (remote_hostio_close): Likewise. (remote_hostio_unlink): Likewise. (remote_hostio_readlink): Likewise. (remote_hostio_fstat): Likewise. (remote_filesystem_is_local): Likewise. * target.c (target_fileio_open): Likewise. (target_fileio_pwrite): Likewise. (target_fileio_pread): Likewise. (target_fileio_fstat): Insert blank line before comment. (target_fileio_close): Replace comment. (target_fileio_unlink): Likewise. (target_fileio_readlink): Likewise. (target_fileio_read_alloc): Likewise. (target_fileio_read_stralloc): Likewise.
2015-06-10Remove linux_proc_pid_get_nsGary Benson4-35/+10
This commit removes linux_proc_pid_get_ns, and updates its only caller to use linux_ns_same instead. gdb/ChangeLog: * linux-thread-db.c (nat/linux-namespaces.h): New include. (check_pid_namespace_match): Use linux_ns_same rather than linux_proc_pid_get_ns to spot PID namespace mismatches. * nat/linux-procfs.h (linux_proc_pid_get_ns): Remove. * nat/linux-procfs.c (linux_proc_pid_get_ns): Likewise.
2015-06-10Introduce nat/linux-namespaces.[ch]Gary Benson31-26/+1205
This commit introduces new shared files nat/linux-namespaces.[ch] containing code to support Linux namespaces that will be used by both GDB and gdbserver. gdb/ChangeLog: * configure.ac (AC_CHECK_FUNCS): Add setns. * config.in: Regenerate. * configure: Likewise. * nat/linux-namespaces.h: New file. * nat/linux-namespaces.c: Likewise. * Makefile.in (HFILES_NO_SRCDIR): Add nat/linux-namespaces.h. (linux-namespaces.o): New rule. * config/aarch64/linux.mh (NATDEPFILES): Add linux-namespaces.o. * config/alpha/alpha-linux.mh (NATDEPFILES): Likewise. * config/arm/linux.mh (NATDEPFILES): Likewise. * config/i386/linux.mh (NATDEPFILES): Likewise. * config/i386/linux64.mh (NATDEPFILES): Likewise. * config/ia64/linux.mh (NATDEPFILES): Likewise. * config/m32r/linux.mh (NATDEPFILES): Likewise. * config/m68k/linux.mh (NATDEPFILES): Likewise. * config/mips/linux.mh (NATDEPFILES): Likewise. * config/pa/linux.mh (NATDEPFILES): Likewise. * config/powerpc/linux.mh (NATDEPFILES): Likewise. * config/powerpc/ppc64-linux.mh (NATDEPFILES): Likewise. * config/powerpc/spu-linux.mh (NATDEPFILES): Likewise. * config/s390/linux.mh (NATDEPFILES): Likewise. * config/sparc/linux.mh (NATDEPFILES): Likewise. * config/sparc/linux64.mh (NATDEPFILES): Likewise. * config/tilegx/linux.mh (NATDEPFILES): Likewise. * config/xtensa/linux.mh (NATDEPFILES): Likewise. gdb/gdbserver/ChangeLog: * configure.ac (AC_CHECK_FUNCS): Add setns. * config.in: Regenerate. * configure: Likewise. * Makefile.in (SFILES): Add nat/linux-namespaces.c. (linux-namespaces.o): New rule. * configure.srv (srv_linux_obj): Add linux-namespaces.o.
2015-06-10Move make_cleanup_close to common codeGary Benson5-18/+35
This commit moves the function make_cleanup_close from gdb/utils.[ch] to gdb/common/filestuff.[ch] to make it usable from common code. gdb/ChangeLog: * utils.h (make_cleanup_close): Moved to common/filestuff.h. * utils.c (do_close_cleanup): Moved to common/filestuff.c. (make_cleanup_close): Likewise. * common/filestuff.h (make_cleanup_close): Moved from utils.h. * common/filestuff.c (do_close_cleanup): Moved from utils.c. (make_cleanup_close): Likewise.
2015-06-10windows-nat: Also ignore ERROR_INVALID_HANDLE from SuspendThread()Jon Turney2-2/+10
Discussed somewhat in the thread at https://cygwin.com/ml/gdb-patches/2013-06/msg00680.html This is pretty straightforward to demonstrate on Cygwin currently: $ cat main.c int main() { return 0; } $ gcc -g -O0 main.c -o main $ ./gdb ./main [...] (gdb) r Starting program: /wip/binutils-gdb/build.x86_64/gdb/main warning: SuspendThread (tid=0x1cf0) failed. (winerr 6) [Inferior 1 (process 976) exited normally] with this patch applied: $ ./gdb ./main [...] (gdb) r Starting program: /wip/binutils-gdb/build.x86_64/gdb/main [Inferior 1 (process 4852) exited normally] gdb/ChangeLog: 2015-06-03 Jon Turney <jon.turney@dronecode.org.uk> * windows-nat.c (thread_rec): Also ignore ERROR_INVALID_HANDLE from SuspendThread(). Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2015-06-10windows-nat: Trim a trailing '\n' from OutputDebugString before echoing itJon Turney2-1/+12
For cosmetic purposes, trim a trailing '\n' from OutputDebugString before echoing it, as warning() will add a '\n', anyhow. gdb/ChangeLog: 2015-06-03 Jon Turney <jon.turney@dronecode.org.uk> * windows-nat.c (handle_output_debug_string): Trim trailing '\n' from OutputDebugString. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2015-06-10Missing Changelogs for last commitsWalfred Tedeschi3-0/+54
Signed-off-by: Walfred Tedeschi <walfred.tedeschi@intel.com>
2015-06-10Add support for bound table in the Intel MPX context.Walfred Tedeschi5-1/+465
Intel(R) Memory protection bound information are located in register to be tested using the MPX new instructions. Since the number of bound registers are limited a table is used to provide storage for bounds during run-time. In order to investigate the contents of the MPX bound table two new commands are added to GDB. "show mpx bound" and "set mpx bound" are used to display and set values on the MPX bound table. 2015-04-20 Walfred Tedeschi <walfred.tedeschi@intel.com> Mircea Gherzan <mircea.gherzan@intel.com> * i386-tdep.c (MPX_BASE_MASK, MPX_BD_MASK, MPX_BT_MASK, MPX_BD_MASK_32, MPX_BT_MASK_32): New macros. (i386_mpx_set_bounds): New function that implements the command "set-mpx-bound". (i386_mpx_enabled) Helper function to test MPX availability. (i386_mpx_bd_base) Helper function to calculate the base directory address. (i386_mpx_get_bt_entry) Helper function to access a bound table entry. (i386_mpx_print_bounds) Effectively display bound information. (_initialize_i386_tdep): Qdd new commands to commands "set mpx" and "show mpx". (_initialize_i386_tdep): Add "bound" to the commands "show mpx" and "set mpx" commands. (mpx_set_cmdlist and mpx_show_cmdlist): list for the new prefixed "set mpx" and "show mpx" commands. * NEWS: List new commands for MPX support. testsuite: * gdb.arch/i386-mpx-map.c: New file. * gdb.arch/i386-mpx-map.exp: New File. doc: * gdb.texinfo (i386): Add documentation about "show mpx bound" and "set mpx bound".
2015-06-10Obvious indentation fixes on test sample and test file for MPX registers.Walfred Tedeschi2-10/+10
2015-06-08 Walfred Tedeschi <walfred.tedeschi@intel.com> gdb/testsuite: * gdb.arch/i386-mpx.c (have_mpx): Indentation fixed. * gdb.arch/i386-mpx.exp: Indentation fixed.
2015-06-10Improve test for processor feature om MPX registers test.Walfred Tedeschi2-13/+19
Skips the MPX register test in case target is not Intel. Improves the test for MPX feature making MPX and AVX512 tests more similar in terms of initialization. Indentation was improved on sample file and final return added to have_mpx. On test file identation was improved and gdb_send was exchanged by gdb_test_multiple. 2015-06-08 Walfred Tedeschi <walfred.tedeschi@intel.com> gdb/testsuite * gdb.arch/i386-mpx.c: Added final return to the have_mpx function and improved indentation. * gdb.arch/i386-mpx.exp: Exchanging gdb_send and gdb_expect for gdb_test_multiple. Added additional tests to skip the test.
2015-06-10Fix MPX and AVX512 tests for path changes.Walfred Tedeschi4-4/+4
Changes on the path for i386-cpuid.h file lead to failure in compiling tests for AVX512 and MPX. 2015-06-08 Walfred Tedeschi <walfred.tedeschi@intel.com> gdb/testsuite * gdb.arch/i386-avx512.c: Change path in include file. * gdb.arch/i386-avx512.exp: Change include dir path compilation flag. * gdb.arch/i386-mpx.c: Change path in include file. * gdb.arch/i386-mpx.exp: Change include dir path compilation flag.
2015-06-10Automatic date update in version.inGDB Administrator1-1/+1
2015-06-09Fix latest sim/common/ChangeLog entry.Joel Brobecker1-1/+0
2015-06-09Remove unnecessary empty line in sim/common/ChangeLogJoel Brobecker1-1/+0
2015-06-09Fix spelling mistakes in sim/common/sim-events.c error messages.Mike Stump2-1/+7
sim/common/ChangeLog: * sim-events.c (sim_events_schedule_after_signal): Fix spelling mistake in call to sim_engine_abort. (sim_events_schedule_after_signal): Likewise.
2015-06-09Don't assume File-I/O mode bits match the host's formatGary Benson6-7/+75
inf_child_fileio_open and its gdbserver equivalent both assume that the mode_t bits defined in gdb/fileio.h are the same as those used by the open system call, but there is no mechanism to ensure this is the case. This commit adds a conversion function to handle systems where the File-I/O definitions do not align with the host's. gdb/ChangeLog: * common/fileio.h (fileio_to_host_mode): New declaration. * common/fileio.c (fileio_to_host_mode): New Function. * inf-child.c (inf_child_fileio_open): Process mode argument with fileio_to_host_mode. gdb/gdbserver/ChangeLog: * hostio.c (handle_open): Process mode argument with fileio_to_host_mode.
2015-06-09Fix preprocessor conditionalGary Benson2-1/+6
This commit fixes a typo in common/fileio.c where S_IWGRP was misspelled as S_IWRGRP in a preprocessor conditional, causing Host-I/O "vFile:fstat:" and File-I/O "Fstat" and "Ffstat" responses to always indicate files were not group-writable regardless of their actual status.
2015-06-09Automatic date update in version.inGDB Administrator1-1/+1
2015-06-08Update French Translations for LD and GOLD.Nick Clifton4-220/+3633
ld * po/fr.po: Updated French Translation. gold * po/fr.po: New French Translation.
2015-06-08Fix RX GAS handling of integer bignums.Nick Clifton2-22/+33
* config/tc-rx.c (rx_op): Correct handling of integer bignums.
2015-06-08Automatic date update in version.inGDB Administrator1-1/+1
2015-06-07Fix incorrect handling of STT_COMMON symbols in shared libraries.Cary Coutant3-15/+27
The gABI allows STT_COMMON symbols to appear in executables and shared objects, so that the dynamic loader can resolve commons across modules. When reading a shared object, however, an STT_COMMON symbol should be treated as a regular definition at link time. In a relocatable object, the gABI requires that any STT_COMMON symbols must also be defined in the special SHN_COMMON section (which we extend to include target-specific small and large common sections). Thus, there is no need for gold to treat STT_COMMON symbols as common unless the st_shndx field is also set to a common section. gold/ PR gold/18288 * resolve.cc (symbol_to_bits): Remove type parameter; adjust all callers. Don't use STT_COMMON to check for common symbols. (Symbol_table::resolve): Warn if relocatable object has STT_COMMON symbol that's not in a common section. * symtab.h (Symbol::is_common): Don't use STT_COMMON to check for common symbols.
2015-06-07Automatic date update in version.inGDB Administrator1-1/+1
2015-06-06Automatic date update in version.inGDB Administrator1-1/+1
2015-06-05Improves the detection of partial .debug_line sections.Nick Clifton2-8/+15
* dwarf.c (read_debug_line_header): Use reloc_at to detect incomplete .debug_line headers
2015-06-05Fixes a typo in the list of targets that should not run the compressed1d test.Nick Clifton2-1/+5
* ld-elf/compressed1d.d: Fix typo: iq200 -> iq2000.
2015-06-05Fixes computation of MSP430 SYM_DIFF relocs in very small sections.Nick Clifton2-3/+34
* elf32-msp430.c (rl78_sym_diff_handler): New function. (msp430_howto_table): Use the new function for the SYM_DIFF reloc. (msp430x_howto_table): Likewise.
2015-06-05Move vgdb special case into remote_filesystem_is_localGary Benson3-24/+59
Valgrind GDB (vgdb) presents itself as a remote target but works on the local filesystem. gdb_bfd_open contained a special case to make vgdb work with "target:" sysroots, but the implementation meant that GDB would fall back to the local filesystem if *any* to_fileio_open method failed with ENOSYS for *any* reason. This commit moves the vgdb special case to remote_filesystem_is_local to allow the fallback to be restricted only to the specific case that remote file transfer is unsupported. This commit also adds a warning which is displayed the first time the fallback is used. gdb/ChangeLog: * gdb_bfd.c (gdb_bfd_open): Move vgdb special case to... * remote.c (remote_filesystem_is_local): ...here.
2015-06-05ppc476 linker workaround shared lib fixesAlan Modra8-0/+130
When building a shared lib from non-PIC objects, we'll get dynamic text relocations. These need to move with any insns we move. Otherwise the dynamic reloc will modify the branch, resulting in crashes and other unpleasant behaviour. Also, ld -r --ppc476-workaround used with sufficiently aligned PIC objects needs a fix for emitted REL16 relocs. bfd/ * elf64-ppc.c (ppc_elf_relocate_section): Move dynamic text relocs with insns moved by --ppc476-workaround. Correct output of REL16 relocs. ld/testsuite/ * ld-powerpc/ppc476-shared.s, * ld-powerpc/ppc476-shared.lnk, * ld-powerpc/ppc476-shared.d, * ld-powerpc/ppc476-shared2.d: New tests. * ld-powerpc/powerpc.exp: Run them.
2015-06-04Add diststuff target to Makefile.Cary Coutant3-2/+12
gold/ PR gold/18200 * Makefile.am (diststuff): Add target. * Makefile.in: Regenerate.
2015-06-04Change default to discard temporary local symbols in merge sections.Cary Coutant4-6/+81
Add --discard-none to keep all local symbols. gold/ PR gold/17498 * object.cc (Sized_relobj_file::do_count_local_symbols): Discard temporary locals in merge sections. * options.cc (General_options::parse_discard_all): New method. (General_options::parse_discard_locals): New method. (General_options::parse_discard_none): New method. (General_options::General_options): Initialize discard_locals_. * options.h (--discard-all): Convert to special option. (--discard-locals): Likewise. (--discard-none): New option. (General_options::discard_all): New method. (General_options::discard_locals): New method. (General_options::discard_sec_merge): New method. (General_options::Discard_locals): New enum. (General_options::discard_locals_): New data member.
2015-06-04Add hwsync extended mnemonic.Peter Bergner4-4/+19
This commit adds a new extended menmonic for "sync 0" (same as "sync"). The ISA documentation doesn't explicitly mention hwsync as an extended mnemonic (yet), but it does mention "heavyweight sync" and "hwsync" as the operation that gets performed when the sync's L field is 0. This is only enabled for POWER4 and later. opcodes/ * ppc-opc.c: (powerpc_opcodes) <hwsync>: New extended mnemonic. gas/testsuite/ * gas/ppc/a2.d: Fixup test case due to new extended mnemonic. * gas/ppc/power4.s <hwsync, lwsync, ptesync, sync>: Add tests. * gas/ppc/power4.d: Likewise.
2015-06-05Automatic date update in version.inGDB Administrator1-1/+1
2015-06-04compile-print.exp: xfail->kfail for '@' GDB array operatorJan Kratochvil2-2/+7
Patch implementing '@' GDB array operator in GCC has been rejected: https://gcc.gnu.org/ml/gcc-patches/2015-06/msg00414.html and so there is now a GDB tracker to implement it just in GDB: https://sourceware.org/bugzilla/show_bug.cgi?id=18489 gdb/testsuite/ChangeLog 2015-06-04 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.compile/compile-print.exp (compile print *vararray@3) (compile print *vararrayp@3): Change xfail to kfail compile/18489.
2015-06-04Regenerate gdbarch.c to sync with gdbarch.shYao Qi2-3/+7
When I do something else, I find that gdbarch.c isn't sync'ed with gdbarch.sh. This patch just move some statements on stack_frame_destroyed_p some lines below. gdb: 2015-06-04 Yao Qi <yao.qi@linaro.org> * gdbarch.c: Regenerate it.
2015-06-04Fixes the check for emulated MSP430 instrucrtions that take no operands.Nick Clifton2-1/+6
PR 18474 * msp430-dis.c (msp430_nooperands): Fix check for emulated insns.
2015-06-04Fix compile time warning for tc-h8300.c when using gcc 5+.Nick Clifton2-1/+6
* config/tc-h8300.c (md_section_align): Fix compile time warning about left shifting a negative value.
2015-06-04[AArch64] Add support for ARMv8.1 command line optionMatthew Wahab6-1/+26
2015-06-04[ARM] Use frag's thumb_mode information when availableJiong Wang2-2/+11
2015-06-04 Renlin Li <renlin.li@arm.com> * config/tc-arm.c (arm_init_frag): Use frag's thumb_mode information when available.
2015-06-03Fix SIZEOF_HEADERS in gold.Cary Coutant3-3/+35
Gold undercounts the number of program headers it's going to add when initially evaluating the SIZEOF_HEADERS expression. As a result, scripts that use it end up skipping a page unnecessarily when the starting address is too low. The undercounting is because it doesn't count the PT_INTERP segment. Then, when finalizing symbols, gold overcounts the program headers: all segments have already been created, but we still count the headers we expected to add from the script. This patch fixes both problems. gold/ * script-sections.cc (Script_sections::Script_sections): Initialize segments_created_. (Script_sections::create_note_and_tls_segments): Set flag when segments are created. (Script_sections::expected_segment_count): Count PT_INTERP. (Script_sections::attach_sections_using_phdrs_clause): Set flag when segments are created. * script-sections.h (Script_sections::segments_created_): New data member.
2015-06-03Fix gold to group sections correctly via linker script.Cary Coutant8-2/+298
In PR 15370, it is noted that gold does not distinguish between "*(.foo .bar)" and "*(.foo) *(.bar)" in linker scripts. In both cases, gold groups all .foo sections together, followed by all .bar sections, whereas in the first case, it should collect all .foo and .bar sections in the order seen. If you add sort specs, the Gnu linker has some bizarre corner cases that I do not try to replicate. In particular, "*(SORT_BY_NAME(.foo) SORT_BY_NAME(.bar))" does the same thing as "*(.foo) *(.bar)". But if you apply a sort spec to just one of several patterns, say, "*(SORT_BY_NAME(.foo) .bar)", the Gnu linker will collect any .bar section it sees before the first .foo, then all .foo sections, then all remaining .bar sections. With this patch, if any of the input patterns have a sort spec, gold will group them all as it did before; e.g., all .foo sections followed by all .bar sections. 2015-06-03 Cary Coutant <ccoutant@gmail.com> gold/ PR gold/15370 * script-sections.cc (Output_section_element_input::set_section_addresses): When there are several patterns with no sort spec, put all sections in the same bin. * testsuite/Makefile.am (script_test_12): New testcase. (script_test_12i): New testcase. * testsuite/Makefile.in: Regenerate. * testsuite/script_test_12.t: New test linker script. * testsuite/script_test_12i.t: New test linker script. * testsuite/script_test_12a.c: New test source file. * testsuite/script_test_12b.c: New test source file.
2015-06-04Automatic date update in version.inGDB Administrator1-1/+1
2015-06-03compile: Use also inferior munmapJan Kratochvil12-3/+185
Currently inferior memory is allocated by inferior mmap() but it is never deallocated; despite the injected objfile incl. its symbols is freed. This was intentional so that one can do for example: inferior: char *str = "foo"; GDB: (gdb) compile code str = "bar"; I believe later patches will be needed to introduce full control over keeping vs. discarding the injected module as being discussed in: compile: objfiles lifetime UI https://sourceware.org/ml/gdb/2015-04/msg00051.html Message-ID: <20150429135735.GA16974@host1.jankratochvil.net> https://sourceware.org/ml/gdb/2015-05/msg00007.html As decided by Phil it is better not to leak inferior pages as users can workaround the issue above for example by: (gdb) compile code str = strdup ("bar"); I have checked that in fact gdb/doc/ (written by Phil) already expects the injected code will be unmapped so that does not need to be changed: compile code int ff = 5; p = &ff; In this example, @code{p} would point to @code{ff} when the @code{compile} command is executing the source code provided to it. However, as variables in the (example) program persist with their assigned values, the variable @code{p} would point to an invalid location when the command exists. gdb/ChangeLog 2015-04-28 Jan Kratochvil <jan.kratochvil@redhat.com> * arch-utils.c (default_infcall_munmap): New. * arch-utils.h (default_infcall_munmap): New declaration. * compile/compile-object-load.c (struct munmap_list, munmap_list_add) (munmap_list_free, munmap_listp_free_cleanup): New. (struct setup_sections_data): Add field munmap_list_headp. (setup_sections): Call munmap_list_add. (compile_object_load): New variable munmap_list_head, initialize setup_sections_data.munmap_list_headp, return munmap_list_head. * compile/compile-object-load.h (struct munmap_list): New declaration. (struct compile_module): Add field munmap_list_head. (munmap_list_free): New declaration. * compile/compile-object-run.c (struct do_module_cleanup): Add field munmap_list_head. (do_module_cleanup): Call munmap_list_free. (compile_object_run): Pass munmap_list_head to do_module_cleanup. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * gdbarch.sh (infcall_munmap): New. * linux-tdep.c (linux_infcall_munmap): New. (linux_init_abi): Install it. gdb/testsuite/ChangeLog 2015-04-28 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.compile/compile.exp (keep jit in memory): Rename to ... (do not keep jit in memory): ... this. (expect 5): Change it to ... (expect no 5): ... this.
2015-06-03[ARM] Commit approaved testcases missed in previous commitMatthew Wahab3-0/+142
2015-06-03 Matthew Wahab <matthew.wahab@arm.com> * gas/arm/armv8-a+rdma.d: New. * gas/arm/armv8-a+rdma.s: New.