LinuxForum.Fans
Тема

Slackware 14.0 - пересборка glibc

Автор: Wehrmacht_Rover 27 сообщений 8843 просмотров
#281732

Ошибка при сборке glibc SlackBuild'ом:

text
..
patching file stdlib/tst-strtod-overflow.c
Using Plan A...
Hunk #1 succeeded at 1.
Hmm...  Ignoring the trailing garbage.
done
sed \
        -e 's|AWK=[^}]*|AWK=nawk|g' \
        -e 's|TZDIR=[^}]*|TZDIR=/usr/local/etc/zoneinfo|' \
        -e 's|\(TZVERSION\)=.*|\1=tz2012f|' \
        <tzselect.ksh >tzselect
chmod +x tzselect
echo >version.h \
      'static char const TZVERSION[]="tz2012f";'
cc -DTZDIR=\"/usr/local/etc/zoneinfo\"    -c -o zic.o zic.c
cc -DTZDIR=\"/usr/local/etc/zoneinfo\"    -c -o localtime.o localtime.c
cc -DTZDIR=\"/usr/local/etc/zoneinfo\"    -c -o asctime.o asctime.c
cc -DTZDIR=\"/usr/local/etc/zoneinfo\"    -c -o scheck.o scheck.c
cc -DTZDIR=\"/usr/local/etc/zoneinfo\"    -c -o ialloc.o ialloc.c
make: *** Нет правила для сборки цели `yearistype.sh', требуемой для `yearistype'.  Останов.
BUILDING DAS NPTL GLIBC
configure: WARNING: you should use --build, --host, --target
checking build system type... i486-slackware-linux-gnu
checking host system type... i486-slackware-linux-gnu
checking for i486-slackware-linux-gcc... i486-slackware-linux-gcc
checking for suffix of object files... configure: error: in `/glibc-tmp-57f1d4f799a3026b29cb79dc481d8612/glibc-2.15/build-glibc-2.15':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details
make: *** Не заданы цели и не найден make-файл.  Останов.
make: *** Не заданы цели и не найден make-файл.  Останов.

изменения в SlackBuild:

text
i?86) export ARCH=pentium4 ;;
...
pentium4)
    OPTIMIZ="-O2 -march=native -pipe -fomit-frame-pointer -msse -msse2 -mmmx -fno-exceptions -fforce-mem -fforce-addr"
    LIBDIRSUFFIX=""
    ;;
...
NUMJOBS=${NUMJOBS:--j2}
...
--enable-kernel=3.2.29 \
--enable-omitfp \

Что это может быть? Как Патрик тогда собирал?
Зачем нужен -enable-kernel= и какое должно быть значение? Я так понимаю, что версия установленного ядра?

#281736

Параметры сборки glibc вообще лучше не трогать, а зачем заменять -О3 на -О2 и вовсе непонятно.
Своего ядра вестимо
Я пересобирал glibc от 14 на 13.37 при помощи gcc тоже от 13.37, но ничего не менял в слакбилде и никаких фейлов не было.
ЗЫ Добавки sse и mmx в нем ничего не дают, проверено, даже где то хуже становится.

#281740
"SergMarkov" написал:
а зачем заменять -О3 на -О2 и вовсе непонятно.

А зачем тогда во всех остальных прогах -О2 стоит? Я так понимаю не для падения стабильности.
Читал, что если сделать слишком суровую оптимизацию, проц с маленьким кэшем будет захлёбываться и упадёт производительность, и вообще прога может и не собраться.
Странно почему sse и mmx ничего не дают, парадокс. А может они и так там включены по дефолту?

#281748

Ну так если патрик ставит -О3 значит в стабильности уверен. Для маленьких кэшей есть -Os
Нет, i686 не включает, не включал по крайней мере, ни sse ни mmx
Да и с чего они будут давать прирост ? Это по сути мультимедийные феньки. В glibc точно никакого прироста нет, из собственной практики, в gtk они вообще дают регрессию
Единственно что в слакбилде может стоит изменить это
--disable-profile
А вообще вот дока
http://www.gnu.org/software/libc/manual/html_node/Configuring-and-compiling.html

#281916

"Wehrmacht_Rover" написал:
--enable-kernel=3.2.29 \
Смысл параметра смотрели в документации?

--enable-kernel=VERSION compile for compatibility with kernel not older than VERSION
Это действительно то, чего хотели добиться?

"Wehrmacht_Rover" написал:
Как Патрик тогда собирал?
Полагаю, как обычно. Можно например так (проверял на Slackware64-14.0):
text

# mkdir ~/bld; cd ~/bld
# wget -r -nH --cut-durs=5 ftp://ftp.osuosl.org/pub/slackware/slackware64-14.0/source/l/glibc
# cd glibc
# chmod a+x *Build
# ./*Build
...
glibc packages built in /glibc-tmp-fd1e07aeac390aeafd1cdfb450b10354!

# ls /glibc-tmp-*/*t?z | cut -d/ -f3 glibc-2.15-x86_64-7.txz glibc-debug-2.15-x86_64-7.txz glibc-i18n-2.15-x86_64-7.txz glibc-profile-2.15-x86_64-7.txz glibc-solibs-2.15-x86_64-7.txz glibc-zoneinfo-2012f_2012f-noarch-7.txz

"Wehrmacht_Rover" написал:
make: *** Нет правила для сборки цели `yearistype.sh', требуемой для `yearistype'. Останов.
Использовать неанглийскую локаль для сборки чревато неприятностями, если в процессе используется парсинг вывода утилит. Не про этот конкретный случай, но подобный момент, тем не менее, заслуживает упоминания.
text

