summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Extract convert_load_reloc from x86 convert_loadusers/hjl/cacheH.J. Lu2016-05-032-670/+705
| | | | | | | | | * elf32-i386.c (elf_i386_convert_load): Extract the GOT load conversion to ... (elf_i386_convert_load_reloc): This. New function. * elf64-x86-64.c (elf_x86_64_convert_load): Extract the GOT load conversion to ... (elf_x86_64_convert_load_reloc): This. New function.
* Cache the section contents in x86 check_relocsH.J. Lu2016-05-032-53/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | Cache the section contents in x86 check_relocs for sections without TLS relocations. * elf32-i386.c (elf_i386_check_tls_transition): Remove abfd. Don't check if contents == NULL. (elf_i386_tls_transition): Add from_relocate_section. Check from_relocate_section instead of contents != NULL. Update elf_i386_check_tls_transition call. (elf_i386_check_relocs): Cache the section contents if keep_memory is FALSE. Pass FALSE as from_relocate_section to elf_i386_tls_transition. (elf_i386_relocate_section): Pass TRUE as from_relocate_section to elf_i386_tls_transition. (elf_backend_caches_rawsize): New. * elf64-x86-64.c (elf_x86_64_check_tls_transition): Don't check if contents == NULL. (elf_x86_64_tls_transition): Add from_relocate_section. Check from_relocate_section instead of contents != NULL. (elf_x86_64_check_relocs): Cache the section contents if keep_memory is FALSE. Pass FALSE as from_relocate_section to elf_x86_64_tls_transition. (elf_x86_64_relocate_section): Pass TRUE as from_relocate_section to elf_x86_64_tls_transition. (elf_backend_caches_rawsize): New.
* Updated Swedish translation for the binutils.Nick Clifton2016-05-032-4/+8
|
* Fix gdb/python/python.c use-after-freePedro Alves2016-05-032-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Valgrind shows: ==26964== Invalid read of size 1 ==26964== at 0x6E14100: __GI_strcmp (strcmp.S:180) ==26964== by 0x6DB55AA: setlocale (setlocale.c:238) ==26964== by 0x4E0455: _initialize_python() (python.c:1731) ==26964== by 0x786731: initialize_all_files() (init.c:319) ==26964== by 0x72EF0A: gdb_init(char*) (top.c:1929) ==26964== by 0x60BCAC: captured_main(void*) (main.c:863) ==26964== by 0x606AD5: catch_errors(int (*)(void*), void*, char*, return_mask) (exceptions.c:234) ==26964== by 0x60C608: gdb_main(captured_main_args*) (main.c:1165) ==26964== by 0x40CAEC: main (gdb.c:32) ==26964== Address 0x81d30a0 is 0 bytes inside a block of size 181 free'd ==26964== at 0x4C29CF0: free (vg_replace_malloc.c:530) ==26964== by 0x6DB5B65: setname (setlocale.c:201) ==26964== by 0x6DB5B65: setlocale (setlocale.c:388) ==26964== by 0x4E037F: _initialize_python() (python.c:1712) ==26964== by 0x786731: initialize_all_files() (init.c:319) ==26964== by 0x72EF0A: gdb_init(char*) (top.c:1929) ==26964== by 0x60BCAC: captured_main(void*) (main.c:863) ==26964== by 0x606AD5: catch_errors(int (*)(void*), void*, char*, return_mask) (exceptions.c:234) ==26964== by 0x60C608: gdb_main(captured_main_args*) (main.c:1165) ==26964== by 0x40CAEC: main (gdb.c:32) The problem is doing this: oldloc = setlocale (LC_ALL, NULL); setlocale (LC_ALL, ""); ... setlocale (LC_ALL, oldloc); I.e., the second setlocale call frees 'oldloc'. From http://pubs.opengroup.org/onlinepubs/9699919799/functions/setlocale.html : "The returned string pointer might be invalidated or the string content might be overwritten by a subsequent call to setlocale()." gdb/ChangeLog: 2016-05-03 Pedro Alves <palves@redhat.com> PR python/20037 * python/python.c (_initialize_python) [IS_PY3K]: xstrdup/xfree oldloc.
* Remove gdb/python/python.c code that handles strlen failing with -1Pedro Alves2016-05-032-5/+5
| | | | | | | | | | This makes no sense -- strlen doesn't really ever fail with -1. gdb/ChangeLog: 2016-05-03 Pedro Alves <palves@redhat.com> * python/python.c (_initialize_python) [IS_PY3K]: Remove dead code.
* [AArch64] Also puts value in place for R_AARCH64_RELATIVEJiong Wang2016-05-0313-6/+109
| | | | | | | | | | | | | | | | | | | When handling absolute relocations for global symbols bind within the shared object, AArch64 will generate one dynamic RELATIVE relocation, but won't apply the value for this absolution relocations at static linking stage. This is different from AArch64 gold linker and x86-64. This is not a bug as AArch64 is RELA, there is only guarantee that relocation addend is placed in the relocation entry. But some system softwares originally writen for x86-64 might assume AArch64 bfd linker gets the same behavior as x86-64, then they could take advantage of this buy skipping those RELATIVE dynamic relocations if the load address is the same as the static linking address. This patch makes AArch64 BFD linker applies absolution relocations at static linking stage for scenario described above. Meanwhile old AArch64 android loader has a bug (PR19163) which relies on current linker behavior as a workaround, so the same option --no-apply-dynamic-relocs added.
* Fix generation of AArhc64 instruction table.Szabolcs Nagy2016-05-035-6/+17
| | | | | | | | * aarch64-gen.c (VERIFIER): Define. * aarch64-opc.c (VERIFIER): Define. (verify_ldpsw): Use static linkage. * aarch64-opc.h (verify_ldpsw): Remove. * aarch64-tbl.h: Use VERIFIER for verifiers.
* Assume that the GAS testsuite for the AVR is being run without -mlink-relax ↵Pitchumani Sivanupandi2016-05-032-0/+6
| | | | | | | specified. * testsuite/gas/lns/lns.exp: Add avr to list of targets using DW_LNS_fixed_advance_pc.
* Skip ELF STT_COMMON linker tests if shared libraries are not supported.Senthil Kumar Selvaraj2016-05-032-0/+13
| | | | | * testsuite/ld-elfcomm/elfcomm.exp: Check for shared lib support before running STT_COMMON tests.
* Fix PR gdb/16818, workaround Python's forcing of -export-dynamicPedro Alves2016-05-033-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GDB's use of --dynamic-list to only export the proc-service symbols is broken due to Python's "python-config --ldflags" saying we should link with -export-dynamic, causing us to export _all_ extern symbols anyway. On Fedora 23: $ python-config --ldflags -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic $ python3.4-config --ldflags -L/usr/lib64 -lpython3.4m -lpthread -ldl -lutil -lm -Xlinker -export-dynamic Having GDB export all its symbols leads to issues such as PR gdb/16818 (GDB crashes when using name for target remote hostname:port), where a GDB symbol unintentionally preempts a symbol in one of the NSS modules glibc loads into the process. NSS modules should not define symbols outside the implementation namespace or the relevant standards, but, alas, that's a longstanding and hard to fix issue. See libc-alpha discussion at: [symbol name space issues with NSS modules] https://sourceware.org/ml/libc-alpha/2016-04/msg00130.html Python should instead be either using GCC's symbol visibility feature or -Wl,--dynamic-list as well, to only export Python API symbols, but, it doesn't. There are bugs open upstream for that: [Use -Wl,--dynamic-list=x.list, not -Xlinker -export-dynamic] http://bugs.python.org/issue10112 [Use GCC visibility attrs in PyAPI_*] http://bugs.python.org/issue11410 But that's taking a long while to resolve. I thought of working around this Python issue by making GDB build with -fvisibility=hidden, as Jan suggests in Python issue 10112, as then Python's "-Xlinker -export-dynamic" has no effect. However, that would need to be done in the whole source tree (bfd, libiberty, etc.), and I think that would break GCC plugins, as I believe those have access to all of GCCs symbols, by "design". So we'd need a new configure switch, or have the libraries in the tree detect which of GCC or GDB is being built, but that doesn't work, because the answer can be "both" with combined builds... So this patch instead works around Python's bug, by simply sed'ing away "-Xlinker -export-dynamic" from the result of python-config.py --ldflags, making -Wl,--dynamic-list work again as it used to. It's ugly, but so is the bug... Note that if -Wl,--dynamic-list doesn't work, we always link with -rdynamic, so static Python should still work. Tested on F23 with --python=python (Python 2.7) and --python=python3.4. gdb/ChangeLog:y 2016-05-03 Pedro Alves <palves@redhat.com> * configure.ac (PYTHON_LIBS): Sed away "-Xlinker -export-dynamic". * configure: Regenerate.
* Fix "-Wl,--dynamic-list" gdb/configure testPedro Alves2016-05-033-2/+14
| | | | | | | | | | | | | | | | | | | | | | | The -Wl,--dynamic-list test is currently broken on Fedora 23, when you configure with --with-python=python3.4. We see: configure:13741: checking for the dynamic export flag configure:13796: gcc -o conftest -g3 -O0 -fno-strict-aliasing -DNDEBUG -fwrapv -Wl,--dynamic-list=/home/pedro/gdb/mygit/src/gdb/proc-service.list conftest.c -ldl -lncurses -lm -ldl -lpthread -ldl -lutil -lm -lpython3.4m -Xlinker -export-dynamic >&5 conftest.c:182:30: fatal error: python3.4/Python.h: No such file or directory compilation terminated. configure:13796: $? = 1 The correct -I path is in PYTHON_CPPFLAGS: PYTHON_CPPFLAGS='-I/usr/include/python3.4m -I/usr/include/python3.4m' (Other Python-related tests in the file are already doing this.) gdb/ChangeLog: 2016-05-03 Pedro Alves <palves@redhat.com> * configure.ac (checking for the dynamic export flag): Add $PYTHON_CPPFLAGS to CPPFLAGS. * configure: Regenerate.
* [gdb] Fix -Wparentheses warningsKyrylo Tkachov2016-05-032-37/+50
| | | | | | | | | 2016-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * symfile.c (find_pc_overlay): Add braces to avoid -Wparentheses warning. (find_pc_mapped_section): Likewise. (list_overlays_command): Likewise.
* Automatic date update in version.inGDB Administrator2016-05-031-1/+1
|
* Fix detach.exp remote checkSimon Marchi2016-05-022-5/+4
| | | | | | | | | | | | | | | | | | | This test seems to work with both native-gdbserver and native-extended-gdbserver, so I removed the remote check. When running with native-gdbserver (a stub-like target), detach makes gdbserver stop and gdb disconnect. runto_main just spawns a brand new gdbserver. So it tests the exact same thing twice. It doesn't hurt though. With native-extended-gdbserver, the test is probably a bit more useful (and similar to native). It tests running/detaching twice using the same gdb/gdbserver instances, since with extended-remote, you can detach/attach/run all you want, unlike with remote. gdb/testsuite/ChangeLog: * gdb.base/detach.exp: Remove is_remote check.
* Fix annota-input-while-running.exp remote checkSimon Marchi2016-05-022-19/+12
| | | | | | | | | | | | | | | | | | | | The comment says that we can't use runto_main here becore it doesn't know how to handle annotation. Instead, the test puts a breakpoint at main and calls run by hand. Therefore, it can't work with stub targets, since they can't "run". The check should be then changed to check the use_gdb_stub variable instead of [is_remote target]. But as an alternative, we can just use runto_main and enable annotations after, since the "run to main" part is not really part of what we want to test. I also removed the "set test..." line that is unused. gdb/testsuite/ChangeLog: * gdb.base/annota-input-while-running.exp: Don't check for [is_remote target]. Enable annotations after running to main. Remove unused "set test..." line.
* Fix startup on MS-Windows when 'gdb.ini' is found in $HOMEEli Zaretskii2016-05-022-3/+11
| | | | | | | | * windows-nat.c (_initialize_check_for_gdb_ini): Fix off-by-one error in allocation of space for "$HOME/.gdbinit" string. This caused GDB to abort on startup whenever a '~/gdb.ini' file was actually found, because xsnprintf would hit an assertion violation.
* Automatic date update in version.inGDB Administrator2016-05-021-1/+1
|
* Automatic date update in version.inGDB Administrator2016-05-011-1/+1
|
* Automatic date update in version.inGDB Administrator2016-04-301-1/+1
|
* Set interpreter in x86 create_dynamic_sectionsH.J. Lu2016-04-293-28/+31
| | | | | | | | | | | | Set interpreter in x86 create_dynamic_sections to make this information available to x86 check_relocs. * elf32-i386.c (elf_i386_size_dynamic_sections): Move interp setting to ... (elf_i386_create_dynamic_sections): Here. * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Move interp setting to ... (elf_x86_64_create_dynamic_sections): Here.
* Pass GOT_RELOC to UNDEFINED_WEAK_RESOLVED_TO_ZEROH.J. Lu2016-04-293-11/+47
| | | | | | | | | | | | | | | | | | | | | | | | | When UNDEFINED_WEAK_RESOLVED_TO_ZERO is checked to convert load via GOT, has_got_reloc is always TRUE. This patch adds GOT_RELOC, which is TRUE in x86 convert_load, to UNDEFINED_WEAK_RESOLVED_TO_ZERO. * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take GOT_RELOC and replace (EH)->has_got_reloc with GOT_RELOC. (elf_i386_fixup_symbol): Pass has_got_reloc to UNDEFINED_WEAK_RESOLVED_TO_ZERO. (elf_i386_allocate_dynrelocs): Likewise. (elf_i386_relocate_section): Likewise. (elf_i386_finish_dynamic_symbol): Likewise. (elf_i386_convert_load): Pass TRUE to UNDEFINED_WEAK_RESOLVED_TO_ZERO. * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take GOT_RELOC and replace (EH)->has_got_reloc with GOT_RELOC. (elf_x86_64_fixup_symbol): Pass has_got_reloc to UNDEFINED_WEAK_RESOLVED_TO_ZERO. (elf_x86_64_allocate_dynrelocs): Likewise. (elf_x86_64_relocate_section): Likewise. (elf_x86_64_finish_dynamic_symbol): Likewise. (elf_x86_64_convert_load): Pass TRUE to UNDEFINED_WEAK_RESOLVED_TO_ZERO.
* Download source only on remote hostH.J. Lu2016-04-293-7/+32
| | | | | | | | | | | | | | | There is no need to download source if we aren't on remote host. Otherwise, each ld test run on local host leaves behind a couple test files. * config/default.exp (NOPIE_CFLAGS): Download source only on remote host. (NOPIE_LDFLAGS): Likewise. * testsuite/lib/ld-lib.exp (check_lto_available): Likewise. (check_lto_fat_available): Likewise. (check_lto_shared_available): Likewise. (check_ifunc_available): Likewise. (check_ifunc_attribute_available): Likewise.
* Enhance readelf's recognition of AVR relocation types.Pitchumani Sivanupandi2016-04-292-37/+57
| | | | | | | * readelf.c (is_32bit_pcrel_reloc): Return true if reloc is 32-bit PC relocation for AVR target. (is_none_reloc): Return true if reloc is any of AVR diff relocations.
* i386: Don't relocate section when check_relocs failedH.J. Lu2016-04-292-16/+34
| | | | | | | | No need to relocate section when check_relocs failed. * elf32-i386.c (check_relocs_failed): New. (elf_i386_check_relocs): Set check_relocs_failed on error. (elf_i386_relocate_section): Skip if check_relocs failed.
* X86-64: Set check_relocs_failed on errorH.J. Lu2016-04-292-17/+29
| | | | | | | When checking relocations, set check_relocs_failed on error. * elf64-x86-64.c (elf_x86_64_check_relocs): Set check_relocs_failed on error.
* Enhance support for copying and stripping Solaris and ARM binaries.Nick Clifton2016-04-2910-143/+361
| | | | | | | | | | | | | | | | | | | | | | | | | | | | PR 19938 bfd * elf-bfd.h (struct elf_backend_data): Rename elf_backend_set_special_section_info_and_link to elf_backend_copy_special_section_fields. * elfxx-target.h: Likewise. * elf.c (section_match): Ignore the SHF_INFO_LINK flag when comparing section flags. (copy_special_section_fields): New function. (_bfd_elf_copy_private_bfd_data): Copy the EI_ABIVERSION field. Perform two scans over special sections. The first one looks for a direct mapping between the output section and an input section. The second scan looks for a possible match based upon section characteristics. * elf32-arm.c (elf32_arm_copy_special_section_fields): New function. Handle setting the sh_link field of SHT_ARM_EXIDX sections. * elf32-i386.c (elf32_i386_set_special_info_link): Rename to elf32_i386_copy_solaris_special_section_fields. * elf32-sparc.c (elf32_sparc_set_special_section_info_link): Rename to elf32_sparc_copy_solaris_special_section_fields. * elf64-x86-64.c (elf64_x86_64_set_special_info_link): Rename to elf64_x86_64_copy_solaris_special_section_fields. binutils* readelf.c (get_solaris_segment_type): New function. (get_segment_type): Call it.
* Automatic date update in version.inGDB Administrator2016-04-291-1/+1
|
* Don't show deprecated commands in helpSimon Marchi2016-04-282-1/+9
| | | | | | | | | | Just like completion doesn't show deprecated commands, I think that help should not list them, so that we don't incite users to use them. gdb/ChangeLog: * cli/cli-decode.c (help_cmd_list): Do not list commands that are deprecated.
* Add test for tracepoint enable/disableSimon Marchi2016-04-283-0/+171
| | | | | | | | | | This patch adds a test for tracepoints enabling/disabling, which didn't work properly for fast tracepoints on big endian systems. gdb/testsuite/ChangeLog: * gdb.trace/trace-enable-disable.exp: New file. * gdb.trace/trace-enable-disable.c: New file.
* Fix write endianness/size problem for fast tracepoint enabled flagPar Olsson2016-04-282-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I am sending this fix on behalf of Par Olsson, as a follow-up of this one: https://www.sourceware.org/ml/gdb-patches/2015-10/msg00196.html This problem is exposed when enabling/disabling fast tracepoints on big endian machines. The flag is defined as an int8_t, but is written from gdbserver as an integer (usually 32 bits). When the agent code reads it as an int8_t, it only considers the most significant byte, which is always 0. Also, we were writing 32 bits in an 8 bits field, so the write would overflow, but since the following bytes are padding (the next field is an uint64_t), it luckily didn't cause any issue on little endian systems. The fix was originally tested on ARM big endian systems, but I don't have access to such a system. However, thanks to Marcin's PowerPC fast tracepoint patches and gcc110 (big endian Power7) on the gcc compile farm, I was able to reproduce the problem, test the fix and write a test (the following patch). gdb/gdbserver/ChangeLog: YYYY-MM-DD Par Olsson <par.olsson@windriver.com> * tracepoint.c (write_inferior_int8): New function. (cmd_qtenable_disable): Write enable flag using write_inferior_int8.
* ftrace tests: Use gdb_load_shlib result to lookup IPA in info sharedlibrarySimon Marchi2016-04-288-14/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some fast tracepoints tests make sure that the in-process agent library is properly loaded, by searching for the library name in "info sharedlibrary". Originally, it would search for the full path. Since patch "Make ftrace tests work with remote targets" [1], the "runtime" location of the IPA, in the standard output directory, is not the same as the original location, in the gdbserver build directory. Therefore, the patch changed the checks: gdb_test "info sharedlibrary" ".*${libipa}.*" "IPA loaded" to gdb_test "info sharedlibrary" ".*[file tail ${libipa}].*" "IPA loaded" so that only the "libinproctrace.so" part would be searched for. Antoine (in CC) pointed out that I missed some, so I have to update them. In the mean time, I noticed that I missed a few test failures: adding the SONAME to the IPA makes it possible for the test executable to erroneously pick up libinproctrace.so from /usr/lib if the test harness failed to put the libinproctrace.so we want to test in the right place. To mitigate that kind of error in the future, we can use the return value of gdb_load_shlib (the path of the "runtime" version of the library) and use that to search in the output of info sharedlibrary. When testing locally, gdb_load_shlib returns the full normalized path of the destination library, which the test executable should use e.g.: /path/to/gdb/testsuite/outputs/gdb.trace/thetest/libinproctrace.so My testing showed that it was the same path that gdb displayed in info sharedlibrary. If the test executable picks up another libinproctrace.so, the test will fail. When testing remotely, gdb_load_shlib/gdb_remote_download only returns us "libinproctrace.so", so the situation doesn't really change. If there is a rogue libinproctrace.so in /usr/lib on the target and we fail to download ours, it might cover up a test failure. But that situation is probably still better than the original one, where it wasn't possible to test remotely using the IPA at all. [1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=6e774b13c3b81ac2599812adf058796948ce7e95 gdb/testsuite/ChangeLog: * gdb.arch/ftrace-insn-reloc.exp: Save gdb_load_shlib result, use it in info sharedlibrary test. * gdb.trace/ftrace-lock.exp: Likewise. * gdb.trace/ftrace.exp: Likewise. * gdb.trace/range-stepping.exp: Likewise. * gdb.trace/trace-break.exp: Likewise. * gdb.trace/trace-condition.exp: Likewise. * gdb.trace/trace-mt.exp: Likewise.
* Updated Chinese (simplified) translations for bfd, binutils and gold.Nick Clifton2016-04-286-216/+215
|
* Remove need_step_over from struct lwp_infoYao Qi2016-04-282-20/+0
| | | | | | | | | | | | | | | | | | | | | | | Hi, I happen to see that field need_step_over in struct lwp_info is only used to print a debug info. need_step_over is set in linux_wait_1 when breakpoint_here is true, however, we check breakpoint_here too in need_step_over_p and do the step over. I think we don't need field need_step_over, and check breakpoint_here directly in need_step_over_p. This field was added in this patch https://sourceware.org/ml/gdb-patches/2010-03/msg00605.html and the code wasn't changed much since then. This patch is to remove it. gdb/gdbserver: 2016-04-28 Yao Qi <yao.qi@linaro.org> * linux-low.h (struct lwp_info) <need_step_over>: Remove. * linux-low.c (linux_wait_1): Update. (need_step_over_p): Likewise.
* Add support to AArch64 disassembler for verifying instructions. Add ↵Nick Clifton2016-04-2810-1332/+1272
| | | | | | | | | | | | | | | | verifier for LDPSW. PR target/19722 opcodes * aarch64-dis.c (aarch64_opcode_decode): Run verifier if present. * aarch64-opc.c (verify_ldpsw): New function. * aarch64-opc.h (verify_ldpsw): New prototype. * aarch64-tbl.h: Add initialiser for verifier field. (LDPSW): Set verifier to verify_ldpsw. binutils* testsuite/binutils-all/aarch64/illegal.s: New test. * testsuite/binutils-all/aarch64/illegal.d: New test driver. include * opcode/aarch64.h (struct aarch64_opcode): Add verifier field.
* Automatic date update in version.inGDB Administrator2016-04-281-1/+1
|
* Limit ld-elf/compressed1b.d to Linux/GNU targetsH.J. Lu2016-04-272-0/+5
| | | | | | | | Since not all ELF targets use the elf.em emulation to support ld option: --compress-debug-sections=zlib-gnu, limit compressed1b.d to Linux/GNU targets. * testsuite/ld-elf/compressed1b.d: Only run for Linux/GNU targets.
* Rename gdb_load_shlibs to gdb_load_shlibSimon Marchi2016-04-2754-85/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename gdb_load_shlibs to gdb_load_shlib to reflect that it can only load a single shlib at the time. gdb/testsuite/ChangeLog: * lib/gdb.exp (gdb_load_shlibs): Rename to... (gdb_load_shlib): ... this. * gdb.arch/ftrace-insn-reloc.exp: Adjust gdb_load_shlibs -> gdb_load_shlib. * gdb.base/catch-load.exp (one_catch_load_test): Likewise. * gdb.base/ctxobj.exp: Likewise. * gdb.base/dprintf-pending.exp: Likewise. * gdb.base/dso2dso.exp: Likewise. * gdb.base/fixsection.exp: Likewise. * gdb.base/gcore-relro.exp: Likewise. * gdb.base/gdb1555.exp: Likewise. * gdb.base/global-var-nested-by-dso.exp: Likewise. * gdb.base/gnu-ifunc.exp: Likewise. * gdb.base/hbreak-in-shr-unsupported.exp: Likewise. * gdb.base/jit-so.exp (one_jit_test): Likewise. * gdb.base/pending.exp: Likewise. * gdb.base/print-file-var.exp: Likewise. * gdb.base/print-symbol-loading.exp: Likewise. * gdb.base/shlib-call.exp: Likewise. * gdb.base/shreloc.exp: Likewise. * gdb.base/so-impl-ld.exp: Likewise. * gdb.base/solib-disc.exp: Likewise. * gdb.base/solib-nodir.exp: Likewise. * gdb.base/solib-overlap.exp: Likewise. * gdb.base/solib-symbol.exp: Likewise. * gdb.base/solib-weak.exp (do_test): Likewise. * gdb.base/sym-file.exp: Likewise. * gdb.base/symtab-search-order.exp: Likewise. * gdb.base/type-opaque.exp: Likewise. * gdb.base/unload.exp: Likewise. * gdb.base/watchpoint-solib.exp: Likewise. * gdb.compile/compile.exp: Likewise. * gdb.cp/gdb2384.exp: Likewise. * gdb.cp/infcall-dlopen.exp: Likewise. * gdb.cp/re-set-overloaded.exp: Likewise. * gdb.fortran/library-module.exp: Likewise. * gdb.opt/solib-intra-step.exp: Likewise. * gdb.python/py-finish-breakpoint.exp: Likewise. * gdb.python/py-shared.exp: Likewise. * gdb.reverse/solib-precsave.exp: Likewise. * gdb.reverse/solib-reverse.exp: Likewise. * gdb.server/solib-list.exp: Likewise. * gdb.threads/dlopen-libpthread.exp: Likewise. * gdb.threads/tls-shared.exp: Likewise. * gdb.threads/tls-so_extern.exp: Likewise. * gdb.trace/change-loc.exp: Likewise. * gdb.trace/ftrace-lock.exp: Likewise. * gdb.trace/ftrace.exp: Likewise. * gdb.trace/mi-tracepoint-changed.exp (test_reconnect): Likewise. * gdb.trace/pending.exp: Likewise. * gdb.trace/range-stepping.exp: Likewise. * gdb.trace/strace.exp (strace_remove_socket): Likewise. (strace_info_marker): Likewise. (strace_probe_marker): Likewise. (strace_trace_on_same_addr): Likewise. (strace_trace_on_diff_addr): Likewise. * gdb.trace/trace-break.exp: Likewise. * gdb.trace/trace-condition.exp: Likewise. * gdb.trace/trace-mt.exp: Likewise.
* Make gdb_load_shlibs return the destination path of the librarySimon Marchi2016-04-2711-15/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes gdb_load_shlibs return the destination path of the copied library. To make the procedure implementation and interface more straightforward, it also changes it so that it accepts a single shared library path at the time. Therefore, calls that are passed multiple libraries: gdb_load_shlibs $lib1 $lib2 must be changed to separate calls: gdb_load_shlibs $lib1 gdb_load_shlibs $lib2 A subtle impact is the solib-search-path handling. In the former version, solib-search-path is set using the directory of the first passed lib (further calls overwrite the value). In the later version, the directory of the library passed to the last call to gdb_load_shlibs remnains. I don't think that's a problem in practice, since if we had tests that needed multiple different paths in solib-search-path, they wouldn't work in the first place. Changed in v2: * Split behavioural and rename changes in two separate patches. gdb/testsuite/ChangeLog: * lib/gdb.exp (gdb_load_shlibs): Accept a single argument. Return result of gdb_remote_download. * gdb.base/ctxobj.exp: Split gdb_load_shlibs call. * gdb.base/dso2dso.exp: Likewise. * gdb.base/global-var-nested-by-dso.exp: Likewise. * gdb.base/print-file-var.exp: Likewise. * gdb.base/shlib-call.exp: Likewise. * gdb.base/shreloc.exp: Likewise. * gdb.base/solib-overlap.exp: Likewise. * gdb.base/solib-weak.exp (do_test): Likewise. * gdb.base/unload.exp: Likewise.
* Workaround gdbserver<7.7 for setfsJan Kratochvil2016-04-272-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With current FSF GDB HEAD and old FSF gdbserver I expected I could do: gdb -ex 'file target:/root/redhat/threadit' -ex 'target remote :1234' (supplying that unsupported qXfer:exec-file:read by "file") But that does not work because: Sending packet: $vFile:setfs:0#bf...Packet received: OK Packet vFile:setfs (hostio-setfs) is supported ... Sending packet: $vFile:setfs:104#24...Packet received: OK "target:/root/redhat/threadit": could not open as an executable file: Invalid argument GDB documentation says: The valid responses to Host I/O packets are: An empty response indicates that this operation is not recognized. This "empty response" vs. "OK" was a bug in gdbserver < 7.7. It was fixed by: commit e7f0d979dd5cc4f8b658df892e93db69d6d660b7 Author: Yao Qi <yao@codesourcery.com> Date: Tue Dec 10 21:59:20 2013 +0800 Fix a bug in matching notifications. Message-ID: <1386684626-11415-1-git-send-email-yao@codesourcery.com> https://sourceware.org/ml/gdb-patches/2013-12/msg00373.html 2013-12-10 Yao Qi <yao@codesourcery.com> * notif.c (handle_notif_ack): Return 0 if no notification matches. with unpatched old FSF gdbserver and patched FSF GDB HEAD: gdb -ex 'file target:/root/redhat/threadit' -ex 'target remote :1234' Sending packet: $vFile:setfs:0#bf...Packet received: OK Packet vFile:setfs (hostio-setfs) is NOT supported ... (gdb) info sharedlibrary From To Syms Read Shared Object Library 0x00007ffff7ddbae0 0x00007ffff7df627a Yes (*) target:/lib64/ld-linux-x86-64.so.2 0x00007ffff7bc48a0 0x00007ffff7bcf514 Yes (*) target:/lib64/libpthread.so.0 gdb/ChangeLog 2016-04-26 Jan Kratochvil <jan.kratochvil@redhat.com> * remote.c (remote_start_remote): Detect PACKET_vFile_setfs.support.
* Skip debug sections when estimating distancesH.J. Lu2016-04-274-15/+33
| | | | | | | | | | | | | | | | | | | Skip debug sections when estimating distances between output sections since compressed_size is used to compress debug sections and debug sections aren't excluded from distances between output sections. bfd/ PR ld/20006 * elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections when estimating distances between output sections. ld/ PR ld/20006 * testsuite/ld-elfvsb/elfvsb.exp (COMPRESS_LDFLAG): New. (visibility_run): Pass COMPRESS_LDFLAG to visibility_test on ELF targets.
* Skip gdb.base/branch-to-self.exp if gdb,nosignals existsYao Qi2016-04-272-0/+10
| | | | | | | | | | | | | | | I get a timeout fail in branch-to-self.exp when it is compiled by a bare-mental target running qemu, which doesn't have signal. The test should be skipped if gdb,nosignals exists, and that is what this patch does. gdb/testsuite: 2016-04-27 Yao Qi <yao.qi@linaro.org> * gdb.base/branch-to-self.exp: Skip it if gdb,nosignals exists.
* c_value_print: Revert 'val' to a reference for TYPE_CODE_STRUCTMartin Galvan2016-04-272-8/+14
| | | | | | | | | | | | | | | | | | | Currently c_value_print will turn struct reference values into pointers before doing a set of RTTI checks. This was introduced as a fix to PR c++/15401. If there's RTTI the pointer will be adjusted and converted back to a reference. However, if there's no RTTI the value will still be treated as a pointer during the remainder of the function. This patch moves the conversion down so that it's always performed when needed. Notice this currently has not user-visible effects, so can be seen as a small code cleanup. However, it'll be necessary for the bug-fix for handling synthetic C++ references. It causes no testsuite regressions. gdb/ChangeLog: 2016-04-26 Martin Galvan <martin.galvan@tallertechnologies.com> * c-valprint.c (c_value_print): Always convert val back to reference type if we converted it to a pointer type.
* Tweak doc on command tfindYao Qi2016-04-272-1/+7
| | | | | | | | | | | | | | | Hi, command "tfind" will find the first trace snapshot if no trace snapshot is selected, but this behavior isn't documented. This patch completes the doc of command "tfind" without argument. gdb/doc: 2016-04-27 Yao Qi <yao.qi@linaro.org> * gdb.texinfo (tfind): Complete doc about tfind without argument.
* Avoid non-C++-enabled babeltrace versionsAndreas Arnez2016-04-273-0/+8
| | | | | | | | | | | | | | | | | | | | | | | In some babeltrace versions before 1.2.0, the header file iterator.h declares the enum values `BT_SEEK_*' within the struct declaration of bt_iter_pos. The enum values are supposed to be globally-scoped, which works for C, but not for C++. Later babeltrace versions declare the enum outside the struct: https://lists.lttng.org/pipermail/lttng-dev/2013-September/021411.html Now that GDB is compiled with C++, the GDB build fails on a system with an affected babeltrace version: the compiler complains about a missing declaration of BT_SEEK_BEGIN in ctf.c. This patch enhances the configure check to recognize such babeltrace versions as unusable for GDB. gdb/ChangeLog: * configure.ac: Enhance configure check for babeltrace to reject non-C++-enabled versions. * configure: Regenerate.
* Pass --compress-debug-sections=none to ldH.J. Lu2016-04-273-2/+8
| | | | | | | | | | Since ld may generate compressed debug sections by default, pass --compress-debug-sections=none to ld to avoid compressed debug sections. * ld-elf/compressed1b.d: Pass --compress-debug-sections=none to ld. * ld-elf/compressed1c.d: Likewise.
* Fix a typo in the check for SNANs in the RX simulator.Nick Clifton2016-04-272-1/+7
| | | | | | PR target/20000 * fpu.c (check_exceptions): Fix typo checking for signalling NANs.
* Add support for the --trace-decode option to the AArch64 simulator.Nick Clifton2016-04-272-7/+317
| | | | | * simulator.c: Add TRACE_DECODE statements to all emulation functions.
* Fix powerpc64 ld testsuite failAlan Modra2016-04-272-2/+7
| | | | | PR target/19985 * configure.tgt: Don't use var+=.
* Provide xmemdup0Alan Modra2016-04-272-15/+13
| | | | | | | and some tidies in as.h * as.h (inline, __PTR_TO_INT, __INT_TO_PTR): Don't define. (xmemdup0): New inline function.
* Cache result of scan for __start_* and __stop_* sectionsAlan Modra2016-04-275-26/+83
| | | | | | | | | | include/ * bfdlink.h (struct bfd_link_hash_entry): Add "section" field to undef. Formatting. bfd/ * elflink.c (_bfd_elf_is_start_stop): New function. (_bfd_elf_gc_mark_rsec): Use it. * elf-bfd.h (_bfd_elf_is_start_stop): Declare.