|
From: Florian K. <br...@ac...> - 2009-01-08 02:26:49
|
Hello,
I was making some changes in the VEX subtree and noticed
(after some debugging) that rebuilding from valgrind's toplevel
directory would not pick up those changes and recompile VEX.
The patch below is minimally invasive and fixes the
dependency issue. It does that by forcing the make process to
recurse into the VEX subdirectory.
To apply the patch use patch -p1
I hope I did not miss anything. The existing dependency of, say,
libvex_x86_linux.a on VEX/priv/main/vex_svnversion.h in
Makefile.tool.am was a bit puzzling. AFAICT vex_svnversion.h
gets built when it does not exist. So that happens exactly once.
But even, if it was rebuilt all the time, it would not have helped
to pick up dependecies inside the VEX subtree. The patch below
also moves the building of vex_svnversion.h to VEX/Makefile for
reasons of better locality.
Can this patch please be considered for inclusion into valgrind
mainline?
Thanks,
Florian
diff -u -r -x .svn trunk/Makefile.all.am patched/Makefile.all.am
--- trunk/Makefile.all.am 2009-01-07 20:43:32.000000000 -0500
+++ patched/Makefile.all.am 2009-01-07 20:41:44.000000000 -0500
@@ -11,3 +11,5 @@
# (this is equivalent to enforcing "make -j 1".
.NOTPARALLEL:
+# Dummy target used as dependency to force re-building certain targets.
+force:
diff -u -r -x .svn trunk/Makefile.tool.am patched/Makefile.tool.am
--- trunk/Makefile.tool.am 2009-01-07 20:43:32.000000000 -0500
+++ patched/Makefile.tool.am 2009-01-07 20:41:44.000000000 -0500
@@ -50,45 +50,42 @@
##.PHONY: @VEX_DIR@/libvex.a
-@VEX_DIR@/libvex_x86_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
+@VEX_DIR@/libvex_x86_linux.a: force
$(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
libvex_x86_linux.a \
EXTRA_CFLAGS="$(AM_CFLAGS_X86_LINUX) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
-@VEX_DIR@/libvex_amd64_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
+@VEX_DIR@/libvex_amd64_linux.a: force
$(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
libvex_amd64_linux.a \
EXTRA_CFLAGS="$(AM_CFLAGS_AMD64_LINUX) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
-@VEX_DIR@/libvex_ppc32_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
+@VEX_DIR@/libvex_ppc32_linux.a: force
$(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
libvex_ppc32_linux.a \
EXTRA_CFLAGS="$(AM_CFLAGS_PPC32_LINUX) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
-@VEX_DIR@/libvex_ppc64_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
+@VEX_DIR@/libvex_ppc64_linux.a: force
$(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
libvex_ppc64_linux.a \
EXTRA_CFLAGS="$(AM_CFLAGS_PPC64_LINUX) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
-@VEX_DIR@/libvex_ppc32_aix5.a: @VEX_DIR@/priv/main/vex_svnversion.h
+@VEX_DIR@/libvex_ppc32_aix5.a: force
$(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR) -X32" \
libvex_ppc32_aix5.a \
EXTRA_CFLAGS="$(AM_CFLAGS_PPC32_AIX5) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
-@VEX_DIR@/libvex_ppc64_aix5.a: @VEX_DIR@/priv/main/vex_svnversion.h
+@VEX_DIR@/libvex_ppc64_aix5.a: force
$(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR) -X64" \
libvex_ppc64_aix5.a \
EXTRA_CFLAGS="$(AM_CFLAGS_PPC64_AIX5) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
-@VEX_DIR@/priv/main/vex_svnversion.h:
- $(MAKE) -C @VEX_DIR@ CC="$(CC)" version
-
TOOL_LDADD_COMMON = -lgcc
TOOL_LDFLAGS_COMMON_LINUX = -static \
-Wl,-defsym,valt_load_address=@VALT_LOAD_ADDRESS@ \
diff -u -r -x .svn trunk/VEX/Makefile patched/VEX/Makefile
--- trunk/VEX/Makefile 2009-01-07 20:44:00.000000000 -0500
+++ patched/VEX/Makefile 2009-01-07 20:20:46.000000000 -0500
@@ -319,3 +319,6 @@
priv/guest-ppc/toIR.o: $(ALL_HEADERS) priv/guest-ppc/toIR.c
$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-ppc/toIR.o \
-c priv/guest-ppc/toIR.c
+priv/main/vex_svnversion.h:
+ $(MAKE) -C . CC="$(CC)" version
+
|