# find /glibc-tmp-* -name yearistype\* | cut -d/ -f3-
glibc-2.15/timezone/yearistype

yearistype.sh действительно отсутствует, но в моём случае сборке это не мешало. Каталог glibc-2.15/timezone/yearistype на месте, как и положено.

#282016

Если включить i686 то glibc не собирается, как и показано в моём листинге. Но почему? Как собирать если я хочу поставить модель проца -march=native (pentium4 на самом деле)? Так и оставить i486?

"bormant" написал:
yearistype.sh действительно отсутствует, но в моём случае сборке это не мешало. Каталог glibc-2.15/timezone/yearistype на месте, как и положено.

То же на месте:

text
$find /glibc-tmp-* -name yearistype\* | cut -d/ -f3-

glibc-2.15/timezone/yearistype glibc-2.15/timezone/yearistype glibc-2.15/timezone/yearistype glibc-2.15/timezone/yearistype glibc-2.15/timezone/yearistype glibc-2.15/timezone/yearistype glibc-2.15/timezone/yearistype

Чего это их так много?

#282017

OPTIMIZ="-O3 -march=i686"
это от патрика и все собирается

Да и, не знаю как насчет прироста в glibc с native, но gtk с native дает регрессию по тестам. Не все так однозначно, как хочется

#282027
"SergMarkov" написал:
OPTIMIZ="-O3 -march=i686"это от патрика и все собирается

От Патрика i486 собирается. Как поставил i686, так и перестало собираться.
А если оставить i486 но поставить оптимизацию под свой проц, нормально будет?

#282028

что ж за проц такой ? не знаю
Да и вообще, это уже из своей практики, максимум дает пересборка ядра с патчами bfs и bfq с выкидыванием из него всего лишнего и пересборка cairo с оптимизационными флагами, и то выигрыш в сумме где то 10 % Пересборка glibc, у меня по крайней мере, не дала практически ничего. Не фапай на эти флаги :-), хрень все это, подбор оптимальных прог с их конфигурацией под себя, и выбор нормального wm дает на порядок больше, чем возня с этими флагами.

#282031

да это сейчас во всех процах есть старше 486sx

#282032
SergMarkov написал:
да это сейчас во всех процах есть старше 486sx

--without-fp - это эмуляция Floating Point для процов, в которых её нет? Как-то всё запутано...

