|
From: <st...@di...> - 2006-07-13 04:10:42
|
[ I don't want to use Bugzilla let alone register with it so if email
is not sufficient to report a bug then by all means ignore this -sjb ]
I just tried installing Valgrind 3.2.0 under RedHat 7.2 and the build
went find but it failed during the installation with :-
make[4]: Entering directory `/stuff/valgrind-3.2.0/memcheck'
if [ -n "memcheck-x86-linux vgpreload_memcheck-x86-linux.so " ] ; then \
for f in memcheck-x86-linux vgpreload_memcheck-x86-linux.so ; do \
p=`echo $f | sed -e 's/^[^-]*-//' -e 's/\..*$//'`; \
n=`echo $f | sed -e 's/-[^-]\{1,\}-[^-.]\{1,\}//'`; \
/stuff/valgrind-3.2.0/install-sh -d /valgrind-3.2.0/lib/valgrind/$p; \
/usr/bin/install -c $f /valgrind-3.2.0/lib/valgrind/$p/$n; \
done ; \
fi ; \
if [ -n "" ] ; then \
for f in ; do \
if expr match $f libcoregrind_ > /dev/null ; then \
pU=`echo $f | sed -e 's/libcoregrind_//g' -e 's/\.a//g'` ; \
pD=`echo $pU | sed -e 's/_/-/g'` ; \
/usr/bin/install -c -m 644 $f /valgrind-3.2.0/lib/valgrind/$pD/libcoregrind.a ; \
/usr/bin/install -c -m 644 ../VEX/libvex_$pU.a /valgrind-3.2.0/lib/valgrind/$pD/libvex.a ; \
fi ; \
done ; \
fi
/bin/sh: -c: line 1: syntax error near unexpected token `;'
/bin/sh: -c: line 1: `if [ -n "memcheck-x86-linux vgpreload_memcheck-x86-linux.so " ] ; then for f in memcheck-x86-linux vgpreload_memcheck-x86-linux.so ; do p=`echo $f | sed -e 's/^[^-]*-//' -e 's/\..*$//'`; n=`echo $f | sed -e 's/-[^-]\{1,\}-[^-.]\{1,\}//'`; /stuff/valgrind-3.2.0/install-sh -d /valgrind-3.2.0/lib/valgrind/$p; /usr/bin/install -c $f /valgrind-3.2.0/lib/valgrind/$p/$n; done ; fi ; if [ -n "" ] ; then for f in ; do if expr match $f libcoregrind_ > /dev/null ; then pU=`echo $f | sed -e 's/libcoregrind_//g' -e 's/\.a//g'` ; pD=`echo $pU | sed -e 's/_/-/g'` ; /usr/bin/install -c -m 644 $f /valgrind-3.2.0/lib/valgrind/$pD/libcoregrind.a ; /usr/bin/install -c -m 644 ../VEX/libvex_$pU.a /valgrind-3.2.0/lib/valgrind/$pD/libvex.a ; fi ; done ; fi'
The problem is the :-
for f in ;
which comes from the memcheck/Makefile.in which contains :-
for f in $(noinst_PROGRAMS); do
A fix is to consistently quote uses of $(noinst_PROGRAMS). Here's a
patch for the memcheck/Makefile.in, the same thing is needed in
cachegrind, callgrind and massif :-
--- Makefile.in.orig Tue Jun 6 14:41:58 2006
+++ Makefile.in Wed Jul 12 11:30:19 2006
@@ -1204,7 +1204,7 @@
install-exec-local:
if [ -n "$(noinst_PROGRAMS)" ] ; then \
- for f in $(noinst_PROGRAMS); do \
+ for f in "$(noinst_PROGRAMS)"; do \
p=`echo $$f | sed -e 's/^[^-]*-//' -e 's/\..*$$//'`; \
n=`echo $$f | sed -e 's/-[^-]\{1,\}-[^-.]\{1,\}//'`; \
$(mkinstalldirs) $(DESTDIR)$(valdir)/$$p; \
@@ -1212,7 +1212,7 @@
done ; \
fi ; \
if [ -n "$(noinst_LIBRARIES)" ] ; then \
- for f in $(noinst_LIBRARIES); do \
+ for f in "$(noinst_LIBRARIES)"; do \
if expr match $$f libcoregrind_ > /dev/null ; then \
pU=`echo $$f | sed -e 's/libcoregrind_//g' -e 's/\.a//g'` ; \
pD=`echo $$pU | sed -e 's/_/-/g'` ; \
|