|
From: Yao Qi <qiy...@cn...> - 2005-11-11 10:30:51
|
When I update files in VEX/ direcotry and rebuild Valgrind by 'make', it
seems that libvex.a could not be rebuilt automatically except run 'make
libvex.a' in VEX directory.
Now, all the TOOLs are dependent on VEX/libvex.a and coregrind/valgrind
is not, so when run 'make' in top directory of source code tree, the
updated files in VEX could not be compiled ,VEX/libvex.a could not be
updated, and finally all the TOOLs will not re-link VEX/libvex.a. So
everytime when I modify files in VEX directory, I should 'make libvex.a'
in VEX to build libvex.a and 'make' in lackey/, for example, to link
this new VEX/libvex.a to lackey or someother TOOLs.
The depedency of coregrind/valgrind on libvex.a may be added to remove this
problem. I am not so sure of compilation dependency, and anyone here
could confirm or deny this, thanks in advance!
This problem is solved on my box until I apply this patch, and I list it
below for your reference. Any comments are greatly appreciated!
Index: coregrind/Makefile.am
===================================================================
--- coregrind/Makefile.am (revision 5077)
+++ coregrind/Makefile.am (working copy)
@@ -232,6 +232,9 @@
libvex_guest_offsets.h:
$(MAKE) -C @VEX_DIR@ pub/libvex_guest_offsets.h
+valgrind: @VEX_DIR@/libvex.a
+ $(MAKE) -C @VEX_DIR@ libvex.a
+
VGPRELOAD_CORE_SOURCES_COMMON = vg_preloaded.c
vgpreload_core_x86_linux_so_SOURCES =
$(VGPRELOAD_CORE_SOURCES_COMMON)
--
Regards, Yao
------------
Yao Qi
|
|
From: Tom H. <to...@co...> - 2005-11-11 10:43:58
|
In message <200...@cn...>
Yao Qi <qiy...@cn...> wrote:
> When I update files in VEX/ direcotry and rebuild Valgrind by 'make', it
> seems that libvex.a could not be rebuilt automatically except run 'make
> libvex.a' in VEX directory.
We know. We just haven't work out how to fix it without introducing
other problems.
> Now, all the TOOLs are dependent on VEX/libvex.a and coregrind/valgrind
> is not, so when run 'make' in top directory of source code tree, the
> updated files in VEX could not be compiled ,VEX/libvex.a could not be
> updated, and finally all the TOOLs will not re-link VEX/libvex.a. So
> everytime when I modify files in VEX directory, I should 'make libvex.a'
> in VEX to build libvex.a and 'make' in lackey/, for example, to link
> this new VEX/libvex.a to lackey or someother TOOLs.
The reason coregrind/valgrind is not dependent on it is because it
doesn't link with it, hence it is not dependent on it!
The only things dependent on libvex.a are the tool binaries so each
of those should have a dependency on it. I might even see if that works...
> The depedency of coregrind/valgrind on libvex.a may be added to remove this
> problem. I am not so sure of compilation dependency, and anyone here
> could confirm or deny this, thanks in advance!
That would be a bogus dependency.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: Tom H. <to...@co...> - 2005-11-11 10:56:52
|
In message <yek...@de...>
Tom Hughes <to...@co...> wrote:
> In message <200...@cn...>
> Yao Qi <qiy...@cn...> wrote:
>
>> Now, all the TOOLs are dependent on VEX/libvex.a and coregrind/valgrind
>> is not, so when run 'make' in top directory of source code tree, the
>> updated files in VEX could not be compiled ,VEX/libvex.a could not be
>> updated, and finally all the TOOLs will not re-link VEX/libvex.a. So
>> everytime when I modify files in VEX directory, I should 'make libvex.a'
>> in VEX to build libvex.a and 'make' in lackey/, for example, to link
>> this new VEX/libvex.a to lackey or someother TOOLs.
>
> The reason coregrind/valgrind is not dependent on it is because it
> doesn't link with it, hence it is not dependent on it!
>
> The only things dependent on libvex.a are the tool binaries so each
> of those should have a dependency on it. I might even see if that works...
Right. The tools are already (correctly) dependent on libvex.a but
the problem is that the make process processing that dependency has
no way of knowing what libvex.a is dependent on so can't know whether
or not it needs to be rebuilt.
Nick did put the VEX directory in SUBDIRS at one point so it always
got build but Julian took it out again because it was causing VEX to
rebuilt even when it didn't need to be.
That wouldn't work now anyway as it would build libvex.a rather than
the appropriate platform specific versions.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: Yao Qi <qiy...@cn...> - 2005-11-13 02:50:44
|
On Fri, Nov 11, 2005 at 10:43:51AM +0000, Tom Hughes wrote: > In message <200...@cn...> > Yao Qi <qiy...@cn...> wrote: > > > When I update files in VEX/ direcotry and rebuild Valgrind by 'make', it > > seems that libvex.a could not be rebuilt automatically except run 'make > > libvex.a' in VEX directory. > > We know. We just haven't work out how to fix it without introducing > other problems. > > > Now, all the TOOLs are dependent on VEX/libvex.a and coregrind/valgrind > > is not, so when run 'make' in top directory of source code tree, the > > updated files in VEX could not be compiled ,VEX/libvex.a could not be > > updated, and finally all the TOOLs will not re-link VEX/libvex.a. So > > everytime when I modify files in VEX directory, I should 'make libvex.a' > > in VEX to build libvex.a and 'make' in lackey/, for example, to link > > this new VEX/libvex.a to lackey or someother TOOLs. > > The reason coregrind/valgrind is not dependent on it is because it > doesn't link with it, hence it is not dependent on it! > > The only things dependent on libvex.a are the tool binaries so each > of those should have a dependency on it. I might even see if that works... Yes, I agree with you and this patch will introduce bogus or unnecessary dependency. What I have done is just want to make it simpler to build all parts of valgrind(tools, core and libvex.a) together automatically. It may be hard to solve this problem without introducing new problems, but I think this issue could be marked in certain document, for example README_DEVELOPERS, to clarify it for developers. Any thoughts on this? > > > The depedency of coregrind/valgrind on libvex.a may be added to remove this > > problem. I am not so sure of compilation dependency, and anyone here > > could confirm or deny this, thanks in advance! > > That would be a bogus dependency. > > Tom > > -- > Tom Hughes (to...@co...) > http://www.compton.nu/ > > > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's Geronimo App Server. Download > it for free - -and be entered to win a 42" plasma tv or your very own > Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > -- Regards, Yao ------------ Yao Qi |