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
(8) |
2
(11) |
3
(21) |
4
(15) |
5
(10) |
|
6
(7) |
7
(7) |
8
(5) |
9
(7) |
10
(5) |
11
(1) |
12
(21) |
|
13
(8) |
14
(17) |
15
(6) |
16
(10) |
17
(7) |
18
(6) |
19
(15) |
|
20
(12) |
21
(16) |
22
(25) |
23
(14) |
24
(10) |
25
(7) |
26
(6) |
|
27
(34) |
28
(13) |
29
(10) |
30
(8) |
|
|
|
|
From: Bob F. <bfr...@si...> - 2004-06-03 23:29:51
|
On Fri, 4 Jun 2004, Tom Hughes wrote: >> The application code executed is: >> >> struct sigevent event; >> memset( &event, 0, sizeof( struct sigevent ) ); >> event.sigev_notify = SIGEV_THREAD; >> event.sigev_notify_function = &timer_thread_handler; >> event.sigev_value.sival_ptr = this; >> timer_create( CLOCK_REALTIME, &event, &timer_id ); >> >> where timer_thread_handler is a function, and timer_id is part of the >> enclosing C++ class. > > If timer_create is really a system call then how is that function > getting invoked - does the kernel invoke it asynchronously like a > signal handler? If so then addding support for that system is going > to be non-trivial and won't be as simple as adding a wrapper for > the call to vg_syscalls.c as you will have to teach valgrind how > to catch and emulate the callback. I agree that SIGEV_THREAD support requires some sort of participation from the thread library. However as I mentioned before, the timer callback thread doesn't ever get invoked with this kernel & threads implementation. To make matters more complicated, we are using the LFS threads implementation. I do know that signal-based notification does work. I'll go spelunking into the timer implementation to see how it works. Bob ====================================== Bob Friesenhahn bfr...@si... http://www.simplesystems.org/users/bfriesen |
|
From: Tom H. <th...@cy...> - 2004-06-03 23:19:54
|
In message <Pin...@sc...>
Bob Friesenhahn <bfr...@si...> wrote:
> You are correct. Now that I am on the list, I will know about those
> commits. I did another 'cvs update' and now the assertion is gone.
> There is a new error dump now:
>
> ==25335== Process terminating with default action of signal 11 (SIGSEGV): dumping core
> ==25335== Access not within mapped region at address 0x4A
> ==25335== at 0x3C075AA9: (within /lib/librt-2.3.3.so)
> ==25335== by 0x3C8A240D: pthread_once (vg_libpthread.c:1709)
> ==25335== by 0x3C075228: timer_create (in /lib/librt-2.3.3.so)
> ==25335== by 0x808A323: CTimeBox::CreateTimer() (TimeBox.cc:74)
> ==25335== by 0x808B209: CTimeBox::CTimeBox(char*) (TimeBox.cc:126)
> ==25335== by 0x809241B: InitializeFunct() (basefuncts.cc:548)
> ==25335== by 0x809F2EE: main (guiMain.cc:218)
> --25335-- INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting
> --25335-- si_code=1 Fault EIP: 0xB802FA3A; Faulting address: 0x2E322D73
Well line 1709 in vg_libpthread.c is the call to the supplied
initialisation routine which is why it has called back into librt
so the question is going to be what is librt doing trying to
access that address - it looks like a very bogus address.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Tom H. <th...@cy...> - 2004-06-03 23:17:26
|
In message <Pin...@sc...>
Bob Friesenhahn <bfr...@si...> wrote:
> This crash does not occur without valgrind, however, it is quite
> possible that the related librt/application code is indeed faulty
> since the timer notify method the code is using (SIGEV_THREAD) has not
> been observed (by me) to be working in this kernel.
>
> The application code executed is:
>
> struct sigevent event;
> memset( &event, 0, sizeof( struct sigevent ) );
> event.sigev_notify = SIGEV_THREAD;
> event.sigev_notify_function = &timer_thread_handler;
> event.sigev_value.sival_ptr = this;
> timer_create( CLOCK_REALTIME, &event, &timer_id );
>
> where timer_thread_handler is a function, and timer_id is part of the
> enclosing C++ class.
If timer_create is really a system call then how is that function
getting invoked - does the kernel invoke it asynchronously like a
signal handler? If so then addding support for that system is going
to be non-trivial and won't be as simple as adding a wrapper for
the call to vg_syscalls.c as you will have to teach valgrind how
to catch and emulate the callback.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Bob F. <bfr...@si...> - 2004-06-03 23:16:44
|
On Thu, 3 Jun 2004, Tom Hughes wrote:
> In message <Pin...@sc...>
> Bob Friesenhahn <bfr...@si...> wrote:
>
>> SYSCALL[22411,1](174) special:sigaction ( 17, 0x4FFFE684, 0x0 )
>>
>> valgrind: vg_signals.c:444 (vgPlain_handle_SCSS_change): Assertion `ksa_old.ksa_restorer == ((void *)0)' failed.
>
> That looks like the bug that Jeremy introduced this morning but it
> should be fixed now.
You are correct. Now that I am on the list, I will know about those
commits. I did another 'cvs update' and now the assertion is gone.
There is a new error dump now:
==25335== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==25335== Access not within mapped region at address 0x4A
==25335== at 0x3C075AA9: (within /lib/librt-2.3.3.so)
==25335== by 0x3C8A240D: pthread_once (vg_libpthread.c:1709)
==25335== by 0x3C075228: timer_create (in /lib/librt-2.3.3.so)
==25335== by 0x808A323: CTimeBox::CreateTimer() (TimeBox.cc:74)
==25335== by 0x808B209: CTimeBox::CTimeBox(char*) (TimeBox.cc:126)
==25335== by 0x809241B: InitializeFunct() (basefuncts.cc:548)
==25335== by 0x809F2EE: main (guiMain.cc:218)
--25335-- INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting
--25335-- si_code=1 Fault EIP: 0xB802FA3A; Faulting address: 0x2E322D73
valgrind: the `impossible' happened:
Killed by fatal signal
Basic block ctr is approximately 77607320
==25335== at 0xB803047C: vgPlain_core_panic (vg_mylibc.c:1230)
==25335== by 0xB803047B: panic (vg_mylibc.c:1226)
==25335== by 0xB803049C: vgPlain_core_panic (vg_mylibc.c:1231)
==25335== by 0xB8037BB4: vg_sync_signalhandler (vg_signals.c:2225)
==25335== by 0xB804D7E1: (within /usr/local/lib/valgrind/stage2)
======================================
Bob Friesenhahn
bfr...@si...
http://www.simplesystems.org/users/bfriesen
|
|
From: Bob F. <bfr...@si...> - 2004-06-03 22:59:16
|
As a followup, if I create a patch containing my updates and apply it
to the released 2.1.1 sources, valgrind gets a lot further through
execution of the program. This implies that the abort I encountered
with the CVS version is peculiar to the CVS version:
--24414-- sys_wait_results: got PX_SetSigmask for TID 2
==24414==
==24414== Invalid read of size 4
==24414== at 0x3C074AA9: (within /lib/librt-2.3.3.so)
==24414== by 0x3C8A200B: pthread_once (vg_libpthread.c:1730)
==24414== by 0x3C074228: timer_create (in /lib/librt-2.3.3.so)
==24414== by 0x808A323: CTimeBox::CreateTimer() (TimeBox.cc:74)
==24414== by 0x808B209: CTimeBox::CTimeBox(char*) (TimeBox.cc:126)
==24414== by 0x809241B: InitializeFunct() (basefuncts.cc:548)
==24414== by 0x809F2EE: main (guiMain.cc:218)
==24414== Address 0x4A is not stack'd, malloc'd or free'd
==24414==
==24414== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==24414== Access not within mapped region at address 0x4A
==24414== at 0x3C074AA9: (within /lib/librt-2.3.3.so)
==24414== by 0x3C8A200B: pthread_once (vg_libpthread.c:1730)
==24414== by 0x3C074228: timer_create (in /lib/librt-2.3.3.so)
==24414== by 0x808A323: CTimeBox::CreateTimer() (TimeBox.cc:74)
==24414== by 0x808B209: CTimeBox::CTimeBox(char*) (TimeBox.cc:126)
==24414== by 0x809241B: InitializeFunct() (basefuncts.cc:548)
==24414== by 0x809F2EE: main (guiMain.cc:218)
This crash does not occur without valgrind, however, it is quite
possible that the related librt/application code is indeed faulty
since the timer notify method the code is using (SIGEV_THREAD) has not
been observed (by me) to be working in this kernel.
The application code executed is:
struct sigevent event;
memset( &event, 0, sizeof( struct sigevent ) );
event.sigev_notify = SIGEV_THREAD;
event.sigev_notify_function = &timer_thread_handler;
event.sigev_value.sival_ptr = this;
timer_create( CLOCK_REALTIME, &event, &timer_id );
where timer_thread_handler is a function, and timer_id is part of the
enclosing C++ class.
Bob
======================================
Bob Friesenhahn
bfr...@si...
http://www.simplesystems.org/users/bfriesen
|
|
From: Tom H. <th...@cy...> - 2004-06-03 22:50:25
|
In message <Pin...@sc...>
Bob Friesenhahn <bfr...@si...> wrote:
> SYSCALL[22411,1](174) special:sigaction ( 17, 0x4FFFE684, 0x0 )
>
> valgrind: vg_signals.c:444 (vgPlain_handle_SCSS_change): Assertion `ksa_old.ksa_restorer == ((void *)0)' failed.
That looks like the bug that Jeremy introduced this morning but it
should be fixed now.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Tom H. <th...@cy...> - 2004-06-03 22:49:49
|
In message <1086300319.892.6.camel@localhost.localdomain>
Jeremy Fitzhardinge <je...@go...> wrote:
> On Thu, 2004-06-03 at 20:00 +0200, Tom Hughes wrote:
>
> > Changed cancellation wrappers to use dlsym(RTLD_NEXT) to look up the
> > libc version of the wrapped function when forwarding the call rather
> > than trying to call the internal __libc_xxx version of the routine
> > as many of those are marked as GLIBC_PRIVATE in recent releases.
>
> Will this work if libc is stripped?
You can't strip the dynamic symbol table from a shared library if
you want it to actually work... Note that it isn't the __libc_xxx
functions I'm forwarding to, it's the original names that are being
overridden by the pthread library.
The only thing I'm not sure about is statically linked programs
but I'm not sure you can statically link a multithreaded program.
> I was just working on an alternative fix for this by having private
> versions of the __libc_ functions, at least for syscalls.
The problem is that even the ones that appear to be simple system
call wrappers aren't always - witness the fcntl issue where it
sometimes calls the fcntl64 system call instead.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Bob F. <bfr...@si...> - 2004-06-03 22:37:53
|
Released and CVS valgrind lack support for the relative new system calls timer_create, timer_settime, timer_gettime, timer_getoverrun, and timer_delete. These exist in Gentoo kernel 2.6.3. Quick question before I continue, is there a rule for the apparently random ordering of entries in the sys_info[] array? What order should functions be listed in? Starting with the latest CVS, I have added support for these calls. Unfortunately, I am seeing an assertion, and I don't think it is due to my updates. I ran valgrind on a relatively simple program which uses all the timer_* calls, and no problems were encountered. With a much more complex GUI program, I encounter this assertion: SYSCALL[22411,1]( 6):close ( 4 ) SYSCALL[22411,1]( 91):munmap ( 0x3C05B000, 4096 ) SYSCALL[22411,1](174) special:sigaction ( 17, 0x4FFFE684, 0x0 ) valgrind: vg_signals.c:444 (vgPlain_handle_SCSS_change): Assertion `ksa_old.ksa_restorer == ((void *)0)' failed. ==22411== at 0xB80303C4: vgPlain_skin_assert_fail (vg_mylibc.c:1211) ==22411== by 0xB80303C3: assert_fail (vg_mylibc.c:1207) ==22411== by 0xB8030431: vgPlain_core_assert_fail (vg_mylibc.c:1218) ==22411== by 0xB8034B1A: vgPlain_handle_SCSS_change (vg_signals.c:447) ==22411== by 0xB8034EBF: vgPlain_do__NR_sigaction (vg_signals.c:588) ==22411== by 0xB804CF28: before_rt_sigaction (vg_syscalls.c:5175) ==22411== by 0xB804D3D9: vgPlain_pre_syscall (vg_syscalls.c:5594) ==22411== by 0xB800DFBE: sched_do_syscall (vg_scheduler.c:721) ==22411== by 0xB800E728: vgPlain_scheduler (vg_scheduler.c:1154) ==22411== by 0xB802AA09: main (vg_main.c:3038) sched status: Thread 1: status = Runnable, associated_mx = 0x0, associated_cv = 0x0 ==22411== at 0x3C000B12: (within /lib/ld-2.3.3.so) ==22411== by 0x3C8A3B09: sigaction (vg_libpthread.c:2066) ==22411== by 0x80B42AC: sigchld_handler_init() (qnx4helper.cc:158) ==22411== by 0x809F1AD: main (guiMain.cc:158 Any ideas? Bob ====================================== Bob Friesenhahn bfr...@si... http://www.simplesystems.org/users/bfriesen |
|
From: Jeremy F. <je...@go...> - 2004-06-03 22:08:34
|
On Thu, 2004-06-03 at 20:00 +0200, Tom Hughes wrote: > CVS commit by thughes: > > Changed cancellation wrappers to use dlsym(RTLD_NEXT) to look up the > libc version of the wrapped function when forwarding the call rather > than trying to call the internal __libc_xxx version of the routine > as many of those are marked as GLIBC_PRIVATE in recent releases. Will this work if libc is stripped? I was just working on an alternative fix for this by having private versions of the __libc_ functions, at least for syscalls. J |
|
From: Tom H. <th...@cy...> - 2004-06-03 18:42:40
|
CVS commit by thughes:
Add an extra suppression for Fedora Core 2/glibc 2.3.3 systems.
M +6 -0 glibc-2.3.supp 1.14
--- valgrind/glibc-2.3.supp #1.13:1.14
@@ -122,4 +122,10 @@
fun:dl_main
}
+{
+ _dl_relocate_object/dl_open_worker
+ Memcheck:Cond
+ fun:_dl_relocate_object
+ fun:dl_open_worker
+}
#-------- Data races
|
|
From: Tom H. <th...@cy...> - 2004-06-03 18:01:13
|
CVS commit by thughes:
Changed cancellation wrappers to use dlsym(RTLD_NEXT) to look up the
libc version of the wrapped function when forwarding the call rather
than trying to call the internal __libc_xxx version of the routine
as many of those are marked as GLIBC_PRIVATE in recent releases.
CCMAIL: 820...@bu...
M +114 -116 vg_libpthread.c 1.152
--- valgrind/coregrind/vg_libpthread.c #1.151:1.152
@@ -2043,17 +2043,19 @@ void ** (*__libc_internal_tsd_address)
------------------------------------------------------------------ */
-#ifdef GLIBC_2_1
-extern
-int __sigaction
- (int signum,
- const struct sigaction *act,
- struct sigaction *oldact);
-#else
-extern
-int __libc_sigaction
+#define FORWARD(name, args...) \
+ ({ \
+ static name##_t name##_ptr = NULL; \
+ if (name##_ptr == NULL) { \
+ name##_ptr = (name##_t)dlsym(RTLD_NEXT, #name); \
+ my_assert(name##_ptr != NULL); \
+ } \
+ name##_ptr(args); \
+ })
+
+typedef
+int (*sigaction_t)
(int signum,
const struct sigaction *act,
struct sigaction *oldact);
-#endif
int sigaction(int signum,
const struct sigaction *act,
@@ -2061,23 +2063,19 @@ int sigaction(int signum,
{
__my_pthread_testcancel();
-# ifdef GLIBC_2_1
- return __sigaction(signum, act, oldact);
-# else
- return __libc_sigaction(signum, act, oldact);
-# endif
+ return FORWARD(sigaction, signum, act, oldact);
}
-extern
-int __libc_accept(int fd, struct sockaddr *addr, socklen_t *len);
+typedef
+int (*__accept_t)(int fd, struct sockaddr *addr, socklen_t *len);
WEAK int __accept(int fd, struct sockaddr *addr, socklen_t *len)
{
__my_pthread_testcancel();
- return __libc_accept(fd, addr, len);
+ return FORWARD(__accept, fd, addr, len);
}
strong_alias(__accept, accept);
-extern
-int __libc_connect(int sockfd,
+typedef
+int (*connect_t)(int sockfd,
const struct sockaddr *serv_addr,
socklen_t addrlen);
@@ -2088,134 +2086,134 @@ int connect(int sockfd,
{
__my_pthread_testcancel();
- return __libc_connect(sockfd, serv_addr, addrlen);
+ return FORWARD(connect, sockfd, serv_addr, addrlen);
}
-extern
-int __libc_fcntl(int fd, int cmd, long arg);
+typedef
+int (*fcntl_t)(int fd, int cmd, long arg);
WEAK
int fcntl(int fd, int cmd, long arg)
{
__my_pthread_testcancel();
- return __libc_fcntl(fd, cmd, arg);
+ return FORWARD(fcntl, fd, cmd, arg);
}
-extern
-ssize_t __libc_write(int fd, const void *buf, size_t count);
+typedef
+ssize_t (*write_t)(int fd, const void *buf, size_t count);
WEAK
ssize_t write(int fd, const void *buf, size_t count)
{
__my_pthread_testcancel();
- return __libc_write(fd, buf, count);
+ return FORWARD(write, fd, buf, count);
}
-extern
-ssize_t __libc_read(int fd, void *buf, size_t count);
+typedef
+ssize_t (*read_t)(int fd, void *buf, size_t count);
WEAK
ssize_t read(int fd, void *buf, size_t count)
{
__my_pthread_testcancel();
- return __libc_read(fd, buf, count);
+ return FORWARD(read, fd, buf, count);
}
-extern
-int __libc_open64(const char *pathname, int flags, mode_t mode);
+typedef
+int (*open64_t)(const char *pathname, int flags, mode_t mode);
/* WEAK */
int open64(const char *pathname, int flags, mode_t mode)
{
- return __libc_open64(pathname, flags, mode);
+ return FORWARD(open64, pathname, flags, mode);
}
-extern
-int __libc_open(const char *pathname, int flags, mode_t mode);
+typedef
+int (*open_t)(const char *pathname, int flags, mode_t mode);
/* WEAK */
int open(const char *pathname, int flags, mode_t mode)
{
- return __libc_open(pathname, flags, mode);
+ return FORWARD(open, pathname, flags, mode);
}
-extern
-int __libc_close(int fd);
+typedef
+int (*close_t)(int fd);
WEAK
int close(int fd)
{
__my_pthread_testcancel();
- return __libc_close(fd);
+ return FORWARD(close, fd);
}
-extern
-pid_t __libc_waitpid(pid_t pid, int *status, int options);
+typedef
+pid_t (*waitpid_t)(pid_t pid, int *status, int options);
WEAK
pid_t waitpid(pid_t pid, int *status, int options)
{
__my_pthread_testcancel();
- return __libc_waitpid(pid, status, options);
+ return FORWARD(waitpid, pid, status, options);
}
-extern
-int __libc_nanosleep(const struct timespec *req, struct timespec *rem);
+typedef
+int (*nanosleep_t)(const struct timespec *req, struct timespec *rem);
WEAK
int __nanosleep(const struct timespec *req, struct timespec *rem)
{
__my_pthread_testcancel();
- return __libc_nanosleep(req, rem);
+ return FORWARD(nanosleep, req, rem);
}
-extern
-int __libc_pause(void);
+typedef
+int (*pause_t)(void);
WEAK
int __pause(void)
{
__my_pthread_testcancel();
- return __libc_pause();
+ return FORWARD(pause);
}
-extern
-int __libc_tcdrain(int fd);
+typedef
+int (*tcdrain_t)(int fd);
WEAK
int __tcdrain(int fd)
{
__my_pthread_testcancel();
- return __libc_tcdrain(fd);
+ return FORWARD(tcdrain, fd);
}
-extern
-int __libc_fsync(int fd);
+typedef
+int (*fsync_t)(int fd);
WEAK
int fsync(int fd)
{
__my_pthread_testcancel();
- return __libc_fsync(fd);
+ return FORWARD(fsync, fd);
}
-extern
-off_t __libc_lseek(int fildes, off_t offset, int whence);
+typedef
+off_t (*lseek_t)(int fildes, off_t offset, int whence);
WEAK
off_t lseek(int fildes, off_t offset, int whence)
{
__my_pthread_testcancel();
- return __libc_lseek(fildes, offset, whence);
+ return FORWARD(lseek, fildes, offset, whence);
}
-extern
-__off64_t __libc_lseek64(int fildes, __off64_t offset, int whence);
+typedef
+__off64_t (*lseek64_t)(int fildes, __off64_t offset, int whence);
WEAK
__off64_t lseek64(int fildes, __off64_t offset, int whence)
{
__my_pthread_testcancel();
- return __libc_lseek64(fildes, offset, whence);
+ return FORWARD(lseek64, fildes, offset, whence);
}
-extern
-ssize_t __libc_pread64 (int __fd, void *__buf, size_t __nbytes,
+typedef
+ssize_t (*__pread64_t) (int __fd, void *__buf, size_t __nbytes,
__off64_t __offset);
ssize_t __pread64 (int __fd, void *__buf, size_t __nbytes,
@@ -2223,10 +2221,10 @@ ssize_t __pread64 (int __fd, void *__buf
{
__my_pthread_testcancel();
- return __libc_pread64(__fd, __buf, __nbytes, __offset);
+ return FORWARD(__pread64, __fd, __buf, __nbytes, __offset);
}
-extern
-ssize_t __libc_pwrite64 (int __fd, const void *__buf, size_t __nbytes,
+typedef
+ssize_t (*__pwrite64_t) (int __fd, const void *__buf, size_t __nbytes,
__off64_t __offset);
ssize_t __pwrite64 (int __fd, const void *__buf, size_t __nbytes,
@@ -2234,68 +2232,68 @@ ssize_t __pwrite64 (int __fd, const void
{
__my_pthread_testcancel();
- return __libc_pwrite64(__fd, __buf, __nbytes, __offset);
+ return FORWARD(__pwrite64, __fd, __buf, __nbytes, __offset);
}
-extern
-ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset);
+typedef
+ssize_t (*pwrite_t)(int fd, const void *buf, size_t count, off_t offset);
WEAK
ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset)
{
__my_pthread_testcancel();
- return __libc_pwrite(fd, buf, count, offset);
+ return FORWARD(pwrite, fd, buf, count, offset);
}
-extern
-ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset);
+typedef
+ssize_t (*pread_t)(int fd, void *buf, size_t count, off_t offset);
WEAK
ssize_t pread(int fd, void *buf, size_t count, off_t offset)
{
__my_pthread_testcancel();
- return __libc_pread(fd, buf, count, offset);
+ return FORWARD(pread, fd, buf, count, offset);
}
-extern
-int __libc_recv(int s, void *msg, size_t len, int flags);
+typedef
+int (*recv_t)(int s, void *msg, size_t len, int flags);
WEAK
int recv(int s, void *msg, size_t len, int flags)
{
__my_pthread_testcancel();
- return __libc_recv(s, msg, len, flags);
+ return FORWARD(recv, s, msg, len, flags);
}
-extern
-int __libc_send(int s, const void *msg, size_t len, int flags);
+typedef
+int (*send_t)(int s, const void *msg, size_t len, int flags);
WEAK
int send(int s, const void *msg, size_t len, int flags)
{
__my_pthread_testcancel();
- return __libc_send(s, msg, len, flags);
+ return FORWARD(send, s, msg, len, flags);
}
-extern
-int __libc_sendmsg(int s, const struct msghdr *msg, int flags);
+typedef
+int (*sendmsg_t)(int s, const struct msghdr *msg, int flags);
WEAK
int sendmsg(int s, const struct msghdr *msg, int flags)
{
__my_pthread_testcancel();
- return __libc_sendmsg(s, msg, flags);
+ return FORWARD(sendmsg, s, msg, flags);
}
-extern
-int __libc_recvmsg(int s, struct msghdr *msg, int flags);
+typedef
+int (*recvmsg_t)(int s, struct msghdr *msg, int flags);
WEAK
int recvmsg(int s, struct msghdr *msg, int flags)
{
__my_pthread_testcancel();
- return __libc_recvmsg(s, msg, flags);
+ return FORWARD(recvmsg, s, msg, flags);
}
-extern
-int __libc_recvfrom(int s, void *buf, size_t len, int flags,
+typedef
+int (*recvfrom_t)(int s, void *buf, size_t len, int flags,
struct sockaddr *from, socklen_t *fromlen);
WEAK
@@ -2304,10 +2302,10 @@ int recvfrom(int s, void *buf, size_t le
{
__my_pthread_testcancel();
- return __libc_recvfrom(s, buf, len, flags, from, fromlen);
+ return FORWARD(recvfrom, s, buf, len, flags, from, fromlen);
}
-extern
-int __libc_sendto(int s, const void *msg, size_t len, int flags,
+typedef
+int (*sendto_t)(int s, const void *msg, size_t len, int flags,
const struct sockaddr *to, socklen_t tolen);
WEAK
@@ -2316,35 +2314,35 @@ int sendto(int s, const void *msg, size_
{
__my_pthread_testcancel();
- return __libc_sendto(s, msg, len, flags, to, tolen);
+ return FORWARD(sendto, s, msg, len, flags, to, tolen);
}
-extern
-int __libc_system(const char* str);
+typedef
+int (*system_t)(const char* str);
WEAK
int system(const char* str)
{
__my_pthread_testcancel();
- return __libc_system(str);
+ return FORWARD(system, str);
}
-extern
-pid_t __libc_wait(int *status);
+typedef
+pid_t (*wait_t)(int *status);
WEAK
pid_t wait(int *status)
{
__my_pthread_testcancel();
- return __libc_wait(status);
+ return FORWARD(wait, status);
}
-extern
-int __libc_msync(const void *start, size_t length, int flags);
+typedef
+int (*msync_t)(const void *start, size_t length, int flags);
WEAK
int msync(const void *start, size_t length, int flags)
{
__my_pthread_testcancel();
- return __libc_msync(start, length, flags);
+ return FORWARD(msync, start, length, flags);
}
@@ -2367,19 +2365,19 @@ weak_alias(__tcdrain, tcdrain)
-extern
-void __libc_longjmp(jmp_buf env, int val) __attribute((noreturn));
+typedef
+void (*longjmp_t)(jmp_buf env, int val) __attribute((noreturn));
/* not weak: WEAK */
void longjmp(jmp_buf env, int val)
{
- __libc_longjmp(env, val);
+ FORWARD(longjmp, env, val);
}
-extern void __libc_siglongjmp (sigjmp_buf env, int val)
+typedef void (*siglongjmp_t) (sigjmp_buf env, int val)
__attribute__ ((noreturn));
void siglongjmp(sigjmp_buf env, int val)
{
kludged("siglongjmp", "(it ignores cleanup handlers)");
- __libc_siglongjmp(env, val);
+ FORWARD(siglongjmp, env, val);
}
@@ -2434,6 +2432,6 @@ void run_fork_handlers ( int what )
}
-extern
-pid_t __libc_fork(void);
+typedef
+pid_t (*__fork_t)(void);
pid_t __fork(void)
{
@@ -2443,5 +2441,5 @@ pid_t __fork(void)
run_fork_handlers(0 /* prepare */);
- pid = __libc_fork();
+ pid = FORWARD(__fork);
if (pid == 0) {
/* I am the child */
|
|
From: Jeremy F. <je...@go...> - 2004-06-03 17:12:18
|
CVS commit by fitzhardinge:
Oops - fix up broken assert.
M +1 -1 vg_signals.c 1.69
--- valgrind/coregrind/vg_signals.c #1.68:1.69
@@ -442,5 +442,5 @@ void VG_(handle_SCSS_change) ( Bool forc
== skss_old.skss_per_sig[sig].skss_flags);
vg_assert(ksa_old.ksa_restorer
- == NULL);
+ == VG_(sigreturn));
VG_(ksigaddset)( &ksa_old.ksa_mask, VKI_SIGKILL );
VG_(ksigaddset)( &ksa_old.ksa_mask, VKI_SIGSTOP );
|
|
From: Nicholas N. <nj...@ca...> - 2004-06-03 10:20:43
|
On Thu, 3 Jun 2004, Jeremy Fitzhardinge wrote: > CVS commit by fitzhardinge: > > Partial fix for bug 76869. This fixes the problem with returning from > a signal handler when VDSOs are turned off in FC2. Note that we don't > (yet) support VDSOs being on (use "echo 0 > /proc/sys/kernel/vdso"). Next time, can you run the regression tests before committing? I just did, and went from no errors (pre-check in) to this: == 153 tests, 5 stderr failures, 1 stdout failure ================= corecheck/tests/sigkill (stderr) none/tests/coolo_sigaction (stdout) none/tests/coolo_sigaction (stderr) none/tests/syscall-restart1 (stderr) none/tests/syscall-restart2 (stderr) none/tests/system (stderr) All of them died with this error: valgrind: vg_signals.c:444 (vgPlain_handle_SCSS_change): Assertion `ksa_old.ksa_restorer == ((void *)0)' failed. at 0xB802A535: vgPlain_skin_assert_fail (vg_mylibc.c:1211) by 0xB802A534: assert_fail (vg_mylibc.c:1207) by 0xB802A572: vgPlain_core_assert_fail (vg_mylibc.c:1218) by 0xB802E0C3: vgPlain_handle_SCSS_change (vg_signals.c:447) sched status: Thread 1: status = Runnable, associated_mx = 0x0, associated_cv = 0x0 at 0xABFFF042: ??? by 0x4202780D: sigaction (in /lib/tls/libc-2.3.2.so) by 0x4203FA94: do_system (in /lib/tls/libc-2.3.2.so) by 0x8048344: main (system.c:8) N |
|
From: Jeremy F. <je...@go...> - 2004-06-03 10:01:30
|
CVS commit by fitzhardinge:
Partial fix for bug 76869. This fixes the problem with returning from
a signal handler when VDSOs are turned off in FC2. Note that we don't
(yet) support VDSOs being on (use "echo 0 > /proc/sys/kernel/vdso").
M +1 -0 coregrind/vg_include.h 1.191
M +5 -1 coregrind/vg_signals.c 1.68
M +5 -0 coregrind/vg_syscall.S 1.12
M +1 -1 include/vg_kerneliface.h 1.17
--- valgrind/coregrind/vg_include.h #1.190:1.191
@@ -1668,4 +1668,5 @@ extern Int VG_(do_syscall) ( UInt, ... )
extern Int VG_(clone) ( Int (*fn)(void *), void *stack, Int flags, void *arg,
Int *child_tid, Int *parent_tid);
+extern void VG_(sigreturn)(void);
/* ---------------------------------------------------------------------
--- valgrind/coregrind/vg_syscall.S #1.11:1.12
@@ -113,4 +113,9 @@
pop %ebx
ret
+
+.globl VG_(sigreturn)
+VG_(sigreturn):
+ movl $__NR_rt_sigreturn, %eax
+ int $0x80
##--------------------------------------------------------------------##
--- valgrind/coregrind/vg_signals.c #1.67:1.68
@@ -354,4 +354,7 @@ void calculate_SKSS_from_SCSS ( SKSS* ds
skss_flags |= VKI_SA_SIGINFO;
+ /* use our own restorer */
+ skss_flags |= VKI_SA_RESTORER;
+
/* Create SKSS entry for this signal. */
@@ -411,9 +414,10 @@ void VG_(handle_SCSS_change) ( Bool forc
ksa.ksa_handler = vg_skss.skss_per_sig[sig].skss_handler;
ksa.ksa_flags = vg_skss.skss_per_sig[sig].skss_flags;
+ ksa.ksa_restorer = VG_(sigreturn);
+
vg_assert(ksa.ksa_flags & VKI_SA_ONSTACK);
VG_(ksigfillset)( &ksa.ksa_mask );
VG_(ksigdelset)( &ksa.ksa_mask, VKI_SIGKILL );
VG_(ksigdelset)( &ksa.ksa_mask, VKI_SIGSTOP );
- ksa.ksa_restorer = NULL;
if (VG_(clo_trace_signals))
--- valgrind/include/vg_kerneliface.h #1.16:1.17
@@ -250,7 +250,7 @@ struct vki_ucontext {
#define VKI_SA_NOMASK VKI_SA_NODEFER
#define VKI_SA_NOCLDWAIT 0x00000002
+#define VKI_SA_RESTORER 0x04000000
#if 0
#define VKI_SA_INTERRUPT 0x20000000 /* dummy -- ignored */
-#define VKI_SA_RESTORER 0x04000000
#endif
|
|
From: <js...@ac...> - 2004-06-03 02:55:44
|
Nightly build on phoenix ( SuSE 8.2 ) started at 2004-06-03 04:00:00 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 153 tests, 12 stderr failures, 0 stdout failures ================= corecheck/tests/as_mmap (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) memcheck/tests/writev (stderr) memcheck/tests/zeropage (stderr) make: *** [regtest] Error 1 |
|
From: <js...@ac...> - 2004-06-03 02:26:22
|
Nightly build on nemesis ( SuSE 9.0 ) started at 2004-06-03 03:50:00 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 153 tests, 12 stderr failures, 0 stdout failures ================= corecheck/tests/as_mmap (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) memcheck/tests/writev (stderr) memcheck/tests/zeropage (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <to...@co...> - 2004-06-03 02:23:10
|
Nightly build on dunsmere ( Fedora Core 2 ) started at 2004-06-03 03:20:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow memcheck/tests/new_override (stdout) memcheck/tests/new_override (stderr) memcheck/tests/pth_once (stdout) memcheck/tests/sigaltstack (stderr) memcheck/tests/threadederrno (stdout) memcheck/tests/writev (stderr) none/tests/coolo_sigaction (stdout) none/tests/coolo_sigaction (stderr) none/tests/mremap (stderr) none/tests/pth_blockedsig (stdout) none/tests/pth_blockedsig (stderr) none/tests/resolv (stdout) none/tests/resolv (stderr) none/tests/seg_override (stdout) none/tests/seg_override (stderr) none/tests/shorts (stderr) none/tests/susphello (stdout) none/tests/susphello (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-06-03 02:18:15
|
Nightly build on audi ( Red Hat 9 ) started at 2004-06-03 03:15:06 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow rcrl: valgrind ./rcrl readline1: valgrind ./readline1 resolv: valgrind ./resolv seg_override: valgrind ./seg_override semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 158 tests, 1 stderr failure, 0 stdout failures ================= corecheck/tests/pth_cancel2 (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-06-03 02:13:13
|
Nightly build on ginetta ( Red Hat 8.0 ) started at 2004-06-03 03:10:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow seg_override: valgrind ./seg_override semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 158 tests, 4 stderr failures, 0 stdout failures ================= helgrind/tests/deadlock (stderr) helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) memcheck/tests/writev (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-06-03 02:08:32
|
Nightly build on standard ( Red Hat 7.2 ) started at 2004-06-03 03:00:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow rcrl: valgrind ./rcrl readline1: valgrind ./readline1 resolv: valgrind ./resolv seg_override: valgrind ./seg_override semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 158 tests, 1 stderr failure, 0 stdout failures ================= memcheck/tests/badfree-2trace (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-06-03 02:08:26
|
Nightly build on alvis ( Red Hat 7.3 ) started at 2004-06-03 03:05:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 158 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/badfree-2trace (stderr) memcheck/tests/badjump (stderr) memcheck/tests/brk (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/new_nothrow (stderr) memcheck/tests/writev (stderr) make: *** [regtest] Error 1 |