spf_template gnu &&
spf_url home  'http://www.gnu.org/software/libc/' &&
case ${spf_version?} in
  2.8-20080929)
    spf_url src   "http://packages.dogmap.org/glibc-${spf_version?}.tar.bz2";;
  2.8-*)
    spf_url src   "ftp://sources.redhat.com/pub/glibc/snapshots/glibc-${spf_version?}.tar.bz2";;
  2.3.6|2.6.1|2.9|2.10.1)
    spf_url src_add \
      "http://ftp.gnu.org/gnu/glibc/glibc-libidn-${spf_version?}.tar.bz2" \
      dir glibc-"${spf_version?}";;
  *) :;;
esac &&
spf_depend linux  flags none when runtime version_sensitive yes &&
spf_depend tzdata flags none when runtime &&
spf_cc_ nls &&
spf_data file etc/localtime &&
spf_template_gnu_build_sep &&
prj_u2 prj_set pkg_linux "${spf_path_conf?}"/linux/prefix/userspace/include &&
spf_args configure --with-headers="${pkg_linux?}" &&
spf_args configure --without-gd &&
spf_cc_ configure_args '--without-cvs --disable-profile --enable-add-ons' &&
spf_template_gnu_do_before_configure() {
  prj_x2 prj_set CPP 'gcc -E' &&
  #prj_x2 prj_set LANGUAGE C &&
  #prj_x2 prj_set LC_ALL C &&
  case ${spf_version?} in
    2.12.1)
      prj_sedfile "${spf_template_gnu_dir_?}"/manual/Makefile '
/^\$(objpfx)stubs \.\.\/po\/manual\.pot \$(objpfx)stamp%:$/c\
$(objpfx)stubs ../po/manual.pot:\
	$(make-target-directory)\
	touch $@\
$(objpfx)stamp%:';;
    *) :;;
  esac &&
  case ${spf_version?}. in
    2.1[12].*|2.1[34].*)
      prj_sedfile "${spf_template_gnu_dir_?}"/nscd/Makefile '
/^nscd-cflags *+= *-fstack-protector/a\
LDLIBS-nscd += -lssp\
';;
    2.9.)
      prj_sedfile \
        "${spf_template_gnu_dir_?}"/sysdeps/unix/sysv/linux/bits/socket.h '
/^#ifdef __USE_GNU/{
N
/User visible structure for SCM_CREDENTIALS message/s/ifdef __USE_GNU/if defined(SO_PEERCRED) || defined(SCM_CREDENTIALS)/
}
';;
    2.8-20080929.)
      prj_sedfile \
        "${spf_template_gnu_dir_?}"/sysdeps/unix/sysv/linux/bits/socket.h '
/^#ifdef __USE_GNU/{
N
/User visible structure for SCM_CREDENTIALS message/s/ifdef __USE_GNU/if defined(SO_PEERCRED) || defined(SCM_CREDENTIALS)/
}
' &&
      echo localedata >> "${spf_template_gnu_dir_?}"/iconvdata/Depend  &&
      prj_sedfile "${spf_template_gnu_dir_?}"/iconvdata/Makefile '
/^test-srcs :=/a\
\
bug-iconv6-ENV = LOCPATH=$(common-objpfx)localedata\
tst-iconv7-ENV = LOCPATH=$(common-objpfx)localedata\
' &&
      prj_sedfile "${spf_template_gnu_dir_?}"/iconvdata/bug-iconv6.c \
        's/en_US/de_DE/';;
    *) :;;
  esac &&
  case ${spf_version?}. in
    2.[3456789].*|2.8-20080929.|2.10.*|2.11.*)
      prj_sedfile \
        "${spf_template_gnu_dir_?}"/nptl/sysdeps/pthread/pt-initfini.c '
