default_pre_build  &&

if  [  "$GLIBC_NPTL"  =  "y"  ];  then
  cd      $SOURCE_DIRECTORY                  &&
  patch $SOURCE_DIRECTORY/timezone/Makefile  \
        $SCRIPT_DIRECTORY/localtime.patch    &&

  #
  # Unpack glibc-kernel-headers
  #
  #
  # Set GLIBC_HEADERS_DIR for use later
  #
  persistent_add  GLIBC_HEADERS_DIR                        &&
  GLIBC_HEADERS_DIR=$SOURCE_DIRECTORY/${SOURCE3/.tar.bz2}  &&

  case ${HEADERS_VERSION} in
    3.[1-9]*)
            message "${MESSAGE_COLOR}bunzip2 $SOURCE_CACHE/$SOURCE3${DEFAULT_COLOR}"
            bunzip2 -k $SOURCE_CACHE/$SOURCE3
            SOURCE3_ORI=$SOURCE3
            SOURCE3=${SOURCE3/.bz2}
            unpack_file 3 || return 1
            message "${MESSAGE_COLOR}rm $SOURCE_CACHE/$SOURCE3${DEFAULT_COLOR}"
            rm $SOURCE_CACHE/$SOURCE3
            SOURCE3=$SOURCE3_ORI
            ;;
           *)
            unpack_file 3 || return 1
            ;;
  esac
  if [[ $GLIBC_SANITIZE_HEADERS == n ]]; then
    cd  $GLIBC_HEADERS_DIR &&
    if [ ! -z $SOURCE3 ]; then
      bzcat ${SOURCE_CACHE}/$SOURCE3 > ${SOURCE3%.bz2}
    fi  &&
    make mrproper
  else
    cd  $GLIBC_HEADERS_DIR &&
    if [ ! -z $SOURCE7 ]; then
      if [[ ${HEADERS_VERSION} > 3.0.4 ]]; then
        message "${MESSAGE_COLOR}bunzip2 $SOURCE_CACHE/$SOURCE7${DEFAULT_COLOR}"
        bunzip2 -k ${SOURCE_CACHE}/$SOURCE7 &&
        SOURCE7_ORI=${SOURCE7}
        SOURCE7=${SOURCE7/.bz2}
	echo $SOURCE7_GPG
        verify_file 7 || return 1
        message "${MESSAGE_COLOR}rm $SOURCE_CACHE/$SOURCE7${DEFAULT_COLOR}"
        rm $SOURCE_CACHE/$SOURCE7
        SOURCE7=${SOURCE7_ORI}
      else
        verify_file 7 || return 1
      fi
      bzcat ${SOURCE_CACHE}/$SOURCE7 > ${SOURCE7/.bz2}
      message "${MESSAGE_COLOR}Patching ${!patch}${DEFAULT_COLOR}" &&
      patch -p1 < ${SOURCE7/.bz2} &&
      if [[ $? != 0 ]]; then
        message "${PROBLEM_COLOR}Patch ${!patch} failed${DEFAULT_COLOR}" &&
        return 1
      fi
    fi &&
    make mrproper
  fi
else
  cd      $SOURCE_DIRECTORY                         &&
  #
  # Now unpack the rest of glibc fixes in the normal location
  #
  unpack_file 3                       &&
  #
  # Unpack glibc-kernel-headers
  #
  #
  # Set GLIBC_HEADERS_DIR for use later
  #
  persistent_add  GLIBC_HEADERS_DIR                   &&
  GLIBC_HEADERS_DIR=$SOURCE_DIRECTORY/kernel-headers  &&
  mkdir  -p  $GLIBC_HEADERS_DIR/usr/include         &&
  cd  $GLIBC_HEADERS_DIR/usr/include                &&
  unpack_file 5
fi  &&

#
# Remove kernel DRM headers
# Fixes Bug #15547
#
sed -i '/^header-y += drm\//d' $GLIBC_HEADERS_DIR/include/Kbuild &&
rm -rf $GLIBC_HEADERS_DIR/include/drm &&

#
# Now fixup the normal glibc
#
cd  $SOURCE_DIRECTORY                               &&
patch  -p0  <  $SCRIPT_DIRECTORY/Makefile.patch     &&
patch  -p1  <  $SCRIPT_DIRECTORY/as-test-x.patch &&
patch -p1 < $SPELL_DIRECTORY/gcc45.patch &&

if [[ "$GLIBC_NPTL" == y ]]; then
  patch -p0 < "$SPELL_DIRECTORY/ghost.patch"
else
  patch -p0 < "$SPELL_DIRECTORY/ghost-236.patch"
fi &&

# disabled libgd detection/building memusagestat for now until a better
# fix has been found, bug #8277
sedit  's/LIBGD=yes/LIBGD=no/'  $SOURCE_DIRECTORY/configure  &&

#
# Create the build directory
#
mk_source_dir  $SOURCE_DIRECTORY.bld &&

# fix #11832 - linking in /tmp doesn't work with grsecurity so do it elsewhere
local test_path=$SOURCE_DIRECTORY.bld/test-installation &&
mkdir $test_path &&
sed -i "s,/tmp,$test_path,g" scripts/test-installation.pl &&
sed -i 's/ot \$/ot:\n\ttouch $@\n$/' manual/Makefile &&

# CC="gcc" /usr/bin/perl scripts/test-installation.pl /usr/src/glibc-2.13.bld/
# /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lnss_test1
patch scripts/test-installation.pl < $SPELL_DIRECTORY/test-installation.pl.patch
