]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
10 years agoFix a comment. No functional change.
Florian Krohm [Mon, 1 Sep 2014 15:56:05 +0000 (15:56 +0000)] 
Fix a comment. No functional change.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14408

10 years agoBug 338703 helgrind on arm-linux gets false positives in dynamic loader.
Mark Wielaard [Mon, 1 Sep 2014 15:29:55 +0000 (15:29 +0000)] 
Bug 338703 helgrind on arm-linux gets false positives in dynamic loader.

There are a couple of issues with helgrind on arm-linux with glibc:

- Thread creation stack traces cannot unwind through clone
  (cfi ends right after syscall)
- ld.so has a special "hard float" name that isn't recognized as special
  (ld-linux-armhf.so.3)
- Races are found when manipulating GOT sections.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14407

10 years agoAdjust cmdline expected test output after r14401 BZ#337871.
Mark Wielaard [Mon, 1 Sep 2014 14:16:49 +0000 (14:16 +0000)] 
Adjust cmdline expected test output after r14401 BZ#337871.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14405

10 years agoTrack vex r2939 (renaming and arg-order change for Iop_Extract{64,V128}).
Julian Seward [Mon, 1 Sep 2014 11:34:32 +0000 (11:34 +0000)] 
Track vex r2939 (renaming and arg-order change for Iop_Extract{64,V128}).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14404

10 years agoRemove memory (load/store) tests from integer.c and move them
Julian Seward [Mon, 1 Sep 2014 09:35:42 +0000 (09:35 +0000)] 
Remove memory (load/store) tests from integer.c and move them
into their own file, memory.c.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14403

10 years agoRemove unused variable.
Julian Seward [Mon, 1 Sep 2014 08:41:43 +0000 (08:41 +0000)] 
Remove unused variable.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14402

10 years agoDeprecate --db-attach Fixes BZ #337871
Florian Krohm [Mon, 1 Sep 2014 06:37:07 +0000 (06:37 +0000)] 
Deprecate --db-attach   Fixes BZ #337871

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14401

10 years agoUpdate list of ignored files.
Florian Krohm [Mon, 1 Sep 2014 06:30:34 +0000 (06:30 +0000)] 
Update list of ignored files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14400

10 years agoImprove description of an address that is on a stack but below sp.
Philippe Waroquiers [Sun, 31 Aug 2014 22:27:19 +0000 (22:27 +0000)] 
Improve description of an address that is on a stack but below sp.

An address below the sp will be described as being on a stack, but below sp.

The stack for such an address is found in the registered stacks.

Also, if there is a guard page at the end of the stack (lowest address)
an address in this page will be described as being in thread guard page.
A guard page is recognised as being a page not readable/writable/executable.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14399

10 years agoBug 338681 Enable clone backtrace hack for i386-linux in helgrind.
Mark Wielaard [Sat, 30 Aug 2014 20:37:40 +0000 (20:37 +0000)] 
Bug 338681 Enable clone backtrace hack for i386-linux in helgrind.

glibc doesn't provide CFI unwind information right after the clone call
(because it would be invalid in the child). Enable the same workaround
for i386-linux that is already used for amd64-linux (subtract 3 from ip).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14398

10 years agoFix (kludge) stack unwinding through clone on arm64-linux. This is
Julian Seward [Sat, 30 Aug 2014 19:24:05 +0000 (19:24 +0000)] 
Fix (kludge) stack unwinding through clone on arm64-linux.  This is
the same problem as shown in #338681, except for arm64-linux instead
of x86-linux.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14397

10 years agoHelgrind needs to know the soname of ld.so, and on arm64-linux
Julian Seward [Sat, 30 Aug 2014 19:21:48 +0000 (19:21 +0000)] 
Helgrind needs to know the soname of ld.so, and on arm64-linux
it is different (ld-linux-aarch64.so.1) from all other targets.
(Why?)  This makes Helgrind at least somewhat usable on arm64-linux.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14396

10 years agoInitial triage pass for all remaining newly opened bugs.
Julian Seward [Sat, 30 Aug 2014 10:09:30 +0000 (10:09 +0000)] 
Initial triage pass for all remaining newly opened bugs.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14395

10 years agodrd/tests/pth_create_chain: Reduce stack usage
Bart Van Assche [Sat, 30 Aug 2014 06:48:01 +0000 (06:48 +0000)] 
drd/tests/pth_create_chain: Reduce stack usage

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14394

10 years agodocument in NEWS the fact that stack registration start/end boundaries
Philippe Waroquiers [Fri, 29 Aug 2014 23:24:20 +0000 (23:24 +0000)] 
document in NEWS the fact that stack registration start/end boundaries
are the lowest/highest addressable bytes

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14393

10 years agoThe semantic of the stack bounds is not consistent or is not described.
Philippe Waroquiers [Fri, 29 Aug 2014 22:53:19 +0000 (22:53 +0000)] 
The semantic of the stack bounds is not consistent or is not described.
At various places, there were either some assumption that the 'end'
boundary (highest address) was either not included, included,
or was the highest addressable word, or the highest addressable byte.
This e.g. was very visible when doing:
  ./vg-in-place -d -d ./helgrind/tests/tc01_simple_race|&grep regi
