minimal/src/04_build_glibc.sh
2019-03-25 16:46:44 +02:00

54 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
set -e
# Load common properties and functions in the current script.
. ./common.sh
echo "*** BUILD GLIBC BEGIN ***"
# Prepare the work area, e.g. 'work/glibc/glibc_objects'.
echo "Preparing glibc object area. This may take a while."
rm -rf $GLIBC_OBJECTS
mkdir $GLIBC_OBJECTS
# Prepare the install area, e.g. 'work/glibc/glibc_installed'.
echo "Preparing glibc install area. This may take a while."
rm -rf $GLIBC_INSTALLED
mkdir $GLIBC_INSTALLED
# Find the glibc source directory, e.g. 'glibc-2.23' and remember it.
GLIBC_SRC=`ls -d $WORK_DIR/glibc/glibc-*`
# All glibc work is done from the working area.
cd $GLIBC_OBJECTS
# 'glibc' is configured to use the root folder (--prefix=) and as result all
# libraries will be installed in '/lib'. Note that on 64-bit machines Busybox
# will be linked with the libraries in '/lib' while the Linux loader is expected
# to be in '/lib64'. Kernel headers are taken from our already prepared kernel
# header area (see xx_build_kernel.sh). Packages 'gd' and 'selinux' are disabled
# for better build compatibility with the host system.
echo "Configuring glibc."
$GLIBC_SRC/configure \
--prefix= \
--with-headers=$KERNEL_INSTALLED/include \
--without-gd \
--without-selinux \
--disable-werror \
CFLAGS="$CFLAGS"
# Compile glibc with optimization for "parallel jobs" = "number of processors".
echo "Building glibc."
make -j $NUM_JOBS
# Install glibc in the installation area, e.g. 'work/glibc/glibc_installed'.
echo "Installing glibc."
make install \
DESTDIR=$GLIBC_INSTALLED \
-j $NUM_JOBS
cd $SRC_DIR
echo "*** BUILD GLIBC END ***"