ID:               48947
 Updated by:       j...@php.net
 Reported By:      s...@php.net
-Status:           Open
+Status:           Closed
 Bug Type:         Compile Failure
 Operating System: Ubuntu 8.10 (32bit)
 PHP Version:      5.3CVS-2009-07-16 (CVS)
 New Comment:

Fixed in all branches. And if you really want to do clean builds, build
outside source tree.


Previous Comments:
------------------------------------------------------------------------

[2009-07-16 16:50:57] s...@php.net

Description:
------------
The files removed by vcsclean are only a subset of the files removed by
'make clean'.  File extensions .lo .la .gcno .gcda are not removed by
vcsclean.

Using the sequence 'cd php53; svn up; ./vcsclean; ./configure ...;
make' fails to find some .o files.

Some .o's get built but link fails with a bunch of errors of the form:
  gcc: ext/<ext>/.libs/<file>.o: No such file or directory

The vcsclean command removes the ext/*/.libs directories but doesn't
remove ext/*.lo files. This causes C files to be skipped for
recompilation and no .libs/*.o files are created. 

A patch is to add .lo to the extension list in build/build.mk.

Index: build.mk
===================================================================
--- build.mk    (revision 284190)
+++ build.mk    (working copy)
@@ -67,12 +67,12 @@
 
 cvsclean-work:
        @for i in `find . -name .cvsignore`; do \
-               (cd `dirname $$i` 2>/dev/null && rm -rf `cat .cvsignore | grep 
-v
config.nice | sed 's/[[:space:]]/ /g'` *.o *.a .libs || true); \
+               (cd `dirname $$i` 2>/dev/null && rm -rf `cat .cvsignore | grep 
-v
config.nice | sed 's/[[:space:]]/ /g'` *.lo *.o *.a .libs || true); \
        done
 
 svnclean-work:
        @for i in `find . -type d -not -path '*/.svn/*' | grep -v '.svn'`; do
\
-               (cd `dirname $$i` 2>/dev/null && rm -rf `svn propget svn:ignore 
. |
grep -v config.nice` *.o *.a .libs || true); \
+               (cd `dirname $$i` 2>/dev/null && rm -rf `svn propget svn:ignore 
. |
grep -v config.nice` *.o *.lo *.a .libs || true); \
        done
 
 gitclean-work:

Also, adding '.la .gcno .gcda' in addition to '.lo' would make
vcsclean consistent with 'make clean'.

A secondary bug is that .o files are not recreated from existing .lo
files.




------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=48947&edit=1

Reply via email to