Date: Friday, September 8, 2017 @ 12:20:58 Author: bpiotrowski Revision: 305067
archrelease: copy trunk to testing-i686, testing-x86_64 Added: glibc/repos/testing-i686/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch (from rev 305066, glibc/trunk/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch) glibc/repos/testing-i686/PKGBUILD (from rev 305066, glibc/trunk/PKGBUILD) glibc/repos/testing-i686/glibc.install (from rev 305066, glibc/trunk/glibc.install) glibc/repos/testing-i686/locale-gen (from rev 305066, glibc/trunk/locale-gen) glibc/repos/testing-i686/locale.gen.txt (from rev 305066, glibc/trunk/locale.gen.txt) glibc/repos/testing-x86_64/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch (from rev 305066, glibc/trunk/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch) glibc/repos/testing-x86_64/PKGBUILD (from rev 305066, glibc/trunk/PKGBUILD) glibc/repos/testing-x86_64/glibc.install (from rev 305066, glibc/trunk/glibc.install) glibc/repos/testing-x86_64/locale-gen (from rev 305066, glibc/trunk/locale-gen) glibc/repos/testing-x86_64/locale.gen.txt (from rev 305066, glibc/trunk/locale.gen.txt) Deleted: glibc/repos/testing-i686/PKGBUILD glibc/repos/testing-i686/glibc.install glibc/repos/testing-i686/locale-gen glibc/repos/testing-i686/locale.gen.txt glibc/repos/testing-x86_64/PKGBUILD glibc/repos/testing-x86_64/glibc.install glibc/repos/testing-x86_64/locale-gen glibc/repos/testing-x86_64/locale.gen.txt --------------------------------------------------------------------------------+ /PKGBUILD | 314 ++++++++++ /glibc.install | 10 /locale-gen | 84 ++ /locale.gen.txt | 46 + testing-i686/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch | 110 +++ testing-i686/PKGBUILD | 152 ---- testing-i686/glibc.install | 5 testing-i686/locale-gen | 42 - testing-i686/locale.gen.txt | 23 testing-x86_64/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch | 110 +++ testing-x86_64/PKGBUILD | 152 ---- testing-x86_64/glibc.install | 5 testing-x86_64/locale-gen | 42 - testing-x86_64/locale.gen.txt | 23 14 files changed, 674 insertions(+), 444 deletions(-) Copied: glibc/repos/testing-i686/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch (from rev 305066, glibc/trunk/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch) =================================================================== --- testing-i686/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch (rev 0) +++ testing-i686/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch 2017-09-08 12:20:58 UTC (rev 305067) @@ -0,0 +1,110 @@ +From fc5ad7024c620cdfe9b76e94638aac83b99c5bf8 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab <sch...@suse.de> +Date: Tue, 8 Aug 2017 16:21:58 +0200 +Subject: [PATCH] Don't use IFUNC resolver for longjmp or system in libpthread + (bug 21041) + +Unlike the vfork forwarder and like the fork forwarder as in bug 19861, +there won't be a problem when the compiler does not turn this into a tail +call. +--- + nptl/pt-longjmp.c | 31 ++++++++++--------------------- + nptl/pt-system.c | 24 ++++++++---------------- + 3 files changed, 18 insertions(+), 37 deletions(-) + +diff --git a/nptl/pt-longjmp.c b/nptl/pt-longjmp.c +index 2ef757e687f..8f3c6b3a09f 100644 +--- a/nptl/pt-longjmp.c ++++ b/nptl/pt-longjmp.c +@@ -25,21 +25,14 @@ + symbol in libpthread, but the historical ABI requires it. For static + linking, there is no need to provide anything here--the libc version + will be linked in. For shared library ABI compatibility, there must be +- longjmp and siglongjmp symbols in libpthread.so; so we define them using +- IFUNC to redirect to the libc function. */ ++ longjmp and siglongjmp symbols in libpthread.so. + +-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) +- +-# if HAVE_IFUNC +- +-# undef INIT_ARCH +-# define INIT_ARCH() +-# define DEFINE_LONGJMP(name) libc_ifunc (name, &__libc_longjmp) +- +-extern __typeof(longjmp) longjmp_ifunc; +-extern __typeof(siglongjmp) siglongjmp_ifunc; ++ With an IFUNC resolver, it would be possible to avoid the indirection, ++ but the IFUNC resolver might run before the __libc_longjmp symbol has ++ been relocated, in which case the IFUNC resolver would not be able to ++ provide the correct address. */ + +-# else /* !HAVE_IFUNC */ ++#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) + + static void __attribute__ ((noreturn, used)) + longjmp_compat (jmp_buf env, int val) +@@ -47,14 +40,10 @@ longjmp_compat (jmp_buf env, int val) + __libc_longjmp (env, val); + } + +-# define DEFINE_LONGJMP(name) strong_alias (longjmp_compat, name) +- +-# endif /* HAVE_IFUNC */ +- +-DEFINE_LONGJMP (longjmp_ifunc) +-compat_symbol (libpthread, longjmp_ifunc, longjmp, GLIBC_2_0); ++strong_alias (longjmp_compat, longjmp_alias) ++compat_symbol (libpthread, longjmp_alias, longjmp, GLIBC_2_0); + +-strong_alias (longjmp_ifunc, siglongjmp_ifunc) +-compat_symbol (libpthread, siglongjmp_ifunc, siglongjmp, GLIBC_2_0); ++strong_alias (longjmp_alias, siglongjmp_alias) ++compat_symbol (libpthread, siglongjmp_alias, siglongjmp, GLIBC_2_0); + + #endif +diff --git a/nptl/pt-system.c b/nptl/pt-system.c +index f8ca6ba0d94..b30ddf2b398 100644 +--- a/nptl/pt-system.c ++++ b/nptl/pt-system.c +@@ -25,29 +25,21 @@ + libpthread, but the historical ABI requires it. For static linking, + there is no need to provide anything here--the libc version will be + linked in. For shared library ABI compatibility, there must be a +- 'system' symbol in libpthread.so; so we define it using IFUNC to +- redirect to the libc function. */ ++ 'system' symbol in libpthread.so. + +-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) +- +-# if HAVE_IFUNC +- +-extern __typeof(system) system_ifunc; +-# undef INIT_ARCH +-# define INIT_ARCH() +-libc_ifunc (system_ifunc, &__libc_system) ++ With an IFUNC resolver, it would be possible to avoid the indirection, ++ but the IFUNC resolver might run before the __libc_system symbol has ++ been relocated, in which case the IFUNC resolver would not be able to ++ provide the correct address. */ + +-# else /* !HAVE_IFUNC */ ++#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) + + static int __attribute__ ((used)) + system_compat (const char *line) + { + return __libc_system (line); + } +-strong_alias (system_compat, system_ifunc) +- +-# endif /* HAVE_IFUNC */ +- +-compat_symbol (libpthread, system_ifunc, system, GLIBC_2_0); ++strong_alias (system_compat, system_alias) ++compat_symbol (libpthread, system_alias, system, GLIBC_2_0); + + #endif +-- +2.14.1 + Deleted: testing-i686/PKGBUILD =================================================================== --- testing-i686/PKGBUILD 2017-09-08 12:20:46 UTC (rev 305066) +++ testing-i686/PKGBUILD 2017-09-08 12:20:58 UTC (rev 305067) @@ -1,152 +0,0 @@ -# $Id$ -# Maintainer: Bartłomiej Piotrowski <bpiotrow...@archlinux.org> -# Contributor: Allan McRae <al...@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.26 -pkgrel=2 -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=(git gd) -optdepends=('gd: for memusagestat') -backup=(etc/gai.conf - etc/locale.gen - etc/nscd.conf) -options=(!strip staticlibs) -install=glibc.install -_commit=58270c0049404ef2f878fdd45df55f17f0b8c1f7 -source=(git+https://sourceware.org/git/glibc.git#commit=${_commit} - locale.gen.txt - locale-gen) -md5sums=('SKIP' - '07ac979b6ab5eeb778d55f041529d623' - '476e9113489f93b348b21e144b6a8fcf') - -# pkgver() { -# cd glibc -# git describe --tags | sed 's/^glibc-//;s/-/+/g' -# } - -prepare() { - mkdir -p glibc-build -} - -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/} - - "$srcdir/glibc/configure" \ - --prefix=/usr \ - --libdir=/usr/lib \ - --libexecdir=/usr/lib \ - --with-headers=/usr/include \ - --with-bugurl=https://bugs.archlinux.org/ \ - --enable-add-ons \ - --enable-bind-now \ - --enable-lock-elision \ - --enable-multi-arch \ - --enable-obsolete-nsl \ - --enable-obsolete-rpc \ - --enable-stack-protector=strong \ - --enable-stackguard-randomization \ - --disable-profile \ - --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() { - install -dm755 "$pkgdir/etc" - touch "$pkgdir/etc/ld.so.conf" - - make -C glibc-build install_root="$pkgdir" install - rm -f "$pkgdir"/etc/ld.so.{cache,conf} - - cd glibc - - install -dm755 "$pkgdir"/usr/lib/{locale,systemd/system,tmpfiles.d} - install -m644 nscd/nscd.conf "$pkgdir/etc/nscd.conf" - install -m644 nscd/nscd.service "$pkgdir/usr/lib/systemd/system" - install -m644 nscd/nscd.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/nscd.conf" - install -dm755 "$pkgdir/var/db/nscd" - - install -m644 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/* - - 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_BINARIES usr/bin/lddlibc4 - strip $STRIP_STATIC usr/lib/libm.a - fi -} Copied: glibc/repos/testing-i686/PKGBUILD (from rev 305066, glibc/trunk/PKGBUILD) =================================================================== --- testing-i686/PKGBUILD (rev 0) +++ testing-i686/PKGBUILD 2017-09-08 12:20:58 UTC (rev 305067) @@ -0,0 +1,157 @@ +# $Id$ +# Maintainer: Bartłomiej Piotrowski <bpiotrow...@archlinux.org> +# Contributor: Allan McRae <al...@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.26 +pkgrel=3 +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=(git gd) +optdepends=('gd: for memusagestat') +backup=(etc/gai.conf + etc/locale.gen + etc/nscd.conf) +options=(!strip staticlibs) +install=glibc.install +_commit=58270c0049404ef2f878fdd45df55f17f0b8c1f7 +source=(git+https://sourceware.org/git/glibc.git#commit=${_commit} + locale.gen.txt + locale-gen + 0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch) +md5sums=('SKIP' + '07ac979b6ab5eeb778d55f041529d623' + '476e9113489f93b348b21e144b6a8fcf' + 'cbc073315c00b03898b7fc614274d6b3') + +# pkgver() { +# cd glibc +# git describe --tags | sed 's/^glibc-//;s/-/+/g' +# } + +prepare() { + mkdir -p glibc-build + + cd glibc + patch -p1 -i "$srcdir/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch" +} + +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/} + + "$srcdir/glibc/configure" \ + --prefix=/usr \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --with-headers=/usr/include \ + --with-bugurl=https://bugs.archlinux.org/ \ + --enable-add-ons \ + --enable-bind-now \ + --enable-lock-elision \ + --enable-multi-arch \ + --enable-obsolete-nsl \ + --enable-obsolete-rpc \ + --enable-stack-protector=strong \ + --enable-stackguard-randomization \ + --disable-profile \ + --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() { + install -dm755 "$pkgdir/etc" + touch "$pkgdir/etc/ld.so.conf" + + make -C glibc-build install_root="$pkgdir" install + rm -f "$pkgdir"/etc/ld.so.{cache,conf} + + cd glibc + + install -dm755 "$pkgdir"/usr/lib/{locale,systemd/system,tmpfiles.d} + install -m644 nscd/nscd.conf "$pkgdir/etc/nscd.conf" + install -m644 nscd/nscd.service "$pkgdir/usr/lib/systemd/system" + install -m644 nscd/nscd.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/nscd.conf" + install -dm755 "$pkgdir/var/db/nscd" + + install -m644 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/* + + 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_BINARIES usr/bin/lddlibc4 + strip $STRIP_STATIC usr/lib/libm.a + fi +} Deleted: testing-i686/glibc.install =================================================================== --- testing-i686/glibc.install 2017-09-08 12:20:46 UTC (rev 305066) +++ testing-i686/glibc.install 2017-09-08 12:20:58 UTC (rev 305067) @@ -1,5 +0,0 @@ -post_upgrade() { - locale-gen - - ldconfig -r . -} Copied: glibc/repos/testing-i686/glibc.install (from rev 305066, glibc/trunk/glibc.install) =================================================================== --- testing-i686/glibc.install (rev 0) +++ testing-i686/glibc.install 2017-09-08 12:20:58 UTC (rev 305067) @@ -0,0 +1,5 @@ +post_upgrade() { + locale-gen + + ldconfig -r . +} Deleted: testing-i686/locale-gen =================================================================== --- testing-i686/locale-gen 2017-09-08 12:20:46 UTC (rev 305066) +++ testing-i686/locale-gen 2017-09-08 12:20:58 UTC (rev 305067) @@ -1,42 +0,0 @@ -#!/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/testing-i686/locale-gen (from rev 305066, glibc/trunk/locale-gen) =================================================================== --- testing-i686/locale-gen (rev 0) +++ testing-i686/locale-gen 2017-09-08 12:20:58 UTC (rev 305067) @@ -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." Deleted: testing-i686/locale.gen.txt =================================================================== --- testing-i686/locale.gen.txt 2017-09-08 12:20:46 UTC (rev 305066) +++ testing-i686/locale.gen.txt 2017-09-08 12:20:58 UTC (rev 305067) @@ -1,23 +0,0 @@ -# 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@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/testing-i686/locale.gen.txt (from rev 305066, glibc/trunk/locale.gen.txt) =================================================================== --- testing-i686/locale.gen.txt (rev 0) +++ testing-i686/locale.gen.txt 2017-09-08 12:20:58 UTC (rev 305067) @@ -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@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/testing-x86_64/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch (from rev 305066, glibc/trunk/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch) =================================================================== --- testing-x86_64/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch (rev 0) +++ testing-x86_64/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch 2017-09-08 12:20:58 UTC (rev 305067) @@ -0,0 +1,110 @@ +From fc5ad7024c620cdfe9b76e94638aac83b99c5bf8 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab <sch...@suse.de> +Date: Tue, 8 Aug 2017 16:21:58 +0200 +Subject: [PATCH] Don't use IFUNC resolver for longjmp or system in libpthread + (bug 21041) + +Unlike the vfork forwarder and like the fork forwarder as in bug 19861, +there won't be a problem when the compiler does not turn this into a tail +call. +--- + nptl/pt-longjmp.c | 31 ++++++++++--------------------- + nptl/pt-system.c | 24 ++++++++---------------- + 3 files changed, 18 insertions(+), 37 deletions(-) + +diff --git a/nptl/pt-longjmp.c b/nptl/pt-longjmp.c +index 2ef757e687f..8f3c6b3a09f 100644 +--- a/nptl/pt-longjmp.c ++++ b/nptl/pt-longjmp.c +@@ -25,21 +25,14 @@ + symbol in libpthread, but the historical ABI requires it. For static + linking, there is no need to provide anything here--the libc version + will be linked in. For shared library ABI compatibility, there must be +- longjmp and siglongjmp symbols in libpthread.so; so we define them using +- IFUNC to redirect to the libc function. */ ++ longjmp and siglongjmp symbols in libpthread.so. + +-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) +- +-# if HAVE_IFUNC +- +-# undef INIT_ARCH +-# define INIT_ARCH() +-# define DEFINE_LONGJMP(name) libc_ifunc (name, &__libc_longjmp) +- +-extern __typeof(longjmp) longjmp_ifunc; +-extern __typeof(siglongjmp) siglongjmp_ifunc; ++ With an IFUNC resolver, it would be possible to avoid the indirection, ++ but the IFUNC resolver might run before the __libc_longjmp symbol has ++ been relocated, in which case the IFUNC resolver would not be able to ++ provide the correct address. */ + +-# else /* !HAVE_IFUNC */ ++#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) + + static void __attribute__ ((noreturn, used)) + longjmp_compat (jmp_buf env, int val) +@@ -47,14 +40,10 @@ longjmp_compat (jmp_buf env, int val) + __libc_longjmp (env, val); + } + +-# define DEFINE_LONGJMP(name) strong_alias (longjmp_compat, name) +- +-# endif /* HAVE_IFUNC */ +- +-DEFINE_LONGJMP (longjmp_ifunc) +-compat_symbol (libpthread, longjmp_ifunc, longjmp, GLIBC_2_0); ++strong_alias (longjmp_compat, longjmp_alias) ++compat_symbol (libpthread, longjmp_alias, longjmp, GLIBC_2_0); + +-strong_alias (longjmp_ifunc, siglongjmp_ifunc) +-compat_symbol (libpthread, siglongjmp_ifunc, siglongjmp, GLIBC_2_0); ++strong_alias (longjmp_alias, siglongjmp_alias) ++compat_symbol (libpthread, siglongjmp_alias, siglongjmp, GLIBC_2_0); + + #endif +diff --git a/nptl/pt-system.c b/nptl/pt-system.c +index f8ca6ba0d94..b30ddf2b398 100644 +--- a/nptl/pt-system.c ++++ b/nptl/pt-system.c +@@ -25,29 +25,21 @@ + libpthread, but the historical ABI requires it. For static linking, + there is no need to provide anything here--the libc version will be + linked in. For shared library ABI compatibility, there must be a +- 'system' symbol in libpthread.so; so we define it using IFUNC to +- redirect to the libc function. */ ++ 'system' symbol in libpthread.so. + +-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) +- +-# if HAVE_IFUNC +- +-extern __typeof(system) system_ifunc; +-# undef INIT_ARCH +-# define INIT_ARCH() +-libc_ifunc (system_ifunc, &__libc_system) ++ With an IFUNC resolver, it would be possible to avoid the indirection, ++ but the IFUNC resolver might run before the __libc_system symbol has ++ been relocated, in which case the IFUNC resolver would not be able to ++ provide the correct address. */ + +-# else /* !HAVE_IFUNC */ ++#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) + + static int __attribute__ ((used)) + system_compat (const char *line) + { + return __libc_system (line); + } +-strong_alias (system_compat, system_ifunc) +- +-# endif /* HAVE_IFUNC */ +- +-compat_symbol (libpthread, system_ifunc, system, GLIBC_2_0); ++strong_alias (system_compat, system_alias) ++compat_symbol (libpthread, system_alias, system, GLIBC_2_0); + + #endif +-- +2.14.1 + Deleted: testing-x86_64/PKGBUILD =================================================================== --- testing-x86_64/PKGBUILD 2017-09-08 12:20:46 UTC (rev 305066) +++ testing-x86_64/PKGBUILD 2017-09-08 12:20:58 UTC (rev 305067) @@ -1,152 +0,0 @@ -# $Id$ -# Maintainer: Bartłomiej Piotrowski <bpiotrow...@archlinux.org> -# Contributor: Allan McRae <al...@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.26 -pkgrel=2 -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=(git gd) -optdepends=('gd: for memusagestat') -backup=(etc/gai.conf - etc/locale.gen - etc/nscd.conf) -options=(!strip staticlibs) -install=glibc.install -_commit=58270c0049404ef2f878fdd45df55f17f0b8c1f7 -source=(git+https://sourceware.org/git/glibc.git#commit=${_commit} - locale.gen.txt - locale-gen) -md5sums=('SKIP' - '07ac979b6ab5eeb778d55f041529d623' - '476e9113489f93b348b21e144b6a8fcf') - -# pkgver() { -# cd glibc -# git describe --tags | sed 's/^glibc-//;s/-/+/g' -# } - -prepare() { - mkdir -p glibc-build -} - -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/} - - "$srcdir/glibc/configure" \ - --prefix=/usr \ - --libdir=/usr/lib \ - --libexecdir=/usr/lib \ - --with-headers=/usr/include \ - --with-bugurl=https://bugs.archlinux.org/ \ - --enable-add-ons \ - --enable-bind-now \ - --enable-lock-elision \ - --enable-multi-arch \ - --enable-obsolete-nsl \ - --enable-obsolete-rpc \ - --enable-stack-protector=strong \ - --enable-stackguard-randomization \ - --disable-profile \ - --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() { - install -dm755 "$pkgdir/etc" - touch "$pkgdir/etc/ld.so.conf" - - make -C glibc-build install_root="$pkgdir" install - rm -f "$pkgdir"/etc/ld.so.{cache,conf} - - cd glibc - - install -dm755 "$pkgdir"/usr/lib/{locale,systemd/system,tmpfiles.d} - install -m644 nscd/nscd.conf "$pkgdir/etc/nscd.conf" - install -m644 nscd/nscd.service "$pkgdir/usr/lib/systemd/system" - install -m644 nscd/nscd.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/nscd.conf" - install -dm755 "$pkgdir/var/db/nscd" - - install -m644 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/* - - 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_BINARIES usr/bin/lddlibc4 - strip $STRIP_STATIC usr/lib/libm.a - fi -} Copied: glibc/repos/testing-x86_64/PKGBUILD (from rev 305066, glibc/trunk/PKGBUILD) =================================================================== --- testing-x86_64/PKGBUILD (rev 0) +++ testing-x86_64/PKGBUILD 2017-09-08 12:20:58 UTC (rev 305067) @@ -0,0 +1,157 @@ +# $Id$ +# Maintainer: Bartłomiej Piotrowski <bpiotrow...@archlinux.org> +# Contributor: Allan McRae <al...@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.26 +pkgrel=3 +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=(git gd) +optdepends=('gd: for memusagestat') +backup=(etc/gai.conf + etc/locale.gen + etc/nscd.conf) +options=(!strip staticlibs) +install=glibc.install +_commit=58270c0049404ef2f878fdd45df55f17f0b8c1f7 +source=(git+https://sourceware.org/git/glibc.git#commit=${_commit} + locale.gen.txt + locale-gen + 0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch) +md5sums=('SKIP' + '07ac979b6ab5eeb778d55f041529d623' + '476e9113489f93b348b21e144b6a8fcf' + 'cbc073315c00b03898b7fc614274d6b3') + +# pkgver() { +# cd glibc +# git describe --tags | sed 's/^glibc-//;s/-/+/g' +# } + +prepare() { + mkdir -p glibc-build + + cd glibc + patch -p1 -i "$srcdir/0001-Don-t-use-IFUNC-resolver-for-longjmp-or-system-in-li.patch" +} + +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/} + + "$srcdir/glibc/configure" \ + --prefix=/usr \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --with-headers=/usr/include \ + --with-bugurl=https://bugs.archlinux.org/ \ + --enable-add-ons \ + --enable-bind-now \ + --enable-lock-elision \ + --enable-multi-arch \ + --enable-obsolete-nsl \ + --enable-obsolete-rpc \ + --enable-stack-protector=strong \ + --enable-stackguard-randomization \ + --disable-profile \ + --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() { + install -dm755 "$pkgdir/etc" + touch "$pkgdir/etc/ld.so.conf" + + make -C glibc-build install_root="$pkgdir" install + rm -f "$pkgdir"/etc/ld.so.{cache,conf} + + cd glibc + + install -dm755 "$pkgdir"/usr/lib/{locale,systemd/system,tmpfiles.d} + install -m644 nscd/nscd.conf "$pkgdir/etc/nscd.conf" + install -m644 nscd/nscd.service "$pkgdir/usr/lib/systemd/system" + install -m644 nscd/nscd.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/nscd.conf" + install -dm755 "$pkgdir/var/db/nscd" + + install -m644 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/* + + 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_BINARIES usr/bin/lddlibc4 + strip $STRIP_STATIC usr/lib/libm.a + fi +} Deleted: testing-x86_64/glibc.install =================================================================== --- testing-x86_64/glibc.install 2017-09-08 12:20:46 UTC (rev 305066) +++ testing-x86_64/glibc.install 2017-09-08 12:20:58 UTC (rev 305067) @@ -1,5 +0,0 @@ -post_upgrade() { - locale-gen - - ldconfig -r . -} Copied: glibc/repos/testing-x86_64/glibc.install (from rev 305066, glibc/trunk/glibc.install) =================================================================== --- testing-x86_64/glibc.install (rev 0) +++ testing-x86_64/glibc.install 2017-09-08 12:20:58 UTC (rev 305067) @@ -0,0 +1,5 @@ +post_upgrade() { + locale-gen + + ldconfig -r . +} Deleted: testing-x86_64/locale-gen =================================================================== --- testing-x86_64/locale-gen 2017-09-08 12:20:46 UTC (rev 305066) +++ testing-x86_64/locale-gen 2017-09-08 12:20:58 UTC (rev 305067) @@ -1,42 +0,0 @@ -#!/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/testing-x86_64/locale-gen (from rev 305066, glibc/trunk/locale-gen) =================================================================== --- testing-x86_64/locale-gen (rev 0) +++ testing-x86_64/locale-gen 2017-09-08 12:20:58 UTC (rev 305067) @@ -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." Deleted: testing-x86_64/locale.gen.txt =================================================================== --- testing-x86_64/locale.gen.txt 2017-09-08 12:20:46 UTC (rev 305066) +++ testing-x86_64/locale.gen.txt 2017-09-08 12:20:58 UTC (rev 305067) @@ -1,23 +0,0 @@ -# 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@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/testing-x86_64/locale.gen.txt (from rev 305066, glibc/trunk/locale.gen.txt) =================================================================== --- testing-x86_64/locale.gen.txt (rev 0) +++ testing-x86_64/locale.gen.txt 2017-09-08 12:20:58 UTC (rev 305067) @@ -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@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. +#