#282033

Я вот только не пойму зачем это вообще надо, гцц на компе с процем 486sx со стандартными для такого компа 2 Мб памяти просто тупо не запустится :-)

#282038

на что ? :-) этот флаг нужен для процев ниже 486sx

#282039
"SergMarkov" написал:
на что ? :-) этот флаг нужен для процев ниже 486sx

Блин, можно нормально ответить было, надо этот флаг или нет? Нифига мозги пудрить, вот этого непонимаю :|

#282041

Ежж, ну что тебе непонятно ? Этот флаг для компов без хардварного FPU и без его эмуляции в OS

#282282

Не собирается оно нифига с моими флагами! Уже и $ARCH=i486 поставил и добавил всего по минимуму! Педальный конь какой-то ]:->
Зато с умолчальными настройками собирается! А нафиг оно надо, если получится то же самое что уже стоит в системе.

text
-O3 -march=native -pipe -fomit-frame-pointer -fno-exceptions -fforce-mem -fforce-addr

config.log

Показать
text
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by GNU C Library configure (see version.h), which was generated by GNU Autoconf 2.68. Invocation command line was

$ ../configure --prefix=/usr --libdir=/usr/lib --enable-kernel=3.2.29 --with-headers=/usr/include --enable-add-ons=libidn,nptl --enable-profile --infodir=/usr/info --mandir=/usr/man --with-tls --with-__thread --without-cvs i486-slackware-linux

## --------- ## ## Platform. ## ## --------- ##

hostname = darkstar uname -m = i686 uname -r = 3.2.29-smp uname -s = Linux uname -v = #2 Wed Oct 3 23:15:33 EEST 2012

/usr/bin/uname -p = Intel(R) Celeron(R) CPU 1.70GHz /bin/uname -X = unknown

/bin/arch = i686 /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown

PATH: /usr/local/sbin PATH: /usr/local/bin PATH: /sbin PATH: /usr/sbin PATH: /bin PATH: /usr/bin

## ----------- ## ## Core tests. ## ## ----------- ##

configure:2367: checking build system type configure:2381: result: i486-slackware-linux-gnu configure:2401: checking host system type configure:2414: result: i486-slackware-linux-gnu configure:2443: checking for i486-slackware-linux-gcc configure:2459: found /usr/bin/i486-slackware-linux-gcc configure:2470: result: i486-slackware-linux-gcc configure:2739: checking for C compiler version configure:2748: i486-slackware-linux-gcc --version >&5 i486-slackware-linux-gcc (GCC) 4.7.1 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2759: $? = 0 configure:2748: i486-slackware-linux-gcc -v >&5 Reading specs from /usr/lib/gcc/i486-slackware-linux/4.7.1/specs COLLECT_GCC=i486-slackware-linux-gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i486-slackware-linux/4.7.1/lto-wrapper Target: i486-slackware-linux Configured with: ../gcc-4.7.1/configure --prefix=/usr --libdir=/usr/lib --mandir=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap --enable-languages=ada,c,c++,fortran,go,java,lto,objc --enable-threads=posix --enable-checking=release --enable-objc-gc --with-system-zlib --with-python-dir=/lib/python2.7/site-packages --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --enable-lto --with-gnu-ld --verbose --enable-java-home --with-java-home=/usr/lib/jvm/jre --with-jvm-root-dir=/usr/lib/jvm --with-jvm-jar-dir=/usr/lib/jvm/jvm-exports --with-arch-directory=i386 --with-antlr-jar=/root/slackware-current/source/d/gcc/antlr-runtime-3.4.jar --enable-java-awt=gtk --disable-gtktest --with-arch=i486 --target=i486-slackware-linux --build=i486-slackware-linux --host=i486-slackware-linux Thread model: posix gcc version 4.7.1 (GCC) configure:2759: $? = 0 configure:2748: i486-slackware-linux-gcc -V >&5 i486-slackware-linux-gcc: error: unrecognized command line option '-V' i486-slackware-linux-gcc: fatal error: no input files compilation terminated. configure:2759: $? = 1 configure:2748: i486-slackware-linux-gcc -qversion >&5 i486-slackware-linux-gcc: error: unrecognized command line option '-qversion' i486-slackware-linux-gcc: fatal error: no input files compilation terminated. configure:2759: $? = 1 configure:2764: checking for suffix of object files configure:2786: i486-slackware-linux-gcc -c -g -O3 -march=native -pipe -fomit-frame-pointer -fno-exceptions -fforce-mem -fforce-addr conftest.c >&5 i486-slackware-linux-gcc: error: unrecognized command line option '-fforce-mem' configure:2790: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "GNU C Library" | #define PACKAGE_TARNAME "glibc" | #define PACKAGE_VERSION "(see version.h)" | #define PACKAGE_STRING "GNU C Library (see version.h)" | #define PACKAGE_BUGREPORT "http://sourceware.org/bugzilla/" | #define PACKAGE_URL "http://www.gnu.org/software/glibc/" | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:2804: error: in `/glibc-tmp-59542e95f6af2a896edadfffe20ca823/glibc-2.15/build-glibc-2.15': configure:2806: error: cannot compute suffix of object files: cannot compile See `config.log' for more details

