wok-next annotate glibc/receipt @ rev 10024
glibc: dont build with -Os and better use default CFLAGS also need --build and --host
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Thu May 19 18:19:46 2011 +0200 (2011-05-19) |
parents | c8fb53e181a8 |
children | fcc533f679e7 |
rev | line source |
---|---|
pankso@9 | 1 # SliTaz package receipt. |
pankso@9 | 2 |
pankso@9 | 3 PACKAGE="glibc" |
gokhlayeh@8748 | 4 VERSION="2.13" |
pankso@3475 | 5 CATEGORY="meta" |
pankso@9 | 6 SHORT_DESC="The GNU C libraries. This package is used to compile the libc." |
pankso@9 | 7 MAINTAINER="pankso@slitaz.org" |
pankso@9 | 8 TARBALL="$PACKAGE-$VERSION.tar.gz" |
pankso@9 | 9 WEB_SITE="http://www.gnu.org/software/libc/" |
pankso@9 | 10 WGET_URL="$GNU_MIRROR/$PACKAGE/$TARBALL" |
pankso@9713 | 11 |
pankso@9713 | 12 DEPENDS="glibc-base glibc-locale glibc-dev" |
pankso@9714 | 13 BUILD_DEPENDS="linux-api-headers gawk" |
pankso@9713 | 14 |
pankso@9713 | 15 # Genpkg order for tazwok. |
gokhlayeh@9253 | 16 COOK_OPT="genpkg=glibc-base:glibc-extra-samba:glib-locale:glibc-dev" |
gokhlayeh@8189 | 17 |
gokhlayeh@8189 | 18 # Rules to compile & install the temporary toolchain. |
gokhlayeh@8189 | 19 cook_tmp_toolchain() |
gokhlayeh@8189 | 20 { |
gokhlayeh@8189 | 21 cd $src |
gokhlayeh@8189 | 22 |
gokhlayeh@8189 | 23 # Fix a bug that prevents Glibc from building with GCC-4.5.2: |
slaxemulator@9700 | 24 patch -Np1 -i $stuff/glibc-2.13-gcc_fix-1.patch |
gokhlayeh@8189 | 25 |
gokhlayeh@8189 | 26 # Build in a separate directory. |
gokhlayeh@8189 | 27 mkdir ../glibc-build && cd ../glibc-build |
gokhlayeh@8189 | 28 |
gokhlayeh@8189 | 29 # glibc no longer support i386, so use -march=i486 for better compatibility. |
pankso@10024 | 30 # If i686 ??? |
gokhlayeh@8189 | 31 case $ARCH in |
gokhlayeh@8189 | 32 i?86) echo "CFLAGS += -march=i486 -mtune=native" > configparms ;; |
gokhlayeh@8189 | 33 esac |
gokhlayeh@8189 | 34 |
gokhlayeh@8189 | 35 { $src/configure \ |
gokhlayeh@8189 | 36 --host=$BUILD_HOST \ |
gokhlayeh@8189 | 37 --build=$($src/scripts/config.guess) \ |
gokhlayeh@8189 | 38 --disable-profile --enable-add-ons \ |
gokhlayeh@8189 | 39 --enable-kernel=2.6.22.5 --with-headers=/tools/include \ |
gokhlayeh@8189 | 40 libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes && |
gokhlayeh@8189 | 41 make && |
gokhlayeh@8189 | 42 make install |
gokhlayeh@8189 | 43 } || return 1 |
gokhlayeh@8189 | 44 |
gokhlayeh@8189 | 45 # Link compiler to this new glibc. |
gokhlayeh@8189 | 46 SPECS=`dirname $($BUILD_HOST-gcc -print-libgcc-file-name)`/specs |
gokhlayeh@8189 | 47 $BUILD_HOST-gcc -dumpspecs | sed \ |
gokhlayeh@8189 | 48 -e 's@/lib\(64\)\?/ld@/tools&@g' \ |
gokhlayeh@8189 | 49 -e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" > $SPECS |
gokhlayeh@8189 | 50 unset SPECS |
gokhlayeh@8189 | 51 } |
pankso@9 | 52 |
pankso@9 | 53 # Rules to configure and make the package. |
pankso@9 | 54 compile_rules() |
pankso@9 | 55 { |
gokhlayeh@8189 | 56 # Some patch are needed to make things work correctly. |
gokhlayeh@8189 | 57 # Following patches and sed fixes comes from LFS development book : |
gokhlayeh@8189 | 58 # http://www.linuxfromscratch.org/lfs/view/development/chapter06/glibc.html |
gokhlayeh@8189 | 59 cd $src |
gokhlayeh@8189 | 60 DL=$(readelf -l /bin/sh | sed -n 's@.*interpret.*/tools\(.*\)]$@\1@p') |
gokhlayeh@8189 | 61 sed -i "s|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=$DL -o|" \ |
gokhlayeh@8189 | 62 scripts/test-installation.pl |
gokhlayeh@8189 | 63 unset DL |
gokhlayeh@8748 | 64 sed -i -e 's/"db1"/& \&\& $name ne "nss_test1"/' scripts/test-installation.pl |
gokhlayeh@8189 | 65 sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in |
gokhlayeh@8189 | 66 |
gokhlayeh@8189 | 67 # Fix a bug that prevents Glibc from building with GCC-4.5.2: |
slaxemulator@9700 | 68 patch -Np1 -i $stuff/glibc-2.13-gcc_fix-1.patch |
gokhlayeh@8748 | 69 |
gokhlayeh@8748 | 70 # Fix a stack imbalance that occurs under some conditions: |
gokhlayeh@8748 | 71 sed -i '195,213 s/PRIVATE_FUTEX/FUTEX_CLOCK_REALTIME/' \ |
gokhlayeh@8748 | 72 nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S \ |
gokhlayeh@8748 | 73 nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S |
gokhlayeh@8189 | 74 |
gokhlayeh@8189 | 75 mkdir ../glibc-build |
gokhlayeh@8189 | 76 cd ../glibc-build |
gokhlayeh@8189 | 77 |
pascal@1485 | 78 # Install in the build tree and then move all files |
pascal@1485 | 79 # to the source tree to keep $src and $_pkg for genpkg. |
gokhlayeh@8189 | 80 mkdir -p $WOK/$PACKAGE/install/etc |
gokhlayeh@8189 | 81 touch $WOK/$PACKAGE/install/etc/ld.so.conf |
pankso@10024 | 82 # Use -march=i486 for better compatibility. Also Glibc dont build with -Os. |
pankso@10024 | 83 unset CFLAGS |
pankso@10024 | 84 case $ARCH in |
pankso@10024 | 85 i386|i486) |
pankso@10024 | 86 echo "CFLAGS += -O2 -march=i486 -pipe -fomit-frame-pointer" > \ |
pankso@10024 | 87 configparms ;; |
pankso@10024 | 88 *) |
pankso@10024 | 89 echo "CFLAGS += -O2 -march=$ARCH -pipe -fomit-frame-pointer" > \ |
pankso@10024 | 90 configparms ;; |
pankso@10024 | 91 esac |
gokhlayeh@8189 | 92 { $src/configure \ |
pankso@1153 | 93 --disable-profile \ |
pankso@1153 | 94 --enable-add-ons \ |
gokhlayeh@8189 | 95 --enable-kernel=2.6.22.5 \ |
pankso@10024 | 96 --libexecdir=/usr/lib/glibc \ |
pankso@10024 | 97 $CONFIGURE_ARGS && |
gokhlayeh@8189 | 98 make && |
gokhlayeh@8189 | 99 make install_root=$DESTDIR install |
gokhlayeh@8189 | 100 } || return 1 |
gokhlayeh@8189 | 101 |
gokhlayeh@8189 | 102 # If temporary toolchain was previously used, switch to |
gokhlayeh@8189 | 103 # regular toolchain. |
gokhlayeh@8189 | 104 [ -d /tools ] || return |
gokhlayeh@8189 | 105 mv /tools/bin/ld /tools/bin/ld-old |
gokhlayeh@8189 | 106 mv /tools/$(gcc -dumpmachine)/bin/ld /tools/$(gcc -dumpmachine)/bin/ld-old |
gokhlayeh@8189 | 107 mv /tools/bin/ld-new /tools/bin/ld |
gokhlayeh@8189 | 108 ln -s /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld |
gokhlayeh@8189 | 109 gcc -dumpspecs | sed -e 's@/tools@@g' \ |
gokhlayeh@8189 | 110 -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \ |
gokhlayeh@8189 | 111 -e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \ |
gokhlayeh@8189 | 112 `dirname $(gcc --print-libgcc-file-name)`/specs |
pankso@9 | 113 } |
pankso@9 | 114 |
pankso@9 | 115 # Rules to gen a SliTaz package suitable for Tazpkg. |
pankso@9 | 116 genpkg_rules() |
pankso@9 | 117 { |
pankso@2701 | 118 LOCALE="" |
pankso@9 | 119 mkdir -p $fs/var |
gokhlayeh@8189 | 120 |
gokhlayeh@8189 | 121 # Remove build directory. |
pankso@9713 | 122 rm -rf $WOK/$PACKAGE/source/$PACKAGE-build |
pankso@9713 | 123 rm -rf $WOK/$PACKAGE/$PACKAGE-build |
pankso@9 | 124 } |