Bug 53109

Summary: egl_gallium fails to link if both r600 and radeonsi are enabled
Product: Mesa Reporter: Olivier Blin <freedesktop>
Component: Drivers/DRI/R100Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED DUPLICATE QA Contact:
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Olivier Blin 2012-08-03 22:19:31 UTC
When both r600 and radeonsi gallium drivers are enabled, egl_gallium fails to link because of duplicate symbols in r600 and radeonsi.
See my configure command line and build errors below.

  $ ./configure --build=x86_64-mageia-linux-gnu --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/lib64 --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --x-includes=/usr/include --x-libraries=/usr/lib64 --enable-dri --enable-glx --with-dri-driverdir=/usr/lib64/dri --with-dri-drivers=i915,i965,nouveau,r200,radeon,swrast --enable-shared-dricore --enable-egl --with-egl-platforms=x11,wayland,drm --enable-gbm --enable-shared-glapi --enable-gles1 --enable-gles2 --enable-openvg --enable-gallium-egl --enable-gallium-g3dvl --enable-osmesa --disable-xvmc --enable-vdpau --disable-va --with-gallium-drivers=r300,r600,radeonsi,nouveau,swrast --enable-gallium-llvm


gmake[3]: Entering directory `/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/targets/egl-static'
/bin/sh ../../../../bin/mklib -o egl_gallium.so -noprefix -linker 'g++' \
-ldflags '-L../../../../lib64 -Wl,--no-undefined -L/usr/lib64/llvm -Wl,--as-needed -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags -L/usr/lib -lpthread -lffi -ldl -lm ' \
-cplusplus -install ../../../../lib64/egl \
egl.o egl_pipe.o egl_st.o -Wl,--start-group ../../../../src/egl/wayland/wayland-drm/.libs/libwayland-drm.a ../../../../src/gallium/auxiliary/libgallium.a ../../../../src/gallium/drivers/identity/libidentity.a ../../../../src/gallium/drivers/llvmpipe/libllvmpipe.a ../../../../src/gallium/drivers/nouveau/libnouveau.a ../../../../src/gallium/drivers/nv30/libnv30.a ../../../../src/gallium/drivers/nv50/libnv50.a ../../../../src/gallium/drivers/nvc0/libnvc0.a ../../../../src/gallium/drivers/r300/libr300.a ../../../../src/gallium/drivers/r600/libr600.a ../../../../src/gallium/drivers/radeonsi/libradeonsi.a ../../../../src/gallium/drivers/rbug/librbug.a ../../../../src/gallium/drivers/softpipe/libsoftpipe.a ../../../../src/gallium/drivers/trace/libtrace.a ../../../../src/gallium/state_trackers/egl/libegl.a ../../../../src/gallium/state_trackers/vega/libvega.a ../../../../src/gallium/winsys/nouveau/drm/libnouveaudrm.a ../../../../src/gallium/winsys/radeon/drm/libradeonwinsys.a ../../../../src/gallium/winsys/sw/wayland/libws_wayland.a ../../../../src/gallium/winsys/sw/xlib/libws_xlib.a ../../../../src/mesa/libmesagallium.a -Wl,--end-group \
-lEGL -lOpenVG -lX11 -lXext -lXfixes -ldl -ldrm -ldrm_nouveau -ldrm_radeon -lgbm -lglapi -lm -lpthread -lrt -ludev -lwayland-client -lwayland-server -lLLVMMCJIT -lLLVMBitWriter -lLLVMX86AsmParser -lLLVMX86Disassembler -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMMCParser -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMJIT -lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore -lLLVMSupport
mklib: Making Linux shared library: egl_gallium.so
/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/bin/ld: skipping incompatible /usr/lib/libdl.so when searching for -ldl
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(evergreen_hw_context.o): In function `evergreen_flush_vgt_streamout':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/evergreen_hw_context.c:117: multiple definition of `evergreen_flush_vgt_streamout'
../../../../src/gallium/drivers/r600/libr600.a(evergreen_hw_context.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/evergreen_hw_context.c:753: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(evergreen_hw_context.o): In function `evergreen_set_streamout_enable':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/evergreen_hw_context.c:137: multiple definition of `evergreen_set_streamout_enable'
../../../../src/gallium/drivers/r600/libr600.a(evergreen_hw_context.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/evergreen_hw_context.c:773: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_buffer.o): In function `r600_init_resource':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_buffer.c:121: multiple definition of `r600_init_resource'
../../../../src/gallium/drivers/r600/libr600.a(r600_buffer.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_buffer.c:199: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_buffer.o): In function `r600_buffer_create':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_buffer.c:161: multiple definition of `r600_buffer_create'
../../../../src/gallium/drivers/r600/libr600.a(r600_buffer.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_buffer.c:239: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_hw_context.o): In function `r600_get_backend_mask':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_hw_context.c:37: multiple definition of `r600_get_backend_mask'
../../../../src/gallium/drivers/r600/libr600.a(r600_hw_context.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_hw_context.c:33: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_hw_context.o): In function `r600_need_cs_space':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_hw_context.c:150: multiple definition of `r600_need_cs_space'
../../../../src/gallium/drivers/r600/libr600.a(r600_hw_context.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_hw_context.c:682: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_hw_context.o): In function `r600_context_emit_fence':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_hw_context.c:260: multiple definition of `r600_context_emit_fence'
../../../../src/gallium/drivers/r600/libr600.a(r600_hw_context.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_hw_context.c:1135: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_hw_context.o): In function `r600_context_streamout_begin':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_hw_context.c:669: multiple definition of `r600_context_streamout_begin'
../../../../src/gallium/drivers/r600/libr600.a(r600_hw_context.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_hw_context.c:1196: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_hw_context.o): In function `r600_context_streamout_end':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_hw_context.c:746: multiple definition of `r600_context_streamout_end'
../../../../src/gallium/drivers/r600/libr600.a(r600_hw_context.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_hw_context.c:1302: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_hw_context.o): In function `r600_context_flush':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_hw_context.c:206: multiple definition of `r600_context_flush'
../../../../src/gallium/drivers/r600/libr600.a(r600_hw_context.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_hw_context.c:1039: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_texture.o): In function `r600_texture_transfer_unmap':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_texture.c:888: multiple definition of `r600_texture_transfer_unmap'
../../../../src/gallium/drivers/r600/libr600.a(r600_texture.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_texture.c:968: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_texture.o): In function `r600_texture_transfer_map':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_texture.c:851: multiple definition of `r600_texture_transfer_map'
../../../../src/gallium/drivers/r600/libr600.a(r600_texture.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_texture.c:929: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_texture.o): In function `r600_texture_transfer_destroy':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_texture.c:828: multiple definition of `r600_texture_transfer_destroy'
../../../../src/gallium/drivers/r600/libr600.a(r600_texture.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_texture.c:904: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_texture.o): In function `r600_texture_get_offset':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_texture.c:78: multiple definition of `r600_texture_get_offset'
../../../../src/gallium/drivers/r600/libr600.a(r600_texture.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_texture.c:70: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_texture.o): In function `r600_texture_create':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_texture.c:564: multiple definition of `r600_texture_create'
../../../../src/gallium/drivers/r600/libr600.a(r600_texture.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_texture.c:632: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_texture.o): In function `r600_texture_from_handle':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_texture.c:631: multiple definition of `r600_texture_from_handle'
../../../../src/gallium/drivers/r600/libr600.a(r600_texture.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_texture.c:702: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_texture.o): In function `r600_texture_get_transfer':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_texture.c:720: multiple definition of `r600_texture_get_transfer'
../../../../src/gallium/drivers/r600/libr600.a(r600_texture.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_texture.c:790: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_texture.o): In function `r600_init_surface_functions':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_texture.c:904: multiple definition of `r600_init_surface_functions'
../../../../src/gallium/drivers/r600/libr600.a(r600_texture.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_texture.c:982: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_blit.o): In function `r600_blit_uncompress_depth':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_blit.c:117: multiple definition of `r600_blit_uncompress_depth'
../../../../src/gallium/drivers/r600/libr600.a(r600_blit.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_blit.c:127: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_blit.o): In function `r600_flush_depth_textures':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_blit.c:157: multiple definition of `r600_flush_depth_textures'
../../../../src/gallium/drivers/r600/libr600.a(r600_blit.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_blit.c:194: first defined here
../../../../src/gallium/drivers/radeonsi/libradeonsi.a(r600_blit.o): In function `r600_init_blit_functions':
/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/radeonsi/r600_blit.c:379: multiple definition of `r600_init_blit_functions'
../../../../src/gallium/drivers/r600/libr600.a(r600_blit.o):/home/iurt/rpm/BUILD/mesa-20120802/src/gallium/drivers/r600/r600_blit.c:408: first defined here
/bin/ld: skipping incompatible /usr/lib/libdl.so when searching for -ldl
/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/bin/ld: skipping incompatible /usr/lib/librt.so when searching for -lrt
/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/bin/ld: skipping incompatible /usr/lib/libgcc_s.so when searching for -lgcc_s
/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/bin/ld: skipping incompatible /usr/lib/libgcc_s.so when searching for -lgcc_s
collect2: error: ld returned 1 exit status
mklib: Installing egl_gallium.so in ../../../../lib64/egl
mv: cannot stat 'egl_gallium.so': No such file or directory
/bin/install -c -d /home/iurt/rpm/BUILDROOT/mesa-8.1.0-0.git20120802.2.mga3.x86_64/usr/lib64/egl
for out in ../../../../lib64/egl/egl_gallium.so; do \
/bin/sh ../../../../bin/minstall -m 755 "$out" /home/iurt/rpm/BUILDROOT/mesa-8.1.0-0.git20120802.2.mga3.x86_64/usr/lib64/egl; \
done
Unknown type of argument: ../../../../lib64/egl/egl_gallium.so
gmake[3]: *** [install] Error 1
Comment 1 Michel Dänzer 2012-08-06 12:48:23 UTC

*** This bug has been marked as a duplicate of bug 50389 ***

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.