## ---------------- ## ## Cache variables. ## ## ---------------- ##

ac_cv_build=i486-slackware-linux-gnu ac_cv_env_CCC_set= ac_cv_env_CCC_value= ac_cv_env_CC_set= ac_cv_env_CC_value= ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value='-g -O3 -march=native -pipe -fomit-frame-pointer -fno-exceptions -fforce-mem -fforce-addr' ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_CXXFLAGS_set= ac_cv_env_CXXFLAGS_value= ac_cv_env_CXX_set= ac_cv_env_CXX_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value= ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_build_alias_set=set ac_cv_env_build_alias_value=i486-slackware-linux ac_cv_env_host_alias_set=set ac_cv_env_host_alias_value=i486-slackware-linux ac_cv_env_target_alias_set=set ac_cv_env_target_alias_value=i486-slackware-linux ac_cv_host=i486-slackware-linux-gnu ac_cv_prog_CC=i486-slackware-linux-gcc

## ----------------- ## ## Output variables. ## ## ----------------- ##

AR='' AS='' ASFLAGS_config='' AUTOCONF='' AWK='' BASH_SHELL='' BISON='' BUILD_CC='' CC='i486-slackware-linux-gcc' CFLAGS='-g -O3 -march=native -pipe -fomit-frame-pointer -fno-exceptions -fforce-mem -fforce-addr' CPP='' CPPFLAGS='' CXX='' CXXFLAGS='' CXX_SYSINCLUDES='' DEFINES='' DEFS='' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='' GREP='' INSTALL_DATA='' INSTALL_INFO='' INSTALL_PROGRAM='' INSTALL_SCRIPT='' KSH='' LD='' LDFLAGS='' LIBGD='' LIBOBJS='' LIBS='' LN_S='' LTLIBOBJS='' MAKE='' MAKEINFO='' MIG='' MSGFMT='' OBJCOPY='' OBJDUMP='' OBJEXT='' PACKAGE_BUGREPORT='http://sourceware.org/bugzilla/' PACKAGE_NAME='GNU C Library' PACKAGE_STRING='GNU C Library (see version.h)' PACKAGE_TARNAME='glibc' PACKAGE_URL='http://www.gnu.org/software/glibc/' PACKAGE_VERSION='(see version.h)' PATH_SEPARATOR=':' PERL='' PWD_P='' READELF='' RELEASE='' SED='' SHELL='/bin/sh' SYSINCLUDES='' VERSION='' VERSIONING='' ac_ct_CC='' ac_ct_CXX='' add_on_subdirs='' add_ons='' all_warnings='' base_machine='' bindir='${exec_prefix}/bin' bindnow='' bounded='' build='i486-slackware-linux-gnu' build_alias='i486-slackware-linux' build_cpu='i486' build_os='linux-gnu' build_vendor='slackware' cross_compiling='no' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' dvidir='${docdir}' elf='' enable_check_abi='' exceptions='' exec_prefix='NONE' fno_unit_at_a_time='' force_install='' gnu89_inline='' have_libaudit='' have_libcap='' have_selinux='' host='i486-slackware-linux-gnu' host_alias='i486-slackware-linux' host_cpu='i486' host_os='linux-gnu' host_vendor='slackware' htmldir='${docdir}' includedir='${prefix}/include' infodir='/usr/info' ldd_rewrite_script='' libc_cv_Bgroup='' libc_cv_as_i686='' libc_cv_as_needed='' libc_cv_cc_avx='' libc_cv_cc_fma4='' libc_cv_cc_novzeroupper='' libc_cv_cc_sse4='' libc_cv_cc_submachine='' libc_cv_cc_with_libunwind='' libc_cv_cpp_asm_debuginfo='' libc_cv_forced_unwind='' libc_cv_fpie='' libc_cv_gcc_static_libgcc='' libc_cv_gcc_unwind_find_fde='' libc_cv_hashstyle='' libc_cv_have_bash2='' libc_cv_have_initfini='' libc_cv_have_ksh='' libc_cv_libgcc_s_suffix='' libc_cv_localedir='' libc_cv_nss_crypt='' libc_cv_output_format='' libc_cv_pic_default='' libc_cv_rootsbindir='' libc_cv_slibdir='' libc_cv_ssp='' libc_cv_sysconfdir='' libc_cv_z_combreloc='' libc_cv_z_execstack='' libdir='/usr/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mach_interface_list='' mandir='/usr/man' multi_arch='' nopic_initfini='' old_glibc_headers='' oldest_abi='' oldincludedir='/usr/include' omitfp='' pdfdir='${docdir}' prefix='/usr' profile='' program_transform_name='s,x,x,' psdir='${docdir}' sbindir='${exec_prefix}/sbin' shared='' sharedstatedir='${prefix}/com' sizeof_long_double='' static='' static_nss='' subdirs=' ' submachine='' sysconfdir='${prefix}/etc' sysdeps_add_ons='' sysnames='' target_alias='i486-slackware-linux' use_default_link='' use_ldconfig='' with_fp='' xcoff=''

