|
From: Bart V. A. <bva...@ac...> - 2010-06-02 19:39:33
|
Hello Julian,
The output I get with r11145 on openSUSE 11.2 is as follows:
$ ./vg-in-place --tool=none /bin/ls
valgrind: mmap(0x400000, 94208) failed in UME with error 22 (Invalid argument).
valgrind: this can be caused by executables with very large text, data
or bss segments.
$ ./vg-in-place -v -v -d -d --tool=none /bin/ls
--22839:1:debuglog DebugLog system started by Stage 1, level 2 logging requested
--22839:1:launcher tool 'none' requested
--22839:2:launcher selecting platform for '/bin/ls'
--22839:2:launcher selecting platform for '/bin/ls'
--22839:2:launcher opened '/bin/ls'
--22839:2:launcher read 4096 bytes from '/bin/ls'
--22839:2:launcher selected platform 'amd64-linux'
--22839:1:launcher selected platform 'amd64-linux'
--22839:1:launcher launching
/home/bart/software/valgrind/./.in_place/none-amd64-linux
--22839:1:debuglog DebugLog system started by Stage 2 (main), level 2
logging requested
--22839:1:main Welcome to Valgrind version 3.6.0.SVN debug logging
--22839:1:main Checking current stack is plausible
--22839:1:main Checking initial stack was noted
--22839:1:main Starting the address space manager
--22839:2:aspacem sp_at_startup = 0x7fff130cdc90 (supplied)
--22839:2:aspacem minAddr = 0x0004000000 (computed)
--22839:2:aspacem maxAddr = 0x07ffffffff (computed)
--22839:2:aspacem cStart = 0x0004000000 (computed)
--22839:2:aspacem vStart = 0x0402000000 (computed)
--22839:2:aspacem suggested_clstack_top = 0x07ff000fff (computed)
--22839:2:aspacem <<< SHOW_SEGMENTS: Initial layout (5 segments, 0 segnames)
--22839:2:aspacem 0: RSVN 0000000000-0003ffffff 64m ----- SmFixed
--22839:2:aspacem 1: 0004000000-0401ffffff 16352m
--22839:2:aspacem 2: RSVN 0402000000-0402000fff 4096 ----- SmFixed
--22839:2:aspacem 3: 0402001000-07ffffffff 16351m
--22839:2:aspacem 4: RSVN 0800000000-ffffffffffffffff 16383e ----- SmFixed
--22839:2:aspacem >>>
--22839:2:aspacem Reading /proc/self/maps
--22839:2:aspacem <<< SHOW_SEGMENTS: With contents of
/proc/self/maps (18 segments, 1 segnames)
--22839:2:aspacem ( 0) /home/bart/software/valgrind/none/none-amd64-linux
--22839:2:aspacem 0: RSVN 0000000000-00003fffff 4194304 ----- SmFixed
--22839:2:aspacem 1: FILE 0000400000-0000400fff 4096 r----
d=0x902 i=6087151 o=0 (0)
--22839:2:aspacem 2: RSVN 0000401000-0003ffffff 59m ----- SmFixed
--22839:2:aspacem 3: 0004000000-0037ffffff 832m
--22839:2:aspacem 4: FILE 0038000000-00381cafff 1880064 r-x--
d=0x902 i=6087151 o=2097152 (0)
--22839:2:aspacem 5: 00381cb000-00383c9fff 2093056
--22839:2:aspacem 6: FILE 00383ca000-00383ccfff 12288 rw---
d=0x902 i=6087151 o=3973120 (0)
--22839:2:aspacem 7: ANON 00383cd000-0038d4cfff 9961472 rw---
--22839:2:aspacem 8: 0038d4d000-0401ffffff 15506m
--22839:2:aspacem 9: RSVN 0402000000-0402000fff 4096 ----- SmFixed
--22839:2:aspacem 10: 0402001000-07ffffffff 16351m
--22839:2:aspacem 11: RSVN 0800000000-7fff130aefff 131036g ----- SmFixed
--22839:2:aspacem 12: ANON 7fff130af000-7fff130cffff 135168 rw---
--22839:2:aspacem 13: RSVN 7fff130d0000-7fff131adfff 909312 ----- SmFixed
--22839:2:aspacem 14: ANON 7fff131ae000-7fff131aefff 4096 r-x--
--22839:2:aspacem 15: RSVN 7fff131af000-ffffffffff5fffff 16383e
----- SmFixed
--22839:2:aspacem 16: ANON ffffffffff600000-ffffffffff600fff 4096 r-x--
--22839:2:aspacem 17: RSVN ffffffffff601000-ffffffffffffffff
9m ----- SmFixed
--22839:2:aspacem >>>
--22839:1:main Address space manager is running
--22839:1:main Starting the dynamic memory manager
--22839:1:mallocfr newSuperblock at 0x402001000 (pszB 4194272) owner
VALGRIND/tool
--22839:1:main Dynamic memory manager is running
--22839:1:main Initialise m_debuginfo
--22839:1:main VG_(libdir) = /home/bart/software/valgrind/./.in_place
--22839:1:main Getting launcher's name ...
--22839:1:main ... /home/bart/software/valgrind/coregrind/valgrind
--22839:1:main Get hardware capabilities ...
--22839:1:main ... arch = AMD64, hwcaps = amd64-sse3-cx16
--22839:1:main Getting the working directory at startup
--22839:1:main ... /home/bart/software/valgrind
--22839:1:main Split up command line
--22839:1:main (early_) Process Valgrind's command line options
--22839:1:main Create initial image
--22839:1:initimg Loading client
valgrind: mmap(0x400000, 94208) failed in UME with error 22 (Invalid argument).
valgrind: this can be caused by executables with very large text, data
or bss segments.
Bart.
On Wed, Jun 2, 2010 at 2:31 AM, <sv...@va...> wrote:
> Author: sewardj
> Date: 2010-06-02 01:31:34 +0100 (Wed, 02 Jun 2010)
> New Revision: 11141
>
> Log:
> Add a new program (link_tool_exe.c) and use this to link the tool
> executables. Gets rid of the linker script kludgery and uniformly
> uses -Ttext=0x38000000 (or whatever) on Linux, so as to accomodate
> both traditional ld and gold. Should fix #193413 although I have
> been unable to test it. Using a whole new program seems like
> overkill, but this is infrastructure to support static linking of
> the tool executables on MacOS too.
>
>
> Added:
> trunk/coregrind/link_tool_exe.c
> Modified:
> trunk/Makefile.all.am
> trunk/Makefile.tool.am
> trunk/cachegrind/Makefile.am
> trunk/callgrind/Makefile.am
> trunk/coregrind/Makefile.am
> trunk/drd/Makefile.am
> trunk/exp-bbv/Makefile.am
> trunk/exp-ptrcheck/Makefile.am
> trunk/helgrind/Makefile.am
> trunk/lackey/Makefile.am
> trunk/massif/Makefile.am
> trunk/memcheck/Makefile.am
> trunk/none/Makefile.am
>
>
> Modified: trunk/Makefile.all.am
> ===================================================================
> --- trunk/Makefile.all.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/Makefile.all.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -37,8 +37,10 @@
> inplace-noinst_PROGRAMS: $(noinst_PROGRAMS)
> mkdir -p $(inplacedir); \
> for f in $(noinst_PROGRAMS) ; do \
> - rm -f $(inplacedir)/$$f; \
> - ln -f -s ../$(subdir)/$$f $(inplacedir); \
> + if [ $$f != link_tool_exe ] ; then \
> + rm -f $(inplacedir)/$$f; \
> + ln -f -s ../$(subdir)/$$f $(inplacedir); \
> + fi; \
> done
>
> # Similar to inplace-noinst_PROGRAMS
> @@ -55,7 +57,9 @@
> install-noinst_PROGRAMS: $(noinst_PROGRAMS)
> $(mkinstalldirs) $(DESTDIR)$(pkglibdir); \
> for f in $(noinst_PROGRAMS); do \
> - $(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibdir); \
> + if [ $$f != link_tool_exe ] ; then \
> + $(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibdir); \
> + fi; \
> done
>
> # Similar to install-noinst_PROGRAMS.
>
> Modified: trunk/Makefile.tool.am
> ===================================================================
> --- trunk/Makefile.tool.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/Makefile.tool.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -26,32 +26,28 @@
> endif
>
>
> -TOOL_LDFLAGS_COMMON_LINUX = -static \
> - -Wl,-defsym,valt_load_address=@VALT_LOAD_ADDRESS@ \
> - -nodefaultlibs -nostartfiles -u _start
> -TOOL_LDFLAGS_COMMON_AIX5 = -static -Wl,-e_start_valgrind
> -TOOL_LDFLAGS_COMMON_DARWIN = -nodefaultlibs -nostartfiles \
> +TOOL_LDFLAGS_COMMON_LINUX = \
> + -static -nodefaultlibs -nostartfiles -u _start
> +TOOL_LDFLAGS_COMMON_AIX5 = \
> + -static -Wl,-e_start_valgrind
> +TOOL_LDFLAGS_COMMON_DARWIN = \
> + -nodefaultlibs -nostartfiles \
> -Wl,-u,__start -Wl,-e,__start -Wl,-bind_at_load /usr/lib/dyld
>
> TOOL_LDFLAGS_X86_LINUX = \
> - $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
> - -Wl,-T,$(top_builddir)/valt_load_address_x86_linux.lds
> + $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@
>
> TOOL_LDFLAGS_AMD64_LINUX = \
> - $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@ \
> - -Wl,-T,$(top_builddir)/valt_load_address_amd64_linux.lds
> + $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
>
> TOOL_LDFLAGS_PPC32_LINUX = \
> - $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
> - -Wl,-T,$(top_builddir)/valt_load_address_ppc32_linux.lds
> + $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@
>
> TOOL_LDFLAGS_PPC64_LINUX = \
> - $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@ \
> - -Wl,-T,$(top_builddir)/valt_load_address_ppc64_linux.lds
> + $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
>
> TOOL_LDFLAGS_ARM_LINUX = \
> - $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@ \
> - -Wl,-T,$(top_builddir)/valt_load_address_arm_linux.lds
> + $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@
>
> TOOL_LDFLAGS_PPC32_AIX5 = \
> $(TOOL_LDFLAGS_COMMON_AIX5) @FLAG_MAIX32@
> @@ -74,96 +70,6 @@
> -Wl,-pagezero_size,0x100000000
>
>
> -BUILT_SOURCES =
> -CLEANFILES =
> -if VGCONF_PLATFORMS_INCLUDE_X86_LINUX
> -BUILT_SOURCES += $(top_builddir)/valt_load_address_x86_linux.lds
> -CLEANFILES += $(top_builddir)/valt_load_address_x86_linux.lds
> -endif
> -if VGCONF_PLATFORMS_INCLUDE_AMD64_LINUX
> -BUILT_SOURCES += $(top_builddir)/valt_load_address_amd64_linux.lds
> -CLEANFILES += $(top_builddir)/valt_load_address_amd64_linux.lds
> -endif
> -if VGCONF_PLATFORMS_INCLUDE_PPC32_LINUX
> -BUILT_SOURCES += $(top_builddir)/valt_load_address_ppc32_linux.lds
> -CLEANFILES += $(top_builddir)/valt_load_address_ppc32_linux.lds
> -endif
> -if VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX
> -BUILT_SOURCES += $(top_builddir)/valt_load_address_ppc64_linux.lds
> -CLEANFILES += $(top_builddir)/valt_load_address_ppc64_linux.lds
> -endif
> -if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX
> -BUILT_SOURCES += $(top_builddir)/valt_load_address_arm_linux.lds
> -CLEANFILES += $(top_builddir)/valt_load_address_arm_linux.lds
> -endif
> -if VGCONF_PLATFORMS_INCLUDE_PPC32_AIX5
> -# No need to generate $(top_builddir)/valt_load_address*.lds; the final
> -# executables can be linked to be at any address. They will be relocated by
> -# AIX kernel when they are loaded.
> -endif
> -if VGCONF_PLATFORMS_INCLUDE_PPC64_AIX5
> -# Ditto
> -endif
> -if VGCONF_OS_IS_DARWIN
> -# GrP untested, possibly hopeless
> -endif
> -
> -
> -# 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=0x70000000).
> -#
> -# Extract ld's default linker script and hack it to our needs.
> -# First we cut everything above and below the "=====..." 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:
> -#
> -# . = 0x08048000 + SIZEOF_HEADERS;
> -#
> -# or
> -# PROVIDE (__executable_start = 0x08048000); . = 0x08048000 + SIZEOF_HEADERS;
> -#
> -# So we search for the line with a hex value "+ SIZEOF_HEADERS", and replace
> -# all the hex values in that line with "valt_load_address".
> -$(top_builddir)/valt_load_address_x86_linux.lds: Makefile
> - $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed \
> - -e '1,/^=====\+$$/d' \
> - -e '/^=====\+$$/,/.\*/d' \
> - -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
> - || rm -f $@
> -
> -$(top_builddir)/valt_load_address_amd64_linux.lds: Makefile
> - $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | sed \
> - -e '1,/^=====\+$$/d' \
> - -e '/^=====\+$$/,/.\*/d' \
> - -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
> - || rm -f $@
> -
> -$(top_builddir)/valt_load_address_ppc32_linux.lds: Makefile
> - $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed \
> - -e '1,/^=====\+$$/d' \
> - -e '/^=====\+$$/,/.\*/d' \
> - -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
> - || rm -f $@
> -
> -$(top_builddir)/valt_load_address_ppc64_linux.lds: Makefile
> - $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | sed \
> - -e '1,/^=====\+$$/d' \
> - -e '/^=====\+$$/,/.\*/d' \
> - -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
> - || rm -f $@
> -
> -$(top_builddir)/valt_load_address_arm_linux.lds: Makefile
> - $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed \
> - -e '1,/^=====\+$$/d' \
> - -e '/^=====\+$$/,/.\*/d' \
> - -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \
> - || rm -f $@
> -
> #----------------------------------------------------------------------------
> # vgpreload_<tool>-<platform>.a stuff
> #----------------------------------------------------------------------------
>
> Modified: trunk/cachegrind/Makefile.am
> ===================================================================
> --- trunk/cachegrind/Makefile.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/cachegrind/Makefile.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -55,6 +55,13 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
> cachegrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +cachegrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(cachegrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
> + $(cachegrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> cachegrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
> $(CACHEGRIND_SOURCES_COMMON)
> @@ -68,6 +75,12 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
> cachegrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> +cachegrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(cachegrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
> + $(cachegrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
> endif
>
>
>
> Modified: trunk/callgrind/Makefile.am
> ===================================================================
> --- trunk/callgrind/Makefile.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/callgrind/Makefile.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -65,6 +65,13 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
> callgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +callgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(callgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
> + $(callgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> callgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
> $(CALLGRIND_SOURCES_COMMON)
> @@ -78,5 +85,11 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
> callgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> +callgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(callgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
> + $(callgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
> endif
>
>
> Modified: trunk/coregrind/Makefile.am
> ===================================================================
> --- trunk/coregrind/Makefile.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/coregrind/Makefile.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -422,6 +422,27 @@
> endif
>
> #----------------------------------------------------------------------------
> +# link_tool_exe, the wrapper for the system linker
> +#----------------------------------------------------------------------------
> +
> +noinst_PROGRAMS += link_tool_exe
> +
> +link_tool_exe_SOURCES = link_tool_exe.c
> +link_tool_exe_CPPFLAGS = $(AM_CPPFLAGS_PRI)
> +link_tool_exe_CFLAGS = $(AM_CFLAGS_PRI)
> +link_tool_exe_CCASFLAGS = $(AM_CCASFLAGS_PRI)
> +link_tool_exe_LDFLAGS = $(AM_CFLAGS_PRI)
> +
> +# force link_tool_exe to be built before libcoregrind.a is, and hence
> +# before any of the tool executables are linked, since they in turn
> +# are dependent on libcoregrind.a. Unfortunately this doesn't give a
> +# dependence on link_tool_exe.c: ideally if link_tool_exe.c is
> +# changed, then 'make' rebuilds link_tool_exe, but the tool
> +# executables themselves are not relinked. I can't figure out how
> +# to get that to happen.
> +BUILT_SOURCES += link_tool_exe
> +
> +#----------------------------------------------------------------------------
> # General stuff
> #----------------------------------------------------------------------------
>
>
> Added: trunk/coregrind/link_tool_exe.c
> ===================================================================
> --- trunk/coregrind/link_tool_exe.c (rev 0)
> +++ trunk/coregrind/link_tool_exe.c 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -0,0 +1,104 @@
> +
> +/* This program handles linking the tool executables, statically and
> + at an alternative load address. Linking them statically sidesteps
> + all sorts of complications to do with having two copies of the
> + dynamic linker (valgrind's and the client's) coexisting in the same
> + process. The alternative load address is needed because Valgrind
> + itself will load the client at whatever address it specifies, which
> + is almost invariably the default load address. Hence we can't
> + allow Valgrind itself (viz, the tool executable) to be loaded at
> + that address.
> +
> + Unfortunately there's no standard way to do 'static link at
> + alternative address', so this program handles the per-platform
> + hoop-jumping.
> +*/
> +
> +/* What we get passed here is:
> + first arg
> + the alternative load address
> + all the rest of the args
> + the gcc invokation to do the final link, that
> + the build system would have done, left to itself
> +
> + We just let assertions fail rather than do proper error reporting.
> + We don't expect the users to run this directly. It is only run
> + from as part of the build process, with carefully constrained
> + inputs.
> +*/
> +
> +#if defined(VGO_linux)
> +
> +// Don't NDEBUG this; the asserts are necesary for
> +// safety checks.
> +#include <assert.h>
> +#include <string.h>
> +#include <stdio.h>
> +#include <stdlib.h>
> +
> +int main ( int argc, char** argv )
> +{
> + int i;
> + size_t reqd = 0;
> +
> + // expect at least: alt-load-address gcc -o foo bar.o
> + assert(argc > 5);
> +
> + // check for plausible-ish alt load address
> + char* ala = argv[1];
> + assert(ala[0] == '0');
> + assert(ala[1] == 'x');
> +
> + // We'll need to invoke this to do the linking
> + char* gcc = argv[2];
> +
> + // and the 'restargs' are argv[3 ..]
> +
> + // so, build up the complete command here:
> + // 'gcc' -static -Ttext='ala' 'restargs'
> +
> + // first, do length safety checks
> + reqd += 1+ strlen(gcc);
> + reqd += 1+ 100/*let's say*/ + strlen(ala);
> + for (i = 3; i < argc; i++)
> + reqd += 1+ strlen(argv[i]);
> +
> + reqd += 1;
> + char* cmd = calloc(reqd,1);
> + assert(cmd);
> +
> + char ttext[100];
> + assert(strlen(ala) < 30);
> + memset(ttext, 0, sizeof(ttext));
> + sprintf(ttext, " -static -Wl,-Ttext=%s", ala);
> +
> + strcpy(cmd, gcc);
> + strcat(cmd, ttext);
> + for (i = 3; i < argc; i++) {
> + strcat(cmd, " ");
> + strcat(cmd, argv[i]);
> + }
> +
> + assert(cmd[reqd-1] == 0);
> +
> + if (0) printf("\n");
> + printf("link_tool_exe: %s\n", cmd);
> + if (0) printf("\n");
> +
> + int r = system(cmd);
> +
> + free(cmd);
> +
> + // return the result of system. Note, we should handle it
> + // properly; that would involve using WEXITSTATUS on the
> + // value system gives back to us.
> + return r;
> +}
> +
> +#elif defined(VGO_darwin)
> +
> +#error Daaaawin
> +
> +#else
> +# error "Unsupported OS"
> +#endif
>
> Modified: trunk/drd/Makefile.am
> ===================================================================
> --- trunk/drd/Makefile.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/drd/Makefile.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -66,7 +66,8 @@
> drd_semaphore.c \
> drd_suppression.c
>
> -drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = $(DRD_SOURCES_COMMON)
> +drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \
> + $(DRD_SOURCES_COMMON)
> drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = \
> @@ -77,8 +78,16 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
> drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
> + $(drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> -drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = $(DRD_SOURCES_COMMON)
> +drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
> + $(DRD_SOURCES_COMMON)
> drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = \
> @@ -89,6 +98,12 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
> drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> +drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
> + $(drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
> endif
>
> #----------------------------------------------------------------------------
> @@ -120,6 +135,7 @@
> vgpreload_drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \
> $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
> $(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> vgpreload_drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = \
> $(VGPRELOAD_DRD_SOURCES_COMMON)
>
> Modified: trunk/exp-bbv/Makefile.am
> ===================================================================
> --- trunk/exp-bbv/Makefile.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/exp-bbv/Makefile.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -13,7 +13,8 @@
>
> BBV_SOURCES_COMMON = bbv_main.c
>
> -exp_bbv_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = $(BBV_SOURCES_COMMON)
> +exp_bbv_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \
> + $(BBV_SOURCES_COMMON)
> exp_bbv_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> exp_bbv_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = \
> @@ -24,8 +25,16 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
> exp_bbv_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +exp_bbv_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(exp_bbv_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
> + $(exp_bbv_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> -exp_bbv_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = $(BBV_SOURCES_COMMON)
> +exp_bbv_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
> + $(BBV_SOURCES_COMMON)
> exp_bbv_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> exp_bbv_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = \
> @@ -36,4 +45,10 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
> exp_bbv_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> +exp_bbv_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(exp_bbv_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
> + $(exp_bbv_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
> endif
>
> Modified: trunk/exp-ptrcheck/Makefile.am
> ===================================================================
> --- trunk/exp-ptrcheck/Makefile.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/exp-ptrcheck/Makefile.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -38,6 +38,13 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
> exp_ptrcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +exp_ptrcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(exp_ptrcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
> + $(exp_ptrcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> exp_ptrcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
> $(EXP_PTRCHECK_SOURCES_COMMON)
> @@ -51,6 +58,12 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
> exp_ptrcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> +exp_ptrcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(exp_ptrcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
> + $(exp_ptrcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
> endif
>
> #----------------------------------------------------------------------------
> @@ -79,6 +92,7 @@
> vgpreload_exp_ptrcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \
> $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
> $(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> vgpreload_exp_ptrcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = \
> $(VGPRELOAD_EXP_PTRCHECK_SOURCES_COMMON)
>
> Modified: trunk/helgrind/Makefile.am
> ===================================================================
> --- trunk/helgrind/Makefile.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/helgrind/Makefile.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -35,7 +35,8 @@
> hg_wordset.c \
> libhb_core.c
>
> -helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = $(HELGRIND_SOURCES_COMMON)
> +helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \
> + $(HELGRIND_SOURCES_COMMON)
> helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = \
> @@ -46,8 +47,16 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
> helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
> + $(helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> -helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = $(HELGRIND_SOURCES_COMMON)
> +helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
> + $(HELGRIND_SOURCES_COMMON)
> helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = \
> @@ -58,6 +67,12 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
> helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> +helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
> + $(helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
> endif
>
> #----------------------------------------------------------------------------
> @@ -86,6 +101,7 @@
> vgpreload_helgrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \
> $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
> $(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> vgpreload_helgrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = \
> $(VGPRELOAD_HELGRIND_SOURCES_COMMON)
>
> Modified: trunk/lackey/Makefile.am
> ===================================================================
> --- trunk/lackey/Makefile.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/lackey/Makefile.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -13,7 +13,8 @@
>
> LACKEY_SOURCES_COMMON = lk_main.c
>
> -lackey_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = $(LACKEY_SOURCES_COMMON)
> +lackey_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \
> + $(LACKEY_SOURCES_COMMON)
> lackey_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> lackey_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = \
> @@ -24,8 +25,16 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
> lackey_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +lackey_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(lackey_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
> + $(lackey_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> -lackey_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = $(LACKEY_SOURCES_COMMON)
> +lackey_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
> + $(LACKEY_SOURCES_COMMON)
> lackey_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> lackey_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = \
> @@ -36,5 +45,11 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
> lackey_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> +lackey_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(lackey_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
> + $(lackey_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
> endif
>
>
> Modified: trunk/massif/Makefile.am
> ===================================================================
> --- trunk/massif/Makefile.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/massif/Makefile.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -23,7 +23,8 @@
>
> MASSIF_SOURCES_COMMON = ms_main.c
>
> -massif_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = $(MASSIF_SOURCES_COMMON)
> +massif_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \
> + $(MASSIF_SOURCES_COMMON)
> massif_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> massif_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = \
> @@ -34,8 +35,16 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
> massif_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +massif_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(massif_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
> + $(massif_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> -massif_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = $(MASSIF_SOURCES_COMMON)
> +massif_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
> + $(MASSIF_SOURCES_COMMON)
> massif_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> massif_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = \
> @@ -46,6 +55,12 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
> massif_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> +massif_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(massif_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
> + $(massif_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
> endif
>
> #----------------------------------------------------------------------------
> @@ -71,6 +86,7 @@
> vgpreload_massif_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \
> $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
> $(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> vgpreload_massif_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES =
> vgpreload_massif_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = \
>
> Modified: trunk/memcheck/Makefile.am
> ===================================================================
> --- trunk/memcheck/Makefile.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/memcheck/Makefile.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -31,7 +31,8 @@
> mc_machine.c \
> mc_errors.c
>
> -memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = $(MEMCHECK_SOURCES_COMMON)
> +memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \
> + $(MEMCHECK_SOURCES_COMMON)
> memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = \
> @@ -42,8 +43,16 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
> memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
> + $(memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> -memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = $(MEMCHECK_SOURCES_COMMON)
> +memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
> + $(MEMCHECK_SOURCES_COMMON)
> memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = \
> @@ -54,6 +63,12 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
> memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> +memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
> + $(memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
> endif
>
> mc_main.o: CFLAGS += -fomit-frame-pointer
> @@ -84,6 +99,7 @@
> vgpreload_memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \
> $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
> $(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> vgpreload_memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = \
> $(VGPRELOAD_MEMCHECK_SOURCES_COMMON)
>
> Modified: trunk/none/Makefile.am
> ===================================================================
> --- trunk/none/Makefile.am 2010-05-29 18:43:43 UTC (rev 11140)
> +++ trunk/none/Makefile.am 2010-06-02 00:31:34 UTC (rev 11141)
> @@ -13,7 +13,8 @@
>
> NONE_SOURCES_COMMON = nl_main.c
>
> -none_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = $(NONE_SOURCES_COMMON)
> +none_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \
> + $(NONE_SOURCES_COMMON)
> none_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> none_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = \
> @@ -24,8 +25,16 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
> none_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
> +none_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(none_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
> + $(none_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
> +
> if VGCONF_HAVE_PLATFORM_SEC
> -none_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = $(NONE_SOURCES_COMMON)
> +none_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
> + $(NONE_SOURCES_COMMON)
> none_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS = \
> $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> none_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = \
> @@ -36,6 +45,12 @@
> $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
> none_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
> $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
> +none_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
> + $(top_builddir)/coregrind/link_tool_exe \
> + @VALT_LOAD_ADDRESS@ \
> + $(LINK) \
> + $(none_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
> + $(none_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
> endif
>
>
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Valgrind-developers mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-developers
>
|