Есть проблема: некоторые порты не собираются ругаясь на libz, вот
например ffmpeg
# cd /usr/ports/multimedia/ffmpeg
# make && make install && make clean
.......
/usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
gmake: *** [libavcodec/libavcodec.so.1] Error 1
*** Error code 2
Stop in /usr/ports/multimedia/ffmpeg.
*** Error code 1
Как я понял из этого предлагается пересобрать libz с флагом -fPIC
cd /usr/src/lib/libz/
В Makefile есть строка
CFLAGS+= -DHAS_snprintf -DHAS_vsnprintf
добавляем требуемое
CFLAGS+= -DHAS_snprintf -DHAS_vsnprintf -fPIC
make && make install, но ничего не меняется, также вылазит эта ошибка
сборки.
Система 7.0-RELEASE amd64
Что тут делать?
И еще, libz и zlib - это одно и то же? Заходим в /usr/src/lib/libz/
читаем README, там написано что это zlib
--
С уважением,
Евгений mailto:ev...@rdtc.ru
> Здравствуйте, all.
>
> Есть проблема: некоторые порты не собираются ругаясь на libz, вот
> например ffmpeg
> # cd /usr/ports/multimedia/ffmpeg
> # make && make install && make clean
> .......
> /usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation
Левый архив /usr/local/lib/libz.a
Системный находится в /usr/lib/libz.a
> R_X86_64_32 can not be used when making a shared object; recompile
> with -fPIC
> /usr/local/lib/libz.a: could not read symbols: Bad value
> gmake: *** [libavcodec/libavcodec.so.1] Error 1
> *** Error code 2
>
> Stop in /usr/ports/multimedia/ffmpeg.
> *** Error code 1
>
> Как я понял из этого предлагается пересобрать libz с флагом -fPIC
> cd /usr/src/lib/libz/
> В Makefile есть строка
> CFLAGS+= -DHAS_snprintf -DHAS_vsnprintf
> добавляем требуемое
> CFLAGS+= -DHAS_snprintf -DHAS_vsnprintf -fPIC
> make && make install, но ничего не меняется, также вылазит эта ошибка
> сборки.
>
> Система 7.0-RELEASE amd64
>
> Что тут делать?
>
> И еще, libz и zlib - это одно и то же? Заходим в /usr/src/lib/libz/
> читаем README, там написано что это zlib
Практически да.
>> Есть проблема: некоторые порты не собираются ругаясь на libz, вот
>> например ffmpeg
>> # cd /usr/ports/multimedia/ffmpeg
>> # make && make install && make clean
>> .......
>> /usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation
> Левый архив /usr/local/lib/libz.a
> Системный находится в /usr/lib/libz.a
Спасибо, заменил левый файл на системный и сборка прошла без проблем