|
From: <sv...@va...> - 2005-11-07 15:24:44
|
Author: tom
Date: 2005-11-07 15:24:38 +0000 (Mon, 07 Nov 2005)
New Revision: 5027
Log:
Dual architecture support - this commit is a major rework of the build
system that allows multiple copies of valgrind to be built so that we
can build both x86 and amd64 versions of the tools on amd64 machines.
The launcher is then modified to look at the program being run and
decide which tool to use to run it.
Added:
trunk/Makefile.flags.am
trunk/Makefile.install.am
Modified:
trunk/
trunk/Makefile.am
trunk/Makefile.core.am
trunk/Makefile.tool-flags.am
trunk/Makefile.tool-inplace.am
trunk/Makefile.tool.am
trunk/addrcheck/Makefile.am
trunk/cachegrind/
trunk/cachegrind/Makefile.am
trunk/configure.in
trunk/coregrind/Makefile.am
trunk/coregrind/launcher.c
trunk/coregrind/m_main.c
trunk/helgrind/
trunk/helgrind/Makefile.am
trunk/lackey/
trunk/lackey/Makefile.am
trunk/massif/
trunk/massif/Makefile.am
trunk/massif/hp2ps/Makefile.am
trunk/memcheck/
trunk/memcheck/Makefile.am
trunk/memcheck/tests/Makefile.am
trunk/none/
trunk/none/Makefile.am
Property changes on: trunk
___________________________________________________________________
Name: svn:ignore
- acinclude.m4
aclocal.m4
autom4te-*.cache
autom4te.cache
bin
cachegrind
cachegrind.out.*
compile
config.guess
config.h*
config.log
config.status
config.sub
configure
default.supp
depcomp
include
.in_place
install-sh
lib
Makefile
Makefile.in
missing
mkinstalldirs
share
stamp-h*
svn-commit.tmp
svn-commit.2.tmp
valgrind
valgrind.pc
valgrind.spec
valt_load_address.lds
vg_annotate
vg_cachegen
+ acinclude.m4
aclocal.m4
autom4te-*.cache
autom4te.cache
bin
cachegrind
cachegrind.out.*
compile
config.guess
config.h*
config.log
config.status
config.sub
configure
default.supp
depcomp
include
.in_place
install-sh
lib
Makefile
Makefile.in
missing
mkinstalldirs
share
stamp-h*
svn-commit.tmp
svn-commit.2.tmp
valgrind
valgrind.pc
valgrind.spec
valt_load_address*.lds
vg_annotate
vg_cachegen
Modified: trunk/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
--- trunk/Makefile.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/Makefile.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -31,10 +31,23 @@
incincdir =3D $(includedir)/valgrind
nodist_incinc_HEADERS =3D $(VEX_PUBLIC_HDRS)
=20
-BUILT_SOURCES =3D default.supp valgrind.pc valt_load_address.lds
-CLEANFILES =3D valt_load_address.lds
+BUILT_SOURCES =3D default.supp valgrind.pc
+CLEANFILES =3D=20
DISTCLEANFILES =3D default.supp
=20
+if VG_X86_LINUX
+BUILT_SOURCES +=3D valt_load_address_x86_linux.lds
+CLEANFILES +=3D valt_load_address_x86_linux.lds
+endif
+if VG_AMD64_LINUX
+BUILT_SOURCES +=3D valt_load_address_amd64_linux.lds
+CLEANFILES +=3D valt_load_address_amd64_linux.lds
+endif
+if VG_PPC32_LINUX
+BUILT_SOURCES +=3D valt_load_address_ppc32_linux.lds
+CLEANFILES +=3D valt_load_address_ppc32_linux.lds
+endif
+
default.supp: $(SUPP_FILES)
=20
## Preprend @PERL@ because tests/vg_regtest isn't executable
@@ -161,10 +174,23 @@
#
# 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
+valt_load_address_x86_linux.lds: Makefile
+ $(CC) @FLAG_M32@ -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 $@
+
+valt_load_address_amd64_linux.lds: Makefile
+ $(CC) -m64 -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 $@
+
+valt_load_address_ppc32_linux.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: trunk/Makefile.core.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
--- trunk/Makefile.core.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/Makefile.core.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -1,19 +1,42 @@
-add_includes =3D -I$(top_srcdir)/coregrind \
+add_includes_x86_linux =3D -I$(top_srcdir)/coregrind \
-I$(top_srcdir) \
- -I$(top_srcdir)/coregrind/$(VG_ARCH) \
- -I$(top_srcdir)/coregrind/$(VG_OS) \
- -I$(top_srcdir)/coregrind/$(VG_PLATFORM) \
+ -I$(top_srcdir)/coregrind/x86 \
+ -I$(top_srcdir)/coregrind/linux \
+ -I$(top_srcdir)/coregrind/x86-linux \
-I$(top_srcdir)/include \
-I@VEX_DIR@/pub \
- -DVGA_$(VG_ARCH)=3D1 \
- -DVGO_$(VG_OS)=3D1 \
- -DVGP_$(VG_ARCH)_$(VG_OS)=3D1
+ -DVG_PLATFORM=3D"\"x86-linux\"" \
+ -DVGA_x86=3D1 \
+ -DVGO_linux=3D1 \
+ -DVGP_x86_linux=3D1
=20
-BASE_AM_CFLAGS =3D @ARCH_CORE_AM_CFLAGS@ -Wmissing-prototypes -Winline -=
Wall -Wshadow -O -g
+add_includes_amd64_linux =3D -I$(top_srcdir)/coregrind \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/coregrind/amd64 \
+ -I$(top_srcdir)/coregrind/linux \
+ -I$(top_srcdir)/coregrind/amd64-linux \
+ -I$(top_srcdir)/include \
+ -I@VEX_DIR@/pub \
+ -DVG_PLATFORM=3D"\"amd64-linux\"" \
+ -DVGA_amd64=3D1 \
+ -DVGO_linux=3D1 \
+ -DVGP_amd64_linux=3D1
=20
-PIC_AM_CFLAGS =3D $(BASE_AM_CFLAGS) -fpic -fno-omit-frame-pointer
+add_includes_ppc32_linux =3D -I$(top_srcdir)/coregrind \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/coregrind/ppc32 \
+ -I$(top_srcdir)/coregrind/linux \
+ -I$(top_srcdir)/coregrind/ppc32-linux \
+ -I$(top_srcdir)/include \
+ -I@VEX_DIR@/pub \
+ -DVG_PLATFORM=3D"\"ppc32-linux\"" \
+ -DVGA_ppc32=3D1 \
+ -DVGO_linux=3D1 \
+ -DVGP_ppc32_linux=3D1
=20
-AM_CPPFLAGS =3D $(add_includes)
-AM_CFLAGS =3D $(WERROR) $(BASE_AM_CFLAGS)
-AM_CCASFLAGS =3D $(add_includes) @ARCH_CORE_AM_CCASFLAGS@ -Wa,-gstabs
+include $(top_srcdir)/Makefile.flags.am
=20
+PRELOAD_LDFLAGS_COMMON =3D -shared -Wl,-z,interpose,-z,initfirst
+PRELOAD_LDFLAGS_X86_LINUX =3D $(PRELOAD_LDFLAGS_COMMON) @FLAG_M32@
+PRELOAD_LDFLAGS_AMD64_LINUX =3D $(PRELOAD_LDFLAGS_COMMON) -m64
+PRELOAD_LDFLAGS_PPC32_LINUX =3D $(PRELOAD_LDFLAGS_COMMON)
Added: trunk/Makefile.flags.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
--- trunk/Makefile.flags.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/Makefile.flags.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -0,0 +1,21 @@
+AM_CFLAGS_BASE =3D -Wmissing-prototypes -Winline -Wall -Wshadow -O -g
+
+AM_CFLAGS_PIC =3D -fpic -fno-omit-frame-pointer
+
+AM_CPPFLAGS_X86_LINUX =3D $(add_includes_x86_linux)
+AM_CFLAGS_X86_LINUX =3D $(WERROR) @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ =
$(AM_CFLAGS_BASE)
+AM_CCASFLAGS_X86_LINUX =3D $(add_includes_x86_linux) @FLAG_M32@ -g
+
+AM_CPPFLAGS_AMD64_LINUX =3D $(add_includes_amd64_linux)
+AM_CFLAGS_AMD64_LINUX =3D $(WERROR) -m64 -fomit-frame-pointer @PREFERRED=
_STACK_BOUNDARY@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_AMD64_LINUX =3D $(add_includes_amd64_linux) -m64 -g
+
+AM_CPPFLAGS_PPC32_LINUX =3D $(add_includes_ppc32_linux)
+AM_CFLAGS_PPC32_LINUX =3D $(WERROR) -fpic $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC32_LINUX =3D $(add_includes_ppc32_linux) -Wa,-maltivec -=
g
+
+PLATFORM =3D $(shell echo @VG_PLATFORM@ | tr '[a-z-]' '[A-Z_]')
+
+$(eval AM_CPPFLAGS =3D $(value AM_CPPFLAGS_$(PLATFORM)))
+$(eval AM_CFLAGS =3D $(value AM_CFLAGS_$(PLATFORM)))
+$(eval AM_CCASFLAGS =3D $(value AM_CCASFLAGS_$(PLATFORM)))
Added: trunk/Makefile.install.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
--- trunk/Makefile.install.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/Makefile.install.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -0,0 +1,7 @@
+install-exec-local:
+ for f in $(noinst_PROGRAMS); do \
+ p=3D`echo $$f | sed -e 's/^[^-]*-//' -e 's/\..*$$//'`; \
+ n=3D`echo $$f | sed -e 's/-[^-]\{1,\}-[^-.]\{1,\}//'`; \
+ $(mkinstalldirs) $(DESTDIR)$(valdir)/$$p; \
+ $(INSTALL_PROGRAM) $$f $(DESTDIR)$(valdir)/$$p/$$n; \
+ done
Modified: trunk/Makefile.tool-flags.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
--- trunk/Makefile.tool-flags.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/Makefile.tool-flags.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -1,10 +1,19 @@
-add_includes =3D -I$(top_srcdir)/include \
+add_includes_x86_linux =3D -I$(top_srcdir)/include \
-I@VEX_DIR@/pub \
- -DVGA_$(VG_ARCH)=3D1 \
- -DVGO_$(VG_OS)=3D1 \
- -DVGP_$(VG_ARCH)_$(VG_OS)=3D1
+ -DVGA_x86=3D1 \
+ -DVGO_linux=3D1 \
+ -DVGP_x86_linux=3D1
=20
-AM_CPPFLAGS =3D $(add_includes)
-AM_CFLAGS =3D $(WERROR) -Wmissing-prototypes -Winline -Wall -Wshadow -O =
-g @ARCH_TOOL_AM_CFLAGS@
-AM_CCASFLAGS =3D $(add_includes)
+add_includes_amd64_linux =3D -I$(top_srcdir)/include \
+ -I@VEX_DIR@/pub \
+ -DVGA_amd64=3D1 \
+ -DVGO_linux=3D1 \
+ -DVGP_amd64_linux=3D1
=20
+add_includes_ppc32_linux =3D -I$(top_srcdir)/include \
+ -I@VEX_DIR@/pub \
+ -DVGA_ppc32=3D1 \
+ -DVGO_linux=3D1 \
+ -DVGP_ppc32_linux=3D1
+
+include $(top_srcdir)/Makefile.flags.am
Modified: trunk/Makefile.tool-inplace.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
--- trunk/Makefile.tool-inplace.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/Makefile.tool-inplace.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -1,4 +1,8 @@
all-local:
- mkdir -p $(inplacedir)
- -rm -f $(addprefix $(inplacedir)/,$(val_PROGRAMS))
- ln -f -s $(addprefix ../$(subdir)/,$(val_PROGRAMS)) $(inplacedir)
+ for f in $(noinst_PROGRAMS); do \
+ p=3D`echo $$f | sed -e 's/^[^-]*-//' -e 's/\..*$$//'`; \
+ n=3D`echo $$f | sed -e 's/-[^-]\{1,\}-[^-.]\{1,\}//'`; \
+ mkdir -p $(inplacedir)/$$p; \
+ rm -f $(inplacedir)/$$p/$$n; \
+ ln -f -s ../../$(subdir)/$$f $(inplacedir)/$$p/$$n; \
+ done
Modified: trunk/Makefile.tool.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
--- trunk/Makefile.tool.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/Makefile.tool.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -2,29 +2,79 @@
SUBDIRS =3D . tests docs
=20
include $(top_srcdir)/Makefile.all.am
+include $(top_srcdir)/Makefile.install.am
include $(top_srcdir)/Makefile.tool-flags.am
include $(top_srcdir)/Makefile.tool-inplace.am
=20
-LIBREPLACEMALLOC =3D $(top_builddir)/coregrind/libreplacemalloc_toolprel=
oad.a
+LIBREPLACEMALLOC_X86_LINUX =3D \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload_x86_linux.a
=20
-COREGRIND_LIBS =3D \
- $(top_builddir)/coregrind/libcoregrind.a \
- @VEX_DIR@/libvex.a
+LIBREPLACEMALLOC_AMD64_LINUX =3D \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload_amd64_linux.a
=20
+LIBREPLACEMALLOC_PPC32_LINUX =3D \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload_ppc32_linux.a
+
+COREGRIND_LIBS_X86_LINUX =3D \
+ $(top_builddir)/coregrind/libcoregrind_x86_linux.a \
+ @VEX_DIR@/libvex_x86_linux.a
+
+COREGRIND_LIBS_AMD64_LINUX =3D \
+ $(top_builddir)/coregrind/libcoregrind_amd64_linux.a \
+ @VEX_DIR@/libvex_amd64_linux.a
+
+COREGRIND_LIBS_PPC32_LINUX =3D \
+ $(top_builddir)/coregrind/libcoregrind_ppc32_linux.a \
+ @VEX_DIR@/libvex_ppc32_linux.a
+
##.PHONY: @VEX_DIR@/libvex.a
=20
-@VEX_DIR@/libvex.a: @VEX_DIR@/priv/main/vex_svnversion.h
- $(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" libvex.a EXTRA_CFLAGS=3D"@ARCH_CORE_A=
M_CFLAGS@"
+@VEX_DIR@/libvex_x86_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
+ $(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" libvex_x86_linux.a EXTRA_CFLAGS=3D"$(=
AM_CFLAGS_X86_LINUX)"
=20
+@VEX_DIR@/libvex_amd64_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
+ $(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" libvex_amd64_linux.a EXTRA_CFLAGS=3D"=
$(AM_CFLAGS_AMD64_LINUX)"
+
+@VEX_DIR@/libvex_ppc32_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
+ $(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" libvex_ppc32_linux.a EXTRA_CFLAGS=3D"=
$(AM_CFLAGS_PPC32_LINUX)"
+
@VEX_DIR@/priv/main/vex_svnversion.h:
$(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" version
=20
-## Nb: do not call this variables "TOOL_LINKADD" and "TOOL_LDFLAGS" -- t=
hat
-## makes automake think we are building something called "TOOLS".
-TOOL_LINKADD =3D $(COREGRIND_LIBS) -lgcc
-TOOL_LINKFLAGS =3D \
- -static \
+TOOL_LDADD_COMMON =3D -lgcc
+TOOL_LDFLAGS_COMMON =3D -static \
-Wl,-defsym,valt_load_address=3D@VALT_LOAD_ADDRESS@ \
- -Wl,-T,$(top_builddir)/valt_load_address.lds \
-nodefaultlibs -nostartfiles -u _start
=20
+TOOL_LDADD_X86_LINUX =3D $(COREGRIND_LIBS_X86_LINUX) $(TOOL_LDADD_COMMON=
)
+TOOL_LDFLAGS_X86_LINUX =3D \
+ $(TOOL_LDFLAGS_COMMON) @FLAG_M32@ \
+ -Wl,-T,$(top_builddir)/valt_load_address_x86_linux.lds
+
+TOOL_LDADD_AMD64_LINUX =3D $(COREGRIND_LIBS_AMD64_LINUX) $(TOOL_LDADD_CO=
MMON)
+TOOL_LDFLAGS_AMD64_LINUX =3D \
+ $(TOOL_LDFLAGS_COMMON) -m64 \
+ -Wl,-T,$(top_builddir)/valt_load_address_amd64_linux.lds
+
+TOOL_LDADD_PPC32_LINUX =3D $(COREGRIND_LIBS_PPC32_LINUX) $(TOOL_LDADD_CO=
MMON)
+TOOL_LDFLAGS_PPC32_LINUX =3D \
+ $(TOOL_LDFLAGS_COMMON) \
+ -Wl,-T,$(top_builddir)/valt_load_address_ppc32_linux.lds
+
+PRELOAD_LDFLAGS_COMMON =3D -shared -Wl,-z,interpose,-z,initfirst
+PRELOAD_LDFLAGS_X86_LINUX =3D $(PRELOAD_LDFLAGS_COMMON) @FLAG_M32@
+PRELOAD_LDFLAGS_AMD64_LINUX =3D $(PRELOAD_LDFLAGS_COMMON) -m64
+PRELOAD_LDFLAGS_PPC32_LINUX =3D $(PRELOAD_LDFLAGS_COMMON)
+
+LIBREPLACEMALLOC_LDFLAGS_X86_LINUX =3D \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_X86_LINUX) \
+ -Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_AMD64_LINUX =3D \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_AMD64_LINUX) \
+ -Wl,--no-whole-archive
+LIBREPLACEMALLOC_LDFLAGS_PPC32_LINUX =3D \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC32_LINUX) \
+ -Wl,--no-whole-archive
Modified: trunk/addrcheck/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
--- trunk/addrcheck/Makefile.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/addrcheck/Makefile.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -1,9 +1,9 @@
include $(top_srcdir)/Makefile.tool.am
=20
# include memcheck/ for mac_shared.h
-AM_CPPFLAGS +=3D -I$(top_srcdir)/memcheck
+#AM_CPPFLAGS +=3D -I$(top_srcdir)/memcheck
=20
-val_PROGRAMS =3D vgtool_addrcheck.so vgpreload_addrcheck.so
+noinst_PROGRAMS =3D vgtool_addrcheck.so vgpreload_addrcheck.so
=20
vgtool_addrcheck_so_SOURCES =3D ac_main.c
vgtool_addrcheck_so_LDFLAGS =3D -shared
Property changes on: trunk/cachegrind
___________________________________________________________________
Name: svn:ignore
- cachegrind
cg_annotate
.deps
Makefile
Makefile.in
*.so
+ cachegrind-amd64-linux
cachegrind-ppc32-linux
cachegrind-x86-linux
cg_annotate
.deps
Makefile
Makefile.in
*.so
Modified: trunk/cachegrind/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
--- trunk/cachegrind/Makefile.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/cachegrind/Makefile.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -2,16 +2,41 @@
=20
bin_SCRIPTS =3D cg_annotate
=20
-# Remember to include all the arch-specific files in the distribution.
-EXTRA_DIST =3D \
- cg_sim.c \
- $(addsuffix .c,$(addprefix cg-,$(VG_ARCH_ALL)))
+noinst_HEADERS =3D cg_arch.h cg_sim.c
=20
-noinst_HEADERS =3D cg_arch.h
+noinst_PROGRAMS =3D=20
+if VG_X86_LINUX
+noinst_PROGRAMS +=3D cachegrind-x86-linux
+endif
+if VG_AMD64_LINUX
+noinst_PROGRAMS +=3D cachegrind-amd64-linux
+endif
+if VG_PPC32_LINUX
+noinst_PROGRAMS +=3D cachegrind-ppc32-linux
+endif
=20
-val_PROGRAMS =3D cachegrind
+CACHEGRIND_SOURCES_COMMON =3D cg_main.c
+CACHEGRIND_SOURCES_X86 =3D cg-x86.c
+CACHEGRIND_SOURCES_AMD64 =3D cg-amd64.c
+CACHEGRIND_SOURCES_PPC32 =3D cg-ppc32.c
=20
-cachegrind_SOURCES =3D cg_main.c cg-@VG_ARCH@.c
-cachegrind_DEPENDENCIES =3D $(COREGRIND_LIBS)
-cachegrind_LDADD =3D $(TOOL_LINKADD)
-cachegrind_LDFLAGS =3D $(TOOL_LINKFLAGS)
+cachegrind_x86_linux_SOURCES =3D $(CACHEGRIND_SOURCES_COMMON) $(CAC=
HEGRIND_SOURCES_X86)
+cachegrind_x86_linux_CPPFLAGS =3D $(AM_CPPFLAGS_X86_LINUX)
+cachegrind_x86_linux_CFLAGS =3D $(AM_CFLAGS_X86_LINUX)
+cachegrind_x86_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_X86_LINUX)
+cachegrind_x86_linux_LDADD =3D $(TOOL_LDADD_X86_LINUX)
+cachegrind_x86_linux_LDFLAGS =3D $(TOOL_LDFLAGS_X86_LINUX)
+
+cachegrind_amd64_linux_SOURCES =3D $(CACHEGRIND_SOURCES_COMMON) $(C=
ACHEGRIND_SOURCES_AMD64)
+cachegrind_amd64_linux_CPPFLAGS =3D $(AM_CPPFLAGS_AMD64_LINUX)
+cachegrind_amd64_linux_CFLAGS =3D $(AM_CFLAGS_AMD64_LINUX)
+cachegrind_amd64_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_AMD64_LINUX)
+cachegrind_amd64_linux_LDADD =3D $(TOOL_LDADD_AMD64_LINUX)
+cachegrind_amd64_linux_LDFLAGS =3D $(TOOL_LDFLAGS_AMD64_LINUX)
+
+cachegrind_ppc32_linux_SOURCES =3D $(CACHEGRIND_SOURCES_COMMON) $(C=
ACHEGRIND_SOURCES_PPC32)
+cachegrind_ppc32_linux_CPPFLAGS =3D $(AM_CPPFLAGS_PPC32_LINUX)
+cachegrind_ppc32_linux_CFLAGS =3D $(AM_CFLAGS_PPC32_LINUX)
+cachegrind_ppc32_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_PPC32_LINUX)
+cachegrind_ppc32_linux_LDADD =3D $(TOOL_LDADD_PPC32_LINUX)
+cachegrind_ppc32_linux_LDFLAGS =3D $(TOOL_LDFLAGS_PPC32_LINUX)
Modified: trunk/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
--- trunk/configure.in 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/configure.in 2005-11-07 15:24:38 UTC (rev 5027)
@@ -112,9 +112,6 @@
AC_SUBST(VG_ARCH_ALL)
VG_ARCH_ALL=3D"amd64 ppc32 x86"
AC_SUBST(VALT_LOAD_ADDRESS)
-AC_SUBST(ARCH_CORE_AM_CFLAGS)
-AC_SUBST(ARCH_TOOL_AM_CFLAGS)
-AC_SUBST(ARCH_CORE_AM_CCASFLAGS)
=20
case "${host_cpu}" in
i?86)=20
@@ -122,9 +119,6 @@
VG_ARCH=3D"x86"
valt_load_address_normal=3D"0xb0000000"
valt_load_address_inner=3D"0xa0000000"
- 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@"
;;
=20
x86_64)=20
@@ -135,15 +129,6 @@
# a problem.
valt_load_address_normal=3D"0x70000000"
valt_load_address_inner=3D"0x60000000"
- 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:
- # relocation R_X86_64_32 can not be used when making a shared =
object;
- # recompile with -fPIC
- #
- # I don't understand... --njn
- ARCH_TOOL_AM_CFLAGS=3D"-m64 -fomit-frame-pointer @PREFERRED_STAC=
K_BOUNDARY@ -fpic"
- ARCH_CORE_AM_CCASFLAGS=3D"-m64"
;;
=20
powerpc*)
@@ -151,9 +136,6 @@
VG_ARCH=3D"ppc32"
valt_load_address_normal=3D"0x70000000"
valt_load_address_inner=3D"0x60000000"
- ARCH_CORE_AM_CFLAGS=3D""
- ARCH_TOOL_AM_CFLAGS=3D"-fpic"
- ARCH_CORE_AM_CCASFLAGS=3D"-Wa,-maltivec"
;;
=20
*)=20
@@ -238,6 +220,10 @@
;;
esac
=20
+AM_CONDITIONAL(VG_X86_LINUX, test x$VG_PLATFORM =3D xx86-linux -o x$VG_P=
LATFORM =3D xamd64-linux)
+AM_CONDITIONAL(VG_AMD64_LINUX, test x$VG_PLATFORM =3D xamd64-linux)
+AM_CONDITIONAL(VG_PPC32_LINUX, test x$VG_PLATFORM =3D xppc32-linux)
+
AC_SUBST(DEFAULT_SUPP)
=20
glibc=3D""
Modified: trunk/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
--- trunk/coregrind/Makefile.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/coregrind/Makefile.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -1,30 +1,41 @@
include $(top_srcdir)/Makefile.all.am
include $(top_srcdir)/Makefile.core.am
+include $(top_srcdir)/Makefile.install.am
=20
-AM_CPPFLAGS +=3D -DVG_LIBDIR=3D"\"$(valdir)"\" \
+AM_CPPFLAGS_X86_LINUX +=3D -DVG_LIBDIR=3D"\"$(valdir)"\" \
-DKICKSTART_BASE=3D@KICKSTART_BASE@
+AM_CPPFLAGS_AMD64_LINUX +=3D -DVG_LIBDIR=3D"\"$(valdir)"\" \
+ -DKICKSTART_BASE=3D@KICKSTART_BASE@
+AM_CPPFLAGS_PPC32_LINUX +=3D -DVG_LIBDIR=3D"\"$(valdir)"\" \
+ -DKICKSTART_BASE=3D@KICKSTART_BASE@
=20
default.supp: $(SUPP_FILES)
=20
-noinst_LIBRARIES =3D \
- libcoregrind.a \
- libreplacemalloc_toolpreload.a
+noinst_LIBRARIES =3D
+if VG_X86_LINUX
+noinst_LIBRARIES +=3D libcoregrind_x86_linux.a libreplacemalloc_toolprel=
oad_x86_linux.a
+endif
+if VG_AMD64_LINUX
+noinst_LIBRARIES +=3D libcoregrind_amd64_linux.a libreplacemalloc_toolpr=
eload_amd64_linux.a
+endif
+if VG_PPC32_LINUX
+noinst_LIBRARIES +=3D libcoregrind_ppc32_linux.a libreplacemalloc_toolpr=
eload_ppc32_linux.a
+endif
=20
bin_PROGRAMS =3D \
valgrind
=20
-val_PROGRAMS =3D \
- vgpreload_core.so
+noinst_PROGRAMS =3D
+if VG_X86_LINUX
+noinst_PROGRAMS +=3D vgpreload_core-x86-linux.so
+endif
+if VG_AMD64_LINUX
+noinst_PROGRAMS +=3D vgpreload_core-amd64-linux.so
+endif
+if VG_PPC32_LINUX
+noinst_PROGRAMS +=3D vgpreload_core-ppc32-linux.so
+endif
=20
-# Remember to include all the arch-specific files in the distribution.
-EXTRA_DIST =3D \
- $(addsuffix .c,$(addprefix m_coredump/coredump-,$(VG_PLATFORM_AL=
L))) \
- $(addsuffix .S,$(addprefix m_dispatch/dispatch-,$(VG_PLATFORM_AL=
L))) \
- $(addsuffix .c,$(addprefix m_sigframe/sigframe-,$(VG_PLATFORM_AL=
L))) \
- $(addsuffix .S,$(addprefix m_syswrap/syscall-,$(VG_PLATFORM_ALL)=
)) \
- $(addsuffix .c,$(addprefix m_syswrap/syswrap-,$(VG_OS_ALL))) \
- $(addsuffix .c,$(addprefix m_syswrap/syswrap-,$(VG_PLATFORM_ALL)=
))
-
noinst_HEADERS =3D \
coregrind.h \
pub_core_aspacemgr.h \
@@ -97,7 +108,7 @@
launcher.c \
m_debuglog.c
=20
-libcoregrind_a_SOURCES =3D \
+COREGRIND_SOURCES_COMMON =3D \
m_commandline.c \
m_cpuid.S \
m_clientstate.c \
@@ -133,8 +144,6 @@
m_ume.c \
m_aspacemgr/read_procselfmaps.c \
m_aspacemgr/aspacemgr.c \
- m_coredump/coredump-elf.c \
- m_coredump/coredump-@VG_PLATFORM@.c \
m_debuginfo/dwarf.c \
m_debuginfo/stabs.c \
m_debuginfo/symtab.c \
@@ -144,46 +153,103 @@
m_demangle/demangle.c \
m_demangle/dyn-string.c \
m_demangle/safe-ctype.c \
- m_dispatch/dispatch-@VG_PLATFORM@.S \
m_replacemalloc/replacemalloc_core.c \
m_scheduler/scheduler.c \
m_scheduler/sema.c \
- m_sigframe/sigframe-@VG_PLATFORM@.c \
- m_syswrap/syscall-@VG_PLATFORM@.S \
m_syswrap/syswrap-generic.c \
- m_syswrap/syswrap-@VG_OS@.c \
- m_syswrap/syswrap-@VG_OS@-variants.c \
- m_syswrap/syswrap-@VG_PLATFORM@.c \
m_syswrap/syswrap-main.c
=20
-libreplacemalloc_toolpreload_a_SOURCES =3D m_replacemalloc/vg_replace_ma=
lloc.c
-libreplacemalloc_toolpreload_a_CFLAGS =3D $(PIC_AM_CFLAGS)
+COREGRIND_LINUX_SOURCE =3D \
+ m_coredump/coredump-elf.c \
+ m_syswrap/syswrap-linux.c \
+ m_syswrap/syswrap-linux-variants.c
=20
-m_dispatch/dispatch-@VG_PLATFORM@.S: libvex_guest_offsets.h
-m_syswrap/syscall-@VG_PLATFORM@.S: libvex_guest_offsets.h
-m_syswrap/syswrap-main.c: libvex_guest_offsets.h
+libcoregrind_x86_linux_a_SOURCES =3D \
+ $(COREGRIND_SOURCES_COMMON) \
+ $(COREGRIND_LINUX_SOURCE) \
+ m_coredump/coredump-x86-linux.c \
+ m_dispatch/dispatch-x86-linux.S \
+ m_sigframe/sigframe-x86-linux.c \
+ m_syswrap/syscall-x86-linux.S \
+ m_syswrap/syswrap-x86-linux.c
=20
+libcoregrind_x86_linux_a_CPPFLAGS =3D $(AM_CPPFLAGS_X86_LINUX)
+libcoregrind_x86_linux_a_CFLAGS =3D $(AM_CFLAGS_X86_LINUX)
+libcoregrind_x86_linux_a_CCASFLAGS =3D $(AM_CCASFLAGS_X86_LINUX)
+
+libcoregrind_amd64_linux_a_SOURCES =3D \
+ $(COREGRIND_SOURCES_COMMON) \
+ $(COREGRIND_LINUX_SOURCE) \
+ m_coredump/coredump-amd64-linux.c \
+ m_dispatch/dispatch-amd64-linux.S \
+ m_sigframe/sigframe-amd64-linux.c \
+ m_syswrap/syscall-amd64-linux.S \
+ m_syswrap/syswrap-amd64-linux.c
+
+libcoregrind_amd64_linux_a_CPPFLAGS =3D $(AM_CPPFLAGS_AMD64_LINUX)
+libcoregrind_amd64_linux_a_CFLAGS =3D $(AM_CFLAGS_AMD64_LINUX)
+libcoregrind_amd64_linux_a_CCASFLAGS =3D $(AM_CCASFLAGS_AMD64_LINUX)
+
+libcoregrind_ppc32_linux_a_SOURCES =3D \
+ $(COREGRIND_SOURCES_COMMON) \
+ $(COREGRIND_LINUX_SOURCE) \
+ m_coredump/coredump-ppc32-linux.c \
+ m_dispatch/dispatch-ppc32-linux.S \
+ m_sigframe/sigframe-ppc32-linux.c \
+ m_syswrap/syscall-ppc32-linux.S \
+ m_syswrap/syswrap-ppc32-linux.c
+
+libcoregrind_ppc32_linux_a_CPPFLAGS =3D $(AM_CPPFLAGS_PPC32_LINUX)
+libcoregrind_ppc32_linux_a_CFLAGS =3D $(AM_CFLAGS_PPC32_LINUX)
+libcoregrind_ppc32_linux_a_CCASFLAGS =3D $(AM_CCASFLAGS_PPC32_LINUX)
+
+libreplacemalloc_toolpreload_x86_linux_a_SOURCES =3D m_replacemalloc/vg_=
replace_malloc.c
+libreplacemalloc_toolpreload_x86_linux_a_CPPFLAGS =3D $(AM_CPPFLAGS_X86_=
LINUX)
+libreplacemalloc_toolpreload_x86_linux_a_CFLAGS =3D $(AM_CFLAGS_X86_LINU=
X) -fpic -fno-omit-frame-pointer
+
+libreplacemalloc_toolpreload_amd64_linux_a_SOURCES =3D m_replacemalloc/v=
g_replace_malloc.c
+libreplacemalloc_toolpreload_amd64_linux_a_CPPFLAGS =3D $(AM_CPPFLAGS_AM=
D64_LINUX)
+libreplacemalloc_toolpreload_amd64_linux_a_CFLAGS =3D $(AM_CFLAGS_AMD64_=
LINUX) -fpic -fno-omit-frame-pointer
+
+libreplacemalloc_toolpreload_ppc32_linux_a_SOURCES =3D m_replacemalloc/v=
g_replace_malloc.c
+libreplacemalloc_toolpreload_ppc32_linux_a_CPPFLAGS =3D $(AM_CPPFLAGS_PP=
C32_LINUX)
+libreplacemalloc_toolpreload_ppc32_linux_a_CFLAGS =3D $(AM_CFLAGS_PPC32_=
LINUX) -fpic -fno-omit-frame-pointer
+
+m_dispatch/dispatch-x86-linux.S: libvex_guest_offsets.h
+m_dispatch/dispatch-amd64-linux.S: libvex_guest_offsets.h
+m_dispatch/dispatch-ppc32-linux.S: libvex_guest_offsets.h
+m_syswrap/syscall-x86-linux.S: libvex_guest_offsets.h
+m_syswrap/syscall-amd64-linux.S: libvex_guest_offsets.h
+m_syswrap/syscall-ppc32-linux.S: libvex_guest_offsets.h
+m_syswrap/syswrap-main.c: libvex_guest_offsets.h
+
libvex_guest_offsets.h:
$(MAKE) -C @VEX_DIR@ pub/libvex_guest_offsets.h
=20
-vgpreload_core_so_SOURCES =3D vg_preloaded.c
-vgpreload_core_so_CFLAGS =3D $(AM_CFLAGS) -fpic
-vgpreload_core_so_LDADD =3D -ldl
-vgpreload_core_so_LDFLAGS =3D \
- -shared \
- -Wl,--soname,vgpreload_core.so \
- -Wl,-z,initfirst
+VGPRELOAD_CORE_SOURCES_COMMON =3D vg_preloaded.c
=20
+vgpreload_core_x86_linux_so_SOURCES =3D $(VGPRELOAD_CORE_SOURCES_COMMON)
+vgpreload_core_x86_linux_so_CFLAGS =3D $(AM_CFLAGS_X86_LINUX) $(AM_CFLAG=
S_PIC)
+vgpreload_core_x86_linux_so_LDFLAGS =3D $(PRELOAD_LDFLAGS_X86_LINUX)
+
+vgpreload_core_amd64_linux_so_SOURCES =3D $(VGPRELOAD_CORE_SOURCES_COMMO=
N)
+vgpreload_core_amd64_linux_so_CFLAGS =3D $(AM_CFLAGS_AMD64_LINUX) $(AM_C=
FLAGS_PIC)
+vgpreload_core_amd64_linux_so_LDFLAGS =3D $(PRELOAD_LDFLAGS_AMD64_LINUX)
+
+vgpreload_core_ppc32_linux_so_SOURCES =3D $(VGPRELOAD_CORE_SOURCES_COMMO=
N)
+vgpreload_core_ppc32_linux_so_CFLAGS =3D $(AM_CFLAGS_PPC32_LINUX) $(AM_C=
FLAGS_PIC)
+vgpreload_core_ppc32_linux_so_LDFLAGS =3D $(PRELOAD_LDFLAGS_PPC32_LINUX)
+
clean-local:
$(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" clean
=20
MANUAL_DEPS =3D $(noinst_HEADERS) $(include_HEADERS)
=20
all-local:
- mkdir -p $(inplacedir)
- for i in $(val_PROGRAMS); do \
- to=3D$(inplacedir)/$$i; \
- rm -f $$$to; \
- ln -sf ../$(subdir)/$$i $$to; \
+ for f in $(noinst_PROGRAMS); do \
+ p=3D`echo $$f | sed -e 's/^[^-]*-//' -e 's/\..*$$//'`; \
+ n=3D`echo $$f | sed -e 's/-[^-]\{1,\}-[^-.]\{1,\}//'`; \
+ mkdir -p $(inplacedir)/$$p; \
+ rm -f $(inplacedir)/$$p/$$n; \
+ ln -f -s ../../$(subdir)/$$f $(inplacedir)/$$p/$$n; \
done
-
Modified: trunk/coregrind/launcher.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/launcher.c 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/coregrind/launcher.c 2005-11-07 15:24:38 UTC (rev 5027)
@@ -32,27 +32,134 @@
and so it doesn't have to conform to Valgrind's arcane rules on
no-glibc-usage etc. */
=20
+#include <assert.h>
+#include <ctype.h>
+#include <elf.h>
#include <errno.h>
+#include <fcntl.h>
+#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/mman.h>
+#include <sys/user.h>
#include <unistd.h>
-#include <assert.h>
=20
#include "pub_core_debuglog.h"
#include "pub_core_libcproc.h" // For VALGRIND_LIB, VALGRIND_LAUNCHER
+#include "pub_core_ume.h"
=20
=20
=20
#define PATH_MAX 4096 /* POSIX refers to this a lot but I dunno
where it is defined */
=20
-static void barf ( char* str )
+/* Report fatal errors */
+static void barf ( const char *format, ... )
{
- fprintf(stderr, "valgrind: Cannot continue: %s\n", str );
+ va_list vargs;
+
+ va_start(vargs, format);
+ fprintf(stderr, "valgrind: Cannot continue: ");
+ vfprintf(stderr, format, vargs);
+ fprintf(stderr, "\n");
+ va_end(vargs);
+
exit(1);
}
=20
+/* Search the path for the client program */
+static const char *find_client(const char *clientname)
+{
+ static char fullname[PATH_MAX];
+ const char *path =3D getenv("PATH");
+ const char *colon;
+
+ while (path)
+ {
+ if ((colon =3D strchr(path, ':')) =3D=3D NULL)
+ {
+ strcpy(fullname, path);
+ path =3D NULL;
+ }
+ else
+ {
+ memcpy(fullname, path, colon - path);
+ fullname[colon - path] =3D '\0';
+ path =3D colon + 1;
+ }
+
+ strcat(fullname, "/");
+ strcat(fullname, clientname);
+
+ if (access(fullname, R_OK|X_OK) =3D=3D 0)
+ return fullname;
+ }
+
+ return clientname;
+}
+
+/* Examine the client and work out which platform it is for */
+static const char *select_platform(const char *clientname)
+{
+ int fd;
+ unsigned char *header;
+ const char *platform =3D NULL;
+
+ if (strchr(clientname, '/') =3D=3D NULL)
+ clientname =3D find_client(clientname);
+
+ if ((fd =3D open(clientname, O_RDONLY)) < 0)
+ return NULL;
+ // barf("open(%s): %s", clientname, strerror(errno));
+
+ if ((header =3D mmap(NULL, PAGE_SIZE, PROT_READ|PROT_WRITE, MAP_PRIVA=
TE, fd, 0)) =3D=3D MAP_FAILED)
+ return NULL;
+ // barf("mmap(%s): %s", clientname, strerror(errno));
+
+ close(fd);
+
+ if (header[0] =3D=3D '#' && header[1] =3D=3D '!') {
+ char *interp =3D (char *)header + 2;
+ char *interpend;
+
+ while (*interp =3D=3D ' ' || *interp =3D=3D '\t')
+ interp++;
+
+ for (interpend =3D interp; !isspace(*interpend); interpend++)
+ ;
+
+ *interpend =3D '\0';
+
+ platform =3D select_platform(interp);
+ } else if (memcmp(header, ELFMAG, SELFMAG) =3D=3D 0 &&
+ header[EI_CLASS] =3D=3D ELFCLASS32 &&
+ header[EI_DATA] =3D=3D ELFDATA2LSB) {
+ const Elf32_Ehdr *ehdr =3D (Elf32_Ehdr *)header;
+
+ if (ehdr->e_machine =3D=3D EM_386 &&
+ ehdr->e_ident[EI_OSABI] =3D=3D ELFOSABI_SYSV) {
+ platform =3D "x86-linux";
+ } else if (ehdr->e_machine =3D=3D EM_PPC &&
+ ehdr->e_ident[EI_OSABI] =3D=3D ELFOSABI_SYSV) {
+ platform =3D "ppc32-linux";
+ }
+ } else if (memcmp(header, ELFMAG, SELFMAG) =3D=3D 0 &&
+ header[EI_CLASS] =3D=3D ELFCLASS64 &&
+ header[EI_DATA] =3D=3D ELFDATA2LSB) {
+ const Elf64_Ehdr *ehdr =3D (Elf64_Ehdr *)header;
+
+ if (ehdr->e_machine =3D=3D EM_X86_64 &&
+ ehdr->e_ident[EI_OSABI] =3D=3D ELFOSABI_SYSV) {
+ platform =3D "amd64-linux";
+ }
+ }
+
+ munmap(header, PAGE_SIZE);
+
+ return platform;
+}
+
/* Where we expect to find all our aux files */
static const char *valgrind_lib =3D VG_LIBDIR;
=20
@@ -60,6 +167,8 @@
{
int i, j, loglevel, r;
const char *toolname =3D NULL;
+ const char *clientname =3D NULL;
+ const char *platform;
const char *cp;
char *toolfile;
char launcher_name[PATH_MAX+1];
@@ -71,10 +180,15 @@
At the same time, look for the tool name. */
loglevel =3D 0;
for (i =3D 1; i < argc; i++) {
- if (argv[i][0] !=3D '-')
+ if (argv[i][0] !=3D '-') {
+ clientname =3D argv[i];
break;
- if (0 =3D=3D strcmp(argv[i], "--"))=20
+ }
+ if (0 =3D=3D strcmp(argv[i], "--")) {
+ if (i+1 < argc)
+ clientname =3D argv[i+1];
break;
+ }
if (0 =3D=3D strcmp(argv[i], "-d"))=20
loglevel++;
if (0 =3D=3D strncmp(argv[i], "--tool=3D", 7))=20
@@ -94,6 +208,17 @@
toolname =3D "memcheck";
}
=20
+ /* Work out what platform to use */
+ if (clientname =3D=3D NULL) {
+ VG_(debugLog)(1, "launcher", "no client specified, defaulting plat=
form to '%s'\n", VG_PLATFORM);
+ platform =3D VG_PLATFORM;
+ } else if ((platform =3D select_platform(clientname)) !=3D NULL) {
+ VG_(debugLog)(1, "launcher", "selected platform '%s'\n", platform)=
;
+ } else {
+ VG_(debugLog)(1, "launcher", "no platform detected, defaulting pla=
tform to '%s'\n", VG_PLATFORM);
+ platform =3D VG_PLATFORM;
+ }
+ =20
/* Figure out the name of this executable (viz, the launcher), so
we can tell stage2. stage2 will use the name for recursive
invokations of valgrind on child processes. */
@@ -137,17 +262,17 @@
valgrind_lib =3D cp;
=20
/* Build the stage2 invokation, and execve it. Bye! */
- toolfile =3D malloc(strlen(valgrind_lib) + strlen(toolname) + 2);
+ toolfile =3D malloc(strlen(valgrind_lib) + strlen(toolname) + strlen(=
platform) + 3);
if (toolfile =3D=3D NULL)
barf("malloc of toolfile failed.");
- sprintf(toolfile, "%s/%s", valgrind_lib, toolname);
+ sprintf(toolfile, "%s/%s/%s", valgrind_lib, platform, toolname);
=20
VG_(debugLog)(1, "launcher", "launching %s\n", toolfile);
=20
execve(toolfile, argv, new_env);
=20
- fprintf(stderr, "valgrind: failed to start tool '%s': %s\n",
- toolname, strerror(errno));
+ fprintf(stderr, "valgrind: failed to start tool '%s' for platform '%s=
': %s\n",
+ toolname, platform, strerror(errno));
=20
exit(1);
}
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-11-07 14:43:12 UTC (rev 5026)
+++ trunk/coregrind/m_main.c 2005-11-07 15:24:38 UTC (rev 5027)
@@ -104,7 +104,7 @@
*/
static HChar** setup_client_env ( HChar** origenv, const HChar* toolname=
)
{
- HChar* preload_core_so =3D "vgpreload_core.so";
+ HChar* preload_core =3D "vgpreload_core";
HChar* ld_preload =3D "LD_PRELOAD=3D";
HChar* v_launcher =3D VALGRIND_LAUNCHER "=3D";
Int ld_preload_len =3D VG_(strlen)( ld_preload );
@@ -121,8 +121,8 @@
paths. We might not need the space for vgpreload_<tool>.so, but i=
t
doesn't hurt to over-allocate briefly. The 16s are just cautious
slop. */
- Int preload_core_path_len =3D vglib_len + sizeof(preload_core_so) + 1=
6;
- Int preload_tool_path_len =3D vglib_len + VG_(strlen)(toolname) + 1=
6;
+ Int preload_core_path_len =3D vglib_len + sizeof(preload_core) + size=
of(VG_PLATFORM) + 16;
+ Int preload_tool_path_len =3D vglib_len + VG_(strlen)(toolname) + siz=
eof(VG_PLATFORM) + 16;
Int preload_string_len =3D preload_core_path_len + preload_tool_pa=
th_len;
HChar* preload_string =3D VG_(malloc)(preload_string_len);
vg_assert(preload_string);
@@ -132,13 +132,13 @@
preload_tool_path =3D VG_(malloc)(preload_tool_path_len);
vg_assert(preload_tool_path);
VG_(snprintf)(preload_tool_path, preload_tool_path_len,
- "%s/vgpreload_%s.so", VG_(libdir), toolname);
+ "%s/%s/vgpreload_%s.so", VG_(libdir), VG_PLATFORM, tool=
name);
if (VG_(access)(preload_tool_path, True/*r*/, False/*w*/, False/*x*/)=
=3D=3D 0) {
- VG_(snprintf)(preload_string, preload_string_len, "%s/%s:%s",=20
- VG_(libdir), preload_core_so, preload_tool_path);
+ VG_(snprintf)(preload_string, preload_string_len, "%s/%s/%s.so:%s"=
,=20
+ VG_(libdir), VG_PLATFORM, preload_core, preload_tool=
_path);
} else {
- VG_(snprintf)(preload_string, preload_string_len, "%s/%s",=20
- VG_(libdir), preload_core_so);
+ VG_(snprintf)(preload_string, preload_string_len, "%s/%s/%s.so",=20
+ VG_(libdir), VG_PLATFORM, preload_core);
}
VG_(free)(preload_tool_path);
=20
Property changes on: trunk/helgrind
___________________________________________________________________
Name: svn:ignore
- .deps
Makefile
Makefile.in
*.so
+ .deps
helgrind-amd64-linux
helgrind-ppc32-linux
helgrind-x86-linux
Makefile
Makefile.in
*.so
Modified: trunk/helgrind/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
--- trunk/helgrind/Makefile.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/helgrind/Makefile.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -1,19 +1,63 @@
include $(top_srcdir)/Makefile.tool.am
=20
-val_PROGRAMS =3D vgtool_helgrind.so vgpreload_helgrind.so
+noinst_PROGRAMS =3D=20
+if VG_X86_LINUX
+noinst_PROGRAMS +=3D helgrind-x86-linux vgpreload_helgrind-x86-linux.so
+endif
+if VG_AMD64_LINUX
+noinst_PROGRAMS +=3D helgrind-amd64-linux vgpreload_helgrind-amd64-linux=
.so
+endif
+if VG_PPC32_LINUX
+noinst_PROGRAMS +=3D helgrind-ppc32-linux vgpreload_helgrind-ppc32-linux=
.so
+endif
=20
-vgtool_helgrind_so_SOURCES =3D hg_main.c
-vgtool_helgrind_so_LDFLAGS =3D -shared
+vgpreload_helgrind_x86_linux_so_SOURCES =3D=20
+vgpreload_helgrind_x86_linux_so_CPPFLAGS =3D $(AM_CPPFLAGS_X86_LINUX=
)
+vgpreload_helgrind_x86_linux_so_CFLAGS =3D $(AM_CFLAGS_X86_LINUX) =
$(AM_CFLAGS_PIC)
+vgpreload_helgrind_x86_linux_so_DEPENDENCIES =3D $(LIBREPLACEMALLOC_X86_=
LINUX)
+vgpreload_helgrind_x86_linux_so_LDFLAGS =3D \
+ $(PRELOAD_LDFLAGS_X86_LINUX) \
+ $(LIBREPLACEMALLOC_LDFLAGS_X86_LINUX)
=20
-vgpreload_helgrind_so_SOURCES =3D=20
-vgpreload_helgrind_so_DEPENDENCIES =3D \
- $(LIBREPLACEMALLOC)
-vgpreload_helgrind_so_LDFLAGS =3D -shared -Wl,-z,interpose,-z,initfirst =
\
- -Wl,--whole-archive \
- $(LIBREPLACEMALLOC) \
- -Wl,--no-whole-archive
+vgpreload_helgrind_amd64_linux_so_SOURCES =3D=20
+vgpreload_helgrind_amd64_linux_so_CPPFLAGS =3D $(AM_CPPFLAGS_AMD64_L=
INUX)
+vgpreload_helgrind_amd64_linux_so_CFLAGS =3D $(AM_CFLAGS_AMD64_LIN=
UX) $(AM_CFLAGS_PIC)
+vgpreload_helgrind_amd64_linux_so_DEPENDENCIES =3D $(LIBREPLACEMALLOC_AM=
D64_LINUX)
+vgpreload_helgrind_amd64_linux_so_LDFLAGS =3D \
+ $(PRELOAD_LDFLAGS_AMD64_LINUX) \
+ $(LIBREPLACEMALLOC_LDFLAGS_AMD64_LINUX)
=20
+vgpreload_helgrind_ppc32_linux_so_SOURCES =3D=20
+vgpreload_helgrind_ppc32_linux_so_CPPFLAGS =3D $(AM_CPPFLAGS_PPC32_L=
INUX)
+vgpreload_helgrind_ppc32_linux_so_CFLAGS =3D $(AM_CFLAGS_PPC32_LIN=
UX) $(AM_CFLAGS_PIC)
+vgpreload_helgrind_ppc32_linux_so_DEPENDENCIES =3D $(LIBREPLACEMALLOC_PP=
C32_LINUX)
+vgpreload_helgrind_ppc32_linux_so_LDFLAGS =3D \
+ $(PRELOAD_LDFLAGS_PPC32_LINUX) \
+ $(LIBREPLACEMALLOC_LDFLAGS_PPC32_LINUX)
+
+HELGRIND_SOURCES_COMMON =3D hg_main.c
+
+helgrind_x86_linux_SOURCES =3D $(HELGRIND_SOURCES_COMMON)
+helgrind_x86_linux_CPPFLAGS =3D $(AM_CPPFLAGS_X86_LINUX)
+helgrind_x86_linux_CFLAGS =3D $(AM_CFLAGS_X86_LINUX)
+helgrind_x86_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_X86_LINUX)
+helgrind_x86_linux_LDADD =3D $(TOOL_LDADD_X86_LINUX)
+helgrind_x86_linux_LDFLAGS =3D $(TOOL_LDFLAGS_X86_LINUX)
+
+helgrind_amd64_linux_SOURCES =3D $(HELGRIND_SOURCES_COMMON)
+helgrind_amd64_linux_CPPFLAGS =3D $(AM_CPPFLAGS_AMD64_LINUX)
+helgrind_amd64_linux_CFLAGS =3D $(AM_CFLAGS_AMD64_LINUX)
+helgrind_amd64_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_AMD64_LINUX)
+helgrind_amd64_linux_LDADD =3D $(TOOL_LDADD_AMD64_LINUX)
+helgrind_amd64_linux_LDFLAGS =3D $(TOOL_LDFLAGS_AMD64_LINUX)
+
+helgrind_ppc32_linux_SOURCES =3D $(HELGRIND_SOURCES_COMMON)
+helgrind_ppc32_linux_CPPFLAGS =3D $(AM_CPPFLAGS_PPC32_LINUX)
+helgrind_ppc32_linux_CFLAGS =3D $(AM_CFLAGS_PPC32_LINUX)
+helgrind_ppc32_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_PPC32_LINUX)
+helgrind_ppc32_linux_LDADD =3D $(TOOL_LDADD_PPC32_LINUX)
+helgrind_ppc32_linux_LDFLAGS =3D $(TOOL_LDFLAGS_PPC32_LINUX)
+
hgincludedir =3D $(includedir)/valgrind
=20
hginclude_HEADERS =3D helgrind.h
-
Property changes on: trunk/lackey
___________________________________________________________________
Name: svn:ignore
- .deps
lackey
Makefile
Makefile.in
*.so
+ .deps
lackey-amd64-linux
lackey-ppc32-linux
lackey-x86-linux
Makefile
Makefile.in
*.so
Modified: trunk/lackey/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
--- trunk/lackey/Makefile.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/lackey/Makefile.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -1,8 +1,35 @@
include $(top_srcdir)/Makefile.tool.am
=20
-val_PROGRAMS =3D lackey
+noinst_PROGRAMS =3D=20
+if VG_X86_LINUX
+noinst_PROGRAMS +=3D lackey-x86-linux
+endif
+if VG_AMD64_LINUX
+noinst_PROGRAMS +=3D lackey-amd64-linux
+endif
+if VG_PPC32_LINUX
+noinst_PROGRAMS +=3D lackey-ppc32-linux
+endif
=20
-lackey_SOURCES =3D lk_main.c
-lackey_DEPENDENCIES =3D $(COREGRIND_LIBS)
-lackey_LDADD =3D $(TOOL_LINKADD)
-lackey_LDFLAGS =3D $(TOOL_LINKFLAGS)
+LACKEY_SOURCES_COMMON =3D lk_main.c
+
+lackey_x86_linux_SOURCES =3D $(LACKEY_SOURCES_COMMON)
+lackey_x86_linux_CPPFLAGS =3D $(AM_CPPFLAGS_X86_LINUX)
+lackey_x86_linux_CFLAGS =3D $(AM_CFLAGS_X86_LINUX)
+lackey_x86_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_X86_LINUX)
+lackey_x86_linux_LDADD =3D $(TOOL_LDADD_X86_LINUX)
+lackey_x86_linux_LDFLAGS =3D $(TOOL_LDFLAGS_X86_LINUX)
+
+lackey_amd64_linux_SOURCES =3D $(LACKEY_SOURCES_COMMON)
+lackey_amd64_linux_CPPFLAGS =3D $(AM_CPPFLAGS_AMD64_LINUX)
+lackey_amd64_linux_CFLAGS =3D $(AM_CFLAGS_AMD64_LINUX)
+lackey_amd64_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_AMD64_LINUX)
+lackey_amd64_linux_LDADD =3D $(TOOL_LDADD_AMD64_LINUX)
+lackey_amd64_linux_LDFLAGS =3D $(TOOL_LDFLAGS_AMD64_LINUX)
+
+lackey_ppc32_linux_SOURCES =3D $(LACKEY_SOURCES_COMMON)
+lackey_ppc32_linux_CPPFLAGS =3D $(AM_CPPFLAGS_PPC32_LINUX)
+lackey_ppc32_linux_CFLAGS =3D $(AM_CFLAGS_PPC32_LINUX)
+lackey_ppc32_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_PPC32_LINUX)
+lackey_ppc32_linux_LDADD =3D $(TOOL_LDADD_PPC32_LINUX)
+lackey_ppc32_linux_LDFLAGS =3D $(TOOL_LDFLAGS_PPC32_LINUX)
Property changes on: trunk/massif
___________________________________________________________________
Name: svn:ignore
- .deps
Makefile
Makefile.in
massif
*.so
+ .deps
Makefile
Makefile.in
massif-amd64-linux
massif-ppc32-linux
massif-x86-linux
*.so
Modified: trunk/massif/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
--- trunk/massif/Makefile.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/massif/Makefile.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -2,17 +2,60 @@
=20
SUBDIRS +=3D hp2ps
=20
-val_PROGRAMS =3D massif vgpreload_massif.so
+noinst_PROGRAMS =3D=20
+if VG_X86_LINUX
+noinst_PROGRAMS +=3D massif-x86-linux vgpreload_massif-x86-linux.so
+endif
+if VG_AMD64_LINUX
+noinst_PROGRAMS +=3D massif-amd64-linux vgpreload_massif-amd64-linux.so
+endif
+if VG_PPC32_LINUX
+noinst_PROGRAMS +=3D massif-ppc32-linux vgpreload_massif-ppc32-linux.so
+endif
=20
-vgpreload_massif_so_SOURCES =3D=20
-vgpreload_massif_so_DEPENDENCIES =3D $(LIBREPLACEMALLOC)
-vgpreload_massif_so_LDFLAGS =3D \
- -shared -Wl,-z,interpose,-z,initfirst \
- -Wl,--whole-archive \
- $(LIBREPLACEMALLOC) \
- -Wl,--no-whole-archive
+vgpreload_massif_x86_linux_so_SOURCES =3D=20
+vgpreload_massif_x86_linux_so_CPPFLAGS =3D $(AM_CPPFLAGS_X86_LINUX)
+vgpreload_massif_x86_linux_so_CFLAGS =3D $(AM_CFLAGS_X86_LINUX) $(=
AM_CFLAGS_PIC)
+vgpreload_massif_x86_linux_so_DEPENDENCIES =3D $(LIBREPLACEMALLOC_X86_LI=
NUX)
+vgpreload_massif_x86_linux_so_LDFLAGS =3D \
+ $(PRELOAD_LDFLAGS_X86_LINUX) \
+ $(LIBREPLACEMALLOC_LDFLAGS_X86_LINUX)
=20
-massif_SOURCES =3D ms_main.c
-massif_DEPENDENCIES =3D $(COREGRIND_LIBS)
-massif_LDADD =3D $(TOOL_LINKADD)
-massif_LDFLAGS =3D $(TOOL_LINKFLAGS)
+vgpreload_massif_amd64_linux_so_SOURCES =3D=20
+vgpreload_massif_amd64_linux_so_CPPFLAGS =3D $(AM_CPPFLAGS_AMD64_LIN=
UX)
+vgpreload_massif_amd64_linux_so_CFLAGS =3D $(AM_CFLAGS_AMD64_LINUX=
) $(AM_CFLAGS_PIC)
+vgpreload_massif_amd64_linux_so_DEPENDENCIES =3D $(LIBREPLACEMALLOC_AMD6=
4_LINUX)
+vgpreload_massif_amd64_linux_so_LDFLAGS =3D \
+ $(PRELOAD_LDFLAGS_AMD64_LINUX) \
+ $(LIBREPLACEMALLOC_LDFLAGS_AMD64_LINUX)
+
+vgpreload_massif_ppc32_linux_so_SOURCES =3D=20
+vgpreload_massif_ppc32_linux_so_CPPFLAGS =3D $(AM_CPPFLAGS_PPC32_LIN=
UX)
+vgpreload_massif_ppc32_linux_so_CFLAGS =3D $(AM_CFLAGS_PPC32_LINUX=
) $(AM_CFLAGS_PIC)
+vgpreload_massif_ppc32_linux_so_DEPENDENCIES =3D $(LIBREPLACEMALLOC_PPC3=
2_LINUX)
+vgpreload_massif_ppc32_linux_so_LDFLAGS =3D \
+ $(PRELOAD_LDFLAGS_PPC32_LINUX) \
+ $(LIBREPLACEMALLOC_LDFLAGS_PPC32_LINUX)
+
+MASSIF_SOURCES_COMMON =3D ms_main.c
+
+massif_x86_linux_SOURCES =3D $(MASSIF_SOURCES_COMMON)
+massif_x86_linux_CPPFLAGS =3D $(AM_CPPFLAGS_X86_LINUX)
+massif_x86_linux_CFLAGS =3D $(AM_CFLAGS_X86_LINUX)
+massif_x86_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_X86_LINUX)
+massif_x86_linux_LDADD =3D $(TOOL_LDADD_X86_LINUX)
+massif_x86_linux_LDFLAGS =3D $(TOOL_LDFLAGS_X86_LINUX)
+
+massif_amd64_linux_SOURCES =3D $(MASSIF_SOURCES_COMMON)
+massif_amd64_linux_CPPFLAGS =3D $(AM_CPPFLAGS_AMD64_LINUX)
+massif_amd64_linux_CFLAGS =3D $(AM_CFLAGS_AMD64_LINUX)
+massif_amd64_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_AMD64_LINUX)
+massif_amd64_linux_LDADD =3D $(TOOL_LDADD_AMD64_LINUX)
+massif_amd64_linux_LDFLAGS =3D $(TOOL_LDFLAGS_AMD64_LINUX)
+
+massif_ppc32_linux_SOURCES =3D $(MASSIF_SOURCES_COMMON)
+massif_ppc32_linux_CPPFLAGS =3D $(AM_CPPFLAGS_PPC32_LINUX)
+massif_ppc32_linux_CFLAGS =3D $(AM_CFLAGS_PPC32_LINUX)
+massif_ppc32_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_PPC32_LINUX)
+massif_ppc32_linux_LDADD =3D $(TOOL_LDADD_PPC32_LINUX)
+massif_ppc32_linux_LDFLAGS =3D $(TOOL_LDFLAGS_PPC32_LINUX)
Modified: trunk/massif/hp2ps/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
--- trunk/massif/hp2ps/Makefile.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/massif/hp2ps/Makefile.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -54,5 +54,7 @@
TraceElement.h \
Utilities.h
=20
-include $(top_srcdir)/Makefile.tool-inplace.am
-
+all-local:
+ mkdir -p $(inplacedir)
+ -rm -f $(addprefix $(inplacedir)/,$(val_PROGRAMS))
+ ln -f -s $(addprefix ../$(subdir)/,$(val_PROGRAMS)) $(inplacedir)
Property changes on: trunk/memcheck
___________________________________________________________________
Name: svn:ignore
- .deps
Makefile
Makefile.in
memcheck
*.so
+ .deps
Makefile
Makefile.in
memcheck-amd64-linux
memcheck-ppc32-linux
memcheck-x86-linux
*.so
Modified: trunk/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
--- trunk/memcheck/Makefile.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/memcheck/Makefile.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -1,28 +1,76 @@
include $(top_srcdir)/Makefile.tool.am
=20
-## Build Memcheck at a higher optimisation level
-AM_CFLAGS +=3D -O2
+noinst_PROGRAMS =3D=20
+if VG_X86_LINUX
+noinst_PROGRAMS +=3D memcheck-x86-linux vgpreload_memcheck-x86-linux.so
+endif
+if VG_AMD64_LINUX
+noinst_PROGRAMS +=3D memcheck-amd64-linux vgpreload_memcheck-amd64-linux=
.so
+endif
+if VG_PPC32_LINUX
+noinst_PROGRAMS +=3D memcheck-ppc32-linux vgpreload_memcheck-ppc32-linux=
.so
+endif
=20
-val_PROGRAMS =3D memcheck vgpreload_memcheck.so
+VGPRELOAD_MEMCHECK_SOURCES_COMMON =3D mac_replace_strmem.c
=20
-vgpreload_memcheck_so_SOURCES =3D mac_replace_strmem.c
-vgpreload_memcheck_so_DEPENDENCIES =3D $(LIBREPLACEMALLOC)
-vgpreload_memcheck_so_LDFLAGS =3D \
- -shared -Wl,-z,interpose,-z,initfirst \
- -Wl,--whole-archive \
- $(LIBREPLACEMALLOC) \
- -Wl,--no-whole-archive
+vgpreload_memcheck_x86_linux_so_SOURCES =3D $(VGPRELOAD_MEMCHECK_SO=
URCES_COMMON)
+vgpreload_memcheck_x86_linux_so_CPPFLAGS =3D $(AM_CPPFLAGS_X86_LINUX=
)
+vgpreload_memcheck_x86_linux_so_CFLAGS =3D $(AM_CFLAGS_X86_LINUX) =
$(AM_CFLAGS_PIC) -O2
+vgpreload_memcheck_x86_linux_so_CCASFLAGS =3D $(AM_CCASFLAGS_X86_LINU=
X)
+vgpreload_memcheck_x86_linux_so_DEPENDENCIES =3D $(LIBREPLACEMALLOC_X86_=
LINUX)
+vgpreload_memcheck_x86_linux_so_LDFLAGS =3D \
+ $(PRELOAD_LDFLAGS_X86_LINUX) \
+ $(LIBREPLACEMALLOC_LDFLAGS_X86_LINUX)
=20
-memcheck_SOURCES =3D \
+vgpreload_memcheck_amd64_linux_so_SOURCES =3D $(VGPRELOAD_MEMCHECK_=
SOURCES_COMMON)
+vgpreload_memcheck_amd64_linux_so_CPPFLAGS =3D $(AM_CPPFLAGS_AMD64_L=
INUX)
+vgpreload_memcheck_amd64_linux_so_CFLAGS =3D $(AM_CFLAGS_AMD64_LIN=
UX) $(AM_CFLAGS_PIC) -O2
+vgpreload_memcheck_amd64_linux_so_CCASFLAGS =3D $(AM_CCASFLAGS_AMD64_=
LINUX)
+vgpreload_memcheck_amd64_linux_so_DEPENDENCIES =3D $(LIBREPLACEMALLOC_AM=
D64_LINUX)
+vgpreload_memcheck_amd64_linux_so_LDFLAGS =3D \
+ $(PRELOAD_LDFLAGS_AMD64_LINUX) \
+ $(LIBREPLACEMALLOC_LDFLAGS_AMD64_LINUX)
+
+vgpreload_memcheck_ppc32_linux_so_SOURCES =3D $(VGPRELOAD_MEMCHECK_=
SOURCES_COMMON)
+vgpreload_memcheck_ppc32_linux_so_CPPFLAGS =3D $(AM_CPPFLAGS_PPC32_L=
INUX)
+vgpreload_memcheck_ppc32_linux_so_CFLAGS =3D $(AM_CFLAGS_PPC32_LIN=
UX) $(AM_CFLAGS_PIC) -O2
+vgpreload_memcheck_ppc32_linux_so_CCASFLAGS =3D $(AM_CCASFLAGS_PPC32_=
LINUX)
+vgpreload_memcheck_ppc32_linux_so_DEPENDENCIES =3D $(LIBREPLACEMALLOC_PP=
C32_LINUX)
+vgpreload_memcheck_ppc32_linux_so_LDFLAGS =3D \
+ $(PRELOAD_LDFLAGS_PPC32_LINUX) \
+ $(LIBREPLACEMALLOC_LDFLAGS_PPC32_LINUX)
+
+MEMCHECK_SOURCES_COMMON =3D \
mac_leakcheck.c \
mac_malloc_wrappers.c \
mc_main.c \
mac_shared.c \
mc_translate.c
-memcheck_DEPENDENCIES =3D $(COREGRIND_LIBS)
-memcheck_LDADD =3D $(TOOL_LINKADD)
-memcheck_LDFLAGS =3D $(TOOL_LINKFLAGS)
=20
+memcheck_x86_linux_SOURCES =3D $(MEMCHECK_SOURCES_COMMON)
+memcheck_x86_linux_CPPFLAGS =3D $(AM_CPPFLAGS_X86_LINUX)
+memcheck_x86_linux_CFLAGS =3D $(AM_CFLAGS_X86_LINUX) -O2
+memcheck_x86_linux_CCASFLAGS =3D $(AM_CCASFLAGS_X86_LINUX)
+memcheck_x86_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_X86_LINUX)
+memcheck_x86_linux_LDADD =3D $(TOOL_LDADD_X86_LINUX)
+memcheck_x86_linux_LDFLAGS =3D $(TOOL_LDFLAGS_X86_LINUX)
+
+memcheck_amd64_linux_SOURCES =3D $(MEMCHECK_SOURCES_COMMON)
+memcheck_amd64_linux_CPPFLAGS =3D $(AM_CPPFLAGS_AMD64_LINUX)
+memcheck_amd64_linux_CFLAGS =3D $(AM_CFLAGS_AMD64_LINUX) -O2
+memcheck_amd64_linux_CCASFLAGS =3D $(AM_CCASFLAGS_AMD64_LINUX)
+memcheck_amd64_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_AMD64_LINUX)
+memcheck_amd64_linux_LDADD =3D $(TOOL_LDADD_AMD64_LINUX)
+memcheck_amd64_linux_LDFLAGS =3D $(TOOL_LDFLAGS_AMD64_LINUX)
+
+memcheck_ppc32_linux_SOURCES =3D $(MEMCHECK_SOURCES_COMMON)
+memcheck_ppc32_linux_CPPFLAGS =3D $(AM_CPPFLAGS_PPC32_LINUX)
+memcheck_ppc32_linux_CFLAGS =3D $(AM_CFLAGS_PPC32_LINUX) -O2
+memcheck_ppc32_linux_CCASFLAGS =3D $(AM_CCASFLAGS_PPC32_LINUX)
+memcheck_ppc32_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_PPC32_LINUX)
+memcheck_ppc32_linux_LDADD =3D $(TOOL_LDADD_PPC32_LINUX)
+memcheck_ppc32_linux_LDFLAGS =3D $(TOOL_LDFLAGS_PPC32_LINUX)
+
mcincludedir =3D $(includedir)/valgrind
=20
mcinclude_HEADERS =3D \
Modified: trunk/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
--- trunk/memcheck/tests/Makefile.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/memcheck/tests/Makefile.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -140,9 +140,9 @@
new_override_SOURCES =3D new_override.cpp
=20
# Valgrind unit self-tests
-hello_LDFLAGS =3D -Wl,-defsym,valt_load_address=3D0x50000000 \
- -Wl,-T,$(top_builddir)/valt_load_address.lds
-hello_DEPENDENCIES =3D $(top_builddir)/valt_load_address.lds
+#hello_LDFLAGS =3D -Wl,-defsym,valt_load_address=3D0x50000000 \
+# -Wl,-T,$(top_builddir)/valt_load_address.lds
+#hello_DEPENDENCIES =3D $(top_builddir)/valt_load_address.lds
=20
# vgtest_ume is not working
#vgtest_ume_CFLAGS =3D -DVGA_$(VG_ARCH) -DVGO_$(VG_OS)
Property changes on: trunk/none
___________________________________________________________________
Name: svn:ignore
- .deps
Makefile
Makefile.in
none
*.so
+ .deps
Makefile
Makefile.in
none-amd64-linux
none-ppc32-linux
none-x86-linux
*.so
Modified: trunk/none/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
--- trunk/none/Makefile.am 2005-11-07 14:43:12 UTC (rev 5026)
+++ trunk/none/Makefile.am 2005-11-07 15:24:38 UTC (rev 5027)
@@ -1,8 +1,35 @@
include $(top_srcdir)/Makefile.tool.am
=20
-val_PROGRAMS =3D none
+noinst_PROGRAMS =3D=20
+if VG_X86_LINUX
+noinst_PROGRAMS +=3D none-x86-linux
+endif
+if VG_AMD64_LINUX
+noinst_PROGRAMS +=3D none-amd64-linux
+endif
+if VG_PPC32_LINUX
+noinst_PROGRAMS +=3D none-ppc32-linux
+endif
=20
-none_SOURCES =3D nl_main.c
-none_DEPENDENCIES =3D $(COREGRIND_LIBS)
-none_LDADD =3D $(TOOL_LINKADD)
-none_LDFLAGS =3D $(TOOL_LINKFLAGS)
+NONE_SOURCES_COMMON =3D nl_main.c
+
+none_x86_linux_SOURCES =3D $(NONE_SOURCES_COMMON)
+none_x86_linux_CPPFLAGS =3D $(AM_CPPFLAGS_X86_LINUX)
+none_x86_linux_CFLAGS =3D $(AM_CFLAGS_X86_LINUX)
+none_x86_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_X86_LINUX)
+none_x86_linux_LDADD =3D $(TOOL_LDADD_X86_LINUX)
+none_x86_linux_LDFLAGS =3D $(TOOL_LDFLAGS_X86_LINUX)
+
+none_amd64_linux_SOURCES =3D $(NONE_SOURCES_COMMON)
+none_amd64_linux_CPPFLAGS =3D $(AM_CPPFLAGS_AMD64_LINUX)
+none_amd64_linux_CFLAGS =3D $(AM_CFLAGS_AMD64_LINUX)
+none_amd64_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_AMD64_LINUX)
+none_amd64_linux_LDADD =3D $(TOOL_LDADD_AMD64_LINUX)
+none_amd64_linux_LDFLAGS =3D $(TOOL_LDFLAGS_AMD64_LINUX)
+
+none_ppc32_linux_SOURCES =3D $(NONE_SOURCES_COMMON)
+none_ppc32_linux_CPPFLAGS =3D $(AM_CPPFLAGS_PPC32_LINUX)
+none_ppc32_linux_CFLAGS =3D $(AM_CFLAGS_PPC32_LINUX)
+none_ppc32_linux_DEPENDENCIES =3D $(COREGRIND_LIBS_PPC32_LINUX)
+none_ppc32_linux_LDADD =3D $(TOOL_LDADD_PPC32_LINUX)
+none_ppc32_linux_LDFLAGS =3D $(TOOL_LDFLAGS_PPC32_LINUX)
|