giving
  --24040:2:stacks     register 0xBEDB4000-0xBEDB4FFF as stack 0
  --24040:2:stacks     register 0x402C000-0x4A2C000 as stack 1
showing that the main stack end was (on x86) not the highest word
but the highest byte, while for the thread 1, the registered end
was a byte not part of the stack.

The attached patch ensures that stack bounds semantic are documented and
consistent. Also, some of the stack handling code is factorised.

The convention that the patch ensures and documents is:
start is the lowest addressable byte, end is the highest addressable byte.
(the words 'min' and 'max' have been kept when already used, as this wording is
consistent with the new semantic of start/end).

In various debug log, used brackets [ and ] to make clear that
both bounds are included.

The code to guess and register the client stack was duplicated
in all the platform specific syswrap-<plat>-<os>.c files.
Code has been factorised in syswrap-generic.c

The patch has been regression tested on
   x86, amd64, ppc32/64, s390x.
It has been compiled and one test run on arm64.
Not compiled/not tested on darwin, android, mips32/64, arm

More in details, the patch does the following:

coregrind/pub_core_aspacemgr.h
include/valgrind.h
include/pub_tool_machine.h
coregrind/pub_core_scheduler.h
coregrind/pub_core_stacks.h
  - document start/end semantic in various functions
 also in pub_tool_machine.h:
  - replaces unclear 'bottommost address' by 'lowest address'
    (unclear as stack bottom is or at least can be interpreted as
     the 'functional' bottom of the stack, which is the highest
      address for 'stack growing downwards').
coregrind/pub_core_initimg.h
  replace unclear clstack_top by clstack_end
coregrind/m_main.c
  updated to clstack_end

coregrind/pub_core_threadstate.h
  renamed client_stack_highest_word to client_stack_highest_byte
coregrind/m_scheduler/scheduler.c
  computes client_stack_highest_byte as the highest addressable byte
  Update comments in call to VG_(show_sched_status)
coregrind/m_machine.c
coregrind/m_stacktrace.c
  updated to client_stack_highest_byte, and switched
    stack_lowest/highest_word to stack_lowest/highest_byte accordingly

