Bug 47875

Summary: Making r600_dri.so fails when building 32bit on 64bit when setting LIBDRM_LIBS (maybe other env vars also) manually: missing -L
Product: Mesa Reporter: Alexandre Demers <alexandre.f.demers>
Component: Drivers/Gallium/r600Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED NOTABUG QA Contact:
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Alexandre Demers 2012-03-25 17:35:46 UTC
under ./src/gallium/targets/dri-r600, making lib fails:

/bin/sh ../../../../bin/mklib -o r600_dri.so.tmp -noprefix -linker 'g++' -ldflags '' \
	target.o ../../../../src/mesa/drivers/dri/common/utils.o ../../../../src/mesa/drivers/dri/common/dri_util.o ../../../../src/mesa/drivers/dri/common/xmlconfig.o   ../../../../src/gallium/drivers/r600/libr600.a ../../../../src/gallium/state_trackers/dri/drm/libdridrm.a ../../../../src/gallium/winsys/radeon/drm/libradeonwinsys.a ../../../../src/gallium/drivers/trace/libtrace.a ../../../../src/gallium/drivers/rbug/librbug.a ../../../../src/gallium/drivers/noop/libnoop.a \
                -Wl,--start-group ../../../../src/mesa/libmesagallium.a ../../../../src/gallium/auxiliary/libgallium.a -Wl,--end-group \
                  -L../../../../i386-linux-gnu -Wl,-R/usr/lib/i386-linux-gnu/dri -ldricore -lglsl  /usr/lib/i386-linux-gnu/ -lexpat -lm -lpthread -ldl -ldrm_radeon
 
mklib: Making Linux shared library:  r600_dri.so.tmp
/usr/lib/i386-linux-gnu/: file not recognized: Is a directory
collect2: ld returned 1 exit status
g++ -g -O2 -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -m32 -g -O2  -fPIC -m32 -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DIN_DRI_DRIVER -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XEXTPROTO_71 -fvisibility=hidden -o r600_dri.so.test ../../../../src/mesa/drivers/dri/common/dri_test.o r600_dri.so.tmp  -L../../../../i386-linux-gnu -Wl,-R/usr/lib/i386-linux-gnu/dri -ldricore -lglsl  /usr/lib/i386-linux-gnu/ -lexpat -lm -lpthread -ldl -ldrm_radeon ;
g++: error: r600_dri.so.tmp: No such file or directory
make[3]: *** [r600_dri.so] Error 1

However, adding -L before /usr/lib/i386-linux-gnu/. I'm compiling with "--enable-32-bit --libdir=/usr/lib/i386-linux-gnu --includedir=/usr/include/i386-linux-gnu" on a 64bit OS and I manually set "export LIBDRM_LIBS=/usr/lib/i386-linux-gnu/".
Comment 1 Alexandre Demers 2012-03-25 22:32:19 UTC
After testing, I can confirm the problem comes from  "export LIBDRM_LIBS=/usr/lib/i386-linux-gnu/". When it is not set, the build goes all the way to the end.
Comment 2 Michel Dänzer 2012-03-26 00:22:06 UTC
(In reply to comment #1)
> After testing, I can confirm the problem comes from  "export
> LIBDRM_LIBS=/usr/lib/i386-linux-gnu/".

LIBDRM_LIBS must contain linker flags, not just a path.
Comment 3 Alexandre Demers 2012-03-26 05:29:57 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > After testing, I can confirm the problem comes from  "export
> > LIBDRM_LIBS=/usr/lib/i386-linux-gnu/".
> 
> LIBDRM_LIBS must contain linker flags, not just a path.

It seems to do the trick, thank you.

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.