OpenSDE Packages Database (without history before r20070)
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.
 
 
 
 
 
 

265 lines
7.3 KiB

# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../glibc/glibc.conf
# Copyright (C) 2006 - 2016 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*'
# if $HOSTCC is a gcc < 4.3 we need 'cpuid.h'
if ! $HOSTCC -dumpversion | grep -q '^4\.[3-7]' ; then
echo_warning "Old gcc detected: Working around cpuid.h support"
var_append SYSCC_WRAPPER_APPEND ' ' "-I$confdir/include-old-gcc"
fi
else
var_append confopt " " "--with-headers=$root/usr/include"
fi
# glibc does not like -ffast-math
var_insert GCC_WRAPPER_REMOVE " " "-ffast-math"
var_append confopt " " "--enable-kernel=2.6.32"
# Disable glibc internal debuging but build debuging and profile
# code so we can use this glibc to debug other programs.
pkg_glibc_preconf() {
configprefix='CFLAGS="$CFLAGS -g -DNDEBUG=1 -O2"'
configscript="../configure"
}
hook_add preconf 3 "pkg_glibc_preconf"
# We have to use an 'objdir' directory for building glibc and make its
# name unique by appending $arch_target to distinguish while building
# a multilib capable glibc using buildloops.
pkg_glibc_objdir() {
mkdir -p "objdir-$arch_target"
cd "objdir-$arch_target"
}
hook_add preconf 9 "pkg_glibc_objdir"
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=""
# enable some generic options
var_append extraconfopt " " "--enable-bind-now"
var_append extraconfopt " " "--enable-stackguard-randomization"
var_append extraconfopt " " "--enable-lock-elision=yes"
if [ $SDECFG_PKG_GLIBC_TLS = 1 ]; then
var_append extraconfopt " " "--with-tls"
var_append extraconfopt " " "--with-__thread"
# cross-compile help
if ! atstage native; then
var_append configcache ' ' "libc_cv_forced_unwind=yes"
var_append configcache ' ' "libc_cv_c_cleanup=yes"
fi
# help building/installing correct glibc headers at toolchain stage
if atstage toolchain; then
case "$arch" in
x86) var_append configcache ' ' "libc_cv_386_tls=yes" ;;
esac
fi
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
var_append extraconfopt " " "--enable-add-ons=$glibc_addons"
# build and install the obsolete RPC code for link-time usage
var_append extraconfopt " " "--enable-obsolete-rpc"
# 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"
var_remove_regex makeopt " " "prefix=.*"
var_remove_regex makeinstopt " " "prefix=.*"
glibc_install_locales() {
# install locales but not bulk please!
#
mkdir -pv $root$libdir/locale
cp $confdir/locale.gen.txt $root$sysconfdir/locale.gen
cp $confdir/locale-gen $root$bindir/locale-gen
chmod +x $root$bindir/locale-gen
sed -e '1,3d' -e 's|/| |g' -e 's|\\| |g' -e 's|^|#|g' \
../localedata/SUPPORTED >> $root$sysconfdir/locale.gen
echo_status "Building locales"
/bin/sh $root$bindir/locale-gen
}
glibc_prepatch() {
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 $root$includedir/{bits,gnu}
[ -e $root$includedir/bits/stdio_lim.h ] ||
touch $root$includedir/bits/stdio_lim.h
return
fi
# Misc. stuff
#
if atstage native; then
glibc_install_locales
if [ "$SDECFG_PKG_GLIBC_TLS" != 1 ]; then
# install linuxthread manpages
#
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 documentation
#
for x in ChangeLog Changes README FAQ.html Examples; do
cp -a ../linuxthreads/$x \
$docdir/$x.threads
done
fi
# copy crypt documentation
#
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
#
# TODO
# We should migrate to a more modular approach here, moving to package
# based configuration in '/etc/ld.so.conf.d/$pkg.conf' and including all
# dedicated conf files in a generic main 'ld.so.conf' like this:
#
# include /etc/ld.so.conf.d/*.conf
#
case $arch_machine in
powerpc64|sparc64|x86_64|mips64)
cat > $root/etc/ld.so.conf <<-EOT
/lib64
/lib
/usr/lib64
/usr/lib
/usr/lib64/*/
/usr/lib/*/
/usr/*/lib64
/usr/*/lib
/opt/*/lib64
/opt/*/lib
/usr/local/lib64
/usr/local/lib
EOT
if [ "$SDECFG_MULTILIB" == 1 ] ; then
cat >> $root/etc/ld.so.conf <<-EOT
/lib32
/usr/lib32
/usr/lib32/*/
/usr/*/lib32
/opt/*/lib32
/usr/local/lib32
EOT
fi
;;
*) cat > $root/etc/ld.so.conf <<-EOT
/lib
/usr/lib
/usr/lib/*/
/usr/*/lib
/opt/*/lib
/usr/local/lib
EOT
;;
esac
# 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
hook_add prepatch 3 "glibc_prepatch"
hook_add postmake 5 "glibc_postmake"
# workaround for failing builds when building for i686 cpu family
case $arch_machine in
i686) var_append extraconfopt ' ' "--disable-multi-arch" ;;
esac