[Mesa-dev] [Bug 70410] New: egl-static/Makefile: linking fails with llvm >= 3.4

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Oct 12 22:13:33 CEST 2013


https://bugs.freedesktop.org/show_bug.cgi?id=70410

          Priority: medium
            Bug ID: 70410
          Assignee: mesa-dev at lists.freedesktop.org
           Summary: egl-static/Makefile: linking fails with llvm >= 3.4
          Severity: normal
    Classification: Unclassified
                OS: All
          Reporter: david.heidelberger at ixit.cz
          Hardware: x86-64 (AMD64)
            Status: NEW
           Version: git
         Component: EGL
           Product: Mesa

Created attachment 87529
  --> https://bugs.freedesktop.org/attachment.cgi?id=87529&action=edit
ugly_workaround.patch

libtool: link: x86_64-pc-linux-gnu-g++  -fPIC -DPIC -shared -nostdlib
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/../../../../lib64/crti.o
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/crtbeginS.o  .libs/egl.o
.libs/egl_pipe.o .libs/egl_st.o  -Wl,--whole-archive
../../../../src/gallium/auxiliary/.libs/libgallium.a
../../../../src/gallium/drivers/identity/.libs/libidentity.a
../../../../src/gallium/drivers/trace/.libs/libtrace.a
../../../../src/gallium/drivers/rbug/.libs/librbug.a
../../../../src/gallium/state_trackers/egl/.libs/libegl.a
../../../../src/gallium/winsys/sw/xlib/.libs/libws_xlib.a
../../../../src/gallium/winsys/sw/wayland/.libs/libws_wayland.a
../../../../src/egl/wayland/wayland-drm/.libs/libwayland-drm.a
../../../../src/mesa/.libs/libmesagallium.a
../../../../src/gallium/state_trackers/vega/.libs/libvega.a
../../../../src/gallium/winsys/radeon/drm/.libs/libradeonwinsys.a
../../../../src/gallium/drivers/r600/.libs/libr600.a
../../../../src/gallium/drivers/softpipe/.libs/libsoftpipe.a
../../../../src/gallium/drivers/llvmpipe/.libs/libllvmpipe.a
-Wl,--no-whole-archive  -Wl,-rpath
-Wl,/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/egl/main/.libs
-Wl,-rpath
-Wl,/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/gbm/.libs
-Wl,-rpath
-Wl,/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/mapi/shared-glapi/.libs
-Wl,-rpath
-Wl,/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/mapi/vgapi/.libs
-L/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/gbm/.libs
-L/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/mapi/shared-glapi/.libs
-L/usr/lib64/llvm -Wl,--as-needed ../../../../src/egl/main/.libs/libEGL.so
-L/usr/lib64 -lX11-xcb -lxcb-dri2 -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb
/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/gbm/.libs/libgbm.so
-lX11 -lXext -lXfixes ../../../../src/gbm/.libs/libgbm.so /usr/lib64/libudev.so
/usr/lib64/libwayland-client.so /usr/lib64/libwayland-server.so -lrt
/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/mapi/shared-glapi/.libs/libglapi.so
../../../../src/mapi/shared-glapi/.libs/libglapi.so
../../../../src/mapi/vgapi/.libs/libOpenVG.so -lelf /usr/lib64/libdrm_radeon.so
/usr/lib64/libdrm.so -lz -lpthread -lffi -ltinfo -ldl -lLLVMAsmParser -lLLVMipo
-lLLVMVectorize -lLLVMBitReader -lLLVMR600CodeGen -lLLVMR600Desc -lLLVMR600Info
-lLLVMR600AsmPrinter -lLLVMMCJIT -lLLVMBitWriter -lLLVMX86Disassembler
-lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter
-lLLVMMCParser -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils
-lLLVMJIT -lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMCodeGen
-lLLVMObjCARCOpts -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils
-lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore
-lLLVMSupport -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/../../../../x86_64-pc-linux-gnu/lib
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/../../.. -lstdc++ -lm
-lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/crtendS.o
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/../../../../lib64/crtn.o 
-O3 -march=native -Wl,--no-undefined -Wl,--allow-multiple-definition -Wl,-R
-Wl,/usr/lib64/llvm -Wl,-O1   -pthread -Wl,-soname -Wl,egl_gallium.so -o
.libs/egl_gallium.so
/usr/lib64/llvm/libLLVMSupport.a(Process.o): In function
`llvm::sys::Process::FileDescriptorHasColors(int)':
(.text+0x787): undefined reference to `setupterm'
/usr/lib64/llvm/libLLVMSupport.a(Process.o): In function
`llvm::sys::Process::FileDescriptorHasColors(int)':
(.text+0x7b0): undefined reference to `tigetnum'
/usr/lib64/llvm/libLLVMSupport.a(Process.o): In function
`llvm::sys::Process::FileDescriptorHasColors(int)':
(.text+0x7b9): undefined reference to `set_curterm'
/usr/lib64/llvm/libLLVMSupport.a(Process.o): In function
`llvm::sys::Process::FileDescriptorHasColors(int)':
(.text+0x7c1): undefined reference to `del_curterm'
collect2: error: ld returned 1 exit status
gmake[3]: *** [egl_gallium.la] Error 1

