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: <sv...@va...> - 2005-08-08 20:38:25
|
Author: sewardj
Date: 2005-08-08 20:49:58 +0100 (Mon, 08 Aug 2005)
New Revision: 4349
Log:
Not needed in the new direct-start static linking scheme.
Removed:
branches/ASPACEM/coregrind/stage1.c
Deleted: branches/ASPACEM/coregrind/stage1.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/stage1.c 2005-08-08 19:47:43 UTC (rev 4348=
)
+++ branches/ASPACEM/coregrind/stage1.c 2005-08-08 19:49:58 UTC (rev 4349=
)
@@ -1,372 +0,0 @@
-
-/*--------------------------------------------------------------------*/
-/*--- Startup: preliminaries stage1.c ---*/
-/*--------------------------------------------------------------------*/
-
-/*
- This file is part of Valgrind, a dynamic binary instrumentation
- framework.
-
- Copyright (C) 2000-2005 Julian Seward=20
- js...@ac...
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307, USA.
-
- The GNU General Public License is contained in the file COPYING.
-*/
-
-#define _FILE_OFFSET_BITS 64
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <signal.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <sys/resource.h>
-#include <unistd.h>
-
-#include "memcheck/memcheck.h"
-#include "pub_core_basics.h"
-#include "pub_core_debuglog.h"
-#include "pub_core_libcbase.h" // For VG_PGROUNDUP, VG_PGROUNDDN
-#include "pub_core_libcproc.h" // For VALGRINDLIB
-#include "pub_core_ume.h"
-
-
-static int stack[SIGSTKSZ*4];
-
-// Initial stack pointer, which points to argc.
-static void* init_sp;
-
-/* Where we expect to find all our aux files (namely, stage2) */
-static const char *valgrind_lib =3D VG_LIBDIR;
-
-/* stage2's name */
-static const char stage2[] =3D "stage2";
-
-/*------------------------------------------------------------*/
-/*--- Auxv modification ---*/
-/*------------------------------------------------------------*/
-
-/* Modify the auxv the kernel gave us to make it look like we were
- execed as the shared object.
-
- This also inserts a new entry into the auxv table so we can
- communicate some extra information to stage2 (namely, the fd of the
- padding file, so it can identiry and remove the padding later).
-*/
-static void *fix_auxv(void *v_init_esp, const struct exeinfo *info,
- int padfile)
-{
- struct ume_auxv *auxv;
- int *newesp;
- int seen;
- int delta;
- int i;
- static const int new_entries =3D 2;
-
- /* make sure we're running on the private stack */
- assert(&delta >=3D stack && &delta < &stack[sizeof(stack)/sizeof(*sta=
ck)]);
- =20
- /* find the beginning of the AUXV table */
- auxv =3D VG_(find_auxv)(v_init_esp);
-
- /* Work out how we should move things to make space for the new
- auxv entry. It seems that ld.so wants a 16-byte aligned stack on
- entry, so make sure that's the case. */
- newesp =3D (int *)(((unsigned long)v_init_esp - new_entries * sizeof(=
*auxv)) & ~0xf);
- delta =3D (char *)v_init_esp - (char *)newesp;
-
- memmove(newesp, v_init_esp, (char *)auxv - (char *)v_init_esp);
- =20
- v_init_esp =3D (void *)newesp;
- auxv -=3D delta/sizeof(*auxv);
-
- /* stage2 needs this so it can clean up the padding we leave in
- place when we start it */
- auxv[0].a_type =3D AT_UME_PADFD;
- auxv[0].u.a_val =3D padfile;
-
- /* This will be needed by valgrind itself so that it can
- subsequently execve() children. This needs to be done here
- because /proc/self/exe will go away once we unmap stage1. */
- auxv[1].a_type =3D AT_UME_EXECFD;
- auxv[1].u.a_val =3D open("/proc/self/exe", O_RDONLY);
-
- /* make sure the rest are sane */
- for(i =3D new_entries; i < delta/sizeof(*auxv); i++) {
- auxv[i].a_type =3D AT_IGNORE;
- auxv[i].u.a_val =3D 0;
- }
-
- /* OK, go through and patch up the auxv entries to match the new
- executable */
- seen =3D 0;
- for(; auxv->a_type !=3D AT_NULL; auxv++) {
- if (0)
- printf("doing auxv %p %5lld: %lld %p\n",
- auxv, (Long)auxv->a_type, (Long)auxv->u.a_val, auxv->u.a=
_ptr);
-
- switch(auxv->a_type) {
- case AT_PHDR:
- seen |=3D 1;
- auxv->u.a_val =3D info->phdr;
- break;
-
- case AT_PHNUM:
- seen |=3D 2;
- auxv->u.a_val =3D info->phnum;
- break;
-
- case AT_BASE:
- seen |=3D 4;
- auxv->u.a_val =3D info->interp_base;
- break;
-
- case AT_ENTRY:
- seen |=3D 8;
- auxv->u.a_val =3D info->entry;
- break;
-
-#if (defined(AT_SYSINFO) || defined(AT_SYSINFO_EHDR))
-#ifdef AT_SYSINFO
- case AT_SYSINFO:
-#endif
-#ifdef AT_SYSINFO_EHDR
- case AT_SYSINFO_EHDR:
-#endif
- auxv->a_type =3D AT_IGNORE;
- break;
-#endif
- }
- }
-
- /* If we didn't see all the entries we need to fix up, then we
- can't make the new executable viable. */
- if (seen !=3D 0xf) {
- fprintf(stderr, "valgrind: we didn't see enough auxv entries (seen=
=3D%x)\n", seen);
- exit(1);
- }
-
- return v_init_esp;
-}
-
-
-/*------------------------------------------------------------*/
-/*--- Address space padding ---*/
-/*------------------------------------------------------------*/
-
-static void check_mmap(void* res, void* base, int len)
-{
- if ((void*)-1 =3D=3D res) {
- fprintf(stderr, "valgrind: padding mmap(%p, %d) failed during star=
tup.\n"
- "valgrind: is there a hard virtual memory limit se=
t?\n",
- base, len);
- exit(1);
- }
-}
-
-typedef struct {
- char* fillgap_start;
- char* fillgap_end;
- int fillgap_padfile;
-} fillgap_extra;
-
-static int fillgap(char *segstart, char *segend, const char *perm, off_t=
off,=20
- int maj, int min, int ino, void* e)
-{
- fillgap_extra* extra =3D e;
-
- if (segstart >=3D extra->fillgap_end)
- return 0;
-
- if (segstart > extra->fillgap_start) {
- void* res =3D mmap(extra->fillgap_start, segstart - extra->fillgap=
_start,
- PROT_NONE, MAP_FIXED|MAP_PRIVATE,=20
- extra->fillgap_padfile, 0);
- check_mmap(res, extra->fillgap_start, segstart - extra->fillgap_st=
art);
- }
- extra->fillgap_start =3D segend;
- =20
- return 1;
-}
-
-// Choose a name for the padfile, open it.
-static=20
-int as_openpadfile(void)
-{
- char buf[256];
- int padfile;
- int seq =3D 1;
- do {
- snprintf(buf, 256, "/tmp/.pad.%d.%d", getpid(), seq++);
- padfile =3D open(buf, O_RDWR|O_CREAT|O_EXCL, 0);
- unlink(buf);
- if (padfile =3D=3D -1 && errno !=3D EEXIST) {
- fprintf(stderr, "valgrind: couldn't open padfile\n");
- exit(44);
- }
- } while(padfile =3D=3D -1);
-
- return padfile;
-}
-
-// Pad all the empty spaces in a range of address space to stop interlop=
ers.
-static
-void as_pad(void *start, void *end, int padfile)
-{
- fillgap_extra extra;
- extra.fillgap_start =3D start;
- extra.fillgap_end =3D end;
- extra.fillgap_padfile =3D padfile;
-
- VG_(foreach_map)(fillgap, &extra);
-=09
- if (extra.fillgap_start < extra.fillgap_end) {
- void* res =3D mmap(extra.fillgap_start,=20
- extra.fillgap_end - extra.fillgap_start,
- PROT_NONE, MAP_FIXED|MAP_PRIVATE, padfile, 0);
- check_mmap(res, extra.fillgap_start,=20
- extra.fillgap_end - extra.fillgap_start);
- }
-}
-
-
-/*------------------------------------------------------------*/
-/*--- main() and related pieces ---*/
-/*------------------------------------------------------------*/
-
-static int prmap(char *start, char *end, const char *perm, off_t off, in=
t maj,
- int min, int ino, void* dummy) {
- printf("mapping %10p-%10p %s %02x:%02x %d\n",
- start, end, perm, maj, min, ino);
- return 1;
-}
-
-
-static void main2(void)
-{
- int err, padfile;
- struct exeinfo info;
- extern char _end;
- int *esp;
- char buf[strlen(valgrind_lib) + sizeof(stage2) + 16];
- info.exe_end =3D VG_PGROUNDDN(init_sp);
-#ifdef HAVE_PIE
- info.exe_base =3D VG_ROUNDDN(info.exe_end - 0x02000000, 0x10000000);
- assert(info.exe_base >=3D VG_PGROUNDUP(&_end));
- info.map_base =3D info.exe_base + 0x01000000;
-#else
- // If this system doesn't have PIE (position-independent executables)=
,
- // we have to choose a hardwired location for stage2.
- info.exe_base =3D VG_PGROUNDUP(&_end);
- info.map_base =3D KICKSTART_BASE + 0x01000000;
-#endif
-
- info.argv =3D NULL;
-
- snprintf(buf, sizeof(buf), "%s/%s", valgrind_lib, stage2);
-
- err =3D VG_(do_exec)(buf, &info);
-
- if (err !=3D 0) {
- fprintf(stderr, "valgrind: failed to load %s: %s\n",
- buf, strerror(err));
- exit(1);
- }
-
- /* Make sure stage2's dynamic linker can't tromp on the lower part
- of the address space. */
- padfile =3D as_openpadfile();
- as_pad(0, (void *)info.map_base, padfile);
- =20
- esp =3D fix_auxv(init_sp, &info, padfile);
-
- if (0) {
- printf("---------- launch stage 2 ----------\n");
- printf("eip=3D%p esp=3D%p\n", (void *)info.init_eip, esp);
- VG_(foreach_map)(prmap, /*dummy*/NULL);
- }
-
- VG_(debugLog)(1, "stage1", "main2(): starting stage2\n");
- VG_(jump_and_switch_stacks)(
- (Addr) esp, /* stack */
- (Addr) info.init_eip /* where to */
- );
-
- /*NOTREACHED*/
- assert(0);=20
-}
-
-
-int main(int argc, char** argv)
-{
- struct rlimit rlim;
- const char *cp;
- int i, loglevel;
-
- /* Start the debugging-log system ASAP. First find out how many=20
- "-d"s were specified. This is a pre-scan of the command line. */
- loglevel =3D 0;
- for (i =3D 1; i < argc; i++) {
- if (argv[i][0] !=3D '-')
- break;
- if (0 =3D=3D strcmp(argv[i], "--"))=20
- break;
- if (0 =3D=3D strcmp(argv[i], "-d"))=20
- loglevel++;
- }
-
- /* ... and start the debug logger. Now we can safely emit logging
- messages all through startup. */
- VG_(debugLog_startup)(loglevel, "Stage 1");
-
- // Initial stack pointer is to argc, which is immediately before argv=
[0]
- // on the stack. Nb: Assumes argc is word-aligned.
- init_sp =3D argv - 1;
-
- /* The Linux libc startup sequence leaves this in an apparently
- undefined state, but it really is defined, so mark it so. */
- VALGRIND_MAKE_READABLE(init_sp, sizeof(Word));
-
- cp =3D getenv(VALGRINDLIB);
-
- if (cp !=3D NULL)
- valgrind_lib =3D cp;
-
- /* Set the address space limit as high as it will go, since we make
- a lot of very large mappings. */
- getrlimit(RLIMIT_AS, &rlim);
- rlim.rlim_cur =3D rlim.rlim_max;
- setrlimit(RLIMIT_AS, &rlim);
-
- /* move onto another stack so we can play with the main one */
- VG_(debugLog)(1, "stage1", "main(): running main2() on new stack\n");
- VG_(jump_and_switch_stacks)(
- (Addr) stack + sizeof(stack), /* stack */
- (Addr) main2 /* where to */
- );
-
- /*NOTREACHED*/
- assert(0);=20
-}
-
-/*--------------------------------------------------------------------*/
-/*--- end stage1.c ---*/
-/*--------------------------------------------------------------------*/
|
|
From: Nicholas N. <nj...@cs...> - 2005-08-08 18:36:29
|
On Mon, 8 Aug 2005, Tom Hughes wrote: >> Who broke 'scalar'? It happened on three of the test machines... > > That would be me... It should be fixed now. Thanks! |
|
From: Nicholas N. <nj...@cs...> - 2005-08-08 18:35:49
|
On Mon, 8 Aug 2005, Dirk Mueller wrote: >> Hi Dirk. Unclear .. do you mean backporting to 2.4.X or to 3.0.X? > > 3.0.x actually. I know nobody else besides me cares about 2.4.x :) 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. If one person is assigned to this they would be the official 3.0.X maintainer, I guess, although it would be good if people committing bugfixes to the trunk tried to remember to commit them to 3_0_X as well. N |
|
From: Tom H. <to...@co...> - 2005-08-08 18:33:56
|
In message <Pin...@ch...>
Nicholas Nethercote <nj...@cs...> wrote:
> On Mon, 8 Aug 2005, Tom Hughes wrote:
>
> > ! == 180 tests, 2 stderr failures, 0 stdout failures =================
> > none/tests/faultstatus (stderr)
> > --- 8,11 ----
> >
> > ! == 180 tests, 3 stderr failures, 0 stdout failures =================
> > ! memcheck/tests/x86/scalar (stderr)
> > none/tests/faultstatus (stderr)
>
> Who broke 'scalar'? It happened on three of the test machines...
That would be me... It should be fixed now.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: <sv...@va...> - 2005-08-08 18:32:58
|
Author: tom
Date: 2005-08-08 19:32:54 +0100 (Mon, 08 Aug 2005)
New Revision: 4347
Log:
Fix up the sigaction results.
Modified:
trunk/memcheck/tests/x86/scalar.c
trunk/memcheck/tests/x86/scalar.stderr.exp
trunk/memcheck/tests/x86/scalar.stderr.exp2
Modified: trunk/memcheck/tests/x86/scalar.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/memcheck/tests/x86/scalar.c 2005-08-08 16:50:16 UTC (rev 4346)
+++ trunk/memcheck/tests/x86/scalar.c 2005-08-08 18:32:54 UTC (rev 4347)
@@ -763,7 +763,7 @@
=20
// __NR_rt_sigaction 174
GO(__NR_rt_sigaction, "4s 2m");
- SY(__NR_rt_sigaction, x0, x0+1, x0+1, x0); FAIL;
+ SY(__NR_rt_sigaction, x0, x0+&px[2], x0+&px[2], x0); FAIL;
=20
// __NR_rt_sigprocmask 175
GO(__NR_rt_sigprocmask, "4s 2m");
Modified: trunk/memcheck/tests/x86/scalar.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/x86/scalar.stderr.exp 2005-08-08 16:50:16 UTC (r=
ev 4346)
+++ trunk/memcheck/tests/x86/scalar.stderr.exp 2005-08-08 18:32:54 UTC (r=
ev 4347)
@@ -800,7 +800,7 @@
by 0x........: __libc_start_main (in /...libc...)
by 0x........: ...
=20
-Syscall param sigaction(act) points to unaddressable byte(s)
+Syscall param sigaction(act->sa_handler) points to unaddressable byte(s)
at 0x........: syscall (in /...libc...)
by 0x........: __libc_start_main (in /...libc...)
by 0x........: ...
@@ -808,6 +808,22 @@
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (scalar.c:24)
=20
+Syscall param sigaction(act->sa_mask) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (in /...libc...)
+ by 0x........: ...
+ Address 0x........ is 4 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (scalar.c:24)
+
+Syscall param sigaction(act->sa_flags) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (in /...libc...)
+ by 0x........: ...
+ Address 0x........ is 8 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (scalar.c:24)
+
Syscall param sigaction(oldact) points to unaddressable byte(s)
at 0x........: syscall (in /...libc...)
by 0x........: __libc_start_main (in /...libc...)
@@ -2400,17 +2416,35 @@
by 0x........: __libc_start_main (in /...libc...)
by 0x........: ...
=20
-Syscall param rt_sigaction(act) points to unaddressable byte(s)
+Syscall param rt_sigaction(act->sa_handler) points to unaddressable byte=
(s)
at 0x........: syscall (in /...libc...)
by 0x........: __libc_start_main (in /...libc...)
by 0x........: ...
+ Address 0x........ is 4 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (scalar.c:24)
+
+Syscall param rt_sigaction(act->sa_mask) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (in /...libc...)
+ by 0x........: ...
Address 0x........ is not stack'd, malloc'd or (recently) free'd
=20
+Syscall param rt_sigaction(act->sa_flags) points to unaddressable byte(s=
)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (in /...libc...)
+ by 0x........: ...
+ Address 0x........ is 8 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (scalar.c:24)
+
Syscall param rt_sigaction(oldact) points to unaddressable byte(s)
at 0x........: syscall (in /...libc...)
by 0x........: __libc_start_main (in /...libc...)
by 0x........: ...
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ Address 0x........ is 4 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (scalar.c:24)
-----------------------------------------------------
175: __NR_rt_sigprocmask 4s 2m
-----------------------------------------------------
Modified: trunk/memcheck/tests/x86/scalar.stderr.exp2
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/x86/scalar.stderr.exp2 2005-08-08 16:50:16 UTC (=
rev 4346)
+++ trunk/memcheck/tests/x86/scalar.stderr.exp2 2005-08-08 18:32:54 UTC (=
rev 4347)
@@ -718,13 +718,27 @@
at 0x........: syscall (in /...libc...)
by 0x........: main (scalar.c:320)
=20
-Syscall param sigaction(act) points to unaddressable byte(s)
+Syscall param sigaction(act->sa_handler) points to unaddressable byte(s)
at 0x........: syscall (in /...libc...)
by 0x........: main (scalar.c:320)
Address 0x........ is 0 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (scalar.c:24)
=20
+Syscall param sigaction(act->sa_mask) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: main (scalar.c:320)
+ Address 0x........ is 4 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (scalar.c:24)
+
+Syscall param sigaction(act->sa_flags) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: main (scalar.c:320)
+ Address 0x........ is 8 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (scalar.c:24)
+
Syscall param sigaction(oldact) points to unaddressable byte(s)
at 0x........: syscall (in /...libc...)
by 0x........: main (scalar.c:320)
@@ -2081,15 +2095,31 @@
at 0x........: syscall (in /...libc...)
by 0x........: main (scalar.c:766)
=20
-Syscall param rt_sigaction(act) points to unaddressable byte(s)
+Syscall param rt_sigaction(act->sa_handler) points to unaddressable byte=
(s)
at 0x........: syscall (in /...libc...)
by 0x........: main (scalar.c:766)
+ Address 0x........ is 4 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (scalar.c:24)
+
+Syscall param rt_sigaction(act->sa_mask) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: main (scalar.c:766)
Address 0x........ is not stack'd, malloc'd or (recently) free'd
=20
+Syscall param rt_sigaction(act->sa_flags) points to unaddressable byte(s=
)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: main (scalar.c:766)
+ Address 0x........ is 8 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (scalar.c:24)
+
Syscall param rt_sigaction(oldact) points to unaddressable byte(s)
at 0x........: syscall (in /...libc...)
by 0x........: main (scalar.c:766)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
+ Address 0x........ is 4 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (scalar.c:24)
-----------------------------------------------------
175: __NR_rt_sigprocmask 4s 2m
-----------------------------------------------------
|
|
From: Nicholas N. <nj...@cs...> - 2005-08-08 18:32:27
|
On Mon, 8 Aug 2005, Julian Seward wrote: > I'd like to do a 3.0.1 relatively soon, to fix easily-fixed > breakage in 3.0.0. Sounds good. > - 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. Yes! A lot of the outstanding problems and bugs are related to this. > - reinstate, or delete, Addrcheck. This could involve a > study of the compressed-Vbit-representation problem. > > - review the thread-modelling stuff, so that at a minimum the > pthread-API-abuse checks can be reinstated, and, ultimately, > Helgrind can be fixed up. Both would be good, I think it will come down to whether anyone has time to look at them; they're both sizeable projects. > I'd like to have 3.1.0 out within the next three months if that > proves viable. Taking (another) leaf from the Gcc Way Of Doing > Things, that would mean at most 2 months of new feature hacking > followed by a 1-month stabilisation period. Also sounds good. > Generally speaking, as we move on from 3.0, the emphasis changes > from dealing with different instruction sets to making the system > level simulation more portable, so as to improve the possibility > of porting away from Linux. A side effect of that is to continue > the modularisation/restructuring of the code base that started > a couple of months back. Again, yes, sounds good. N |
|
From: Dirk M. <dm...@gm...> - 2005-08-08 17:47:25
|
On Monday 08 August 2005 22:29, Julian Seward wrote: > Hi Dirk. Unclear .. do you mean backporting to 2.4.X or to 3.0.X? 3.0.x actually. I know nobody else besides me cares about 2.4.x :) Dirk |
|
From: Julian S. <js...@ac...> - 2005-08-08 17:11:52
|
Hi Dirk. Unclear .. do you mean backporting to 2.4.X or to 3.0.X? J On Monday 08 August 2005 17:37, Dirk Mueller wrote: > Hi, > > whats the policy on branch backports? can everybody (me) do it or is it > reserved for release preparation purposes? > > Dirk > > > ------------------------------------------------------- > SF.Net email is Sponsored by the Better Software Conference & EXPO > September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices > Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA > Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers |
|
From: <sv...@va...> - 2005-08-08 16:50:19
|
Author: tom
Date: 2005-08-08 17:50:16 +0100 (Mon, 08 Aug 2005)
New Revision: 4346
Log:
Fix system call name in error messages.
Modified:
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.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_syswrap/syswrap-x86-linux.c 2005-08-08 15:06:35 UTC=
(rev 4345)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-08-08 16:50:16 UTC=
(rev 4346)
@@ -1873,11 +1873,11 @@
=20
if (ARG2 !=3D 0) {
struct vki_old_sigaction *sa =3D (struct vki_old_sigaction *)ARG2;
- PRE_MEM_READ( "rt_sigaction(act->sa_handler)", (Addr)&sa->ksa_hand=
ler, sizeof(sa->ksa_handler));
- PRE_MEM_READ( "rt_sigaction(act->sa_mask)", (Addr)&sa->sa_mask, si=
zeof(sa->sa_mask));
- PRE_MEM_READ( "rt_sigaction(act->sa_flags)", (Addr)&sa->sa_flags, =
sizeof(sa->sa_flags));
+ PRE_MEM_READ( "sigaction(act->sa_handler)", (Addr)&sa->ksa_handler=
, sizeof(sa->ksa_handler));
+ PRE_MEM_READ( "sigaction(act->sa_mask)", (Addr)&sa->sa_mask, sizeo=
f(sa->sa_mask));
+ PRE_MEM_READ( "sigaction(act->sa_flags)", (Addr)&sa->sa_flags, siz=
eof(sa->sa_flags));
if (sa->sa_flags & VKI_SA_RESTORER)
- PRE_MEM_READ( "rt_sigaction(act->sa_restorer)", (Addr)&sa->sa_r=
estorer, sizeof(sa->sa_restorer));
+ PRE_MEM_READ( "sigaction(act->sa_restorer)", (Addr)&sa->sa_rest=
orer, sizeof(sa->sa_restorer));
}
=20
if (ARG3 !=3D 0) {
|
|
From: Dirk M. <dm...@gm...> - 2005-08-08 16:38:09
|
Hi, whats the policy on branch backports? can everybody (me) do it or is it reserved for release preparation purposes? Dirk |
|
From: Julian S. <js...@ac...> - 2005-08-08 16:09:55
|
It's great we finally got 3.0.0 out the door. Here are some thoughts about What Next. I'd like to do a 3.0.1 relatively soon, to fix easily-fixed breakage in 3.0.0. Given that the most obvious breakage in 3.0.0 is likely to get reported quickly, emitting 3.0.1 some time in the last week of August would get a stabler 3.0.X to users relatively soon. Thinking about 3.1, I'd like to ship two things which didn't make 3.0: - 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. - Support for 32-bit PowerPC-Linux. The code is already in there but has various problems which mean it isn't usable at the moment. It would be nice to ship in 3.1 fixes for some of the more ominous looking problems in 3.0. Currently the only one I can think of is 110205 (sigcancel handler fails: stack unwinds into valgrind). Some other lines of enquiry which would be good to at least consider for 3.1 are: - reinstate, or delete, Addrcheck. This could involve a study of the compressed-Vbit-representation problem. - review the thread-modelling stuff, so that at a minimum the pthread-API-abuse checks can be reinstated, and, ultimately, Helgrind can be fixed up. I'd like to have 3.1.0 out within the next three months if that proves viable. Taking (another) leaf from the Gcc Way Of Doing Things, that would mean at most 2 months of new feature hacking followed by a 1-month stabilisation period. Generally speaking, as we move on from 3.0, the emphasis changes from dealing with different instruction sets to making the system level simulation more portable, so as to improve the possibility of porting away from Linux. A side effect of that is to continue the modularisation/restructuring of the code base that started a couple of months back. Comments, thoughts, other stuff that needs doing? J |
|
From: Nicholas N. <nj...@cs...> - 2005-08-08 15:08:29
|
On Mon, 8 Aug 2005, Tom Hughes wrote: > ================================================= > == Difference between 24 hours ago and now == > ================================================= > > *** old.short Mon Aug 8 03:17:55 2005 > --- new.short Mon Aug 8 03:24:12 2005 > *************** > *** 8,10 **** > > ! == 180 tests, 2 stderr failures, 0 stdout failures ================= > none/tests/faultstatus (stderr) > --- 8,11 ---- > > ! == 180 tests, 3 stderr failures, 0 stdout failures ================= > ! memcheck/tests/x86/scalar (stderr) > none/tests/faultstatus (stderr) Who broke 'scalar'? It happened on three of the test machines... N |
|
From: <sv...@va...> - 2005-08-08 15:06:44
|
Author: njn
Date: 2005-08-08 16:06:35 +0100 (Mon, 08 Aug 2005)
New Revision: 4345
Log:
Make it work on machine's other than Julian's.
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 13:48:49 UTC (rev 4344=
)
+++ branches/ASPACEM/coregrind/m_main.c 2005-08-08 15:06:35 UTC (rev 4345=
)
@@ -1012,8 +1012,21 @@
extern ToolInfo VG_(tool_info);
*toolinfo_out =3D &VG_(tool_info);
/* HHHHHHHHACCCCCCCCCCK */
- *preloadpath_out =3D "/home/sewardj/VgASPACEM/aspacem/Inst/lib/valgri=
nd/vgpreload_memcheck.so";
+ //*preloadpath_out =3D "/home/sewardj/VgASPACEM/aspacem/Inst/lib/valg=
rind/vgpreload_memcheck.so";
+ int len =3D strlen(VG_(libdir)) + strlen(toolname) + 16;
+ char buf[len];
+ char* preloadpath =3D NULL;
=20
+ snprintf(buf, len, "%s/vgpreload_%s.so", VG_(libdir), toolname);
+ if (access(buf, R_OK) =3D=3D 0) {
+ preloadpath =3D strdup(buf);
+ *preloadpath_out =3D preloadpath;
+ } else {
+ fprintf(stderr, "valgrind: couldn't load tool\n");
+ list_tools();
+ exit(127);
+ }
+
//zz Bool ok;
//zz int len =3D strlen(VG_(libdir)) + strlen(toolname) + 16;
//zz char buf[len];
|
|
From: <sv...@va...> - 2005-08-08 13:48:56
|
Author: sewardj
Date: 2005-08-08 14:48:49 +0100 (Mon, 08 Aug 2005)
New Revision: 4344
Log:
Preload the correct .so for memcheck, and intercepting works and so
direct-start memcheck is usable!
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 13:19:58 UTC (rev 4343=
)
+++ branches/ASPACEM/coregrind/m_main.c 2005-08-08 13:48:49 UTC (rev 4344=
)
@@ -1012,7 +1012,7 @@
extern ToolInfo VG_(tool_info);
*toolinfo_out =3D &VG_(tool_info);
/* HHHHHHHHACCCCCCCCCCK */
- *preloadpath_out =3D "/home/sewardj/VgASPACEM/aspacem/Inst/lib/valgri=
nd/vg_preload_core.so";
+ *preloadpath_out =3D "/home/sewardj/VgASPACEM/aspacem/Inst/lib/valgri=
nd/vgpreload_memcheck.so";
=20
//zz Bool ok;
//zz int len =3D strlen(VG_(libdir)) + strlen(toolname) + 16;
|
|
From: <sv...@va...> - 2005-08-08 13:20:04
|
Author: sewardj
Date: 2005-08-08 14:19:58 +0100 (Mon, 08 Aug 2005)
New Revision: 4343
Log:
Fix enough stuff so that static linking of valgrind_memcheck at a
non-standard address actually works as claimed. The resulting
(direct-start-) memcheck can load and run ls, xedit, etc, although you
get swamped with errors because redirection isn't working for some
reason.
Modified:
branches/ASPACEM/coregrind/m_main.c
branches/ASPACEM/memcheck/Makefile.am
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 12:14:46 UTC (rev 4342=
)
+++ branches/ASPACEM/coregrind/m_main.c 2005-08-08 13:19:58 UTC (rev 4343=
)
@@ -151,56 +151,39 @@
/*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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
/* Look for our AUXV table */
-static int scan_auxv(void* init_sp)
+static void scan_auxv(void* init_sp)
{
struct ume_auxv *auxv =3D VG_(find_auxv)((UWord*)init_sp);
- int padfile =3D -1, found =3D 0;
=20
- for (; auxv->a_type !=3D AT_NULL; auxv++)
+ for (; auxv->a_type !=3D AT_NULL; auxv++) {
switch(auxv->a_type) {
- case AT_UME_PADFD:
- padfile =3D auxv->u.a_val;
- found |=3D 1;
- break;
-
- case AT_UME_EXECFD:
- vgexecfd =3D auxv->u.a_val;
- found |=3D 2;
- break;
-
# if defined(VGP_ppc32_linux)
- case AT_DCACHEBSIZE:
- case AT_ICACHEBSIZE:
- case AT_UCACHEBSIZE:
- if (auxv->u.a_val > 0) {
- VG_(cache_line_size_ppc32) =3D auxv->u.a_val;
- VG_(debugLog)(1, "main",=20
- "PPC32 cache line size %u (type %u)\n",=20
- (UInt)auxv->u.a_val, (UInt)auxv->a_type );
- }
- break;
+ case AT_DCACHEBSIZE:
+ case AT_ICACHEBSIZE:
+ case AT_UCACHEBSIZE:
+ if (auxv->u.a_val > 0) {
+ VG_(cache_line_size_ppc32) =3D auxv->u.a_val;
+ VG_(debugLog)(1, "main",=20
+ "PPC32 cache line size %u (type %u)\n",=20
+ (UInt)auxv->u.a_val, (UInt)auxv->a_type =
);
+ }
+ break;
=20
- case AT_HWCAP:
- VG_(debugLog)(1, "main", "PPC32 hwcaps(1): 0x%x\n", (UInt)auxv-=
>u.a_val);
- auxv->u.a_val &=3D ~0x10000000; /* claim there is no Altivec su=
pport */
- VG_(debugLog)(1, "main", "PPC32 hwcaps(2): 0x%x\n", (UInt)auxv-=
>u.a_val);
- break;
-# endif
+ case AT_HWCAP:
+ VG_(debugLog)(1, "main", "PPC32 hwcaps(1): 0x%x\n", (UInt)au=
xv->u.a_val);
+ auxv->u.a_val &=3D ~0x10000000; /* claim there is no Altivec=
support */
+ VG_(debugLog)(1, "main", "PPC32 hwcaps(2): 0x%x\n", (UInt)au=
xv->u.a_val);
+ break;
+# endif
=20
- case AT_PHDR:
- VG_(valgrind_base) =3D VG_PGROUNDDN(auxv->u.a_val);
- break;
+ case AT_PHDR:
+ VG_(valgrind_base) =3D VG_PGROUNDDN(auxv->u.a_val);
+ break;
=20
- default:
- break;
+ default:
+ break;
}
-
- if ( found !=3D (1|2) ) {
- fprintf(stderr, "valgrind: stage2 must be launched by stage1\n");
- exit(127);
}
- vg_assert(padfile >=3D 0);
- return padfile;
}
=20
=20
@@ -1029,7 +1012,7 @@
extern ToolInfo VG_(tool_info);
*toolinfo_out =3D &VG_(tool_info);
/* HHHHHHHHACCCCCCCCCCK */
- *preloadpath_out =3D "/home/sewardj/VgASPACE/aspace/coregrind/vg_prel=
oad_core.so";
+ *preloadpath_out =3D "/home/sewardj/VgASPACEM/aspacem/Inst/lib/valgri=
nd/vg_preload_core.so";
=20
//zz Bool ok;
//zz int len =3D strlen(VG_(libdir)) + strlen(toolname) + 16;
@@ -2504,7 +2487,7 @@
VG_(debugLog)(1, "main", "Doing scan_auxv()\n");
{
void* init_sp =3D argv - 1;
- padfile =3D scan_auxv(init_sp);
+ scan_auxv(init_sp);
}
=20
//--------------------------------------------------------------
@@ -2579,8 +2562,8 @@
// p: layout_remaining_space() [everything must be mapped in befor=
e now] =20
// p: load_client() [ditto]=20
//--------------------------------------------------------------
- as_unpad((void *)VG_(shadow_end), (void *)~0, padfile);
- as_closepadfile(padfile); // no more padding
+ //as_unpad((void *)VG_(shadow_end), (void *)~0, padfile);
+ //as_closepadfile(padfile); // no more padding
=20
//--------------------------------------------------------------
// Set up client's environment
Modified: branches/ASPACEM/memcheck/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/Makefile.am 2005-08-08 12:14:46 UTC (rev 43=
42)
+++ branches/ASPACEM/memcheck/Makefile.am 2005-08-08 13:19:58 UTC (rev 43=
43)
@@ -23,12 +23,11 @@
mac_shared.c \
mc_translate.c
valgrind_memcheck_LDFLAGS =3D \
- $(top_srcdir)/coregrind/libcoregrind.a
+ -static \
+ $(top_srcdir)/coregrind/libcoregrind.a \
+ -Wl,-defsym,valt_load_address=3D@VALT_LOAD_ADDRESS@ \
+ -Wl,-T,$(top_srcdir)/valt_load_address.lds
=20
-# \
-# -Wl,-T,$(top_srcdir)/valt_load_address.lds \
-# -Wl,-defsym,valt_load_address=3D@VALT_LOAD_ADDRESS@
-
mcincludedir =3D $(includedir)/valgrind
=20
mcinclude_HEADERS =3D \
|
|
From: <sv...@va...> - 2005-08-08 12:15:04
|
Author: sewardj
Date: 2005-08-08 13:14:46 +0100 (Mon, 08 Aug 2005)
New Revision: 4342
Log:
Nasty build-system hackery to get coregrind/ built as a library
against which tools are statically linked. Currently what is here at
the moment is able to construct a statically linked (?) binary
valgrind_memcheck and install it in $(prefix)/bin. Note, the resulting
binary does not work yet.
There is an appalling kludge which would benefit from the attention of
people more skilled than me in the Art Of Automake:
In coregrind, I fundamentally want automake to build 'libcoregrind.a'.
And automake is all set up to do that. Except .. automake constructs
the .a by using /usr/bin/ar, which is a problem because some of the
inputs to libcoregrind.a are themselves .a files (specifically, the
results of building any m_modulename/ directory). And so ar barfs.
My horrible hack is tell automake that the name of 'ar' is in fact 'ld
-r -o'. Since ld is able to accept both .o and .a files as input this
works, except that the resulting libcoregrind.a is actually a .o file.
If anybody knows how to fix this properly I would be happy to hear
from you.
Other changes:
- renamed all aspects of the magic linker script 'stage2.lds' to
'valt_load_address.lds' and lift it up to the top level directory,
since all tools will need to see it when they are linked.
- got rid of everything to do with PIE
Other kludges:
- load_tool() in m_main.c is now kludged to (1) just return &VG_(tool_inf=
o)
and (2) to return a hardwired preloadpath. These will need to be
fixed properly.
Modified:
branches/ASPACEM/Makefile.am
branches/ASPACEM/Makefile.core-AM_CPPFLAGS.am
branches/ASPACEM/configure.in
branches/ASPACEM/coregrind/Makefile.am
branches/ASPACEM/coregrind/m_main.c
branches/ASPACEM/memcheck/Makefile.am
branches/ASPACEM/memcheck/tests/Makefile.am
Modified: branches/ASPACEM/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/Makefile.am 2005-08-08 08:59:42 UTC (rev 4341)
+++ branches/ASPACEM/Makefile.am 2005-08-08 12:14:46 UTC (rev 4342)
@@ -31,8 +31,8 @@
incincdir =3D $(includedir)/valgrind
nodist_incinc_HEADERS =3D $(VEX_PUBLIC_HDRS)
=20
-BUILT_SOURCES =3D default.supp valgrind.pc
-
+BUILT_SOURCES =3D default.supp valgrind.pc valt_load_address.lds
+CLEANFILES =3D valt_load_address.lds
DISTCLEANFILES =3D default.supp
=20
default.supp: $(SUPP_FILES)
@@ -140,3 +140,32 @@
VEX/priv/host-amd64/isel.c \
VEX/priv/host-amd64/hdefs.c \
VEX/priv/host-amd64/hdefs.h
+
+
+# Generate a linker script for linking the binaries. This is the
+# standard gcc linker script, except hacked so that an alternative
+# load address can be specified by (1) asking gcc to use this script
+# (-Wl,-T,valt_load_address.lds) and (2) setting the symbol
+# valt_load_address to the required value
+# (-Wl,-defsym,valt_load_address=3D0x70000000).
+#
+# Extract ld's default linker script and hack it to our needs.
+# First we cut everything above and below the "=3D=3D=3D=3D=3D..." lines=
at the top
+# and bottom.
+# Then we have to replace the load address with "valt_load_address".
+# The line to replace in has one of the following two forms:
+#
+# . =3D 0x08048000 + SIZEOF_HEADERS;
+#
+# or
+# PROVIDE (__executable_start =3D 0x08048000); . =3D 0x08048000 + SIZE=
OF_HEADERS;
+#
+# So we search for the line with a hex value "+ SIZEOF_HEADERS", and rep=
lace
+# all the hex values in that line with "valt_load_address".
+valt_load_address.lds: Makefile
+ $(CC) -Wl,--verbose -nostdlib 2>&1 | sed \
+ -e '1,/^=3D=3D=3D=3D=3D\+$$/d' \
+ -e '/^=3D=3D=3D=3D=3D\+$$/d' \
+ -e '/\. =3D 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_lo=
ad_address/g' > $@ \
+ || rm -f $@
+
Modified: branches/ASPACEM/Makefile.core-AM_CPPFLAGS.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/Makefile.core-AM_CPPFLAGS.am 2005-08-08 08:59:42 UTC=
(rev 4341)
+++ branches/ASPACEM/Makefile.core-AM_CPPFLAGS.am 2005-08-08 12:14:46 UTC=
(rev 4342)
@@ -14,6 +14,6 @@
PIC_AM_CFLAGS =3D $(BASE_AM_CFLAGS) -fpic -fno-omit-frame-pointer
=20
AM_CPPFLAGS =3D $(add_includes)
-AM_CFLAGS =3D $(WERROR) @PIE_AM_CFLAGS@ $(BASE_AM_CFLAGS)
+AM_CFLAGS =3D $(WERROR) $(BASE_AM_CFLAGS)
AM_CCASFLAGS =3D $(add_includes) @ARCH_CORE_AM_CCASFLAGS@ -Wa,-gstabs
=20
Modified: branches/ASPACEM/configure.in
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/configure.in 2005-08-08 08:59:42 UTC (rev 4341)
+++ branches/ASPACEM/configure.in 2005-08-08 12:14:46 UTC (rev 4342)
@@ -1,5 +1,5 @@
# Process this file with autoconf to produce a configure script.
-AC_INIT(Valgrind, 3.1.SVN, val...@li...)
+AC_INIT(Valgrind, 3.1.ASPACEM, val...@li...)
AC_CONFIG_SRCDIR(coregrind/m_main.c)
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE
@@ -111,7 +111,7 @@
AC_SUBST(VG_ARCH)
AC_SUBST(VG_ARCH_ALL)
VG_ARCH_ALL=3D"amd64 ppc32 x86"
-AC_SUBST(KICKSTART_BASE)
+AC_SUBST(VALT_LOAD_ADDRESS)
AC_SUBST(ARCH_CORE_AM_CFLAGS)
AC_SUBST(ARCH_TOOL_AM_CFLAGS)
AC_SUBST(ARCH_CORE_AM_CCASFLAGS)
@@ -120,7 +120,7 @@
i?86)=20
AC_MSG_RESULT([ok (${host_cpu})])
VG_ARCH=3D"x86"
- KICKSTART_BASE=3D"0xb0000000"
+ VALT_LOAD_ADDRESS=3D"0xb0000000"
ARCH_CORE_AM_CFLAGS=3D"@FLAG_M32@ @PREFERRED_STACK_BOUNDARY@"
ARCH_TOOL_AM_CFLAGS=3D"@FLAG_M32@ @PREFERRED_STACK_BOUNDARY@"
ARCH_CORE_AM_CCASFLAGS=3D"@FLAG_M32@"
@@ -132,7 +132,7 @@
# XXX: relocations under amd64's "small model" are 32-bit signed
# quantities; therefore going above 0x7fffffff doesn't work... t=
his is
# a problem.
- KICKSTART_BASE=3D"0x70000000"
+ VALT_LOAD_ADDRESS=3D"0x70000000"
ARCH_CORE_AM_CFLAGS=3D"-m64 -fomit-frame-pointer @PREFERRED_STAC=
K_BOUNDARY@"=20
# XXX: need to use -fpic, otherwise when linking tools I get thi=
s error
# message:
@@ -147,7 +147,7 @@
powerpc*)
AC_MSG_RESULT([ok (${host_cpu})])
VG_ARCH=3D"ppc32"
- KICKSTART_BASE=3D"0x70000000"
+ VALT_LOAD_ADDRESS=3D"0x70000000"
ARCH_CORE_AM_CFLAGS=3D""
ARCH_TOOL_AM_CFLAGS=3D"-fpic"
ARCH_CORE_AM_CCASFLAGS=3D"-Wa,-maltivec"
@@ -416,19 +416,6 @@
fi
=20
=20
-# Check for PIE support in the compiler and linker
-AC_SUBST(PIE_AM_CFLAGS)
-AC_CACHE_CHECK([for PIE support], vg_cv_pie,
- [AC_ARG_ENABLE(pie, [ --enable-pie platform supports=
PIE linking],
- [vg_cv_pie=3D$enableval],
- [vg_cv_pie=3Dno] )])
-if test "$vg_cv_pie" =3D yes; then
-AC_DEFINE([HAVE_PIE], 1, [can create position-independent executables])
-PIE_AM_CFLAGS=3D"-fpie"
-fi
-AM_CONDITIONAL(USE_PIE, test "$vg_cv_pie" =3D "yes")
-
-
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([sys/endian.h endian.h mqueue.h])
Modified: branches/ASPACEM/coregrind/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/Makefile.am 2005-08-08 08:59:42 UTC (rev 4=
341)
+++ branches/ASPACEM/coregrind/Makefile.am 2005-08-08 12:14:46 UTC (rev 4=
342)
@@ -23,11 +23,17 @@
=20
default.supp: $(SUPP_FILES)
=20
-bin_PROGRAMS =3D \
- valgrind
+## XXXXXXXXXXXXX JRS 8 Aug 05: the next three lines constitute an
+## appalling hack. Although we purportedly create a .a file, in fact
+## it is really a .o (relocatable ELF object) file. The root reason
+## is that some of the inputs to libcoregrind.a are themselves .a files,
+## and I don't know how to get /usr/bin/ar to accept .a files as inputs.
+noinst_LIBRARIES =3D libcoregrind.a
+libcoregrind_a_AR =3D $(LD) --whole-archive -r -o
+RANLIB =3D echo "Not really ranlib-ing"
+## end of hack
=20
val_PROGRAMS =3D \
- stage2 \
vg_preload_core.so
=20
noinst_HEADERS =3D \
@@ -80,18 +86,10 @@
vki_unistd-ppc32-linux.h\
vki_unistd-x86-linux.h
=20
-BUILT_SOURCES =3D stage2.lds
-CLEANFILES =3D stage2.lds
+BUILT_SOURCES =3D=20
+CLEANFILES =3D=20
=20
-valgrind_SOURCES =3D \
- stage1.c \
- m_debuglog.c \
- m_ume.c
-valgrind_DEPENDENCIES =3D
-valgrind_LDFLAGS=3D-static -g
-valgrind_LDADD=3D
-
-stage2_SOURCES =3D \
+libcoregrind_a_SOURCES =3D \
m_cpuid.S \
m_debugger.c \
m_debuglog.c \
@@ -126,7 +124,7 @@
m_ume.c
=20
## Nb: libscheduler.a must precede libdispatch.a in this list.
-stage2_extra=3D \
+libcoregrind_a_extra=3D \
m_debuginfo/libdebuginfo.a \
m_demangle/libdemangle.a \
m_scheduler/libscheduler.a \
@@ -136,36 +134,27 @@
m_syswrap/libsyswrap.a \
@VEX_DIR@/libvex.a
=20
-## These ones must be linked in with the --whole-archive flag, because t=
hey
-## wouldn't get pulled into stage2 otherwise (because they contain symbo=
ls
-## only referred to by tool shared objects).
-stage2_extra2 =3D \
+## These ones must be linked in with the --whole-archive flag, because
+## they wouldn't get pulled into libcoregrind otherwise (because they
+## contain symbols only referred to by tool shared objects).
+libcoregrind_a_extra2 =3D \
m_replacemalloc/libreplacemalloc_core.a
=20
## Nb: older versions of automake don't seem to like having +=3D within =
an
## if-then-else, so we have to use these variables for the common parts.
-st2_DEPS_common =3D \
- $(stage2_extra) \
- $(stage2_extra2)
+libcoregrind_a_DEPS_common =3D \
+ $(libcoregrind_a_extra) \
+ $(libcoregrind_a_extra2)
=20
st2_LDFLAGS_common =3D \
-Wl,--export-dynamic -g \
- -Wl,--whole-archive $(stage2_extra2) -Wl,--no-whole-archive
+ -Wl,--whole-archive $(libcoregrind_a_extra2) -Wl,--no-whole-archive
=20
-if USE_PIE
-stage2_DEPENDENCIES =3D $(st2_DEPS_common)
-stage2_LDFLAGS =3D \
- $(st2_LDFLAGS_common) \
- -pie
-else
-stage2_DEPENDENCIES =3D $(st2_DEPS_common) stage2.lds
-stage2_LDFLAGS =3D \
- $(st2_LDFLAGS_common) \
- -Wl,-defsym,kickstart_base=3D@KICKSTART_BASE@ -Wl,-T,stage2.lds
-endif
+libcoregrind_a_DEPENDENCIES =3D $(libcoregrind_a_DEPS_common)
+libcoregrind_a_LIBFLAGS =3D \
+ $(st2_LDFLAGS_common)
=20
-stage2_LDADD=3D $(stage2_extra) \
- -ldl
+libcoregrind_a_LIBADD=3D $(libcoregrind_a_extra) $(libcoregrind_a_extra2=
)
=20
vg_preload_core_so_SOURCES =3D vg_preloaded.c
vg_preload_core_so_CFLAGS =3D $(AM_CFLAGS) -fpic
@@ -175,28 +164,8 @@
-Wl,--soname,vg_preload_core.so \
-Wl,-z,initfirst
=20
-# Extract ld's default linker script and hack it to our needs.
-# First we cut everything above and below the "=3D=3D=3D=3D=3D..." lines=
at the top
-# and bottom.
-# Then we have to replace the load address with "kickstart_base".
-# The line to replace in has one of the following two forms:
-#
-# . =3D 0x08048000 + SIZEOF_HEADERS;
-#
-# or
-# PROVIDE (__executable_start =3D 0x08048000); . =3D 0x08048000 + SIZE=
OF_HEADERS;
-#
-# So we search for the line with a hex value "+ SIZEOF_HEADERS", and rep=
lace
-# all the hex values in that line with "kickstart_base".
-stage2.lds: Makefile
- $(CC) -Wl,--verbose -nostdlib 2>&1 | sed \
- -e '1,/^=3D=3D=3D=3D=3D\+$$/d' \
- -e '/^=3D=3D=3D=3D=3D\+$$/d' \
- -e '/\. =3D 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/kicksta=
rt_base/g' > $@ \
- || rm -f $@
-
@VEX_DIR@/libvex.a: @VEX_DIR@/priv/main/vex_svnversion.h
- $(MAKE) -C @VEX_DIR@ libvex.a EXTRA_CFLAGS=3D"@PIE_AM_CFLAGS@"
+ $(MAKE) -C @VEX_DIR@ libvex.a
=20
@VEX_DIR@/priv/main/vex_svnversion.h:
$(MAKE) -C @VEX_DIR@ version
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 08:59:42 UTC (rev 4341=
)
+++ branches/ASPACEM/coregrind/m_main.c 2005-08-08 12:14:46 UTC (rev 4342=
)
@@ -1026,81 +1026,86 @@
static void load_tool( const char *toolname,
ToolInfo** toolinfo_out, char **preloadpath_out )
{
- Bool ok;
- int len =3D strlen(VG_(libdir)) + strlen(toolname) + 16;
- char buf[len];
- void* handle;
- ToolInfo* toolinfo;
- char* preloadpath =3D NULL;
+ extern ToolInfo VG_(tool_info);
+ *toolinfo_out =3D &VG_(tool_info);
+ /* HHHHHHHHACCCCCCCCCCK */
+ *preloadpath_out =3D "/home/sewardj/VgASPACE/aspace/coregrind/vg_prel=
oad_core.so";
=20
- // XXX: allowing full paths for --tool option -- does it make sense?
- // Doesn't allow for vgpreload_<tool>.so.
-
- if (strchr(toolname, '/') !=3D 0) {
- /* toolname contains '/', and so must be a pathname */
- handle =3D dlopen(toolname, RTLD_NOW);
- } else {
- /* just try in the libdir */
- snprintf(buf, len, "%s/vgtool_%s.so", VG_(libdir), toolname);
- handle =3D dlopen(buf, RTLD_NOW);
-
- if (handle !=3D NULL) {
- snprintf(buf, len, "%s/vgpreload_%s.so", VG_(libdir), toolname);
- if (access(buf, R_OK) =3D=3D 0) {
- preloadpath =3D strdup(buf);
- vg_assert(NULL !=3D preloadpath);
- }
- }
- }
-
- ok =3D (NULL !=3D handle);
- if (!ok) {
- fprintf(stderr, "Can't open tool \"%s\": %s\n", toolname, dlerror(=
));
- goto bad_load;
- }
-
- toolinfo =3D dlsym(handle, "vgPlain_tool_info");
- ok =3D (NULL !=3D toolinfo);
- if (!ok) {
- fprintf(stderr, "Tool \"%s\" doesn't define its ToolInfo - "
- "add VG_DETERMINE_INTERFACE_VERSION?\n", toolname)=
;
- goto bad_load;
- }
-
- ok =3D (toolinfo->sizeof_ToolInfo =3D=3D sizeof(*toolinfo) &&
- toolinfo->interface_version =3D=3D VG_CORE_INTERFACE_VERSION &&
- toolinfo->tl_pre_clo_init !=3D NULL);
- if (!ok) {=20
- fprintf(stderr, "Error:\n"
- " Tool and core interface versions do not match.\n"
- " Interface version used by core is: %d (size %d)\n"
- " Interface version used by tool is: %d (size %d)\n"
- " The version numbers must match.\n",
- VG_CORE_INTERFACE_VERSION,=20
- (Int)sizeof(*toolinfo),
- toolinfo->interface_version,
- toolinfo->sizeof_ToolInfo);
- fprintf(stderr, " You need to at least recompile, and possibly up=
date,\n");
- if (VG_CORE_INTERFACE_VERSION > toolinfo->interface_version)
- fprintf(stderr, " your tool to work with this version of Valgr=
ind.\n");
- else
- fprintf(stderr, " your version of Valgrind to work with this t=
ool.\n");
- goto bad_load;
- }
-
- vg_assert(NULL !=3D toolinfo);
- *toolinfo_out =3D toolinfo;
- *preloadpath_out =3D preloadpath;
- return;
-
-
- bad_load:
- if (handle !=3D NULL)
- dlclose(handle);
-
- fprintf(stderr, "valgrind: couldn't load tool\n");
- list_tools();
- exit(127);
+//zz Bool ok;
+//zz int len =3D strlen(VG_(libdir)) + strlen(toolname) + 16;
+//zz char buf[len];
+//zz void* handle;
+//zz ToolInfo* toolinfo;
+//zz char* preloadpath =3D NULL;
+//zz=20
+//zz // XXX: allowing full paths for --tool option -- does it make se=
nse?
+//zz // Doesn't allow for vgpreload_<tool>.so.
+//zz=20
+//zz if (strchr(toolname, '/') !=3D 0) {
+//zz /* toolname contains '/', and so must be a pathname */
+//zz handle =3D dlopen(toolname, RTLD_NOW);
+//zz } else {
+//zz /* just try in the libdir */
+//zz snprintf(buf, len, "%s/vgtool_%s.so", VG_(libdir), toolname);
+//zz handle =3D dlopen(buf, RTLD_NOW);
+//zz=20
+//zz if (handle !=3D NULL) {
+//zz snprintf(buf, len, "%s/vgpreload_%s.so", VG_(libdir), toolname);
+//zz if (access(buf, R_OK) =3D=3D 0) {
+//zz preloadpath =3D strdup(buf);
+//zz vg_assert(NULL !=3D preloadpath);
+//zz }
+//zz }
+//zz }
+//zz=20
+//zz ok =3D (NULL !=3D handle);
+//zz if (!ok) {
+//zz fprintf(stderr, "Can't open tool \"%s\": %s\n", toolname, dle=
rror());
+//zz goto bad_load;
+//zz }
+//zz=20
+//zz toolinfo =3D dlsym(handle, "vgPlain_tool_info");
+//zz ok =3D (NULL !=3D toolinfo);
+//zz if (!ok) {
+//zz fprintf(stderr, "Tool \"%s\" doesn't define its ToolInfo - "
+//zz "add VG_DETERMINE_INTERFACE_VERSION?\n", tool=
name);
+//zz goto bad_load;
+//zz }
+//zz=20
+//zz ok =3D (toolinfo->sizeof_ToolInfo =3D=3D sizeof(*toolinfo) &&
+//zz toolinfo->interface_version =3D=3D VG_CORE_INTERFACE_VERSI=
ON &&
+//zz toolinfo->tl_pre_clo_init !=3D NULL);
+//zz if (!ok) {=20
+//zz fprintf(stderr, "Error:\n"
+//zz " Tool and core interface versions do not match.\n"
+//zz " Interface version used by core is: %d (size %d)\n"
+//zz " Interface version used by tool is: %d (size %d)\n"
+//zz " The version numbers must match.\n",
+//zz VG_CORE_INTERFACE_VERSION,=20
+//zz (Int)sizeof(*toolinfo),
+//zz toolinfo->interface_version,
+//zz toolinfo->sizeof_ToolInfo);
+//zz fprintf(stderr, " You need to at least recompile, and possib=
ly update,\n");
+//zz if (VG_CORE_INTERFACE_VERSION > toolinfo->interface_version)
+//zz fprintf(stderr, " your tool to work with this version of =
Valgrind.\n");
+//zz else
+//zz fprintf(stderr, " your version of Valgrind to work with t=
his tool.\n");
+//zz goto bad_load;
+//zz }
+//zz=20
+//zz vg_assert(NULL !=3D toolinfo);
+//zz *toolinfo_out =3D toolinfo;
+//zz *preloadpath_out =3D preloadpath;
+//zz return;
+//zz=20
+//zz=20
+//zz bad_load:
+//zz if (handle !=3D NULL)
+//zz dlclose(handle);
+//zz=20
+//zz fprintf(stderr, "valgrind: couldn't load tool\n");
+//zz list_tools();
+//zz exit(127);
}
=20
=20
Modified: branches/ASPACEM/memcheck/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/Makefile.am 2005-08-08 08:59:42 UTC (rev 43=
41)
+++ branches/ASPACEM/memcheck/Makefile.am 2005-08-08 12:14:46 UTC (rev 43=
42)
@@ -3,7 +3,8 @@
## Build Memcheck at a higher optimisation level
AM_CFLAGS +=3D -O2
=20
-val_PROGRAMS =3D vgtool_memcheck.so vgpreload_memcheck.so
+val_PROGRAMS =3D vgpreload_memcheck.so
+bin_PROGRAMS =3D valgrind_memcheck
=20
vgpreload_memcheck_so_SOURCES =3D \
mac_replace_strmem.c
@@ -14,14 +15,20 @@
$(LIBREPLACEMALLOC) \
-Wl,--no-whole-archive
=20
-vgtool_memcheck_so_SOURCES =3D \
+valgrind_memcheck_DEPENDENCIES =3D $(top_srcdir)/coregrind/libcoregrind.=
a
+valgrind_memcheck_SOURCES =3D \
mac_leakcheck.c \
mac_malloc_wrappers.c \
mc_main.c \
mac_shared.c \
mc_translate.c
-vgtool_memcheck_so_LDFLAGS =3D -shared
+valgrind_memcheck_LDFLAGS =3D \
+ $(top_srcdir)/coregrind/libcoregrind.a
=20
+# \
+# -Wl,-T,$(top_srcdir)/valt_load_address.lds \
+# -Wl,-defsym,valt_load_address=3D@VALT_LOAD_ADDRESS@
+
mcincludedir =3D $(includedir)/valgrind
=20
mcinclude_HEADERS =3D \
Modified: branches/ASPACEM/memcheck/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/memcheck/tests/Makefile.am 2005-08-08 08:59:42 UTC (=
rev 4341)
+++ branches/ASPACEM/memcheck/tests/Makefile.am 2005-08-08 12:14:46 UTC (=
rev 4342)
@@ -133,18 +133,9 @@
new_override_SOURCES =3D new_override.cpp
=20
# Valgrind unit self-tests
-## If we support PIE, build hello as a PIE, otherwise vgtest_ume cannot =
load
-## (I'm not completely sure why, since stage2 can load both PIEs and non=
-PIEs,
-## maybe it's because stage2 is loaded up high; anyway, it doesn't real=
ly
-## matter so long as vgtest_ume can load hello ok. --njn)
-if USE_PIE
-hello_CFLAGS =3D $(AM_CFLAGS) -fpie
-hello_LDFLAGS =3D -pie
-else
-hello_LDFLAGS =3D -Wl,-defsym,kickstart_base=3D0x50000000 \
- -Wl,-T,../../coregrind/stage2.lds
-hello_DEPENDENCIES =3D ../../coregrind/stage2.lds
-endif
+hello_LDFLAGS =3D -Wl,-defsym,valt_load_address=3D0x50000000 \
+ -Wl,-T,../../../valt_load_address.lds
+hello_DEPENDENCIES =3D ../../../valt_load_address.lds
=20
vgtest_ume_CFLAGS =3D -DVGA_$(VG_ARCH) -DVGO_$(VG_OS)
vgtest_ume_LDADD =3D ../../coregrind/m_ume.o
|
|
From: Kailash S. <hs...@gm...> - 2005-08-08 11:10:29
|
Hi, On 8/8/05, Julian Seward <js...@ac...> wrote: > I lost them or at least I have no idea where they are any more :-) > But it doesn't matter; the important part was checking out the > idea. I have just made a new svn branch to play with this stuff > and tracking that might be a good plan: >=20 > svn co svn://svn.valgrind.org/valgrind/branches/ASPACEM aspacem >=20 > J >=20 After much debugging, dynamic stage2 can be loaded from a static stage1 on netbsd :) . However, we are unable to open the tool due to malloc issues. I shall be trying to locate a library for netbsd that uses mmap as the backend as Naveen suggested. Or hack mapmalloc into NetBSD. I have also checked out the ASPACEM branch, and we will be tracking it closely, and syncing with it. Thanks and Regards, Kailash |
|
From: <sv...@va...> - 2005-08-08 09:58:14
|
Author: sewardj
Date: 2005-08-08 10:58:05 +0100 (Mon, 08 Aug 2005)
New Revision: 1322
Log:
Reenable FST %st(0),%st(?) (0xDD 0xD0 .. 0xDD 0xD7).
Modified:
trunk/priv/guest-amd64/toIR.c
Modified: trunk/priv/guest-amd64/toIR.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/priv/guest-amd64/toIR.c 2005-08-08 00:33:37 UTC (rev 1321)
+++ trunk/priv/guest-amd64/toIR.c 2005-08-08 09:58:05 UTC (rev 1322)
@@ -5372,14 +5372,14 @@
put_ST_TAG ( r_dst, mkU8(0) );
break;
=20
-//.. case 0xD0 ... 0xD7: /* FST %st(0),%st(?) */
-//.. r_dst =3D (UInt)modrm - 0xD0;
-//.. DIP("fst %%st(0),%%st(%d)\n", r_dst);
-//.. /* P4 manual says: "If the destination operand is a
-//.. non-empty register, the invalid-operation excepti=
on
-//.. is not generated. Hence put_ST_UNCHECKED. */
-//.. put_ST_UNCHECKED(r_dst, get_ST(0));
-//.. break;
+ case 0xD0 ... 0xD7: /* FST %st(0),%st(?) */
+ r_dst =3D (UInt)modrm - 0xD0;
+ DIP("fst %%st(0),%%st(%d)\n", r_dst);
+ /* P4 manual says: "If the destination operand is a
+ non-empty register, the invalid-operation exception
+ is not generated. Hence put_ST_UNCHECKED. */
+ put_ST_UNCHECKED(r_dst, get_ST(0));
+ break;
=20
case 0xD8 ... 0xDF: /* FSTP %st(0),%st(?) */
r_dst =3D (UInt)modrm - 0xD8;
|
|
From: Julian S. <js...@ac...> - 2005-08-08 09:24:09
|
On Sunday 07 August 2005 16:01, Kailash Sethuraman wrote: > > The result is (for each tool) a statically linked valgrind > > binary which can be started directly. > > I think this is a good plan which would greatly help improve portability. > > > So .. I already tried out most of this -- the removal of > > stage1 and the static linking work at least on x86 linux. > > Do you have experimental patches for this? I could try this on NetBSD too, > The valgrind port of netbsd is based on a snapshot of valgrind-current > from a few weeks ago. I lost them or at least I have no idea where they are any more :-) But it doesn't matter; the important part was checking out the idea. I have just made a new svn branch to play with this stuff and tracking that might be a good plan: svn co svn://svn.valgrind.org/valgrind/branches/ASPACEM aspacem J |
|
From: <sv...@va...> - 2005-08-08 08:59:48
|
Author: sewardj Date: 2005-08-08 09:59:42 +0100 (Mon, 08 Aug 2005) New Revision: 4341 Log: Make a copy of valgrind/trunk r4340 for experimental hackery on the new address space manager. Added: branches/ASPACEM/ Copied: branches/ASPACEM (from rev 4340, trunk) |
|
From: <js...@ac...> - 2005-08-08 03:18:18
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2005-08-08 04:40:00 CEST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 154 tests, 90 stderr failures, 7 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/badaddrvalue (stderr) memcheck/tests/badfree-2trace (stderr) memcheck/tests/badfree (stderr) memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/badloop (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/badrw (stderr) memcheck/tests/brk (stderr) memcheck/tests/brk2 (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/clientperm (stderr) memcheck/tests/custom_alloc (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/doublefree (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/errs1 (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/exitprog (stderr) memcheck/tests/fprw (stderr) memcheck/tests/fwrite (stderr) memcheck/tests/inits (stderr) memcheck/tests/inline (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/malloc1 (stderr) memcheck/tests/malloc2 (stderr) memcheck/tests/malloc3 (stderr) memcheck/tests/manuel1 (stderr) memcheck/tests/manuel2 (stderr) memcheck/tests/manuel3 (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/memalign2 (stderr) memcheck/tests/memalign_test (stderr) memcheck/tests/memcmptest (stderr) memcheck/tests/mempool (stderr) memcheck/tests/mismatches (stderr) memcheck/tests/mmaptest (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/nanoleak_supp (stderr) memcheck/tests/new_nothrow (stderr) memcheck/tests/new_override (stderr) memcheck/tests/null_socket (stderr) memcheck/tests/overlap (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/post-syscall (stdout) memcheck/tests/post-syscall (stderr) memcheck/tests/realloc1 (stderr) memcheck/tests/realloc2 (stderr) memcheck/tests/realloc3 (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/signal2 (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/str_tester (stderr) memcheck/tests/strchr (stderr) memcheck/tests/supp1 (stderr) memcheck/tests/supp2 (stderr) memcheck/tests/suppfree (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/trivialleak (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/with-space (stderr) memcheck/tests/writev (stderr) memcheck/tests/xml1 (stderr) memcheck/tests/zeropage (stderr) cachegrind/tests/chdir (stderr) cachegrind/tests/dlclose (stdout) cachegrind/tests/dlclose (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/fdleak_creat (stderr) none/tests/fdleak_dup (stderr) none/tests/fdleak_dup2 (stderr) none/tests/fdleak_fcntl (stderr) none/tests/fdleak_ipv4 (stderr) none/tests/fdleak_open (stderr) none/tests/fdleak_pipe (stderr) none/tests/fdleak_socketpair (stderr) none/tests/manythreads (stdout) none/tests/manythreads (stderr) none/tests/pending (stdout) none/tests/pending (stderr) none/tests/pth_blockedsig (stderr) none/tests/pth_cancel1 (stdout) none/tests/pth_cancel1 (stderr) none/tests/pth_cancel2 (stderr) none/tests/thread-exits (stdout) none/tests/thread-exits (stderr) |
|
From: Tom H. <to...@co...> - 2005-08-08 02:41:47
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-08-08 03:30:04 BST Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 181 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 181 tests, 5 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Aug 8 03:35:55 2005 --- new.short Mon Aug 8 03:41:37 2005 *************** *** 8,12 **** ! == 181 tests, 5 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) --- 8,13 ---- ! == 181 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/weirdioctl (stderr) + memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) |
|
From: Tom H. <th...@cy...> - 2005-08-08 02:34:38
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-08-08 03:00:04 BST Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 159 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/vgtest_ume (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/tls (stdout) |
|
From: Tom H. <th...@cy...> - 2005-08-08 02:27:29
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-08-08 03:15:02 BST Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 180 tests, 15 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 180 tests, 14 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Aug 8 03:21:00 2005 --- new.short Mon Aug 8 03:27:25 2005 *************** *** 8,10 **** ! == 180 tests, 14 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) --- 8,10 ---- ! == 180 tests, 15 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) *************** *** 21,22 **** --- 21,23 ---- memcheck/tests/stack_changes (stderr) + memcheck/tests/x86/scalar (stderr) none/tests/faultstatus (stderr) |
|
From: Tom H. <th...@cy...> - 2005-08-08 02:24:18
|
Nightly build on ginetta ( i686, Red Hat 8.0 ) started at 2005-08-08 03:10:07 BST Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 180 tests, 3 stderr failures, 0 stdout failures ================= memcheck/tests/x86/scalar (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 180 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Aug 8 03:17:55 2005 --- new.short Mon Aug 8 03:24:12 2005 *************** *** 8,10 **** ! == 180 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) --- 8,11 ---- ! == 180 tests, 3 stderr failures, 0 stdout failures ================= ! memcheck/tests/x86/scalar (stderr) none/tests/faultstatus (stderr) |