сборка программы из исходников

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

сборка программы из исходников

Непрочитанное сообщение schmel » 2010-07-22 10:18:01

есть исходные тексты одной утилиты (в портах ее нет)
при сборке пишет:

Код: Выделить всё

#configure --enable-shared
Found GNU assembler 2.15 [FreeBSD] 2004-05-23
Minimum version is binutils-2.17
Your compiler can't handle inline SSSE3 asm.
If you really want to compile without asm, configure with --disable-asm.
если собирать так: #configure --enable-shared --disable-asm
то все собирается. но мне нужна поддержка SSSE3.
как обновить версию binutils??? в портах есть 2.20, но при установке и перезагрузки
при сборке - опять пишет что версия binutils 2.15

установил даже gcc44 - тоже не помогло.
в хендбуке указано, что новые версии компилятора можно использовать для сборки портов, редактировав /etc/make.conf, но у меня просто исходники...
как обновить версию binutils???
Последний раз редактировалось f_andrey 2010-07-22 10:20:23, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: сборка программы из исходников

Непрочитанное сообщение Mox » 2010-07-22 14:19:44

если она у вас установлена, то configure скорей всего просто надо указать где она лежит.
посмотрите на вывод

Код: Выделить всё

#./configure --help | less
и поищите там что-нибудь подобное
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

Re: сборка программы из исходников

Непрочитанное сообщение schmel » 2010-07-22 14:34:33

после установки binutils из портов

Код: Выделить всё

[root@videoserver:~/x264] $whereis binutils
binutils: /usr/src/gnu/usr.bin/binutils

Код: Выделить всё

[root@videoserver:~/x264] $./configure --help | less
Usage: ./configure [options]

available options:

  --help                   print this message
  --disable-avs-input      disables avisynth input (win32 only)
  --disable-lavf-input     disables libavformat input
  --disable-ffms-input     disables ffmpegsource input
  --disable-mp4-output     disables mp4 output (using gpac)
  --disable-pthread        disables multithreaded encoding
  --disable-asm            disables platform-specific assembly optimizations
  --enable-debug           adds -g, doesn't strip
  --enable-gprof           adds -pg, doesn't strip
  --enable-visualize       enables visualization (X11 only)
  --enable-pic             build position-independent code
  --extra-asflags=EASFLAGS add EASFLAGS to ASFLAGS
  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS
  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS
  --host=HOST              build programs to run on HOST
  --cross-prefix=PREFIX    use PREFIX for compilation tools
  --sysroot=SYSROOT        root of cross-build tree