After applying patch (LLVM_LDFLAGS are duplicated, but it works):
x86_64-pc-linux-gnu-g++  -fPIC -DPIC -shared -nostdlib
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/../../../../lib64/crti.o
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/crtbeginS.o  .libs/egl.o
.libs/egl_pipe.o .libs/egl_st.o  -Wl,--whole-archive
../../../../src/gallium/auxiliary/.libs/libgallium.a
../../../../src/gallium/drivers/identity/.libs/libidentity.a
../../../../src/gallium/drivers/trace/.libs/libtrace.a
../../../../src/gallium/drivers/rbug/.libs/librbug.a
../../../../src/gallium/state_trackers/egl/.libs/libegl.a
../../../../src/gallium/winsys/sw/xlib/.libs/libws_xlib.a
../../../../src/gallium/winsys/sw/wayland/.libs/libws_wayland.a
../../../../src/egl/wayland/wayland-drm/.libs/libwayland-drm.a
../../../../src/mesa/.libs/libmesagallium.a
../../../../src/gallium/state_trackers/vega/.libs/libvega.a
../../../../src/gallium/winsys/radeon/drm/.libs/libradeonwinsys.a
../../../../src/gallium/drivers/r600/.libs/libr600.a
../../../../src/gallium/drivers/softpipe/.libs/libsoftpipe.a
../../../../src/gallium/drivers/llvmpipe/.libs/libllvmpipe.a
-Wl,--no-whole-archive  -Wl,-rpath
-Wl,/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/egl/main/.libs
-Wl,-rpath
-Wl,/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/gbm/.libs
-Wl,-rpath
-Wl,/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/mapi/shared-glapi/.libs
-Wl,-rpath
-Wl,/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/mapi/vgapi/.libs
-L/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/gbm/.libs
-L/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/mapi/shared-glapi/.libs
-L/usr/lib64/llvm -Wl,--as-needed ../../../../src/egl/main/.libs/libEGL.so
-L/usr/lib64 -lX11-xcb -lxcb-dri2 -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb
/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/gbm/.libs/libgbm.so
-lX11 -lXext -lXfixes ../../../../src/gbm/.libs/libgbm.so /usr/lib64/libudev.so
/usr/lib64/libwayland-client.so /usr/lib64/libwayland-server.so -lrt
/var/tmp/portage/media-libs/mesa-9999-r51/work/Mesa-9999-amd64/src/mapi/shared-glapi/.libs/libglapi.so
../../../../src/mapi/shared-glapi/.libs/libglapi.so
../../../../src/mapi/vgapi/.libs/libOpenVG.so -lelf /usr/lib64/libdrm_radeon.so
/usr/lib64/libdrm.so -lLLVMAsmParser -lLLVMipo -lLLVMVectorize -lLLVMBitReader
-lLLVMR600CodeGen -lLLVMR600Desc -lLLVMR600Info -lLLVMR600AsmPrinter
-lLLVMMCJIT -lLLVMBitWriter -lLLVMX86Disassembler -lLLVMX86AsmParser
-lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMMCParser
-lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMJIT
-lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMCodeGen -lLLVMObjCARCOpts
-lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa
-lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore -lLLVMSupport -lz
-lpthread -lffi -ltinfo -ldl
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/../../../../x86_64-pc-linux-gnu/lib
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/../../.. -lstdc++ -lm
-lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/crtendS.o
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0-alpha20131006/../../../../lib64/crtn.o 
-O3 -march=native -Wl,--no-undefined -Wl,--allow-multiple-definition -Wl,-R
-Wl,/usr/lib64/llvm -Wl,-O1 -Wl,-R -Wl,/usr/lib64/llvm   -pthread -Wl,-soname
-Wl,egl_gallium.so -o .libs/egl_gallium.so

In short:
-ltinfo NEEDS to be set after -lLLVM____ block. [
http://stackoverflow.com/questions/45135/linker-order-gcc ]

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20131012/c190a4c7/attachment.html>


More information about the mesa-dev mailing list