From: Julian S. <js...@ac...> - 2006-02-28 15:17:12
|
I should also point out that RedHat 7.2 was never an officially supported target; the earliest thing we try to keep working is RedHat 7.3. J On Tuesday 28 February 2006 15:00, Alasdair Ferro wrote: > It is already fixed - it's in the development archive (SVN), just not a > full release yet. > > I prefer to "top post" so I don't have to scroll past millions of lines > of signatures / mailing list cr*p to read a reply. Each to their own....... > > Alasdair > > >> Angel, > >> > >> This looks very similar to what I say when building on RedHat 7.2 - > >> basically bash doesn't understand a for loop with an empty list ie; > >> for f in ; do \ > >> > >> I believe this is fixed in SVN, but here's what I did. > >> > >> - First of all make distclean, to clean up everything from after the > >> configure stage. > >> - Take a copy of memcheck/Makefile.in for safety (although you can > >> get it from the tar archive) > >> - Edit memcheck/Makefile.in and the target 'install-exec-local:' - > >> Delete the for loop starting: > >> for f in $(noinst_LIBRARIES); do \ > >> - Repeat for addrcheck/Makefile.in > >> - ./configure as previous. > >> > >> I hope this works for you, > >> > >> Alasdair > >> > >>>> When I run "make install" after configuring and building Valgrind > >>>> 3.1.0 I get this on stderr: > >>>> > >>>> /bin/sh: -c: line 7: syntax error near unexpected token `;' > >>>> /bin/sh: -c: line 7: `for f in ; do \' > >>>> make[4]: *** [install-exec-local] Error 2 > >>>> make[3]: *** [install-am] Error 2 > >>>> make[2]: *** [install-recursive] Error 1 > >>>> make[1]: *** [install-recursive] Error 1 > >>>> make: *** [install] Error 2 > >>> > >>> make[3]: Entering directory > >>> `/home/angel/software/Valgrind/source/unpacked/memcheck' > >>> for f in memcheck-ppc32-linux vgpreload_memcheck-ppc32-linux.so; do \ > >>> p=`echo $f | sed -e 's/^[^-]*-//' -e 's/\..*$//'`; \ > >>> n=`echo $f | sed -e 's/-[^-]\{1,\}-[^-.]\{1,\}//'`; \ > >>> mkdir -p ../.in_place/$p; \ > >>> rm -f ../.in_place/$p/$n; \ > >>> ln -f -s ../../memcheck/$f ../.in_place/$p/$n; \ > >>> done > >>> make[4]: Entering directory > >>> `/home/angel/software/Valgrind/source/unpacked/memcheck' > >>> for f in memcheck-ppc32-linux vgpreload_memcheck-ppc32-linux.so; do \ > >>> p=`echo $f | sed -e 's/^[^-]*-//' -e 's/\..*$//'`; \ > >>> n=`echo $f | sed -e 's/-[^-]\{1,\}-[^-.]\{1,\}//'`; \ > >>> /home/angel/software/Valgrind/source/unpacked/install-sh -d > >>> /home/angel/installed/Valgrind/lib/valgrind/$p; \ > >>> /home/angel/installed/coreutils/bin/install -c $f > >>> /home/angel/installed/Valgrind/lib/valgrind/$p/$n; \ > >>> done ; \ > >>> 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'` ; \ > >>> /home/angel/installed/coreutils/bin/install -c -m 644 $f > >>> /home/angel/installed/Valgrind/lib/valgrind/$pD/libcoregrind.a ; \ > >>> /home/angel/installed/coreutils/bin/install -c -m 644 > >>> /home/angel/software/Valgrind/source/unpacked/VEX/libvex_$pU.a > >>> /home/angel/installed/Valgrind/lib/valgrind/$pD/libvex.a ; \ > >>> fi ; \ > >>> done > >>> /bin/sh: -c: line 7: syntax error near unexpected token `;' > >>> /bin/sh: -c: line 7: `for f in ; do \' > >>> make[4]: *** [install-exec-local] Error 2 > >>> make[4]: Leaving directory > >>> `/home/angel/software/Valgrind/source/unpacked/memcheck' > >>> make[3]: *** [install-am] Error 2 > >>> make[3]: Leaving directory > >>> `/home/angel/software/Valgrind/source/unpacked/memcheck' > >>> make[2]: *** [install-recursive] Error 1 > >>> make[2]: Leaving directory > >>> `/home/angel/software/Valgrind/source/unpacked/memcheck' > >>> make[1]: *** [install-recursive] Error 1 > >>> make[1]: Leaving directory > >>> `/home/angel/software/Valgrind/source/unpacked' > >>> make: *** [install] Error 2 > > > > Dear Alasdair, > > First of all, please do not top post, i.e. do not put your reply on > > top of the conversation... > > Next, I think you are right about the for loop... In fact, I managed > > to fix this on my own and I was just going to post the fix. Btw, this > > problem occurs on Yellow Dog (not sure about the spelling and > > capitalization) Linux. I have archived the Makefile.in files in the > > attachment. In order to apply the "update" just decompress the > > archive in the folder where you have already decompressed Valgrind. > > All the changes to the Makefile.in files are exactly the same and I > > would like to summarize them here. So, For each of the problematic > > makefile I wrapped the for loop with a if strip check like this: > > 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'` ; \ > > $(INSTALL_DATA) $$f $(DESTDIR)$(valdir)/$$pD/libcoregrind.a ; \ > > $(INSTALL_DATA) @VEX_DIR@/libvex_$$pU.a > > $(DESTDIR)$(valdir)/$$pD/libvex.a ; \ > > fi ; \ > > becomes: > > $(if $(strip $(noinst_LIBRARIES)), \ > > 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'` ; \ > > $(INSTALL_DATA) $$f $(DESTDIR)$(valdir)/$$pD/libcoregrind.a ; \ > > $(INSTALL_DATA) @VEX_DIR@/libvex_$$pU.a > > $(DESTDIR)$(valdir)/$$pD/libvex.a ; \ > > fi ; \ > > done \ > > ) > > I think this is a little bit better solution as it should also work > > when noinst_LIBRARIES is not empty. I hope the support or development > > team will take into account out problem and will incorporate the > > necessary fixes in the next release of Valrind. |