| Summary: | Mesa from git fails with -j3 | ||
|---|---|---|---|
| Product: | Mesa | Reporter: | Mikko C. <mikko.cal> |
| Component: | Other | Assignee: | mesa-dev |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | minor | ||
| Priority: | medium | ||
| Version: | git | ||
| Hardware: | x86-64 (AMD64) | ||
| OS: | Linux (All) | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
| Attachments: |
make -j3 with debug
make -j3 with debug |
||
For some reason it's continuously recreating the static libraries (libmesa.a and libglapi.a), and swrast_dri.so happens to be relinked while one of the libraries is missing. Does this happen if you run make first before make install? Can you build with the -d option and attach the log? I think there must just be some missing prerequisites, but I can't figure out where. I think we may have a number of makefile glitches that will be exposed with parallel builds. If we have a rule like this: Ignore previous/incomplete comment. I _thought_ I found the problem but didn't. I agree that there's more than one place where the rules aren't quite parallel safe. But I do -j3 builds all the time, and I never have issues (actually I had one yesterday, but it's in a different spot than the reporter). I think I can determine where the issue is, though, if I see make debug output. But if you beat me to it, great :) Apparently I'm not able to reproduce this anymore... You can close the bug. I'll reopen if I can reproduce it again, and attach the debug output. ok, it failed again... this time I had debug enabled, so it's more detailed. I hope it's enough as I couldn't go past that in the console. Also, *if* it succeeds building with -j3, it often happens that either r300_dri.so or swrast_dri.so are damaged/not complete (notice the that both sizes vary, -j1 is the good one): (with -j1) $ ls -la total 9480 drwxr-xr-x 2 root root 4096 2008-06-22 17:52 . drwxr-xr-x 81 root root 69632 2008-06-22 17:52 .. -rwxr-xr-x 1 root root 2485352 2008-06-22 17:52 r200_dri.so -rwxr-xr-x 1 root root 2466984 2008-06-22 17:52 r300_dri.so -rwxr-xr-x 1 root root 2440008 2008-06-22 17:52 radeon_dri.so -rwxr-xr-x 1 root root 2215144 2008-06-22 17:52 swrast_dri.so (with -j3) $ ls -la total 7416 drwxr-xr-x 2 root root 4096 2008-06-22 17:49 . drwxr-xr-x 81 root root 69632 2008-06-22 17:49 .. -rwxr-xr-x 1 root root 2485352 2008-06-22 17:49 r200_dri.so -rwxr-xr-x 1 root root 2466984 2008-06-22 17:49 r300_dri.so -rwxr-xr-x 1 root root 2440008 2008-06-22 17:49 radeon_dri.so -rwxr-xr-x 1 root root 101040 2008-06-22 17:49 swrast_dri.so (with -j3) $ ls -la total 7064 drwxr-xr-x 2 root root 4096 2008-06-22 17:28 . drwxr-xr-x 81 root root 69632 2008-06-22 17:38 .. -rwxr-xr-x 1 root root 2485352 2008-06-22 17:28 r200_dri.so -rwxr-xr-x 1 root root 0 2008-06-22 17:28 r300_dri.so -rwxr-xr-x 1 root root 2440008 2008-06-22 17:28 radeon_dri.so -rwxr-xr-x 1 root root 2215144 2008-06-22 17:28 swrast_dri.so Created attachment 17295 [details]
make -j3 with debug
Created attachment 17296 [details]
make -j3 with debug
i didn't save the previous file, it was empty :P
OK. I found a couple bugs in the Makefiles. The problem here was that libmesa.a was depending on a virtual target, asm_subdirs. Since there was no file created for asm_subdirs, make always thought that libmesa.a needed to be rebuilt. This was causing race conditions, as you found out. Can you try pulling again? This should be fixed by 5aa4d5a87d3edea6503a7b9853a318e71718af7c. I recompiled mesa twice and it seems fine so far :) Mass version move, cvs -> git closing, fixed. |
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.
Mesa from git fails to install with -j3 It works fine with -j1 make -j3 DESTDIR=/var/tmp/paludis/media-libs-mesa-9999/image/ install make[1]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src' gmake[2]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/glx/x11' gmake -C ../../../src/mesa install-libgl gmake[3]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa' sed -e 's,@INSTALL_DIR@,/usr,' -e 's,@LIB_DIR@,lib64,' -e 's,@VERSION@,7.1.0,' gl.pc.in > gl.pc ../../bin/minstall -d /var/tmp/paludis/media-libs-mesa-9999/image//usr/include/GL mklib: Making Linux static library: libmesa.a ../../bin/minstall -m 644 ../../include/GL/*.h \ /var/tmp/paludis/media-libs-mesa-9999/image//usr/include/GL mklib: Making Linux static library: libglapi.a ar: creating libglapi.a ar: creating libmesa.a (cd drivers && gmake) gmake[4]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers' gmake[5]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri' gmake[6]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/swrast' ../../../../../bin/mklib -ldflags '' -noprefix -o swrast_dri.so \ ../../common/driverfuncs.o ../common/utils.o swrast.o swrast_span.o ../../../../../src/mesa/libmesa.a -ldrm -lexpat -lm -lpthread -ldl mklib: Making Linux shared library: swrast_dri.so ../../../../../bin/minstall swrast_dri.so ../../../../../lib64 gmake[6]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/swrast' gmake[6]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/radeon' ../../../../../bin/mklib -ldflags '' -noprefix -o radeon_dri.so \ ../common/utils.o ../common/texmem.o ../common/vblank.o ../common/dri_util.o ../common/xmlconfig.o ../common/drirenderbuffer.o radeon_context.o radeon_ioctl.o radeon_lock.o radeon_screen.o radeon_state.o radeon_state_init.o radeon_tex.o radeon_texmem.o radeon_texstate.o radeon_tcl.o radeon_swtcl.o radeon_span.o radeon_maos.o radeon_sanity.o ../../../../../src/mesa/libmesa.a -ldrm -lexpat -lm -lpthread -ldl mklib: Making Linux shared library: radeon_dri.so ../../../../../bin/minstall radeon_dri.so ../../../../../lib64 gmake[6]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/radeon' gmake[6]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/r200' ../../../../../bin/mklib -ldflags '' -noprefix -o r200_dri.so \ ../common/utils.o ../common/texmem.o ../common/vblank.o ../common/dri_util.o ../common/xmlconfig.o ../common/drirenderbuffer.o r200_context.o r200_ioctl.o r200_lock.o r200_state.o r200_state_init.o r200_cmdbuf.o r200_pixel.o r200_tex.o r200_texmem.o r200_texstate.o r200_tcl.o r200_swtcl.o r200_span.o r200_maos.o r200_sanity.o r200_fragshader.o r200_vertprog.o radeon_screen.o ../../../../../src/mesa/libmesa.a -ldrm -lexpat -lm -lpthread -ldl mklib: Making Linux shared library: r200_dri.so ../../../../../bin/minstall r200_dri.so ../../../../../lib64 gmake[6]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/r200' gmake[6]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/r300' ../../../../../bin/mklib -ldflags '' -noprefix -o r300_dri.so \ ../common/utils.o ../common/texmem.o ../common/vblank.o ../common/dri_util.o ../common/xmlconfig.o ../common/drirenderbuffer.o radeon_screen.o radeon_context.o radeon_ioctl.o radeon_lock.o radeon_span.o radeon_state.o r300_mem.o r300_context.o r300_ioctl.o r300_cmdbuf.o r300_state.o r300_render.o r300_texmem.o r300_tex.o r300_texstate.o radeon_program.o radeon_program_alu.o r300_vertprog.o r300_fragprog.o r300_fragprog_emit.o r500_fragprog.o r500_fragprog_emit.o r300_shader.o r300_emit.o r300_swtcl.o ../../../../../src/mesa/libmesa.a -ldrm -lexpat -lm -lpthread -ldl mklib: Making Linux shared library: r300_dri.so ../../../../../bin/minstall r300_dri.so ../../../../../lib64 gmake[6]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/r300' gmake[5]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri' gmake[4]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers' ../../bin/minstall -d /var/tmp/paludis/media-libs-mesa-9999/image//usr/lib64 ../../bin/minstall -d /var/tmp/paludis/media-libs-mesa-9999/image//usr/lib64/pkgconfig ../../bin/minstall ../../lib64/libGL.so* \ /var/tmp/paludis/media-libs-mesa-9999/image//usr/lib64 ../../bin/minstall -m 644 gl.pc /var/tmp/paludis/media-libs-mesa-9999/image//usr/lib64/pkgconfig gmake[3]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa' gmake[2]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/glx/x11' gmake[2]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa' mklib: Making Linux static library: libglapi.a ar: creating libglapi.a mklib: Making Linux static library: libmesa.a ar: creating libmesa.a (cd drivers && gmake) gmake[3]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers' gmake[4]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri' gmake[5]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/swrast' ../../../../../bin/mklib -ldflags '' -noprefix -o swrast_dri.so \ ../../common/driverfuncs.o ../common/utils.o swrast.o swrast_span.o ../../../../../src/mesa/libmesa.a -ldrm -lexpat -lm -lpthread -ldl mklib: Making Linux shared library: swrast_dri.so ../../../../../bin/minstall swrast_dri.so ../../../../../lib64 gmake[5]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/swrast' gmake[5]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/radeon' ../../../../../bin/mklib -ldflags '' -noprefix -o radeon_dri.so \ ../common/utils.o ../common/texmem.o ../common/vblank.o ../common/dri_util.o ../common/xmlconfig.o ../common/drirenderbuffer.o radeon_context.o radeon_ioctl.o radeon_lock.o radeon_screen.o radeon_state.o radeon_state_init.o radeon_tex.o radeon_texmem.o radeon_texstate.o radeon_tcl.o radeon_swtcl.o radeon_span.o radeon_maos.o radeon_sanity.o ../../../../../src/mesa/libmesa.a -ldrm -lexpat -lm -lpthread -ldl mklib: Making Linux shared library: radeon_dri.so ../../../../../bin/minstall radeon_dri.so ../../../../../lib64 gmake[5]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/radeon' gmake[5]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/r200' ../../../../../bin/mklib -ldflags '' -noprefix -o r200_dri.so \ ../common/utils.o ../common/texmem.o ../common/vblank.o ../common/dri_util.o ../common/xmlconfig.o ../common/drirenderbuffer.o r200_context.o r200_ioctl.o r200_lock.o r200_state.o r200_state_init.o r200_cmdbuf.o r200_pixel.o r200_tex.o r200_texmem.o r200_texstate.o r200_tcl.o r200_swtcl.o r200_span.o r200_maos.o r200_sanity.o r200_fragshader.o r200_vertprog.o radeon_screen.o ../../../../../src/mesa/libmesa.a -ldrm -lexpat -lm -lpthread -ldl mklib: Making Linux shared library: r200_dri.so ../../../../../bin/minstall r200_dri.so ../../../../../lib64 gmake[5]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/r200' gmake[5]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/r300' ../../../../../bin/mklib -ldflags '' -noprefix -o r300_dri.so \ ../common/utils.o ../common/texmem.o ../common/vblank.o ../common/dri_util.o ../common/xmlconfig.o ../common/drirenderbuffer.o radeon_screen.o radeon_context.o radeon_ioctl.o radeon_lock.o radeon_span.o radeon_state.o r300_mem.o r300_context.o r300_ioctl.o r300_cmdbuf.o r300_state.o r300_render.o r300_texmem.o r300_tex.o r300_texstate.o radeon_program.o radeon_program_alu.o r300_vertprog.o r300_fragprog.o r300_fragprog_emit.o r500_fragprog.o r500_fragprog_emit.o r300_shader.o r300_emit.o r300_swtcl.o ../../../../../src/mesa/libmesa.a -ldrm -lexpat -lm -lpthread -ldl mklib: Making Linux shared library: r300_dri.so ../../../../../bin/minstall r300_dri.so ../../../../../lib64 gmake[5]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/r300' gmake[4]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri' gmake[3]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers' gmake[3]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa' ../../bin/minstall -d /var/tmp/paludis/media-libs-mesa-9999/image//usr/include/GL cd drivers/dri && gmake install gmake[4]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri' ../../bin/minstall -m 644 ../../include/GL/*.h \ /var/tmp/paludis/media-libs-mesa-9999/image//usr/include/GL mklib: Making Linux static library: libmesa.a gmake[5]: Entering directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/swrast' gmake[5]: *** No rule to make target `../../../../../src/mesa/libmesa.a', needed by `swrast_dri.so'. Stop. gmake[5]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri/swrast' gmake[4]: *** [install] Error 1 gmake[4]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa/drivers/dri' gmake[3]: *** [install-dri] Error 2 gmake[3]: *** Waiting for unfinished jobs.... ar: creating libmesa.a gmake[3]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa' gmake[2]: *** [install] Error 1 gmake[2]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src/mesa' make[1]: *** [install] Error 1 make[1]: Leaving directory `/var/tmp/paludis/media-libs-mesa-9999/work/Mesa-9999/src' make: *** [install] Error 1