/defs\.h/a\
asm ("\\n#ifdef __i686");\
asm ("\\n#undef __i686");\
asm ("\\n#define __i686 __i686");\
asm ("\\n#endif");\
' &&
      prj_sedfile "${spf_template_gnu_dir_?}"/sysdeps/generic/sysdep.h '1i\
#ifdef __i686\
#undef __i686\
#define __i686 __i686\
#endif\
';;
    *) :;;
  esac &&
  case ${spf_version?}. in
    2.6.*|2.8.*|2.8-*|2.9.*|2.10.*)
      mv "${spf_template_gnu_dir_?}"/glibc-libidn-"${spf_version?}" \
         "${spf_template_gnu_dir_?}"/libidn;;
    *) :;;
  esac &&
  # don't re-run autoconf:
  sleep 2 &&
  touch "${spf_template_gnu_dir_?}"/configure \
    "${spf_template_gnu_dir_?}"/*/configure &&
  prj_mkdir_p "${spf_path_prefix?}"/etc &&
  touch "${spf_path_prefix?}"/etc/ld.so.conf &&
  cp "${spf_path_conf?}"/tzdata/prefix/zoneinfo/Factory \
    "${spf_path_prefix?}"/etc/localtime
} &&
spf_template_gnu_do_before_make() {
  unset SPF_CONF &&
  rm -f "${spf_path_libc?}"
} &&
spf_template_gnu_do_after_install() {
  if test n = "${spf_ccv_nls?}"; then :; else
    ( prj_x2 prj_set SPF_CONF "${spf_path_conf?}" &&
      prj_x2 prj_set SPF_LIBC glibc &&
      ln -s "${sp_path?}" "${spf_path_libc?}" &&
      make localedata/install-locales &&
      rm -f "${spf_path_libc?}" "${spf_path_conf?}"/gcc )
  fi &&
  prj_unset pkg_include &&
  for pkg_include in "${pkg_linux?}"/*; do
    { pkg_include=`basename "${pkg_include?}"` &&
      if test -d "${spf_path_prefix?}"/include/"${pkg_include?}"/.; then :
      else
        ln -s "${pkg_linux?}/${pkg_include?}" "${spf_path_prefix?}"/include/
      fi
    } || return "$?"
  done &&
  ##### enable-static-nss breaks with 2.3.4 and later
  if test -f "${spf_path_prefix?}"/lib/libnss_files.a; then
    mkdir "${spf_path_compile?}"/pkg-static-nss &&
    ( cd "${spf_path_compile?}"/pkg-static-nss &&
      ar x "${spf_path_prefix?}"/lib/libc.a &&
      ar x "${spf_path_prefix?}"/lib/libnss_files.a &&
      ar x "${spf_path_prefix?}"/lib/libnss_dns.a &&
      ar x "${spf_path_prefix?}"/lib/libresolv.a &&
      ar cr "${spf_path_prefix?}"/lib/libc-spf-nss.a * &&
      mv -f "${spf_path_prefix?}"/lib/libc.a \
            "${spf_path_prefix?}"/lib/libc-spf-orig.a &&
      ln -s libc-spf-nss.a "${spf_path_prefix?}"/lib/libc.a )
  else :
  fi &&
  mv -f "${spf_path_prefix?}"/share/zoneinfo \
    "${spf_path_prefix?}"/share/zoneinfo.orig &&
  ln -s "${spf_path_conf?}"/tzdata/prefix/zoneinfo \
    "${spf_path_prefix?}"/share/
} &&
spf_own libexec/pt_chown 0 '' u=rwxs,g=x,o=x &&
spf_do_check() { make -k check; } &&
#spf_tested_version 2.15 && 
spf_tested_version 2.13 &&
spf_tested_version 2.12.1 &&
spf_tested_version 2.11.2 &&
spf_tested_version 2.11.1 &&
spf_tested_version 2.11 &&
spf_tested_version 2.10.1 &&
spf_tested_version 2.9 &&
spf_tested_version 2.8-20080929 &&
spf_tested_version 2.6.1 &&
spf_tested_version 2.3.6

