|
|
# --- ROCK-COPYRIGHT-NOTE-BEGIN --- # # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # Please add additional copyright information _after_ the line containing # the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by # the ./scripts/Create-CopyPatch script. Do not edit this copyright text! # # ROCK Linux: rock-src/package/base/glibc/glibc.conf # ROCK Linux is Copyright (C) 1998 - 2004 Clifford Wolf # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. A copy of the GNU General Public # License can be found at Documentation/COPYING. # # Many people helped and are helping developing ROCK Linux. Please # have a look at http://www.rocklinux.org/ and the Documentation/TEAM # file for details. # # --- ROCK-COPYRIGHT-NOTE-END ---
pkg_glibc_version=${xpkg#glibc} pkg_glibc_target=${arch_target} pkg_glibc_cross=""
case "$xpkg" in glibc??-cross-*) pkg_glibc_cross="${xpkg#glibc*-cross-}" pkg_glibc_version=${pkg_glibc_version%-cross-*} pkg_glibc_target="${pkg_glibc_cross}-unknown-linux-gnu" echo_status "Preparing to build a cross-glibc package for $pkg_glibc_cross." ;; glibc??) ;; *) echo_error "Not supported $pkg package name: $xpkg" exit 1 ;; esac
#--------------------------------- if [ $pkg_glibc_version = 22 ]; then
glibc_custmain() { cat > configparms <<- EOF prefix = /usr slibdir = /lib sysconfdir = /etc install_root = $root CC = $CC BUILD_CC = $BUILDCC AR = $AR RANLIB = $RANLIB EOF
# Disable glibc internal debuging but build debuging and profile # code so we can use this glibc to debug other programs. CFLAGS="$CFLAGS -g -DNDEBUG=1" ./configure --with-gnu-binutils \ --enable-add-ons --enable-profile \ --with-headers=$root/usr/include/linux \ --with-gd=/usr \ --with-gd-lib=/usr/lib \ --with-gd-include=/usr/include \ --build=${arch_build} ${arch_target}
echo $BUILDCC elf/sln.c -o elf/dyn_sln $BUILDCC elf/sln.c -o elf/dyn_sln eval $MAKE symbolic-link-prog=elf/dyn_sln all install # Misc. stuff # if [ "$crossnative" = native ] ; then eval $MAKE install-locales -C localedata mkdir -p $root/usr/share/man/man3 if [ -f /usr/bin/perl ] ; then eval $MAKE -C linuxthreads/man \ MANDIR=$root/usr/share/man/man3 all install fi fi ln -sf libbsd-compat.a $root/usr/lib/libbsd.a # copy linuxthreads and crypt documentation # cp linuxthreads/ChangeLog $docdir/ChangeLog.threads cp linuxthreads/Changes $docdir/Changes.threads cp linuxthreads/README $docdir/README.threads cp linuxthreads/FAQ.html $docdir/FAQ-threads.html cp -r linuxthreads/Examples $docdir/examples.threads cp crypt/README.ufc-crypt $docdir/README.crypt # NSCD Init script and config # cp $confdir/nscd.conf $confdir/nsswitch.conf $root/etc/ install_init nscd $confdir/nscd.init
# No absolute path in libc.so if cross-compileing # if [ $crossnative = cross ] ; then libcso=$root/usr/lib/libc.so for x in 1 2 3 4 5 ; do sed -i 's,/[a-z/]*/,,' $libcso done fi
# Install ld.so.conf # { echo "/usr/lib" echo "/usr/X11/lib" echo "/usr/local/lib" echo "/opt/*/lib" } > $root/etc/ld.so.conf if [ -f $root/usr/sbin/ldconfig ] ; then ln -sf ../usr/sbin/ldconfig $root/sbin/ fi }
fi #---------------------------------
#--------------------------------- if [ $pkg_glibc_version = 23 ]; then
glibc_custmain() { # check whether profiling is enabled if [ $ROCKCFG_PKG_GLIBC_ENABLE_PROFILE = 1 ] ; then G_PROFILE=--enable-profile else G_PROFILE=--disable-profile fi
# Let's use an 'objdir' directory for building glibc mkdir -p objdir; cd objdir
# Disable glibc internal debuging but build debuging and profile # code so we can use this glibc to debug other programs. CFLAGS="$CFLAGS -g -DNDEBUG=1" ../configure --prefix=$root/$prefix \ --with-gnu-binutils --enable-add-ons"$ADDONS" $G_PROFILE \ --with-headers=$root/$prefix/include --with-gd=/$prefix \ --with-gd-lib=/$prefix/lib --with-gd-include=/$prefix/include \ --build=${arch_build} --host=${arch_target}
eval $MAKE prefix=/usr slibdir=/lib sysconfdir=/etc all if [ -z "$pkg_glibc_cross" ] then eval $MAKE prefix=/$prefix slibdir=/lib \ sysconfdir=/etc install_root=$root install else eval $MAKE prefix=/$prefix install_root=$root install fi ln -sf libbsd-compat.a $root/$prefix/lib/libbsd.a # Misc. stuff # if [ $stagelevel -gt 1 -a -z "$pkg_glibc_cross" ] then # install locales and linuxthread manpages # eval $MAKE localedata/install-locales cp ../localedata/SUPPORTED $root/usr/share/i18n/ mkdir -p $root/usr/share/man/man3 if [ -f /usr/bin/perl ] ; then eval $MAKE -C ../linuxthreads/man \ MANDIR=$root/usr/share/man/man3 all install fi # copy linuxthreads and crypt documentation # cp ../linuxthreads/ChangeLog $docdir/ChangeLog.threads cp ../linuxthreads/Changes $docdir/Changes.threads cp ../linuxthreads/README $docdir/README.threads cp ../linuxthreads/FAQ.html $docdir/FAQ-threads.html cp -r ../linuxthreads/Examples $docdir/examples.threads cp ../crypt/README.ufc-crypt $docdir/README.crypt # NSCD Init script and config # cp $confdir/nscd.conf $confdir/nsswitch.conf $root/etc/ install_init nscd $confdir/nscd.init fi
# No wrong absolute path in libc.so # if [ $stagelevel -le 1 ] then libcso=$root/$prefix/lib/libc.so sed 's,/[^ ]*/,,g' < $libcso > $libcso.new mv $libcso.new $libcso fi
# Install ld.so.conf # if [ ! -f $root/etc/ld.so.conf -a -z "$pkg_glibc_cross" ] then { echo "/usr/lib" ; echo "/usr/X11/lib" echo "/usr/local/lib" ; echo "/opt/*/lib" } > $root/etc/ld.so.conf fi
# Move 'ldconfig' and 'sln' binaries # if [ -z "$pkg_glibc_cross" ] then if [ -f "$root/usr/sbin/ldconfig" ]; then mv -v $root/usr/sbin/ldconfig $root/sbin/ldconfig fi if [ -f "$root/usr/sbin/sln" ]; then mv -v $root/usr/sbin/sln $root/sbin/sln fi fi
# Create /lib/ld-lsb.so.1 symlink # if [ -z "$pkg_glibc_cross" ] then if [ -f $root/lib/ld-linux-$arch_machine.so.2 ]; then ln -vfs ld-linux-$arch_machine.so.2 $root/lib/ld-lsb.so.1 elif [ -f $root/lib/ld-linux.so.2 ]; then ln -vfs ld-linux.so.2 $root/lib/ld-lsb.so.1 fi fi }
fi #---------------------------------
glibc_prepatch() { tarball="`echo $desc_D | grep linuxthreads | \ sed 's/.* \(.*\.linuxthreads.*\) .*/\1/'`" if [ "$tarball" ] ; then tar $taropt $archdir/$tarball fi }
glibc_stage0() { if [ $pkg_glibc_version = 23 ] then mkdir -p objdir; cd objdir
confopt="${confopt% --target=*}"
var_append confopt " " "--enable-add-ons"$ADDONS" --build=\$arch_build \ --host=\$arch_target"
# due to assembler check - and we do not yet have as ... [ $arch = hppa ] && var_append confopt " " "--enable-hacker-mode"
eval "../configure --enable-add-ons"$ADDONS" $confopt"
make -k cross-compiling=yes install-headers || true cp -v ../include/features.h $root/$prefix/include fi if [ $pkg_glibc_version = 22 ] then eval "./configure --enable-add-ons $confopt" make cross-compiling=yes install-headers cp -v include/features.h $root/$prefix/include
fi
mkdir -p $root/$prefix/include/gnu touch $root/$prefix/include/gnu/stubs.h cp -v bits/stdio_lim.h $root/$prefix/include/bits }
patchfiles="`ls $confdir/glibc$pkg_glibc_version/*.patch \ $confdir/glibc$pkg_glibc_version/*.patch.$arch 2>/dev/null | tr '\n' ' '` $patchfiles"
if [ $stagelevel -le 1 ]; then patchfiles="`ls $patchfiles $confdir/glibc$pkg_glibc_version/*.patch.cross \ $confdir/glibc$pkg_glibc_version/*.patch.cross.$arch 2>/dev/null | tr '\n' ' '`" fi
if [ $pkg_glibc_version = 22 ] ; then # auto-detect for the old glibc ADDONS="" else # prevent the utilisation of nptl (...) - and enable it later # if a 2.5/6 kernel is used ADDONS="=linuxthreads" fi
threadsver="$ver" prepatch="glibc_prepatch"
if [ -z "$pkg_glibc_cross" ] then if [ $stagelevel -eq 0 ] then custmain="glibc_stage0" else custmain="glibc_custmain" fi else if [ $pkg_glibc_version = 22 ]; then echo_error "Cross-packages are not supported for glibc22!" exit 1 fi
arch_target="$pkg_glibc_target" arch_machine="${arch_target/-*/}" prefix="$prefix/$pkg_glibc_target" set_confopt
if [ -z "$( type -p $pkg_glibc_target-gcc )" ] then echo_status "Building only cross-headers because there is no cross-gcc (yet)." custmain="glibc_stage0" else export CC=$pkg_glibc_target-gcc export AS=$pkg_glibc_target-as export LD=$pkg_glibc_target-ld export AR=$pkg_glibc_target-ar export NM=$pkg_glibc_target-nm export GASP=$pkg_glibc_target-gasp export STRIP=$pkg_glibc_target-strip export RANLIB=$pkg_glibc_target-ranlib export CFLAGS="-O2" custmain="glibc_custmain" fi fi
if [ $stagelevel -eq 1 -a -f $confdir/glibc$pkg_glibc_version/no_path_in_glibcso.diff ] then var_append patchfiles " " $confdir/glibc$pkg_glibc_version/no_path_in_glibcso.diff fi
|