Bug 51383

Summary: 'make clean' broken after switching to automake
Product: Mesa Reporter: Tobias Droste <tdroste>
Component: OtherAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: List of .o files remaining after running 'make clean'

Description Tobias Droste 2012-06-24 11:04:50 UTC
'make clean' does not remove all build artifacts since the switch to automake using current git master (37d699a scons: Add glsl/glcpp to the include path.)

what should work, but does not:

1. git clean -fdx 
2. autogen.sh --enable-32-bit ...
3. make && make install
4. make clean
5. autogen.sh ....
6. make -> fails

what still does work is:

1. git clean -fdx 
2. autogen.sh --enable-32-bit ...
3. make && make install
4. git clean -fdx
5. autogen.sh ....
6. make && make install

Log of the second make run (64bit after 32bit build):

../Makefile.dri:110: depend: No such file or directory
../Makefile.xvmc:73: depend: No such file or directory
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal 
main::scan_file() called too early to check prototype at /usr/bin/aclocal line 642.
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy
main::scan_file() called too early to check prototype at /usr/bin/aclocal line 642.
autoreconf: running: /usr/bin/autoconf
autoreconf: configure.ac: not using Autoheader
autoreconf: running: automake --add-missing --copy --no-force
autoreconf: Leaving directory `.'
configure: WARNING: Floating-point textures enabled.
configure: WARNING: Please consult docs/patents.txt with your lawyer before building Mesa.
ar: creating libglapi.a
glsl_lexer.cpp: In function 'int yy_get_next_buffer(yyscan_t)':
glsl_lexer.cpp:2880:3: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
ar: creating libglsl.a
main/ff_fragment_shader.cpp: In function 'ir_rvalue* emit_texenv(texenv_fragment_program*, GLuint)':
main/ff_fragment_shader.cpp:894:3: warning: narrowing conversion of '(1 << ((int)rgb_shift))' from 'int' to 'float' inside { } is ill-formed in C++11 [-Wnarrowing]
main/ff_fragment_shader.cpp:894:3: warning: narrowing conversion of '(1 << ((int)rgb_shift))' from 'int' to 'float' inside { } is ill-formed in C++11 [-Wnarrowing]
main/ff_fragment_shader.cpp:894:3: warning: narrowing conversion of '(1 << ((int)rgb_shift))' from 'int' to 'float' inside { } is ill-formed in C++11 [-Wnarrowing]
main/ff_fragment_shader.cpp:894:3: warning: narrowing conversion of '(1 << ((int)alpha_shift))' from 'int' to 'float' inside { } is ill-formed in C++11 [-Wnarrowing]
ar: creating libmesa.a
ar: creating libmesagallium.a
./../main/ff_fragment_shader.cpp: In function 'ir_rvalue* emit_texenv(texenv_fragment_program*, GLuint)':
./../main/ff_fragment_shader.cpp:894:3: warning: narrowing conversion of '(1 << ((int)rgb_shift))' from 'int' to 'float' inside { } is ill-formed in C++11 [-Wnarrowing]
./../main/ff_fragment_shader.cpp:894:3: warning: narrowing conversion of '(1 << ((int)rgb_shift))' from 'int' to 'float' inside { } is ill-formed in C++11 [-Wnarrowing]
./../main/ff_fragment_shader.cpp:894:3: warning: narrowing conversion of '(1 << ((int)rgb_shift))' from 'int' to 'float' inside { } is ill-formed in C++11 [-Wnarrowing]
./../main/ff_fragment_shader.cpp:894:3: warning: narrowing conversion of '(1 << ((int)alpha_shift))' from 'int' to 'float' inside { } is ill-formed in C++11 [-Wnarrowing]
glsl_lexer.cpp: In function 'int yy_get_next_buffer(yyscan_t)':
glsl_lexer.cpp:2880:3: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
platform_x11.c: In function 'dri2_create_surface':
platform_x11.c:208:27: warning: assignment makes integer from pointer without a cast [enabled by default]
platform_x11.c: In function 'dri2_copy_buffers':
platform_x11.c:847:4: warning: passing argument 3 of 'xcb_create_gc' makes integer from pointer without a cast [enabled by default]
In file included from /usr/include/xcb/xcb.h:182:0,
                 from egl_dri2.h:32,
                 from platform_x11.c:40:
/usr/include/xcb/xproto.h:10286:1: note: expected 'xcb_drawable_t' but argument is of type 'EGLNativePixmapType'
platform_x11.c:855:5: warning: passing argument 3 of 'xcb_copy_area' makes integer from pointer without a cast [enabled by default]
In file included from /usr/include/xcb/xcb.h:182:0,
                 from egl_dri2.h:32,
                 from platform_x11.c:40:
/usr/include/xcb/xproto.h:10734:1: note: expected 'xcb_drawable_t' but argument is of type 'EGLNativePixmapType'
libnurbs/interface/insurfeval.cc: In member function 'void OpenGLSurfaceEvaluator::inEvalUStrip(int, REAL, REAL*, int, REAL, REAL*)':
libnurbs/interface/insurfeval.cc:1169:8: warning: variable 'leftMostV' set but not used [-Wunused-but-set-variable]
libnurbs/interface/insurfeval.cc: In member function 'void OpenGLSurfaceEvaluator::inEvalVStrip(int, REAL, REAL*, int, REAL, REAL*)':
libnurbs/interface/insurfeval.cc:1358:8: warning: variable 'botMostV' set but not used [-Wunused-but-set-variable]
libnurbs/nurbtess/directedLine.cc: In function 'directedLine* readAllPolygons(char*)':
libnurbs/nurbtess/directedLine.cc:797:7: warning: variable 'result' set but not used [-Wunused-but-set-variable]
libnurbs/nurbtess/sampleCompTop.cc: In function 'void sampleCompTop(Real*, vertexArray*, Int, vertexArray*, Int, gridBoundaryChain*, gridBoundaryChain*, Int, Int, Int, Int, Int, primStream*)':
libnurbs/nurbtess/sampleCompTop.cc:514:13: warning: variable 'tempTop' set but not used [-Wunused-but-set-variable]
libnurbs/nurbtess/sampleCompTop.cc:515:11: warning: variable 'tempLeftStart' set but not used [-Wunused-but-set-variable]
ar: creating libgallium.a
evergreen_compute_internal.c: In function 'evergreen_set_rat':
evergreen_compute_internal.c:306:6: warning: 'fmt.number_type' may be used uninitialized in this function [-Wmaybe-uninitialized]
evergreen_compute_internal.c:305:6: warning: 'fmt.format' may be used uninitialized in this function [-Wmaybe-uninitialized]
ar: creating librbug.a
sp_quad_blend.c: In function 'blend_fallback':
sp_quad_blend.c:767:10: warning: 'quadColor2' may be used uninitialized in this function [-Wmaybe-uninitialized]
sp_quad_blend.c:952:18: note: 'quadColor2' was declared here
ar: creating libsoftpipe.a
ar: creating libtrace.a
ar: creating libdridrm.a
ar: creating libdrisw.a
x11/native_ximage.c: In function 'ximage_display_copy_to_pixmap':
x11/native_ximage.c:475:27: warning: 'xconf' may be used uninitialized in this function [-Wmaybe-uninitialized]
drm/native_drm.c: In function 'native_create_display':
drm/native_drm.c:182:21: warning: 'device' may be used uninitialized in this function [-Wmaybe-uninitialized]
drm/native_drm.c:159:24: note: 'device' was declared here
ar: creating libegl.a
ar: creating libgbm.a
ar: creating libxvmctracker.a
ar: creating libradeonwinsys.a
ar: creating libws_null.a
ar: creating libwsw.a
ar: creating libws_xlib.a
ar: creating libswdri.a
../Makefile.dri:110: depend: No such file or directory
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `../../../../src/mesa/drivers/dri/common/utils.o' is incompatible with i386:x86-64 output
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `../../../../src/mesa/drivers/dri/common/dri_util.o' is incompatible with i386:x86-64 output
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `../../../../src/mesa/drivers/dri/common/xmlconfig.o' is incompatible with i386:x86-64 output
collect2: error: ld returned 1 exit status
g++: error: r600_dri.so.tmp: No such file or directory
gmake[3]: *** [r600_dri.so] Error 1
gmake[2]: *** [default] Error 1
gmake[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1
Comment 1 Matt Turner 2012-08-01 04:57:09 UTC
This looks just like a problem caused by still having non-automake Makefiles.
Comment 2 Tobias Droste 2012-08-06 21:16:56 UTC
I'm not sure if this is realy true. Looking at the "problematic" .o files there is "src/mesa/drivers/dri/common/utils.o" metioned, which is completly handled by automake IIRC.

I test this from time to time and it is still broken (same error)
Comment 3 Matt Turner 2012-08-07 20:01:08 UTC
I can't even build with --enable-32-bit without adding -m32 to CFLAGS/CXXFLAGS manually.
Comment 4 Tobias Droste 2012-08-07 20:08:50 UTC
Yes... well I do this too (provide -m32 with CFLAGS). But this never worked and is well known (was mentioned at least a few times on the mesa-dev mailing list), that's why I did not mention it.
Comment 5 Tobias Droste 2012-08-07 20:18:12 UTC
You don't have to build a 32bit version to see that 'make clean' doesn't work. Just check if there are any *.o files left after running 'make clean'. They shouldn't be there.

I tried looking at this, but automake is like black magic for me ;-)
Comment 6 Matt Turner 2012-08-07 21:51:09 UTC
(In reply to comment #5)
> You don't have to build a 32bit version to see that 'make clean' doesn't work.
> Just check if there are any *.o files left after running 'make clean'. They
> shouldn't be there.
> 
> I tried looking at this, but automake is like black magic for me ;-)

I don't see any *.o or *.lo files after make clean. Can you give me a list?
Comment 7 Tobias Droste 2012-08-07 22:20:35 UTC
Created attachment 65257 [details]
List of .o files remaining after running 'make clean'
Comment 8 Andreas Boll 2013-01-11 11:14:25 UTC
Should be fixed with the full transition to automake.
Please reopen the bug if you can still reproduce this.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.