aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-12-24sim: enable watchpoint module everywhereMike Frysinger18-35/+37
We build & bundle the watchpoint module everywhere, but we don't make the command line flags available by default. A few targets opted in, but most did not. Just enable the flag for everyone. Not all targets will respect the flags (making them nops), but shouldn't be a big deal. This is how we handle other common modules already.
2015-12-24sim: delete SIM_HAVE_FLATMEM supportMike Frysinger6-54/+13
No target has used this, and it's a cheap hack in place in using the common memory module. We want everyone using that though, so drop support for flatmem entirely.
2015-12-24sim: delete SIM_HAVE_MEM_SIZEMike Frysinger8-28/+16
This define isn't used anywhere (doesn't seem to ever have been used by versions committed), so delete the commented out code as it's dead.
2015-12-24sim: delete SIM_HAVE_SIMCACHEMike Frysinger6-18/+12
This was used by the old run interface, but we punted that awhile ago, so drop this define too.
2015-12-25Automatic date update in version.inGDB Administrator1-1/+1
2015-12-24Add support for linking ARMv8-M object filesThomas Preud'homme13-15/+149
2015-12-24 Thomas Preud'homme <thomas.preudhomme@arm.com> bfd/ * elf32-arm.c (using_thumb_only): Check that profile is 'M' and update logic around Tag_CPU_arch values to return TRUE for ARMv8-M architectures. (tag_cpu_arch_combine): Define v8m_baseline and v8m_mainline and update v4t_plus_v6_m and comb to deal with ARMv8-M Tag_CPU_arch merging logic. (elf32_arm_merge_eabi_attributes): Add Tag_CPU_name values for ARMv8-M. bfd/testsuite/ * ld-arm/arm-elf.exp (armeabitests_common): Run new tests "Thumb-Thumb farcall v8-M", "EABI attribute merging 8", "EABI attribute merging 9" and "EABI attribute merging 10". (Thumb-Thumb farcall v8-M): Renamed to ... (Thumb-Thumb farcall v8-M Mainline): This. (Thumb-Thumb farcall v8-M Baseline): New test. * ld-arm/attr-merge-8a.s: New file. * ld-arm/attr-merge-8b.s: Likewise. * ld-arm/attr-merge-8.attr: Likewise. * ld-arm/attr-merge-9a.s: Likewise. * ld-arm/attr-merge-9b.s: Likewise. * ld-arm/attr-merge-9.out: Likewise. * ld-arm/attr-merge-10a.s: Likewise. * ld-arm/attr-merge-10b.s: Likewise. * ld-arm/attr-merge-10.attr: Likewise.
2015-12-24Add assembler support for ARMv8-M BaselineThomas Preud'homme17-56/+290
2015-12-24 Thomas Preud'homme <thomas.preudhomme@arm.com> bfd/ (tag_cpu_arch_combine): Adjust comment in v4t_plus_v6_m with regards to merging with ARMv8-M Baseline. binutils/ * readelf.c (arm_attr_tag_CPU_arch): Add ARMv8-M Baseline Tag_CPU_arch value. gas/ * config/tc-arm.c (arm_ext_v6t2_v8m): New feature for instructions shared between ARMv6T2 and ARMv8-M. (move_or_literal_pool): Check mov.w/mvn and movw availability against arm_ext_v6t2 and arm_ext_v6t2_v8m respectively instead of checking arm_arch_t2. (do_t_branch): Error out for wide conditional branch instructions if targetting ARMv8-M Baseline. (non_v6t2_wide_only_insn): Add the logic for new wide-only instructions in ARMv8-M Baseline. (wide_insn_ok): New function. (md_assemble): Use wide_insn_ok instead of non_v6t2_wide_only_insn and adapt error message for unsupported wide instruction to ARMv8-M Baseline. (insns): Reorganize instructions shared by ARMv8-M Baseline and ARMv6t2 architecture. (arm_cpus): Set feature bit ARM_EXT2_V6T2_V8M for marvell-pj4 and marvell-whitney cores. (arm_archs): Define armv8-m.base architecture. (cpu_arch_ver): Define ARM_ARCH_V8M_BASE architecture version. (aeabi_set_public_attributes): Add logic to set Tag_CPU_arch to 17 for ARMv8-M Mainline. Set Tag_DIV_use for ARMv8-M Baseline as well. gas/testsuite/ * gas/arm/archv8m-base.d: New file. * gas/arm/attr-march-armv8m.base.d: Likewise. * gas/arm/armv8m.base-idiv.d: Likewise. * gas/arm/any-armv8m.d: Adapt to deal with ARMv8-M Baseline. include/elf/ * arm.h (TAG_CPU_ARCH_V8M_BASE): Declare. include/opcode/ * arm.h (ARM_EXT2_V6T2_V8M): New extension bit. (ARM_AEXT2_V8A): New architecture extension bitfield. (ARM_AEXT2_V8_1A): Use ARM_AEXT2_V8A instead of ARM_EXT2_ATOMICS. (ARM_AEXT_V8M_BASE): New architecture extension bitfield. (ARM_AEXT2_V8M): Add extension bit ARM_EXT2_V6T2_V8M. (ARM_ARCH_V6T2): Use ARM_EXT2_V6T2_V8M for the second extension bitfield. (ARM_ARCH_V6KT2): Likewise. (ARM_ARCH_V6ZT2): Likewise. (ARM_ARCH_V6KZT2): Likewise. (ARM_ARCH_V7): Likewise. (ARM_ARCH_V7A): Likewise. (ARM_ARCH_V7VE): Likewise. (ARM_ARCH_V7R): Likewise. (ARM_ARCH_V7M): Likewise. (ARM_ARCH_V7EM): Likewise. (ARM_ARCH_V8A): Likewise. (ARM_ARCH_V8M_BASE): New architecture bitfield. (ARM_ARCH_THUMB2): Include instructions shared by ARMv6t2 and ARMv8-M. (ARM_ARCH_V7A_SEC): Use ARM_EXT2_V6T2_V8M for the second extension bitfield and reindent. (ARM_ARCH_V7A_MP_SEC): Likewise. (ARM_ARCH_V7R_IDIV): Likewise. (ARM_ARCH_V8A_FP): Use ARM_AEXT2_V8A instead of ARM_EXT2_ATOMICS. (ARM_ARCH_V8A_SIMD): Likewise. (ARM_ARCH_V8A_CRYPTOV1): Likewise. opcodes/ * arm-dis.c (arm_opcodes): Guard movw, movt cbz, cbnz, clrex, ldrex, ldrexb, ldrexh, strex, strexb, strexh shared by ARMv6T2 and ARMv8-M by ARM_EXT2_V6T2_V8M instead of ARM_EXT_V6T2.
2015-12-24Add assembler support for ARMv8-M MainlineThomas Preud'homme18-58/+318
2015-12-24 Thomas Preud'homme <thomas.preudhomme@arm.com> bfd/ (tag_cpu_arch_combine): Adjust v4t_plus_v6_m and comb array to account for new TAG_CPU_ARCH_V4T_PLUS_V6_M value. Deal with NULL values in comb array. binutils/ * readelf.c (arm_attr_tag_CPU_arch): Add ARMv8-M Mainline Tag_CPU_arch value. (arm_attr_tag_THUMB_ISA_use): Add ARMv8-M Mainline Tag_THUMB_ISA_use value. gas/ * config/tc-arm.c (arm_ext_m): Include ARMv8-M. (arm_ext_v8m): New feature for ARMv8-M. (arm_ext_atomics): New feature for ARMv8 atomics. (do_tt): New encoding function for TT* instructions. (insns): Add new entries for ARMv8-M specific instructions and reorganize the ones shared by ARMv8-M Mainline and ARMv8-A. (arm_archs): Define armv8-m.main architecture. (cpu_arch_ver): Define ARM_ARCH_V8M_MAIN architecture version and clarify the ordering rule. (aeabi_set_public_attributes): Use TAG_CPU_ARCH_* macro to refer to Tag_CPU_arch values for ARMv7e-M detection. Add logic to keep setting Tag_CPU_arch to ARMv8-A for -march=all. Also set Tag_CPU_arch_profile to 'A' if extension bit for atomic instructions is set, unless it is ARMv8-M. Set Tag_THUMB_ISA_use to 3 for ARMv8-M. Set Tag_DIV_use to 0 for ARMv8-M Mainline. gas/testsuite/ * gas/arm/archv8m.s: New file. * gas/arm/archv8m-main.d: Likewise. * gas/arm/attr-march-armv8m.main.d: Likewise. * gas/arm/any-armv8m.s: Likewise. * gas/arm/any-armv8m.d: Likewise. include/elf/ * arm.h (TAG_CPU_ARCH_V8M_MAIN): Declare. (MAX_TAG_CPU_ARCH): Define to TAG_CPU_ARCH_V8M_MAIN. (TAG_CPU_ARCH_V4T_PLUS_V6_M): Define to unused value 15. include/opcode/ * arm.h (ARM_EXT2_ATOMICS): New extension bit. (ARM_EXT2_V8M): Likewise. (ARM_EXT_V8): Adjust comment with regards to atomics and remove mention of legacy use for that bit. (ARM_AEXT2_V8_1A): New architecture extension bitfield. (ARM_AEXT2_V8_2A): Likewise. (ARM_AEXT_V8M_MAIN): Likewise. (ARM_AEXT2_V8M): Likewise. (ARM_ARCH_V8A): Use ARM_EXT2_ATOMICS for features in second bitfield. (ARM_ARCH_V8_1A): Likewise with ARM_AEXT2_V8_1A. (ARM_ARCH_V8_2A): Likewise with ARM_AEXT2_V8_2A. (ARM_ARCH_V8M_MAIN): New architecture feature bitfield. (ARM_ARCH_V8A_FP): Use ARM_EXT2_ATOMICS for features in second bitfield and reindent. (ARM_ARCH_V8A_SIMD): Likewise. (ARM_ARCH_V8A_CRYPTOV1): Likewise. (ARM_ARCH_V8_1A_FP): Use ARM_AEXT2_V8_1A to set second bitfield of feature bits. (ARM_ARCH_V8_1A_SIMD): Likewise. (ARM_ARCH_V8_1A_CRYPTOV1): Likewise. opcodes/ * arm-dis.c (arm_opcodes): Guard lda, ldab, ldaex, ldaexb, ldaexh, stl, stlb, stlh, stlex, stlexb and stlexh by ARM_EXT2_ATOMICS instead of ARM_EXT_V8. (thumb32_opcodes): Add entries for wide ARMv8-M instructions.
2015-12-24Consolidate Thumb-1/Thumb-2 ISA detectionThomas Preud'homme4-33/+68
2015-12-24 Thomas Preud'homme <thomas.preudhomme@arm.com> gas/ * config/tc-arm.c (move_or_literal_pool): Check mov.w, mvm and movw availability against arm_ext_v6t2 instead of checking arm_arch_t2, fixing comments along the way. (handle_it_state): Check arm_ext_v6t2 instead of arm_arch_t2 to generate IT instruction. (t1_isa_t32_only_insn): New function. (md_assemble): Use above new function to check for invalid wide instruction for CPU Thumb ISA and to determine what Thumb extension bit is necessary for that instruction. (md_apply_fix): Use arm_ext_v6t2 instead of arm_arch_t2 to decide if branch is out of range. include/opcode/ * arm.h (ARM_ARCH_THUMB2): Add comment explaining its meaning and remove extension bit not including any Thumb-2 instruction.
2015-12-24Add tests for gas arch autodetection on ARMThomas Preud'homme23-0/+152
2015-12-09 Andre Vieira <andre.simoesdiasvieira@arm.com> gas/testsuite/ * gas/arm/automatic-bw.d: New. * gas/arm/automatic-bw.s: New. * gas/arm/automatic-cbz.d: New. * gas/arm/automatic-cbz.s: New. * gas/arm/automatic-clrex.d: New. * gas/arm/automatic-clrex.s: New. * gas/arm/automatic-lda.d: New. * gas/arm/automatic-lda.s: New. * gas/arm/automatic-ldaex.d: New. * gas/arm/automatic-ldaex.s: New. * gas/arm/automatic-ldaexb.d: New. * gas/arm/automatic-ldaexb.s: New. * gas/arm/automatic-ldrex.d: New. * gas/arm/automatic-ldrex.s: New. * gas/arm/automatic-ldrexd.d: New. * gas/arm/automatic-ldrexd.s: New. * gas/arm/automatic-movw.d: New. * gas/arm/automatic-movw.s: New. * gas/arm/automatic-sdiv.d: New. * gas/arm/automatic-sdiv.s: New. * gas/arm/automatic-strexb.d: New. * gas/arm/automatic-strexb.s: New.
2015-12-24[testsuite/Ada] stop using project files when building test programsJoel Brobecker5-31/+34
The current approach when building Ada programs for testing is based on the use of a project file (testsuite/gdb.ada/gnat_ada.gpr). To do that, we pass a number of additional arguments to target_compile, one of them being the project file (via "-P/path/to/gnat_ada.gpr"). This used to work well-enough, but AdaCore is currently working towards removing project-file support from gnatmake (the prefered tool for using project files is gprbuild). So, we need to either switch the compilation to gprbuild, or stop using project files. First, using gprbuild is not always what users will be using to build their applications. So having the option of using gnatmake provides more flexibility towards exactly reproducing past bugs. If we ever need a testcase that requires the use of gprbuild, then I believe support for a new target needs to be added to dejagnu's target_compile. Also, the only real reason behind using a project file in the first place is that we wanted to make it easy to specify the directory where all compilation artifacts get stored. This is a consequence of the organization choice we made for gdb.ada to keep each testcase well organized. It is very easy to achieve that goal without using project files. This is therefore what this patch does: It change gdb_compile_ada to build any program using gnatmake without using a project file (by temporarily changing the current working directory). There is a small (beneficial) side-effect; in the situation where GDB is built in-tree, gnatmake is called as... % gnatmake [...] unit.adb ... which means that the debugging info in unit.o will say contain a filename whose name is 'unit.adb', rather than '/path/to/unit.adb'. This also better matches what users might typically do. But the side- effect is that the unit name in the GDB output is not always a full path. This patch tweaks a couple of testcases to make the path part optional. gdb/testsuite: * lib/ada.exp (target_compile_ada_from_dir): New function. (gdb_compile_ada): Reimplement avoiding the use of project files. * gdb.ada/gnat_ada.gpr: Delete. * gdb.ada/cond_lang.exp: Adjust test to make path before filename optional. * gdb.ada/small_reg_param.exp: Likewise. Tested on x86_64-linux, with both in-tree and out-of-tree builds.
2015-12-24Automatic date update in version.inGDB Administrator1-1/+1
2015-12-23Automatic date update in version.inGDB Administrator1-1/+1
2015-12-22Remove HP-UX reference in foll-vfork.expSimon Marchi2-36/+10
One more I just found. Tested with native, native-gdbserver and native-extended-gdbserver on Linux. gdb/testsuite/ChangeLog: * gdb.base/foll-vork.exp: Remove HP-UX special case.
2015-12-22ARM: Fix exidx coverage for relocatable builds.Yury Usishchev13-51/+228
bfd * elf-bfd.h: Add callback to count additional relocations. * elf32-arm.c (_arm_elf_section_data): Add new counter. (insert_cantunwind_after): Increment relocations counter. (elf32_arm_fix_exidx_coverage): Remove exidx entries and add terminating CANTUNWIND entry only in final builds. (elf32_arm_add_relocation): New function. (elf32_arm_write_section): Add relocations in relocatable builds. (elf32_arm_count_additional_relocs): New function. (elf_backend_count_additional_relocs): New define. * bfd/elflink.c (bfd_elf_final_link): Use callback and adjust size of .rel section. * bfd/elfxx-target.h (elf_backend_count_additional_relocs): New define. ld * emultempl/armelf.em (gld${EMULATION_NAME}_after_allocation): Call elf32_arm_fix_exidx_coverage for relocatable builds. ld/testsuite * ld-arm/arm-elf.exp: New test. * ld-arm/unwind-rel.d: New file. * ld-arm/unwind-rel1.s: New file. * ld-arm/unwind-rel2.s: New file. * ld-arm/unwind-rel3.s: New file.
2015-12-22[lynxos] gdbserver hangs when killing inferior from GDBJoel Brobecker2-1/+27
With any program under GDBserver control on LynxOS, killing the program from the debugger (using the "kill" command) causes GDBserver to properly kill the inferior but GDBserver then hangs. This change of behavior occured after the following change was applied: commit f0ea042932e6922c90df3fd0001497d287b97677 Date: Mon Nov 30 16:05:27 2015 +0000 Subject: gdbserver: don't exit until GDB disconnects One of the changes introduced by the commit above is that process_serial_event no longer calls exit after handling the vKill packet. Instead, what happens is that we wait until captured_main finds that we no longer have any inferior to debug, at which point it throws_quit. This (normal) exception is then expected to propagate all the way to the exception handle in function "main", which calls exit. However, before the exception gets propagated, the cleanups are first executed, and one of the cleanups in question is detach_or_kill_for_exit_cleanup, which was put in place by captured_main. detach_or_kill_for_exit_cleanup is basically a wrapper around detach_or_kill_for_exit, which iterates over all inferiors, and kills them all. In our case, we have only one inferior, which we have already killed during the handling for the "vKill" packet. Unfortunately, we did not properly clean our internal data for that inferior up, and so detach_or_kill_for_exit thinks that we still have one inferior, and therefore tries to kill it. This results in lynx_kill being called, doing the following: lynx_ptrace (PTRACE_KILL, ptid, 0, 0, 0); lynx_wait (ptid, &status, 0); the_target->mourn (process); The hang is caused by the call to lynx_wait, which waits for an event from a process which does not exist... This patch fixes the issue by enhancing lynx_mourn to clean the threads and process list up. gdb/gdbserver/ChangeLog: * lynx-low.c (lynx_delete_thread_callback): New function. (lynx_mourn): Properly delete our process and all of its threads. Remove call to clear_inferiors.
2015-12-22gdbserver crash in gdb/gdbserver/thread.c::thread_search_callbackJoel Brobecker2-1/+9
Connecting GDB to a LynxOS-178 GDBserver causes GDBserver to crash: % gdbserver :4444 simple_main Process simple_main created; pid = 19 Listening on port 4444 Remote debugging from host 205.232.38.10 Segmentation fault (core dumped) The crash happens in thread_search_callback where the function calls the_target->thread_stopped (via the thread_stopped macro) without verifying whether the callback is NULL or not. For the record, the regression was introduced by: commit a67a9faef0e32886c83611cc7a0ba61e91123063 Date: Mon Nov 30 16:05:26 2015 +0000 Subject: gdbserver:prepare_access_memory: pick another thread This patch avoids the crash by checking the value of the callback first, before calling it. gdb/gdbserver/ChangeLog: * target.c (thread_search_callback): Add check that the thread_stopped target callback is not NULL before calling it.
2015-12-22[win32] cannot automatically find executable file [...] warning at GDB startupJoel Brobecker2-1/+7
The following change... commit 43499ea30db2a866412c86952c7e1d7b158d806f Date: Tue Nov 17 15:17:44 2015 +0000 Subject: [C++/mingw] windows-nat.c casts ... causes a small regression in GDB, where we get the following warning at startup: % gdb C:\[...]\gdb.exe: warning: cannot automatically find executable file or library to read symbols. Use "file" or "dll" command to load executable/libraries directly. GNU gdb (GDB) 7.10.50.20151218-cvs (with AdaCore local changes) [...] (gdb) The warning comes from _initialize_loadable which tries to dynamically load some symbols from kernel32.dll and psapi.dll, and in particular: hm = LoadLibrary ("psapi.dll"); if (hm) { GPA (hm, EnumProcessModules); GPA (hm, GetModuleInformation); GPA (hm, GetModuleFileNameEx); } The problem is that the new GPA macro assumes that the name of the variable we use to point to the function, and the name of its associated symbol are the same. This is mostly the case, except for GetModuleFileNameEx, where the name is provided by the GetModuleFileNameEx_name macro (defined differently depending on whether we are on cygwin or not). As a result, the dynamic resolution for GetModuleFileNameEx returns NULL, and we trip the following check which leads to the warning: if (!EnumProcessModules || !GetModuleInformation || !GetModuleFileNameEx) { [...] warning(_("[...]")); } This patch fixes the problem by calling GetProcAddress directly, rather than through the GPA macro, but in a way which hopefully avoids the C++ compilation warning that the previous patch was trying to get rid of. gdb/ChangeLog: * windows-nat.c (_initialize_loadable): Fix computing of GetModuleFileNameEx.
2015-12-22RXv2 support updateYoshinori Sato4-8/+24
2015-12-22 Yoshinori Sato <ysato@users.sourceforge.jp> opcodes/ * rx-decode.opc (movco): Use uniqe id. (movli): Likewise. (stnz): Condition fix. (mvtacgu): Destination fix. * rx-decode.c: Regenerate. bfd/ * archures.c: Add bfd_mach_rx_v2. * bfd-in2.h: Regenerate. * cpu-rx.c (arch_info_struct): Add v2 information. * elf32-rx.c (elf32_rx_machine): Add v2 support.
2015-12-22Add support for ARM's NOREAD section flag.Mickael Guene20-5/+251
include/elf * arm.h: Add arm SHF_ARM_NOREAD section flag. bfd * bfd-in2.h: Regenerate. * section.c: Add SEC_ELF_NOREAD. * elf32-arm.c (elf32_arm_post_process_headers): Only set PF_X attribute if a segment only contains section with SHF_ARM_NOREAD flag. (elf32_arm_fake_sections): Add SEC_ELF_NOREAD conversion. (elf32_arm_section_flags): New function to convert SHF_ARM_NOREAD to bfd flag. (elf32_arm_lookup_section_flags): New function to allow INPUT_SECTION_FLAGS directive with SHF_ARM_NOREAD flag. (elf32_arm_special_sections): Add special sections array to catch section prefix by '.text.noread' pattern. ld/testsuite * ld-arm/arm-elf.exp: New tests. * ld-arm/thumb1-input-section-flag-match.d: New * ld-arm/thumb1-input-section-flag-match.s: New * ld-arm/thumb1-noread-not-present-mixing-two-section.d: New * ld-arm/thumb1-noread-not-present-mixing-two-section.s: New * ld-arm/thumb1-noread-present-one-section.d: New * ld-arm/thumb1-noread-present-one-section.s: New * ld-arm/thumb1-noread-present-two-section.d: New * ld-arm/thumb1-noread-present-two-section.s: New binutils * readelf.c (get_elf_section_flags): Add support for ARM specific section flags.
2015-12-22Add an expect for running commands with CLI jumpThomas Preud'homme2-0/+8
2015-12-22 Thomas Preud'homme <thomas.preudhomme@arm.com> gdb/testsuite/ * lib/mi-support.exp (mi_run_cmd_full): Add an expect for the CLI jump case.
2015-12-22Automatic date update in version.inGDB Administrator1-1/+1
2015-12-21Remove dead code in testsuiteSimon Marchi3-60/+17
This patch removes cases from the testsuite that are not posssibly used. The messages "Catch of * not yet implemented" were removed here: https://www.sourceware.org/ml/gdb-patches/2004-01/msg00679.html I changed the regexp at the same time to match the string more closely. gdb/testsuite/ChangeLog: * gdb.base/break.exp: Remove dead code. * gdb.base/sepdebug.exp: Likewise.
2015-12-21Remove HP-UX references fom testsuiteSimon Marchi36-1048/+146
This patch removes all special cases for HP-UX, for which support has been removed earlier, that I found in the testsuite. Note that the hppa architecture != HP-UX, since other OSes can run on hppa, so I tried to leave everything that is not HP-UX specific. Two complete tests were completely HP-UX specific, so I removed them. I ran the testsuite on Linux x86-64, native and native-gdbserver, and noticed no regressions. gdb/testsuite/ChangeLog: * gdb.asm/asm-source.exp: Remove HP-UX references. * gdb.base/annota1.exp: Likewise. * gdb.base/annota3.exp: Likewise. * gdb.base/attach.exp: Likewise. * gdb.base/bigcore.exp: Likewise. * gdb.base/break.exp: Likewise. * gdb.base/call-ar-st.exp: Likewise. * gdb.base/callfuncs.exp: Likewise. * gdb.base/catch-fork-static.exp: Likewise. * gdb.base/display.exp: Likewise. * gdb.base/foll-exec-mode.exp: Likewise. * gdb.base/foll-exec.exp: Likewise. * gdb.base/foll-fork.exp: Likewise. * gdb.base/foll-vfork.exp: Likewise. * gdb.base/funcargs.exp: Likewise. * gdb.base/hbreak2.exp: Likewise. * gdb.base/inferior-died.exp: Likewise. * gdb.base/interrupt.exp: Likewise. * gdb.base/multi-forks.exp: Likewise. * gdb.base/nodebug.exp: Likewise. * gdb.base/sepdebug.exp: Likewise. * gdb.base/solib1.c: Likewise. * gdb.base/step-test.exp: Likewise. * gdb.mi/non-stop.c: Likewise. * gdb.mi/pthreads.c: Likewise. * gdb.multi/bkpt-multi-exec.ex: Likewise. * gdb.threads/pthreads.c: Likewise. * gdb.threads/staticthreads.exp: Likewise. * lib/future.exp: Likewise. * lib/gdb.exp: Likewise. * gdb.base/so-indr-cl.c: Remove. * gdb.base/so-indr-cl.exp: Likewise. * gdb.base/solib.c: Likewise. * gdb.base/solib.exp: Likewise. * gdb.base/solib2.c: Likewise.
2015-12-21Remove references to HP CC/aCC compiler from testsuiteSimon Marchi29-324/+72
The HP CC/aCC compiler is exclusive to HP-UX, for which support has been explicitly removed. Therefore, It does not make sense to keep tests for these compilers' quirks. gdb/testsuite/ChangeLog: * gdb.base/break.exp: Remove references to HP CC/aCC compilers. * gdb.base/call-ar-st.exp: Likewise. * gdb.base/callfuncs.exp: Likewise. * gdb.base/condbreak.exp: Likewise. * gdb.base/constvars.exp: Likewise. * gdb.base/hbreak2.exp: Likewise. * gdb.base/langs.exp: Likewise. * gdb.base/list.exp: Likewise. * gdb.base/long_long.exp: Likewise. * gdb.base/ptype.exp: Likewise. * gdb.base/scope.exp: Likewise. * gdb.base/signals.exp: Likewise. * gdb.base/so-impl-ld.exp: Likewise. * gdb.base/varargs.exp: Likewise. * gdb.base/volatile.exp: Likewise. * gdb.base/whatis.exp: Likewise. * gdb.cp/cplusfuncs.exp: Likewise. * gdb.cp/inherit.exp: Likewise. * gdb.cp/local.exp: Likewise. * gdb.cp/member-ptr.exp: Likewise. * gdb.cp/method.exp: Likewise. * gdb.cp/overload.exp: Likewise. * gdb.cp/templates.exp: Likewise. * gdb.stabs/weird.exp: Likewise. * lib/compiler.c: Likewise. * lib/compiler.cc: Likewise. * lib/cp-support.exp: Likewise. * lib/gdb.exp: Likewise.
2015-12-21Use arm_eabi_breakpoint on aarch32Yao Qi2-3/+8
This patch is to get b37a6290 back again, which was removed by d9311bfa by mistake. gdb/gdbserver: 2015-12-21 Yao Qi <yao.qi@linaro.org> * linux-aarch32-low.h [__aarch64__]: Use arm_abi_breakpoint arm breakpoint.
2015-12-21Fix building pdfs of assembler documentation.Nick Clifton2-11/+26
PR gas/19386 * doc/as.texinfo (Strings): Prepend a space to index entries that start with a backslash. This works around a problem in the pdf generator.
2015-12-21Minor reformatting fix in gdbtypes.c::create_array_type_with_strideJoel Brobecker2-2/+6
gdb/ChangeLog: * gdbtypes.c (create_array_type_with_stride): Fix indentation.
2015-12-21Automatic date update in version.inGDB Administrator1-1/+1
2015-12-20Remove HP-UX reference in testsuite/configure.acSimon Marchi3-4/+5
gdb/testsuite/ChangeLog: * configure.ac: Remove HP-UX case. * configure: Regenerate.
2015-12-20Automatic date update in version.inGDB Administrator1-1/+1
2015-12-19Fix ARI warning in gdb/arch/arm-get-next-pcs.cJoel Brobecker2-1/+6
gdb/ChangeLog: * arch/arm-get-next-pcs.c (arm_get_next_pcs_raw): Remove trailing newline at end of error message.
2015-12-18Reset pagination counts even when stdin is not a tty.Sandra Loosemore3-4/+8
2015-12-18 Sandra Loosemore <sandra@codesourcery.com> gdb/ * event-top.c (command_handler): Don't require stdin to be a tty for call to reinitialize_more_filter. * top.c (command_loop): Likewise.
2015-12-18Make prompt_for_continue call throw_quit directly.Sandra Loosemore2-1/+6
2015-12-18 Sandra Loosemore <sandra@codesourcery.com> gdb/ * utils.c (prompt_for_continue): Call throw_quit directly on 'q'.
2015-12-19Automatic date update in version.inGDB Administrator1-1/+1
2015-12-18Process 64-bit imm/disp only for 64-bit BFDH.J. Lu2-0/+13
We only need to store 32-bit immediate in 64-bit and optimize 64-bit displacement to 32-bit only for 64-bit BFD. * config/tc-i386.c (optimize_imm): Store 32-bit immediate in 64-bit only for 64-bit BFD (optimize_disp): Optimize 64-bit displacement to 32-bit only for 64-bit BFD.
2015-12-18Cast to enum bfd_endian in arm_get_next_pcs_read_memory_unsigned_integerAntoine Tremblay2-1/+7
This patch fixes the cxx build broken by commit : d9311bfaf572cf14af577a66e79c51c491553552. Pushed as obvious. gdb/ChangeLog: * arm-tdep.c (arm_get_next_pcs_read_memory_unsigned_integer): Cast to enum bfd_endian)
2015-12-18Add documentation to gdb_compileSimon Marchi2-0/+38
This patch adds some documentation to gdb_compile. It describes the various options that can influence compilation. Most of them are handled by DejaGnu, but are not really documented anywhere, so I think it's good to have a quick reference. Not all possible options are described, that would add way to much noise. I chose those that I think are relevant in the context of writing a test case. gdb/testsuite/ChangeLog: * lib/gdb.exp (gdb_compile): Add function doc.
2015-12-18Enable conditional breakpoints for targets that support software single step ↵Antoine Tremblay2-6/+6
in GDBServer This patch enables support for conditional breakpoints if the target supports software single step. This was disabled before as the implementations of software single step were too simple as discussed in https://sourceware.org/ml/gdb-patches/2015-04/msg01110.html. Since these issues are now fixed support can be added back. New tests passing : PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation target and related... No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * server.c (handle_query): Call target_supports_software_single_step.
2015-12-18Enable software single stepping for while-stepping actions in GDBServerAntoine Tremblay2-17/+37
This patch enables software single stepping if the targets support it, to do while-stepping actions. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * linux-low.c (single_step): New function. (linux_resume_one_lwp_throw): Call single_step. (start_step_over): Likewise.
2015-12-18Support software single step on ARM in GDBServerAntoine Tremblay22-1361/+1924
This patch teaches GDBServer how to software single step on ARM linux by sharing code with GDB. The arm_get_next_pcs function in GDB is now shared with GDBServer. So that GDBServer can use the function to return the possible addresses of the next PC. A proper shared context was also needed so that we could share the code, this context is described in the arm_get_next_pcs structure. Testing : No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/ChangeLog: * Makefile.in (ALL_TARGET_OBS): Append arm-get-next-pcs.o, arm-linux.o. (ALLDEPFILES): Append arm-get-next-pcs.c, arm-linux.c (arm-linux.o): New rule. (arm-get-next-pcs.o): New rule. * arch/arm-get-next-pcs.c: New file. * arch/arm-get-next-pcs.h: New file. * arch/arm-linux.h: New file. * arch/arm-linux.c: New file. * arm.c: Include common-regcache.c. (thumb_advance_itstate): Moved from arm-tdep.c. (arm_instruction_changes_pc): Likewise. (thumb_instruction_changes_pc): Likewise. (thumb2_instruction_changes_pc): Likewise. (shifted_reg_val): Likewise. * arm.h (submask): Move macro from arm-tdep.h (bit): Likewise. (bits): Likewise. (sbits): Likewise. (BranchDest): Likewise. (thumb_advance_itstate): Moved declaration from arm-tdep.h (arm_instruction_changes_pc): Likewise. (thumb_instruction_changes_pc): Likewise. (thumb2_instruction_changes_pc): Likewise. (shifted_reg_val): Likewise. * arm-linux-tdep.c: Include arch/arm.h, arch/arm-get-next-pcs.h arch/arm-linux.h. (arm_linux_get_next_pcs_ops): New struct. (ARM_SIGCONTEXT_R0, ARM_UCONTEXT_SIGCONTEXT, ARM_OLD_RT_SIGFRAME_SIGINFO, ARM_OLD_RT_SIGFRAME_UCONTEXT, ARM_NEW_RT_SIGFRAME_UCONTEXT, ARM_NEW_SIGFRAME_MAGIC): Move stack layout defines to arch/arm-linux.h. (arm_linux_sigreturn_next_pc_offset): Move to arch/arm-linux.c. (arm_linux_software_single_step): Adjust for arm_get_next_pcs implementation. * arm-tdep.c: Include arch/arm-get-next-pcs.h. (arm_get_next_pcs_ops): New struct. (submask): Move macro to arm.h. (bit): Likewise. (bits): Likewise. (sbits): Likewise. (BranchDest): Likewise. (thumb_instruction_changes_pc): Move to arm.c (thumb2_instruction_changes_pc): Likewise. (arm_instruction_changes_pc): Likewise. (shifted_reg_val): Likewise. (thumb_advance_itstate): Likewise. (thumb_get_next_pc_raw): Move to arm-get-next-pcs.c. (arm_get_next_pc_raw): Likewise. (arm_get_next_pc): Likewise. (thumb_deal_with_atomic_sequence_raw): Likewise. (arm_deal_with_atomic_sequence_raw): Likewise. (arm_deal_with_atomic_sequence): Likewise. (arm_get_next_pcs_read_memory_unsigned_integer): New function. (arm_get_next_pcs_addr_bits_remove): Likewise. (arm_get_next_pcs_syscall_next_pc): Likewise. (arm_get_next_pcs_is_thumb): Likewise. (arm_software_single_step): Adjust for arm_get_next_pcs implementation. * arm-tdep.h: (arm_get_next_pc): Remove declaration. (arm_get_next_pcs_read_memory_unsigned_integer): New declaration. (arm_get_next_pcs_addr_bits_remove): Likewise. (arm_get_next_pcs_syscall_next_pc): Likewise. (arm_get_next_pcs_is_thumb): Likewise. (arm_deal_with_atomic_sequence: Remove declaration. * common/gdb_vecs.h: Add CORE_ADDR vector definition. * configure.tgt (aarch64*-*-linux): Add arm-get-next-pcs.o, arm-linux.o. (arm*-wince-pe): Add arm-get-next-pcs.o. (arm*-*-linux*): Add arm-get-next-pcs.o, arm-linux.o, arm-get-next-pcs.o (arm*-*-netbsd*,arm*-*-knetbsd*-gnu): Add arm-get-next-pcs.o. (arm*-*-openbsd*): Likewise. (arm*-*-symbianelf*): Likewise. (arm*-*-*): Likewise. * symtab.h: Move CORE_ADDR vector definition to gdb_vecs.h. gdb/gdbserver/ChangeLog: * Makefile.in (SFILES): Append arch/arm-linux.c, arch/arm-get-next-pcs.c. (arm-linux.o): New rule. (arm-get-next-pcs.o): New rule. * configure.srv (arm*-*-linux*): Add arm-get-next-pcs.o, arm-linux.o. * linux-aarch32-low.c (arm_abi_breakpoint): Remove macro. Moved to linux-aarch32-low.c. (arm_eabi_breakpoint, arm_breakpoint): Likewise. (arm_breakpoint_len, thumb_breakpoint): Likewise. (thumb_breakpoint_len, thumb2_breakpoint): Likewise. (thumb2_breakpoint_len): Likewise. (arm_is_thumb_mode): Make non-static. * linux-aarch32-low.h (arm_abi_breakpoint): New macro. Moved from linux-aarch32-low.c. (arm_eabi_breakpoint, arm_breakpoint): Likewise. (arm_breakpoint_len, thumb_breakpoint): Likewise. (thumb_breakpoint_len, thumb2_breakpoint): Likewise. (thumb2_breakpoint_len): Likewise. (arm_is_thumb_mode): New declaration. * linux-arm-low.c: Include arch/arm-linux.h aarch/arm-get-next-pcs.h, sys/syscall.h. (get_next_pcs_ops): New struct. (get_next_pcs_addr_bits_remove): New function. (get_next_pcs_is_thumb): New function. (get_next_pcs_read_memory_unsigned_integer): Likewise. (arm_sigreturn_next_pc): Likewise. (get_next_pcs_syscall_next_pc): Likewise. (arm_gdbserver_get_next_pcs): Likewise. (struct linux_target_ops) <arm_gdbserver_get_next_pcs>: Initialize. * linux-low.h: Move CORE_ADDR vector definition to gdb_vecs.h. * server.h: Include gdb_vecs.h.
2015-12-18Share regcache function regcache_raw_read_unsignedAntoine Tremblay10-51/+119
This patch is in preparation for software single step support on ARM in GDBServer. It adds a new shared function regcache_raw_read_unsigned and regcache_raw_get_unsigned so that GDB and GDBServer can use the same call to fetch a raw register into an integer. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/ChangeLog: * Makefile.in (SFILES): Append common/common-regcache.c. (COMMON_OBS): Append common/common-regcache.o. (common-regcache.o): New rule. * common/common-regcache.h (register_status) New enum. (regcache_raw_read_unsigned): New declaration. * common/common-regcache.c: New file. * regcache.h (enum register_status): Move to common-regcache.h. (regcache_raw_read_unsigned): Likewise. (regcache_raw_get_unsigned): Likewise. gdb/gdbserver/ChangeLog: * Makefile.in (SFILES): Append common/common-regcache.c. (OBS): Append common-regcache.o. (common-regcache.o): New rule. * regcache.c (init_register_cache): Initialize cache to REG_UNAVAILABLE. (regcache_raw_read_unsigned): New function. * regcache.h (REG_UNAVAILABLE, REG_VALID): Replaced by shared register_status enum.
2015-12-18Refactor arm_software_single_step to use regcacheAntoine Tremblay6-79/+212
This patch is in preparation for software single step support on ARM in GDBServer. It refactors arm_*_software_single_step and sub-functions to use regcache instead of frame to access registers so that the code can be shared more easily between GDB and GDBServer. Note also that since the intention is at some point to get rid of frame completely in that function, memory reads have also been replaced by read_memory_unsigned_integer rather than get_frame_memory_unsigned. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/ChangeLog: * arm-linux-tdep.c (arm_linux_sigreturn_next_pc_offset): New function. (arm_linux_sigreturn_next_pc): Likewise. (arm_linux_syscall_next_pc): Use regcache instead of frame. (arm_linux_software_single_step): Likewise. * arm-tdep.c (arm_is_thumb): New function. (shifted_reg_va): Use regcache instead of frame. (thumb_get_next_pc_raw): Likewise. (arm_get_next_pc_raw): Likewise. (arm_get_next_pc): Likewise. (thumb_deal_with_atomic_sequence_raw): Likewise. (arm_deal_with_atomic_sequence_raw): Likewise. (arm_deal_with_atomic_sequence): Likewise. (arm_software_single_step): Likewise. * arm-tdep.h (struct gdbarch_tdep): Use regcache for syscall_next_pc. (arm_get_next_pc): Use regcache. (arm_deal_with_atomic_sequence): Likewise. (arm_is_thumb): New declaration. * regcache.c (regcache_raw_get_unsigned): New function. * regcache.h (regcache_raw_get_unsigned): New function declaration.
2015-12-18Share some ARM target dependent code from GDB with GDBServerAntoine Tremblay7-86/+109
This patch is in preparation for software single stepping support on ARM it shares some functions and definitions that will be needed. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } Not tested: wince/bsd build. gdb/ChangeLog: * arch/arm.c (bitcount): Move from arm-tdep.c. (condition_true): Likewise. * arch/arm.h (Instruction Definitions): Move form arm-tdep.h. (condition_true): Move defenition from arm-tdep.h. (bitcount): Likewise. * arm-tdep.c (condition_true): Move to arch/arm.c. (bitcount): Likewise. * arm-tdep.h (Instruction Definitions): Move to arch/arm.h. * arm-wince-tdep.c: Include arch/arm.h. * armnbsd-tdep.c: Likewise.
2015-12-18Replace breakpoint_reinsert_addr by get_next_pcs operation in GDBServerAntoine Tremblay11-13/+53
This patch in preparation for software single step support on ARM. It refactors breakpoint_reinsert_addr into get_next_pcs so that multiple location can be returned. When software single stepping there can be multiple possible next addresses because we're stepping over a conditional branch instruction, for example. The operation get_next_pcs handles that by returning a vector of all the possible next addresses. Software breakpoints are installed at each location returned. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * linux-aarch64-low.c (the_low_targets): Rename breakpoint_reinsert_addr to get_next_pcs. * linux-arm-low.c (the_low_targets): Likewise. * linux-bfin-low.c (the_low_targets): Likewise. * linux-cris-low.c (the_low_targets): Likewise. * linux-crisv32-low.c (the_low_targets): Likewise. * linux-low.c (can_software_single_step): Likewise. (install_software_single_step_breakpoints): New function. (start_step_over): Use install_software_single_step_breakpoints. * linux-low.h: New CORE_ADDR vector. (struct linux_target_ops) Rename breakpoint_reinsert_addr to get_next_pcs. * linux-mips-low.c (the_low_targets): Likewise. * linux-nios2-low.c (the_low_targets): Likewise. * linux-sparc-low.c (the_low_targets): Likewise.
2015-12-18Fix formatting in coff-x86_64.cH.J. Lu2-48/+54
* coff-x86_64.c (coff_amd64_reloc): Fix formatting.
2015-12-18Fix formatting of coff-i386.cNick Clifton2-32/+36
* coff-i386.c (coff_i386_reloc): Fix formatting.
2015-12-17Implement --long-plt flag (ARM only).Peter Collingbourne3-21/+127
gold/ PR gold/18780 * arm.cc (Target_arm::do_make_data_plt): Choose PLT generator based on value of --long-plt flag. (Output_data_plt_arm_standard::do_get_plt_entry_size): Moved to Output_data_plt_arm_short. (Output_data_plt_arm_standard::do_fill_plt_entry): Likewise. (Output_data_plt_arm_standard::plt_entry): Likewise. (Output_data_plt_arm_standard::do_fill_first_plt_entry): Fix variable reference. (Output_data_plt_arm_short): New class. (Output_data_plt_arm_short::do_fill_plt_entry): Error out on too large PLT offsets instead of asserting. (Output_data_plt_arm_long): New class. * options.h (General_options): Define --long-plt flag.
2015-12-18Automatic date update in version.inGDB Administrator1-1/+1
2015-12-17MAINTAINERS: Add myself as MIPS maintainerMaciej W. Rozycki2-0/+5
binutils/ * MAINTAINERS: Add myself as MIPS maintainer.