[devel] Q: linuxsampler
Mikhail Yakshin
=?iso-8859-1?q?greycat_=CE=C1_altlinux=2Eorg?=
Пн Дек 5 01:40:24 MSK 2005
Приветствую и попробую попросить помощи у сообщества.
Есть связка пакетов проекта linuxsampler, которую я пытаюсь собирает.
Состоит из 2 независимых приложений: frontend и backend. Весь frontend
собрался и прошел в Сизиф, без проблем.
Проблемы с backend: он состоит из libgig, которая парсит файлы,
liblinuxsampler.so.0, которая содержит собственно функциональность
сэмплера и тривиального бинарника linuxsampler, который тупо загружает и
выполняет по сути код из этой библиотеки. libgig собрался без проблем,
все в порядке, TEXTREL нет, в Сизиф прошел. А вот linuxsampler и его lib
собираются из одного и того же тарболла (впрочем, пакуются они тоже в
один бинарный пакет), и здесь начинаются проблемы с TEXTREL: пакет
собирается, но в результате почему-то внутри получаются эти самые text
relocations и проверки оно не проходит.
Что характерно, сам продукт написан достаточно грамотно и сам
обрабатывает ситуацию с -fPIC, что видно по логам:
[...]
checking if i586-alt-linux-gcc static flag works... yes
checking if i586-alt-linux-gcc supports -fno-rtti -fno-exceptions... no
checking for i586-alt-linux-gcc option to produce PIC... -fPIC
checking if i586-alt-linux-gcc PIC flag -fPIC works... yes
checking if i586-alt-linux-gcc supports -c -o file.o... yes
checking whether the i586-alt-linux-gcc linker (/usr/bin/ld) supports
shared libraries... yes
checking whether -lc should be explicitly linked in... no
[...]
и далее по сборке, -fPIC используется:
i586-alt-linux-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -Wreturn-type
-ffast-math -march=i586 -pipe -Wall -O2 -march=i586 -mcpu=i686 -msse -MT
lscpparser.lo -MD -MP -MF .deps/lscpparser.Tpo -c lscpparser.cpp -fPIC
-DPIC -o .libs/lscpparser.o
и т.п.
Но при этом почему-то на выходе получаем:
Verifying and fixing files in /usr/src/tmp/linuxsampler-buildroot
(binconfig,pkgconfig,libtool)
/usr/lib/linuxsampler/liblinuxsampler.la: dependency_libs: ' -lgig ljack
-lasound' --> '-lgig -ljack -lasound'
Compressing files in /usr/src/tmp/linuxsampler-buildroot (auto)
Verifying ELF objects in /usr/src/tmp/linuxsampler-buildroot
(rpath=normal,textrel=normal)
verify-elf: ./usr/lib/linuxsampler/liblinuxsampler.so.0.0.0: TEXTREL
entry found: 0x0
и соответственно, это правда - видно и .la-файл, который собрался туда
же. Вероятно, есть какие-то проблемы с libtool, которые приводят к
такому результату - в какую сторону копать, что читать, что стоит смотреть?
Сам spec очень простой, собирается все вот таким вот образом:
%prep
%setup -q
%build
autoreconf -fisv
%configure
%make_build
%install
%make DESTDIR=%buildroot install
Пробовал добавлять в %configure --disable-static - не помогает. Есть
подозрение на то, что такой эффект дают "assembly optimizations",
которые включены и выключать их не очень хочется...
--
WBR, Mikhail Yakshin AKA GreyCat
Подробная информация о списке рассылки Devel