Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 38cbd43b3f
Fetching contributors…

Cannot retrieve contributors at this time

156 lines (126 sloc) 5.094 kb
(
# The fortify compiler option cause the build to fail
bad_flags -D_FORTIFY_SOURCE=2 &&
# This sedit takes care of Bug Report 398 submitted by Striker.
# sedit "s:/tmp:$SOURCE_DIRECTORY/tmp:g" scripts/test-installation.pl &&
mkdir -p $SOURCE_DIRECTORY/tmp &&
export CC_OPTS=( Pipe ) &&
KVER=`installed_version kernel-headers` &&
# There is no other option but nptl
OPTS+=" --enable-add-ons=nptl,libidn --with-__thread --with-tls --disable-profile --enable-kernel=$KVER" &&
if [ -n "$MAKES" ] && [ "$MAKES" -gt 1 ] ; then
sedit "s/# PARALLELMFLAGS = -j 4/PARALLELMFLAGS = -j $MAKES/" Makefile.in
fi &&
export CC=gcc &&
# Don't fully strip libc
if [[ "$LDFLAGS" == *-s* ]] ; then
STRIP=y
fi &&
unset LDFLAGS &&
# fix the compile for x86_64
sedit "s:s_floor-c s_ceil-c s_floorf-c s_ceilf-c:s_floorf-c s_ceilf-c:g" sysdeps/x86_64/fpu/multiarch/Makefile &&
patch_it $SOURCE2 1 &&
patch_it $SOURCE3 1 &&
patch_it $SOURCE4 1 &&
# Fixes nvidia-settings and other apps segfault http://www.nvnews.net/vbulletin/showpost.php?p=2501574
# patch_it $SOURCE5 1 &&
# disable final test
sed -i '/test-installation.pl/d' Makefile &&
sedit 's/^# \(.* := rpcinfo\)/\1/p' sunrpc/Makefile &&
sedit 's/test-netdb tst-nss-test1/test-netdb/' nss/Makefile &&
sedit '/libnss_test1/d' shlib-versions &&
INSTALL_ROOT=$SOURCE_DIRECTORY/glibcroot &&
mkdir -p $INSTALL_ROOT &&
cd $INSTALL_ROOT &&
OPTS+=" --with-headers=/usr/include" &&
../configure --prefix=/usr \
--infodir=/usr/share/info \
--mandir=/usr/share/man \
--with-elf \
--without-gd \
--without-cvs \
--enable-shared \
--enable-obsolete-rpc \
--host=$BUILD \
--build=$BUILD \
--disable-multi-arch \
--enable-bind-now \
--enable-stackguard-randomization \
$OPTS &&
# explicitly exit here since the following code unsets $?
make || exit 1 &&
# Preserve the old glibc temporarily
LD=/lib/ld-linux-x86-64.so.2 &&
GLIBC=/lib/libc.so.6 &&
DL=/lib/libdl.so.2 &&
M=/lib/libm.so.6 &&
RT=/lib/librt.so.1 &&
PTHREAD=/lib/libpthread.so.0 &&
NSS=/lib/libnss_files.so.2 &&
UTIL=/lib/libutil.so.1 &&
NSL=/lib/libnsl.so.1 &&
CRYPT=/lib/libcrypt.so.1 &&
DL=/lib/libdl.so.2 &&
cp $LD /lib/ld-lunar.so &&
cp $GLIBC /lib/libc-lunar.so &&
cp $DL /lib/libdl-lunar.so &&
cp $M /lib/libm-lunar.so &&
cp $RT /lib/librt-lunar.so &&
cp $PTHREAD /lib/libpthread-lunar.so &&
cp $NSS /lib/libnss_files-lunar.so &&
cp $UTIL /lib/libutil-lunar.so &&
cp $NSL /lib/libnsl-lunar.so &&
cp $CRYPT /lib/libcrypt-lunar.so &&
# Setup links for libraries
sln /lib/ld-lunar.so $LD &&
sln /lib/libc-lunar.so $GLIBC &&
sln /lib/libdl-lunar.so $DL &&
sln /lib/libm-lunar.so $M &&
sln /lib/librt-lunar.so $RT &&
sln /lib/libpthread-lunar.so $PTHREAD &&
sln /lib/libnss_files-lunar.so $NSS &&
sln /lib/libutil-lunar.so $UTIL &&
sln /lib/libnsl-lunar.so $NSL &&
sln /lib/libcrypt-lunar.so $CRYPT &&
# clean hack to make sure gnu/stubs.h gets refreshed
rm -f /usr/include/gnu/stubs.h &&
# This removes the old glibc
prepare_install &&
# And now we install the new
make install &&
# Now optionally perform debug symbol stripping only
if [ "$STRIP" == "y" ] ; then
for FN in ld-$MAJOR.so \
lib{anl,BrokenLocale,c,crypt,dl,m,nsl,util,pthread,resolv}-$MAJOR.so \
libnss_{compat,files,hesiod,nis,nisplus}-$MAJOR.so \
lib{memusage,pcprofile,SegFault,thread_db-1.0}.so ; do
strip -S /lib/$FN
done &&
for FN in "/usr/lib/gconv/*.so" ; do
strip -S $FN
done
fi &&
# Added a symlink for ash and others
ln -sf /usr/lib/libbsd-compat.a /usr/lib/libbsd.a &&
# Rebuild the ld cache
rm -f /etc/ld.so.cache 2>/dev/null &&
ldconfig &&
# Remove the temporary libc
rm /lib/{ld,lib{c,dl,m,rt,pthread,nss_files,util,nsl,crypt}}-lunar.so &&
# Generate locale info
if [ -z "$GLIBC_LOCALES" ]; then
make localedata/install-locales || exit 1
else
devoke_installwatch &&
for LOCALE in $GLIBC_LOCALES; do
INPUTFILE=$(echo $LOCALE | cut -d/ -f1 | sed -e 's:\..*$::g') &&
OUTPUTFILE=$(echo $LOCALE | cut -d/ -f1) &&
CHARMAP=$(echo $LOCALE | cut -d/ -f2) &&
mkdir -p /usr/lib/locale/$OUTPUTFILE &&
echo "localedef -i $INPUTFILE -f $CHARMAP $OUTPUTFILE" &&
localedef -i $INPUTFILE -f $CHARMAP $OUTPUTFILE
done
invoke_installwatch &&
touch /usr/lib/locale/locale-archive
fi
) > $C_FIFO 2>&1 && ldconfig
Jump to Line
Something went wrong with that request. Please try again.