LINUX.ORG.RU

Как собрать 32 битные библиотеки mesa в 64 битной системе


0

0

Стоит 64-битная бубунта 10.04, подключены репы xorg-edgers, в mesa нет 32 битных библиотек dri, поэтому 32 битная проприентарщина работает без поддержки dri.

Добавил при сборке --enable-32-bit, выкидывает ошибку:

mklib: Making Linux shared library:  r600_dri.so
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.2/../../../libdrm_radeon.so when searching for -ldrm_radeon
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.2/../../../libdrm_radeon.a when searching for -ldrm_radeon
/usr/bin/ld: skipping incompatible /usr/lib/libdrm_radeon.so when searching for -ldrm_radeon
/usr/bin/ld: skipping incompatible /usr/lib/libdrm_radeon.a when searching for -ldrm_radeon
/usr/bin/ld: cannot find -ldrm_radeon
collect2: ld returned 1 exit status
/usr/bin/install -c r600_dri.so ../../../../../lib 
/usr/bin/install: невозможно выполнить stat для `r600_dri.so': No such file or directory
make[6]: *** [../../../../../lib/r600_dri.so] Ошибка 1
make[6]: Выход из каталога `/home/linux4ever/source/mesa-7.8.0~git20091216.1c28073f/src/mesa/drivers/dri/r600'
make[5]: *** [lib] Ошибка 2
make[5]: Выход из каталога `/home/linux4ever/source/mesa-7.8.0~git20091216.1c28073f/src/mesa/drivers/dri/r600'
make[4]: *** [subdirs] Ошибка 1
make[4]: Выход из каталога `/home/linux4ever/source/mesa-7.8.0~git20091216.1c28073f/src/mesa/drivers/dri'
make[3]: *** [default] Ошибка 1
make[3]: Выход из каталога `/home/linux4ever/source/mesa-7.8.0~git20091216.1c28073f/src/mesa/drivers'
make[2]: *** [driver_subdirs] Ошибка 2
make[2]: Выход из каталога `/home/linux4ever/source/mesa-7.8.0~git20091216.1c28073f/src/mesa'
make[1]: *** [subdirs] Ошибка 1
make[1]: Выход из каталога `/home/linux4ever/source/mesa-7.8.0~git20091216.1c28073f/src'
make: *** [default] Ошибка 1

ЧЯДНТ? gcc для 32 бит стоит.

Ответ на: комментарий от Root-msk

Почти не глючит, даже 2 полных обновления пережила.

linux4ever
() автор топика
./configure \
    --prefix=/usr/i486-mingw32 \
    --host=i486-mingw32 \
    --build=$CHOST 

это просто пример :) тебе нужно добавить что-то похожее, иначе чем через кросс-компиляция я думаю не собрать.

dhampire ★★★
()
Ответ на: комментарий от dhampire

А это разве кросскомпиляция? Ведь 32 битный r600_dri.so соединяется с 64-битным radeon.ko

linux4ever
() автор топика
Ответ на: комментарий от linux4ever

запуском компилятора с флагом -m32, К.О. :)

Reset ★★★★★
()

Цитируя сам себя из одного подобных тредов:

Кстати, если месье желает насладиться фосс-драйвером в вайне или нативных бинарных играк, таких как ut2004, ему следует сделать еще вот это:

зачистить сырцы, сделать конфиг примерно таким образом:

libdrm: ./configure --build=i686-pc-linux-gnu --prefix=/usr CC=«gcc -m32» --enable-radeon-experimental-api

mesa: ./configure --build=i686-pc-linux-gnu --prefix=/usr --libdir=/usr/lib32 --with-dri-drivers=radeon,r200,r300,swrast CC=«gcc -m32» LDFLAGS="-m32" --disable-gallium --without-demos --enable-32-bit

ну и поставить их.

Ну для S3TC надо также найти S3TC и скомпилировать (не уверен, надо ли под 32 бита собирать, я на всякий случай собрал.

Fat_Green_Liar
()
Ответ на: комментарий от linux4ever

i386
запустите
после этого в терминале будет считаться что система 32 битная
только обращайте внимание на --libdir= в configure ( --libdir=/usr/lib32 у вас ? )

Sylvia ★★★★★
()
Ответ на: комментарий от Fat_Green_Liar

./configure --build=i686-pc-linux-gnu --prefix=/usr --libdir=/usr/lib32 --with-dri-drivers=radeon,r600,swrast CC=«gcc -m32» LDFLAGS="-m32" --disable-gallium --enable-32-bit

[code]
mklib: Making Linux shared library: libGLU.so.1.3.070800
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.2/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.2/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.2/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.2/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
mklib: Installing libGLU.so.1.3.070800 libGLU.so.1 libGLU.so in ../../../lib32
mv: невозможно выполнить stat для `libGLU.so.1.3.070800': No such file or directory
make[4]: *** [../../../lib32/libGLU.so] Ошибка 1
make[4]: Выход из каталога `/home/linux4ever/source/mesa-7.8.0~git20091217.294bd53d/src/glu/sgi'
make[3]: *** [default] Ошибка 1
make[3]: Выход из каталога `/home/linux4ever/source/mesa-7.8.0~git20091217.294bd53d/src/glu/sgi'
make[2]: *** [default] Ошибка 1
make[2]: Выход из каталога `/home/linux4ever/source/mesa-7.8.0~git20091217.294bd53d/src/glu'
make[1]: *** [subdirs] Ошибка 1
make[1]: Выход из каталога `/home/linux4ever/source/mesa-7.8.0~git20091217.294bd53d/src'
make: *** [default] Ошибка 1
[/code]

Опять в 64 бита лезет. Хотя lib32stdc++6 стоит.

linux4ever
() автор топика
Ответ на: комментарий от linux4ever

lib32gcc1 тоже стоит, но /usr/lib32/gcc/ пустая, ерунда какая-то.

linux4ever
() автор топика
Ответ на: комментарий от linux4ever

Отключи GLU, в дебиане-бунту забыли положить 32битную libstdc++. Так соберется... хотя для работы нужны фактически только dri-модули, и все.

Fat_Green_Liar
()
Ответ на: комментарий от linux4ever

нужен 32 битный libstdc++6 dev-пакет в этом случае... я не парился, просто убрал GLU из билда...

Fat_Green_Liar
()
Ответ на: комментарий от Fat_Green_Liar

Большое спасибо, 32 битный glxinfo теперь показывает:

libGL: XF86DRIGetClientDriverName: 4.3.0 r600 (screen 0)
libGL: OpenDriver: trying /usr/lib32/dri/r600_dri.so
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 4, (OK)
drmOpenByBusid: Searching for BusID pci:0000:01:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 4, (OK)
drmOpenByBusid: drmOpenMinor returns 4
drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0

direct rendering: Yes

OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: Mesa DRI R600 (RV770 9442) 20090101 TCL
OpenGL version string: 2.0 Mesa 7.8-devel
OpenGL shading language version string: 1.10

linux4ever
() автор топика

Смотрите во всех кинотеатрах нашего города: «После активации 32 битного dri flashplayer начал ронять систему».

linux4ever
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.