coregrind/m_stacks.c
  clarify semantic of start/end,
  added a comment to indicate why we invert start/end in register call
  (note that the code find_stack_by_addr was already assuming that
  end was included as the checks were doing e.g.
    sp >= i->start && sp <= i->end

coregrind/pub_core_clientstate.h
coregrind/m_clientstate.c
  renames Addr  VG_(clstk_base) to Addr  VG_(clstk_start_base)
    (start to indicate it is the lowest address, base suffix kept
     to indicate it is the initial lowest address).

coregrind/m_initimg/initimg-darwin.c
   updated to  VG_(clstk_start_base)
   replace unclear iicii.clstack_top by iicii.clstack_end
   updated clstack_max_size computation according to both bounds included.

coregrind/m_initimg/initimg-linux.c
   updated to  VG_(clstk_start_base)
   updated VG_(clstk_end) computation according to both bounds included.
   replace unclear iicii.clstack_top by iicii.clstack_end

coregrind/pub_core_aspacemgr.h
  extern Addr VG_(am_startup) : clarify semantic of the returned value
coregrind/m_aspacemgr/aspacemgr-linux.c
   removed a copy of a comment that was already in pub_core_aspacemgr.h
     (avoid double maintenance)
   renamed unclear suggested_clstack_top to suggested_clstack_end
    (note that here, it looks like suggested_clstack_top was already
     the last addressable byte)

* factorisation of the stack guessing and registration causes
  mechanical changes in the following files:
      coregrind/m_syswrap/syswrap-ppc64-linux.c
      coregrind/m_syswrap/syswrap-x86-darwin.c
      coregrind/m_syswrap/syswrap-amd64-linux.c
      coregrind/m_syswrap/syswrap-arm-linux.c
      coregrind/m_syswrap/syswrap-generic.c
      coregrind/m_syswrap/syswrap-mips64-linux.c
      coregrind/m_syswrap/syswrap-ppc32-linux.c
      coregrind/m_syswrap/syswrap-amd64-darwin.c
      coregrind/m_syswrap/syswrap-mips32-linux.c
      coregrind/m_syswrap/priv_syswrap-generic.h
      coregrind/m_syswrap/syswrap-x86-linux.c
      coregrind/m_syswrap/syswrap-s390x-linux.c
      coregrind/m_syswrap/syswrap-darwin.c
      coregrind/m_syswrap/syswrap-arm64-linux.c
 Some files to look at more in details:
  syswrap-darwin.c : the handling of sysctl(kern.usrstack) looked
    buggy to me, and has probably be made correct by the fact that
     VG_(clstk_end) is now the last addressable byte. However,unsure
    about this, as I could not find any documentation about
    sysctl(kern.usrstack). I only find several occurences on the web,
    showing that the result of this is page aligned, which I guess
    means it must be 1+ the last addressable byte.
  syswrap-x86-darwin.c and syswrap-amd64-darwin.c
   I suspect the code that was computing client_stack_highest_word
   was wrong, and the patch makes it correct.
  syswrap-mips64-linux.c
    not sure what to do for this code. This is the only code
    that was guessing the stack differently from others.
    Kept (almost) untouched. To be discussed with mips maintainers.

coregrind/pub_core_libcassert.h
coregrind/m_libcassert.c
  * void VG_(show_sched_status):
     renamed Bool valgrind_stack_usage to Bool stack_usage
     if stack_usage, shows both the valgrind stack usage and
     the client stack boundaries
coregrind/m_scheduler/scheduler.c
coregrind/m_gdbserver/server.c
coregrind/m_gdbserver/remote-utils.c
   Updated comments in callers to VG_(show_sched_status)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14392

10 years agomake prereq fail with 1 if host command not installed
Philippe Waroquiers [Fri, 29 Aug 2014 22:49:21 +0000 (22:49 +0000)] 
make prereq fail with 1 if host command not installed
as prereq must return 0 or 1. Any other return value aborts the regtests.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14391

10 years agoAdd missing file in EXTRA_DIST
Philippe Waroquiers [Fri, 29 Aug 2014 22:48:27 +0000 (22:48 +0000)] 
Add missing file in EXTRA_DIST

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14390

10 years agoarm64: record the use of x8 as of vex r2938.
Julian Seward [Fri, 29 Aug 2014 22:02:56 +0000 (22:02 +0000)] 
arm64: record the use of x8 as of vex r2938.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14389

10 years agoWith gcc 4.9.1 exp-sgcheck/tests/globalerr sees array "a", not unknown.
Mark Wielaard [Fri, 29 Aug 2014 21:18:17 +0000 (21:18 +0000)] 
With gcc 4.9.1 exp-sgcheck/tests/globalerr sees array "a", not unknown.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14388

10 years agoUpdate.
Julian Seward [Fri, 29 Aug 2014 19:34:45 +0000 (19:34 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14387

10 years agorun_thread_for_a_while: Make the computation of done_this_time less
Julian Seward [Fri, 29 Aug 2014 19:12:38 +0000 (19:12 +0000)] 
run_thread_for_a_while: Make the computation of done_this_time less
bogus, and in particular ensure that it can't be zero if in fact the
thread did do some useful work.  Fix up a couple of associated
assertions.  Fixes #336435.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14386

10 years agonone/tests/res_search.vgtest: Add prereq that domain can be resolved.
Mark Wielaard [Fri, 29 Aug 2014 18:35:54 +0000 (18:35 +0000)] 
none/tests/res_search.vgtest: Add prereq that domain can be resolved.

Some autobuilders/testers don't allow network access.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14385

10 years agoUse getdents64 syscall on linux.
Mark Wielaard [Fri, 29 Aug 2014 14:28:30 +0000 (14:28 +0000)] 
Use getdents64 syscall on linux.

getdents has been deprecated since linux 2.4 and newer arches (arm64)
might no longer provide the getdents syscall. Use getdents64 for reading
the /proc/self/fd/ dir so --track-fds=yes works reliable on all arches.
Without this the none/tests/fdleak*vgtest might fail.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14384

10 years agoinclude/vki/vki-scnums-arm64-linux.h use correct __NR_lseek define.
Mark Wielaard [Fri, 29 Aug 2014 11:44:20 +0000 (11:44 +0000)] 
include/vki/vki-scnums-arm64-linux.h use correct __NR_lseek define.

This caused memcheck/tests/linux/proc-auxv.vgtest to fail because
our internal VG(lseek) would return ENOSYS.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14383

10 years agoHook up allexec tests for arm64.
Mark Wielaard [Fri, 29 Aug 2014 08:41:45 +0000 (08:41 +0000)] 
Hook up allexec tests for arm64.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14382

10 years agogdbserver_tests filter out and don't expect empty lines.
Mark Wielaard [Thu, 28 Aug 2014 22:51:38 +0000 (22:51 +0000)] 
gdbserver_tests filter out and don't expect empty lines.

Some filters might have left some empty lines in the output.  Filter them
out explicitly and don't expect any empty lines in any of the .exp files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14381

10 years agogdbserver_tests/filter_gdb filter out 'entry value'.
Mark Wielaard [Thu, 28 Aug 2014 21:42:45 +0000 (21:42 +0000)] 
gdbserver_tests/filter_gdb filter out 'entry value'.

Some versions of gdb might try to print the entry value of an
argument if they know it with @entry=... Filter that out too.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14380

10 years agoFix a bunch of defined(VGA_ppc64)
Philippe Waroquiers [Thu, 28 Aug 2014 21:02:11 +0000 (21:02 +0000)] 
Fix a bunch of defined(VGA_ppc64)
(a.o. this was making leak_cpp_interior test failing,
as the ppc64 specific code in mc_leakcheck.c was not compiled in)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14379

10 years agoCheck that vgdb ptrace actions do not cause a EINTR or whatever
Philippe Waroquiers [Thu, 28 Aug 2014 20:19:41 +0000 (20:19 +0000)] 
Check that vgdb ptrace actions do not cause a EINTR or whatever
to go out of the select syscall

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14378

10 years agoTypo fix + small improvement in comment
Philippe Waroquiers [Thu, 28 Aug 2014 19:57:32 +0000 (19:57 +0000)] 
Typo fix + small improvement in comment

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14377

10 years agoWorkaround bug 338633. gdbserver_tests/nlcontrolc.vgtest hangs on arm64.
Mark Wielaard [Thu, 28 Aug 2014 18:47:54 +0000 (18:47 +0000)] 
Workaround bug 338633. gdbserver_tests/nlcontrolc.vgtest hangs on arm64.

Disable the test on arm64 for now to keep make regtest from hanging.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14376

10 years agoHandle ENOSYS instread of EINVAL for some helgrind tests.
Mark Wielaard [Thu, 28 Aug 2014 14:59:08 +0000 (14:59 +0000)] 
Handle ENOSYS instread of EINVAL for some helgrind tests.

Some arches (s390x and ppc64) return ENOSYS instead of EINVAL for
undefined futex operations. Adjust the helgrind filter_stderr to
handle that case.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14375

10 years agoBug 338615 suppress glibc 2.20 optimized strcmp implementation for ARMv7.
Mark Wielaard [Thu, 28 Aug 2014 14:59:04 +0000 (14:59 +0000)] 
Bug 338615 suppress glibc 2.20 optimized strcmp implementation for ARMv7.

Add an add_hardwired_spec for strcmp in VG_(redir_initialise) for
ld-linux.so.3 and ld-linux-armhf.so.3 to use a simple strcmp
implementation in m_trampoline.S (compiled from the trivial .c code
to asm with gcc like the other implementations in that file).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14374

10 years agoAdd configure check for 32 bit build support on arm64-linux.
Mark Wielaard [Wed, 27 Aug 2014 18:29:34 +0000 (18:29 +0000)] 
Add configure check for 32 bit build support on arm64-linux.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14373

10 years agonone/tests/Makefile.am (DIST_SUBDIRS): Add arm64.
Mark Wielaard [Wed, 27 Aug 2014 13:39:53 +0000 (13:39 +0000)] 
none/tests/Makefile.am (DIST_SUBDIRS): Add arm64.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14371

10 years agoFix typo in syswrap ppoll param, equate ppoll and poll for memcheck testcase.
Mark Wielaard [Tue, 26 Aug 2014 22:15:58 +0000 (22:15 +0000)] 
Fix typo in syswrap ppoll param, equate ppoll and poll for memcheck testcase.

ppoll argument is called ufds like the poll argument.
Newer architectures (aarch64) implement poll by calling ppoll directly.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14370

10 years agoAdd a missing entry to all_archs[], the lack of which was causing
Julian Seward [Tue, 26 Aug 2014 21:06:31 +0000 (21:06 +0000)] 
Add a missing entry to all_archs[], the lack of which was causing
the test system to run arm64 tests on non-arm64 platforms.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14369

10 years agoBack out a line inadvertantly committed in r14363.
Julian Seward [Tue, 26 Aug 2014 19:58:26 +0000 (19:58 +0000)] 
Back out a line inadvertantly committed in r14363.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14368

10 years agoAdd test config files and expected outputs.
Julian Seward [Tue, 26 Aug 2014 19:53:08 +0000 (19:53 +0000)] 
Add test config files and expected outputs.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14365

10 years agoAdd socket.S to memcheck/tests/filter_stderr.
Mark Wielaard [Tue, 26 Aug 2014 19:41:51 +0000 (19:41 +0000)] 
Add socket.S to memcheck/tests/filter_stderr.

sendmsg.vgtest shows socket.S on some arches instead of syscall-template.S
to indicate "in ...libc...".

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14364

10 years agoBuild system stuff, to hook the tests in none/tests/arm64
Julian Seward [Tue, 26 Aug 2014 19:28:09 +0000 (19:28 +0000)] 
Build system stuff, to hook the tests in none/tests/arm64
to the build system.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14363

10 years agoHandle the new IROps introduced to support ARM64 SIMD.
Julian Seward [Tue, 26 Aug 2014 18:35:13 +0000 (18:35 +0000)] 
Handle the new IROps introduced to support ARM64 SIMD.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14362

10 years agoIop_Rol64x2 was handled as if it were a 32x4 case. This moves
Julian Seward [Tue, 26 Aug 2014 17:30:07 +0000 (17:30 +0000)] 
Iop_Rol64x2 was handled as if it were a 32x4 case.  This moves
it to the right place.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14361

10 years agoCleanup: remove unused macros.
Florian Krohm [Mon, 25 Aug 2014 22:04:01 +0000 (22:04 +0000)] 
Cleanup: remove unused macros.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14360

10 years agoarm64: enable test cases for:
Julian Seward [Sun, 24 Aug 2014 20:37:39 +0000 (20:37 +0000)] 
arm64: enable test cases for:
  {zip,uzp,trn}{1,2} (vector)
  urecpe, ursqrte (vector)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14353

10 years agoTrack renaming of {reciprocal, reciprocal sqrt}{estimate, step}
Julian Seward [Sun, 24 Aug 2014 14:02:22 +0000 (14:02 +0000)] 
Track renaming of {reciprocal, reciprocal sqrt}{estimate, step}
primops in vex r2932.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14350

10 years ago338499 --sim-hints parsing broken due to wrong order in tokens (after introduction...
Philippe Waroquiers [Sun, 24 Aug 2014 11:24:10 +0000 (11:24 +0000)] 
338499  --sim-hints parsing broken due to wrong order in tokens (after introduction of no-nptl-pthread-stackcache)
Fix the token order in m_main.c

Somewhat retested by running the regression tests
(testing no-nptl-pthread-stackcache) and testing in an outer/inner setup
(testing enable-outer,no-inner-prefix).
It seems there is no regtest for the 2 other flags (lax-ioctls,fuse-compatible)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14349

10 years agofilter_shell_output: filter out "Exec format error" added by newer bash.
Mark Wielaard [Sat, 23 Aug 2014 20:49:17 +0000 (20:49 +0000)] 
filter_shell_output: filter out "Exec format error" added by newer bash.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14343

10 years agoRemove unused functions and prototypes.
Florian Krohm [Sat, 23 Aug 2014 19:42:52 +0000 (19:42 +0000)] 
Remove unused functions and prototypes.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14342

10 years agoRemove unused function CLG_(sprint_cost).
Florian Krohm [Sat, 23 Aug 2014 19:13:48 +0000 (19:13 +0000)] 
Remove unused function CLG_(sprint_cost).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14341

10 years agoMemcheck: add a new flag, --show-mismatched-frees=no|yes [yes], to
Julian Seward [Fri, 22 Aug 2014 19:26:23 +0000 (19:26 +0000)] 
Memcheck: add a new flag, --show-mismatched-frees=no|yes [yes], to
optionally disable allocator/deallocator mismatch checking.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14336

10 years agomc_LOADV_128_or_256_slow: change a constant from V_BITS8_DEFINED
Julian Seward [Fri, 22 Aug 2014 19:07:12 +0000 (19:07 +0000)] 
mc_LOADV_128_or_256_slow: change a constant from V_BITS8_DEFINED
to V_BITS64_DEFINED so as to be consistent with the rest of the
types in this function.  Since both values are zero it gives no
functional change.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14335

10 years agoCleanup. Cost array was never called anyway.
Josef Weidendorfer [Fri, 22 Aug 2014 17:36:05 +0000 (17:36 +0000)] 
Cleanup. Cost array was never called anyway.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14334

10 years agoRemove benign macro redefinition.
Florian Krohm [Fri, 22 Aug 2014 16:55:07 +0000 (16:55 +0000)] 
Remove benign macro redefinition.
Give current_jccs internal linkage.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14332

10 years agoTweak gdbserver_tests/hgtls.stdoutB.exp filter_gdb a little for older GDB.
Mark Wielaard [Fri, 22 Aug 2014 10:14:28 +0000 (10:14 +0000)] 
Tweak gdbserver_tests/hgtls.stdoutB.exp filter_gdb a little for older GDB.

Older GDB (7.2 on i386) don't print out which variable+offset an argument
pointer in a breakpoint function points to. The hgtls test already tests
whether the p pointer/test points to the expected tests array element.
So don't expect gdb to print it also and filter it out with filter_gdb.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14331

10 years agoAlign header comment with other files
Josef Weidendorfer [Fri, 22 Aug 2014 08:38:40 +0000 (08:38 +0000)] 
Align header comment with other files

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14330

10 years agoFollow up to r14313: disable stack cache earlier
Philippe Waroquiers [Thu, 21 Aug 2014 20:01:50 +0000 (20:01 +0000)] 
Follow up to r14313: disable stack cache earlier
glibc is recycling memory for detached threads before a thread
termination => disable the stack cache earlier (i.e. once
a 'non main thread' is seen)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14329

10 years agoNEWS 330319 vex amd64->IR: unhandled instruction bytes: 0xF 0x1 0xD5 (xend)
Mark Wielaard [Thu, 21 Aug 2014 17:46:48 +0000 (17:46 +0000)] 
NEWS 330319 vex amd64->IR: unhandled instruction bytes: 0xF 0x1 0xD5 (xend)

VEX svn r2931

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14328

10 years agoBug 338445 amd64 vbit-test fails with unknown opcodes used by arm64 VEX.
Mark Wielaard [Thu, 21 Aug 2014 14:44:48 +0000 (14:44 +0000)] 
Bug 338445 amd64 vbit-test fails with unknown opcodes used by arm64 VEX.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14327

10 years agoexp-sgcheck/tests/hackedbz2.c mark vex_strlen as noinline
Mark Wielaard [Thu, 21 Aug 2014 12:33:31 +0000 (12:33 +0000)] 
exp-sgcheck/tests/hackedbz2.c mark vex_strlen as noinline

Explicitly set noinline so the test can check it is in the backtrace.
Newer gcc versions happily optimize it away otherwise.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14326

10 years agoCheck some known PATHs for mpicc in configure.
Mark Wielaard [Thu, 21 Aug 2014 10:04:04 +0000 (10:04 +0000)] 
Check some known PATHs for mpicc in configure.

On some distributions (fedora) mpicc not installed on the default PATH.
Add a search path for finding mpicc by default if it is installed.
The user can still override the used mpicc compiler using --with-mpicc=.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14325

10 years agoImprove -mpreferred-stack-boundary configure message.
Mark Wielaard [Thu, 21 Aug 2014 10:03:52 +0000 (10:03 +0000)] 
Improve -mpreferred-stack-boundary configure message.

Explicitly say we are checking for -mpreferred-stack-boundary=2.
Only 2 is ever used when it is supported. Some gcc versions/arches
(e.g. GCC 4.8 for x86_64) support -mpreferred-stack-boundary, but
only between 4 and 12. The message that -mpreferred-stack-boundary
wasn't supported was a little confusing. So explicitly say we checked
for -mpreferred-stack-boundary=2.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14324

10 years agoClean up confusion about VG_(args_the_exename) which was believed to
Florian Krohm [Wed, 20 Aug 2014 21:04:14 +0000 (21:04 +0000)] 
Clean up confusion about VG_(args_the_exename) which was believed to
possibly be NULL in several places. Nowadays, VG_(ii_create_image) will
terminate the process if VG_(args_the_exename) is NULL.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14323

10 years agoUpdate in NEWS the gcc release needed to better support Ada tasks termination
Philippe Waroquiers [Wed, 20 Aug 2014 20:53:07 +0000 (20:53 +0000)] 
Update in NEWS the gcc release needed to better support Ada tasks termination

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14322

10 years agoRemove unused functions CLG_(get_out_file) and CLG_(get_out_directory).
Florian Krohm [Wed, 20 Aug 2014 20:37:33 +0000 (20:37 +0000)] 
Remove unused functions CLG_(get_out_file) and CLG_(get_out_directory).
Looks like these were leftovers from early days -- perhaps r7235.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14321

10 years agoKind of a follow-up to r14237.
Julian Seward [Wed, 20 Aug 2014 17:45:00 +0000 (17:45 +0000)] 
Kind of a follow-up to r14237.
pre_mem_read_sockaddr: in the case where the caller doesn't
specify any address family (that is, the family is AF_UNSPEC)
don't perform any further checks on the supplied |sa| address
block, since doing so merely gives rise to false uninitialised
value errors.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14320

10 years agoconfigure should check for warning flags supported to disable them (#338205).
Mark Wielaard [Wed, 20 Aug 2014 16:11:53 +0000 (16:11 +0000)] 
configure should check for warning flags supported to disable them (#338205).

Configure would check whether gcc supported -Wno... flags. But gcc always
does. It is happy to just not warn about anything. So flip all configure
checks to test for the warning and only when gcc accepts the warning flag
use -Wno-...

Introduces two helper functions to make it easier to add new flag checks.
AC_GCC_WARNING_COND and AC_GCC_WARNING_SUBST_NO.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14319

10 years agoauxprogs: Update Subversion ignore list
Bart Van Assche [Wed, 20 Aug 2014 06:51:19 +0000 (06:51 +0000)] 
auxprogs: Update Subversion ignore list

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14316

10 years agohelgrind/tests: Update Subversion ignore list
Bart Van Assche [Wed, 20 Aug 2014 06:50:22 +0000 (06:50 +0000)] 
helgrind/tests: Update Subversion ignore list

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14315

10 years agodrd/tests/tls_threads: Add
Bart Van Assche [Wed, 20 Aug 2014 06:48:22 +0000 (06:48 +0000)] 
drd/tests/tls_threads: Add

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14314

10 years agoAdd option a new sim-hint no-nptl-pthread-stackcache.
Philippe Waroquiers [Tue, 19 Aug 2014 22:46:44 +0000 (22:46 +0000)] 
Add option a new sim-hint  no-nptl-pthread-stackcache.

Activating this hint using --sim-hints=no-nptl-pthread-stackcache
means the glibc nptl stack cache will be disabled.

Disabling this stack/tls cache avoids helgrind false positive race conditions
errors when using __thread variables.

Note: disabling the stack cache is done by a kludge, dependent on
internal knowledge of glibc code, and using libpthread debug info.
So, this kludge might be broken with newer glibc version.
This has been tested on various platforms and various
glibc versions 2.11, 2.16 and 2.18

To check if the disabling works, you can do:
valgrind --tool=helgrind --sim-hints=no-nptl-pthread-stackcache -d -v ./helgrind/tests/tls_threads |& grep kludge

If you see the below 2 lines, then hopefully the stack cache has been disabled.
--12624-- deactivate nptl pthread stackcache via kludge: found symbol stack_cache_actsize at addr 0x3AF178
--12624:1:sched    pthread stack cache size disabling done via kludge

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14313

10 years agoFix a typo.
Florian Krohm [Tue, 19 Aug 2014 16:53:02 +0000 (16:53 +0000)] 
Fix a typo.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14312

10 years agoRemove a few unused macro definitions.
Florian Krohm [Mon, 18 Aug 2014 15:36:29 +0000 (15:36 +0000)] 
Remove a few unused macro definitions.
Move exported global variables to the proper section
in the header file.
No functional change.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14306

10 years agoarm64: enable test cases for
Julian Seward [Mon, 18 Aug 2014 12:29:03 +0000 (12:29 +0000)] 
arm64: enable test cases for
srhadd, urhadd (vector)
suqadd, usqadd (scalar)
suqadd, usqadd (vector)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14303

10 years agoAnnounce in NEWS the change of behaviour (i.e. validity checking)
Philippe Waroquiers [Sun, 17 Aug 2014 20:07:36 +0000 (20:07 +0000)] 
Announce in NEWS the change of behaviour (i.e. validity checking)
for the clo options --kernel-variant and --sim-hints

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14302

10 years agoThe attached patch cleanups the clo processing
Philippe Waroquiers [Sun, 17 Aug 2014 20:03:51 +0000 (20:03 +0000)] 
The attached patch cleanups the clo processing
of clo which are (or should be) 'enum set'.

* pub_tool_options.h : add new macrox VG_USET_CLO and VG_USETX_CLO to
  parse an 'enum set' command line option (with or without "all" keyword).

* use VG_USET_CLO for existing enum set clo options:
   memcheck --errors-for-leak-kinds, --show-leak-kinds, --leak-check-heuristics
   coregrind --vgdb-stop-at

* change --sim-hints and --kernel-variants to enum set
  (this allows to detect user typos: currently, a typo in a sim-hint
   or kernel variant is silently ignored. Now, an error will be given
   to the user)

* The 2 new sets (--sim-hints and --kernel-variants) should not make
  use of the 'all' keyword => VG_(parse_enum_set) has a new argument
  to enable/disable the use of the "all" keyword.

* The macros defining an 'all enum' set definition was duplicating
  all enum values (so addition of a new enum value could easily
  give a bug). Removing these macros as they are unused
  (to the exception of the leak-kind set).
  For this set, the 'all macro' has been replaced by an 'all function',
  coded using parse_enum_set parsing the "all" keyword.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14301

10 years agoarm64: enable test cases for
Julian Seward [Sun, 17 Aug 2014 18:34:08 +0000 (18:34 +0000)] 
arm64: enable test cases for
  sshr, ushr, ssra, usra (scalar, imm)
  srshr, urshr, srsra, ursra (scalar, imm)
  srshr, urshr, srsra, ursra (vector, imm)
  sshl, srshl, ushl, urshl (scalar, imm)
  sshl, srshl, ushl, urshl (vector, vector)
  ssra, usra (vector, imm)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14300

10 years agoAdd comments in getoff.c to clarify its intended usage.
Philippe Waroquiers [Sun, 17 Aug 2014 13:33:57 +0000 (13:33 +0000)] 
Add comments in getoff.c to clarify its intended usage.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14299

10 years agoFix build problems on MacOSX pertaining to r14283.
Julian Seward [Sun, 17 Aug 2014 12:23:56 +0000 (12:23 +0000)] 
Fix build problems on MacOSX pertaining to r14283.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14298

10 years ago* Unbreak build on macos (and on other platforms) that do not have
Philippe Waroquiers [Sat, 16 Aug 2014 21:00:15 +0000 (21:00 +0000)] 
* Unbreak build on macos (and on other platforms) that do not have
HAVE_DLINFO_RTLD_DI_TLS_MODID.
* add the copyright notice in auxprogs/getoff.c
* add more prereq to hgtls.vgtest

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14297

10 years agocreating the lind from none/tests/ppc64/round.c to none/tests/ppc32/round.c
Carl Love [Fri, 15 Aug 2014 16:44:32 +0000 (16:44 +0000)] 
creating the lind from none/tests/ppc64/round.c to none/tests/ppc32/round.c

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14291

10 years agoRemoving the file none/tests/ppc64/round.c so I can change it to a link.
Carl Love [Fri, 15 Aug 2014 16:40:03 +0000 (16:40 +0000)] 
Removing the file none/tests/ppc64/round.c so I can change it to a link.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14290

10 years agoSome cleanup post QGetTlsAddr commit
Philippe Waroquiers [Fri, 15 Aug 2014 13:03:24 +0000 (13:03 +0000)] 
Some cleanup post QGetTlsAddr commit
* remove useless commented line in hgtls.vgtest
* avoid some #ifdef in arch specific code, hoping to discover more compile
  time errors.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14287

10 years agofix 338160: Implement QGetTlsAddr query so that GDB+V gdbsrv can print __thread varia...
Philippe Waroquiers [Fri, 15 Aug 2014 10:27:52 +0000 (10:27 +0000)] 
fix 338160: Implement QGetTlsAddr query so that GDB+V gdbsrv can print __thread variables.

To implement QGetTlsAddr, gdbsrv has to know how to get the glibc dtv
address and the module id from the link_map.
These 2 things are dependent on the internals of glibc.
The dependency is mostly isolated in a few lines of arch dependent
code or in an external utility that used a hack + -ldl lib to find
the offset of the modid in the link_map structure.

Tested on x86/amd64/ppc64/s390x. Somewhat tested on ppc32 and arm64.
Untested/a few #ifdef-ed lines not compiled on arm/mips32/mips64
and darwin.

For more background info about thread local storage handling, see
'ELF Handling For Thread-Local Storage' http://www.akkadia.org/drepper/tls.pdf

Changes:
* auxprogs/getoff.c new auxilliary program to get platform specific offsets
  (currently only the offset for the module id in struct link_map).
* configure.ac : check for dlinfo(RTLD_DI_TLS_MODID) needed for getoff.c
* new gdbserver_tests/hgtls, testing various types of __thread variables
* various m_gdbserver files:
  - implement decoding of the QGetTlsAddr query
  - for each platform: platform specific code to get the dtv
  - call to external program getoff-<platform> the first time an
    __thread variable is printed.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14283

10 years agoTrack vex r2924 (Renaming of Iop_QSalN*, Iop_QShlN* and Iop_QShlN*S)
Julian Seward [Fri, 15 Aug 2014 09:12:28 +0000 (09:12 +0000)] 
Track vex r2924 (Renaming of Iop_QSalN*, Iop_QShlN* and Iop_QShlN*S)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14282

10 years agoarm64: enable test cases for:
Julian Seward [Fri, 15 Aug 2014 05:39:42 +0000 (05:39 +0000)] 
arm64: enable test cases for:
{uqshl, sqshl, sqshlu} (vector, imm)
{uqshl, sqshl, sqshlu} (scalar, imm)
{uqshrn, sqrshrun, sqshrun} (scalar, imm)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14281

10 years agoChoose some floating point numbers that are hopefully easier to write out.
Florian Krohm [Thu, 14 Aug 2014 17:32:26 +0000 (17:32 +0000)] 
Choose some floating point numbers that are hopefully easier to write out.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14279

10 years agoThis commit is an update to Bugzilla 334836
Carl Love [Thu, 14 Aug 2014 16:54:48 +0000 (16:54 +0000)] 
This commit is an update to Bugzilla 334836

There are two copies of the round test in none/tests/ppc32/round.c
and none/tests/ppc64/round.c.  The two source files should be
identical. The LE functional test commit updated the round.c test for
ppc64 but was missing the ppc32 round updates.  The round.c test was
updated to fix an issue where we were getting different outputs
depending on the compiler.  The output is now consistent for the
compilers allowing the removal of the additional expect files for
ppc32 and ppc64.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14278

10 years agoUpdate list of ignored files.
Florian Krohm [Thu, 14 Aug 2014 14:14:55 +0000 (14:14 +0000)] 
Update list of ignored files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14277

10 years agoMake suppression more flexible.
Florian Krohm [Thu, 14 Aug 2014 14:12:38 +0000 (14:12 +0000)] 
Make suppression more flexible.
Needed for s390 running Fedora 20.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14276

10 years agoAdd a couple more OSX109 libc leak suppressions.
Julian Seward [Thu, 14 Aug 2014 09:46:52 +0000 (09:46 +0000)] 
Add a couple more OSX109 libc leak suppressions.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14275

10 years agoUnbreak the MacOS port following recent r14273 (further reduction
Julian Seward [Thu, 14 Aug 2014 09:38:19 +0000 (09:38 +0000)] 
Unbreak the MacOS port following recent r14273 (further reduction
in symbol table storage requirements for non-ppc64 targets).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14274

10 years agoReduce memory needed for symbols, by having the tocptr and local_ep
Philippe Waroquiers [Wed, 13 Aug 2014 21:25:45 +0000 (21:25 +0000)] 
Reduce memory needed for symbols, by having the tocptr and local_ep
(used for ppc64 platforms) #ifdef-ed and accessed by macros
that becomes NOP on non ppc64 platforms.
This decreases the debuginfo memory by about 2.5 Mb on a big 32 bit application.

Note : doing that, some questions were encountered in the way
tocptr and local_ep have (or do not have) to be copied/maintained
in storage.c canonicaliseSymtab

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14273

10 years agoRemove benign macro redefinition.
Florian Krohm [Wed, 13 Aug 2014 14:31:04 +0000 (14:31 +0000)] 
Remove benign macro redefinition.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14269

10 years agoFix some comments
Philippe Waroquiers [Wed, 13 Aug 2014 09:53:18 +0000 (09:53 +0000)] 
Fix some comments

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14267

10 years agoUnbreak the MacOS port following the recent ppc64le port merge.
Julian Seward [Wed, 13 Aug 2014 09:04:02 +0000 (09:04 +0000)] 
Unbreak the MacOS port following the recent ppc64le port merge.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14266

10 years agoFollowup to r14264: Fix VG_(sysnum_string) for Darwin.
Florian Krohm [Tue, 12 Aug 2014 21:11:44 +0000 (21:11 +0000)] 
Followup to r14264: Fix VG_(sysnum_string) for Darwin.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14265

11 years agoRemove function VG_(sysnum_string_extra) as it was just a wrapper
Florian Krohm [Tue, 12 Aug 2014 11:43:17 +0000 (11:43 +0000)] 
Remove function VG_(sysnum_string_extra) as it was just a wrapper
around VG_(sysnum_string). Also remove associated macro
VG_SYSNUM_STRING_EXTRA.
The VG_SYSNUM_STRING macro returned a pointer to a variable which
is out of scope. Using that value may cause undefined behaviour.
Change VG_(sysnum_string) to return pointer to static buffer instead.
Fix call sites.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14264

11 years agocoregrind/m_syswrap/priv_syswrap-xen.h: Add copyright header
Bart Van Assche [Tue, 12 Aug 2014 09:53:32 +0000 (09:53 +0000)] 
coregrind/m_syswrap/priv_syswrap-xen.h: Add copyright header

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14263