12173 Commits

Author SHA1 Message Date
Ivo Raisr
bcea2454f3 Remove a temporary file after massif/tests/mmapunmap test run.
n-i-bz


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15746
2015-12-12 19:58:40 +00:00
Philippe Waroquiers
58ba63b7df Fix massif --pages-as-heap=yes does not report peak caused by mmap+munmap
ms_unrecord_page_mem was wrongly taking the (possible) peak snapshot
when unrecording the last block.
But the peak snapshot will be detected when unrecording the first block
of an munmap, not when unrecording the last block.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15745
2015-12-10 22:37:59 +00:00
Philippe Waroquiers
95bd519438 addLoc: only merge the new entry with the previous one if the resulting
size does not exceed the max allowed.

Also improve the tracing.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15744
2015-12-06 22:11:21 +00:00
Philippe Waroquiers
943c6b0396 support qC packet in gdbserver
Patch from Daniel Trebbien (slightly modified)
(qC packet needed for lldb support)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15743
2015-12-05 21:57:59 +00:00
Ivo Raisr
e3df68d823 Add support for repository cache protocol version 27.
n-i-bz


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15742
2015-12-04 17:37:41 +00:00
Ivo Raisr
f1fceb1e3a Dwarf line info reader now correctly interprets 'is_stmt' register
Line numbers should correctly reflect all instructions belonging to a source line,
regardless of is_stmt value. Previously only instructions covered by
'is_stmt = 1' were attributed to a source line.

Fixes BZ#356044


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15741
2015-12-04 13:14:10 +00:00
Petar Jovanovic
6b95752621 mips: add missing "memory" to the clobber list
Add "memory" to the clobber arguments of VALGRIND_DO_CLIENT_REQUEST_EXPR.

This fixes memcheck/tests/vbit-test/vbit-test.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15740
2015-11-27 14:51:33 +00:00
Petar Jovanovic
0967e68ec9 mips: get isa level information from /proc/cpuinfo
Rewrite parts of VG_(parse_cpuinfo) (previously VG_(get_machine_model))
function to extract information on supported ISAs. These values are then
packed in hwcaps. This will help Valgrind better distinguish different MIPS
CPUs and raise illegal instructions when required.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15739
2015-11-26 18:20:44 +00:00
Carl Love
0201caa575 This is a fix to Bug 354797 which added the vbit test support for the
Power 8 instructions.

The patch for bug 354797 moved the declaration for rc outside of the
architecture #ifdef.  This results in an message about rc being unused
on architectures other then s390 and powerpc.  This commit eliminates
the issue by:

powerpc: move rc declaration into #ifdef for powerpc.
      Remove tab, put in missing break.

s390: remove rc declaration from inside case statement.  Put rc declaration
      before the switch statement but within the #ifdef for s390 so it will
      be declared for use in both case clauses.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15738
2015-11-25 17:48:25 +00:00
Florian Krohm
e5b272e28c Fix a typo in the clobber list.
Spotted by Michael Daniels <mdaniels@qnx.com>


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15737
2015-11-24 19:38:16 +00:00
Petar Jovanovic
f90bbf2004 mips: improve recognition of different MIPS processors
Recognize correctly MIPS processors. Previously, for some of the cpu models,
Valgrind would incorrectly assume it is a regular MIPS model, as it would
find word MIPS in /proc/cpuinfo that came from "BogoMIPS" label.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15736
2015-11-23 15:35:54 +00:00
Philippe Waroquiers
2ecdfd91d0 Make libvexmulti_arch work on ppc64 BE with host mips
Mips needs at least some hwcaps (see host_mips_isel.c:4174)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15735
2015-11-22 16:08:56 +00:00
Ivo Raisr
8baa800e63 Implement properly setjmp/longjmp on Solaris x86/amd64.
The default implementation provided by __builtin functions
does very weird things.
Uncovered by Philippe's commit r15716.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15734
2015-11-21 21:35:34 +00:00
Rhys Kidd
ff615aca37 Resolve build error on OS X, from r15728. n-i-bz.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15733
2015-11-21 00:37:33 +00:00
Ivo Raisr
d5266b32f7 Solaris syscall: Fix pset(getloadavg).
The buffer holds integers, not doubles.
n-i-bz


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15732
2015-11-19 09:34:29 +00:00
Philippe Waroquiers
84dd9da3a7 Fix a bug in the debug code of find_chunk_for.
find_chunk_for has a special case for zero size block.
The special case was missing in the find_chunk_for_OLD.
So, when enabling the leak check debug, the following assert
is raised with ./vg-in-place ./memcheck/tests/leak-0
if you comment the lines (in find_chunk_for_OLD)
      if (a_lo == a_hi)
         a_hi++; // Special case for szB 0. See find_chunk_for.
