[arch-commits] Commit in glibc/repos (12 files)

Allan McRae allan at archlinux.org
Tue Mar 7 02:20:38 UTC 2017


    Date: Tuesday, March 7, 2017 @ 02:20:37
  Author: allan
Revision: 290072

archrelease: copy trunk to staging-i686, staging-x86_64

Added:
  glibc/repos/staging-i686/
  glibc/repos/staging-i686/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch
    (from rev 290071, glibc/trunk/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch)
  glibc/repos/staging-i686/PKGBUILD
    (from rev 290071, glibc/trunk/PKGBUILD)
  glibc/repos/staging-i686/glibc.install
    (from rev 290071, glibc/trunk/glibc.install)
  glibc/repos/staging-i686/locale-gen
    (from rev 290071, glibc/trunk/locale-gen)
  glibc/repos/staging-i686/locale.gen.txt
    (from rev 290071, glibc/trunk/locale.gen.txt)
  glibc/repos/staging-x86_64/
  glibc/repos/staging-x86_64/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch
    (from rev 290071, glibc/trunk/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch)
  glibc/repos/staging-x86_64/PKGBUILD
    (from rev 290071, glibc/trunk/PKGBUILD)
  glibc/repos/staging-x86_64/glibc.install
    (from rev 290071, glibc/trunk/glibc.install)
  glibc/repos/staging-x86_64/locale-gen
    (from rev 290071, glibc/trunk/locale-gen)
  glibc/repos/staging-x86_64/locale.gen.txt
    (from rev 290071, glibc/trunk/locale.gen.txt)

-------------------------------------------------------------------------+
 staging-i686/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch   |   99 ++++++
 staging-i686/PKGBUILD                                                   |  155 ++++++++++
 staging-i686/glibc.install                                              |    5 
 staging-i686/locale-gen                                                 |   42 ++
 staging-i686/locale.gen.txt                                             |   23 +
 staging-x86_64/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch |   99 ++++++
 staging-x86_64/PKGBUILD                                                 |  155 ++++++++++
 staging-x86_64/glibc.install                                            |    5 
 staging-x86_64/locale-gen                                               |   42 ++
 staging-x86_64/locale.gen.txt                                           |   23 +
 10 files changed, 648 insertions(+)

