[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