## ----------- ## ## confdefs.h. ## ## ----------- ##

/* confdefs.h */ #define PACKAGE_NAME "GNU C Library" #define PACKAGE_TARNAME "glibc" #define PACKAGE_VERSION "(see version.h)" #define PACKAGE_STRING "GNU C Library (see version.h)" #define PACKAGE_BUGREPORT "http://sourceware.org/bugzilla/" #define PACKAGE_URL "http://www.gnu.org/software/glibc/"

configure: exit 1

Слакбилд писал извращенец:

# I'll break this out as an option for fun :-)

Наверное, это серьёзная прога, не так ли? :-/
Как обычно: что делать?

#282285

"Wehrmacht_Rover" написал:
configure:2764: checking for suffix of object files
configure:2786: i486-slackware-linux-gcc -c -g -O3 -march=native -pipe -fomit-frame-pointer -fno-exceptions -fforce-mem -fforce-addr conftest.c >&5
i486-slackware-linux-gcc: error: unrecognized command line option '-fforce-mem'
"Wehrmacht_Rover" написал:
Как обычно: что делать?
Читать доку на gcc?
#282288

Сперва задай самый насущный вопрос - "зачем оно тебе вообще надо ?" :-) Да, glibc одна из основных либ, но танцы с флагами вокруг нее практически ничего не дают, вот таковой вот парадокс.
Основное это выбор и оптимизация (конфигурация и флаги) самих прог, пересборка ядра, возможно пересборка cairo и qt. Остальное в лучшем случае ничего не дает, в худшем вообще будет регрессия.

Войдите или зарегистрируйтесь, чтобы ответить.