and define VG_DEBUG_FIND_CHUNK

Memcheck: mc_leakcheck.c:327 (find_chunk_for): Assertion 'retVal == find_chunk_for_OLD ( ptr, chunks, n_chunks )' failed.

host stacktrace:
==7868==    at 0x38031535: show_sched_status_wrk (m_libcassert.c:343)
==7868==    by 0x38031641: report_and_quit (m_libcassert.c:415)
==7868==    by 0x38031723: vgPlain_assert_fail (m_libcassert.c:481)
==7868==    by 0x38004AA6: find_chunk_for (mc_leakcheck.c:327)
==7868==    by 0x38005236: lc_is_a_chunk_ptr (mc_leakcheck.c:538)
==7868==    by 0x3800556D: lc_push_without_clique_if_a_chunk_ptr (mc_leakcheck.c:893)
==7868==    by 0x38035234: apply_to_GPs_of_tid (m_machine.c:199)
==7868==    by 0x38035234: vgPlain_apply_to_GP_regs (m_machine.c:425)
==7868==    by 0x38006406: vgMemCheck_detect_memory_leaks (mc_leakcheck.c:1913)
==7868==    by 0x38015872: mc_handle_client_request (mc_main.c:6628)
==7868==    by 0x38047AB8: wrap_tool_handle_client_request (m_tooliface.c:280)
==7868==    by 0x3807C5C4: do_client_request (scheduler.c:2101)
==7868==    by 0x3807C5C4: vgPlain_scheduler (scheduler.c:1425)
==7868==    by 0x38089973: thread_wrapper (syswrap-linux.c:102)
==7868==    by 0x38089973: run_a_thread_NORETURN (syswrap-linux.c:155)




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15731
2015-11-18 23:07:27 +00:00
Philippe Waroquiers
2a8421f74c Announce fix for (not in bugzilla) unwind problems on RHEL7 32 bits
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15730
2015-11-18 20:59:34 +00:00
Philippe Waroquiers
99c6a6d880 Fix incorrect (or infinite loop) unwind on RHEL7 x86 32 bits.
On RHEL7 x86 32 bits, Valgrind unwinder cannot properly unwind
the stack just after a thread creation : the unwinder always retrieves
the same pc/sp/bp.
See below for an example.
This has as consequences that some stack traces are bigger than
needed (i.e. they always fill up the ips array). If
--merge-recursive-frames is given, then the unwinder enters in an
infinite loop (as identical frames will be merged, and the ips array
will never be filled in).
Thi patch adds an additional exit condition : after unwinding
a frame, if the previous sp is >= new sp, then unwinding stops.
Patch has been tested on debian 8/x86, RHEL7/x86.



   0x0417db67 <+55>:    mov    0x18(%esp),%ebx
   0x0417db6b <+59>:    mov    0x28(%esp),%edi
   0x0417db6f <+63>:    mov    $0x78,%eax
   0x0417db74 <+68>:    mov    %ebx,(%ecx)
   0x0417db76 <+70>:    int    $0x80
=> 0x0417db78 <+72>:    pop    %edi
   0x0417db79 <+73>:    pop    %esi
   0x0417db7a <+74>:    pop    %ebx
   0x0417db7b <+75>:    test   %eax,%eax

Valgrind stacktrace gives:
==21261==    at 0x417DB78: clone (clone.S:110)
==21261==    by 0x424702F: ???
==21261==    by 0x424702F: ???
==21261==    by 0x424702F: ???
==21261==    by 0x424702F: ???
==21261==    by 0x424702F: ???
==21261==    by 0x424702F: ???
==21261==    by 0x424702F: ???
...
(till the array of ips is full)

while gdb stacktrace gives:
(gdb) bt
#0  clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:110
#1  0x00000000 in ?? ()
(gdb) p $pc
$2 = (void (*)()) 0x417db78 <clone+72>
(gdb)