Copied: glibc/repos/staging-i686/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch (from rev 290071, glibc/trunk/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch)
===================================================================
--- staging-i686/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch	                        (rev 0)
+++ staging-i686/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch	2017-03-07 02:20:37 UTC (rev 290072)
@@ -0,0 +1,99 @@
+From c903d7992134802ada495c137a4f1a2ac85af86e Mon Sep 17 00:00:00 2001
+From: Allan McRae <allan at archlinux.org>
+Date: Mon, 31 Oct 2016 15:10:23 +1000
+Subject: [PATCH] Revert "Avoid an extra branch to PLT for -z now"
+
+This reverts commit 6901def689b5c77465d34f07822989ec67e80c1e.
+---
+ ChangeLog               | 8 --------
+ config.h.in             | 3 ---
+ configure               | 4 ----
+ configure.ac            | 3 ---
+ sysdeps/x86_64/sysdep.h | 8 ++------
+ 5 files changed, 2 insertions(+), 24 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index b2f6372..e2119a3 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -2806,14 +2806,6 @@
+ 	(huge): Remove variable.
+ 	(__ceill): Do not force "inexact" exception.
+ 
+-2016-05-24  H.J. Lu  <hongjiu.lu at intel.com>
+-
+-	* config.h.in (BIND_NOW): New.
+-	* configure.ac (BIND_NOW): New.  Defined for --enable-bind-now.
+-	* configure: Regenerated.
+-	* sysdeps/x86_64/sysdep.h (JUMPTARGET)[BIND_NOW]: Defined to
+-	indirect branch via the GOT slot.
+-
+ 2016-05-24  Stefan Liebler  <stli at linux.vnet.ibm.com>
+ 
+ 	[BZ #19765]
+diff --git a/config.h.in b/config.h.in
+index 856ef6a..b96a4ce 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -91,9 +91,6 @@
+    include/libc-symbols.h that avoid PLT slots in the shared objects.  */
+ #undef	NO_HIDDEN
+ 
+-/* Define this to disable lazy relocations in DSOs.  */
+-#undef	BIND_NOW
+-
+ /* AArch64 big endian ABI */
+ #undef HAVE_AARCH64_BE
+ 
+diff --git a/configure b/configure
+index 17625e1..5cad071 100755
+--- a/configure
++++ b/configure
+@@ -3417,10 +3417,6 @@ else
+ fi
+ 
+ 
+-if test "x$bindnow" = xyes; then
+-  $as_echo "#define BIND_NOW 1" >>confdefs.h
+-
+-fi
+ 
+ # Check whether --enable-static-nss was given.
+ if test "${enable_static_nss+set}" = set; then :
+diff --git a/configure.ac b/configure.ac
+index 33bcd62..33701fa 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -231,9 +231,6 @@ AC_ARG_ENABLE([bind-now],
+ 	      [bindnow=$enableval],
+ 	      [bindnow=no])
+ AC_SUBST(bindnow)
+-if test "x$bindnow" = xyes; then
+-  AC_DEFINE(BIND_NOW)
+-fi
+ 
+ dnl On some platforms we cannot use dynamic loading.  We must provide
+ dnl static NSS modules.
+diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h
+index 75ac747..fbe3560 100644
+--- a/sysdeps/x86_64/sysdep.h
++++ b/sysdeps/x86_64/sysdep.h
+@@ -90,13 +90,9 @@ lose:									      \
+ 
+ #undef JUMPTARGET
+ #ifdef PIC
+-# ifdef BIND_NOW
+-#  define JUMPTARGET(name)	*name##@GOTPCREL(%rip)
+-# else
+-#  define JUMPTARGET(name)	name##@PLT
+-# endif
++#define JUMPTARGET(name)	name##@PLT
+ #else
+-# define JUMPTARGET(name)	name
++#define JUMPTARGET(name)	name
+ #endif
+ 
+ /* Local label name for asm code. */
+-- 
+2.10.1
+

Copied: glibc/repos/staging-i686/PKGBUILD (from rev 290071, glibc/trunk/PKGBUILD)
===================================================================
--- staging-i686/PKGBUILD	                        (rev 0)
+++ staging-i686/PKGBUILD	2017-03-07 02:20:37 UTC (rev 290072)
@@ -0,0 +1,155 @@
+# $Id$
+# Maintainer: Allan McRae <allan at archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each major glibc version
+
+pkgname=glibc
+pkgver=2.25
+pkgrel=1
+_commit=69e0a87cc4c570e3b7218392fc3e743b5bddcce2
+pkgdesc="GNU C Library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('linux-api-headers>=4.10' 'tzdata' 'filesystem')
+makedepends=('gcc>=6' 'git')
+backup=(etc/gai.conf
+        etc/locale.gen
+        etc/nscd.conf)
+options=('!strip' 'staticlibs')
+install=glibc.install
+source=(git+https://sourceware.org/git/glibc.git#commit=${_commit}
+        locale.gen.txt
+        locale-gen)
+md5sums=('SKIP'
+         '07ac979b6ab5eeb778d55f041529d623'
+         '476e9113489f93b348b21e144b6a8fcf')
+
+prepare() {
+  mkdir glibc-build
+  
+  cd glibc
+  # avoid crashes on i686 memchr-sse2.S
+  # https://sourceware.org/bugzilla/show_bug.cgi?id=21182
+  _revert_commit="23d27709a423aec32821e9a5198a10267107bae2"
+  _revert_file="sysdeps/i386/i686/multiarch/memchr-sse2.S"
+  git show ${_revert_commit} -- ${_revert_file} | git apply -R
+}
+
+build() {
+  cd glibc-build
+
+  if [[ ${CARCH} = "i686" ]]; then
+    # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+    export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+  fi
+
+  echo "slibdir=/usr/lib" >> configparms
+  echo "rtlddir=/usr/lib" >> configparms
+  echo "sbindir=/usr/bin" >> configparms
+  echo "rootsbindir=/usr/bin" >> configparms
+
+  # remove fortify for building libraries
+  CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}
+
+  ../${pkgname}/configure \
+      --prefix=/usr \
+      --libdir=/usr/lib \
+      --libexecdir=/usr/lib \
+      --with-headers=/usr/include \
+      --with-bugurl=https://bugs.archlinux.org/ \
+      --enable-add-ons \
+      --enable-obsolete-rpc \
+      --enable-kernel=2.6.32 \
+      --enable-bind-now \
+      --disable-profile \
+      --enable-stackguard-randomization \
+      --enable-stack-protector=strong \
+      --enable-lock-elision \
+      --enable-multi-arch \
+      --disable-werror
+
+  # build libraries with fortify disabled
+  echo "build-programs=no" >> configparms
+  make
+
+  # re-enable fortify for programs
+  sed -i "/build-programs=/s#no#yes#" configparms
+
+  echo "CC += -D_FORTIFY_SOURCE=2" >> configparms
+  echo "CXX += -D_FORTIFY_SOURCE=2" >> configparms
+  make
+}
+
+check() {
+  cd glibc-build
+
+  # remove fortify in preparation to run test-suite
+  sed -i '/FORTIFY/d' configparms
+
+  # some failures are "expected"
+  make check || true
+}
+
+package() {
+  cd glibc-build
+
+  install -dm755 ${pkgdir}/etc
+  touch ${pkgdir}/etc/ld.so.conf
+
+  make install_root=${pkgdir} install
+
+  rm -f ${pkgdir}/etc/ld.so.{cache,conf}
+
+  install -dm755 ${pkgdir}/usr/lib/{locale,systemd/system,tmpfiles.d}
+
+  install -m644 ${srcdir}/${pkgname}/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
+  install -m644 ${srcdir}/${pkgname}/nscd/nscd.service ${pkgdir}/usr/lib/systemd/system
+  install -m644 ${srcdir}/${pkgname}/nscd/nscd.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/nscd.conf
+
+  install -m644 ${srcdir}/${pkgname}/posix/gai.conf ${pkgdir}/etc/gai.conf
+
+  install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/bin
+
+  # create /etc/locale.gen
+  install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
+  sed -e '1,3d' -e 's|/| |g' -e 's|\\| |g' -e 's|^|#|g' \
+    ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
+
+  # Do not strip the following files for improved debugging support
+  # ("improved" as in not breaking gdb and valgrind...):
+  #   ld-${pkgver}.so
+  #   libc-${pkgver}.so
+  #   libpthread-${pkgver}.so
+  #   libthread_db-1.0.so
+
+  cd $pkgdir
+  strip $STRIP_BINARIES usr/bin/{gencat,getconf,getent,iconv,iconvconfig} \
+                        usr/bin/{ldconfig,locale,localedef,nscd,makedb} \
+                        usr/bin/{pcprofiledump,pldd,rpcgen,sln,sprof} \
+                        usr/lib/getconf/*
+  if [[ $CARCH = "i686" ]]; then
+    strip $STRIP_BINARIES usr/bin/lddlibc4
+  fi
+
+  strip $STRIP_STATIC usr/lib/lib{anl,BrokenLocale,c{,_nonshared},crypt}.a \
+                      usr/lib/lib{dl,g,ieee,mcheck,nsl,pthread{,_nonshared}}.a \
+                      usr/lib/lib{resolv,rpcsvc,rt,util}.a
+
+  strip $STRIP_SHARED usr/lib/lib{anl,BrokenLocale,cidn,crypt}-${pkgver}.so \
+                      usr/lib/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-*.so \
+                      usr/lib/lib{dl,m,nsl,resolv,rt,util}-${pkgver}.so \
+                      usr/lib/lib{memusage,pcprofile,SegFault}.so \
+                      usr/lib/{audit,gconv}/*.so || true
+
+  if [[ $CARCH = "x86_64" ]]; then
+    strip $STRIP_STATIC usr/lib/lib{m-${pkgver},mvec{,_nonshared}}.a
+    strip $STRIP_SHARED usr/lib/libmvec-*.so
+  fi
+  
+  if [[ $CARCH = "i686" ]]; then
+    strip $STRIP_STATIC usr/lib/libm.a
+  fi
+}

Copied: glibc/repos/staging-i686/glibc.install (from rev 290071, glibc/trunk/glibc.install)
===================================================================
--- staging-i686/glibc.install	                        (rev 0)
+++ staging-i686/glibc.install	2017-03-07 02:20:37 UTC (rev 290072)
@@ -0,0 +1,5 @@
+post_upgrade() {
+  locale-gen
+
+  ldconfig -r .
+}

Copied: glibc/repos/staging-i686/locale-gen (from rev 290071, glibc/trunk/locale-gen)
===================================================================
--- staging-i686/locale-gen	                        (rev 0)
+++ staging-i686/locale-gen	2017-03-07 02:20:37 UTC (rev 290072)
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+set -e
+
+LOCALEGEN=/etc/locale.gen
+LOCALES=/usr/share/i18n/locales
+if [ -n "$POSIXLY_CORRECT" ]; then
+  unset POSIXLY_CORRECT
+fi
+
+
+[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
+
+# Remove all old locale dir and locale-archive before generating new
+# locale data.
+rm -rf /usr/lib/locale/* || true
+
+umask 022
+
+is_entry_ok() {
+  if [ -n "$locale" -a -n "$charset" ] ; then
+    true
+  else
+    echo "error: Bad entry '$locale $charset'"
+    false
+  fi
+}
+
+echo "Generating locales..."
+while read locale charset; do \
+	case $locale in \#*) continue;; "") continue;; esac; \
+	is_entry_ok || continue
+	echo -n "  `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
+	echo -n ".$charset"; \
+	echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
+	echo -n '...'; \
+        if [ -f $LOCALES/$locale ]; then input=$locale; else \
+        input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \
+	localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \
+	echo ' done'; \
+done < $LOCALEGEN
+echo "Generation complete."

Copied: glibc/repos/staging-i686/locale.gen.txt (from rev 290071, glibc/trunk/locale.gen.txt)
===================================================================
--- staging-i686/locale.gen.txt	                        (rev 0)
+++ staging-i686/locale.gen.txt	2017-03-07 02:20:37 UTC (rev 290072)
@@ -0,0 +1,23 @@
+# Configuration file for locale-gen
+#
+# lists of locales that are to be generated by the locale-gen command.
+#
+# Each line is of the form:
+#
+#     <locale> <charset>
+#
+#  where <locale> is one of the locales given in /usr/share/i18n/locales
+#  and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
+#
+#  Examples:
+#  en_US ISO-8859-1
+#  en_US.UTF-8 UTF-8
+#  de_DE ISO-8859-1
+#  de_DE at euro ISO-8859-15
+#
+#  The locale-gen command will generate all the locales,
+#  placing them in /usr/lib/locale.
+#
+#  A list of supported locales is included in this file.
+#  Uncomment the ones you need.
+#

Copied: glibc/repos/staging-x86_64/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch (from rev 290071, glibc/trunk/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch)
===================================================================
--- staging-x86_64/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch	                        (rev 0)
+++ staging-x86_64/0001-Revert-Avoid-an-extra-branch-to-PLT-for-z-now.patch	2017-03-07 02:20:37 UTC (rev 290072)
@@ -0,0 +1,99 @@
+From c903d7992134802ada495c137a4f1a2ac85af86e Mon Sep 17 00:00:00 2001
+From: Allan McRae <allan at archlinux.org>
+Date: Mon, 31 Oct 2016 15:10:23 +1000
+Subject: [PATCH] Revert "Avoid an extra branch to PLT for -z now"
+
+This reverts commit 6901def689b5c77465d34f07822989ec67e80c1e.
+---
+ ChangeLog               | 8 --------
+ config.h.in             | 3 ---
+ configure               | 4 ----
+ configure.ac            | 3 ---
+ sysdeps/x86_64/sysdep.h | 8 ++------
+ 5 files changed, 2 insertions(+), 24 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index b2f6372..e2119a3 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -2806,14 +2806,6 @@
+ 	(huge): Remove variable.
+ 	(__ceill): Do not force "inexact" exception.
+ 
+-2016-05-24  H.J. Lu  <hongjiu.lu at intel.com>
+-
+-	* config.h.in (BIND_NOW): New.
+-	* configure.ac (BIND_NOW): New.  Defined for --enable-bind-now.
+-	* configure: Regenerated.
+-	* sysdeps/x86_64/sysdep.h (JUMPTARGET)[BIND_NOW]: Defined to
+-	indirect branch via the GOT slot.
+-
+ 2016-05-24  Stefan Liebler  <stli at linux.vnet.ibm.com>
+ 
+ 	[BZ #19765]
+diff --git a/config.h.in b/config.h.in
+index 856ef6a..b96a4ce 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -91,9 +91,6 @@
+    include/libc-symbols.h that avoid PLT slots in the shared objects.  */
+ #undef	NO_HIDDEN
+ 
+-/* Define this to disable lazy relocations in DSOs.  */
+-#undef	BIND_NOW
+-
+ /* AArch64 big endian ABI */
+ #undef HAVE_AARCH64_BE
+ 
+diff --git a/configure b/configure
+index 17625e1..5cad071 100755
+--- a/configure
++++ b/configure
+@@ -3417,10 +3417,6 @@ else
+ fi
+ 
+ 
+-if test "x$bindnow" = xyes; then
+-  $as_echo "#define BIND_NOW 1" >>confdefs.h
+-
+-fi
+ 
+ # Check whether --enable-static-nss was given.
+ if test "${enable_static_nss+set}" = set; then :
+diff --git a/configure.ac b/configure.ac
+index 33bcd62..33701fa 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -231,9 +231,6 @@ AC_ARG_ENABLE([bind-now],
+ 	      [bindnow=$enableval],
+ 	      [bindnow=no])
+ AC_SUBST(bindnow)
+-if test "x$bindnow" = xyes; then
+-  AC_DEFINE(BIND_NOW)
+-fi
+ 
+ dnl On some platforms we cannot use dynamic loading.  We must provide
+ dnl static NSS modules.
+diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h
+index 75ac747..fbe3560 100644
+--- a/sysdeps/x86_64/sysdep.h
++++ b/sysdeps/x86_64/sysdep.h
+@@ -90,13 +90,9 @@ lose:									      \
+ 
+ #undef JUMPTARGET
+ #ifdef PIC
+-# ifdef BIND_NOW
+-#  define JUMPTARGET(name)	*name##@GOTPCREL(%rip)
+-# else
+-#  define JUMPTARGET(name)	name##@PLT
+-# endif
++#define JUMPTARGET(name)	name##@PLT
+ #else
+-# define JUMPTARGET(name)	name
++#define JUMPTARGET(name)	name
+ #endif
+ 
+ /* Local label name for asm code. */
+-- 
+2.10.1
+

Copied: glibc/repos/staging-x86_64/PKGBUILD (from rev 290071, glibc/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD	                        (rev 0)
+++ staging-x86_64/PKGBUILD	2017-03-07 02:20:37 UTC (rev 290072)
@@ -0,0 +1,155 @@
+# $Id$
+# Maintainer: Allan McRae <allan at archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each major glibc version
+
+pkgname=glibc
+pkgver=2.25
+pkgrel=1
+_commit=69e0a87cc4c570e3b7218392fc3e743b5bddcce2
+pkgdesc="GNU C Library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('linux-api-headers>=4.10' 'tzdata' 'filesystem')
+makedepends=('gcc>=6' 'git')
+backup=(etc/gai.conf
+        etc/locale.gen
+        etc/nscd.conf)
+options=('!strip' 'staticlibs')
+install=glibc.install
+source=(git+https://sourceware.org/git/glibc.git#commit=${_commit}
+        locale.gen.txt
+        locale-gen)
+md5sums=('SKIP'
+         '07ac979b6ab5eeb778d55f041529d623'
+         '476e9113489f93b348b21e144b6a8fcf')
+
+prepare() {
+  mkdir glibc-build
+  
+  cd glibc
+  # avoid crashes on i686 memchr-sse2.S
+  # https://sourceware.org/bugzilla/show_bug.cgi?id=21182
+  _revert_commit="23d27709a423aec32821e9a5198a10267107bae2"
+  _revert_file="sysdeps/i386/i686/multiarch/memchr-sse2.S"
+  git show ${_revert_commit} -- ${_revert_file} | git apply -R
+}
+
+build() {
+  cd glibc-build
+
+  if [[ ${CARCH} = "i686" ]]; then
+    # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+    export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+  fi
+
+  echo "slibdir=/usr/lib" >> configparms
+  echo "rtlddir=/usr/lib" >> configparms
+  echo "sbindir=/usr/bin" >> configparms
+  echo "rootsbindir=/usr/bin" >> configparms
+
+  # remove fortify for building libraries
+  CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}
+
+  ../${pkgname}/configure \
+      --prefix=/usr \
+      --libdir=/usr/lib \
+      --libexecdir=/usr/lib \
+      --with-headers=/usr/include \
+      --with-bugurl=https://bugs.archlinux.org/ \
+      --enable-add-ons \
+      --enable-obsolete-rpc \
+      --enable-kernel=2.6.32 \
+      --enable-bind-now \
+      --disable-profile \
+      --enable-stackguard-randomization \
+      --enable-stack-protector=strong \
+      --enable-lock-elision \
+      --enable-multi-arch \
+      --disable-werror
+
+  # build libraries with fortify disabled
+  echo "build-programs=no" >> configparms
+  make
+
+  # re-enable fortify for programs
+  sed -i "/build-programs=/s#no#yes#" configparms
+
+  echo "CC += -D_FORTIFY_SOURCE=2" >> configparms
+  echo "CXX += -D_FORTIFY_SOURCE=2" >> configparms
+  make
+}
+
+check() {
+  cd glibc-build
+
+  # remove fortify in preparation to run test-suite
+  sed -i '/FORTIFY/d' configparms
+
+  # some failures are "expected"
+  make check || true
+}
+
+package() {
+  cd glibc-build
+
+  install -dm755 ${pkgdir}/etc
+  touch ${pkgdir}/etc/ld.so.conf
+
+  make install_root=${pkgdir} install
+
+  rm -f ${pkgdir}/etc/ld.so.{cache,conf}
+
+  install -dm755 ${pkgdir}/usr/lib/{locale,systemd/system,tmpfiles.d}
+
+  install -m644 ${srcdir}/${pkgname}/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
+  install -m644 ${srcdir}/${pkgname}/nscd/nscd.service ${pkgdir}/usr/lib/systemd/system
+  install -m644 ${srcdir}/${pkgname}/nscd/nscd.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/nscd.conf
+
+  install -m644 ${srcdir}/${pkgname}/posix/gai.conf ${pkgdir}/etc/gai.conf
+
+  install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/bin
+
+  # create /etc/locale.gen
+  install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
+  sed -e '1,3d' -e 's|/| |g' -e 's|\\| |g' -e 's|^|#|g' \
+    ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
+
+  # Do not strip the following files for improved debugging support
+  # ("improved" as in not breaking gdb and valgrind...):
+  #   ld-${pkgver}.so
+  #   libc-${pkgver}.so
+  #   libpthread-${pkgver}.so
+  #   libthread_db-1.0.so
+
+  cd $pkgdir
+  strip $STRIP_BINARIES usr/bin/{gencat,getconf,getent,iconv,iconvconfig} \
+                        usr/bin/{ldconfig,locale,localedef,nscd,makedb} \
+                        usr/bin/{pcprofiledump,pldd,rpcgen,sln,sprof} \
+                        usr/lib/getconf/*
+  if [[ $CARCH = "i686" ]]; then
+    strip $STRIP_BINARIES usr/bin/lddlibc4
+  fi
+
+  strip $STRIP_STATIC usr/lib/lib{anl,BrokenLocale,c{,_nonshared},crypt}.a \
+                      usr/lib/lib{dl,g,ieee,mcheck,nsl,pthread{,_nonshared}}.a \
+                      usr/lib/lib{resolv,rpcsvc,rt,util}.a
+
+  strip $STRIP_SHARED usr/lib/lib{anl,BrokenLocale,cidn,crypt}-${pkgver}.so \
+                      usr/lib/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-*.so \
+                      usr/lib/lib{dl,m,nsl,resolv,rt,util}-${pkgver}.so \
+                      usr/lib/lib{memusage,pcprofile,SegFault}.so \
+                      usr/lib/{audit,gconv}/*.so || true
+
+  if [[ $CARCH = "x86_64" ]]; then
+    strip $STRIP_STATIC usr/lib/lib{m-${pkgver},mvec{,_nonshared}}.a
+    strip $STRIP_SHARED usr/lib/libmvec-*.so
+  fi
+  
+  if [[ $CARCH = "i686" ]]; then
+    strip $STRIP_STATIC usr/lib/libm.a
+  fi
+}

Copied: glibc/repos/staging-x86_64/glibc.install (from rev 290071, glibc/trunk/glibc.install)
===================================================================
--- staging-x86_64/glibc.install	                        (rev 0)
+++ staging-x86_64/glibc.install	2017-03-07 02:20:37 UTC (rev 290072)
@@ -0,0 +1,5 @@
+post_upgrade() {
+  locale-gen
+
+  ldconfig -r .
+}

Copied: glibc/repos/staging-x86_64/locale-gen (from rev 290071, glibc/trunk/locale-gen)
===================================================================
--- staging-x86_64/locale-gen	                        (rev 0)
+++ staging-x86_64/locale-gen	2017-03-07 02:20:37 UTC (rev 290072)
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+set -e
+
+LOCALEGEN=/etc/locale.gen
+LOCALES=/usr/share/i18n/locales
+if [ -n "$POSIXLY_CORRECT" ]; then
+  unset POSIXLY_CORRECT
+fi
+
+
+[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
+
+# Remove all old locale dir and locale-archive before generating new
+# locale data.
+rm -rf /usr/lib/locale/* || true
+
+umask 022
+
+is_entry_ok() {
+  if [ -n "$locale" -a -n "$charset" ] ; then
+    true
+  else
+    echo "error: Bad entry '$locale $charset'"
+    false
+  fi
+}
+
+echo "Generating locales..."
+while read locale charset; do \
+	case $locale in \#*) continue;; "") continue;; esac; \
+	is_entry_ok || continue
+	echo -n "  `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
+	echo -n ".$charset"; \
+	echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
+	echo -n '...'; \
+        if [ -f $LOCALES/$locale ]; then input=$locale; else \
+        input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \
+	localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \
+	echo ' done'; \
+done < $LOCALEGEN
+echo "Generation complete."

Copied: glibc/repos/staging-x86_64/locale.gen.txt (from rev 290071, glibc/trunk/locale.gen.txt)
===================================================================
--- staging-x86_64/locale.gen.txt	                        (rev 0)
+++ staging-x86_64/locale.gen.txt	2017-03-07 02:20:37 UTC (rev 290072)
@@ -0,0 +1,23 @@
+# Configuration file for locale-gen
+#
+# lists of locales that are to be generated by the locale-gen command.
+#
+# Each line is of the form:
+#
+#     <locale> <charset>
+#
+#  where <locale> is one of the locales given in /usr/share/i18n/locales
+#  and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
+#
+#  Examples:
+#  en_US ISO-8859-1
+#  en_US.UTF-8 UTF-8
+#  de_DE ISO-8859-1
+#  de_DE at euro ISO-8859-15
+#
+#  The locale-gen command will generate all the locales,
+#  placing them in /usr/lib/locale.
+#
+#  A list of supported locales is included in this file.
+#  Uncomment the ones you need.
+#


More information about the arch-commits mailing list