Bug 47875 - Making r600_dri.so fails when building 32bit on 64bit when setting LIBDRM_LIBS (maybe other env vars also) manually: missing -L
Summary: Making r600_dri.so fails when building 32bit on 64bit when setting LIBDRM_LIB...
Status: RESOLVED NOTABUG
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r600 (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-25 17:35 UTC by Alexandre Demers
Modified: 2012-03-26 05:29 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

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.