With the fix, valgrind gives:
==21261==    at 0x417DB78: clone (clone.S:110)
==21261==    by 0x424702F: ???
which looks more reasonable.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15729
2015-11-18 20:56:55 +00:00
Ivo Raisr
0d30686d21 When searching for global public symbols (like for the somalloc
synonym symbols), exclude the dynamic (runtime) linker as it is very
special.
Fixes BZ#355454


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15728
2015-11-18 20:38:37 +00:00
Ivo Raisr
68c788c973 Expected stderr of test cases wrapmalloc and wrapmallocstatic are overconstrained.
Fixes BZ#355455.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15727
2015-11-18 04:13:12 +00:00
Mark Wielaard
8b4dd5c47c BZ#355188 valgrind should intercept all malloc related global functions.
This implements the interception of all globally public allocation
functions by default. It works by adding a flag to the spec to say the
interception only applies to global functions. Which is set for the
somalloc spec. The librarypath to match is set to "*" unless the user
overrides it. Then each DiSym keeps track of whether the symbol is local
or global. For a spec which has isGlobal set only isGlobal symbols will
match.

Note that because of padding to keep the addresses in DiSym aligned the
addition of the extra bool isGlobal doesn't actually grow the struct.
The comments explain how the struct could be made more compact on 32bit
systems, but this isn't as easy on 64bit systems. So I didn't try to do
that in this patch.

For ELF symbols keeping track of which are global is trivial. For pdb I
had to guess and made only the "Public" symbols global. I don't know
how/if macho keeps track of global symbols or not. For now I just mark
all of them local (which just means things work as previously on platforms
that use machos, no non-system symbols are matches by default for somalloc
unless the user explicitly tells which library name to match).

Included are two testcases for shared libraries (wrapmalloc) and staticly
linked (wrapmallocstatic) malloc/free overrides that depend on the new
default. One existing testcase (new_override) was adjusted to explicitly
not use the new somalloc default because it depends on a user defined
new implementation that has side-effects and should explicitly not be
intercepted.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15726
2015-11-15 16:50:43 +00:00
Julian Seward
6229d73981 Initial add of new bugs since 3.11.0.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15725
2015-11-09 20:58:01 +00:00
Julian Seward
f356d4e5ad Create 3_11_BUGSTATUS.txt.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15724
2015-11-09 20:35:51 +00:00
Philippe Waroquiers
6aa9e95b75 If --history-level=full was not provided at startup, report an error in
helgrind accesshistory monitor command

As accesshistory will never show anything unless this option is given.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15723
2015-11-08 10:42:06 +00:00
Florian Krohm
75ddfb026a Fix documentation of command line flag
BZ #354933 


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15722
2015-11-06 22:08:46 +00:00
Carl Love
bf17dceca0 Add ISA 2.07 vbit test support
Updated the NEWS file for this fix in VEX commit 3202 and valgrind commit
15720.

Bugzilla 354797 was created for this issue.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15721
2015-11-03 17:52:08 +00:00
Carl Love
79c80505d3 Add ISA 2.07 vbit test support
The ISA 2.07 support adds new Iops as well as support for some existing
Iops.  None of these Iops have been enabled in the vbit tester.  This commit
adds the needed support to the files in memcheck/tests/vbit-test.   
These changes add support for additional immediate operands and additional
undefined bit checking functions.

There are additional changes to files VEX/priv/ir_inject.c and VEX/pub/libvex.h
that are in VEX commit 3202

Bugzilla 354797 was created for this issue.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15720
2015-11-03 17:48:04 +00:00
Ivo Raisr
1cc06c7e14 ELF debug info reader was confused with multiple .rodata sections on Solaris
The ELF debug info reader on Solaris now performs a quick pre-scan of section
headers for .rodata sections. If there are multiple .rodata sections
present then symbols from .symtab are scanned which section they point to.
The "true" .rodata section is thus determined.
Fixes BZ#353802.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15719
2015-10-29 07:28:58 +00:00
Ivo Raisr
e7be5069c3 Solaris syscall: Add support for lwp_cond_signal(171).
Fixes BZ#354392.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15718
2015-10-26 16:13:05 +00:00
Zhi-Gang Liu
bb0396704c Disable none/tests/bug234814 test for TileGx.
Add "bool on_altstack" parameter to VG_(sigframe_create)(..)
in sigframe-tilegx-linux.c


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15717
2015-10-23 02:36:09 +00:00
Philippe Waroquiers
6b5a479bda Fix 353891 Assert 'bad_scanned_addr < VG_ROUNDDN(start+len, sizeof(Addr))' failed
All memory dereferences during leak search are checked either with
aspacemgr or using the VA-bits.
So, in theory, no memory fault should occur.
However, the leak search is done so as to resist to e.g.
- desynchronisation between the real pages mapped and the aspacemgr state.
- client pages mprotected against reading
- any other reason why dereferencing a client address would fail.

