Страница 1 из 1
сборка программы из исходников
Добавлено: 2010-07-22 10:18:01
schmel
есть исходные тексты одной утилиты (в портах ее нет)
при сборке пишет:
Код: Выделить всё
#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???
Re: сборка программы из исходников
Добавлено: 2010-07-22 14:19:44
Mox
если она у вас установлена, то configure скорей всего просто надо указать где она лежит.
посмотрите на вывод
и поищите там что-нибудь подобное
Re: сборка программы из исходников
Добавлено: 2010-07-22 14:34:33
schmel
после установки 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% уверен
Re: сборка программы из исходников
Добавлено: 2010-07-22 15:13:38
Mox
как, кстати, зовется программа?
Re: сборка программы из исходников
Добавлено: 2010-07-22 16:16:23
schmel
это модифицированные исходники одной проги. точнее /usr/ports/multimedia/x264
в портах (как выяснил из рассылки) тоже не поддерживаются новые инструкции CPU.
через порты точно не пойдет, так как в исходниках уже много изменений...
мне всего лишь нужно собрать с новым binutils...
Re: сборка программы из исходников
Добавлено: 2010-07-22 16:41:49
Mox
schmel писал(а):это модифицированные исходники одной проги. точнее /usr/ports/multimedia/x264
в портах (как выяснил из рассылки) тоже не поддерживаются новые инструкции CPU.
через порты точно не пойдет, так как в исходниках уже много изменений...
мне всего лишь нужно собрать с новым binutils...
посмотрите как это в портах сделано
Re: сборка программы из исходников
Добавлено: 2010-07-22 18:52:55
schmel
хм...если делать так
make fetch
make extract
заменить моими исходниками
make config
make install
то вываливается о ошибками несовместимости...
наверное всетаки проще обновить binutils, о чем собственно я спрашивал в первом топике...
вот выдержки из 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
Re: сборка программы из исходников
Добавлено: 2010-07-23 13:21:19
schmel
ладно, сам нашел...
если кому интересно, то после установки binutils из портов в папке /usr/local - появляется папка i386-portbld-freebsd8.0
оттуда с заменой копируем полученные файлы в папку /usr/bin
на случай можно сделать резервную копию...
все, тему можно закрывать..
Re: сборка программы из исходников
Добавлено: 2010-07-23 16:36:08
schmel
поторопился с выводами
так, если ставить из портов, то в папке /usr/local/i386-portbld-freebsd8.0 появляются папки bin и ldscripts
как дальше быть? допустим я заменил /usr/bin из папки /bin
ldscripts закунул в папку /usr/libdata
как правильно собрать программу, используя версию binutils из /usr/local/i386-portbld-freebsd8.0???
Re: сборка программы из исходников
Добавлено: 2010-07-25 18:47:58
schmel
нашел, старенький патчик для портовой версии 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???
заранее спасибо за помощь...