wok-current annotate glibc/receipt @ rev 10034
glibc: be compatible with current stable kernel
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Fri May 20 03:21:36 2011 +0200 (2011-05-20) |
parents | fcc533f679e7 |
children | 1dcfc17824b0 |
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 { |
pankso@10031 | 56 cd $src |
pankso@10031 | 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 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 |
pankso@10031 | 74 # Glibc needs ld.so.conf in the install destdir. |
gokhlayeh@8189 | 75 mkdir -p $WOK/$PACKAGE/install/etc |
gokhlayeh@8189 | 76 touch $WOK/$PACKAGE/install/etc/ld.so.conf |
pankso@10031 | 77 mkdir ../glibc-build && cd ../glibc-build |
pankso@10031 | 78 |
pankso@10031 | 79 # Read the INSTALL file in glibc. Also Glibc dont build with -Os flag. |
pankso@10031 | 80 # --enale-kernel use latest SliTaz Kernel version. From Glibc INSTALL: |
pankso@10031 | 81 # "The higher the VERSION number is, the less compatibility code is |
pankso@10031 | 82 # added, and the faster the code gets." |
pankso@10031 | 83 unset CFLAGS CXXFLAGS |
pankso@10031 | 84 case "$ARCH" in |
pankso@10024 | 85 i386|i486) |
pankso@10031 | 86 echo "CFLAGS += -O2 -march=i486 -mtune=native" > configparms ;; |
pankso@10024 | 87 *) |
pankso@10031 | 88 echo "CFLAGS += -O2 -march=$ARCH -mtune=native" > configparms ;; |
pankso@10024 | 89 esac |
gokhlayeh@8189 | 90 { $src/configure \ |
pankso@1153 | 91 --disable-profile \ |
pankso@1153 | 92 --enable-add-ons \ |
pankso@10034 | 93 --enable-kernel=2.6.30 \ |
pankso@10024 | 94 --libexecdir=/usr/lib/glibc \ |
pankso@10024 | 95 $CONFIGURE_ARGS && |
pankso@10031 | 96 make && make install_root=$DESTDIR install |
gokhlayeh@8189 | 97 } || return 1 |
gokhlayeh@8189 | 98 |
pankso@10031 | 99 # If temporary toolchain was previously used, switch to regular toolchain. |
gokhlayeh@8189 | 100 [ -d /tools ] || return |
gokhlayeh@8189 | 101 mv /tools/bin/ld /tools/bin/ld-old |
gokhlayeh@8189 | 102 mv /tools/$(gcc -dumpmachine)/bin/ld /tools/$(gcc -dumpmachine)/bin/ld-old |
gokhlayeh@8189 | 103 mv /tools/bin/ld-new /tools/bin/ld |
gokhlayeh@8189 | 104 ln -s /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld |
gokhlayeh@8189 | 105 gcc -dumpspecs | sed -e 's@/tools@@g' \ |
gokhlayeh@8189 | 106 -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \ |
gokhlayeh@8189 | 107 -e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \ |
gokhlayeh@8189 | 108 `dirname $(gcc --print-libgcc-file-name)`/specs |
pankso@9 | 109 } |
pankso@9 | 110 |
pankso@9 | 111 # Rules to gen a SliTaz package suitable for Tazpkg. |
pankso@9 | 112 genpkg_rules() |
pankso@9 | 113 { |
pankso@2701 | 114 LOCALE="" |
pankso@9 | 115 mkdir -p $fs/var |
gokhlayeh@8189 | 116 |
gokhlayeh@8189 | 117 # Remove build directory. |
pankso@9713 | 118 rm -rf $WOK/$PACKAGE/source/$PACKAGE-build |
pankso@9713 | 119 rm -rf $WOK/$PACKAGE/$PACKAGE-build |
pankso@9 | 120 } |