You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
1
(3) |
2
|
3
(5) |
4
(9) |
5
(4) |
6
|
|
7
(1) |
8
(8) |
9
(8) |
10
(12) |
11
(12) |
12
(10) |
13
(4) |
|
14
(8) |
15
(9) |
16
(16) |
17
(12) |
18
(5) |
19
(5) |
20
(5) |
|
21
|
22
(13) |
23
(5) |
24
(13) |
25
(1) |
26
(3) |
27
(3) |
|
28
|
29
(1) |
30
(3) |
31
(9) |
|
|
|
|
From: <sv...@va...> - 2017-05-09 18:08:24
|
Author: philippe
Date: Tue May 9 19:08:16 2017
New Revision: 16347
Log:
Fix typo
Modified:
trunk/NEWS
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Tue May 9 19:08:16 2017
@@ -36,7 +36,7 @@
is handled like CLONE_VFORK (so removing CLONE_VM flag).
Applications that depends on CLONE_VM exact semantic will (still) not work.
- - TileGX/Linux port was removed because the platform is essientially dead.
+ - TileGX/Linux port was removed because the platform is essentially dead.
* ==================== TOOL CHANGES ====================
|
|
From: <sv...@va...> - 2017-05-09 16:23:43
|
Author: sewardj
Date: Tue May 9 17:23:36 2017
New Revision: 16346
Log:
First pass triage of remaining untriaged bugs.
Modified:
trunk/NEWS
trunk/docs/internals/3_12_BUGSTATUS.txt
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Tue May 9 17:23:36 2017
@@ -121,6 +121,7 @@
370028 Reduce the number of compiler warnings on MIPS platforms (partial fix)
370635 arm64 missing syscall getcpu
371225 Fix order of timer_{gettime,getoverrun,settime} syscalls on arm64
+371227 Clean AArch64 syscall table
371412 Rename wrap_sys_shmat to sys_shmat like other wrappers
371471 Valgrind complains about non legit memory leaks on placement new (C++)
371869 support '%' in symbol Z-encoding
@@ -143,6 +144,9 @@
375772 +1 error in get_elf_symbol_info() when computing value of 'hi' address
for ML_(find_rx_mapping)()
375806 Test helgrind/tests/tc22_exit_w_lock fails with glibc 2.24
+375839 Temporary storage exhausted, with long sequence of vfmadd231ps insns
+ == 377159 "vex: the `impossible' happened" still present
+ == 375150 Assertion 'tres.status == VexTransOK' failed
376142 Segfaults on MIPS Cavium Octeon boards
376279 disInstr(arm64): unhandled instruction 0xD50320FF
376455 Solaris: unhandled syscall lgrpsys(180)
Modified: trunk/docs/internals/3_12_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_12_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_12_BUGSTATUS.txt Tue May 9 17:23:36 2017
@@ -17,15 +17,11 @@
367543 bt/btc/btr/bts x86/x86_64 instructions are poorly-handled wrt flags
[Z flag behaviour is wrong]
-369053 AMD64 fma4 instructions missing 256 bit support
-
-369409 vex amd64->IR: unhandled instruction bytes: 0x48 0xF 0xC7 0xF0 0x72 0x2 0xE2 0xF8
-
371491 handleAddrOverrides() is truncating the segment base address when
ASO prefix is used
[has patch, easy fix]
-371989 PCMPISTRM $0x72 validity bit propagation is imprecise
+369409 vex amd64->IR: 0x48 0xF 0xC7 0xF0 0x72 0x2 0xE2 0xF8 (
372188 vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10 0x10 0x48 (PCMPxSTRx $0x10)
@@ -34,7 +30,8 @@
373166 vex amd64->IR: 0xFF 0xFF 0x48 0x85 0xC0 0x74 0x8 0x4D 0x89 0xE7
[not clear what's going on here]
-375008 amd64->IR: 0x8F 0x6A 0x78 0x10 0xD8 0x4 0x4 0x0 0x0 0x8F
+377066 Some Valgrind unit tests fail to compile on Ubuntu 16.10 with
+ PIE enabled by default
AMD XOP-prefixed insns:
@@ -43,10 +40,16 @@
[== 328357, still open]
(carried over)
-339596 - AMD64 xop instructions unsupported. vex amd64->IR: unhandled instruction bytes: 0x8F 0xE8 0x78 0xCD 0xC1 0x4 0xC5 0xF9
- [has patch, could possibly take it, but needs cleanup/verification with Mark]
+339596 AMD64 xop instructions unsupported.
+ vex amd64->IR: 0x8F 0xE8 0x78 0xCD 0xC1 0x4 0xC5 0xF9
+ [has patch, could possibly take it, but needs
+ cleanup/verification with Mark]
== 356138
+369053 AMD64 fma4 instructions missing 256 bit support
+
+375008 amd64->IR: 0x8F 0x6A 0x78 0x10 0xD8 0x4 0x4 0x0 0x0 0x8F
+
=== VEX/arm ============================================================
(carried over)
@@ -61,9 +64,7 @@
n-i-bz Remove limit on strd's negative immediates
[dev@, Michael Daniels, 19 Nov 2015, easy fix, should land]
-(carried over)
-362934 [AsusWRT] Arm v7 illegal instruction
- [unclear what this is; a SIGILL on generated code]
+373990 Potential shift left overflow in guest_arm_toIR.c
368868 disInstr(arm64): unhandled instruction 0xD53BE000 = cntfrq_el0 (ARMv8)
(should fix this for 3.13?)
@@ -81,6 +82,13 @@
=== VEX/arm64 ==========================================================
+368868 disInstr(arm64): unhandled instruction 0xD53BE000 = cntfrq_el0 (ARMv8)
+ (should fix this for 3.12.1)
+
+369459 valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)
+
+369509 ARMv8.1 LSE instructions are not supported
+
371503 disInstr(arm64): unhandled instruction 0xF89F0000 (prfum)
=== VEX/x86 ============================================================
@@ -154,6 +162,7 @@
368920 WARNING: unhandled arm64-linux syscall: 275
368921 WARNING: unhandled arm64-linux syscall: 162
368923 WARNING: unhandled arm64-linux syscall: 268
+
368960 WARNING: unhandled amd64-linux syscall: 163
369026 WARNING: unhandled amd64-linux syscall: 169
369027 WARNING: unhandled amd64-linux syscall: 216 (remap_file_pages)
@@ -237,16 +246,19 @@
than 34255421416 bytes
(increase usable address space post release, on trunk)
-369854 Valgrind reports an Invalid Read in __intel_new_memcpy
+371989 PCMPISTRM $0x72 validity bit propagation is imprecise
-371770 Memleak trace back for overwritten or freed memory pointers
- [wishlist]
+369854 Valgrind reports an Invalid Read in __intel_new_memcpy
+ Should be handled by --partial-loads-ok=yes
371966 No uninitialised values reported with PGI -Mstack_arrays
375415 free list of blocks, mempool blocks and describe addr
do not work properly together
+371770 Memleak trace back for overwritten or freed memory pointers
+ [wishlist]
+
=== Tools/DRD ==========================================================
(carried over)
@@ -275,6 +287,9 @@
=== Tools/Callgrind ====================================================
+369456 callgrind_control failed to find an active callgrind run.
+ OSX specific
+
=== Tools/Lackey =======================================================
=== other/amd64 ========================================================
@@ -283,16 +298,12 @@
== 374482
== 374850
-377006 valgrind/memcheck segfaults under certain kernel versions (amd64)
- but not others.
-
-374963 increase valgrind's load address to prevent mmap failure
- [has patch, requested documentation update]
-
=== other/x86 ==========================================================
=== other/mips =========================================================
+370028 Reduce the number of compiler warnings on MIPS platforms
+
=== other/ppc ==========================================================
365208 valgrind stuck after redirecting "memcpy"
@@ -311,8 +322,14 @@
368529 Android arm target link error, missing atexit and pthread_atfork
(should take patch)
+374814 VALGRIND INTERNAL ERROR: signal 11 (SIGSEGV) - exiting
+ possibly TLS related
+
=== other/arm64 ========================================================
+369723 __builtin_longjmp not supported in clang/llvm on Android arm64 target
+ Has patch
+
371439 Get coredump working on arm64
[has an incomplete patch]
@@ -366,10 +383,13 @@
(carried over)
366131 Illegal opcode in OS X 11.0 when using function getpwuid()
-369456 callgrind_control failed to find an active callgrind run.
+372772 Brew doesn't allow for Valgrind 3.12.0 installation on Sierra OSX
+ == 365327
372779 valgrind will hang
+376870 The impossible happened on Mavericks 10.9
+
=== other/Win32 ========================================================
=== other/*BSD =========================================================
@@ -400,6 +420,8 @@
=== Documentation ======================================================
+368873 Please add FreeBSD to supported OS list
+
=== Uncategorised/run ==================================================
(carried over)
@@ -412,6 +434,11 @@
(carried over)
362680 --error-exitcode not honored when file descriptor leaks are found
+374963 increase valgrind's load address to prevent mmap failure
+
+377006 valgrind/memcheck segfaults under certain kernel versions (amd64)
+ but not others.
+
=== Uncategorised/build ================================================
(carried over)
@@ -451,9 +478,7 @@
========================================================================
========================================================================
-n-i-bz major perf problems w/ stack registration + stack recycling
-other stuff to fix: annoying duplicate brk() message
-
+Mon 6 Mar 21:02:39 CET 2017
========================================================================
========================================================================
@@ -502,9 +527,6 @@
than 34255421416 bytes
[should take in after 3.13]
-
-Mon 6 Mar 21:02:39 CET 2017
-
========================================================================
========================================================================
|
|
From: <sv...@va...> - 2017-05-09 15:58:07
|
Author: petarj
Date: Tue May 9 16:57:59 2017
New Revision: 16345
Log:
mips: reduce compiler warnings
Compiler complained about
warning: implicit declaration of function ‘vgPlain_prctl’
in coregrind/m_machine.c.
Also, it complained about
warning: no previous prototype for ‘vgSysWrap_mips_linux_sys_ptrace_before’
[-Wmissing-prototypes]
warning: no previous prototype for ‘vgSysWrap_mips_linux_sys_ptrace_after’
[-Wmissing-prototypes]
in coregrind/m_syswrap/syswrap-mips32-linux.c
This change fixes those issues.
Modified:
trunk/coregrind/m_machine.c
trunk/coregrind/m_syswrap/syswrap-mips32-linux.c
Modified: trunk/coregrind/m_machine.c
==============================================================================
--- trunk/coregrind/m_machine.c (original)
+++ trunk/coregrind/m_machine.c Tue May 9 16:57:59 2017
@@ -34,6 +34,7 @@
#include "pub_core_libcbase.h"
#include "pub_core_libcfile.h"
#include "pub_core_libcprint.h"
+#include "pub_core_libcproc.h"
#include "pub_core_mallocfree.h"
#include "pub_core_machine.h"
#include "pub_core_cpuid.h"
@@ -1675,7 +1676,7 @@
}
# if defined(VGP_mips32_linux)
- Int fpmode = VG_(prctl)(VKI_PR_GET_FP_MODE);
+ Int fpmode = VG_(prctl)(VKI_PR_GET_FP_MODE, 0, 0, 0, 0);
# else
Int fpmode = -1;
# endif
Modified: trunk/coregrind/m_syswrap/syswrap-mips32-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-mips32-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-mips32-linux.c Tue May 9 16:57:59 2017
@@ -411,6 +411,7 @@
DECL_TEMPLATE (mips_linux, sys_set_thread_area);
DECL_TEMPLATE (mips_linux, sys_pipe);
DECL_TEMPLATE (mips_linux, sys_prctl);
+DECL_TEMPLATE (mips_linux, sys_ptrace);
PRE(sys_mmap2)
{
|
|
From: <sv...@va...> - 2017-05-09 05:13:48
|
Author: bart
Date: Tue May 9 06:13:40 2017
New Revision: 16344
Log:
drd/tests/Makefile.am: Add dlopen.stdout.exp to EXTRA_DIST
Modified:
trunk/drd/tests/Makefile.am
Modified: trunk/drd/tests/Makefile.am
==============================================================================
--- trunk/drd/tests/Makefile.am (original)
+++ trunk/drd/tests/Makefile.am Tue May 9 06:13:40 2017
@@ -103,8 +103,9 @@
custom_alloc.vgtest \
custom_alloc_fiw.stderr.exp \
custom_alloc_fiw.vgtest \
- dlopen.stderr.exp \
- dlopen.vgtest \
+ dlopen.stderr.exp \
+ dlopen.stdout.exp \
+ dlopen.vgtest \
fp_race.stderr.exp \
fp_race.stderr.exp-mips32-be \
fp_race.stderr.exp-mips32-le \
|
|
From: Ivo R. <iv...@iv...> - 2017-05-09 05:04:29
|
The following patch: https://bugsfiles.kde.org/attachment.cgi?id=105406 is ready to land. Any comments? It has been tested on mips32/64-linux, amd64-linux, and sparc64-linux. I. |
|
From: <sv...@va...> - 2017-05-09 04:46:28
|
Author: bart
Date: Tue May 9 05:46:20 2017
New Revision: 16343
Log:
drd/tests: Add the "dlopen" test program
Added:
trunk/drd/tests/dlopen.stderr.exp
trunk/drd/tests/dlopen.stdout.exp
trunk/drd/tests/dlopen.vgtest
trunk/drd/tests/dlopen_lib.c
trunk/drd/tests/dlopen_lib.h
trunk/drd/tests/dlopen_main.c
Modified:
trunk/drd/tests/Makefile.am
Modified: trunk/drd/tests/Makefile.am
==============================================================================
--- trunk/drd/tests/Makefile.am (original)
+++ trunk/drd/tests/Makefile.am Tue May 9 05:46:20 2017
@@ -103,6 +103,8 @@
custom_alloc.vgtest \
custom_alloc_fiw.stderr.exp \
custom_alloc_fiw.vgtest \
+ dlopen.stderr.exp \
+ dlopen.vgtest \
fp_race.stderr.exp \
fp_race.stderr.exp-mips32-be \
fp_race.stderr.exp-mips32-le \
@@ -361,6 +363,8 @@
bug-235681 \
custom_alloc \
concurrent_close \
+ dlopen_main \
+ dlopen_lib.so \
fp_race \
free_is_write \
hold_lock \
@@ -455,6 +459,10 @@
concurrent_close_SOURCES = concurrent_close.cpp
+dlopen_main_LDADD = -ldl
+dlopen_lib_so_SOURCES = dlopen_lib.c
+dlopen_lib_so_CFLAGS = -fPIC
+dlopen_lib_so_LDFLAGS = -shared -fPIC
monitor_example_SOURCES = monitor_example.cpp
new_delete_SOURCES = new_delete.cpp
new_delete_CXXFLAGS = $(AM_CXXFLAGS) @FLAG_W_NO_MISMATCHED_NEW_DELETE@
Added: trunk/drd/tests/dlopen.stderr.exp
==============================================================================
--- trunk/drd/tests/dlopen.stderr.exp (added)
+++ trunk/drd/tests/dlopen.stderr.exp Tue May 9 05:46:20 2017
@@ -0,0 +1,3 @@
+
+
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/dlopen.stdout.exp
==============================================================================
--- trunk/drd/tests/dlopen.stdout.exp (added)
+++ trunk/drd/tests/dlopen.stdout.exp Tue May 9 05:46:20 2017
@@ -0,0 +1,2 @@
+In main: creating thread 1
+Hello World! It's me, thread #1!
Added: trunk/drd/tests/dlopen.vgtest
==============================================================================
--- trunk/drd/tests/dlopen.vgtest (added)
+++ trunk/drd/tests/dlopen.vgtest Tue May 9 05:46:20 2017
@@ -0,0 +1,4 @@
+prereq: test -e dlopen_main && ./supported_libpthread
+vgopts: --read-var-info=yes --check-stack-var=yes --show-confl-seg=no
+prog: dlopen_main ./dlopen_lib.so
+stderr_filter: filter_stderr
Added: trunk/drd/tests/dlopen_lib.c
==============================================================================
--- trunk/drd/tests/dlopen_lib.c (added)
+++ trunk/drd/tests/dlopen_lib.c Tue May 9 05:46:20 2017
@@ -0,0 +1,27 @@
+#include <stdio.h>
+#include <stdint.h>
+#include <pthread.h>
+#include "dlopen_lib.h"
+
+void *PrintHello(void *threadid)
+{
+ const long tid = (uintptr_t)threadid;
+
+ printf("Hello World! It's me, thread #%ld!\n", tid);
+ pthread_exit(NULL);
+}
+
+
+void foo()
+{
+ pthread_t thread;
+ int rc;
+ uintptr_t t = 1;
+
+ printf("In main: creating thread %ld\n", t);
+ rc = pthread_create(&thread, NULL, PrintHello, (void *)t);
+ if (rc)
+ printf("ERROR; return code from pthread_create() is %d\n", rc);
+ else
+ pthread_join(thread, NULL);
+}
Added: trunk/drd/tests/dlopen_lib.h
==============================================================================
--- trunk/drd/tests/dlopen_lib.h (added)
+++ trunk/drd/tests/dlopen_lib.h Tue May 9 05:46:20 2017
@@ -0,0 +1 @@
+extern void foo();
Added: trunk/drd/tests/dlopen_main.c
==============================================================================
--- trunk/drd/tests/dlopen_main.c (added)
+++ trunk/drd/tests/dlopen_main.c Tue May 9 05:46:20 2017
@@ -0,0 +1,29 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <dlfcn.h>
+#include "dlopen_lib.h"
+
+int main(int argc, char **argv)
+{
+ const char *lib = argc > 1 ? argv[1] : "./libfoo.so";
+ void *handle;
+ void (*function)();
+ const char *error;
+
+ handle = dlopen(lib, RTLD_NOW);
+ if (!handle) {
+ fputs (dlerror(), stderr);
+ exit(1);
+ }
+
+ function = dlsym(handle, "foo");
+ error = dlerror();
+ if (error) {
+ fputs(error, stderr);
+ exit(1);
+ }
+
+ (*function)();
+ dlclose(handle);
+ return 0;
+}
|
|
From: <sv...@va...> - 2017-05-09 04:45:37
|
Author: bart
Date: Tue May 9 05:45:30 2017
New Revision: 16342
Log:
drd: Add support for calling pthread_create() from inside a shared library - bug #356374
Modified:
trunk/NEWS
trunk/drd/drd_pthread_intercepts.c
trunk/drd/drd_thread.c
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Tue May 9 05:45:30 2017
@@ -172,6 +172,7 @@
379390 unhandled syscall: mach:70 (host_create_mach_voucher_trap)
379473 MIPS: add support for rdhwr cycle counter register
379504 remove TileGX/Linux port
+356374 Assertion 'DRD_(g_threadinfo)[tid].pt_threadid != INVALID_POSIX_THREADID' failed
Release 3.12.0 (20 October 2016)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modified: trunk/drd/drd_pthread_intercepts.c
==============================================================================
--- trunk/drd/drd_pthread_intercepts.c (original)
+++ trunk/drd/drd_pthread_intercepts.c Tue May 9 05:45:30 2017
@@ -556,6 +556,14 @@
assert(thread_args.detachstate == PTHREAD_CREATE_JOINABLE
|| thread_args.detachstate == PTHREAD_CREATE_DETACHED);
+ /*
+ * The DRD_(set_pthread_id)() from DRD_(init)() may encounter that
+ * pthread_self() == 0, e.g. when the main program is not linked with the
+ * pthread library and when a pthread_create() call occurs from within a
+ * shared library. Hence call DRD_(set_pthread_id)() again to ensure that
+ * DRD knows the identity of the current thread. See also B.Z. 356374.
+ */
+ DRD_(set_pthread_id)();
DRD_(entering_pthread_create)();
CALL_FN_W_WWWW(ret, fn, thread, attr, DRD_(thread_wrapper), &thread_args);
DRD_(left_pthread_create)();
Modified: trunk/drd/drd_thread.c
==============================================================================
--- trunk/drd/drd_thread.c (original)
+++ trunk/drd/drd_thread.c Tue May 9 05:45:30 2017
@@ -602,8 +602,8 @@
/**
* Store the POSIX thread ID for the specified thread.
*
- * @note This function can be called two times for the same thread -- see also
- * the comment block preceding the pthread_create() wrapper in
+ * @note This function can be called multiple times for the same thread -- see
+ * also the comment block preceding the pthread_create() wrapper in
* drd_pthread_intercepts.c.
*/
void DRD_(thread_set_pthreadid)(const DrdThreadId tid, const PThreadId ptid)
@@ -613,6 +613,10 @@
tl_assert(DRD_(g_threadinfo)[tid].pt_threadid == INVALID_POSIX_THREADID
|| DRD_(g_threadinfo)[tid].pt_threadid == ptid);
tl_assert(ptid != INVALID_POSIX_THREADID);
+ if (DRD_(g_threadinfo)[tid].posix_thread_exists) {
+ tl_assert(DRD_(g_threadinfo)[tid].pt_threadid == ptid);
+ return;
+ }
DRD_(g_threadinfo)[tid].posix_thread_exists = True;
DRD_(g_threadinfo)[tid].pt_threadid = ptid;
|
|
From: <sv...@va...> - 2017-05-09 04:44:36
|
Author: bart
Date: Tue May 9 05:44:25 2017
New Revision: 16341
Log:
drd: Rename a function
Modified:
trunk/drd/drd_pthread_intercepts.c
Modified: trunk/drd/drd_pthread_intercepts.c
==============================================================================
--- trunk/drd/drd_pthread_intercepts.c (original)
+++ trunk/drd/drd_pthread_intercepts.c Tue May 9 05:44:25 2017
@@ -228,7 +228,7 @@
static void DRD_(init)(void) __attribute__((constructor));
static void DRD_(check_threading_library)(void);
-static void DRD_(set_main_thread_state)(void);
+static void DRD_(set_pthread_id)(void);
static void DRD_(sema_init)(DrdSema* sema);
static void DRD_(sema_destroy)(DrdSema* sema);
static void DRD_(sema_down)(DrdSema* sema);
@@ -250,7 +250,7 @@
static void DRD_(init)(void)
{
DRD_(check_threading_library)();
- DRD_(set_main_thread_state)();
+ DRD_(set_pthread_id)();
#if defined(VGO_solaris)
if ((DRD_(rtld_bind_guard) == NULL) || (DRD_(rtld_bind_clear) == NULL)) {
fprintf(stderr,
@@ -501,12 +501,10 @@
}
/**
- * The main thread is the only thread not created by pthread_create().
- * Update DRD's state information about the main thread.
+ * Update DRD's state information about the current thread.
*/
-static void DRD_(set_main_thread_state)(void)
+static void DRD_(set_pthread_id)(void)
{
- // Make sure that DRD knows about the main thread's POSIX thread ID.
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__SET_PTHREADID,
pthread_self(), 0, 0, 0, 0);
}
|