You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
223 lines
6.2 KiB
223 lines
6.2 KiB
18 years ago
|
# --- SDE-COPYRIGHT-NOTE-BEGIN ---
|
||
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
|
||
|
#
|
||
|
# Filename: package/.../glibc/glibc.conf
|
||
|
# Copyright (C) 2006 - 2007 The OpenSDE Project
|
||
|
# Copyright (C) 2004 - 2006 The T2 SDE Project
|
||
|
#
|
||
|
# More information can be found in the files COPYING and README.
|
||
|
#
|
||
|
# 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; version 2 of the License. A copy of the
|
||
|
# GNU General Public License can be found in the file COPYING.
|
||
|
# --- SDE-COPYRIGHT-NOTE-END ---
|
||
|
|
||
|
# overwrite prefix to not point to the tools, but the real root for the headers
|
||
|
if atstage toolchain; then
|
||
|
# hack due to sane variable not available and prefix is tools prefix
|
||
|
# -ReneR
|
||
|
confopt="--prefix=$base/build/$SDECFG_ID/usr \
|
||
|
--with-headers=$base/build/$SDECFG_ID/usr/include \$extraconfopt"
|
||
|
includedir="/../../usr/include"
|
||
|
|
||
|
# MIPS injects -mabi - the host CC does not know about it for header gen
|
||
|
var_append SYSCC_WRAPPER_REMOVE ' ' '-mabi*'
|
||
|
var_append SYSCPP_WRAPPER_REMOVE ' ' '-mabi*'
|
||
|
else
|
||
|
var_append confopt " " "--with-headers=$root/usr/include"
|
||
|
fi
|
||
|
|
||
|
# use at least "-O" when build without optimisation for debugging ...
|
||
|
var_insert GCC_WRAPPER_INSERT " " "-O"
|
||
|
# glibc does not like -ffast-math
|
||
|
var_insert GCC_WRAPPER_REMOVE " " "-ffast-math"
|
||
|
|
||
|
# We must use an 'objdir' directory for building glibc
|
||
|
# Disable glibc internal debuging but build debuging and profile
|
||
|
# code so we can use this glibc to debug other programs.
|
||
|
|
||
|
hook_add preconf 3 "mkdir -p objdir; cd objdir"
|
||
|
configprefix='CFLAGS="$CFLAGS -g -DNDEBUG=1"'
|
||
|
configscript="../configure"
|
||
|
|
||
|
var_append confopt " " "--with-gnu-binutils --build=${arch_build} --host=${arch_target}"
|
||
|
|
||
|
if pkginstalled libgd; then
|
||
|
var_append confopt " " "--with-gd=/usr --with-gd-lib=/usr/lib --with-gd-include=/usr/include"
|
||
|
fi
|
||
|
|
||
|
# --enable-add-ons expects a comma seperated list of add-ons
|
||
|
glibc_addons=
|
||
|
|
||
|
# ckeck whether to enable nptl if supported by the architecture
|
||
|
if [ $SDECFG_PKG_GLIBC_TLS = 1 ]; then
|
||
|
var_append glibc_addons "," "nptl"
|
||
|
var_append extraconfopt " " "--with-tls"
|
||
|
var_append extraconfopt " " "--with-__thread"
|
||
|
else
|
||
|
var_append glibc_addons "," "linuxthreads"
|
||
|
var_append extraconfopt " " "--without-__thread"
|
||
|
var_append extraconfopt " " "--disable-sanity-checks"
|
||
|
|
||
|
[[ $arch = mips* ]] && \
|
||
|
var_append extraconfopt " " "--without-tls"
|
||
|
fi
|
||
|
|
||
|
# ckeck whether to enable libidn support
|
||
|
if [ $SDECFG_PKG_GLIBC_LIBIDN = 1 ]; then
|
||
|
var_append glibc_addons "," "libidn"
|
||
|
fi
|
||
|
|
||
|
# if there are add-ons defined append a proper list of add-ons to the
|
||
|
# extraconfopt's
|
||
|
[[ -z $glibc_addons ]] || \
|
||
|
var_append extraconfopt " " "--enable-add-ons=$glibc_addons"
|
||
|
|
||
|
# control whether to include profiling support
|
||
|
if [ $SDECFG_PKG_GLIBC_ENABLE_PROFILE = 1 ] ; then
|
||
|
var_append extraconfopt " " "--enable-profile"
|
||
|
else
|
||
|
var_append extraconfopt " " "--disable-profile"
|
||
|
fi
|
||
|
|
||
|
var_append makeopt " " "slibdir=/\$slibdir"
|
||
|
var_append makeinstopt " " "slibdir=/\$slibdir install_root=\$root"
|
||
|
|
||
|
glibc_prepatch() {
|
||
|
local tarball= tarname=
|
||
|
for tarball in `match_source_file -p ports` \
|
||
|
`match_source_file -p libidn` \
|
||
|
`match_source_file -p linuxthread`
|
||
|
do
|
||
|
tarname=${tarball##*/}; tarname=${tarname%.tar.*}
|
||
|
|
||
|
# do not overwrite the configure script and such
|
||
|
case "$tarball" in
|
||
|
*ports*)
|
||
|
ln -sv . $tarname
|
||
|
tar -v ${taropt} $tarball ${tarname}/sysdeps
|
||
|
;;
|
||
|
*libidn*)
|
||
|
mkdir -pv libidn
|
||
|
ln -sv libidn $tarname
|
||
|
tar -v ${taropt} $tarball
|
||
|
;;
|
||
|
*)
|
||
|
tar -v ${taropt} $tarball linuxthreads
|
||
|
;;
|
||
|
esac
|
||
|
# remove CVS from the newly extracted files, glibc tries to
|
||
|
# automatically commit newly generated files :-!
|
||
|
find -name CVS | xargs rm -rfv
|
||
|
done
|
||
|
|
||
|
mkdir -p $root$includedir/gnu/
|
||
|
|
||
|
if [ $pkg == glibc ]; then
|
||
|
touch $root$includedir/gnu/stubs.h
|
||
|
if [ $slibdir = lib64 ]; then
|
||
|
touch $root$includedir/gnu/stubs{-32,-64}.h
|
||
|
fi
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
glibc_postmake()
|
||
|
{
|
||
|
if atstage toolchain; then
|
||
|
cp -v ../include/features.h $root$includedir
|
||
|
mkdir -p $includedir/{bits,gnu}
|
||
|
[ -e $root$includedir/bits/stdio_lim.h ] ||
|
||
|
touch $root$includedir/bits/stdio_lim.h
|
||
|
return
|
||
|
fi
|
||
|
|
||
|
ln -sf libbsd-compat.a $root/usr/$slibdir/libbsd.a
|
||
|
|
||
|
# Misc. stuff
|
||
|
#
|
||
|
if atstage native; 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/
|
||
|
fi
|
||
|
|
||
|
# Install ld.so.conf
|
||
|
#
|
||
|
if [ $slibdir = lib64 ] ; then
|
||
|
cat > $root/etc/ld.so.conf <<-EOT
|
||
|
/lib64
|
||
|
/lib
|
||
|
/usr/lib64
|
||
|
/usr/lib
|
||
|
/usr/*/lib64
|
||
|
/usr/*/lib
|
||
|
/opt/*/lib64
|
||
|
/opt/*/lib
|
||
|
/usr/local/lib64
|
||
|
/usr/local/lib
|
||
|
EOT
|
||
|
else
|
||
|
cat > $root/etc/ld.so.conf <<-EOT
|
||
|
/lib
|
||
|
/usr/lib
|
||
|
/usr/*/lib
|
||
|
/opt/*/lib
|
||
|
/usr/local/lib
|
||
|
EOT
|
||
|
fi
|
||
|
|
||
|
# Move 'ldconfig' and 'sln' binaries
|
||
|
#
|
||
|
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
|
||
|
|
||
|
# Create /lib/ld-lsb.so.1 symlink
|
||
|
#
|
||
|
if [ -f $root/$slibdir/ld-linux-$arch_machine.so.2 ] ; then
|
||
|
ln -vfs ld-linux-$arch_machine.so.2 $root/$slibdir/ld-lsb.so.1
|
||
|
elif [ -f $root/$slibdir/ld-linux.so.2 ] ; then
|
||
|
ln -vfs ld-linux.so.2 $root/$slibdir/ld-lsb.so.1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# in stage 0 we only extract the headers and all is a bit easier ...
|
||
|
if atstage toolchain; then
|
||
|
makeopt=""
|
||
|
makeinstopt="-k cross-compiling=yes install-headers"
|
||
|
fi
|
||
|
|
||
|
[[ $libdir = *lib64 ]] && slibdir=lib64 || slibdir=lib
|
||
|
|
||
|
#if atstage cross; then
|
||
|
# var_append patchfiles " " $confdir/no_path_in_glibcso.diff
|
||
|
#fi
|
||
|
|
||
|
hook_add prepatch 3 "glibc_prepatch"
|
||
|
hook_add postmake 5 "glibc_postmake"
|
||
|
|