wok-current annotate glibc/receipt @ rev 9713
glibc: make it built with cookutils
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sun May 08 23:21:20 2011 +0200 (2011-05-08) |
parents | d1768332cee0 |
children | c8fb53e181a8 |
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@9713 | 13 BUILD_DEPENDS="linux-api-headers" |
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. |
gokhlayeh@8189 | 30 case $ARCH in |
gokhlayeh@8189 | 31 i?86) echo "CFLAGS += -march=i486 -mtune=native" > configparms ;; |
gokhlayeh@8189 | 32 esac |
gokhlayeh@8189 | 33 |
gokhlayeh@8189 | 34 { $src/configure \ |
gokhlayeh@8189 | 35 --host=$BUILD_HOST \ |
gokhlayeh@8189 | 36 --build=$($src/scripts/config.guess) \ |
gokhlayeh@8189 | 37 --disable-profile --enable-add-ons \ |
gokhlayeh@8189 | 38 --enable-kernel=2.6.22.5 --with-headers=/tools/include \ |
gokhlayeh@8189 | 39 libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes && |
gokhlayeh@8189 | 40 make && |
gokhlayeh@8189 | 41 make install |
gokhlayeh@8189 | 42 } || return 1 |
gokhlayeh@8189 | 43 |
gokhlayeh@8189 | 44 # Link compiler to this new glibc. |
gokhlayeh@8189 | 45 SPECS=`dirname $($BUILD_HOST-gcc -print-libgcc-file-name)`/specs |
gokhlayeh@8189 | 46 $BUILD_HOST-gcc -dumpspecs | sed \ |
gokhlayeh@8189 | 47 -e 's@/lib\(64\)\?/ld@/tools&@g' \ |
gokhlayeh@8189 | 48 -e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" > $SPECS |
gokhlayeh@8189 | 49 unset SPECS |
gokhlayeh@8189 | 50 } |
pankso@9 | 51 |
pankso@9 | 52 # Rules to configure and make the package. |
pankso@9 | 53 compile_rules() |
pankso@9 | 54 { |
gokhlayeh@8189 | 55 # Some patch are needed to make things work correctly. |
gokhlayeh@8189 | 56 # Following patches and sed fixes comes from LFS development book : |
gokhlayeh@8189 | 57 # http://www.linuxfromscratch.org/lfs/view/development/chapter06/glibc.html |
gokhlayeh@8189 | 58 cd $src |
gokhlayeh@8189 | 59 DL=$(readelf -l /bin/sh | sed -n 's@.*interpret.*/tools\(.*\)]$@\1@p') |
gokhlayeh@8189 | 60 sed -i "s|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=$DL -o|" \ |
gokhlayeh@8189 | 61 scripts/test-installation.pl |
gokhlayeh@8189 | 62 unset DL |
gokhlayeh@8748 | 63 sed -i -e 's/"db1"/& \&\& $name ne "nss_test1"/' scripts/test-installation.pl |
gokhlayeh@8189 | 64 sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in |
gokhlayeh@8189 | 65 |
gokhlayeh@8189 | 66 # Fix a bug that prevents Glibc from building with GCC-4.5.2: |
slaxemulator@9700 | 67 patch -Np1 -i $stuff/glibc-2.13-gcc_fix-1.patch |
gokhlayeh@8748 | 68 |
gokhlayeh@8748 | 69 # Fix a stack imbalance that occurs under some conditions: |
gokhlayeh@8748 | 70 sed -i '195,213 s/PRIVATE_FUTEX/FUTEX_CLOCK_REALTIME/' \ |
gokhlayeh@8748 | 71 nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S \ |
gokhlayeh@8748 | 72 nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S |
gokhlayeh@8189 | 73 |
gokhlayeh@8189 | 74 mkdir ../glibc-build |
gokhlayeh@8189 | 75 cd ../glibc-build |
gokhlayeh@8189 | 76 |
pascal@1485 | 77 # Install in the build tree and then move all files |
pascal@1485 | 78 # to the source tree to keep $src and $_pkg for genpkg. |
gokhlayeh@8189 | 79 mkdir -p $WOK/$PACKAGE/install/etc |
gokhlayeh@8189 | 80 touch $WOK/$PACKAGE/install/etc/ld.so.conf |
gokhlayeh@8189 | 81 echo "CFLAGS += $CFLAGS" > configparms |
gokhlayeh@8189 | 82 { $src/configure \ |
pankso@1153 | 83 --disable-profile \ |
pankso@1153 | 84 --enable-add-ons \ |
gokhlayeh@8189 | 85 --enable-kernel=2.6.22.5 \ |
gokhlayeh@8189 | 86 --libexecdir=/usr/lib/glibc && |
gokhlayeh@8189 | 87 make && |
gokhlayeh@8189 | 88 make install_root=$DESTDIR install |
gokhlayeh@8189 | 89 } || return 1 |
gokhlayeh@8189 | 90 |
gokhlayeh@8189 | 91 # If temporary toolchain was previously used, switch to |
gokhlayeh@8189 | 92 # regular toolchain. |
gokhlayeh@8189 | 93 [ -d /tools ] || return |
gokhlayeh@8189 | 94 mv /tools/bin/ld /tools/bin/ld-old |
gokhlayeh@8189 | 95 mv /tools/$(gcc -dumpmachine)/bin/ld /tools/$(gcc -dumpmachine)/bin/ld-old |
gokhlayeh@8189 | 96 mv /tools/bin/ld-new /tools/bin/ld |
gokhlayeh@8189 | 97 ln -s /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld |
gokhlayeh@8189 | 98 gcc -dumpspecs | sed -e 's@/tools@@g' \ |
gokhlayeh@8189 | 99 -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \ |
gokhlayeh@8189 | 100 -e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \ |
gokhlayeh@8189 | 101 `dirname $(gcc --print-libgcc-file-name)`/specs |
pankso@9 | 102 } |
pankso@9 | 103 |
pankso@9 | 104 # Rules to gen a SliTaz package suitable for Tazpkg. |
pankso@9 | 105 genpkg_rules() |
pankso@9 | 106 { |
pankso@2701 | 107 LOCALE="" |
pankso@9 | 108 mkdir -p $fs/var |
gokhlayeh@8189 | 109 |
gokhlayeh@8189 | 110 # Remove build directory. |
pankso@9713 | 111 rm -rf $WOK/$PACKAGE/source/$PACKAGE-build |
pankso@9713 | 112 rm -rf $WOK/$PACKAGE/$PACKAGE-build |
pankso@9 | 113 } |