So, the function lc_scan_memory installs a fault catcher that
is called if a memory fault signal is raised during memory scan.
However, memory dereference is also done in the function heuristic_reachedness.
So, this function must also resist to memory fault.

This patch also installs a fault catcher for the function heuristic_reachedness.

More in details, the following changes are done:
* pub_tool_signal.h and m_signals.c :
  VG_(set_fault_catcher) now returns the previously set fault catcher.
  This is needed so that heuristic_reachedness/lc_scan_memory can save
  and restore the previous fault catcher.

* mc_leakcheck.c:
  Addition of leak_search_fault_catcher that contains the common
  code for the (currently 2) fault catchers used during leak search.

* Modification of heuristic_reachedness and lc_scan_memory:
  Add 2 (small) specific fault catcher that are calling the common
  leak_search_fault_catcher.

* The way sigprocmask is handled has been changed:
  Before this patch, lc_scan_memory was saving/restoring the procsigmask
  for each scanned block (and was restoring it when the fault catcher
  was longjmp-ing back to lc_scan_memory in case of SEGV or BUS.
  This was causing 2 system calls for each block scanned.

  Now, lc_scan_memory and  heuristic_reachedness are not saving/restoring
  the procmask: the work to reset the sigprocmask is only done
  in leak_search_fault_catcher. This is more efficient as no syscall
  anymore is done during leak search, except for (normally) unfrequent
  SIGSEGV/BUS. It is also simpler as signal handling is now done at
  a single place.
  
  It is ok to reset the procmask (in fact, just remove the caught signal
  from the process sigmask) as during leak search, no other activity than
  the leak search is on-going, and so no other SEGV/BUS can be received
  while the handler runs.

This gives moderate speed improvements for applications allocating a lot of
blocks (about 10% improvement when leak searching in 1 million small blocks).

Test case (slightly modified) by Matthias Schwarzott.
  
  
  



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15716
2015-10-22 19:14:30 +00:00
Ivo Raisr
bf01b5a43f Add helgrind tool to the Solaris IPS packaging manifest.
Somehow it slipped through the cracks...
n-i-bz


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15715
2015-10-22 13:36:07 +00:00
Ivo Raisr
2b983ea5ef Clarification for some of the Solaris requirements.
Reported by: Matthew Wozniczka <mattheww@simba.com>


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15714
2015-10-21 12:02:04 +00:00
Julian Seward
5e5d78dda0 Fix inconsistent use of vki_ prefixes for struct vki_ifreq.
No functional change.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15713
2015-10-19 11:21:33 +00:00
Rhys Kidd
cb7055b7ed Silence -Wincompatible-pointer-types-discards-qualifiers warning. n-i-bz.
m_replacemalloc/vg_replace_malloc.c:1286:1: warning: returning 'const char *' from a function with result type 'char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
ZONE_GET_NAME(VG_Z_LIBC_SONAME, malloc_get_zone_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
m_replacemalloc/vg_replace_malloc.c:1283:14: note: expanded from macro 'ZONE_GET_NAME'
      return vg_default_zone.zone_name; \
             ^~~~~~~~~~~~~~~~~~~~~~~~~
m_replacemalloc/vg_replace_malloc.c:1287:1: warning: returning 'const char *' from a function with result type 'char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
ZONE_GET_NAME(SO_SYN_MALLOC,    malloc_get_zone_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
m_replacemalloc/vg_replace_malloc.c:1283:14: note: expanded from macro 'ZONE_GET_NAME'
      return vg_default_zone.zone_name; \
             ^~~~~~~~~~~~~~~~~~~~~~~~~
m_replacemalloc/vg_replace_malloc.c:1286:1: warning: returning 'const char *' from a function with result type 'char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
ZONE_GET_NAME(VG_Z_LIBC_SONAME, malloc_get_zone_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
m_replacemalloc/vg_replace_malloc.c:1283:14: note: expanded from macro 'ZONE_GET_NAME'
      return vg_default_zone.zone_name; \
             ^~~~~~~~~~~~~~~~~~~~~~~~~
m_replacemalloc/vg_replace_malloc.c:1287:1: warning: returning 'const char *' from a function with result type 'char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
ZONE_GET_NAME(SO_SYN_MALLOC,    malloc_get_zone_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
m_replacemalloc/vg_replace_malloc.c:1283:14: note: expanded from macro 'ZONE_GET_NAME'
      return vg_default_zone.zone_name; \
             ^~~~~~~~~~~~~~~~~~~~~~~~~

No regressions on OS X 10.10

Before:

== 596 tests, 219 stderr failures, 10 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

After:

== 596 tests, 219 stderr failures, 10 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15712
2015-10-19 10:20:17 +00:00
Rhys Kidd
6251bc45e3 Silence -Wcast-qual const qualifier warning. n-i-bz.
m_debuginfo/readmacho.c:395:30: warning: cast from 'const void *' to 'DiSym *' drops const qualifier [-Wcast-qual]
   const DiSym* s1 = (DiSym*)v1;
                             ^
m_debuginfo/readmacho.c:396:30: warning: cast from 'const void *' to 'DiSym *' drops const qualifier [-Wcast-qual]
   const DiSym* s2 = (DiSym*)v2;
                             ^
m_libcsignal.c:481:49: warning: cast from 'const vki_sigset_t *' to 'vki_sigset_t *' drops const qualifier [-Wcast-qual]
  VG_(sigintersectset)(&pending, (vki_sigset_t*)set);
                                                ^

No regressions on OS X 10.10

Before:

== 596 tests, 219 stderr failures, 10 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

After:

== 596 tests, 219 stderr failures, 10 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15711
2015-10-19 10:18:28 +00:00
Florian Krohm
5085e06eb6 Fix a bug passing immediate values to ir_inject.c
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15710
2015-10-17 11:18:50 +00:00
Florian Krohm
1b73579e81 Link the vbit tester against libvex-<arch>-<os>.a
This allows to remove local copies of certain VEX functions.
VEX r3200 enables this.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15709
2015-10-16 17:29:54 +00:00
Ivo Raisr
b6aeb1c9e6 Solaris syscall: Add support for lwp_cond_wait(170).
Provide scalar test as well.
Fixes BZ #353920.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15708
2015-10-16 12:20:20 +00:00
Ivo Raisr
9aaa41b23d Solaris syscall: Enable fchdir(120) - generic.
Provide scalar tests as well.
Fixes BZ #353917.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15707
2015-10-15 09:37:14 +00:00
Rhys Kidd
042e76373e Fill out missing functionality on amd64 OS X to load a fake sigreturn.
Also enhance consistency of formatting for x86 OS X section.

No regressions on OS X 10.10

Before:

== 596 tests, 219 stderr failures, 10 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

After:

== 596 tests, 219 stderr failures, 10 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15706
2015-10-15 07:01:57 +00:00
Rhys Kidd
06d960e68d Fill out missing functionality on amd64 OS X to back up guest state to restart a system call.
No regressions on OS X 10.10

Before:

== 596 tests, 219 stderr failures, 10 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

After:

== 596 tests, 219 stderr failures, 10 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15705
2015-10-15 05:40:17 +00:00
Rhys Kidd
7dec5ffbbf Establish some plumbing for old_semwait_signal syscall on OS X.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15704
2015-10-15 04:43:06 +00:00
Rhys Kidd
baff9a38b8 Fix typo in malloc_get_zone_name() intercept. n-i-bz.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15703
2015-10-15 04:18:12 +00:00
Florian Krohm
91a29a676c On a zEC12 or z13, a glibc with lock elision enabled infers from HWCAP
that the prerequisites for lock elision are met.  Then it may use TBEGIN
and other transactional-execution instructions which are not implemented
by Valgrind.  Likewise, the upcoming glibc 2.23 will exploit vector
instructions if they are advertised by HWCAP; and those are currently
not implemented by Valgrind either.  In general, the increased use of
ifunc may lead to more such cases in the future.

This patch suppresses the advertising of those hardware features via
HWCAP which are either not known to Valgrind or currently unsupported.

Patch by Andreas Arnez (arnez@linux.vnet.ibm.com).
Fixes BZ #353680.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15702
2015-10-12 20:35:56 +00:00
Florian Krohm
611478a742 Use local labels instead of global labels (ppc and mips
specific code).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15701
2015-10-12 20:15:12 +00:00
Ivo Raisr
6ef7c1085f Solaris syscall: Add support for pset family (207).
Provide scalar tests as well.
Fixes BZ #353398.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15700
2015-10-12 19:10:42 +00:00
Mark Wielaard
26cbea8712 Bug #278744 cvtps2pd with redundant RexW.
Add testcase for VEX svn r3198.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15699
2015-10-12 14:32:03 +00:00
Rhys Kidd
821fd4cb11 Plumb malloc_zone_memalign() through malloc_zone_t struct on OS X. No regressions.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15698
2015-10-04 09:23:07 +00:00
Rhys Kidd
84a78bdec6 Follow up to r15628, properly guard none/tests/ansi and fix a typo. n-i-bz.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15697
2015-10-03 04:47:04 +00:00