:
даже и не знаю :(

Гость
проходил мимо

Re: сборка программы из исходников

Непрочитанное сообщение Гость » 2010-07-22 14:48:06

раньше при установке GCC из портов
можно было в порте GCC указывать что бы оно установило его поверх системного

можно еще найти порт такой который собирается с помощю gcc4 и посмотреть как он использует gcc4 из порта

а вообще я сомниваюсь что те исходники что вы собираете отсутсвуют в портах
просто плохо искали я на 99% уверен

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: сборка программы из исходников

Непрочитанное сообщение Mox » 2010-07-22 15:13:38

как, кстати, зовется программа?
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

Re: сборка программы из исходников

Непрочитанное сообщение schmel » 2010-07-22 16:16:23

это модифицированные исходники одной проги. точнее /usr/ports/multimedia/x264
в портах (как выяснил из рассылки) тоже не поддерживаются новые инструкции CPU.
через порты точно не пойдет, так как в исходниках уже много изменений...
мне всего лишь нужно собрать с новым binutils...

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: сборка программы из исходников

Непрочитанное сообщение Mox » 2010-07-22 16:41:49

schmel писал(а):это модифицированные исходники одной проги. точнее /usr/ports/multimedia/x264
в портах (как выяснил из рассылки) тоже не поддерживаются новые инструкции CPU.
через порты точно не пойдет, так как в исходниках уже много изменений...
мне всего лишь нужно собрать с новым binutils...
посмотрите как это в портах сделано
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

Re: сборка программы из исходников

Непрочитанное сообщение schmel » 2010-07-22 18:52:55

хм...если делать так
make fetch
make extract
заменить моими исходниками
make config
make install
то вываливается о ошибками несовместимости...
наверное всетаки проще обновить binutils, о чем собственно я спрашивал в первом топике... :unknown:

вот выдержки из Makefile

Код: Выделить всё

PORTNAME=       x264
PORTVERSION=    0.0.20100222
PORTREVISION=   2
CATEGORIES=     multimedia
MASTER_SITES=   http://downloads.videolan.org/pub/videolan/x264/snapshots/ \
                http://samples.mplayerhq.hu/yuv4mpeg2/:pgo
DISTNAME=       ${PORTNAME}-snapshot-${PORTVERSION:S/0.0.//}-2245
DISTFILES=      ${PORTNAME}-snapshot-${PORTVERSION:S/0.0.//}-2245${EXTRACT_SUFX}
DIST_SUBDIR=    x264
EXTRACT_ONLY=   ${PORTNAME}-snapshot-${PORTVERSION:S/0.0.//}-2245${EXTRACT_SUFX}

MAINTAINER=     mm@FreeBSD.org
COMMENT?=       Library and tool for encoding H.264/AVC video streams

BUILD_DEPENDS=  yasm>=0.6.0:${PORTSDIR}/devel/yasm

USE_BZIP2=      yes
EXTRACT_AFTER_ARGS?=    | ${TAR} -xf - --exclude .svn
WRKSRC=         ${WRKDIR}/${DISTNAME}
USE_GMAKE=      yes
USE_LDCONFIG=   yes
HAS_CONFIGURE=  yes
MAKE_JOBS_SAFE= yes

OPTIONS=        ASM "Assembly optimizations (devel/binutils)" On \
                DEBUG "Enable Debugging" Off \
                PGO "Enable Profile-Guided Optimization" Off \
                GCC44 "Use gcc 4.4+ (implies WITH_ASM)" Off \
                GPAC "Enable MPEG-4 Output" On \
                X11_OUTPUT "Enable X11 Output" Off

CONFIGURE_ARGS+=        --extra-cflags="${CPPFLAGS} ${CFLAGS} -fPIC -I${LOCALBASE}/include" \
                        --extra-ldflags="${LDFLAGS} -L${LOCALBASE}/lib" \
                        --enable-shared

.include <bsd.port.pre.mk>

.if defined(WITH_GCC44)
USE_GCC?=       4.4+
.endif

.if !defined(WITHOUT_ASM) || defined(WITH_GCC44)
BUILD_DEPENDS+=         ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
CONFIGURE_ENV+=         COMPILER_PATH=${LOCALBASE}/bin
MAKE_ENV+=              COMPILER_PATH=${LOCALBASE}/bin
.else
CONFIGURE_ARGS+=                --disable-asm
.endif

# Around the time GCC stack protection (aka Propolice) for userland
# was enabled on src/share/mk/bsd.sys.mk
# SVN rev 180012 on 2008-06-25 21:33:28Z by ru
.if ${OSVERSION} >= 800040
LDFLAGS+=       -fstack-protector
.endif



Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

Re: сборка программы из исходников

Непрочитанное сообщение schmel » 2010-07-23 13:21:19

ладно, сам нашел...
если кому интересно, то после установки binutils из портов в папке /usr/local - появляется папка i386-portbld-freebsd8.0

оттуда с заменой копируем полученные файлы в папку /usr/bin

на случай можно сделать резервную копию...
все, тему можно закрывать..

Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

Re: сборка программы из исходников

Непрочитанное сообщение schmel » 2010-07-23 16:36:08

поторопился с выводами :roll:
так, если ставить из портов, то в папке /usr/local/i386-portbld-freebsd8.0 появляются папки bin и ldscripts
как дальше быть? допустим я заменил /usr/bin из папки /bin
ldscripts закунул в папку /usr/libdata
как правильно собрать программу, используя версию binutils из /usr/local/i386-portbld-freebsd8.0???

Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

Re: сборка программы из исходников

Непрочитанное сообщение schmel » 2010-07-25 18:47:58

нашел, старенький патчик для портовой версии x264

Код: Выделить всё

Apply the patch to /usr/ports/multimedia/Makefile
--- Makefile.orig 2010-05-17 16:00:56.000000000 +0400
+++ Makefile 2010-05-27 00:39:33.000000000 +0400
@@ -18,8 +18,7 @@
MAINTAINER= mm@FreeBSD.org
COMMENT?= Library and tool for encoding H.264/AVC video streams
-BUILD_DEPENDS= yasm>=0.6.0:${PORTSDIR}/devel/yasm \
- ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
+BUILD_DEPENDS= yasm>=0.6.0:${PORTSDIR}/devel/yasm
USE_BZIP2= yes
EXTRACT_AFTER_ARGS?= | ${TAR} -xf - --exclude .svn
@@ -33,12 +32,19 @@
PGO "Enable Profile-Guided Optimization" Off \
GCC44 "Use gcc 4.4+" Off \
GPAC "Enable MPEG-4 Output" On \
- X11_OUTPUT "Enable X11 Output" Off
+ X11_OUTPUT "Enable X11 Output" Off \
+ ASMSSE3 "Enable inline SSE3 asm" On
CONFIGURE_ARGS+= --extra-cflags="${CPPFLAGS} ${CFLAGS} -fPIC -I${LOCALBASE}/include -I${LOCALBASE}/include" \
--extra-ldflags="${LDFLAGS} -L${LOCALBASE}/lib -L${LOCALBASE}/lib" \
--enable-shared
+.if defined(WITHOUT_ASMSSE3)
+CONFIGURE_ARGS+= --disable-asm
+.else
+BUILD_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
+.endif
+
CONFIGURE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
MAKE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
как его можно применить в моем случае с ручной сборкой измененного x264???
заранее спасибо за помощь...