From a6cb093efcf80629d7b1385dc10503ccebac1a40 Mon Sep 17 00:00:00 2001 From: Stefan Fiedler Date: Fri, 2 Nov 2007 13:28:29 +0000 Subject: [PATCH] Stefan Fiedler: glibc,gcc: make checks only if ROCKCFG_DO_CHECK is true glibc: install all locales in chroot stages install some missing files gcc: re-add creation of /etc/profile/{gcc,gxx} [2007101320325711950] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@8777 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- package/base/gcc/gcc.conf | 43 ++++++++++++++++- package/base/glibc/glibc.conf | 90 ++++++++++++++++++++++------------- package/base/glibc/ld.so.conf | 1 + 3 files changed, 99 insertions(+), 35 deletions(-) diff --git a/package/base/gcc/gcc.conf b/package/base/gcc/gcc.conf index 35377985a..38c7e44b2 100644 --- a/package/base/gcc/gcc.conf +++ b/package/base/gcc/gcc.conf @@ -189,7 +189,7 @@ custmain () { eval make $makeopt - if [ $stagelevel -eq 4 ] ; then + if [ "$ROCKCFG_DO_CHECK" = 1 -a $stagelevel -ge 4 ] ; then make -k check || true ../gcc-*/contrib/test_summary fi @@ -304,6 +304,47 @@ custmain () { create_links gfortran fi + # Inject our default optimisation options so when the user calls + # gcc/g++ they match the ones used to precompile the headers ... + # Save the options affecting optimization only. + # + if [ $ROCKCFG_DEFAULT_CC = $xpkg ]; then + echo "Creating /etc/profile.d/gcc ..." + { + echo "export CFLAGS_SIZE=\"$(echo $( + eval echo \$GCC_WRAPPER_INSERT \$GCC_WRAPPER_APPEND \ + \$GCC${ver:0:1}_WRAPPER_INSERT \$GCC${ver:0:1}_WRAPPER_APPEND | \ + tr ' ' '\n' | sed -e 's/^-SIZE-/-/' -e '/^-O/ { p; d; }' -e '/^-mcpu=/ { p; d; }' \ + -e '/-march=/ { p; d; }' -e '/-mtune=/ { p; d; }' -e 'd' + ))\"" + echo "export CFLAGS_SPEED=\"$(echo $( + eval echo \$GCC_WRAPPER_INSERT \$GCC_WRAPPER_APPEND \ + \$GCC${ver:0:1}_WRAPPER_INSERT \$GCC${ver:0:1}_WRAPPER_APPEND | \ + tr ' ' '\n' | sed -e 's/^-SPEED-/-/' -e '/^-O/ { p; d; }' -e '/^-mcpu=/ { p; d; }' \ + -e '/-march=/ { p; d; }' -e '/-mtune=/ { p; d; }' -e 'd' + ))\"" + echo "export CFLAGS=\"\$CFLAGS_SIZE\"" + } > $root/etc/profile.d/gcc + fi + if [ $ROCKCFG_DEFAULT_CXX = $xpkg ]; then + echo "Creating /etc/profile.d/gxx ..." + { + echo "export CXXFLAGS_SIZE=\"$(echo $( + eval echo \$GCC_WRAPPER_INSERT \$GCC_WRAPPER_APPEND \ + \$GCC${ver:0:1}_WRAPPER_INSERT \$GCC${ver:0:1}_WRAPPER_APPEND | \ + tr ' ' '\n' | sed -e 's/^-SIZE-/-/' -e '/^-O/ { p; d; }' -e '/^-mcpu=/ { p; d; }' \ + -e '/-march=/ { p; d; }' -e '/-mtune=/ { p; d; }' -e 'd' + ))\"" + echo "export CXXFLAGS_SPEED=\"$(echo $( + eval echo \$GCC_WRAPPER_INSERT \$GCC_WRAPPER_APPEND \ + \$GCC${ver:0:1}_WRAPPER_INSERT \$GCC${ver:0:1}_WRAPPER_APPEND | \ + tr ' ' '\n' | sed -e 's/^-SPEED-/-/' -e '/^-O/ { p; d; }' -e '/^-mcpu=/ { p; d; }' \ + -e '/-march=/ { p; d; }' -e '/-mtune=/ { p; d; }' -e 'd' + ))\"" + echo "export CXXFLAGS=\"\$CFLAGS_SIZE\"" + } > $root/etc/profile.d/gxx + fi + # Create symlinks for runtime libraries so they can be found by # the dynamic loader and force rebuilding of the wrapper links # diff --git a/package/base/glibc/glibc.conf b/package/base/glibc/glibc.conf index 55c5c849c..e45f96f88 100644 --- a/package/base/glibc/glibc.conf +++ b/package/base/glibc/glibc.conf @@ -168,7 +168,7 @@ glibc_custmain () { eval $MAKE $makeopt fi - if [ $stagelevel -eq 3 ] ; then + if [ "$ROCKCFG_DO_CHECK" = 1 -a $stagelevel -ge 3 ] ; then make -k check 2>&1 | tee glibc-check-log grep Error glibc-check-log || true fi @@ -195,45 +195,67 @@ glibc_custmain () { cp -v ../glibc-*/nptl/sysdeps/unix/sysv/linux/$arch/bits/pthreadtypes.h \ ${CLFS}/$prefix/include/bits fi - fi - - if [[ $stagelevel -ge 1 && -z "$pkg_glibc_cross" && "$xpkg" != *-32bit ]] ; then -# make localedata/install-locales - - mkdir -pv ${CLFS}/usr/lib/locale - export I18NPATH=${PWD}/localedata - export GCONV_PATH=${PWD}/iconvdata - if [ $stagelevel -eq 1 ] ; then - LOCALEDEF=localedef-native - else - LOCALEDEF=localedef - fi - export LOCALEDEF="${PWD}/locale/$LOCALEDEF - --alias-file=../intl/locale.alias" - - cd ../glibc-*/localedata - ${LOCALEDEF} -i locales/de_DE -f charmaps/ISO-8859-1 --prefix=${CLFS} de_DE - ${LOCALEDEF} -i locales/de_DE@euro -f charmaps/ISO-8859-15 \ - --prefix=${CLFS} de_DE@euro - ${LOCALEDEF} -i locales/en_HK -f charmaps/ISO-8859-1 --prefix=${CLFS} en_HK - ${LOCALEDEF} -i locales/en_PH -f charmaps/ISO-8859-1 --prefix=${CLFS} en_PH - ${LOCALEDEF} -i locales/en_US -f charmaps/ISO-8859-1 --prefix=${CLFS} en_US - ${LOCALEDEF} -i locales/es_MX -f charmaps/ISO-8859-1 --prefix=${CLFS} es_MX - ${LOCALEDEF} -i locales/fa_IR -f charmaps/UTF-8 --prefix=${CLFS} fa_IR - ${LOCALEDEF} -i locales/fr_FR -f charmaps/ISO-8859-1 --prefix=${CLFS} fr_FR - ${LOCALEDEF} -i locales/fr_FR@euro -f charmaps/ISO-8859-15 \ - --prefix=${CLFS} fr_FR@euro - ${LOCALEDEF} -i locales/it_IT -f charmaps/ISO-8859-1 --prefix=${CLFS} it_IT - ${LOCALEDEF} -i locales/ja_JP -f charmaps/EUC-JP --prefix=${CLFS} ja_JP - unset I18NPATH GCONV_PATH LOCALEDEF + elif [[ "$xpkg" != *-32bit ]] ; then + ln -sf libbsd-compat.a $libdir/libbsd.a + + # copy crypt documentation + # + cp -v ../glibc-*/crypt/README.ufc-crypt $docdir/README.crypt + + # NSCD Init script and config + # + cp $confdir/nscd.conf $confdir/nsswitch.conf $sysconfdir/ + install_init nscd $confdir/nscd.init cp -av $confdir/{ld.so,nsswitch}.conf $sysconfdir/ cp -v --remove-destination $datadir/zoneinfo/Factory \ $sysconfdir/localtime - fi - if [[ "$xpkg" = *-32bit ]] ; then + # Create /lib/ld-lsb.so.1 symlink + # + if [ -f $root/$multilib/ld-linux-$arch_machine.so.2 ]; then + ln -vfs ld-linux-$arch_machine.so.2 $root/$multilib/ld-lsb.so.1 + elif [ -f $root/$multilib/ld-linux.so.2 ]; then + ln -vfs ld-linux.so.2 $root/$multilib/ld-lsb.so.1 + fi + + if [ $stagelevel -ge 3 && -z "$pkg_glibc_cross" ] ; then + # otherwise we risk the hosts /usr/lib/locale/locale-archive being overwritten + eval $MAKE localedata/install-locales + cp -v ../localedata/SUPPORTED $root/usr/share/i18n/ + fi + + # The commands below install a small set of locales for running test suites. + if [ $stagelevel -eq 1 && -z "$pkg_glibc_cross" ] ; then + mkdir -pv ${CLFS}/usr/lib/locale + export I18NPATH=${PWD}/localedata + export GCONV_PATH=${PWD}/iconvdata + if [ $stagelevel -eq 1 ] ; then + LOCALEDEF=localedef-native + else + LOCALEDEF=localedef + fi + export LOCALEDEF="${PWD}/locale/$LOCALEDEF + --alias-file=../intl/locale.alias" + + cd ../glibc-*/localedata + ${LOCALEDEF} -i locales/de_DE -f charmaps/ISO-8859-1 --prefix=${CLFS} de_DE + ${LOCALEDEF} -i locales/de_DE@euro -f charmaps/ISO-8859-15 \ + --prefix=${CLFS} de_DE@euro + ${LOCALEDEF} -i locales/en_HK -f charmaps/ISO-8859-1 --prefix=${CLFS} en_HK + ${LOCALEDEF} -i locales/en_PH -f charmaps/ISO-8859-1 --prefix=${CLFS} en_PH + ${LOCALEDEF} -i locales/en_US -f charmaps/ISO-8859-1 --prefix=${CLFS} en_US + ${LOCALEDEF} -i locales/es_MX -f charmaps/ISO-8859-1 --prefix=${CLFS} es_MX + ${LOCALEDEF} -i locales/fa_IR -f charmaps/UTF-8 --prefix=${CLFS} fa_IR + ${LOCALEDEF} -i locales/fr_FR -f charmaps/ISO-8859-1 --prefix=${CLFS} fr_FR + ${LOCALEDEF} -i locales/fr_FR@euro -f charmaps/ISO-8859-15 \ + --prefix=${CLFS} fr_FR@euro + ${LOCALEDEF} -i locales/it_IT -f charmaps/ISO-8859-1 --prefix=${CLFS} it_IT + ${LOCALEDEF} -i locales/ja_JP -f charmaps/EUC-JP --prefix=${CLFS} ja_JP + unset I18NPATH GCONV_PATH LOCALEDEF + fi + elif [[ "$xpkg" = *-32bit ]] ; then # -32bit and -64bit differ by these files, in addition to lib and lib64 dirs; # -32bit installs: # usr/bin/lddlibc4 diff --git a/package/base/glibc/ld.so.conf b/package/base/glibc/ld.so.conf index 9acb94a2b..240d5492a 100644 --- a/package/base/glibc/ld.so.conf +++ b/package/base/glibc/ld.so.conf @@ -24,6 +24,7 @@ # Example configuration of the GLibc dynamic linker. # +/usr/lib /usr/X11/lib /usr/local/lib /opt/*/lib