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
(32) |
2
(22) |
3
(47) |
4
(29) |
5
(18) |
6
(16) |
|
7
(21) |
8
(29) |
9
(23) |
10
(68) |
11
(20) |
12
(17) |
13
(17) |
|
14
(27) |
15
(26) |
16
(21) |
17
(13) |
18
(19) |
19
(29) |
20
(13) |
|
21
(9) |
22
(8) |
23
(29) |
24
(56) |
25
(21) |
26
(46) |
27
(33) |
|
28
(25) |
29
(41) |
30
(35) |
31
(28) |
|
|
|
|
From: Julian S. <js...@ac...> - 2005-08-09 23:25:16
|
On Wednesday 10 August 2005 00:07, Tom Hughes wrote: > In message <200...@ac...> > > Julian Seward <js...@ac...> wrote: > > >> Solaris 10 doesn't allow static executables. The > > > > > > reasons they give are here > > > > Euh, that sucks, but it doesn't surprise me. There just > > doesn't seem to be a portable way of making an executable > > _and_ all the shared objects it depends on be loaded in > > an out-of-the way place. > > Is there much difference between statically and dynamically linked > executables which don't reference any libraries though? Well ... one would hope not. But it's a bit like Russian Roulette. If for any reason the dynamic loader decides to map in any .so at all, then we are screwed. It might be OK on Linux, but who knows what the Solaris/NetBSD/MacOSX/whatever loader is going to do. > Sure the dynamic loader will run but if we don't use libc (or any > other system libraries) then it won't have anything to do. I guess so; if we can guarantee that we don't use any system libraries. I was hoping to finish my de-glibc-ification of branches/ASPACEM today, but didn't make it. Anyway, once I do the next thing I want to try is to do the final link with -nostdlib, which sounds like a Good Thing to me. ----------- Another way to answer your question is: "Yes, in theory I agree. But as is well known, theory and practice coincide only in theory". J |
|
From: Tom H. <to...@co...> - 2005-08-09 23:08:15
|
In message <200...@ac...>
Julian Seward <js...@ac...> wrote:
>
> >> Solaris 10 doesn't allow static executables. The
> > reasons they give are here
>
> Euh, that sucks, but it doesn't surprise me. There just
> doesn't seem to be a portable way of making an executable
> _and_ all the shared objects it depends on be loaded in
> an out-of-the way place.
Is there much difference between statically and dynamically linked
executables which don't reference any libraries though?
Sure the dynamic loader will run but if we don't use libc (or any
other system libraries) then it won't have anything to do.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: Julian S. <js...@ac...> - 2005-08-09 22:58:15
|
>> Solaris 10 doesn't allow static executables. The > reasons they give are here Euh, that sucks, but it doesn't surprise me. There just doesn't seem to be a portable way of making an executable _and_ all the shared objects it depends on be loaded in an out-of-the way place. J |
|
From: Tom H. <to...@co...> - 2005-08-09 22:47:36
|
In message <200...@kf...>
Maurice van der Pot <gri...@ge...> wrote:
> On Tue, Aug 09, 2005 at 07:16:30PM +0100, Tom Hughes wrote:
> > I don't think it will matter if you build with -fpie - if you haven't
> > use --enable-pie then valgrind will be loaded at a fixed address even
> > if you happened to build with -fpie and there won't be any problems.
>
> Right now if I build 3.0.0 with a gcc that defaults to pie but I don't
> specify --enable-pie, it exits at startup with "executable range is
> outside acceptable range".
Wierd. Without --enable-pie stage2 should be linked with a fixed
base address that is certainly within the acceptable range. CAn you
give the full message (with the addresses).
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: Julian S. <js...@ac...> - 2005-08-09 22:45:40
|
> > >> My only concern is that it would be good to have an official tracking > > >> mechanism for which changes have been backported and which are > > >> outstanding. > > > > > > So I made this file 3_0_BUGSTATUS.txt which I hoped would be at > > > least a step in that direction. I do want to keep careful track > > > of what the bug status is and what's outstanding. > > > > Hmm, I think using SVN rather than CVS is a huge win here, because we can > > refer to individual bugfixes with a single revision number, ie. have a > > list of "to be merged" revisions. > > That's partly why I started noting the SVN revision for a fix when > closing bugs, and likewise with the bug number in the SVN log. That's great, but .. could you also update 3_0_BUGSTATUS.txt with that info upon closing a bug, so all the relevant info is in one place? J |
|
From: <sv...@va...> - 2005-08-09 22:38:13
|
Author: njn Date: 2005-08-09 20:48:07 +0100 (Tue, 09 Aug 2005) New Revision: 175 Log: pedantry Modified: trunk/gallery/users.html Modified: trunk/gallery/users.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/gallery/users.html 2005-08-09 19:42:28 UTC (rev 174) +++ trunk/gallery/users.html 2005-08-09 19:48:07 UTC (rev 175) @@ -163,7 +163,7 @@ =20 <li><a href=3D"http://atlas.web.cern.ch/Atlas/Welcome.html">Atlas</a>=20 and <a href=3D"http://cmsinfo.cern.ch/Welcome.html">CMS</a>=20 - experiments at <a href=3D"http://www.cern.ch">CERN's</a>=20 + experiments at <a href=3D"http://www.cern.ch/">CERN's</a>=20 <a href=3D"http://lhc-new-homepage.web.cern.ch/lhc-new-homepage/">L= arge=20 Hadron Collider</a> Data acquisition, reconstruction, analysis, visualisation and simulation software.</li> @@ -322,11 +322,11 @@ a fourth generation language and rapid application development environment.</li> =20 - <li><a href=3D"http://lavape.sourceforge.net">Lava:</a> An + <li><a href=3D"http://lavape.sourceforge.net/">Lava:</a> An experimental OO programming language implementation, including a structure editor.</li> =20 - <li><a href=3D"http://sf.net/projects/aikido">Aikido:</a> An + <li><a href=3D"http://sf.net/projects/aikido/">Aikido:</a> An interpreted prototyping and scripting language with a syntax that resembles C++ and Java.</li> =20 @@ -406,11 +406,11 @@ a free library which makes it fun to write a server that connects to VNCViewer.</li> =20 - <li><a href=3D"http://www.fox-toolkit.org">FOX Toolkit:</a> + <li><a href=3D"http://www.fox-toolkit.org/">FOX Toolkit:</a> a platform-independent C++ toolkit for developing graphical user interface applications.</li> =20 - <li><a href=3D"http://gtk2-perl.sf.net">gtk2-perl:</a> + <li><a href=3D"http://gtk2-perl.sf.net/">gtk2-perl:</a> a set of perl bindings for Gtk+ 2.x and various related libraries.<= /li> =20 <li><a href=3D"http://www.vrjuggler.org/">VR Juggler:</a> @@ -502,7 +502,7 @@ <li><a href=3D"http://www.nomachine.com/developers.php">NX:</a> X Window compression software.</li> =20 - <li><a href=3D"http://www.open1x.org">Xsupplicant:</a> + <li><a href=3D"http://www.open1x.org/">Xsupplicant:</a> an 802.1X client for Linux.</li> =20 <li><a href=3D"http://icpld.northernmost.org/">ICPLD:</a> A @@ -585,7 +585,7 @@ <li><a href=3D"http://messenger.yahoo.com/messenger/download/unix.html"= >Yahoo!=20 Messenger:</a> a free instant messaging service.</li> =20 - <li><a href=3D"http://www.powerdns.com">PowerDNS:</a> a modern, + <li><a href=3D"http://www.powerdns.com/">PowerDNS:</a> a modern, advanced and high performance authoritative-only nameserver.</li> =20 |
|
From: <sv...@va...> - 2005-08-09 22:34:21
|
Author: cerion
Date: 2005-08-09 23:34:18 +0100 (Tue, 09 Aug 2005)
New Revision: 4358
Log:
fixed endianness bug for ppc xml output
Modified:
trunk/coregrind/m_errormgr.c
Modified: trunk/coregrind/m_errormgr.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_errormgr.c 2005-08-09 22:21:14 UTC (rev 4357)
+++ trunk/coregrind/m_errormgr.c 2005-08-09 22:34:18 UTC (rev 4358)
@@ -802,7 +802,7 @@
VG_(message)(
Vg_UserMsg, " <pair>\n"
" <count>%d</count>\n"
- " <unique>0x%llx</unique>\n"
+ " <unique>0x%x</unique>\n"
" </pair>",
err->count, err->unique
);
|
|
From: Naveen K. <g_n...@ya...> - 2005-08-09 22:25:11
|
> > I had a similar problem(no auxv) in Solaris 8 when
> > stage1 was compiled as static. You just need to
make
> > up the remaining auxv entries with known info
about
> > the OS and stage2 exe and add it just like
> > AT_UME_PADFD or AT_UME_EXECFD.
> >
>I have tried this, and the NetBSD linker is still
>confused and crashes
>before stage 2 can be loaded.
>Anyway we are working to debug this and get a dynamic
>stage2 loaded for
>now=
.
>Regards,
>Kailash
Another thing you can check if is whether the auxv
structures are aligned correctly. In stage1 fix_auxv
if delta % sizeof(*auxv) != 0 you are going to have
problems in the current fixup. You need to do some
extra work for that.
if( delta % sizeof(*auxv) != 0 )
{
fprintf(stderr, "Fix auxv better....\n");
struct ume_auxv* temp_auxv = auxv;
while( temp_auxv->a_type != AT_NULL )
temp_auxv++;
memmove( (char*)auxv - delta % sizeof(*auxv) ,
auxv, (temp_auxv + 1 - auxv) * sizeof(*auxv) );
auxv = (char*)auxv - delta % sizeof(*auxv);
}
auxv -= delta/sizeof(*auxv);
Naveen
__________________________________
Yahoo! Mail for Mobile
Take Yahoo! Mail with you! Check email on your mobile phone.
http://mobile.yahoo.com/learn/mail
|
|
From: <sv...@va...> - 2005-08-09 22:21:18
|
Author: sewardj Date: 2005-08-09 23:21:14 +0100 (Tue, 09 Aug 2005) New Revision: 4357 Log: Update regtest output after r4356. Will update 64-bit expected output tomorrow. Modified: trunk/memcheck/tests/xml1.stderr.exp Modified: trunk/memcheck/tests/xml1.stderr.exp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/memcheck/tests/xml1.stderr.exp 2005-08-09 22:03:08 UTC (rev 435= 6) +++ trunk/memcheck/tests/xml1.stderr.exp 2005-08-09 22:21:14 UTC (rev 435= 7) @@ -24,7 +24,10 @@ </argv> </args> =20 -<status> <state>RUNNING</state> <time>...</time> </status> +<status> + <state>RUNNING</state> + <time>...</time> +</status> =20 <error> <unique>0x........</unique> @@ -361,15 +364,36 @@ </error> =20 <errorcounts> - <pair> <count>...</count> <unique>0x........</unique> </pair> - <pair> <count>...</count> <unique>0x........</unique> </pair> - <pair> <count>...</count> <unique>0x........</unique> </pair> - <pair> <count>...</count> <unique>0x........</unique> </pair> - <pair> <count>...</count> <unique>0x........</unique> </pair> - <pair> <count>...</count> <unique>0x........</unique> </pair> + <pair> + <count>...</count> + <unique>0x........</unique> + </pair> + <pair> + <count>...</count> + <unique>0x........</unique> + </pair> + <pair> + <count>...</count> + <unique>0x........</unique> + </pair> + <pair> + <count>...</count> + <unique>0x........</unique> + </pair> + <pair> + <count>...</count> + <unique>0x........</unique> + </pair> + <pair> + <count>...</count> + <unique>0x........</unique> + </pair> </errorcounts> =20 -<status> <state>FINISHED</state> <time>...</time> </status> +<status> + <state>FINISHED</state> + <time>...</time> +</status> =20 <suppcounts>...</suppcounts> =20 |
|
From: Maurice v. d. P. <gri...@ge...> - 2005-08-09 22:17:52
|
On Tue, Aug 09, 2005 at 07:16:30PM +0100, Tom Hughes wrote: > I don't think it will matter if you build with -fpie - if you haven't > use --enable-pie then valgrind will be loaded at a fixed address even > if you happened to build with -fpie and there won't be any problems. Right now if I build 3.0.0 with a gcc that defaults to pie but I don't=20 specify --enable-pie, it exits at startup with "executable range is=20 outside acceptable range". Maurice. --=20 Maurice van der Pot Gentoo Linux Developer gri...@ge... http://www.gentoo.org Creator of BiteMe! gri...@kf... http://www.kfk4ever.com |
|
From: <sv...@va...> - 2005-08-09 22:12:42
|
Author: njn Date: 2005-08-09 20:42:28 +0100 (Tue, 09 Aug 2005) New Revision: 174 Log: Added VR Juggler. Modified: trunk/gallery/users.html Modified: trunk/gallery/users.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/gallery/users.html 2005-08-04 00:07:35 UTC (rev 173) +++ trunk/gallery/users.html 2005-08-09 19:42:28 UTC (rev 174) @@ -412,6 +412,10 @@ =20 <li><a href=3D"http://gtk2-perl.sf.net">gtk2-perl:</a> a set of perl bindings for Gtk+ 2.x and various related libraries.<= /li> + + <li><a href=3D"http://www.vrjuggler.org/">VR Juggler:</a> + an open source library for developing cross platform virtual + reality applications.</li> </ul> =20 =20 |
|
From: Naveen K. <g_n...@ya...> - 2005-08-09 22:12:26
|
>Here's a possible plan which might help NetBSD, >Solaris 8 >and MacOSX. The idea is to get rid of stage 1 >completely, and >turn stage 2 into a statically linked executable which >is >completely standalone -- it does not depend on either >libc or >on any dynamic linking library (ld.so). stage 2 would >also have >a non-standard load address, as it does currently. >Currently stage2 uses dlopen to load the tool. In >this >revised plan, tools would be statically linked to the >core, >so there would be a different stage2 for each tool >(valgrind_memcheck, valgrind_cachegrind, etc). >The result is (for each tool) a statically linked >valgrind >binary which can be started directly. >So .. I already tried out most of this -- the removal >of >stage1 and the static linking work at least on x86 >linux. >Another advantage is that there no longer any need for >address >space padding games to get stage2 to load at the >address we >want it to. Overall it appears to remove some >complexity and >Linux-specificness. >Once that's done, the next step is to rewrite the >address space >manager to be much more flexible about address space >layout. >We know from the FreeBSD folks that address space >layout issues >are at present a major problem in porting V to >FreeBSD, and >the same goes for MacOSX, so this seems like a good >thing for >lots of reasons. >J Solaris 10 doesn't allow static executables. The reasons they give are here http://docs.sun.com/app/docs/doc/817-1984/6mhm7pl10?a=view Solaris 8 allows it but I am doing most of my work on Solaris 10 now what with all the new bells and whistles (new syscall stuff etc) and what not. I had been wondering why stage2 wasn't being loaded directly in the first place. What you are suggesting though should still be ok for Solaris. All the libraries etc are loaded at the top of the address space so we still have the whole of the address space below stage2 for our use. Naveen __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
|
From: <sv...@va...> - 2005-08-09 22:03:16
|
Author: sewardj
Date: 2005-08-09 23:03:08 +0100 (Tue, 09 Aug 2005)
New Revision: 4356
Log:
Print all XML output with a consistent nesting style, so as to make it
easier to compare it to the output of other XML generating tools.
Regtest expected-output changes to follow.
Modified:
trunk/coregrind/m_errormgr.c
trunk/coregrind/m_main.c
Modified: trunk/coregrind/m_errormgr.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_errormgr.c 2005-08-09 21:50:18 UTC (rev 4355)
+++ trunk/coregrind/m_errormgr.c 2005-08-09 22:03:08 UTC (rev 4356)
@@ -684,8 +684,10 @@
any_supp =3D True;
if (VG_(clo_xml)) {
VG_(message)(Vg_DebugMsg,=20
- " <pair> <count>%d</count> "
- "<name>%t</name> </pair>",=20
+ " <pair>\n"
+ " <count>%d</count>\n"
+ " <name>%t</name>\n"
+ " </pair>",=20
su->count, su->sname);
} else {
VG_(message)(Vg_DebugMsg, "supp: %4d %s", su->count, su->sname)=
;
@@ -798,8 +800,10 @@
if (err->count <=3D 0)
continue;
VG_(message)(
- Vg_UserMsg, " <pair> <count>%d</count> "
- "<unique>0x%llx</unique> </pair>",
+ Vg_UserMsg, " <pair>\n"
+ " <count>%d</count>\n"
+ " <unique>0x%llx</unique>\n"
+ " </pair>",
err->count, err->unique
);
}
Modified: trunk/coregrind/m_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_main.c 2005-08-09 21:50:18 UTC (rev 4355)
+++ trunk/coregrind/m_main.c 2005-08-09 22:03:08 UTC (rev 4356)
@@ -2830,8 +2830,11 @@
if (VG_(clo_xml)) {
HChar buf[50];
VG_(ctime)(buf);
- VG_(message)(Vg_UserMsg, "<status> <state>RUNNING</state> "
- "<time>%t</time> </status>", buf);
+ VG_(message)(Vg_UserMsg, "<status>\n"
+ " <state>RUNNING</state>\n"
+ " <time>%t</time>\n"
+ "</status>",=20
+ buf);
VG_(message)(Vg_UserMsg, "");
}
=20
@@ -2932,8 +2935,11 @@
VG_(message)(Vg_UserMsg, "");
}
VG_(ctime)(buf);
- VG_(message)(Vg_UserMsg, "<status> <state>FINISHED</state> "
- "<time>%t</time> </status>", buf);
+ VG_(message)(Vg_UserMsg, "<status>\n"
+ " <state>FINISHED</state>\n"
+ " <time>%t</time>\n"
+ "</status>",=20
+ buf);
VG_(message)(Vg_UserMsg, "");
}
=20
|
|
From: Tom H. <to...@co...> - 2005-08-09 21:51:37
|
In message <Pin...@ch...>
Nicholas Nethercote <nj...@cs...> wrote:
> On Tue, 9 Aug 2005, Julian Seward wrote:
>
> >> My only concern is that it would be good to have an official tracking
> >> mechanism for which changes have been backported and which are
> >> outstanding.
> >
> > So I made this file 3_0_BUGSTATUS.txt which I hoped would be at
> > least a step in that direction. I do want to keep careful track
> > of what the bug status is and what's outstanding.
>
> Hmm, I think using SVN rather than CVS is a huge win here, because we can
> refer to individual bugfixes with a single revision number, ie. have a
> list of "to be merged" revisions.
That's partly why I started noting the SVN revision for a fix when
closing bugs, and likewise with the bug number in the SVN log.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: <sv...@va...> - 2005-08-09 21:50:24
|
Author: sewardj
Date: 2005-08-09 22:50:18 +0100 (Tue, 09 Aug 2005)
New Revision: 4355
Log:
When printing error counts, print the <unique> in the same way that
it is in the error itself. Otherwise it's totally useless :-)
Modified:
trunk/coregrind/m_errormgr.c
Modified: trunk/coregrind/m_errormgr.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_errormgr.c 2005-08-09 17:59:26 UTC (rev 4354)
+++ trunk/coregrind/m_errormgr.c 2005-08-09 21:50:18 UTC (rev 4355)
@@ -800,7 +800,7 @@
VG_(message)(
Vg_UserMsg, " <pair> <count>%d</count> "
"<unique>0x%llx</unique> </pair>",
- err->count, Ptr_to_ULong(err)
+ err->count, err->unique
);
}
VG_(message)(Vg_UserMsg, "</errorcounts>");
|
|
From: Nicholas N. <nj...@cs...> - 2005-08-09 19:29:56
|
On Tue, 9 Aug 2005, Julian Seward wrote: > So I made this file 3_0_BUGSTATUS.txt which I hoped would be at > least a step in that direction. I do want to keep careful track > of what the bug status is and what's outstanding. And to answer Dirk's original question: I see no problem with you backporting bug-fixes from the trunk to the 3_0_X branch. N |
|
From: Nicholas N. <nj...@cs...> - 2005-08-09 19:28:39
|
On Tue, 9 Aug 2005, Julian Seward wrote: >> My only concern is that it would be good to have an official tracking >> mechanism for which changes have been backported and which are >> outstanding. > > So I made this file 3_0_BUGSTATUS.txt which I hoped would be at > least a step in that direction. I do want to keep careful track > of what the bug status is and what's outstanding. Hmm, I think using SVN rather than CVS is a huge win here, because we can refer to individual bugfixes with a single revision number, ie. have a list of "to be merged" revisions. N |
|
From: Julian S. <js...@ac...> - 2005-08-09 19:17:07
|
> My only concern is that it would be good to have an official tracking > mechanism for which changes have been backported and which are > outstanding. So I made this file 3_0_BUGSTATUS.txt which I hoped would be at least a step in that direction. I do want to keep careful track of what the bug status is and what's outstanding. J |
|
From: Tom H. <to...@co...> - 2005-08-09 18:17:44
|
In message <200...@kf...>
Maurice van der Pot <gri...@ge...> wrote:
> On Mon, Aug 08, 2005 at 08:21:00PM +0100, Julian Seward wrote:
> > - A rewritten address space manager, which will finally make
> > the thing work properly on 64-bit platforms, and should
> > provide a better base for porting to non-Linux OSs.
>
> Is this new code also meant to allow PIE builds?
It will make PIE builds unnecessary so they will presumably go away.
> Not that I'm a fan of building with PIE, but at the moment I have no way
> of disabling it other than patching configure. The reason for this is
> that we have compiler profiles that default to PIE and actually need
> a flag to disable it.
I don't think it will matter if you build with -fpie - if you haven't
use --enable-pie then valgrind will be loaded at a fixed address even
if you happened to build with -fpie and there won't be any problems.
The only downside is a possible slight slowdown from the fact that you
are using position independent code when don't have to.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: <sv...@va...> - 2005-08-09 18:00:08
|
Author: sewardj
Date: 2005-08-09 18:59:26 +0100 (Tue, 09 Aug 2005)
New Revision: 4354
Log:
Get rid of most of the glibc dependencies from m_ume.c. Not there
yet, but moving in the right direction.
Modified:
branches/ASPACEM/coregrind/m_libcfile.c
branches/ASPACEM/coregrind/m_libcproc.c
branches/ASPACEM/coregrind/m_main.c
branches/ASPACEM/coregrind/m_ume.c
branches/ASPACEM/coregrind/pub_core_libcfile.h
branches/ASPACEM/coregrind/pub_core_ume.h
branches/ASPACEM/include/pub_tool_libcfile.h
branches/ASPACEM/include/pub_tool_libcproc.h
Modified: branches/ASPACEM/coregrind/m_libcfile.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/coregrind/m_libcfile.c 2005-08-09 12:30:07 UTC (rev =
4353)
+++ branches/ASPACEM/coregrind/m_libcfile.c 2005-08-09 17:59:26 UTC (rev =
4354)
@@ -113,10 +113,12 @@
return res.isError ? -1 : 0;
}
=20
-OffT VG_(lseek) ( Int fd, OffT offset, Int whence)
+OffT VG_(lseek) ( Int fd, OffT offset, Int whence )
{
SysRes res =3D VG_(do_syscall3)(__NR_lseek, fd, offset, whence);
return res.isError ? (-1) : 0;
+ /* if you change the error-reporting conventions of this, also
+ change VG_(pread) and all other usage points. */
}
=20
SysRes VG_(stat) ( Char* file_name, struct vki_stat* buf )
@@ -201,6 +203,14 @@
#endif
}
=20
+SSizeT VG_(pread) ( Int fd, void* buf, Int count, Int offset )
+{
+ OffT off =3D VG_(lseek)( fd, (OffT)offset, VKI_SEEK_SET);
+ if (off !=3D 0)
+ return (SSizeT)(-1);
+ SysRes res =3D VG_(do_syscall3)(__NR_read, fd, (UWord)buf, count );
+ return (SSizeT)( res.isError ? -1 : res.val);
+}
=20
/* ---------------------------------------------------------------------
Socket-related stuff. This is very Linux-kernel specific.
Modified: branches/ASPACEM/coregrind/m_libcproc.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/coregrind/m_libcproc.c 2005-08-09 12:30:07 UTC (rev =
4353)
+++ branches/ASPACEM/coregrind/m_libcproc.c 2005-08-09 17:59:26 UTC (rev =
4354)
@@ -388,12 +388,19 @@
return VG_(do_syscall0)(__NR_getppid) . val;
}
=20
-Int VG_(setpgid) ( Int pid, Int pgrp )
+Int VG_(geteuid) ( void )
{
/* ASSUMES SYSCALL ALWAYS SUCCEEDS */
- return VG_(do_syscall2)(__NR_setpgid, pid, pgrp) . val;
+ return VG_(do_syscall0)(__NR_geteuid) . val;
}
=20
+Int VG_(getegid) ( void )
+{
+ /* ASSUMES SYSCALL ALWAYS SUCCEEDS */
+ return VG_(do_syscall0)(__NR_getegid) . val;
+}
+
+
/* ---------------------------------------------------------------------
Timing stuff
------------------------------------------------------------------ */
Modified: branches/ASPACEM/coregrind/m_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/coregrind/m_main.c 2005-08-09 12:30:07 UTC (rev 4353=
)
+++ branches/ASPACEM/coregrind/m_main.c 2005-08-09 17:59:26 UTC (rev 4354=
)
@@ -124,17 +124,17 @@
// HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK A
// temporary bootstrapping allocator, for use until such time as we
// can get rid of the circularites in allocator dependencies at
-// startup.
+// startup. There is also a copy of this in m_ume.c.
#define N_HACK_BYTES 10000
static Int hack_bytes_used =3D 0;
static HChar hack_bytes[N_HACK_BYTES];
=20
static void* hack_malloc ( Int n )
{
- VG_(debugLog)(1, "main", " FIXME: hack_malloc(%d)\n", n);
+ VG_(debugLog)(1, "main", " FIXME: hack_malloc(m_main)(%d)\n", n);
while (n % 16) n++;
if (hack_bytes_used + n > N_HACK_BYTES) {
- VG_(printf)("valgrind: N_HACK_BYTES too low. Sorry.\n");
+ VG_(printf)("valgrind: N_HACK_BYTES(m_main) too low. Sorry.\n");
VG_(exit)(0);
}
hack_bytes_used +=3D n;
Modified: branches/ASPACEM/coregrind/m_ume.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/coregrind/m_ume.c 2005-08-09 12:30:07 UTC (rev 4353)
+++ branches/ASPACEM/coregrind/m_ume.c 2005-08-09 17:59:26 UTC (rev 4354)
@@ -38,19 +38,59 @@
// included ahead of the glibc ones. This fix is a kludge; the right
// solution is to entirely remove the glibc dependency.
#include "pub_core_basics.h"
+#include "pub_core_debuglog.h"
#include "pub_core_libcbase.h"
#include "pub_core_machine.h"
+#include "pub_core_libcprint.h"
+#include "pub_core_libcfile.h" // VG_(close) et al
+#include "pub_core_libcproc.h" // VG_(geteuid), VG_(getegid)
+#include "pub_core_libcassert.h" // VG_(exit), vg_assert
+#include "pub_core_syscall.h" // VG_(strerror)
+#include "pub_core_mallocfree.h" // VG_(malloc), VG_(free)
+
+#include "pub_core_debuginfo.h" // Needed for pub_core_aspacemgr.h :(
+#include "pub_core_aspacemgr.h" // VG_(mmap_native)
+#include "vki_unistd.h" // mmap-related constants
+
#include "pub_core_ume.h"
=20
-#include <sys/mman.h>
+//#include <sys/mman.h>
#include <fcntl.h>
#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <assert.h>
=20
+//#include <string.h>
+//#include <stdlib.h>
+//#include <unistd.h>
+//#include <assert.h>
+
+
+// HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK A
+// temporary bootstrapping allocator, for use until such time as we
+// can get rid of the circularites in allocator dependencies at
+// startup. There is also a copy of this in m_main.c.
+#define N_HACK_BYTES 10000
+static Int hack_bytes_used =3D 0;
+static HChar hack_bytes[N_HACK_BYTES];
+
+static void* hack_malloc ( Int n )
+{
+ VG_(debugLog)(1, "ume", " FIXME: hack_malloc(m_ume)(%d)\n", n);
+ while (n % 16) n++;
+ if (hack_bytes_used + n > N_HACK_BYTES) {
+ VG_(printf)("valgrind: N_HACK_BYTES(m_ume) too low. Sorry.\n");
+ VG_(exit)(0);
+ }
+ hack_bytes_used +=3D n;
+ return (void*) &hack_bytes[hack_bytes_used - n];
+}
+
+static HChar* hack_strdup ( HChar* str )
+{
+ HChar* p =3D hack_malloc( 1 + VG_(strlen)(str) );
+ VG_(strcpy)(p, str);
+ return p;
+}
+
#if VG_WORDSIZE =3D=3D 8
#define ESZ(x) Elf64_##x
#elif VG_WORDSIZE =3D=3D 4
@@ -66,174 +106,174 @@
int fd;
};
=20
-static void check_mmap(void* res, void* base, int len)
+static void check_mmap(SysRes res, void* base, int len)
{
- if ((void*)-1 =3D=3D res) {
- fprintf(stderr, "valgrind: mmap(%p, %d) failed in UME.\n", base, l=
en);
- exit(1);
+ if (res.isError) {
+ VG_(printf)("valgrind: mmap(%p, %d) failed in UME.\n", base, len);
+ VG_(exit)(1);
}
}
=20
-// 'extra' allows the caller to pass in extra args to 'fn', like free
-// variables to a closure.
-void VG_(foreach_map)(int (*fn)(char *start, char *end,
- const char *perm, off_t offset,
- int maj, int min, int ino, void* extra),
- void* extra)
-{
- static char buf[10240];
- char *bufptr =3D buf;
- int ret, fd;
+//zz // 'extra' allows the caller to pass in extra args to 'fn', like fr=
ee
+//zz // variables to a closure.
+//zz void VG_(foreach_map)(int (*fn)(char *start, char *end,
+//zz const char *perm, off_t offset,
+//zz int maj, int min, int ino, void* ex=
tra),
+//zz void* extra)
+//zz {
+//zz static char buf[10240];
+//zz char *bufptr =3D buf;
+//zz int ret, fd;
+//zz=20
+//zz fd =3D open("/proc/self/maps", O_RDONLY);
+//zz=20
+//zz if (fd =3D=3D -1) {
+//zz perror("open /proc/self/maps");
+//zz return;
+//zz }
+//zz=20
+//zz ret =3D read(fd, buf, sizeof(buf));
+//zz=20
+//zz if (ret =3D=3D -1) {
+//zz perror("read /proc/self/maps");
+//zz close(fd);
+//zz return;
+//zz }
+//zz close(fd);
+//zz=20
+//zz if (ret =3D=3D sizeof(buf)) {
+//zz VG_(printf)("coregrind/m_ume.c: buf too small\n");
+//zz return;
+//zz }
+//zz=20
+//zz while(bufptr && bufptr < buf+ret) {
+//zz char perm[5];
+//zz ULong offset;
+//zz int maj, min;
+//zz int ino;
+//zz void *segstart, *segend;
+//zz=20
+//zz sscanf(bufptr, "%p-%p %s %llx %x:%x %d",
+//zz &segstart, &segend, perm, &offset, &maj, &min, &ino);
+//zz bufptr =3D strchr(bufptr, '\n');
+//zz if (bufptr !=3D NULL)
+//zz bufptr++; /* skip \n */
+//zz=20
+//zz if (!(*fn)(segstart, segend, perm, offset, maj, min, ino, ext=
ra))
+//zz break;
+//zz }
+//zz }
+//zz=20
+//zz /*------------------------------------------------------------*/
+//zz /*--- Stack switching ---*/
+//zz /*------------------------------------------------------------*/
+//zz=20
+//zz // __attribute__((noreturn))
+//zz // void VG_(jump_and_switch_stacks) ( Addr stack, Addr dst );
+//zz #if defined(VGA_x86)
+//zz // 4(%esp) =3D=3D stack
+//zz // 8(%esp) =3D=3D dst
+//zz asm(
+//zz ".global vgPlain_jump_and_switch_stacks\n"
+//zz "vgPlain_jump_and_switch_stacks:\n"
+//zz " movl %esp, %esi\n" // remember old stack pointer
+//zz " movl 4(%esi), %esp\n" // set stack
+//zz " pushl 8(%esi)\n" // dst to stack
+//zz " movl $0, %eax\n" // zero all GP regs
+//zz " movl $0, %ebx\n"
+//zz " movl $0, %ecx\n"
+//zz " movl $0, %edx\n"
+//zz " movl $0, %esi\n"
+//zz " movl $0, %edi\n"
+//zz " movl $0, %ebp\n"
+//zz " ret\n" // jump to dst
+//zz " ud2\n" // should never get here
+//zz );
+//zz #elif defined(VGA_amd64)
+//zz // %rdi =3D=3D stack
+//zz // %rsi =3D=3D dst
+//zz asm(
+//zz ".global vgPlain_jump_and_switch_stacks\n"
+//zz "vgPlain_jump_and_switch_stacks:\n"
+//zz " movq %rdi, %rsp\n" // set stack
+//zz " pushq %rsi\n" // dst to stack
+//zz " movq $0, %rax\n" // zero all GP regs
+//zz " movq $0, %rbx\n"
+//zz " movq $0, %rcx\n"
+//zz " movq $0, %rdx\n"
+//zz " movq $0, %rsi\n"
+//zz " movq $0, %rdi\n"
+//zz " movq $0, %rbp\n"
+//zz " movq $0, %r8\n"
+//zz " movq $0, %r9\n"
+//zz " movq $0, %r10\n"
+//zz " movq $0, %r11\n"
+//zz " movq $0, %r12\n"
+//zz " movq $0, %r13\n"
+//zz " movq $0, %r14\n"
+//zz " movq $0, %r15\n"
+//zz " ret\n" // jump to dst
+//zz " ud2\n" // should never get here
+//zz );
+//zz=20
+//zz #elif defined(VGA_ppc32)
+//zz /* Jump to 'dst', but first set the stack pointer to 'stack'. Also=
,
+//zz clear all the integer registers before entering 'dst'. It's
+//zz important that the stack pointer is set to exactly 'stack' and n=
ot
+//zz (eg) stack - apparently_harmless_looking_small_offset. Basicall=
y
+//zz because the code at 'dst' might be wanting to scan the area abov=
e
+//zz 'stack' (viz, the auxv array), and putting spurious words on the
+//zz stack confuses it.
+//zz */
+//zz // %r3 =3D=3D stack
+//zz // %r4 =3D=3D dst
+//zz asm(
+//zz ".global vgPlain_jump_and_switch_stacks\n"
+//zz "vgPlain_jump_and_switch_stacks:\n"
+//zz " mtctr %r4\n\t" // dst to %ctr
+//zz " mr %r1,%r3\n\t" // stack to %sp
+//zz " li 0,0\n\t" // zero all GP regs
+//zz " li 3,0\n\t"
+//zz " li 4,0\n\t"
+//zz " li 5,0\n\t"
+//zz " li 6,0\n\t"
+//zz " li 7,0\n\t"
+//zz " li 8,0\n\t"
+//zz " li 9,0\n\t"
+//zz " li 10,0\n\t"
+//zz " li 11,0\n\t"
+//zz " li 12,0\n\t"
+//zz " li 13,0\n\t" // CAB: This right? r13 =3D small data a=
rea ptr
+//zz " li 14,0\n\t"
+//zz " li 15,0\n\t"
+//zz " li 16,0\n\t"
+//zz " li 17,0\n\t"
+//zz " li 18,0\n\t"
+//zz " li 19,0\n\t"
+//zz " li 20,0\n\t"
+//zz " li 21,0\n\t"
+//zz " li 22,0\n\t"
+//zz " li 23,0\n\t"
+//zz " li 24,0\n\t"
+//zz " li 25,0\n\t"
+//zz " li 26,0\n\t"
+//zz " li 27,0\n\t"
+//zz " li 28,0\n\t"
+//zz " li 29,0\n\t"
+//zz " li 30,0\n\t"
+//zz " li 31,0\n\t"
+//zz " mtxer 0\n\t"
+//zz " mtcr 0\n\t"
+//zz " mtlr %r0\n\t"
+//zz " bctr\n\t" // jump to dst
+//zz " trap\n" // should never get here
+//zz );
+//zz=20
+//zz #else
+//zz # error Unknown architecture
+//zz #endif
=20
- fd =3D open("/proc/self/maps", O_RDONLY);
-
- if (fd =3D=3D -1) {
- perror("open /proc/self/maps");
- return;
- }
-
- ret =3D read(fd, buf, sizeof(buf));
-
- if (ret =3D=3D -1) {
- perror("read /proc/self/maps");
- close(fd);
- return;
- }
- close(fd);
-
- if (ret =3D=3D sizeof(buf)) {
- fprintf(stderr, "buf too small\n");
- return;
- }
-
- while(bufptr && bufptr < buf+ret) {
- char perm[5];
- ULong offset;
- int maj, min;
- int ino;
- void *segstart, *segend;
-
- sscanf(bufptr, "%p-%p %s %llx %x:%x %d",
- &segstart, &segend, perm, &offset, &maj, &min, &ino);
- bufptr =3D strchr(bufptr, '\n');
- if (bufptr !=3D NULL)
- bufptr++; /* skip \n */
-
- if (!(*fn)(segstart, segend, perm, offset, maj, min, ino, extra))
- break;
- }
-}
-
/*------------------------------------------------------------*/
-/*--- Stack switching ---*/
-/*------------------------------------------------------------*/
-
-// __attribute__((noreturn))
-// void VG_(jump_and_switch_stacks) ( Addr stack, Addr dst );
-#if defined(VGA_x86)
-// 4(%esp) =3D=3D stack
-// 8(%esp) =3D=3D dst
-asm(
-".global vgPlain_jump_and_switch_stacks\n"
-"vgPlain_jump_and_switch_stacks:\n"
-" movl %esp, %esi\n" // remember old stack pointer
-" movl 4(%esi), %esp\n" // set stack
-" pushl 8(%esi)\n" // dst to stack
-" movl $0, %eax\n" // zero all GP regs
-" movl $0, %ebx\n"
-" movl $0, %ecx\n"
-" movl $0, %edx\n"
-" movl $0, %esi\n"
-" movl $0, %edi\n"
-" movl $0, %ebp\n"
-" ret\n" // jump to dst
-" ud2\n" // should never get here
-);
-#elif defined(VGA_amd64)
-// %rdi =3D=3D stack
-// %rsi =3D=3D dst
-asm(
-".global vgPlain_jump_and_switch_stacks\n"
-"vgPlain_jump_and_switch_stacks:\n"
-" movq %rdi, %rsp\n" // set stack
-" pushq %rsi\n" // dst to stack
-" movq $0, %rax\n" // zero all GP regs
-" movq $0, %rbx\n"
-" movq $0, %rcx\n"
-" movq $0, %rdx\n"
-" movq $0, %rsi\n"
-" movq $0, %rdi\n"
-" movq $0, %rbp\n"
-" movq $0, %r8\n"\
-" movq $0, %r9\n"\
-" movq $0, %r10\n"
-" movq $0, %r11\n"
-" movq $0, %r12\n"
-" movq $0, %r13\n"
-" movq $0, %r14\n"
-" movq $0, %r15\n"
-" ret\n" // jump to dst
-" ud2\n" // should never get here
-);
-
-#elif defined(VGA_ppc32)
-/* Jump to 'dst', but first set the stack pointer to 'stack'. Also,
- clear all the integer registers before entering 'dst'. It's
- important that the stack pointer is set to exactly 'stack' and not
- (eg) stack - apparently_harmless_looking_small_offset. Basically
- because the code at 'dst' might be wanting to scan the area above
- 'stack' (viz, the auxv array), and putting spurious words on the
- stack confuses it.
-*/
-// %r3 =3D=3D stack
-// %r4 =3D=3D dst
-asm(
-".global vgPlain_jump_and_switch_stacks\n"
-"vgPlain_jump_and_switch_stacks:\n"
-" mtctr %r4\n\t" // dst to %ctr
-" mr %r1,%r3\n\t" // stack to %sp
-" li 0,0\n\t" // zero all GP regs
-" li 3,0\n\t"
-" li 4,0\n\t"
-" li 5,0\n\t"
-" li 6,0\n\t"
-" li 7,0\n\t"
-" li 8,0\n\t"
-" li 9,0\n\t"
-" li 10,0\n\t"
-" li 11,0\n\t"
-" li 12,0\n\t"
-" li 13,0\n\t" // CAB: This right? r13 =3D small data area p=
tr
-" li 14,0\n\t"
-" li 15,0\n\t"
-" li 16,0\n\t"
-" li 17,0\n\t"
-" li 18,0\n\t"
-" li 19,0\n\t"
-" li 20,0\n\t"
-" li 21,0\n\t"
-" li 22,0\n\t"
-" li 23,0\n\t"
-" li 24,0\n\t"
-" li 25,0\n\t"
-" li 26,0\n\t"
-" li 27,0\n\t"
-" li 28,0\n\t"
-" li 29,0\n\t"
-" li 30,0\n\t"
-" li 31,0\n\t"
-" mtxer 0\n\t"
-" mtcr 0\n\t"
-" mtlr %r0\n\t"
-" bctr\n\t" // jump to dst
-" trap\n" // should never get here
-);
-
-#else
-# error Unknown architecture
-#endif
-
-/*------------------------------------------------------------*/
/*--- Finding auxv on the stack ---*/
/*------------------------------------------------------------*/
=20
@@ -266,62 +306,62 @@
static=20
struct elfinfo *readelf(int fd, const char *filename)
{
- struct elfinfo *e =3D malloc(sizeof(*e));
+ struct elfinfo *e =3D hack_malloc(sizeof(*e));
int phsz;
=20
- assert(e);
+ vg_assert(e);
e->fd =3D fd;
=20
- if (pread(fd, &e->e, sizeof(e->e), 0) !=3D sizeof(e->e)) {
- fprintf(stderr, "valgrind: %s: can't read ELF header: %s\n",=20
- filename, strerror(errno));
+ if (VG_(pread)(fd, &e->e, sizeof(e->e), 0) !=3D sizeof(e->e)) {
+ VG_(printf)("valgrind: %s: can't read ELF header: %s\n",=20
+ filename, VG_(strerror)(errno));
goto bad;
}
=20
- if (memcmp(&e->e.e_ident[0], ELFMAG, SELFMAG) !=3D 0) {
- fprintf(stderr, "valgrind: %s: bad ELF magic number\n", filename);
+ if (VG_(memcmp)(&e->e.e_ident[0], ELFMAG, SELFMAG) !=3D 0) {
+ VG_(printf)("valgrind: %s: bad ELF magic number\n", filename);
goto bad;
}
if (e->e.e_ident[EI_CLASS] !=3D VG_ELF_CLASS) {
- fprintf(stderr,=20
- "valgrind: wrong ELF executable class "
- "(eg. 32-bit instead of 64-bit)\n");
+ VG_(printf)("valgrind: wrong ELF executable class "
+ "(eg. 32-bit instead of 64-bit)\n");
goto bad;
}
if (e->e.e_ident[EI_DATA] !=3D VG_ELF_DATA2XXX) {
- fprintf(stderr, "valgrind: executable has wrong endian-ness\n");
+ VG_(printf)("valgrind: executable has wrong endian-ness\n");
goto bad;
}
if (!(e->e.e_type =3D=3D ET_EXEC || e->e.e_type =3D=3D ET_DYN)) {
- fprintf(stderr, "valgrind: this is not an executable\n");
+ VG_(printf)("valgrind: this is not an executable\n");
goto bad;
}
=20
if (e->e.e_machine !=3D VG_ELF_MACHINE) {
- fprintf(stderr, "valgrind: executable is not for "
- "this architecture\n");
+ VG_(printf)("valgrind: executable is not for "
+ "this architecture\n");
goto bad;
}
=20
if (e->e.e_phentsize !=3D sizeof(ESZ(Phdr))) {
- fprintf(stderr, "valgrind: sizeof ELF Phdr wrong\n");
+ VG_(printf)("valgrind: sizeof ELF Phdr wrong\n");
goto bad;
}
=20
phsz =3D sizeof(ESZ(Phdr)) * e->e.e_phnum;
- e->p =3D malloc(phsz);
- assert(e->p);
+ e->p =3D hack_malloc(phsz);
+ vg_assert(e->p);
=20
- if (pread(fd, e->p, phsz, e->e.e_phoff) !=3D phsz) {
- fprintf(stderr, "valgrind: can't read phdr: %s\n", strerror(errno)=
);
- free(e->p);
+ if (VG_(pread)(fd, e->p, phsz, e->e.e_phoff) !=3D phsz) {
+ VG_(printf)("valgrind: can't read phdr: %s\n",=20
+ VG_(strerror)(errno));
+ //FIXME VG_(free)(e->p);
goto bad;
}
=20
return e;
=20
bad:
- free(e);
+ //FIXME VG_(free)(e);
return NULL;
}
=20
@@ -329,8 +369,8 @@
static
ESZ(Addr) mapelf(struct elfinfo *e, ESZ(Addr) base)
{
- int i;
- void* res;
+ Int i;
+ SysRes res;
ESZ(Addr) elfbrk =3D 0;
=20
for(i =3D 0; i < e->e.e_phnum; i++) {
@@ -360,9 +400,9 @@
if (ph->p_type !=3D PT_LOAD)
continue;
=20
- if (ph->p_flags & PF_X) prot |=3D PROT_EXEC;
- if (ph->p_flags & PF_W) prot |=3D PROT_WRITE;
- if (ph->p_flags & PF_R) prot |=3D PROT_READ;
+ if (ph->p_flags & PF_X) prot |=3D VKI_PROT_EXEC;
+ if (ph->p_flags & PF_W) prot |=3D VKI_PROT_WRITE;
+ if (ph->p_flags & PF_R) prot |=3D VKI_PROT_READ;
=20
addr =3D ph->p_vaddr+base;
off =3D ph->p_offset;
@@ -378,9 +418,12 @@
//
// The condition handles the case of a zero-length segment.
if (VG_PGROUNDUP(bss)-VG_PGROUNDDN(addr) > 0) {
- res =3D mmap((char *)VG_PGROUNDDN(addr),
+ res =3D VG_(mmap_native)
+ ((char *)VG_PGROUNDDN(addr),
VG_PGROUNDUP(bss)-VG_PGROUNDDN(addr),
- prot, MAP_FIXED|MAP_PRIVATE, e->fd, VG_PGROUNDDN(off=
));
+ prot, VKI_MAP_FIXED|VKI_MAP_PRIVATE,=20
+ e->fd, VG_PGROUNDDN(off)
+ );
check_mmap(res, (char*)VG_PGROUNDDN(addr),
VG_PGROUNDUP(bss)-VG_PGROUNDDN(addr));
}
@@ -391,17 +434,20 @@
=20
bytes =3D VG_PGROUNDUP(brkaddr)-VG_PGROUNDUP(bss);
if (bytes > 0) {
- res =3D mmap((char *)VG_PGROUNDUP(bss), bytes,
- prot, MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
+ res =3D VG_(mmap_native)(
+ (Char *)VG_PGROUNDUP(bss), bytes,
+ prot, VKI_MAP_FIXED|VKI_MAP_ANONYMOUS|VKI_MAP_PRIVATE,=20
+ -1, 0
+ );
check_mmap(res, (char*)VG_PGROUNDUP(bss), bytes);
}
=20
bytes =3D bss & (VKI_PAGE_SIZE - 1);
=20
// The 'prot' condition allows for a read-only bss
- if ((prot & PROT_WRITE) && (bytes > 0)) {
+ if ((prot & VKI_PROT_WRITE) && (bytes > 0)) {
bytes =3D VKI_PAGE_SIZE - bytes;
- memset((char *)bss, 0, bytes);
+ VG_(memset)((char *)bss, 0, bytes);
}
}
}
@@ -415,7 +461,7 @@
static int match_ELF(const char *hdr, int len)
{
ESZ(Ehdr) *e =3D (ESZ(Ehdr) *)hdr;
- return (len > sizeof(*e)) && memcmp(&e->e_ident[0], ELFMAG, SELFMAG) =
=3D=3D 0;
+ return (len > sizeof(*e)) && VG_(memcmp)(&e->e_ident[0], ELFMAG, SELF=
MAG) =3D=3D 0;
}
=20
static int load_ELF(char *hdr, int len, int fd, const char *name,
@@ -467,27 +513,27 @@
break;
=09
case PT_INTERP: {
- char *buf =3D malloc(ph->p_filesz+1);
+ char *buf =3D hack_malloc(ph->p_filesz+1);
int j;
int intfd;
int baseaddr_set;
=20
- assert(buf);
- pread(fd, buf, ph->p_filesz, ph->p_offset);
+ vg_assert(buf);
+ VG_(pread)(fd, buf, ph->p_filesz, ph->p_offset);
buf[ph->p_filesz] =3D '\0';
=20
intfd =3D open(buf, O_RDONLY);
if (intfd =3D=3D -1) {
- perror("open interp");
- exit(1);
+ VG_(printf)("valgrind: m_ume.c: can't open interpreter\n");
+ VG_(exit)(1);
}
=20
interp =3D readelf(intfd, buf);
if (interp =3D=3D NULL) {
- fprintf(stderr, "Can't read interpreter\n");
+ VG_(printf)("valgrind: m_ume.c: can't read interpreter\n");
return 1;
}
- free(buf);
+ //FIXME VG_(free)(buf);
=20
baseaddr_set =3D 0;
for(j =3D 0; j < interp->e.e_phnum; j++) {
@@ -525,10 +571,10 @@
if (minaddr >=3D maxaddr ||
(minaddr + ebase < info->exe_base ||
maxaddr + ebase > info->exe_end)) {
- fprintf(stderr, "Executable range %p-%p is outside the\n"
- "acceptable range %p-%p\n",
- (void *)minaddr + ebase, (void *)maxaddr + ebase,
- (void *)info->exe_base, (void *)info->exe_end);
+ VG_(printf)("Executable range %p-%p is outside the\n"
+ "acceptable range %p-%p\n",
+ (void *)minaddr + ebase, (void *)maxaddr + ebase,
+ (void *)info->exe_base, (void *)info->exe_end);
return ENOMEM;
}
}
@@ -540,31 +586,32 @@
=20
if (interp !=3D NULL) {
/* reserve a chunk of address space for interpreter */
- void* res;
- char* base =3D (char *)info->exe_base;
- char* baseoff;
- int flags =3D MAP_PRIVATE|MAP_ANONYMOUS;
+ SysRes res;
+ Char* base =3D (Char *)info->exe_base;
+ Char* baseoff;
+ Int flags =3D VKI_MAP_PRIVATE|VKI_MAP_ANONYMOUS;
=20
if (info->map_base !=3D 0) {
base =3D (char *)VG_ROUNDUP(info->map_base, interp_align);
- flags |=3D MAP_FIXED;
+ flags |=3D VKI_MAP_FIXED;
}
=20
- res =3D mmap(base, interp_size, PROT_NONE, flags, -1, 0);
+ res =3D VG_(mmap_native)(base, interp_size, VKI_PROT_NONE, flags, =
-1, 0);
check_mmap(res, base, interp_size);
- base =3D res;
+ vg_assert(!res.isError);
+ base =3D (Char*)res.val;
=20
baseoff =3D base - interp_addr;
=20
mapelf(interp, (ESZ(Addr))baseoff);
=20
- close(interp->fd);
+ VG_(close)(interp->fd);
=20
entry =3D baseoff + interp->e.e_entry;
info->interp_base =3D (ESZ(Addr))base;
=20
- free(interp->p);
- free(interp);
+ //FIXME VG_(free)(interp->p);
+ //FIXME VG_(free)(interp);
} else
entry =3D (void *)(ebase + e->e.e_entry);
=20
@@ -573,8 +620,8 @@
=20
info->init_eip =3D (Addr)entry;
=20
- free(e->p);
- free(e);
+ //FIXME VG_(free)(e->p);
+ //FIXME VG_(free)(e);
=20
return 0;
}
@@ -582,7 +629,7 @@
=20
static int match_script(const char *hdr, Int len)
{
- return (len > 2) && memcmp(hdr, "#!", 2) =3D=3D 0;
+ return (len > 2) && VG_(memcmp)(hdr, "#!", 2) =3D=3D 0;
}
=20
static int load_script(char *hdr, int len, int fd, const char *name,
@@ -621,19 +668,19 @@
*cp =3D '\0';
}
=20
- info->interp_name =3D strdup(interp);
- assert(NULL !=3D info->interp_name);
+ info->interp_name =3D hack_strdup(interp);
+ vg_assert(NULL !=3D info->interp_name);
if (arg !=3D NULL && *arg !=3D '\0') {
- info->interp_args =3D strdup(arg);
- assert(NULL !=3D info->interp_args);
+ info->interp_args =3D hack_strdup(arg);
+ vg_assert(NULL !=3D info->interp_args);
}
=20
if (info->argv && info->argv[0] !=3D NULL)
info->argv[0] =3D (char *)name;
=20
if (0)
- printf("#! script: interp_name=3D\"%s\" interp_args=3D\"%s\"\n",
- info->interp_name, info->interp_args);
+ VG_(printf)("#! script: interp_name=3D\"%s\" interp_args=3D\"%s\"\=
n",
+ info->interp_name, info->interp_args);
=20
return do_exec_inner(interp, info);
}
@@ -657,17 +704,17 @@
return errno;
=20
if (st.st_mode & (S_ISUID | S_ISGID)) {
- //fprintf(stderr, "Can't execute suid/sgid executable %s\n", exe);
+ //VG_(printf)("Can't execute suid/sgid executable %s\n", exe);
return EACCES;
}
=20
- if (geteuid() =3D=3D st.st_uid) {
+ if (VG_(geteuid)() =3D=3D st.st_uid) {
if (!(st.st_mode & S_IXUSR))
return EACCES;
} else {
int grpmatch =3D 0;
=20
- if (getegid() =3D=3D st.st_gid)
+ if (VG_(getegid)() =3D=3D st.st_gid)
grpmatch =3D 1;
else {
gid_t groups[32];
@@ -711,22 +758,22 @@
fd =3D open(exe, O_RDONLY);
if (fd =3D=3D -1) {
if (0)
- fprintf(stderr, "Can't open executable %s: %s\n",
- exe, strerror(errno));
+ VG_(printf)("Can't open executable %s: %s\n",
+ exe, VG_(strerror)(errno));
return errno;
}
=20
err =3D check_perms(fd);
if (err !=3D 0) {
- close(fd);
+ VG_(close)(fd);
return err;
}
=20
- bufsz =3D pread(fd, buf, sizeof(buf), 0);
+ bufsz =3D VG_(pread)(fd, buf, sizeof(buf), 0);
if (bufsz < 0) {
- fprintf(stderr, "Can't read executable header: %s\n",
- strerror(errno));
- close(fd);
+ VG_(printf)("Can't read executable header: %s\n",
+ VG_(strerror)(errno));
+ VG_(close)(fd);
return errno;
}
=20
@@ -738,7 +785,7 @@
}
}
=20
- close(fd);
+ VG_(close)(fd);
=20
return ret;
}
Modified: branches/ASPACEM/coregrind/pub_core_libcfile.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/coregrind/pub_core_libcfile.h 2005-08-09 12:30:07 UT=
C (rev 4353)
+++ branches/ASPACEM/coregrind/pub_core_libcfile.h 2005-08-09 17:59:26 UT=
C (rev 4354)
@@ -62,6 +62,8 @@
=20
extern Int VG_(access) ( HChar* path, Bool irusr, Bool iwusr, Bool ixusr=
);
=20
+extern SSizeT VG_(pread) ( Int fd, void* buf, Int count, Int offset );
+
#endif // __PUB_CORE_LIBCFILE_H
=20
/*--------------------------------------------------------------------*/
Modified: branches/ASPACEM/coregrind/pub_core_ume.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/coregrind/pub_core_ume.h 2005-08-09 12:30:07 UTC (re=
v 4353)
+++ branches/ASPACEM/coregrind/pub_core_ume.h 2005-08-09 17:59:26 UTC (re=
v 4354)
@@ -44,27 +44,30 @@
/*------------------------------------------------------------*/
=20
/* This is only here so it can be shared between stage1 and stage2 */
-extern
-void VG_(foreach_map)(int (*fn)(char *start, char *end,
- const char *perm, off_t offset,
- int maj, int min, int ino, void* extra),
- void* extra);
=20
-/* Jump to 'dst', but first set the stack pointer to 'stack'. Also,
- clear all the integer registers before entering 'dst'. It's
- important that the stack pointer is set to exactly 'stack' and not
- (eg) stack - apparently_harmless_looking_small_offset. Basically
- because the code at 'dst' might be wanting to scan the area above
- 'stack' (viz, the auxv array), and putting spurious words on the
- stack confuses it.
+/* JRS 9 Aug 05: both of these are apparently unused, except by
+ memcheck/tests/vgtest_ume.c. */
+//zz extern
+//zz void VG_(foreach_map)(int (*fn)(char *start, char *end,
+//zz const char *perm, off_t offset,
+//zz int maj, int min, int ino, void* extra),
+//zz void* extra);
+//zz=20
+//zz /* Jump to 'dst', but first set the stack pointer to 'stack'. Also=
,
+//zz clear all the integer registers before entering 'dst'. It's
+//zz important that the stack pointer is set to exactly 'stack' and n=
ot
+//zz (eg) stack - apparently_harmless_looking_small_offset. Basicall=
y
+//zz because the code at 'dst' might be wanting to scan the area abov=
e
+//zz 'stack' (viz, the auxv array), and putting spurious words on the
+//zz stack confuses it.
+//zz=20
+//zz This is only exported so that vgtest_ume.c can use it.
+//zz */
+//zz extern
+//zz __attribute__((noreturn))
+//zz void VG_(jump_and_switch_stacks) ( Addr stack, Addr dst );
=20
- This is only exported so that vgtest_ume.c can use it.
-*/
-extern
-__attribute__((noreturn))
-void VG_(jump_and_switch_stacks) ( Addr stack, Addr dst );
=20
-
/*------------------------------------------------------------*/
/*--- Loading ELF files ---*/
/*------------------------------------------------------------*/
Modified: branches/ASPACEM/include/pub_tool_libcfile.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/include/pub_tool_libcfile.h 2005-08-09 12:30:07 UTC =
(rev 4353)
+++ branches/ASPACEM/include/pub_tool_libcfile.h 2005-08-09 17:59:26 UTC =
(rev 4354)
@@ -40,7 +40,7 @@
extern Int VG_(read) ( Int fd, void* buf, Int count);
extern Int VG_(write) ( Int fd, const void* buf, Int count);
extern Int VG_(pipe) ( Int fd[2] );
-extern OffT VG_(lseek) ( Int fd, OffT offset, Int whence);
+extern OffT VG_(lseek) ( Int fd, OffT offset, Int whence );
=20
extern SysRes VG_(stat) ( Char* file_name, struct vki_stat* buf );
extern Int VG_(fstat) ( Int fd, struct vki_stat* buf );
@@ -49,10 +49,10 @@
extern Int VG_(unlink) ( Char* file_name );
=20
// Returns False on failure (eg. if the buffer isn't big enough).
-extern Bool VG_(getcwd) ( Char* buf, SizeT size );
+extern Bool VG_(getcwd) ( Char* buf, SizeT size );
=20
-extern Int VG_(readlink)( Char* path, Char* buf, UInt bufsize );
-extern Int VG_(getdents)( UInt fd, struct vki_dirent *dirp, UInt count =
);
+extern Int VG_(readlink)( Char* path, Char* buf, UInt bufsize );
+extern Int VG_(getdents)( UInt fd, struct vki_dirent *dirp, UInt coun=
t );
=20
#endif // __PUB_TOOL_LIBCFILE_H
=20
Modified: branches/ASPACEM/include/pub_tool_libcproc.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/include/pub_tool_libcproc.h 2005-08-09 12:30:07 UTC =
(rev 4353)
+++ branches/ASPACEM/include/pub_tool_libcproc.h 2005-08-09 17:59:26 UTC =
(rev 4354)
@@ -64,11 +64,12 @@
pids, etc
------------------------------------------------------------------ */
=20
-extern Int VG_(gettid) ( void );
+extern Int VG_(gettid) ( void );
extern Int VG_(getpid) ( void );
extern Int VG_(getppid) ( void );
extern Int VG_(getpgrp) ( void );
-extern Int VG_(setpgid) ( Int pid, Int pgrp );
+extern Int VG_(geteuid) ( void );
+extern Int VG_(getegid) ( void );
=20
/* ---------------------------------------------------------------------
Timing
|
|
From: Rich C. <Ric...@me...> - 2005-08-09 17:46:39
|
This adds
- explicitly making the html documents as part of the build
(some make problem?)
- removing the destination directory, so that subsequent rebuilds don't
stop
- changing the source location for the html and image files
- making the regression tests as part of the build
You can ignore Patch1 if you want. It is the patch I submitted yesterday to
add a suppression to a problem in my glibc-2.3.5.
Hopefully someone might find this helpful.
--
Rich Coe ric...@me...
General Electric Healthcare Technologies
Global Software Platforms, Computer Technology Team
--- /src/valgrind-3.0.0/valgrind.spec 2005-08-08 16:26:05.000000000 -0500
+++ valgrind.spec 2005-08-08 18:30:53.829735680 -0500
@@ -8,6 +8,7 @@
Group: Development/Debuggers
Packager: Jeremy Fitzhardinge <je...@go...>
Source: valgrind-3.0.0.tar.bz2
+Patch1: valgrind-3.0.0-glibc-2.3-patch
Buildroot: %{_tmppath}/%{name}-root
@@ -25,14 +26,19 @@
%prep
%setup -n valgrind-3.0.0
+%patch1
%build
%configure
make
+make regtest || :
%install
+rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
+make -C docs html-docs
+
%makeinstall
mkdir docs.installed
mv $RPM_BUILD_ROOT%{_datadir}/doc/valgrind/* docs.installed/
@@ -40,7 +46,7 @@
%files
%defattr(-,root,root)
%doc ACKNOWLEDGEMENTS AUTHORS COPYING FAQ.txt INSTALL NEWS README*
-%doc docs.installed/*.html docs.installed/*.gif
+%doc docs.installed/html/* docs.installed/html/images/*
%{_bindir}/*
%{_includedir}/valgrind
%{_libdir}/valgrind
|
|
From: Maurice v. d. P. <gri...@ge...> - 2005-08-09 17:34:52
|
On Mon, Aug 08, 2005 at 08:21:00PM +0100, Julian Seward wrote: > - A rewritten address space manager, which will finally make=20 > the thing work properly on 64-bit platforms, and should > provide a better base for porting to non-Linux OSs. Is this new code also meant to allow PIE builds? Not that I'm a fan of building with PIE, but at the moment I have no way of disabling it other than patching configure. The reason for this is that we have compiler profiles that default to PIE and actually need a flag to disable it. Maurice. --=20 Maurice van der Pot Gentoo Linux Developer gri...@ge... http://www.gentoo.org Creator of BiteMe! gri...@kf... http://www.kfk4ever.com |
|
From: <sv...@va...> - 2005-08-09 00:52:13
|
Author: sewardj
Date: 2005-08-08 20:47:43 +0100 (Mon, 08 Aug 2005)
New Revision: 4348
Log:
Begin GCing after instituting static linking: get rid of stuff
pertaining to the padding file. Also get rid of #include <dlfcn.h>,
hurrah.
Modified:
branches/ASPACEM/coregrind/m_main.c
Modified: branches/ASPACEM/coregrind/m_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/ASPACEM/coregrind/m_main.c 2005-08-08 18:32:54 UTC (rev 4347=
)
+++ branches/ASPACEM/coregrind/m_main.c 2005-08-08 19:47:43 UTC (rev 4348=
)
@@ -61,7 +61,7 @@
#include "pub_core_ume.h"
=20
#include <dirent.h>
-#include <dlfcn.h>
+//#include <dlfcn.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
@@ -1184,71 +1184,7 @@
VG_(brk_base) =3D VG_(brk_limit) =3D info->brkbase;
}
=20
-/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
-/*=3D=3D=3D Address space unpadding =
=3D=3D=3D*/
-/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
=20
-typedef struct {
- char* killpad_start;
- char* killpad_end;
- struct vki_stat* killpad_padstat;
-} killpad_extra;
-
-static int killpad(char *segstart, char *segend, const char *perm, off_t=
off,=20
- int maj, int min, int ino, void* ex)
-{
- killpad_extra* extra =3D ex;
- void *b, *e;
- SysRes res;
-
- vg_assert(NULL !=3D extra->killpad_padstat);
-
- if (extra->killpad_padstat->st_dev !=3D makedev(maj, min) ||=20
- extra->killpad_padstat->st_ino !=3D ino)
- return 1;
- =20
- if (segend <=3D extra->killpad_start || segstart >=3D extra->killpad_=
end)
- return 1;
- =20
- if (segstart <=3D extra->killpad_start)
- b =3D extra->killpad_start;
- else
- b =3D segstart;
- =20
- if (segend >=3D extra->killpad_end)
- e =3D extra->killpad_end;
- else
- e =3D segend;
- =20
- res =3D VG_(munmap_native)(b, (char *)e-(char *)b);
- vg_assert(!res.isError);
- =20
- return 1;
-}
-
-// Remove padding of 'padfile' from a range of address space.
-static void as_unpad(void *start, void *end, int padfile)
-{
- static struct vki_stat padstat;
- killpad_extra extra;
- int res;
-
- vg_assert(padfile >=3D 0);
- =20
- res =3D VG_(fstat)(padfile, &padstat);
- vg_assert(0 =3D=3D res);
- extra.killpad_padstat =3D &padstat;
- extra.killpad_start =3D start;
- extra.killpad_end =3D end;
- VG_(foreach_map)(killpad, &extra);
-}
-
-static void as_closepadfile(int padfile)
-{
- int res =3D close(padfile);
- vg_assert(0 =3D=3D res);
-}
-
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
/*=3D=3D=3D Command-line: variables, processing, etc =
=3D=3D=3D*/
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D*/
@@ -2431,13 +2367,13 @@
}
=20
=20
-int main(int argc, char **argv, char **envp)
+Int main(Int argc, HChar **argv, HChar **envp)
{
- char **cl_argv;
- const char *tool =3D "memcheck"; // default to Memcheck
- const char *exec =3D NULL;
- char *preload; /* tool-specific LD_PRELOAD .so */
- char **env;
+ HChar **cl_argv;
+ const HChar *tool =3D "memcheck"; // default to Memcheck
+ const HChar *exec =3D NULL;
+ HChar *preload; /* tool-specific LD_PRELOAD .so */
+ HChar **env;
Int need_help =3D 0; // 0 =3D no, 1 =3D --help, 2 =3D --help-deb=
ug
struct exeinfo info;
ToolInfo *toolinfo =3D NULL;
@@ -2445,7 +2381,7 @@
Addr sp_at_startup; /* client's SP at the point we gained control=
. */
UInt * client_auxv;
struct vki_rlimit zero =3D { 0, 0 };
- Int padfile, loglevel, i;
+ Int loglevel, i;
=20
//=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
// Nb: startup is complex. Prerequisites are shown at every step.
|