https://bugs.freedesktop.org/show_bug.cgi?id=62226
Priority: medium Bug ID: 62226 Assignee: dri-devel@lists.freedesktop.org Summary: Build Fails with LLVM Severity: normal Classification: Unclassified OS: All Reporter: serkan@hosca.com Hardware: Other Status: NEW Version: git Component: Drivers/Gallium/r600 Product: Mesa
Created attachment 76398 --> https://bugs.freedesktop.org/attachment.cgi?id=76398&action=edit build log
llvm is from git mirror as of git-svn-id https://llvm.org/svn/llvm-project/llvm/trunk@176858
and mesa is as of 6173cc19
The build config is: ./autogen.sh \ --prefix=/usr \ --sysconfdir=/etc \ --with-gallium-drivers=r300,r600,radeonsi,nouveau,svga,swrast \ --with-dri-drivers=i915,i965,r200,radeon,nouveau,swrast \ --enable-gallium-llvm \ --enable-egl \ --enable-gallium-egl \ --with-egl-platforms=drm,x11,wayland \ --enable-shared-glapi \ --enable-gbm \ --enable-glx-tls \ --enable-dri \ --enable-glx \ --enable-osmesa \ --enable-gles1 \ --enable-gles2 \ --enable-texture-float \ --enable-xa \ --enable-xvmc \ --enable-vdpau \ --with-llvm-shared-libs \ --enable-r600-llvm-compiler
and the failure is: ../../../../src/gallium/drivers/r600/.libs/libr600.a(r600_llvm.o): In function `r600_tgsi_llvm': r600_llvm.c:(.text+0x15ff): undefined reference to `radeon_llvm_create_func' ../../../../src/gallium/drivers/radeonsi/.libs/libradeonsi.a(radeonsi_shader.o): In function `si_pipe_shader_create': radeonsi_shader.c:(.text+0x1dc6): undefined reference to `radeon_llvm_create_func' radeonsi_shader.c:(.text+0x1ddd): undefined reference to `radeon_llvm_shader_type' radeonsi_shader.c:(.text+0x200d): undefined reference to `radeon_llvm_create_func' collect2: error: ld returned 1 exit status libtool: install: error: relink `egl_gallium.la' with the above command before installing it make[4]: *** [install-eglLTLIBRARIES] Error 1 make[4]: Leaving directory `/home/serkan/tmp/mesa-git/src/mesa/src/gallium/targets/egl-static' make[3]: *** [install-am] Error 2 make[3]: Leaving directory `/home/serkan/tmp/mesa-git/src/mesa/src/gallium/targets/egl-static' make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory `/home/serkan/tmp/mesa-git/src/mesa/src/gallium/targets' make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory `/home/serkan/tmp/mesa-git/src/mesa/src' make: *** [install-recursive] Error 1
attached is the full build log. The error happens in make install
https://bugs.freedesktop.org/show_bug.cgi?id=62226
--- Comment #1 from Serkan Hosca serkan@hosca.com --- llvm build config: ./configure \ --prefix=/usr \ --libdir=/usr/lib/llvm \ --sysconfdir=/etc \ --enable-shared \ --enable-libffi \ --enable-targets=all \ --enable-optimized \ --enable-experimental-targets=R600 \ --disable-expensive-checks \ --with-binutils-include=/usr/include \ --enable-optimized
https://bugs.freedesktop.org/show_bug.cgi?id=62226
--- Comment #2 from LoneVVolf lonewolf@xs4all.nl --- No problems here building mesa b101a09 against llvm svn version 177821 .
https://bugs.freedesktop.org/show_bug.cgi?id=62226
--- Comment #3 from LoneVVolf lonewolf@xs4all.nl --- oops, i gave wrong commit number , it's git-712bac1 according to glxinfo.
https://bugs.freedesktop.org/show_bug.cgi?id=62226
--- Comment #4 from Niels Ole Salscheider niels_ole@salscheider-online.de --- This is still an issue for me.
I use an out-of-tree build for mesa (and build the shared llvm libraries with cmake), though.
https://bugs.freedesktop.org/show_bug.cgi?id=62226
--- Comment #5 from Niels Ole Salscheider niels_ole@salscheider-online.de --- The problem seems to be that the build system picks the already installed libllvmradeon9.2.0.so (from /usr/lib64) instead of the one that has just been built.
A workaround is to uninstall mesa before compiling and installing the new version.
https://bugs.freedesktop.org/show_bug.cgi?id=62226
--- Comment #6 from Tom Stellard tstellar@gmail.com --- Created attachment 77291 --> https://bugs.freedesktop.org/attachment.cgi?id=77291&action=edit Build libradeonllvm as static library
Does this patch help?
https://bugs.freedesktop.org/show_bug.cgi?id=62226
--- Comment #7 from Serkan Hosca serkan@hosca.com --- (In reply to comment #6)
Created attachment 77291 [details] [review] Build libradeonllvm as static library
Does this patch help?
Yes, the patch fixes the build
https://bugs.freedesktop.org/show_bug.cgi?id=62226
--- Comment #8 from Johannes Obermayr johannesobermayr@gmx.de --- I am against this sort of patches.
Because autotools are stupid the second line should be the right attempt:
libradeonsi_la_LDFLAGS = -Wl,--no-undefined -shared -avoid-version \ -L../radeon \ $(LLVM_LDFLAGS)
https://bugs.freedesktop.org/show_bug.cgi?id=62226
--- Comment #9 from Tom Stellard tstellar@gmail.com --- (In reply to comment #8)
I am against this sort of patches.
Can you explain why?
https://bugs.freedesktop.org/show_bug.cgi?id=62226
Johannes Obermayr johannesobermayr@gmx.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |andreas.boll.dev@gmail.com, | |johannesobermayr@gmx.de
--- Comment #10 from Johannes Obermayr johannesobermayr@gmx.de --- (In reply to comment #9)
(In reply to comment #8)
I am against this sort of patches.
Can you explain why?
Because you are working against aboll and me - we want to build as much '-shared' as possible (and also distributions [should] want to do so): http://lists.freedesktop.org/archives/mesa-dev/2013-March/036449.html http://lists.freedesktop.org/archives/mesa-dev/2013-March/036493.html
Also this statement is wrong: "This library was originally changed to a shared object to work around linker error in egl_static.so, but these appear to be fixed now."
It was changed to be built '-shared' because there were and possibly be troubles with crashing egl things if r600 AND radeonsi were built together (see on #dri-devel from mid december 2012 [MrCooper, jobermayr])
You should also see the conditional there. If it makes sense and is required (r600 AND radeonsi) it is shared. If it doesn't (r600 XOR radeonsi) it is static.
https://bugs.freedesktop.org/show_bug.cgi?id=62226
--- Comment #11 from Christian König deathsimple@vodafone.de --- (In reply to comment #10)
(In reply to comment #9)
(In reply to comment #8)
I am against this sort of patches.
Can you explain why?
Because you are working against aboll and me - we want to build as much '-shared' as possible (and also distributions [should] want to do so): http://lists.freedesktop.org/archives/mesa-dev/2013-March/036449.html http://lists.freedesktop.org/archives/mesa-dev/2013-March/036493.html
Also this statement is wrong: "This library was originally changed to a shared object to work around linker error in egl_static.so, but these appear to be fixed now."
It was changed to be built '-shared' because there were and possibly be troubles with crashing egl things if r600 AND radeonsi were built together (see on #dri-devel from mid december 2012 [MrCooper, jobermayr])
You should also see the conditional there. If it makes sense and is required (r600 AND radeonsi) it is shared. If it doesn't (r600 XOR radeonsi) it is static.
I don't think I like the general idea here, for most distributions driver size doesn't matter so much, but on the other hand it is highly likely that we want to have different version of this and other libs for r600 and radeonsi.
Christian.
https://bugs.freedesktop.org/show_bug.cgi?id=62226
Johannes Obermayr johannesobermayr@gmx.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |michel@daenzer.net
--- Comment #12 from Johannes Obermayr johannesobermayr@gmx.de --- (In reply to comment #10)
Also this statement is wrong: "This library was originally changed to a shared object to work around linker error in egl_static.so, but these appear to be fixed now."
It was changed to be built '-shared' because there were and possibly be troubles with crashing egl things if r600 AND radeonsi were built together (see on #dri-devel from mid december 2012 [MrCooper, jobermayr])
You should also see the conditional there. If it makes sense and is required (r600 AND radeonsi) it is shared. If it doesn't (r600 XOR radeonsi) it is static.
"Please test to make sure this works for your build configuration.
Tested-by: Michel Dänzer <michel.daenzer at amd.com>"
@MrCooper: Can you confirm the runtime assertion issue has been fixed (radeon AND radeonsi)? http://people.freedesktop.org/~cbrill/dri-log/?channel=dri-devel&highlig...
https://bugs.freedesktop.org/show_bug.cgi?id=62226
Michel Dänzer michel@daenzer.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|michel@daenzer.net |
--- Comment #13 from Michel Dänzer michel@daenzer.net --- (In reply to comment #12)
@MrCooper: Can you confirm the runtime assertion issue has been fixed (radeon AND radeonsi)? http://people.freedesktop.org/~cbrill/dri-log/?channel=dri- devel&highlight_names=&date=2012-12-07
Ah no, I failed to test this properly. :( Thanks for the reminder Johannes.
[ I read bug reports on the lists ]
https://bugs.freedesktop.org/show_bug.cgi?id=62226
Laurent carlier lordheavym@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #14 from Laurent carlier lordheavym@gmail.com --- Fixed some time ago
dri-devel@lists.freedesktop.org