From a98190e05d44fcf0974591376715df48379ec6c4 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Fri, 6 Jul 2018 02:11:27 +0200 Subject: [PATCH 01/16] filesystem: updated to keep lib32 directory --- filesystem/.footprint | 2 ++ filesystem/Pkgfile | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/filesystem/.footprint b/filesystem/.footprint index e37d071..dd55c85 100644 --- a/filesystem/.footprint +++ b/filesystem/.footprint @@ -18,6 +18,7 @@ lrwxrwxrwx root/root etc/mtab -> /proc/self/mounts drwxr-xr-x root/root home/ drwxr-xr-x root/root lib/ drwxr-xr-x root/root lib/modules/ +drwxr-xr-x root/root lib32/ lrwxrwxrwx root/root lib64 -> lib drwxr-xr-x root/root mnt/ drwxr-xr-x root/root opt/ @@ -34,6 +35,7 @@ drwxr-xr-x root/root usr/bin/ -rwxr-xr-x root/root usr/bin/crux drwxr-xr-x root/root usr/include/ drwxr-xr-x root/root usr/lib/ +drwxr-xr-x root/root usr/lib32/ lrwxrwxrwx root/root usr/lib64 -> lib drwxr-xr-x root/root usr/sbin/ drwxr-xr-x root/root usr/share/ diff --git a/filesystem/Pkgfile b/filesystem/Pkgfile index a265bae..c661539 100644 --- a/filesystem/Pkgfile +++ b/filesystem/Pkgfile @@ -20,14 +20,14 @@ build() { install -d $PKG/etc install -d $PKG/mnt install -d $PKG/run - install -d $PKG/lib + install -d $PKG/lib{,32} ln -s lib $PKG/lib64 install -d $PKG/lib/modules install -d $PKG/opt install -d $PKG/opt/bin install -d $PKG/opt/sbin install -d $PKG/usr - install -d $PKG/usr/{bin,include,lib,sbin,share,src} + install -d $PKG/usr/{bin,include,lib{,32},sbin,share,src} ln -s lib $PKG/usr/lib64 install -d -p $PKG/usr/share/man/man{1,2,3,4,5,6,7,8} ln -s ../var $PKG/usr/var -- 2.26.2 From dae35c05cd92ce0eaa5e065696cb2ceadb0abe26 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Fri, 6 Jul 2018 02:13:18 +0200 Subject: [PATCH 02/16] gcc: fixed lib64 dir installation, added default-pie and default ssp configure options --- gcc/.footprint | 139 ++++++++++++++++++------------------- gcc/.md5sum | 1 + gcc/Pkgfile | 14 ++-- gcc/gcc-aarch64-dirs.patch | 13 ++++ 4 files changed, 92 insertions(+), 75 deletions(-) create mode 100644 gcc/gcc-aarch64-dirs.patch diff --git a/gcc/.footprint b/gcc/.footprint index 872111c..9084453 100644 --- a/gcc/.footprint +++ b/gcc/.footprint @@ -1282,80 +1282,79 @@ lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcc1pl lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcp1plugin.so -> libcp1plugin.so.0.0.0 lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcp1plugin.so.0 -> libcp1plugin.so.0.0.0 -rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcp1plugin.so.0.0.0 -drwxr-xr-x root/root usr/lib64/ --rw-r--r-- root/root usr/lib64/libasan.a --rwxr-xr-x root/root usr/lib64/libasan.la -lrwxrwxrwx root/root usr/lib64/libasan.so -> libasan.so.4.0.0 -lrwxrwxrwx root/root usr/lib64/libasan.so.4 -> libasan.so.4.0.0 --rwxr-xr-x root/root usr/lib64/libasan.so.4.0.0 --rw-r--r-- root/root usr/lib64/libasan_preinit.o --rw-r--r-- root/root usr/lib64/libatomic.a --rwxr-xr-x root/root usr/lib64/libatomic.la -lrwxrwxrwx root/root usr/lib64/libatomic.so -> libatomic.so.1.2.0 -lrwxrwxrwx root/root usr/lib64/libatomic.so.1 -> libatomic.so.1.2.0 --rwxr-xr-x root/root usr/lib64/libatomic.so.1.2.0 --rwxr-xr-x root/root usr/lib64/libcc1.la -lrwxrwxrwx root/root usr/lib64/libcc1.so -> libcc1.so.0.0.0 -lrwxrwxrwx root/root usr/lib64/libcc1.so.0 -> libcc1.so.0.0.0 --rwxr-xr-x root/root usr/lib64/libcc1.so.0.0.0 -lrwxrwxrwx root/root usr/lib64/libgcc_s.so -> libgcc_s.so.1 --rw-r--r-- root/root usr/lib64/libgcc_s.so.1 --rw-r--r-- root/root usr/lib64/libgomp.a --rwxr-xr-x root/root usr/lib64/libgomp.la -lrwxrwxrwx root/root usr/lib64/libgomp.so -> libgomp.so.1.0.0 -lrwxrwxrwx root/root usr/lib64/libgomp.so.1 -> libgomp.so.1.0.0 --rwxr-xr-x root/root usr/lib64/libgomp.so.1.0.0 --rw-r--r-- root/root usr/lib64/libgomp.spec --rw-r--r-- root/root usr/lib64/libitm.a --rwxr-xr-x root/root usr/lib64/libitm.la -lrwxrwxrwx root/root usr/lib64/libitm.so -> libitm.so.1.0.0 -lrwxrwxrwx root/root usr/lib64/libitm.so.1 -> libitm.so.1.0.0 --rwxr-xr-x root/root usr/lib64/libitm.so.1.0.0 --rw-r--r-- root/root usr/lib64/libitm.spec --rw-r--r-- root/root usr/lib64/liblsan.a --rwxr-xr-x root/root usr/lib64/liblsan.la -lrwxrwxrwx root/root usr/lib64/liblsan.so -> liblsan.so.0.0.0 -lrwxrwxrwx root/root usr/lib64/liblsan.so.0 -> liblsan.so.0.0.0 --rwxr-xr-x root/root usr/lib64/liblsan.so.0.0.0 --rw-r--r-- root/root usr/lib64/libobjc.a --rwxr-xr-x root/root usr/lib64/libobjc.la -lrwxrwxrwx root/root usr/lib64/libobjc.so -> libobjc.so.4.0.0 -lrwxrwxrwx root/root usr/lib64/libobjc.so.4 -> libobjc.so.4.0.0 --rwxr-xr-x root/root usr/lib64/libobjc.so.4.0.0 --rw-r--r-- root/root usr/lib64/libsanitizer.spec --rw-r--r-- root/root usr/lib64/libssp.a --rwxr-xr-x root/root usr/lib64/libssp.la -lrwxrwxrwx root/root usr/lib64/libssp.so -> libssp.so.0.0.0 -lrwxrwxrwx root/root usr/lib64/libssp.so.0 -> libssp.so.0.0.0 --rwxr-xr-x root/root usr/lib64/libssp.so.0.0.0 --rw-r--r-- root/root usr/lib64/libssp_nonshared.a --rwxr-xr-x root/root usr/lib64/libssp_nonshared.la --rw-r--r-- root/root usr/lib64/libstdc++.a --rwxr-xr-x root/root usr/lib64/libstdc++.la -lrwxrwxrwx root/root usr/lib64/libstdc++.so -> libstdc++.so.6.0.24 -lrwxrwxrwx root/root usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.24 --rwxr-xr-x root/root usr/lib64/libstdc++.so.6.0.24 --rw-r--r-- root/root usr/lib64/libstdc++fs.a --rwxr-xr-x root/root usr/lib64/libstdc++fs.la --rw-r--r-- root/root usr/lib64/libsupc++.a --rwxr-xr-x root/root usr/lib64/libsupc++.la --rw-r--r-- root/root usr/lib64/libtsan.a --rwxr-xr-x root/root usr/lib64/libtsan.la -lrwxrwxrwx root/root usr/lib64/libtsan.so -> libtsan.so.0.0.0 -lrwxrwxrwx root/root usr/lib64/libtsan.so.0 -> libtsan.so.0.0.0 --rwxr-xr-x root/root usr/lib64/libtsan.so.0.0.0 --rw-r--r-- root/root usr/lib64/libtsan_preinit.o --rw-r--r-- root/root usr/lib64/libubsan.a --rwxr-xr-x root/root usr/lib64/libubsan.la -lrwxrwxrwx root/root usr/lib64/libubsan.so -> libubsan.so.0.0.0 -lrwxrwxrwx root/root usr/lib64/libubsan.so.0 -> libubsan.so.0.0.0 --rwxr-xr-x root/root usr/lib64/libubsan.so.0.0.0 +-rw-r--r-- root/root usr/lib/libasan.a +-rwxr-xr-x root/root usr/lib/libasan.la +lrwxrwxrwx root/root usr/lib/libasan.so -> libasan.so.4.0.0 +lrwxrwxrwx root/root usr/lib/libasan.so.4 -> libasan.so.4.0.0 +-rwxr-xr-x root/root usr/lib/libasan.so.4.0.0 +-rw-r--r-- root/root usr/lib/libasan_preinit.o +-rw-r--r-- root/root usr/lib/libatomic.a +-rwxr-xr-x root/root usr/lib/libatomic.la +lrwxrwxrwx root/root usr/lib/libatomic.so -> libatomic.so.1.2.0 +lrwxrwxrwx root/root usr/lib/libatomic.so.1 -> libatomic.so.1.2.0 +-rwxr-xr-x root/root usr/lib/libatomic.so.1.2.0 +-rwxr-xr-x root/root usr/lib/libcc1.la +lrwxrwxrwx root/root usr/lib/libcc1.so -> libcc1.so.0.0.0 +lrwxrwxrwx root/root usr/lib/libcc1.so.0 -> libcc1.so.0.0.0 +-rwxr-xr-x root/root usr/lib/libcc1.so.0.0.0 +lrwxrwxrwx root/root usr/lib/libgcc_s.so -> libgcc_s.so.1 +-rw-r--r-- root/root usr/lib/libgcc_s.so.1 +-rw-r--r-- root/root usr/lib/libgomp.a +-rwxr-xr-x root/root usr/lib/libgomp.la +lrwxrwxrwx root/root usr/lib/libgomp.so -> libgomp.so.1.0.0 +lrwxrwxrwx root/root usr/lib/libgomp.so.1 -> libgomp.so.1.0.0 +-rwxr-xr-x root/root usr/lib/libgomp.so.1.0.0 +-rw-r--r-- root/root usr/lib/libgomp.spec +-rw-r--r-- root/root usr/lib/libitm.a +-rwxr-xr-x root/root usr/lib/libitm.la +lrwxrwxrwx root/root usr/lib/libitm.so -> libitm.so.1.0.0 +lrwxrwxrwx root/root usr/lib/libitm.so.1 -> libitm.so.1.0.0 +-rwxr-xr-x root/root usr/lib/libitm.so.1.0.0 +-rw-r--r-- root/root usr/lib/libitm.spec +-rw-r--r-- root/root usr/lib/liblsan.a +-rwxr-xr-x root/root usr/lib/liblsan.la +lrwxrwxrwx root/root usr/lib/liblsan.so -> liblsan.so.0.0.0 +lrwxrwxrwx root/root usr/lib/liblsan.so.0 -> liblsan.so.0.0.0 +-rwxr-xr-x root/root usr/lib/liblsan.so.0.0.0 +-rw-r--r-- root/root usr/lib/libobjc.a +-rwxr-xr-x root/root usr/lib/libobjc.la +lrwxrwxrwx root/root usr/lib/libobjc.so -> libobjc.so.4.0.0 +lrwxrwxrwx root/root usr/lib/libobjc.so.4 -> libobjc.so.4.0.0 +-rwxr-xr-x root/root usr/lib/libobjc.so.4.0.0 +-rw-r--r-- root/root usr/lib/libsanitizer.spec +-rw-r--r-- root/root usr/lib/libssp.a +-rwxr-xr-x root/root usr/lib/libssp.la +lrwxrwxrwx root/root usr/lib/libssp.so -> libssp.so.0.0.0 +lrwxrwxrwx root/root usr/lib/libssp.so.0 -> libssp.so.0.0.0 +-rwxr-xr-x root/root usr/lib/libssp.so.0.0.0 +-rw-r--r-- root/root usr/lib/libssp_nonshared.a +-rwxr-xr-x root/root usr/lib/libssp_nonshared.la +-rw-r--r-- root/root usr/lib/libstdc++.a +-rwxr-xr-x root/root usr/lib/libstdc++.la +lrwxrwxrwx root/root usr/lib/libstdc++.so -> libstdc++.so.6.0.24 +lrwxrwxrwx root/root usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.24 +-rwxr-xr-x root/root usr/lib/libstdc++.so.6.0.24 +-rw-r--r-- root/root usr/lib/libstdc++fs.a +-rwxr-xr-x root/root usr/lib/libstdc++fs.la +-rw-r--r-- root/root usr/lib/libsupc++.a +-rwxr-xr-x root/root usr/lib/libsupc++.la +-rw-r--r-- root/root usr/lib/libtsan.a +-rwxr-xr-x root/root usr/lib/libtsan.la +lrwxrwxrwx root/root usr/lib/libtsan.so -> libtsan.so.0.0.0 +lrwxrwxrwx root/root usr/lib/libtsan.so.0 -> libtsan.so.0.0.0 +-rwxr-xr-x root/root usr/lib/libtsan.so.0.0.0 +-rw-r--r-- root/root usr/lib/libtsan_preinit.o +-rw-r--r-- root/root usr/lib/libubsan.a +-rwxr-xr-x root/root usr/lib/libubsan.la +lrwxrwxrwx root/root usr/lib/libubsan.so -> libubsan.so.0.0.0 +lrwxrwxrwx root/root usr/lib/libubsan.so.0 -> libubsan.so.0.0.0 +-rwxr-xr-x root/root usr/lib/libubsan.so.0.0.0 drwxr-xr-x root/root usr/share/ drwxr-xr-x root/root usr/share/gdb/ drwxr-xr-x root/root usr/share/gdb/auto-load/ drwxr-xr-x root/root usr/share/gdb/auto-load/usr/ -drwxr-xr-x root/root usr/share/gdb/auto-load/usr/lib64/ --rw-r--r-- root/root usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.24-gdb.py +drwxr-xr-x root/root usr/share/gdb/auto-load/usr/lib/ +-rw-r--r-- root/root usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.24-gdb.py drwxr-xr-x root/root usr/share/man/ drwxr-xr-x root/root usr/share/man/man1/ -rw-r--r-- root/root usr/share/man/man1/cpp.1.gz diff --git a/gcc/.md5sum b/gcc/.md5sum index 63c9144..1ad2894 100644 --- a/gcc/.md5sum +++ b/gcc/.md5sum @@ -1,2 +1,3 @@ be2da21680f27624f3a87055c4ba5af2 gcc-7.3.0.tar.xz +dd44eeb6b7d12824ac0eb56e95713a59 gcc-aarch64-dirs.patch a617c4d3fa11e0c9410ac213eb061677 gcc-nocheck-fixincludes.patch diff --git a/gcc/Pkgfile b/gcc/Pkgfile index a733356..fbc1ce7 100644 --- a/gcc/Pkgfile +++ b/gcc/Pkgfile @@ -8,10 +8,11 @@ name=gcc version=7.3.0 release=1 source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-$version/$name-$version.tar.xz \ - $name-nocheck-fixincludes.patch) + $name-nocheck-fixincludes.patch $name-aarch64-dirs.patch) build() { patch -d $name-$version -p1 -i $SRC/$name-nocheck-fixincludes.patch + patch -d $name-$version -p1 -i $SRC/gcc-aarch64-dirs.patch mkdir build cd build @@ -26,12 +27,15 @@ build() { --disable-nls \ --with-x=no \ --with-system-zlib \ + --enable-multilib \ + --enable-default-pie \ + --enable-default-ssp \ --with-pkgversion="CRUX-ARM 64b" - make + make bootstrap make -j1 DESTDIR=$PKG install - mkdir $PKG/lib + install -d $PKG/lib ln -sf ../usr/bin/cpp $PKG/lib/cpp ln -sf gcc $PKG/usr/bin/cc ln -sf g++ $PKG/usr/bin/c++ @@ -41,10 +45,10 @@ build() { rm -r $PKG/usr/bin/*-linux-gnu* rm -r $PKG/usr/lib/gcc/*/$version/{install-tools,include-fixed} - for D in lib64; do + for D in lib; do install -d -m 0755 $PKG/usr/share/gdb/auto-load/usr/${D} mv $PKG/usr/${D}/libstdc++.so.*-gdb.py $PKG/usr/share/gdb/auto-load/usr/${D} done - sed -i "s|-L$SRC[^ ]* ||g" $PKG/usr/lib64/{libstdc++.la,libsupc++.la} + sed -i "s|-L$SRC[^ ]* ||g" $PKG/usr/lib/{libstdc++.la,libsupc++.la} } diff --git a/gcc/gcc-aarch64-dirs.patch b/gcc/gcc-aarch64-dirs.patch new file mode 100644 index 0000000..5989eb9 --- /dev/null +++ b/gcc/gcc-aarch64-dirs.patch @@ -0,0 +1,13 @@ +diff -Nru gcc-7.3.0.orig/gcc/config/aarch64/t-aarch64-linux gcc-7.3.0/gcc/config/aarch64/t-aarch64-linux +--- gcc-7.3.0.orig/gcc/config/aarch64/t-aarch64-linux 2018-06-20 13:36:39.756075935 +0200 ++++ gcc-7.3.0/gcc/config/aarch64/t-aarch64-linux 2018-06-20 13:36:49.900014648 +0200 +@@ -22,7 +22,7 @@ + LIB1ASMFUNCS = _aarch64_sync_cache_range + + AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) +-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) ++MULTILIB_OSDIRNAMES = mabi.lp64=../lib$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) + MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) + + MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32 + -- 2.26.2 From 6e52ceb9188a573ceba54d591abeabb7d666a9d3 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Fri, 6 Jul 2018 03:53:12 +0200 Subject: [PATCH 03/16] glibc: aligned with upstream CRUX port --- glibc/.footprint | 772 +- glibc/.md5sum | 1 + glibc/Pkgfile | 21 +- glibc/glibc-2.27-2.patch | 17895 +++++++++++++++++++++++++++++++++++++ 4 files changed, 18256 insertions(+), 433 deletions(-) create mode 100644 glibc/glibc-2.27-2.patch diff --git a/glibc/.footprint b/glibc/.footprint index 7d860a4..fa9ea9c 100644 --- a/glibc/.footprint +++ b/glibc/.footprint @@ -10,53 +10,51 @@ lrwxrwxrwx root/root etc/localtime -> ../usr/share/zoneinfo/UTC -rw-r--r-- root/root etc/resolv.conf -rw-r--r-- root/root etc/rpc drwxr-xr-x root/root lib/ -lrwxrwxrwx root/root lib/ld-linux-aarch64.so.1 -> ../lib64/ld-2.27.so -drwxr-xr-x root/root lib64/ --rwxr-xr-x root/root lib64/ld-2.27.so -lrwxrwxrwx root/root lib64/ld-linux-aarch64.so.1 -> ld-2.27.so --rwxr-xr-x root/root lib64/libBrokenLocale-2.27.so -lrwxrwxrwx root/root lib64/libBrokenLocale.so.1 -> libBrokenLocale-2.27.so --rwxr-xr-x root/root lib64/libSegFault.so --rwxr-xr-x root/root lib64/libanl-2.27.so -lrwxrwxrwx root/root lib64/libanl.so.1 -> libanl-2.27.so --rwxr-xr-x root/root lib64/libc-2.27.so -lrwxrwxrwx root/root lib64/libc.so.6 -> libc-2.27.so --rwxr-xr-x root/root lib64/libcidn-2.27.so -lrwxrwxrwx root/root lib64/libcidn.so.1 -> libcidn-2.27.so --rwxr-xr-x root/root lib64/libcrypt-2.27.so -lrwxrwxrwx root/root lib64/libcrypt.so.1 -> libcrypt-2.27.so --rwxr-xr-x root/root lib64/libdl-2.27.so -lrwxrwxrwx root/root lib64/libdl.so.2 -> libdl-2.27.so --rwxr-xr-x root/root lib64/libm-2.27.so -lrwxrwxrwx root/root lib64/libm.so.6 -> libm-2.27.so --rwxr-xr-x root/root lib64/libmemusage.so --rwxr-xr-x root/root lib64/libnsl-2.27.so -lrwxrwxrwx root/root lib64/libnsl.so.1 -> libnsl-2.27.so --rwxr-xr-x root/root lib64/libnss_compat-2.27.so -lrwxrwxrwx root/root lib64/libnss_compat.so.2 -> libnss_compat-2.27.so --rwxr-xr-x root/root lib64/libnss_db-2.27.so -lrwxrwxrwx root/root lib64/libnss_db.so.2 -> libnss_db-2.27.so --rwxr-xr-x root/root lib64/libnss_dns-2.27.so -lrwxrwxrwx root/root lib64/libnss_dns.so.2 -> libnss_dns-2.27.so --rwxr-xr-x root/root lib64/libnss_files-2.27.so -lrwxrwxrwx root/root lib64/libnss_files.so.2 -> libnss_files-2.27.so --rwxr-xr-x root/root lib64/libnss_hesiod-2.27.so -lrwxrwxrwx root/root lib64/libnss_hesiod.so.2 -> libnss_hesiod-2.27.so --rwxr-xr-x root/root lib64/libnss_nis-2.27.so -lrwxrwxrwx root/root lib64/libnss_nis.so.2 -> libnss_nis-2.27.so --rwxr-xr-x root/root lib64/libnss_nisplus-2.27.so -lrwxrwxrwx root/root lib64/libnss_nisplus.so.2 -> libnss_nisplus-2.27.so --rwxr-xr-x root/root lib64/libpcprofile.so --rwxr-xr-x root/root lib64/libpthread-2.27.so -lrwxrwxrwx root/root lib64/libpthread.so.0 -> libpthread-2.27.so --rwxr-xr-x root/root lib64/libresolv-2.27.so -lrwxrwxrwx root/root lib64/libresolv.so.2 -> libresolv-2.27.so --rwxr-xr-x root/root lib64/librt-2.27.so -lrwxrwxrwx root/root lib64/librt.so.1 -> librt-2.27.so --rwxr-xr-x root/root lib64/libthread_db-1.0.so -lrwxrwxrwx root/root lib64/libthread_db.so.1 -> libthread_db-1.0.so --rwxr-xr-x root/root lib64/libutil-2.27.so -lrwxrwxrwx root/root lib64/libutil.so.1 -> libutil-2.27.so +-rwxr-xr-x root/root lib/ld-2.27.so +lrwxrwxrwx root/root lib/ld-linux-aarch64.so.1 -> ld-2.27.so +-rwxr-xr-x root/root lib/libBrokenLocale-2.27.so +lrwxrwxrwx root/root lib/libBrokenLocale.so.1 -> libBrokenLocale-2.27.so +-rwxr-xr-x root/root lib/libSegFault.so +-rwxr-xr-x root/root lib/libanl-2.27.so +lrwxrwxrwx root/root lib/libanl.so.1 -> libanl-2.27.so +-rwxr-xr-x root/root lib/libc-2.27.so +lrwxrwxrwx root/root lib/libc.so.6 -> libc-2.27.so +-rwxr-xr-x root/root lib/libcidn-2.27.so +lrwxrwxrwx root/root lib/libcidn.so.1 -> libcidn-2.27.so +-rwxr-xr-x root/root lib/libcrypt-2.27.so +lrwxrwxrwx root/root lib/libcrypt.so.1 -> libcrypt-2.27.so +-rwxr-xr-x root/root lib/libdl-2.27.so +lrwxrwxrwx root/root lib/libdl.so.2 -> libdl-2.27.so +-rwxr-xr-x root/root lib/libm-2.27.so +lrwxrwxrwx root/root lib/libm.so.6 -> libm-2.27.so +-rwxr-xr-x root/root lib/libmemusage.so +-rwxr-xr-x root/root lib/libnsl-2.27.so +lrwxrwxrwx root/root lib/libnsl.so.1 -> libnsl-2.27.so +-rwxr-xr-x root/root lib/libnss_compat-2.27.so +lrwxrwxrwx root/root lib/libnss_compat.so.2 -> libnss_compat-2.27.so +-rwxr-xr-x root/root lib/libnss_db-2.27.so +lrwxrwxrwx root/root lib/libnss_db.so.2 -> libnss_db-2.27.so +-rwxr-xr-x root/root lib/libnss_dns-2.27.so +lrwxrwxrwx root/root lib/libnss_dns.so.2 -> libnss_dns-2.27.so +-rwxr-xr-x root/root lib/libnss_files-2.27.so +lrwxrwxrwx root/root lib/libnss_files.so.2 -> libnss_files-2.27.so +-rwxr-xr-x root/root lib/libnss_hesiod-2.27.so +lrwxrwxrwx root/root lib/libnss_hesiod.so.2 -> libnss_hesiod-2.27.so +-rwxr-xr-x root/root lib/libnss_nis-2.27.so +lrwxrwxrwx root/root lib/libnss_nis.so.2 -> libnss_nis-2.27.so +-rwxr-xr-x root/root lib/libnss_nisplus-2.27.so +lrwxrwxrwx root/root lib/libnss_nisplus.so.2 -> libnss_nisplus-2.27.so +-rwxr-xr-x root/root lib/libpcprofile.so +-rwxr-xr-x root/root lib/libpthread-2.27.so +lrwxrwxrwx root/root lib/libpthread.so.0 -> libpthread-2.27.so +-rwxr-xr-x root/root lib/libresolv-2.27.so +lrwxrwxrwx root/root lib/libresolv.so.2 -> libresolv-2.27.so +-rwxr-xr-x root/root lib/librt-2.27.so +lrwxrwxrwx root/root lib/librt.so.1 -> librt-2.27.so +-rwxr-xr-x root/root lib/libthread_db-1.0.so +lrwxrwxrwx root/root lib/libthread_db.so.1 -> libthread_db-1.0.so +-rwxr-xr-x root/root lib/libutil-2.27.so +lrwxrwxrwx root/root lib/libutil.so.1 -> libutil-2.27.so drwxr-xr-x root/root sbin/ -rwxr-xr-x root/root sbin/ldconfig -rwxr-xr-x root/root sbin/sln @@ -95,8 +93,6 @@ drwxr-xr-x root/root usr/include/arpa/ -rw-r--r-- root/root usr/include/arpa/telnet.h -rw-r--r-- root/root usr/include/arpa/tftp.h drwxr-xr-x root/root usr/include/asm-generic/ --rw-r--r-- root/root usr/include/asm-generic/..install.cmd --rw-r--r-- root/root usr/include/asm-generic/.install (EMPTY) -rw-r--r-- root/root usr/include/asm-generic/auxvec.h -rw-r--r-- root/root usr/include/asm-generic/bitsperlong.h -rw-r--r-- root/root usr/include/asm-generic/errno-base.h @@ -134,8 +130,6 @@ drwxr-xr-x root/root usr/include/asm-generic/ -rw-r--r-- root/root usr/include/asm-generic/ucontext.h -rw-r--r-- root/root usr/include/asm-generic/unistd.h drwxr-xr-x root/root usr/include/asm/ --rw-r--r-- root/root usr/include/asm/..install.cmd --rw-r--r-- root/root usr/include/asm/.install (EMPTY) -rw-r--r-- root/root usr/include/asm/auxvec.h -rw-r--r-- root/root usr/include/asm/bitsperlong.h -rw-r--r-- root/root usr/include/asm/byteorder.h @@ -353,8 +347,6 @@ drwxr-xr-x root/root usr/include/bits/types/ -rw-r--r-- root/root usr/include/dirent.h -rw-r--r-- root/root usr/include/dlfcn.h drwxr-xr-x root/root usr/include/drm/ --rw-r--r-- root/root usr/include/drm/..install.cmd --rw-r--r-- root/root usr/include/drm/.install (EMPTY) -rw-r--r-- root/root usr/include/drm/amdgpu_drm.h -rw-r--r-- root/root usr/include/drm/armada_drm.h -rw-r--r-- root/root usr/include/drm/drm.h @@ -405,7 +397,6 @@ drwxr-xr-x root/root usr/include/gnu/ -rw-r--r-- root/root usr/include/gnu/lib-names.h -rw-r--r-- root/root usr/include/gnu/libc-version.h -rw-r--r-- root/root usr/include/gnu/stubs-lp64.h -lrwxrwxrwx root/root usr/include/gnu/stubs-soft.h -> stubs-hard.h -rw-r--r-- root/root usr/include/gnu/stubs.h -rw-r--r-- root/root usr/include/grp.h -rw-r--r-- root/root usr/include/gshadow.h @@ -421,8 +412,6 @@ lrwxrwxrwx root/root usr/include/gnu/stubs-soft.h -> stubs-hard.h -rw-r--r-- root/root usr/include/limits.h -rw-r--r-- root/root usr/include/link.h drwxr-xr-x root/root usr/include/linux/ --rw-r--r-- root/root usr/include/linux/..install.cmd --rw-r--r-- root/root usr/include/linux/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/acct.h -rw-r--r-- root/root usr/include/linux/adb.h -rw-r--r-- root/root usr/include/linux/adfs_fs.h @@ -431,8 +420,6 @@ drwxr-xr-x root/root usr/include/linux/ -rw-r--r-- root/root usr/include/linux/aio_abi.h -rw-r--r-- root/root usr/include/linux/am437x-vpfe.h drwxr-xr-x root/root usr/include/linux/android/ --rw-r--r-- root/root usr/include/linux/android/..install.cmd --rw-r--r-- root/root usr/include/linux/android/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/android/binder.h -rw-r--r-- root/root usr/include/linux/apm_bios.h -rw-r--r-- root/root usr/include/linux/arcfb.h @@ -481,19 +468,13 @@ drwxr-xr-x root/root usr/include/linux/android/ -rw-r--r-- root/root usr/include/linux/btrfs.h -rw-r--r-- root/root usr/include/linux/btrfs_tree.h drwxr-xr-x root/root usr/include/linux/byteorder/ --rw-r--r-- root/root usr/include/linux/byteorder/..install.cmd --rw-r--r-- root/root usr/include/linux/byteorder/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/byteorder/big_endian.h -rw-r--r-- root/root usr/include/linux/byteorder/little_endian.h drwxr-xr-x root/root usr/include/linux/caif/ --rw-r--r-- root/root usr/include/linux/caif/..install.cmd --rw-r--r-- root/root usr/include/linux/caif/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/caif/caif_socket.h -rw-r--r-- root/root usr/include/linux/caif/if_caif.h -rw-r--r-- root/root usr/include/linux/can.h drwxr-xr-x root/root usr/include/linux/can/ --rw-r--r-- root/root usr/include/linux/can/..install.cmd --rw-r--r-- root/root usr/include/linux/can/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/can/bcm.h -rw-r--r-- root/root usr/include/linux/can/error.h -rw-r--r-- root/root usr/include/linux/can/gw.h @@ -510,8 +491,6 @@ drwxr-xr-x root/root usr/include/linux/can/ -rw-r--r-- root/root usr/include/linux/cgroupstats.h -rw-r--r-- root/root usr/include/linux/chio.h drwxr-xr-x root/root usr/include/linux/cifs/ --rw-r--r-- root/root usr/include/linux/cifs/..install.cmd --rw-r--r-- root/root usr/include/linux/cifs/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/cifs/cifs_mount.h -rw-r--r-- root/root usr/include/linux/cm4000_cs.h -rw-r--r-- root/root usr/include/linux/cn_proc.h @@ -540,8 +519,6 @@ drwxr-xr-x root/root usr/include/linux/cifs/ -rw-r--r-- root/root usr/include/linux/dn.h -rw-r--r-- root/root usr/include/linux/dqblk_xfs.h drwxr-xr-x root/root usr/include/linux/dvb/ --rw-r--r-- root/root usr/include/linux/dvb/..install.cmd --rw-r--r-- root/root usr/include/linux/dvb/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/dvb/audio.h -rw-r--r-- root/root usr/include/linux/dvb/ca.h -rw-r--r-- root/root usr/include/linux/dvb/dmx.h @@ -583,8 +560,6 @@ drwxr-xr-x root/root usr/include/linux/dvb/ -rw-r--r-- root/root usr/include/linux/gen_stats.h -rw-r--r-- root/root usr/include/linux/genetlink.h drwxr-xr-x root/root usr/include/linux/genwqe/ --rw-r--r-- root/root usr/include/linux/genwqe/..install.cmd --rw-r--r-- root/root usr/include/linux/genwqe/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/genwqe/genwqe_card.h -rw-r--r-- root/root usr/include/linux/gfs2_ondisk.h -rw-r--r-- root/root usr/include/linux/gigaset_dev.h @@ -594,8 +569,6 @@ drwxr-xr-x root/root usr/include/linux/genwqe/ -rw-r--r-- root/root usr/include/linux/hash_info.h -rw-r--r-- root/root usr/include/linux/hdlc.h drwxr-xr-x root/root usr/include/linux/hdlc/ --rw-r--r-- root/root usr/include/linux/hdlc/..install.cmd --rw-r--r-- root/root usr/include/linux/hdlc/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/hdlc/ioctl.h -rw-r--r-- root/root usr/include/linux/hdlcdrv.h -rw-r--r-- root/root usr/include/linux/hdreg.h @@ -604,8 +577,6 @@ drwxr-xr-x root/root usr/include/linux/hdlc/ -rw-r--r-- root/root usr/include/linux/hidraw.h -rw-r--r-- root/root usr/include/linux/hpet.h drwxr-xr-x root/root usr/include/linux/hsi/ --rw-r--r-- root/root usr/include/linux/hsi/..install.cmd --rw-r--r-- root/root usr/include/linux/hsi/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/hsi/cs-protocol.h -rw-r--r-- root/root usr/include/linux/hsi/hsi_char.h -rw-r--r-- root/root usr/include/linux/hsr_netlink.h @@ -652,8 +623,6 @@ drwxr-xr-x root/root usr/include/linux/hsi/ -rw-r--r-- root/root usr/include/linux/ife.h -rw-r--r-- root/root usr/include/linux/igmp.h drwxr-xr-x root/root usr/include/linux/iio/ --rw-r--r-- root/root usr/include/linux/iio/..install.cmd --rw-r--r-- root/root usr/include/linux/iio/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/iio/events.h -rw-r--r-- root/root usr/include/linux/iio/types.h -rw-r--r-- root/root usr/include/linux/ila.h @@ -679,8 +648,6 @@ drwxr-xr-x root/root usr/include/linux/iio/ -rw-r--r-- root/root usr/include/linux/irqnr.h -rw-r--r-- root/root usr/include/linux/isdn.h drwxr-xr-x root/root usr/include/linux/isdn/ --rw-r--r-- root/root usr/include/linux/isdn/..install.cmd --rw-r--r-- root/root usr/include/linux/isdn/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/isdn/capicmd.h -rw-r--r-- root/root usr/include/linux/isdn_divertif.h -rw-r--r-- root/root usr/include/linux/isdn_ppp.h @@ -732,8 +699,6 @@ drwxr-xr-x root/root usr/include/linux/isdn/ -rw-r--r-- root/root usr/include/linux/minix_fs.h -rw-r--r-- root/root usr/include/linux/mman.h drwxr-xr-x root/root usr/include/linux/mmc/ --rw-r--r-- root/root usr/include/linux/mmc/..install.cmd --rw-r--r-- root/root usr/include/linux/mmc/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/mmc/ioctl.h -rw-r--r-- root/root usr/include/linux/mmtimer.h -rw-r--r-- root/root usr/include/linux/module.h @@ -762,11 +727,7 @@ drwxr-xr-x root/root usr/include/linux/mmc/ -rw-r--r-- root/root usr/include/linux/netdevice.h -rw-r--r-- root/root usr/include/linux/netfilter.h drwxr-xr-x root/root usr/include/linux/netfilter/ --rw-r--r-- root/root usr/include/linux/netfilter/..install.cmd --rw-r--r-- root/root usr/include/linux/netfilter/.install (EMPTY) drwxr-xr-x root/root usr/include/linux/netfilter/ipset/ --rw-r--r-- root/root usr/include/linux/netfilter/ipset/..install.cmd --rw-r--r-- root/root usr/include/linux/netfilter/ipset/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/netfilter/ipset/ip_set.h -rw-r--r-- root/root usr/include/linux/netfilter/ipset/ip_set_bitmap.h -rw-r--r-- root/root usr/include/linux/netfilter/ipset/ip_set_hash.h @@ -860,14 +821,10 @@ drwxr-xr-x root/root usr/include/linux/netfilter/ipset/ -rw-r--r-- root/root usr/include/linux/netfilter/xt_u32.h -rw-r--r-- root/root usr/include/linux/netfilter_arp.h drwxr-xr-x root/root usr/include/linux/netfilter_arp/ --rw-r--r-- root/root usr/include/linux/netfilter_arp/..install.cmd --rw-r--r-- root/root usr/include/linux/netfilter_arp/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/netfilter_arp/arp_tables.h -rw-r--r-- root/root usr/include/linux/netfilter_arp/arpt_mangle.h -rw-r--r-- root/root usr/include/linux/netfilter_bridge.h drwxr-xr-x root/root usr/include/linux/netfilter_bridge/ --rw-r--r-- root/root usr/include/linux/netfilter_bridge/..install.cmd --rw-r--r-- root/root usr/include/linux/netfilter_bridge/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/netfilter_bridge/ebt_802_3.h -rw-r--r-- root/root usr/include/linux/netfilter_bridge/ebt_among.h -rw-r--r-- root/root usr/include/linux/netfilter_bridge/ebt_arp.h @@ -888,8 +845,6 @@ drwxr-xr-x root/root usr/include/linux/netfilter_bridge/ -rw-r--r-- root/root usr/include/linux/netfilter_decnet.h -rw-r--r-- root/root usr/include/linux/netfilter_ipv4.h drwxr-xr-x root/root usr/include/linux/netfilter_ipv4/ --rw-r--r-- root/root usr/include/linux/netfilter_ipv4/..install.cmd --rw-r--r-- root/root usr/include/linux/netfilter_ipv4/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/netfilter_ipv4/ip_tables.h -rw-r--r-- root/root usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h -rw-r--r-- root/root usr/include/linux/netfilter_ipv4/ipt_ECN.h @@ -901,8 +856,6 @@ drwxr-xr-x root/root usr/include/linux/netfilter_ipv4/ -rw-r--r-- root/root usr/include/linux/netfilter_ipv4/ipt_ttl.h -rw-r--r-- root/root usr/include/linux/netfilter_ipv6.h drwxr-xr-x root/root usr/include/linux/netfilter_ipv6/ --rw-r--r-- root/root usr/include/linux/netfilter_ipv6/..install.cmd --rw-r--r-- root/root usr/include/linux/netfilter_ipv6/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/netfilter_ipv6/ip6_tables.h -rw-r--r-- root/root usr/include/linux/netfilter_ipv6/ip6t_HL.h -rw-r--r-- root/root usr/include/linux/netfilter_ipv6/ip6t_LOG.h @@ -929,8 +882,6 @@ drwxr-xr-x root/root usr/include/linux/netfilter_ipv6/ -rw-r--r-- root/root usr/include/linux/nfs_mount.h -rw-r--r-- root/root usr/include/linux/nfsacl.h drwxr-xr-x root/root usr/include/linux/nfsd/ --rw-r--r-- root/root usr/include/linux/nfsd/..install.cmd --rw-r--r-- root/root usr/include/linux/nfsd/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/nfsd/cld.h -rw-r--r-- root/root usr/include/linux/nfsd/debug.h -rw-r--r-- root/root usr/include/linux/nfsd/export.h @@ -985,8 +936,6 @@ drwxr-xr-x root/root usr/include/linux/nfsd/ -rw-r--r-- root/root usr/include/linux/quota.h -rw-r--r-- root/root usr/include/linux/radeonfb.h drwxr-xr-x root/root usr/include/linux/raid/ --rw-r--r-- root/root usr/include/linux/raid/..install.cmd --rw-r--r-- root/root usr/include/linux/raid/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/raid/md_p.h -rw-r--r-- root/root usr/include/linux/raid/md_u.h -rw-r--r-- root/root usr/include/linux/random.h @@ -1009,8 +958,6 @@ drwxr-xr-x root/root usr/include/linux/raid/ -rw-r--r-- root/root usr/include/linux/scc.h -rw-r--r-- root/root usr/include/linux/sched.h drwxr-xr-x root/root usr/include/linux/sched/ --rw-r--r-- root/root usr/include/linux/sched/..install.cmd --rw-r--r-- root/root usr/include/linux/sched/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/sched/types.h -rw-r--r-- root/root usr/include/linux/scif_ioctl.h -rw-r--r-- root/root usr/include/linux/screen_info.h @@ -1045,16 +992,12 @@ drwxr-xr-x root/root usr/include/linux/sched/ -rw-r--r-- root/root usr/include/linux/sound.h -rw-r--r-- root/root usr/include/linux/soundcard.h drwxr-xr-x root/root usr/include/linux/spi/ --rw-r--r-- root/root usr/include/linux/spi/..install.cmd --rw-r--r-- root/root usr/include/linux/spi/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/spi/spidev.h -rw-r--r-- root/root usr/include/linux/stat.h -rw-r--r-- root/root usr/include/linux/stddef.h -rw-r--r-- root/root usr/include/linux/stm.h -rw-r--r-- root/root usr/include/linux/string.h drwxr-xr-x root/root usr/include/linux/sunrpc/ --rw-r--r-- root/root usr/include/linux/sunrpc/..install.cmd --rw-r--r-- root/root usr/include/linux/sunrpc/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/sunrpc/debug.h -rw-r--r-- root/root usr/include/linux/suspend_ioctls.h -rw-r--r-- root/root usr/include/linux/swab.h @@ -1066,8 +1009,6 @@ drwxr-xr-x root/root usr/include/linux/sunrpc/ -rw-r--r-- root/root usr/include/linux/target_core_user.h -rw-r--r-- root/root usr/include/linux/taskstats.h drwxr-xr-x root/root usr/include/linux/tc_act/ --rw-r--r-- root/root usr/include/linux/tc_act/..install.cmd --rw-r--r-- root/root usr/include/linux/tc_act/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/tc_act/tc_bpf.h -rw-r--r-- root/root usr/include/linux/tc_act/tc_connmark.h -rw-r--r-- root/root usr/include/linux/tc_act/tc_csum.h @@ -1084,8 +1025,6 @@ drwxr-xr-x root/root usr/include/linux/tc_act/ -rw-r--r-- root/root usr/include/linux/tc_act/tc_tunnel_key.h -rw-r--r-- root/root usr/include/linux/tc_act/tc_vlan.h drwxr-xr-x root/root usr/include/linux/tc_ematch/ --rw-r--r-- root/root usr/include/linux/tc_ematch/..install.cmd --rw-r--r-- root/root usr/include/linux/tc_ematch/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/tc_ematch/tc_em_cmp.h -rw-r--r-- root/root usr/include/linux/tc_ematch/tc_em_meta.h -rw-r--r-- root/root usr/include/linux/tc_ematch/tc_em_nbyte.h @@ -1120,8 +1059,6 @@ drwxr-xr-x root/root usr/include/linux/tc_ematch/ -rw-r--r-- root/root usr/include/linux/unistd.h -rw-r--r-- root/root usr/include/linux/unix_diag.h drwxr-xr-x root/root usr/include/linux/usb/ --rw-r--r-- root/root usr/include/linux/usb/..install.cmd --rw-r--r-- root/root usr/include/linux/usb/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/usb/audio.h -rw-r--r-- root/root usr/include/linux/usb/cdc-wdm.h -rw-r--r-- root/root usr/include/linux/usb/cdc.h @@ -1179,8 +1116,6 @@ drwxr-xr-x root/root usr/include/linux/usb/ -rw-r--r-- root/root usr/include/linux/watchdog.h -rw-r--r-- root/root usr/include/linux/wimax.h drwxr-xr-x root/root usr/include/linux/wimax/ --rw-r--r-- root/root usr/include/linux/wimax/..install.cmd --rw-r--r-- root/root usr/include/linux/wimax/.install (EMPTY) -rw-r--r-- root/root usr/include/linux/wimax/i2400m.h -rw-r--r-- root/root usr/include/linux/wireless.h -rw-r--r-- root/root usr/include/linux/x25.h @@ -1195,15 +1130,11 @@ drwxr-xr-x root/root usr/include/linux/wimax/ -rw-r--r-- root/root usr/include/mcheck.h -rw-r--r-- root/root usr/include/memory.h drwxr-xr-x root/root usr/include/misc/ --rw-r--r-- root/root usr/include/misc/..install.cmd --rw-r--r-- root/root usr/include/misc/.install (EMPTY) -rw-r--r-- root/root usr/include/misc/cxl.h -rw-r--r-- root/root usr/include/mntent.h -rw-r--r-- root/root usr/include/monetary.h -rw-r--r-- root/root usr/include/mqueue.h drwxr-xr-x root/root usr/include/mtd/ --rw-r--r-- root/root usr/include/mtd/..install.cmd --rw-r--r-- root/root usr/include/mtd/.install (EMPTY) -rw-r--r-- root/root usr/include/mtd/inftl-user.h -rw-r--r-- root/root usr/include/mtd/mtd-abi.h -rw-r--r-- root/root usr/include/mtd/mtd-user.h @@ -1271,14 +1202,10 @@ drwxr-xr-x root/root usr/include/protocols/ -rw-r--r-- root/root usr/include/pty.h -rw-r--r-- root/root usr/include/pwd.h drwxr-xr-x root/root usr/include/rdma/ --rw-r--r-- root/root usr/include/rdma/..install.cmd --rw-r--r-- root/root usr/include/rdma/.install (EMPTY) -rw-r--r-- root/root usr/include/rdma/bnxt_re-abi.h -rw-r--r-- root/root usr/include/rdma/cxgb3-abi.h -rw-r--r-- root/root usr/include/rdma/cxgb4-abi.h drwxr-xr-x root/root usr/include/rdma/hfi/ --rw-r--r-- root/root usr/include/rdma/hfi/..install.cmd --rw-r--r-- root/root usr/include/rdma/hfi/.install (EMPTY) -rw-r--r-- root/root usr/include/rdma/hfi/hfi1_ioctl.h -rw-r--r-- root/root usr/include/rdma/hfi/hfi1_user.h -rw-r--r-- root/root usr/include/rdma/hns-abi.h @@ -1362,12 +1289,8 @@ drwxr-xr-x root/root usr/include/rpcsvc/ -rw-r--r-- root/root usr/include/rpcsvc/ypupd.h -rw-r--r-- root/root usr/include/sched.h drwxr-xr-x root/root usr/include/scsi/ --rw-r--r-- root/root usr/include/scsi/..install.cmd --rw-r--r-- root/root usr/include/scsi/.install (EMPTY) -rw-r--r-- root/root usr/include/scsi/cxlflash_ioctl.h drwxr-xr-x root/root usr/include/scsi/fc/ --rw-r--r-- root/root usr/include/scsi/fc/..install.cmd --rw-r--r-- root/root usr/include/scsi/fc/.install (EMPTY) -rw-r--r-- root/root usr/include/scsi/fc/fc_els.h -rw-r--r-- root/root usr/include/scsi/fc/fc_fs.h -rw-r--r-- root/root usr/include/scsi/fc/fc_gs.h @@ -1385,8 +1308,6 @@ drwxr-xr-x root/root usr/include/scsi/fc/ -rw-r--r-- root/root usr/include/shadow.h -rw-r--r-- root/root usr/include/signal.h drwxr-xr-x root/root usr/include/sound/ --rw-r--r-- root/root usr/include/sound/..install.cmd --rw-r--r-- root/root usr/include/sound/.install (EMPTY) -rw-r--r-- root/root usr/include/sound/asequencer.h -rw-r--r-- root/root usr/include/sound/asoc.h -rw-r--r-- root/root usr/include/sound/asound.h @@ -1512,8 +1433,6 @@ drwxr-xr-x root/root usr/include/sys/ -rw-r--r-- root/root usr/include/utmpx.h -rw-r--r-- root/root usr/include/values.h drwxr-xr-x root/root usr/include/video/ --rw-r--r-- root/root usr/include/video/..install.cmd --rw-r--r-- root/root usr/include/video/.install (EMPTY) -rw-r--r-- root/root usr/include/video/edid.h -rw-r--r-- root/root usr/include/video/sisfb.h -rw-r--r-- root/root usr/include/video/uvesafb.h @@ -1522,318 +1441,315 @@ drwxr-xr-x root/root usr/include/video/ -rw-r--r-- root/root usr/include/wctype.h -rw-r--r-- root/root usr/include/wordexp.h drwxr-xr-x root/root usr/include/xen/ --rw-r--r-- root/root usr/include/xen/..install.cmd --rw-r--r-- root/root usr/include/xen/.install (EMPTY) -rw-r--r-- root/root usr/include/xen/evtchn.h -rw-r--r-- root/root usr/include/xen/gntalloc.h -rw-r--r-- root/root usr/include/xen/gntdev.h -rw-r--r-- root/root usr/include/xen/privcmd.h drwxr-xr-x root/root usr/lib/ +-rw-r--r-- root/root usr/lib/Mcrt1.o +-rw-r--r-- root/root usr/lib/Scrt1.o +drwxr-xr-x root/root usr/lib/audit/ +-rwxr-xr-x root/root usr/lib/audit/sotruss-lib.so +-rw-r--r-- root/root usr/lib/crt1.o +-rw-r--r-- root/root usr/lib/crti.o +-rw-r--r-- root/root usr/lib/crtn.o +drwxr-xr-x root/root usr/lib/gconv/ +-rwxr-xr-x root/root usr/lib/gconv/ANSI_X3.110.so +-rwxr-xr-x root/root usr/lib/gconv/ARMSCII-8.so +-rwxr-xr-x root/root usr/lib/gconv/ASMO_449.so +-rwxr-xr-x root/root usr/lib/gconv/BIG5.so +-rwxr-xr-x root/root usr/lib/gconv/BIG5HKSCS.so +-rwxr-xr-x root/root usr/lib/gconv/BRF.so +-rwxr-xr-x root/root usr/lib/gconv/CP10007.so +-rwxr-xr-x root/root usr/lib/gconv/CP1125.so +-rwxr-xr-x root/root usr/lib/gconv/CP1250.so +-rwxr-xr-x root/root usr/lib/gconv/CP1251.so +-rwxr-xr-x root/root usr/lib/gconv/CP1252.so +-rwxr-xr-x root/root usr/lib/gconv/CP1253.so +-rwxr-xr-x root/root usr/lib/gconv/CP1254.so +-rwxr-xr-x root/root usr/lib/gconv/CP1255.so +-rwxr-xr-x root/root usr/lib/gconv/CP1256.so +-rwxr-xr-x root/root usr/lib/gconv/CP1257.so +-rwxr-xr-x root/root usr/lib/gconv/CP1258.so +-rwxr-xr-x root/root usr/lib/gconv/CP737.so +-rwxr-xr-x root/root usr/lib/gconv/CP770.so +-rwxr-xr-x root/root usr/lib/gconv/CP771.so +-rwxr-xr-x root/root usr/lib/gconv/CP772.so +-rwxr-xr-x root/root usr/lib/gconv/CP773.so +-rwxr-xr-x root/root usr/lib/gconv/CP774.so +-rwxr-xr-x root/root usr/lib/gconv/CP775.so +-rwxr-xr-x root/root usr/lib/gconv/CP932.so +-rwxr-xr-x root/root usr/lib/gconv/CSN_369103.so +-rwxr-xr-x root/root usr/lib/gconv/CWI.so +-rwxr-xr-x root/root usr/lib/gconv/DEC-MCS.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-AT-DE-A.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-AT-DE.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-CA-FR.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-DK-NO-A.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-DK-NO.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-ES-A.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-ES-S.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-ES.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-FI-SE-A.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-FI-SE.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-FR.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-IS-FRISS.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-IT.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-PT.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-UK.so +-rwxr-xr-x root/root usr/lib/gconv/EBCDIC-US.so +-rwxr-xr-x root/root usr/lib/gconv/ECMA-CYRILLIC.so +-rwxr-xr-x root/root usr/lib/gconv/EUC-CN.so +-rwxr-xr-x root/root usr/lib/gconv/EUC-JISX0213.so +-rwxr-xr-x root/root usr/lib/gconv/EUC-JP-MS.so +-rwxr-xr-x root/root usr/lib/gconv/EUC-JP.so +-rwxr-xr-x root/root usr/lib/gconv/EUC-KR.so +-rwxr-xr-x root/root usr/lib/gconv/EUC-TW.so +-rwxr-xr-x root/root usr/lib/gconv/GB18030.so +-rwxr-xr-x root/root usr/lib/gconv/GBBIG5.so +-rwxr-xr-x root/root usr/lib/gconv/GBGBK.so +-rwxr-xr-x root/root usr/lib/gconv/GBK.so +-rwxr-xr-x root/root usr/lib/gconv/GEORGIAN-ACADEMY.so +-rwxr-xr-x root/root usr/lib/gconv/GEORGIAN-PS.so +-rwxr-xr-x root/root usr/lib/gconv/GOST_19768-74.so +-rwxr-xr-x root/root usr/lib/gconv/GREEK-CCITT.so +-rwxr-xr-x root/root usr/lib/gconv/GREEK7-OLD.so +-rwxr-xr-x root/root usr/lib/gconv/GREEK7.so +-rwxr-xr-x root/root usr/lib/gconv/HP-GREEK8.so +-rwxr-xr-x root/root usr/lib/gconv/HP-ROMAN8.so +-rwxr-xr-x root/root usr/lib/gconv/HP-ROMAN9.so +-rwxr-xr-x root/root usr/lib/gconv/HP-THAI8.so +-rwxr-xr-x root/root usr/lib/gconv/HP-TURKISH8.so +-rwxr-xr-x root/root usr/lib/gconv/IBM037.so +-rwxr-xr-x root/root usr/lib/gconv/IBM038.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1004.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1008.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1008_420.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1025.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1026.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1046.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1047.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1097.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1112.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1122.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1123.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1124.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1129.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1130.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1132.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1133.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1137.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1140.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1141.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1142.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1143.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1144.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1145.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1146.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1147.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1148.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1149.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1153.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1154.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1155.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1156.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1157.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1158.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1160.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1161.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1162.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1163.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1164.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1166.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1167.so +-rwxr-xr-x root/root usr/lib/gconv/IBM12712.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1364.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1371.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1388.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1390.so +-rwxr-xr-x root/root usr/lib/gconv/IBM1399.so +-rwxr-xr-x root/root usr/lib/gconv/IBM16804.so +-rwxr-xr-x root/root usr/lib/gconv/IBM256.so +-rwxr-xr-x root/root usr/lib/gconv/IBM273.so +-rwxr-xr-x root/root usr/lib/gconv/IBM274.so +-rwxr-xr-x root/root usr/lib/gconv/IBM275.so +-rwxr-xr-x root/root usr/lib/gconv/IBM277.so +-rwxr-xr-x root/root usr/lib/gconv/IBM278.so +-rwxr-xr-x root/root usr/lib/gconv/IBM280.so +-rwxr-xr-x root/root usr/lib/gconv/IBM281.so +-rwxr-xr-x root/root usr/lib/gconv/IBM284.so +-rwxr-xr-x root/root usr/lib/gconv/IBM285.so +-rwxr-xr-x root/root usr/lib/gconv/IBM290.so +-rwxr-xr-x root/root usr/lib/gconv/IBM297.so +-rwxr-xr-x root/root usr/lib/gconv/IBM420.so +-rwxr-xr-x root/root usr/lib/gconv/IBM423.so +-rwxr-xr-x root/root usr/lib/gconv/IBM424.so +-rwxr-xr-x root/root usr/lib/gconv/IBM437.so +-rwxr-xr-x root/root usr/lib/gconv/IBM4517.so +-rwxr-xr-x root/root usr/lib/gconv/IBM4899.so +-rwxr-xr-x root/root usr/lib/gconv/IBM4909.so +-rwxr-xr-x root/root usr/lib/gconv/IBM4971.so +-rwxr-xr-x root/root usr/lib/gconv/IBM500.so +-rwxr-xr-x root/root usr/lib/gconv/IBM5347.so +-rwxr-xr-x root/root usr/lib/gconv/IBM803.so +-rwxr-xr-x root/root usr/lib/gconv/IBM850.so +-rwxr-xr-x root/root usr/lib/gconv/IBM851.so +-rwxr-xr-x root/root usr/lib/gconv/IBM852.so +-rwxr-xr-x root/root usr/lib/gconv/IBM855.so +-rwxr-xr-x root/root usr/lib/gconv/IBM856.so +-rwxr-xr-x root/root usr/lib/gconv/IBM857.so +-rwxr-xr-x root/root usr/lib/gconv/IBM858.so +-rwxr-xr-x root/root usr/lib/gconv/IBM860.so +-rwxr-xr-x root/root usr/lib/gconv/IBM861.so +-rwxr-xr-x root/root usr/lib/gconv/IBM862.so +-rwxr-xr-x root/root usr/lib/gconv/IBM863.so +-rwxr-xr-x root/root usr/lib/gconv/IBM864.so +-rwxr-xr-x root/root usr/lib/gconv/IBM865.so +-rwxr-xr-x root/root usr/lib/gconv/IBM866.so +-rwxr-xr-x root/root usr/lib/gconv/IBM866NAV.so +-rwxr-xr-x root/root usr/lib/gconv/IBM868.so +-rwxr-xr-x root/root usr/lib/gconv/IBM869.so +-rwxr-xr-x root/root usr/lib/gconv/IBM870.so +-rwxr-xr-x root/root usr/lib/gconv/IBM871.so +-rwxr-xr-x root/root usr/lib/gconv/IBM874.so +-rwxr-xr-x root/root usr/lib/gconv/IBM875.so +-rwxr-xr-x root/root usr/lib/gconv/IBM880.so +-rwxr-xr-x root/root usr/lib/gconv/IBM891.so +-rwxr-xr-x root/root usr/lib/gconv/IBM901.so +-rwxr-xr-x root/root usr/lib/gconv/IBM902.so +-rwxr-xr-x root/root usr/lib/gconv/IBM903.so +-rwxr-xr-x root/root usr/lib/gconv/IBM9030.so +-rwxr-xr-x root/root usr/lib/gconv/IBM904.so +-rwxr-xr-x root/root usr/lib/gconv/IBM905.so +-rwxr-xr-x root/root usr/lib/gconv/IBM9066.so +-rwxr-xr-x root/root usr/lib/gconv/IBM918.so +-rwxr-xr-x root/root usr/lib/gconv/IBM921.so +-rwxr-xr-x root/root usr/lib/gconv/IBM922.so +-rwxr-xr-x root/root usr/lib/gconv/IBM930.so +-rwxr-xr-x root/root usr/lib/gconv/IBM932.so +-rwxr-xr-x root/root usr/lib/gconv/IBM933.so +-rwxr-xr-x root/root usr/lib/gconv/IBM935.so +-rwxr-xr-x root/root usr/lib/gconv/IBM937.so +-rwxr-xr-x root/root usr/lib/gconv/IBM939.so +-rwxr-xr-x root/root usr/lib/gconv/IBM943.so +-rwxr-xr-x root/root usr/lib/gconv/IBM9448.so +-rwxr-xr-x root/root usr/lib/gconv/IEC_P27-1.so +-rwxr-xr-x root/root usr/lib/gconv/INIS-8.so +-rwxr-xr-x root/root usr/lib/gconv/INIS-CYRILLIC.so +-rwxr-xr-x root/root usr/lib/gconv/INIS.so +-rwxr-xr-x root/root usr/lib/gconv/ISIRI-3342.so +-rwxr-xr-x root/root usr/lib/gconv/ISO-2022-CN-EXT.so +-rwxr-xr-x root/root usr/lib/gconv/ISO-2022-CN.so +-rwxr-xr-x root/root usr/lib/gconv/ISO-2022-JP-3.so +-rwxr-xr-x root/root usr/lib/gconv/ISO-2022-JP.so +-rwxr-xr-x root/root usr/lib/gconv/ISO-2022-KR.so +-rwxr-xr-x root/root usr/lib/gconv/ISO-IR-197.so +-rwxr-xr-x root/root usr/lib/gconv/ISO-IR-209.so +-rwxr-xr-x root/root usr/lib/gconv/ISO646.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-1.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-10.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-11.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-13.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-14.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-15.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-16.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-2.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-3.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-4.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-5.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-6.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-7.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-8.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-9.so +-rwxr-xr-x root/root usr/lib/gconv/ISO8859-9E.so +-rwxr-xr-x root/root usr/lib/gconv/ISO_10367-BOX.so +-rwxr-xr-x root/root usr/lib/gconv/ISO_11548-1.so +-rwxr-xr-x root/root usr/lib/gconv/ISO_2033.so +-rwxr-xr-x root/root usr/lib/gconv/ISO_5427-EXT.so +-rwxr-xr-x root/root usr/lib/gconv/ISO_5427.so +-rwxr-xr-x root/root usr/lib/gconv/ISO_5428.so +-rwxr-xr-x root/root usr/lib/gconv/ISO_6937-2.so +-rwxr-xr-x root/root usr/lib/gconv/ISO_6937.so +-rwxr-xr-x root/root usr/lib/gconv/JOHAB.so +-rwxr-xr-x root/root usr/lib/gconv/KOI-8.so +-rwxr-xr-x root/root usr/lib/gconv/KOI8-R.so +-rwxr-xr-x root/root usr/lib/gconv/KOI8-RU.so +-rwxr-xr-x root/root usr/lib/gconv/KOI8-T.so +-rwxr-xr-x root/root usr/lib/gconv/KOI8-U.so +-rwxr-xr-x root/root usr/lib/gconv/LATIN-GREEK-1.so +-rwxr-xr-x root/root usr/lib/gconv/LATIN-GREEK.so +-rwxr-xr-x root/root usr/lib/gconv/MAC-CENTRALEUROPE.so +-rwxr-xr-x root/root usr/lib/gconv/MAC-IS.so +-rwxr-xr-x root/root usr/lib/gconv/MAC-SAMI.so +-rwxr-xr-x root/root usr/lib/gconv/MAC-UK.so +-rwxr-xr-x root/root usr/lib/gconv/MACINTOSH.so +-rwxr-xr-x root/root usr/lib/gconv/MIK.so +-rwxr-xr-x root/root usr/lib/gconv/NATS-DANO.so +-rwxr-xr-x root/root usr/lib/gconv/NATS-SEFI.so +-rwxr-xr-x root/root usr/lib/gconv/PT154.so +-rwxr-xr-x root/root usr/lib/gconv/RK1048.so +-rwxr-xr-x root/root usr/lib/gconv/SAMI-WS2.so +-rwxr-xr-x root/root usr/lib/gconv/SHIFT_JISX0213.so +-rwxr-xr-x root/root usr/lib/gconv/SJIS.so +-rwxr-xr-x root/root usr/lib/gconv/T.61.so +-rwxr-xr-x root/root usr/lib/gconv/TCVN5712-1.so +-rwxr-xr-x root/root usr/lib/gconv/TIS-620.so +-rwxr-xr-x root/root usr/lib/gconv/TSCII.so +-rwxr-xr-x root/root usr/lib/gconv/UHC.so +-rwxr-xr-x root/root usr/lib/gconv/UNICODE.so +-rwxr-xr-x root/root usr/lib/gconv/UTF-16.so +-rwxr-xr-x root/root usr/lib/gconv/UTF-32.so +-rwxr-xr-x root/root usr/lib/gconv/UTF-7.so +-rwxr-xr-x root/root usr/lib/gconv/VISCII.so +-rw-r--r-- root/root usr/lib/gconv/gconv-modules +-rwxr-xr-x root/root usr/lib/gconv/libCNS.so +-rwxr-xr-x root/root usr/lib/gconv/libGB.so +-rwxr-xr-x root/root usr/lib/gconv/libISOIR165.so +-rwxr-xr-x root/root usr/lib/gconv/libJIS.so +-rwxr-xr-x root/root usr/lib/gconv/libJISX0213.so +-rwxr-xr-x root/root usr/lib/gconv/libKSC.so +-rw-r--r-- root/root usr/lib/gcrt1.o drwxr-xr-x root/root usr/lib/getconf/ -rwxr-xr-x root/root usr/lib/getconf/POSIX_V6_LP64_OFF64 -rwxr-xr-x root/root usr/lib/getconf/POSIX_V7_LP64_OFF64 -rwxr-xr-x root/root usr/lib/getconf/XBS5_LP64_OFF64 +-rw-r--r-- root/root usr/lib/libBrokenLocale.a +lrwxrwxrwx root/root usr/lib/libBrokenLocale.so -> ../../lib/libBrokenLocale.so.1 +-rw-r--r-- root/root usr/lib/libanl.a +lrwxrwxrwx root/root usr/lib/libanl.so -> ../../lib/libanl.so.1 +-rw-r--r-- root/root usr/lib/libc.a +-rw-r--r-- root/root usr/lib/libc.so +-rw-r--r-- root/root usr/lib/libc_nonshared.a +lrwxrwxrwx root/root usr/lib/libcidn.so -> ../../lib/libcidn.so.1 +-rw-r--r-- root/root usr/lib/libcrypt.a +lrwxrwxrwx root/root usr/lib/libcrypt.so -> ../../lib/libcrypt.so.1 +-rw-r--r-- root/root usr/lib/libdl.a +lrwxrwxrwx root/root usr/lib/libdl.so -> ../../lib/libdl.so.2 +-rw-r--r-- root/root usr/lib/libg.a +-rw-r--r-- root/root usr/lib/libm.a +lrwxrwxrwx root/root usr/lib/libm.so -> ../../lib/libm.so.6 +-rw-r--r-- root/root usr/lib/libmcheck.a +-rw-r--r-- root/root usr/lib/libnsl.a +lrwxrwxrwx root/root usr/lib/libnsl.so -> ../../lib/libnsl.so.1 +lrwxrwxrwx root/root usr/lib/libnss_compat.so -> ../../lib/libnss_compat.so.2 +lrwxrwxrwx root/root usr/lib/libnss_db.so -> ../../lib/libnss_db.so.2 +lrwxrwxrwx root/root usr/lib/libnss_dns.so -> ../../lib/libnss_dns.so.2 +lrwxrwxrwx root/root usr/lib/libnss_files.so -> ../../lib/libnss_files.so.2 +lrwxrwxrwx root/root usr/lib/libnss_hesiod.so -> ../../lib/libnss_hesiod.so.2 +lrwxrwxrwx root/root usr/lib/libnss_nis.so -> ../../lib/libnss_nis.so.2 +lrwxrwxrwx root/root usr/lib/libnss_nisplus.so -> ../../lib/libnss_nisplus.so.2 +-rw-r--r-- root/root usr/lib/libpthread.a +-rw-r--r-- root/root usr/lib/libpthread.so +-rw-r--r-- root/root usr/lib/libpthread_nonshared.a +-rw-r--r-- root/root usr/lib/libresolv.a +lrwxrwxrwx root/root usr/lib/libresolv.so -> ../../lib/libresolv.so.2 +-rw-r--r-- root/root usr/lib/librpcsvc.a +-rw-r--r-- root/root usr/lib/librt.a +lrwxrwxrwx root/root usr/lib/librt.so -> ../../lib/librt.so.1 +lrwxrwxrwx root/root usr/lib/libthread_db.so -> ../../lib/libthread_db.so.1 +-rw-r--r-- root/root usr/lib/libutil.a +lrwxrwxrwx root/root usr/lib/libutil.so -> ../../lib/libutil.so.1 drwxr-xr-x root/root usr/lib/locale/ -drwxr-xr-x root/root usr/lib64/ --rw-r--r-- root/root usr/lib64/Mcrt1.o --rw-r--r-- root/root usr/lib64/Scrt1.o -drwxr-xr-x root/root usr/lib64/audit/ --rwxr-xr-x root/root usr/lib64/audit/sotruss-lib.so --rw-r--r-- root/root usr/lib64/crt1.o --rw-r--r-- root/root usr/lib64/crti.o --rw-r--r-- root/root usr/lib64/crtn.o -drwxr-xr-x root/root usr/lib64/gconv/ --rwxr-xr-x root/root usr/lib64/gconv/ANSI_X3.110.so --rwxr-xr-x root/root usr/lib64/gconv/ARMSCII-8.so --rwxr-xr-x root/root usr/lib64/gconv/ASMO_449.so --rwxr-xr-x root/root usr/lib64/gconv/BIG5.so --rwxr-xr-x root/root usr/lib64/gconv/BIG5HKSCS.so --rwxr-xr-x root/root usr/lib64/gconv/BRF.so --rwxr-xr-x root/root usr/lib64/gconv/CP10007.so --rwxr-xr-x root/root usr/lib64/gconv/CP1125.so --rwxr-xr-x root/root usr/lib64/gconv/CP1250.so --rwxr-xr-x root/root usr/lib64/gconv/CP1251.so --rwxr-xr-x root/root usr/lib64/gconv/CP1252.so --rwxr-xr-x root/root usr/lib64/gconv/CP1253.so --rwxr-xr-x root/root usr/lib64/gconv/CP1254.so --rwxr-xr-x root/root usr/lib64/gconv/CP1255.so --rwxr-xr-x root/root usr/lib64/gconv/CP1256.so --rwxr-xr-x root/root usr/lib64/gconv/CP1257.so --rwxr-xr-x root/root usr/lib64/gconv/CP1258.so --rwxr-xr-x root/root usr/lib64/gconv/CP737.so --rwxr-xr-x root/root usr/lib64/gconv/CP770.so --rwxr-xr-x root/root usr/lib64/gconv/CP771.so --rwxr-xr-x root/root usr/lib64/gconv/CP772.so --rwxr-xr-x root/root usr/lib64/gconv/CP773.so --rwxr-xr-x root/root usr/lib64/gconv/CP774.so --rwxr-xr-x root/root usr/lib64/gconv/CP775.so --rwxr-xr-x root/root usr/lib64/gconv/CP932.so --rwxr-xr-x root/root usr/lib64/gconv/CSN_369103.so --rwxr-xr-x root/root usr/lib64/gconv/CWI.so --rwxr-xr-x root/root usr/lib64/gconv/DEC-MCS.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-AT-DE-A.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-AT-DE.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-CA-FR.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-DK-NO-A.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-DK-NO.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-ES-A.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-ES-S.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-ES.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-FI-SE-A.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-FI-SE.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-FR.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-IS-FRISS.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-IT.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-PT.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-UK.so --rwxr-xr-x root/root usr/lib64/gconv/EBCDIC-US.so --rwxr-xr-x root/root usr/lib64/gconv/ECMA-CYRILLIC.so --rwxr-xr-x root/root usr/lib64/gconv/EUC-CN.so --rwxr-xr-x root/root usr/lib64/gconv/EUC-JISX0213.so --rwxr-xr-x root/root usr/lib64/gconv/EUC-JP-MS.so --rwxr-xr-x root/root usr/lib64/gconv/EUC-JP.so --rwxr-xr-x root/root usr/lib64/gconv/EUC-KR.so --rwxr-xr-x root/root usr/lib64/gconv/EUC-TW.so --rwxr-xr-x root/root usr/lib64/gconv/GB18030.so --rwxr-xr-x root/root usr/lib64/gconv/GBBIG5.so --rwxr-xr-x root/root usr/lib64/gconv/GBGBK.so --rwxr-xr-x root/root usr/lib64/gconv/GBK.so --rwxr-xr-x root/root usr/lib64/gconv/GEORGIAN-ACADEMY.so --rwxr-xr-x root/root usr/lib64/gconv/GEORGIAN-PS.so --rwxr-xr-x root/root usr/lib64/gconv/GOST_19768-74.so --rwxr-xr-x root/root usr/lib64/gconv/GREEK-CCITT.so --rwxr-xr-x root/root usr/lib64/gconv/GREEK7-OLD.so --rwxr-xr-x root/root usr/lib64/gconv/GREEK7.so --rwxr-xr-x root/root usr/lib64/gconv/HP-GREEK8.so --rwxr-xr-x root/root usr/lib64/gconv/HP-ROMAN8.so --rwxr-xr-x root/root usr/lib64/gconv/HP-ROMAN9.so --rwxr-xr-x root/root usr/lib64/gconv/HP-THAI8.so --rwxr-xr-x root/root usr/lib64/gconv/HP-TURKISH8.so --rwxr-xr-x root/root usr/lib64/gconv/IBM037.so --rwxr-xr-x root/root usr/lib64/gconv/IBM038.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1004.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1008.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1008_420.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1025.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1026.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1046.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1047.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1097.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1112.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1122.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1123.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1124.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1129.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1130.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1132.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1133.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1137.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1140.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1141.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1142.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1143.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1144.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1145.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1146.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1147.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1148.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1149.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1153.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1154.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1155.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1156.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1157.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1158.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1160.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1161.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1162.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1163.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1164.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1166.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1167.so --rwxr-xr-x root/root usr/lib64/gconv/IBM12712.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1364.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1371.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1388.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1390.so --rwxr-xr-x root/root usr/lib64/gconv/IBM1399.so --rwxr-xr-x root/root usr/lib64/gconv/IBM16804.so --rwxr-xr-x root/root usr/lib64/gconv/IBM256.so --rwxr-xr-x root/root usr/lib64/gconv/IBM273.so --rwxr-xr-x root/root usr/lib64/gconv/IBM274.so --rwxr-xr-x root/root usr/lib64/gconv/IBM275.so --rwxr-xr-x root/root usr/lib64/gconv/IBM277.so --rwxr-xr-x root/root usr/lib64/gconv/IBM278.so --rwxr-xr-x root/root usr/lib64/gconv/IBM280.so --rwxr-xr-x root/root usr/lib64/gconv/IBM281.so --rwxr-xr-x root/root usr/lib64/gconv/IBM284.so --rwxr-xr-x root/root usr/lib64/gconv/IBM285.so --rwxr-xr-x root/root usr/lib64/gconv/IBM290.so --rwxr-xr-x root/root usr/lib64/gconv/IBM297.so --rwxr-xr-x root/root usr/lib64/gconv/IBM420.so --rwxr-xr-x root/root usr/lib64/gconv/IBM423.so --rwxr-xr-x root/root usr/lib64/gconv/IBM424.so --rwxr-xr-x root/root usr/lib64/gconv/IBM437.so --rwxr-xr-x root/root usr/lib64/gconv/IBM4517.so --rwxr-xr-x root/root usr/lib64/gconv/IBM4899.so --rwxr-xr-x root/root usr/lib64/gconv/IBM4909.so --rwxr-xr-x root/root usr/lib64/gconv/IBM4971.so --rwxr-xr-x root/root usr/lib64/gconv/IBM500.so --rwxr-xr-x root/root usr/lib64/gconv/IBM5347.so --rwxr-xr-x root/root usr/lib64/gconv/IBM803.so --rwxr-xr-x root/root usr/lib64/gconv/IBM850.so --rwxr-xr-x root/root usr/lib64/gconv/IBM851.so --rwxr-xr-x root/root usr/lib64/gconv/IBM852.so --rwxr-xr-x root/root usr/lib64/gconv/IBM855.so --rwxr-xr-x root/root usr/lib64/gconv/IBM856.so --rwxr-xr-x root/root usr/lib64/gconv/IBM857.so --rwxr-xr-x root/root usr/lib64/gconv/IBM858.so --rwxr-xr-x root/root usr/lib64/gconv/IBM860.so --rwxr-xr-x root/root usr/lib64/gconv/IBM861.so --rwxr-xr-x root/root usr/lib64/gconv/IBM862.so --rwxr-xr-x root/root usr/lib64/gconv/IBM863.so --rwxr-xr-x root/root usr/lib64/gconv/IBM864.so --rwxr-xr-x root/root usr/lib64/gconv/IBM865.so --rwxr-xr-x root/root usr/lib64/gconv/IBM866.so --rwxr-xr-x root/root usr/lib64/gconv/IBM866NAV.so --rwxr-xr-x root/root usr/lib64/gconv/IBM868.so --rwxr-xr-x root/root usr/lib64/gconv/IBM869.so --rwxr-xr-x root/root usr/lib64/gconv/IBM870.so --rwxr-xr-x root/root usr/lib64/gconv/IBM871.so --rwxr-xr-x root/root usr/lib64/gconv/IBM874.so --rwxr-xr-x root/root usr/lib64/gconv/IBM875.so --rwxr-xr-x root/root usr/lib64/gconv/IBM880.so --rwxr-xr-x root/root usr/lib64/gconv/IBM891.so --rwxr-xr-x root/root usr/lib64/gconv/IBM901.so --rwxr-xr-x root/root usr/lib64/gconv/IBM902.so --rwxr-xr-x root/root usr/lib64/gconv/IBM903.so --rwxr-xr-x root/root usr/lib64/gconv/IBM9030.so --rwxr-xr-x root/root usr/lib64/gconv/IBM904.so --rwxr-xr-x root/root usr/lib64/gconv/IBM905.so --rwxr-xr-x root/root usr/lib64/gconv/IBM9066.so --rwxr-xr-x root/root usr/lib64/gconv/IBM918.so --rwxr-xr-x root/root usr/lib64/gconv/IBM921.so --rwxr-xr-x root/root usr/lib64/gconv/IBM922.so --rwxr-xr-x root/root usr/lib64/gconv/IBM930.so --rwxr-xr-x root/root usr/lib64/gconv/IBM932.so --rwxr-xr-x root/root usr/lib64/gconv/IBM933.so --rwxr-xr-x root/root usr/lib64/gconv/IBM935.so --rwxr-xr-x root/root usr/lib64/gconv/IBM937.so --rwxr-xr-x root/root usr/lib64/gconv/IBM939.so --rwxr-xr-x root/root usr/lib64/gconv/IBM943.so --rwxr-xr-x root/root usr/lib64/gconv/IBM9448.so --rwxr-xr-x root/root usr/lib64/gconv/IEC_P27-1.so --rwxr-xr-x root/root usr/lib64/gconv/INIS-8.so --rwxr-xr-x root/root usr/lib64/gconv/INIS-CYRILLIC.so --rwxr-xr-x root/root usr/lib64/gconv/INIS.so --rwxr-xr-x root/root usr/lib64/gconv/ISIRI-3342.so --rwxr-xr-x root/root usr/lib64/gconv/ISO-2022-CN-EXT.so --rwxr-xr-x root/root usr/lib64/gconv/ISO-2022-CN.so --rwxr-xr-x root/root usr/lib64/gconv/ISO-2022-JP-3.so --rwxr-xr-x root/root usr/lib64/gconv/ISO-2022-JP.so --rwxr-xr-x root/root usr/lib64/gconv/ISO-2022-KR.so --rwxr-xr-x root/root usr/lib64/gconv/ISO-IR-197.so --rwxr-xr-x root/root usr/lib64/gconv/ISO-IR-209.so --rwxr-xr-x root/root usr/lib64/gconv/ISO646.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-1.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-10.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-11.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-13.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-14.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-15.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-16.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-2.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-3.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-4.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-5.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-6.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-7.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-8.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-9.so --rwxr-xr-x root/root usr/lib64/gconv/ISO8859-9E.so --rwxr-xr-x root/root usr/lib64/gconv/ISO_10367-BOX.so --rwxr-xr-x root/root usr/lib64/gconv/ISO_11548-1.so --rwxr-xr-x root/root usr/lib64/gconv/ISO_2033.so --rwxr-xr-x root/root usr/lib64/gconv/ISO_5427-EXT.so --rwxr-xr-x root/root usr/lib64/gconv/ISO_5427.so --rwxr-xr-x root/root usr/lib64/gconv/ISO_5428.so --rwxr-xr-x root/root usr/lib64/gconv/ISO_6937-2.so --rwxr-xr-x root/root usr/lib64/gconv/ISO_6937.so --rwxr-xr-x root/root usr/lib64/gconv/JOHAB.so --rwxr-xr-x root/root usr/lib64/gconv/KOI-8.so --rwxr-xr-x root/root usr/lib64/gconv/KOI8-R.so --rwxr-xr-x root/root usr/lib64/gconv/KOI8-RU.so --rwxr-xr-x root/root usr/lib64/gconv/KOI8-T.so --rwxr-xr-x root/root usr/lib64/gconv/KOI8-U.so --rwxr-xr-x root/root usr/lib64/gconv/LATIN-GREEK-1.so --rwxr-xr-x root/root usr/lib64/gconv/LATIN-GREEK.so --rwxr-xr-x root/root usr/lib64/gconv/MAC-CENTRALEUROPE.so --rwxr-xr-x root/root usr/lib64/gconv/MAC-IS.so --rwxr-xr-x root/root usr/lib64/gconv/MAC-SAMI.so --rwxr-xr-x root/root usr/lib64/gconv/MAC-UK.so --rwxr-xr-x root/root usr/lib64/gconv/MACINTOSH.so --rwxr-xr-x root/root usr/lib64/gconv/MIK.so --rwxr-xr-x root/root usr/lib64/gconv/NATS-DANO.so --rwxr-xr-x root/root usr/lib64/gconv/NATS-SEFI.so --rwxr-xr-x root/root usr/lib64/gconv/PT154.so --rwxr-xr-x root/root usr/lib64/gconv/RK1048.so --rwxr-xr-x root/root usr/lib64/gconv/SAMI-WS2.so --rwxr-xr-x root/root usr/lib64/gconv/SHIFT_JISX0213.so --rwxr-xr-x root/root usr/lib64/gconv/SJIS.so --rwxr-xr-x root/root usr/lib64/gconv/T.61.so --rwxr-xr-x root/root usr/lib64/gconv/TCVN5712-1.so --rwxr-xr-x root/root usr/lib64/gconv/TIS-620.so --rwxr-xr-x root/root usr/lib64/gconv/TSCII.so --rwxr-xr-x root/root usr/lib64/gconv/UHC.so --rwxr-xr-x root/root usr/lib64/gconv/UNICODE.so --rwxr-xr-x root/root usr/lib64/gconv/UTF-16.so --rwxr-xr-x root/root usr/lib64/gconv/UTF-32.so --rwxr-xr-x root/root usr/lib64/gconv/UTF-7.so --rwxr-xr-x root/root usr/lib64/gconv/VISCII.so --rw-r--r-- root/root usr/lib64/gconv/gconv-modules --rwxr-xr-x root/root usr/lib64/gconv/libCNS.so --rwxr-xr-x root/root usr/lib64/gconv/libGB.so --rwxr-xr-x root/root usr/lib64/gconv/libISOIR165.so --rwxr-xr-x root/root usr/lib64/gconv/libJIS.so --rwxr-xr-x root/root usr/lib64/gconv/libJISX0213.so --rwxr-xr-x root/root usr/lib64/gconv/libKSC.so --rw-r--r-- root/root usr/lib64/gcrt1.o --rw-r--r-- root/root usr/lib64/libBrokenLocale.a -lrwxrwxrwx root/root usr/lib64/libBrokenLocale.so -> ../../lib64/libBrokenLocale.so.1 --rw-r--r-- root/root usr/lib64/libanl.a -lrwxrwxrwx root/root usr/lib64/libanl.so -> ../../lib64/libanl.so.1 --rw-r--r-- root/root usr/lib64/libc.a --rw-r--r-- root/root usr/lib64/libc.so --rw-r--r-- root/root usr/lib64/libc_nonshared.a -lrwxrwxrwx root/root usr/lib64/libcidn.so -> ../../lib64/libcidn.so.1 --rw-r--r-- root/root usr/lib64/libcrypt.a -lrwxrwxrwx root/root usr/lib64/libcrypt.so -> ../../lib64/libcrypt.so.1 --rw-r--r-- root/root usr/lib64/libdl.a -lrwxrwxrwx root/root usr/lib64/libdl.so -> ../../lib64/libdl.so.2 --rw-r--r-- root/root usr/lib64/libg.a --rw-r--r-- root/root usr/lib64/libm.a -lrwxrwxrwx root/root usr/lib64/libm.so -> ../../lib64/libm.so.6 --rw-r--r-- root/root usr/lib64/libmcheck.a --rw-r--r-- root/root usr/lib64/libnsl.a -lrwxrwxrwx root/root usr/lib64/libnsl.so -> ../../lib64/libnsl.so.1 -lrwxrwxrwx root/root usr/lib64/libnss_compat.so -> ../../lib64/libnss_compat.so.2 -lrwxrwxrwx root/root usr/lib64/libnss_db.so -> ../../lib64/libnss_db.so.2 -lrwxrwxrwx root/root usr/lib64/libnss_dns.so -> ../../lib64/libnss_dns.so.2 -lrwxrwxrwx root/root usr/lib64/libnss_files.so -> ../../lib64/libnss_files.so.2 -lrwxrwxrwx root/root usr/lib64/libnss_hesiod.so -> ../../lib64/libnss_hesiod.so.2 -lrwxrwxrwx root/root usr/lib64/libnss_nis.so -> ../../lib64/libnss_nis.so.2 -lrwxrwxrwx root/root usr/lib64/libnss_nisplus.so -> ../../lib64/libnss_nisplus.so.2 --rw-r--r-- root/root usr/lib64/libpthread.a --rw-r--r-- root/root usr/lib64/libpthread.so --rw-r--r-- root/root usr/lib64/libpthread_nonshared.a --rw-r--r-- root/root usr/lib64/libresolv.a -lrwxrwxrwx root/root usr/lib64/libresolv.so -> ../../lib64/libresolv.so.2 --rw-r--r-- root/root usr/lib64/librpcsvc.a --rw-r--r-- root/root usr/lib64/librt.a -lrwxrwxrwx root/root usr/lib64/librt.so -> ../../lib64/librt.so.1 -lrwxrwxrwx root/root usr/lib64/libthread_db.so -> ../../lib64/libthread_db.so.1 --rw-r--r-- root/root usr/lib64/libutil.a -lrwxrwxrwx root/root usr/lib64/libutil.so -> ../../lib64/libutil.so.1 drwxr-xr-x root/root usr/sbin/ -rwxr-xr-x root/root usr/sbin/iconvconfig -rwxr-xr-x root/root usr/sbin/nscd diff --git a/glibc/.md5sum b/glibc/.md5sum index 088da58..5fae7bf 100644 --- a/glibc/.md5sum +++ b/glibc/.md5sum @@ -1,3 +1,4 @@ +360e6d4a42c595245c2132abd76697fe glibc-2.27-2.patch 898cd5656519ffbc3a03fe811dd89e82 glibc-2.27.tar.xz 96156bec8e05de67384dc93e72bdc313 host.conf fbbc215a9b15ba4846f326cc88108057 hosts diff --git a/glibc/Pkgfile b/glibc/Pkgfile index 4f2450c..dd03b38 100644 --- a/glibc/Pkgfile +++ b/glibc/Pkgfile @@ -6,9 +6,10 @@ name=glibc version=2.27 -release=1 +release=2 source=(http://ftp.gnu.org/gnu/glibc/glibc-$version.tar.xz \ http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.14.tar.xz \ + glibc-2.27-2.patch \ hosts resolv.conf nsswitch.conf host.conf ld.so.conf) build() { @@ -17,6 +18,9 @@ build() { make mrproper make ARCH=arm64 headers_check make ARCH=arm64 INSTALL_HDR_PATH=$PKG/usr headers_install + chown root:root $PKG/usr + + patch -p1 -d $SRC/$name-${version:0:4} -i $SRC/$name-$version-$release.patch mkdir $SRC/build cd $SRC/build @@ -26,6 +30,7 @@ build() { --enable-kernel=2.6.25 \ --enable-add-ons \ --enable-static-nss \ + --enable-stack-protector=strong \ --disable-profile \ --disable-werror \ --without-gd \ @@ -36,17 +41,23 @@ build() { #make check make install_root=$PKG install - install -m 0644 $SRC/$name-$version/nscd/nscd.conf $PKG/etc + install -m 0644 $SRC/$name-${version:0:4}/nscd/nscd.conf $PKG/etc install -d $PKG/var/{db,run}/nscd install -m 0644 $SRC/{hosts,resolv.conf,nsswitch.conf,host.conf,ld.so.conf} $PKG/etc + # install needed headers + install -d $PKG/usr/include/rpcsvc + install -m 0644 $SRC/$name-${version:0:4}/nis/rpcsvc/yp* $PKG/usr/include/rpcsvc + ln -sf ../usr/share/zoneinfo/UTC $PKG/etc/localtime - ln -s stubs-hard.h $PKG/usr/include/gnu/stubs-soft.h + ln -s stubs-hard.h $PKG/usr/include/gnu/stubs-soft.h install -d $PKG/etc/ld.so.conf.d $PKG/usr/lib/locale touch $PKG/etc/ld.so.cache rm -rf $PKG/usr/share/{info,locale} \ - $PKG/usr/bin/tzselect \ - $PKG/usr/sbin/z{dump,ic} + $PKG/usr/bin/tzselect \ + $PKG/usr/sbin/z{dump,ic} + find $PKG -name "*install.cmd" -delete + find $PKG -name ".\install" -delete } diff --git a/glibc/glibc-2.27-2.patch b/glibc/glibc-2.27-2.patch new file mode 100644 index 0000000..d802c45 --- /dev/null +++ b/glibc/glibc-2.27-2.patch @@ -0,0 +1,17895 @@ +diff --git a/ChangeLog b/ChangeLog +index f3fe2716b2..6fba508ae1 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,431 @@ ++2018-05-24 Gabriel F. T. Gomes ++ ++ [BZ #23171] ++ * math/math.h [C++] (iseqsig): Fix parameter type for the long ++ double version. ++ ++2018-06-12 Carlos O'Donell ++ Andreas Schwab ++ Dmitry V. Levin ++ Florian Weimer ++ ++ [BZ #23102] ++ [BZ #21942] ++ [BZ #18018] ++ [BZ #23259] ++ CVE-2011-0536 ++ * elf/dl-dst.h: Remove DL_DST_COUNT. ++ * elf/dl-deps.c (expand_dst): Call _dl_dst_count. ++ * elf/dl-load.c (is_trusted_path_normalize): Don't handle colons. ++ (is_dst): Comment. Support ELF gABI. ++ (_dl_dst_count): Comment. Simplify and count DSTs. ++ (_dl_dst_substitute): Comment. Support __libc_enable_secure handling. ++ (expand_dybamic_string_token): Comment. Call _dl_dst_count. Rename ++ locals. ++ ++2018-06-12 Florian Weimer ++ ++ x86: Make strncmp usable from rtld. ++ * sysdeps/i386/i686/multiarch/strncmp-c.c: Only rename strncmp to ++ __strncmp_ia32 if in libc (and not in rtld). ++ * sysdeps/x86_64/multiarch/strncmp-sse2.S: Rename strcmp to ++ strncmp if not in libc (and not to __strncmp_sse2). ++ ++2018-06-01 Florian Weimer ++ ++ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Update from master ++ branch, commit e02c026f38505cd474ff1bdaa88fc671804f5805. ++ * sysdeps/i386/fpu/libm-test-ulps: Likewise. ++ ++2018-06-08 Adhemerval Zanella ++ ++ [BZ #23264] ++ * include/unistd.h (__execvpex): New prototype. ++ * posix/Makefile (tests): Add tst-spawn4. ++ (tests-internal): Add tst-spawn4-compat. ++ * posix/execvpe.c (__execvpe_common, __execvpex): New functions. ++ * posix/tst-spawn4-compat.c: New file. ++ * posix/tst-spawn4.c: Likewise. ++ * sysdeps/unix/sysv/linux/spawni.c (__spawni): Do not interpret invalid ++ binaries as shell scripts. ++ * sysdeps/posix/spawni.c (__spawni): Likewise. ++ * NEWS: Add BZ#22264. ++ ++2018-06-01 Florian Weimer ++ ++ [BZ #23236] ++ * libio/strfile.h (struct _IO_str_fields): Rename members to ++ discourage their use and add comment. ++ (_IO_STR_DYNAMIC): Remove unused macro. ++ * libio/strops.c (_IO_str_init_static_internal): Do not use ++ callback pointers. Call malloc and free. ++ (_IO_str_overflow): Do not use callback pointers. Call malloc ++ and free. ++ (enlarge_userbuf): Likewise. ++ (_IO_str_finish): Call free. ++ * libio/wstrops.c (_IO_wstr_init_static): Initialize ++ _allocate_buffer_unused. ++ (_IO_wstr_overflow): Do not use callback pointers. Call malloc ++ and free. ++ (enlarge_userbuf): Likewise. ++ (_IO_wstr_finish): Call free. ++ * debug/vasprintf_chk.c (__vasprintf_chk): Initialize ++ _allocate_buffer_unused, _free_buffer_unused. ++ * libio/memstream.c (__open_memstream): Likewise. ++ * libio/vasprintf.c (_IO_vasprintf): Likewise. ++ * libio/wmemstream.c (open_wmemstream): Likewise. ++ ++2018-05-23 H.J. Lu ++ ++ [BZ #23196] ++ * string/test-memcpy.c (do_test1): New function. ++ (test_main): Call it. ++ ++2018-05-23 Andreas Schwab ++ ++ [BZ #23196] ++ CVE-2018-11237 ++ * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S ++ (L(preloop_large)): Save initial destination pointer in %r11 and ++ use it instead of %rax after the loop. ++ * string/test-mempcpy.c (MIN_PAGE_SIZE): Define. ++ ++2018-05-11 Florian Weimer ++ ++ [BZ #23166] ++ * include/rpc/clnt.h (rpc_createerr): Declare hidden alias. ++ * include/rpc/svc.h (svc_pollfd, svc_max_pollfd, svc_fdset): ++ Likewise. ++ * sunrpc/rpc_common.c (svc_fdset, rpc_createerr, svc_pollfd) ++ (svc_max_pollfd): Add nocommon attribute and hidden alias. Do not ++ export without --enable-obsolete-rpc. ++ * sunrpc/svcauth_des.c (svcauthdes_stats): Turn into compatibility ++ symbol. This should not have been exported, ever. ++ ++2018-05-11 Rafal Luzynski ++ ++ [BZ #23152] ++ * localedata/locales/gd_GB (abmon): Fix typo in May: ++ "Mhàrt" -> "Cèit". Adjust the comment according to the change. ++ ++2018-05-09 Paul Pluzhnikov ++ ++ [BZ #22786] ++ CVE-2018-11236 ++ * stdlib/canonicalize.c (__realpath): Fix overflow in path length ++ computation. ++ * stdlib/Makefile (test-bz22786): New test. ++ * stdlib/test-bz22786.c: New test. ++ ++2018-05-05 Paul Pluzhnikov ++ ++ [BZ #20419] ++ * elf/dl-load.c (open_verify): Fix stack overflow. ++ * elf/Makefile (tst-big-note): New test. ++ * elf/tst-big-note-lib.S: New. ++ * elf/tst-big-note.c: New. ++ ++2018-05-04 Stefan Liebler ++ ++ [BZ #23137] ++ * sysdeps/nptl/lowlevellock.h (lll_wait_tid): ++ Use atomic_load_acquire to load __tid. ++ ++2018-04-24 Joseph Myers ++ ++ * sysdeps/unix/sysv/linux/sys/ptrace.h ++ (PTRACE_SECCOMP_GET_METADATA): New enum value and macro. ++ * sysdeps/unix/sysv/linux/bits/ptrace-shared.h ++ (struct __ptrace_seccomp_metadata): New type. ++ * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h ++ (PTRACE_SECCOMP_GET_METADATA): Likewise. ++ * sysdeps/unix/sysv/linux/arm/sys/ptrace.h ++ (PTRACE_SECCOMP_GET_METADATA): Likewise. ++ * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h ++ (PTRACE_SECCOMP_GET_METADATA): Likewise. ++ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h ++ (PTRACE_SECCOMP_GET_METADATA): Likewise. ++ * sysdeps/unix/sysv/linux/s390/sys/ptrace.h ++ (PTRACE_SECCOMP_GET_METADATA): Likewise. ++ * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h ++ (PTRACE_SECCOMP_GET_METADATA): Likewise. ++ * sysdeps/unix/sysv/linux/tile/sys/ptrace.h ++ (PTRACE_SECCOMP_GET_METADATA): Likewise. ++ * sysdeps/unix/sysv/linux/x86/sys/ptrace.h ++ (PTRACE_SECCOMP_GET_METADATA): Likewise. ++ ++2018-04-09 Florian Weimer ++ ++ [BZ #23037] ++ * resolv/res_send.c (send_dg): Use designated initializers instead ++ of assignment to zero-initialize other fields of struct mmsghdr. ++ ++2018-04-06 Andreas Schwab ++ ++ * manual/charset.texi (Converting a Character): Fix typo. ++ ++2018-04-05 Florian Weimer ++ ++ * manual/examples/mbstouwcs.c (mbstouwcs): Fix loop termination, ++ integer overflow, memory leak on error, and indeterminate errno ++ value. Add a null wide character to terminate the result string. ++ * manual/charset.texi (Converting a Character): Mention embedded ++ null bytes in the mbrtowc input string. Explain what happens in ++ the -2 result case. Do not claim that mbrtowc is simple or ++ obvious to use. Adjust the description of the code example. Use ++ @code, not @var, for concrete variables. ++ ++2018-04-05 Florian Weimer ++ ++ * manual/examples/mbstouwcs.c: New file. ++ * manual/charset.texi (Converting a Character): Include it. ++ ++2018-04-03 H.J. Lu ++ ++ [BZ #22947] ++ * bits/uio-ext.h (RWF_APPEND): New. ++ * sysdeps/unix/sysv/linux/bits/uio-ext.h (RWF_APPEND): Likewise. ++ * manual/llio.texi: Document RWF_APPEND. ++ * misc/tst-preadvwritev2-common.c (RWF_APPEND): New. ++ (RWF_SUPPORTED): Add RWF_APPEND. ++ ++2018-03-27 Jesse Hathaway ++ ++ * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Return ++ early when linux sentinel value is set. ++ ++2018-03-27 Andreas Schwab ++ ++ [BZ #23005] ++ * resolv/res_send.c (__res_context_send): Return ENOMEM if ++ allocation of private copy of nsaddr_list fails. ++ ++2018-03-20 Joseph Myers ++ ++ [BZ #17343] ++ * stdlib/random_r.c (__random_r): Use unsigned arithmetic for ++ possibly overflowing computations. ++ ++2018-04-26 Aurelien Jarno ++ ++ * signal/tst-sigaction.c: New file to test BZ #23069. ++ * signal/Makefile (tests): Fix indentation. Add tst-sigaction. ++ ++2018-04-28 Aurelien Jarno ++ ++ [BZ #23069] ++ * sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h: New file. ++ ++2018-03-29 Florian Weimer ++ ++ * sysdeps/unix/sysv/linux/i386/tst-bz21269.c (do_test): Also ++ capture SIGBUS. ++ ++2018-03-23 Andrew Senkevich ++ Max Horn ++ ++ [BZ #22644] ++ CVE-2017-18269 ++ * sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S: Fixed ++ branch conditions. ++ * string/test-memmove.c (do_test2): New testcase. ++ ++2018-02-22 Andrew Waterman ++ ++ [BZ # 22884] ++ * sysdeps/riscv/rvd/s_fmax.c (__fmax): Handle sNaNs correctly. ++ * sysdeps/riscv/rvd/s_fmin.c (__fmin): Likewise. ++ * sysdeps/riscv/rvf/s_fmaxf.c (__fmaxf): Likewise. ++ * sysdeps/riscv/rvf/s_fminf.c (__fminf): Likewise. ++ ++2018-02-22 DJ Delorie ++ ++ * sysdeps/riscv/tls-macros.h: Do not initialize $gp. ++ ++2018-03-16 Rafal Luzynski ++ ++ [BZ #22963] ++ * localedata/locales/cs_CZ (mon): Rename to... ++ (alt_mon): This. ++ (mon): Import from CLDR (genitive case). ++ ++2018-03-16 Rafal Luzynski ++ ++ [BZ #22937] ++ * localedata/locales/el_CY (abmon): Rename to... ++ (ab_alt_mon): This. ++ (abmon): Import from CLDR (abbreviated genitive case). ++ * localedata/locales/el_GR (abmon): Rename to... ++ (ab_alt_mon): This. ++ (abmon): Import from CLDR (abbreviated genitive case). ++ ++2018-03-16 Rafal Luzynski ++ ++ [BZ #22932] ++ * localedata/locales/lt_LT (abmon): Synchronize with CLDR. ++ ++2018-03-16 Robert Buj ++ ++ [BZ #22848] ++ * localedata/locales/ca_ES (abmon): Rename to... ++ (ab_alt_mon): This, then synchronize with CLDR (nominative case). ++ (mon): Rename to... ++ (alt_mon): This. ++ (abmon): Import from CLDR (genitive case, month names preceded by ++ "de" or "d’"). ++ (mon): Likewise. ++ (abday): Synchronize with CLDR. ++ (d_t_fmt): Likewise. ++ (d_fmt): Likewise. ++ (am_pm): Likewise. ++ ++ (LC_TIME): Improve indentation. ++ (LC_TELEPHONE): Likewise. ++ (LC_NAME): Likewise. ++ (LC_ADDRESS): Likewise. ++ ++2018-03-12 Dmitry V. Levin ++ ++ * po/pt_BR.po: Update translations. ++ ++2018-03-03 Adhemerval Zanella ++ ++ [BZ #21269] ++ * sysdeps/unix/sysv/linux/i386/Makefile (tests): Add tst-bz21269. ++ * sysdeps/unix/sysv/linux/i386/sigaction.c (SET_SA_RESTORER): Clear ++ sa_restorer for vDSO case. ++ * sysdeps/unix/sysv/linux/i386/tst-bz21269.c: New file. ++ ++2018-03-03 Andreas Schwab ++ ++ [BZ #22918] ++ * nss/nsswitch.h (DEFINE_DATABASE): Don't define __nss_*_database. ++ * nss/nsswitch.c (DEFINE_DATABASE): Define __nss_*_database here. ++ * nscd/gai.c (__nss_hosts_database): Readd definition. ++ * posix/tst-rfc3484.c (__nss_hosts_database): Likewise. ++ * posix/tst-rfc3484-3.c (__nss_hosts_database): Likewise. ++ * posix/tst-rfc3484-2.c (__nss_hosts_database): Likewise. ++ ++2018-03-01 DJ Delorie ++ ++ [BZ #22342] ++ * nscd/netgroupcache.c (addinnetgrX): Include trailing NUL in ++ key value. ++ ++2018-02-26 Dmitry V. Levin ++ ++ [BZ #22433] ++ [BZ #22807] ++ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h (__ptrace_request): Add ++ PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS, ++ PTRACE_GETVRREGS, PTRACE_SETVRREGS, PTRACE_GETEVRREGS, ++ PTRACE_SETEVRREGS, PTRACE_GETREGS64, PTRACE_SETREGS64, ++ PTRACE_GET_DEBUGREG, PTRACE_SET_DEBUGREG, PTRACE_GETVSRREGS, ++ PTRACE_SETVSRREGS, and PTRACE_SINGLEBLOCK. ++ ++2018-02-26 Tulio Magno Quites Machado Filho ++ ++ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Undefine Linux ++ macros used in __ptrace_request. ++ ++2018-02-21 Mike FABIAN ++ ++ [BZ #22517] ++ * localedata/locales/et_EE (LC_COLLATE): add missing “reorder-end” ++ ++2018-02-21 Rical Jasan ++ ++ * io/fcntl.h: Fix a typo in a comment. ++ ++2018-02-20 Rical Jasan ++ ++ * manual/creature.texi (_ISOC99_SOURCE): Update the dated ++ description. ++ ++ [BZ #16335] ++ * manual/creature.texi (_POSIX_C_SOURCE): Document special values ++ of 199606L, 200112L, and 200809L. ++ (_XOPEN_SOURCE): Document special values of 600 and 700. ++ (_ISOC11_SOURCE): Document macro. ++ (_ATFILE_SOURCE): Likewise. ++ (_FORTIFY_SOURCE): Likewise. ++ ++2018-03-09 Aurelien Jarno ++ ++ [BZ #22919] ++ * sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S (__startcontext): ++ Add nop before __startcontext, add explaining comments. ++ ++2018-03-07 Adhemerval Zanella ++ ++ [BZ #22926] ++ * sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION_IMPL): Define ++ empty for __SPE__. ++ * sysdeps/powerpc/sysdep.h (ABORT_TRANSACTION): Likewise. ++ * sysdeps/unix/sysv/linux/powerpc/elision-lock.c (__lll_lock_elision): ++ Do not build hardware transactional code for __SPE__. ++ * sysdeps/unix/sysv/linux/powerpc/elision-trylock.c ++ (__lll_trylock_elision): Likewise. ++ * sysdeps/unix/sysv/linux/powerpc/elision-unlock.c ++ (__lll_unlock_elision): Likewise. ++ ++2018-02-19 Rical Jasan ++ ++ [BZ #6889] ++ * manual/filesys.texi (get_current_dir_name): Clarify behaviour. ++ ++2018-02-16 Rical Jasan ++ ++ * manual/platform.texi (__riscv_flush_icache): Fix @deftypefun ++ syntax. ++ ++2018-02-09 Rical Jasan ++ ++ * manual/creature.texi: Convert references to gcc.info to gcc. ++ * manual/stdio.texi: Likewise. ++ * manual/string.texi: Likewise. ++ ++2018-02-18 Aurelien Jarno ++ ++ [BZ #22818] ++ * posix/tst-glob_lstat_compat.c [__alpha__] (glob): Access ++ the GLIBC_2.1 version. ++ ++2018-02-02 Sean McKean ++ ++ [BZ #22735] ++ * time/time.h (clock): Reference CLOCKS_PER_SEC in comment. ++ ++2018-02-10 Dmitry V. Levin ++ ++ [BZ #22433] ++ * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (__ptrace_request): ++ Remove arm-specific PTRACE_GET_THREAD_AREA, PTRACE_GETHBPREGS, ++ and PTRACE_SETHBPREGS. ++ ++2018-02-14 Adhemerval Zanella ++ ++ * sysdeps/sh/libm-test-ulps: Update. ++ ++2018-02-09 DJ Delorie ++ ++ [BZ #22827] ++ * sysdeps/unix/sysv/linux/riscv/readelflib.c (process_elf_file): Use ++ 64-bit ELF type for 64-bit ELF objects. ++ ++2018-02-07 Igor Gnatenko ++ ++ [BZ #22797] ++ * sysdeps/unix/sysv/linux/bits/mman-shared.h (pkey_get): Add ++ missing second underscore to parameter name. ++ ++2018-02-05 H.J. Lu ++ ++ [BZ #22638] ++ * sysdeps/sparc/sparc32/start.S (_start): Check PIC instead of ++ SHARED. ++ * sysdeps/sparc/sparc64/start.S (_start): Likewise. ++ + 2018-02-01 Dmitry V. Levin + + * version.h (RELEASE): Set to "stable". +@@ -710,7 +1138,9 @@ + 2018-01-18 Arjun Shankar + + [BZ #22343] ++ [BZ #22774] + CVE-2018-6485 ++ CVE-2018-6551 + * malloc/malloc.c (checked_request2size): call REQUEST_OUT_OF_RANGE + after padding. + (_int_memalign): check for integer overflow before calling +diff --git a/NEWS b/NEWS +index a71c1038a8..2dab66e851 100644 +--- a/NEWS ++++ b/NEWS +@@ -5,6 +5,83 @@ See the end for copying conditions. + Please send GNU C library bug reports via + using `glibc' in the "product" field. + ++Version 2.27.1 ++ ++Major new features: ++ ++* Nominative and genitive month names are now supported for the Catalan and ++ Czech languages. The Catalan and Greek languages now support abbreviated ++ alternative month names. ++ ++* Parsing of dynamic string tokens in DT_RPATH, DT_RUNPATH, DT_NEEDED, ++ DT_AUXILIARY, and DT_FILTER has been expanded to support the full ++ range of ELF gABI expressions including such constructs as ++ '$ORIGIN$ORIGIN' (if valid). For SUID/GUID applications the rules ++ have been further restricted, and where in the past a dynamic string ++ token sequence may have been interpreted as a literal string it will ++ now cause a load failure. These load failures were always considered ++ unspecified behaviour from the perspective of the dynamic loader, and ++ for safety are now load errors e.g. /foo/${ORIGIN}.so in DT_NEEDED ++ results in a load failure now. ++ ++Security related changes: ++ ++ CVE-2017-18269: An SSE2-based memmove implementation for the i386 ++ architecture could corrupt memory. Reported by Max Horn. ++ ++ CVE-2018-11236: Very long pathname arguments to realpath function could ++ result in an integer overflow and buffer overflow. Reported by Alexey ++ Izbyshev. ++ ++ CVE-2018-11237: The mempcpy implementation for the Intel Xeon Phi ++ architecture could write beyond the target buffer, resulting in a buffer ++ overflow. Reported by Andreas Schwab. ++ ++The following bugs are resolved with this release: ++ ++ [6889] 'PWD' mentioned but not specified ++ [16335] Feature test macro documentation incomplete and out of date ++ [17343] Signed integer overflow in /stdlib/random_r.c ++ [18018] Additional $ORIGIN handling issues (CVE-2011-0536) ++ [20419] files with large allocated notes crash in open_verify ++ [21269] i386 sigaction sa_restorer handling is wrong ++ [21942] _dl_dst_substitute incorrectly handles $ORIGIN: with AT_SECURE=1 ++ [22342] NSCD not properly caching netgroup ++ [22638] sparc: static binaries are broken if glibc is built by gcc ++ configured with --enable-default-pie ++ [22644] memmove-sse2-unaligned on 32bit x86 produces garbage when crossing ++ 2GB threshold ++ [22735] Misleading typo in time.h source comment regarding CLOCKS_PER_SECOND ++ [22786] Stack buffer overflow in realpath() if input size is close ++ to SSIZE_MAX ++ [22797] Linux: use reserved name __key in pkey_get ++ [22807] PTRACE_* constants missing for powerpc ++ [22818] posix/tst-glob_lstat_compat failure on alpha ++ [22827] RISC-V ELF64 parser mis-reads flag in ldconfig ++ [22848] ca_ES: update date definitions from CLDR ++ [22884] RISCV fmax/fmin handle signalling NANs incorrectly ++ [22918] multiple common of `__nss_shadow_database' ++ [22919] sparc32: backtrace yields infinite backtrace with makecontext ++ [22926] FTBFS on powerpcspe ++ [22932] lt_LT: Update of abbreviated month names from CLDR required ++ [22937] Greek (el_GR, el_CY) locales actually need ab_alt_mon ++ [22947] FAIL: misc/tst-preadvwritev2 ++ [22963] cs_CZ: Add alternative month names ++ [23005] Crash in __res_context_send after memory allocation failure ++ [23037] initialize msg_flags to zero for sendmmsg() calls ++ [23069] sigaction broken on riscv64-linux-gnu ++ [23102] Incorrect parsing of consecutive $ variables in runpath entries ++ [23137] s390: pthread_join sometimes block indefinitely (on 31bit and libc ++ build with -Os) ++ [23152] gd_GB: Fix typo in "May" (abbreviated) ++ [23166] sunrpc: Remove stray exports without --enable-obsolete-rpc ++ [23171] Fix parameter type in C++ version of iseqsig ++ [23196] __mempcpy_avx512_no_vzeroupper mishandles large copies ++ [23236] Harden function pointers in _IO_str_fields ++ [23259] Unsubstituted ${ORIGIN} remains in DT_NEEDED for AT_SECURE ++ [23264] libc: posix_spawnp wrongly executes ENOEXEC in non compat mode ++ ++ + Version 2.27 + + Major new features: +@@ -262,6 +339,10 @@ Security related changes: + an object size near the value of SIZE_MAX, would return a pointer to a + buffer which is too small, instead of NULL. Reported by Jakub Wilk. + ++ CVE-2018-6551: The malloc function, when called with an object size near ++ the value of SIZE_MAX, would return a pointer to a buffer which is too ++ small, instead of NULL. ++ + The following bugs are resolved with this release: + + [866] glob: glob should match dangling symlinks +diff --git a/bits/uio-ext.h b/bits/uio-ext.h +index 8c15a05d9a..d5aa06fd08 100644 +--- a/bits/uio-ext.h ++++ b/bits/uio-ext.h +@@ -28,5 +28,6 @@ + #define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC. */ + #define RWF_SYNC 0x00000004 /* per-IO O_SYNC. */ + #define RWF_NOWAIT 0x00000008 /* per-IO nonblocking mode. */ ++#define RWF_APPEND 0x00000010 /* per-IO O_APPEND. */ + + #endif /* sys/uio_ext.h */ +diff --git a/debug/vasprintf_chk.c b/debug/vasprintf_chk.c +index a00ef771e6..3eb64617fd 100644 +--- a/debug/vasprintf_chk.c ++++ b/debug/vasprintf_chk.c +@@ -55,8 +55,8 @@ __vasprintf_chk (char **result_ptr, int flags, const char *format, + _IO_JUMPS (&sf._sbf) = &_IO_str_jumps; + _IO_str_init_static_internal (&sf, string, init_string_size, string); + sf._sbf._f._flags &= ~_IO_USER_BUF; +- sf._s._allocate_buffer = (_IO_alloc_type) malloc; +- sf._s._free_buffer = (_IO_free_type) free; ++ sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc; ++ sf._s._free_buffer_unused = (_IO_free_type) free; + + /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n + can only come from read-only format strings. */ +diff --git a/elf/Makefile b/elf/Makefile +index 2a432d8bee..2d8fe88aa6 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -187,7 +187,7 @@ tests += restest1 preloadtest loadfail multiload origtest resolvfail \ + tst-tlsalign tst-tlsalign-extern tst-nodelete-opened \ + tst-nodelete2 tst-audit11 tst-audit12 tst-dlsym-error tst-noload \ + tst-latepthread tst-tls-manydynamic tst-nodelete-dlclose \ +- tst-debug1 tst-main1 ++ tst-debug1 tst-main1 tst-big-note + # reldep9 + tests-internal += loadtest unload unload2 circleload1 \ + neededtest neededtest2 neededtest3 neededtest4 \ +@@ -272,7 +272,9 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ + tst-audit12mod1 tst-audit12mod2 tst-audit12mod3 tst-auditmod12 \ + tst-latepthreadmod $(tst-tls-many-dynamic-modules) \ + tst-nodelete-dlclose-dso tst-nodelete-dlclose-plugin \ +- tst-main1mod tst-libc_dlvsym-dso ++ tst-main1mod tst-libc_dlvsym-dso \ ++ tst-big-note-lib ++ + ifeq (yes,$(have-mtls-dialect-gnu2)) + tests += tst-gnu2-tls1 + modules-names += tst-gnu2-tls1mod +@@ -1446,3 +1448,5 @@ $(objpfx)tst-libc_dlvsym-static: $(common-objpfx)dlfcn/libdl.a + tst-libc_dlvsym-static-ENV = \ + LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)dlfcn + $(objpfx)tst-libc_dlvsym-static.out: $(objpfx)tst-libc_dlvsym-dso.so ++ ++$(objpfx)tst-big-note: $(objpfx)tst-big-note-lib.so +diff --git a/elf/dl-deps.c b/elf/dl-deps.c +index c975fcffd7..20b8e94f2e 100644 +--- a/elf/dl-deps.c ++++ b/elf/dl-deps.c +@@ -100,7 +100,7 @@ struct list + ({ \ + const char *__str = (str); \ + const char *__result = __str; \ +- size_t __dst_cnt = DL_DST_COUNT (__str); \ ++ size_t __dst_cnt = _dl_dst_count (__str); \ + \ + if (__dst_cnt != 0) \ + { \ +diff --git a/elf/dl-dst.h b/elf/dl-dst.h +index 32de5d225a..859032be0d 100644 +--- a/elf/dl-dst.h ++++ b/elf/dl-dst.h +@@ -18,19 +18,6 @@ + + #include "trusted-dirs.h" + +-/* Determine the number of DST elements in the name. Only if IS_PATH is +- nonzero paths are recognized (i.e., multiple, ':' separated filenames). */ +-#define DL_DST_COUNT(name) \ +- ({ \ +- size_t __cnt = 0; \ +- const char *__sf = strchr (name, '$'); \ +- \ +- if (__glibc_unlikely (__sf != NULL)) \ +- __cnt = _dl_dst_count (__sf); \ +- \ +- __cnt; }) +- +- + #ifdef SHARED + # define IS_RTLD(l) (l) == &GL(dl_rtld_map) + #else +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 7554a99b5a..b20e2a46d0 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -122,12 +122,6 @@ is_trusted_path_normalize (const char *path, size_t len) + if (len == 0) + return false; + +- if (*path == ':') +- { +- ++path; +- --len; +- } +- + char *npath = (char *) alloca (len + 2); + char *wnp = npath; + while (*path != '\0') +@@ -178,114 +172,165 @@ is_trusted_path_normalize (const char *path, size_t len) + return false; + } + ++/* Given a substring starting at INPUT, just after the DST '$' start ++ token, determine if INPUT contains DST token REF, following the ++ ELF gABI rules for DSTs: ++ ++ * Longest possible sequence using the rules (greedy). + ++ * Must start with a $ (enforced by caller). ++ ++ * Must follow $ with one underscore or ASCII [A-Za-z] (caller ++ follows these rules for REF) or '{' (start curly quoted name). ++ ++ * Must follow first two characters with zero or more [A-Za-z0-9_] ++ (enforced by caller) or '}' (end curly quoted name). ++ ++ If the sequence is a DST matching REF then the length of the DST ++ (excluding the $ sign but including curly braces, if any) is ++ returned, otherwise 0. */ + static size_t +-is_dst (const char *start, const char *name, const char *str, int secure) ++is_dst (const char *input, const char *ref) + { +- size_t len; + bool is_curly = false; + +- if (name[0] == '{') ++ /* Is a ${...} input sequence? */ ++ if (input[0] == '{') + { + is_curly = true; +- ++name; +- } +- +- len = 0; +- while (name[len] == str[len] && name[len] != '\0') +- ++len; +- +- if (is_curly) +- { +- if (name[len] != '}') +- return 0; +- +- /* Point again at the beginning of the name. */ +- --name; +- /* Skip over closing curly brace and adjust for the --name. */ +- len += 2; ++ ++input; + } +- else if (name[len] != '\0' && name[len] != '/') +- return 0; + +- if (__glibc_unlikely (secure) +- && ((name[len] != '\0' && name[len] != '/') +- || (name != start + 1))) ++ /* Check for matching name, following closing curly brace (if ++ required), or trailing characters which are part of an ++ identifier. */ ++ size_t rlen = strlen (ref); ++ if (strncmp (input, ref, rlen) != 0 ++ || (is_curly && input[rlen] != '}') ++ || ((input[rlen] >= 'A' && input[rlen] <= 'Z') ++ || (input[rlen] >= 'a' && input[rlen] <= 'z') ++ || (input[rlen] >= '0' && input[rlen] <= '9') ++ || (input[rlen] == '_'))) + return 0; + +- return len; ++ if (is_curly) ++ /* Count the two curly braces. */ ++ return rlen + 2; ++ else ++ return rlen; + } + +- ++/* INPUT is the start of a DST sequence at the first '$' occurrence. ++ If there is a DST we call into _dl_dst_count to count the number of ++ DSTs. We count all known DSTs regardless of __libc_enable_secure; ++ the caller is responsible for enforcing the security of the ++ substitution rules (usually _dl_dst_substitute). */ + size_t +-_dl_dst_count (const char *name) ++_dl_dst_count (const char *input) + { +- const char *const start = name; + size_t cnt = 0; + ++ input = strchr (input, '$'); ++ ++ /* Most likely there is no DST. */ ++ if (__glibc_likely (input == NULL)) ++ return 0; ++ + do + { + size_t len; + +- /* $ORIGIN is not expanded for SUID/GUID programs (except if it +- is $ORIGIN alone) and it must always appear first in path. */ +- ++name; +- if ((len = is_dst (start, name, "ORIGIN", __libc_enable_secure)) != 0 +- || (len = is_dst (start, name, "PLATFORM", 0)) != 0 +- || (len = is_dst (start, name, "LIB", 0)) != 0) ++ ++input; ++ /* All DSTs must follow ELF gABI rules, see is_dst (). */ ++ if ((len = is_dst (input, "ORIGIN")) != 0 ++ || (len = is_dst (input, "PLATFORM")) != 0 ++ || (len = is_dst (input, "LIB")) != 0) + ++cnt; + +- name = strchr (name + len, '$'); ++ /* There may be more than one DST in the input. */ ++ input = strchr (input + len, '$'); + } +- while (name != NULL); ++ while (input != NULL); + + return cnt; + } + +- ++/* Process INPUT for DSTs and store in RESULT using the information ++ from link map L to resolve the DSTs. This function only handles one ++ path at a time and does not handle colon-separated path lists (see ++ fillin_rpath ()). Lastly the size of result in bytes should be at ++ least equal to the value returned by DL_DST_REQUIRED. Note that it ++ is possible for a DT_NEEDED, DT_AUXILIARY, and DT_FILTER entries to ++ have colons, but we treat those as literal colons here, not as path ++ list delimeters. */ + char * +-_dl_dst_substitute (struct link_map *l, const char *name, char *result) ++_dl_dst_substitute (struct link_map *l, const char *input, char *result) + { +- const char *const start = name; +- +- /* Now fill the result path. While copying over the string we keep +- track of the start of the last path element. When we come across +- a DST we copy over the value or (if the value is not available) +- leave the entire path element out. */ ++ /* Copy character-by-character from input into the working pointer ++ looking for any DSTs. We track the start of input and if we are ++ going to check for trusted paths, all of which are part of $ORIGIN ++ handling in SUID/SGID cases (see below). In some cases, like when ++ a DST cannot be replaced, we may set result to an empty string and ++ return. */ + char *wp = result; +- char *last_elem = result; ++ const char *start = input; + bool check_for_trusted = false; + + do + { +- if (__glibc_unlikely (*name == '$')) ++ if (__glibc_unlikely (*input == '$')) + { + const char *repl = NULL; + size_t len; + +- ++name; +- if ((len = is_dst (start, name, "ORIGIN", __libc_enable_secure)) != 0) ++ ++input; ++ if ((len = is_dst (input, "ORIGIN")) != 0) + { +- repl = l->l_origin; ++ /* For SUID/GUID programs we normally ignore the path with ++ $ORIGIN in DT_RUNPATH, or DT_RPATH. However, there is ++ one exception to this rule, and it is: ++ ++ * $ORIGIN appears as the first path element, and is ++ the only string in the path or is immediately ++ followed by a path separator and the rest of the ++ path. ++ ++ * The path is rooted in a trusted directory. ++ ++ This exception allows such programs to reference ++ shared libraries in subdirectories of trusted ++ directories. The use case is one of general ++ organization and deployment flexibility. ++ Trusted directories are usually such paths as "/lib64" ++ or "/usr/lib64", and the usual RPATHs take the form of ++ [$ORIGIN/../$LIB/somedir]. */ ++ if (__glibc_unlikely (__libc_enable_secure) ++ && !(input == start + 1 ++ && (input[len] == '\0' || input[len] == '/'))) ++ repl = (const char *) -1; ++ else ++ repl = l->l_origin; ++ + check_for_trusted = (__libc_enable_secure + && l->l_type == lt_executable); + } +- else if ((len = is_dst (start, name, "PLATFORM", 0)) != 0) ++ else if ((len = is_dst (input, "PLATFORM")) != 0) + repl = GLRO(dl_platform); +- else if ((len = is_dst (start, name, "LIB", 0)) != 0) ++ else if ((len = is_dst (input, "LIB")) != 0) + repl = DL_DST_LIB; + + if (repl != NULL && repl != (const char *) -1) + { + wp = __stpcpy (wp, repl); +- name += len; ++ input += len; + } +- else if (len > 1) ++ else if (len != 0) + { +- /* We cannot use this path element, the value of the +- replacement is unknown. */ +- wp = last_elem; +- break; ++ /* We found a valid DST that we know about, but we could ++ not find a replacement value for it, therefore we ++ cannot use this path and discard it. */ ++ *result = '\0'; ++ return result; + } + else + /* No DST we recognize. */ +@@ -293,16 +338,26 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result) + } + else + { +- *wp++ = *name++; ++ *wp++ = *input++; + } + } +- while (*name != '\0'); ++ while (*input != '\0'); + + /* In SUID/SGID programs, after $ORIGIN expansion the normalized +- path must be rooted in one of the trusted directories. */ ++ path must be rooted in one of the trusted directories. The $LIB ++ and $PLATFORM DST cannot in any way be manipulated by the caller ++ because they are fixed values that are set by the dynamic loader ++ and therefore any paths using just $LIB or $PLATFORM need not be ++ checked for trust, the authors of the binaries themselves are ++ trusted to have designed this correctly. Only $ORIGIN is tested in ++ this way because it may be manipulated in some ways with hard ++ links. */ + if (__glibc_unlikely (check_for_trusted) +- && !is_trusted_path_normalize (last_elem, wp - last_elem)) +- wp = last_elem; ++ && !is_trusted_path_normalize (result, wp - result)) ++ { ++ *result = '\0'; ++ return result; ++ } + + *wp = '\0'; + +@@ -310,13 +365,13 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result) + } + + +-/* Return copy of argument with all recognized dynamic string tokens +- ($ORIGIN and $PLATFORM for now) replaced. On some platforms it +- might not be possible to determine the path from which the object +- belonging to the map is loaded. In this case the path element +- containing $ORIGIN is left out. */ ++/* Return a malloc allocated copy of INPUT with all recognized DSTs ++ replaced. On some platforms it might not be possible to determine the ++ path from which the object belonging to the map is loaded. In this ++ case the path containing the DST is left out. On error NULL ++ is returned. */ + static char * +-expand_dynamic_string_token (struct link_map *l, const char *s) ++expand_dynamic_string_token (struct link_map *l, const char *input) + { + /* We make two runs over the string. First we determine how large the + resulting string is and then we copy it over. Since this is no +@@ -326,22 +381,22 @@ expand_dynamic_string_token (struct link_map *l, const char *s) + size_t total; + char *result; + +- /* Determine the number of DST elements. */ +- cnt = DL_DST_COUNT (s); ++ /* Determine the number of DSTs. */ ++ cnt = _dl_dst_count (input); + + /* If we do not have to replace anything simply copy the string. */ + if (__glibc_likely (cnt == 0)) +- return __strdup (s); ++ return __strdup (input); + + /* Determine the length of the substituted string. */ +- total = DL_DST_REQUIRED (l, s, strlen (s), cnt); ++ total = DL_DST_REQUIRED (l, input, strlen (input), cnt); + + /* Allocate the necessary memory. */ + result = (char *) malloc (total + 1); + if (result == NULL) + return NULL; + +- return _dl_dst_substitute (l, s, result); ++ return _dl_dst_substitute (l, input, result); + } + + +@@ -1469,6 +1524,7 @@ open_verify (const char *name, int fd, + ElfW(Ehdr) *ehdr; + ElfW(Phdr) *phdr, *ph; + ElfW(Word) *abi_note; ++ ElfW(Word) *abi_note_malloced = NULL; + unsigned int osversion; + size_t maplength; + +@@ -1640,10 +1696,25 @@ open_verify (const char *name, int fd, + abi_note = (void *) (fbp->buf + ph->p_offset); + else + { +- abi_note = alloca (size); ++ /* Note: __libc_use_alloca is not usable here, because ++ thread info may not have been set up yet. */ ++ if (size < __MAX_ALLOCA_CUTOFF) ++ abi_note = alloca (size); ++ else ++ { ++ /* There could be multiple PT_NOTEs. */ ++ abi_note_malloced = realloc (abi_note_malloced, size); ++ if (abi_note_malloced == NULL) ++ goto read_error; ++ ++ abi_note = abi_note_malloced; ++ } + __lseek (fd, ph->p_offset, SEEK_SET); + if (__libc_read (fd, (void *) abi_note, size) != size) +- goto read_error; ++ { ++ free (abi_note_malloced); ++ goto read_error; ++ } + } + + while (memcmp (abi_note, &expected_note, sizeof (expected_note))) +@@ -1678,6 +1749,7 @@ open_verify (const char *name, int fd, + + break; + } ++ free (abi_note_malloced); + } + + return fd; +diff --git a/elf/tst-big-note-lib.S b/elf/tst-big-note-lib.S +new file mode 100644 +index 0000000000..6b514a03cc +--- /dev/null ++++ b/elf/tst-big-note-lib.S +@@ -0,0 +1,26 @@ ++/* Bug 20419: test for stack overflow in elf/dl-load.c open_verify() ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This creates a .so with 8MiB PT_NOTE segment. ++ On a typical Linux system with 8MiB "ulimit -s", that was enough ++ to trigger stack overflow in open_verify. */ ++ ++.pushsection .note.big,"a" ++.balign 4 ++.fill 8*1024*1024, 1, 0 ++.popsection +diff --git a/elf/tst-big-note.c b/elf/tst-big-note.c +new file mode 100644 +index 0000000000..fcd2b0ed82 +--- /dev/null ++++ b/elf/tst-big-note.c +@@ -0,0 +1,26 @@ ++/* Bug 20419: test for stack overflow in elf/dl-load.c open_verify() ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This file must be run from within a directory called "elf". */ ++ ++int main (int argc, char *argv[]) ++{ ++ /* Nothing to do here: merely linking against tst-big-note-lib.so triggers ++ the bug. */ ++ return 0; ++} +diff --git a/include/rpc/clnt.h b/include/rpc/clnt.h +index a397023a93..80be0a9cec 100644 +--- a/include/rpc/clnt.h ++++ b/include/rpc/clnt.h +@@ -28,6 +28,7 @@ libc_hidden_proto (clntudp_create) + libc_hidden_proto (get_myaddress) + libc_hidden_proto (clntunix_create) + libc_hidden_proto (__libc_clntudp_bufcreate) ++libc_hidden_proto (rpc_createerr) + + # endif /* !_ISOMAC */ + #endif +diff --git a/include/rpc/svc.h b/include/rpc/svc.h +index 465bf4427d..40ba2546a9 100644 +--- a/include/rpc/svc.h ++++ b/include/rpc/svc.h +@@ -3,6 +3,10 @@ + + # ifndef _ISOMAC + ++libc_hidden_proto (svc_pollfd) ++libc_hidden_proto (svc_max_pollfd) ++libc_hidden_proto (svc_fdset) ++ + libc_hidden_proto (xprt_register) + libc_hidden_proto (xprt_unregister) + libc_hidden_proto (svc_register) +diff --git a/include/unistd.h b/include/unistd.h +index 0f91b8babc..a171b00326 100644 +--- a/include/unistd.h ++++ b/include/unistd.h +@@ -77,6 +77,8 @@ extern char *__getcwd (char *__buf, size_t __size) attribute_hidden; + extern int __rmdir (const char *__path) attribute_hidden; + extern int __execvpe (const char *file, char *const argv[], + char *const envp[]) attribute_hidden; ++extern int __execvpex (const char *file, char *const argv[], ++ char *const envp[]) attribute_hidden; + + /* Get the canonical absolute name of the named directory, and put it in SIZE + bytes of BUF. Returns NULL if the directory couldn't be determined or +diff --git a/io/fcntl.h b/io/fcntl.h +index 3d239e8f09..69a4394191 100644 +--- a/io/fcntl.h ++++ b/io/fcntl.h +@@ -139,7 +139,7 @@ typedef __pid_t pid_t; + # define SEEK_END 2 /* Seek from end of file. */ + #endif /* XPG */ + +-/* The constants AT_REMOVEDIR and AT_EACCESS have the same value. AT_EASSESS ++/* The constants AT_REMOVEDIR and AT_EACCESS have the same value. AT_EACCESS + is meaningful only to faccessat, while AT_REMOVEDIR is meaningful only to + unlinkat. The two functions do completely different things and therefore, + the flags can be allowed to overlap. For example, passing AT_REMOVEDIR to +diff --git a/libio/memstream.c b/libio/memstream.c +index d86befcc02..c5c7c2f6db 100644 +--- a/libio/memstream.c ++++ b/libio/memstream.c +@@ -90,8 +90,8 @@ __open_memstream (char **bufloc, _IO_size_t *sizeloc) + _IO_JUMPS_FILE_plus (&new_f->fp._sf._sbf) = &_IO_mem_jumps; + _IO_str_init_static_internal (&new_f->fp._sf, buf, _IO_BUFSIZ, buf); + new_f->fp._sf._sbf._f._flags &= ~_IO_USER_BUF; +- new_f->fp._sf._s._allocate_buffer = (_IO_alloc_type) malloc; +- new_f->fp._sf._s._free_buffer = (_IO_free_type) free; ++ new_f->fp._sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc; ++ new_f->fp._sf._s._free_buffer_unused = (_IO_free_type) free; + + new_f->fp.bufloc = bufloc; + new_f->fp.sizeloc = sizeloc; +diff --git a/libio/strfile.h b/libio/strfile.h +index 68dfcbfe83..52a085e580 100644 +--- a/libio/strfile.h ++++ b/libio/strfile.h +@@ -31,8 +31,11 @@ typedef void (*_IO_free_type) (void*); + + struct _IO_str_fields + { +- _IO_alloc_type _allocate_buffer; +- _IO_free_type _free_buffer; ++ /* These members are preserved for ABI compatibility. The glibc ++ implementation always calls malloc/free for user buffers if ++ _IO_USER_BUF or _IO_FLAGS2_USER_WBUF are not set. */ ++ _IO_alloc_type _allocate_buffer_unused; ++ _IO_free_type _free_buffer_unused; + }; + + /* This is needed for the Irix6 N32 ABI, which has a 64 bit off_t type, +@@ -52,10 +55,6 @@ typedef struct _IO_strfile_ + struct _IO_str_fields _s; + } _IO_strfile; + +-/* dynamic: set when the array object is allocated (or reallocated) as +- necessary to hold a character sequence that can change in length. */ +-#define _IO_STR_DYNAMIC(FP) ((FP)->_s._allocate_buffer != (_IO_alloc_type)0) +- + /* frozen: set when the program has requested that the array object not + be altered, reallocated, or freed. */ + #define _IO_STR_FROZEN(FP) ((FP)->_f._IO_file_flags & _IO_USER_BUF) +diff --git a/libio/strops.c b/libio/strops.c +index ac995c830e..5fb38976e3 100644 +--- a/libio/strops.c ++++ b/libio/strops.c +@@ -61,7 +61,7 @@ _IO_str_init_static_internal (_IO_strfile *sf, char *ptr, _IO_size_t size, + fp->_IO_read_end = end; + } + /* A null _allocate_buffer function flags the strfile as being static. */ +- sf->_s._allocate_buffer = (_IO_alloc_type) 0; ++ sf->_s._allocate_buffer_unused = (_IO_alloc_type) 0; + } + + void +@@ -103,8 +103,7 @@ _IO_str_overflow (_IO_FILE *fp, int c) + _IO_size_t new_size = 2 * old_blen + 100; + if (new_size < old_blen) + return EOF; +- new_buf +- = (char *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (new_size); ++ new_buf = malloc (new_size); + if (new_buf == NULL) + { + /* __ferror(fp) = 1; */ +@@ -113,7 +112,7 @@ _IO_str_overflow (_IO_FILE *fp, int c) + if (old_buf) + { + memcpy (new_buf, old_buf, old_blen); +- (*((_IO_strfile *) fp)->_s._free_buffer) (old_buf); ++ free (old_buf); + /* Make sure _IO_setb won't try to delete _IO_buf_base. */ + fp->_IO_buf_base = NULL; + } +@@ -182,15 +181,14 @@ enlarge_userbuf (_IO_FILE *fp, _IO_off64_t offset, int reading) + + _IO_size_t newsize = offset + 100; + char *oldbuf = fp->_IO_buf_base; +- char *newbuf +- = (char *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (newsize); ++ char *newbuf = malloc (newsize); + if (newbuf == NULL) + return 1; + + if (oldbuf != NULL) + { + memcpy (newbuf, oldbuf, _IO_blen (fp)); +- (*((_IO_strfile *) fp)->_s._free_buffer) (oldbuf); ++ free (oldbuf); + /* Make sure _IO_setb won't try to delete + _IO_buf_base. */ + fp->_IO_buf_base = NULL; +@@ -346,7 +344,7 @@ void + _IO_str_finish (_IO_FILE *fp, int dummy) + { + if (fp->_IO_buf_base && !(fp->_flags & _IO_USER_BUF)) +- (((_IO_strfile *) fp)->_s._free_buffer) (fp->_IO_buf_base); ++ free (fp->_IO_buf_base); + fp->_IO_buf_base = NULL; + + _IO_default_finish (fp, 0); +diff --git a/libio/vasprintf.c b/libio/vasprintf.c +index 390a63d124..0bb217e46e 100644 +--- a/libio/vasprintf.c ++++ b/libio/vasprintf.c +@@ -54,8 +54,8 @@ _IO_vasprintf (char **result_ptr, const char *format, _IO_va_list args) + _IO_JUMPS (&sf._sbf) = &_IO_str_jumps; + _IO_str_init_static_internal (&sf, string, init_string_size, string); + sf._sbf._f._flags &= ~_IO_USER_BUF; +- sf._s._allocate_buffer = (_IO_alloc_type) malloc; +- sf._s._free_buffer = (_IO_free_type) free; ++ sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc; ++ sf._s._free_buffer_unused = (_IO_free_type) free; + ret = _IO_vfprintf (&sf._sbf._f, format, args); + if (ret < 0) + { +diff --git a/libio/wmemstream.c b/libio/wmemstream.c +index c962071d26..f4c6e75246 100644 +--- a/libio/wmemstream.c ++++ b/libio/wmemstream.c +@@ -92,8 +92,8 @@ open_wmemstream (wchar_t **bufloc, _IO_size_t *sizeloc) + _IO_wstr_init_static (&new_f->fp._sf._sbf._f, buf, + _IO_BUFSIZ / sizeof (wchar_t), buf); + new_f->fp._sf._sbf._f._flags2 &= ~_IO_FLAGS2_USER_WBUF; +- new_f->fp._sf._s._allocate_buffer = (_IO_alloc_type) malloc; +- new_f->fp._sf._s._free_buffer = (_IO_free_type) free; ++ new_f->fp._sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc; ++ new_f->fp._sf._s._free_buffer_unused = (_IO_free_type) free; + + new_f->fp.bufloc = bufloc; + new_f->fp.sizeloc = sizeloc; +diff --git a/libio/wstrops.c b/libio/wstrops.c +index a3374a7b15..0839a70bfb 100644 +--- a/libio/wstrops.c ++++ b/libio/wstrops.c +@@ -63,7 +63,7 @@ _IO_wstr_init_static (_IO_FILE *fp, wchar_t *ptr, _IO_size_t size, + fp->_wide_data->_IO_read_end = end; + } + /* A null _allocate_buffer function flags the strfile as being static. */ +- (((_IO_strfile *) fp)->_s._allocate_buffer) = (_IO_alloc_type)0; ++ (((_IO_strfile *) fp)->_s._allocate_buffer_unused) = (_IO_alloc_type)0; + } + + _IO_wint_t +@@ -95,9 +95,7 @@ _IO_wstr_overflow (_IO_FILE *fp, _IO_wint_t c) + || __glibc_unlikely (new_size > SIZE_MAX / sizeof (wchar_t))) + return EOF; + +- new_buf +- = (wchar_t *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (new_size +- * sizeof (wchar_t)); ++ new_buf = malloc (new_size * sizeof (wchar_t)); + if (new_buf == NULL) + { + /* __ferror(fp) = 1; */ +@@ -106,7 +104,7 @@ _IO_wstr_overflow (_IO_FILE *fp, _IO_wint_t c) + if (old_buf) + { + __wmemcpy (new_buf, old_buf, old_wblen); +- (*((_IO_strfile *) fp)->_s._free_buffer) (old_buf); ++ free (old_buf); + /* Make sure _IO_setb won't try to delete _IO_buf_base. */ + fp->_wide_data->_IO_buf_base = NULL; + } +@@ -186,16 +184,14 @@ enlarge_userbuf (_IO_FILE *fp, _IO_off64_t offset, int reading) + return 1; + + wchar_t *oldbuf = wd->_IO_buf_base; +- wchar_t *newbuf +- = (wchar_t *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (newsize +- * sizeof (wchar_t)); ++ wchar_t *newbuf = malloc (newsize * sizeof (wchar_t)); + if (newbuf == NULL) + return 1; + + if (oldbuf != NULL) + { + __wmemcpy (newbuf, oldbuf, _IO_wblen (fp)); +- (*((_IO_strfile *) fp)->_s._free_buffer) (oldbuf); ++ free (oldbuf); + /* Make sure _IO_setb won't try to delete + _IO_buf_base. */ + wd->_IO_buf_base = NULL; +@@ -357,7 +353,7 @@ void + _IO_wstr_finish (_IO_FILE *fp, int dummy) + { + if (fp->_wide_data->_IO_buf_base && !(fp->_flags2 & _IO_FLAGS2_USER_WBUF)) +- (((_IO_strfile *) fp)->_s._free_buffer) (fp->_wide_data->_IO_buf_base); ++ free (fp->_wide_data->_IO_buf_base); + fp->_wide_data->_IO_buf_base = NULL; + + _IO_wdefault_finish (fp, 0); +diff --git a/localedata/locales/ca_ES b/localedata/locales/ca_ES +index 914c066dab..f0d744d537 100644 +--- a/localedata/locales/ca_ES ++++ b/localedata/locales/ca_ES +@@ -106,36 +106,67 @@ grouping 0;0 + END LC_NUMERIC + + LC_TIME +-abday "dg";"dl";"dt";"dc";"dj";"dv";"ds" +-day "diumenge";/ +- "dilluns";/ +- "dimarts";/ +- "dimecres";/ +- "dijous";/ +- "divendres";/ +- "dissabte" +-abmon "gen";"feb";/ +- "mar";"abr";/ +- "mai";"jun";/ +- "jul";"ago";/ +- "set";"oct";/ +- "nov";"des" +-mon "gener";/ +- "febrer";/ +- "mar";/ +- "abril";/ +- "maig";/ +- "juny";/ +- "juliol";/ +- "agost";/ +- "setembre";/ +- "octubre";/ +- "novembre";/ +- "desembre" +-d_t_fmt "%a %d %b %Y %T %Z" +-d_fmt "%d//%m//%y" +-t_fmt "%T" +-am_pm "";"" ++abday "dg.";"dl.";"dt.";"dc.";"dj.";"dv.";"ds." ++day "diumenge";/ ++ "dilluns";/ ++ "dimarts";/ ++ "dimecres";/ ++ "dijous";/ ++ "divendres";/ ++ "dissabte" ++ab_alt_mon "gen.";/ ++ "febr.";/ ++ "mar";/ ++ "abr.";/ ++ "maig";/ ++ "juny";/ ++ "jul.";/ ++ "ag.";/ ++ "set.";/ ++ "oct.";/ ++ "nov.";/ ++ "des." ++abmon "de gen.";/ ++ "de febr.";/ ++ "de mar";/ ++ "dabr.";/ ++ "de maig";/ ++ "de juny";/ ++ "de jul.";/ ++ "dag.";/ ++ "de set.";/ ++ "doct.";/ ++ "de nov.";/ ++ "de des." ++alt_mon "gener";/ ++ "febrer";/ ++ "mar";/ ++ "abril";/ ++ "maig";/ ++ "juny";/ ++ "juliol";/ ++ "agost";/ ++ "setembre";/ ++ "octubre";/ ++ "novembre";/ ++ "desembre" ++mon "de gener";/ ++ "de febrer";/ ++ "de mar";/ ++ "dabril";/ ++ "de maig";/ ++ "de juny";/ ++ "de juliol";/ ++ "dagost";/ ++ "de setembre";/ ++ "doctubre";/ ++ "de novembre";/ ++ "de desembre" ++d_t_fmt "%A, %-d %B de %Y, %T %Z" ++d_fmt "%-d//%-m//%y" ++t_fmt "%T" ++am_pm "a. m.";/ ++ "p. m." + t_fmt_ampm "" + week 7;19971130;4 + first_weekday 2 +@@ -146,9 +177,9 @@ copy "i18n" + END LC_PAPER + + LC_TELEPHONE +-tel_int_fmt "+%c %a %l" +-int_prefix "34" +-int_select "00" ++tel_int_fmt "+%c %a %l" ++int_prefix "34" ++int_select "00" + END LC_TELEPHONE + + LC_MEASUREMENT +@@ -156,19 +187,19 @@ copy "i18n" + END LC_MEASUREMENT + + LC_NAME +-name_fmt "%d%t%g%t%m%t%f" ++name_fmt "%d%t%g%t%m%t%f" + END LC_NAME + + LC_ADDRESS +-postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N" ++postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N" + country_name "Espanya" +-country_ab2 "ES" +-country_ab3 "ESP" +-country_num 724 +-country_car "E" ++country_ab2 "ES" ++country_ab3 "ESP" ++country_num 724 ++country_car "E" + % català + lang_name "catal" + lang_ab "ca" + lang_term "cat" +-lang_lib "cat" ++lang_lib "cat" + END LC_ADDRESS +diff --git a/localedata/locales/cs_CZ b/localedata/locales/cs_CZ +index f80d3e1b37..8f4c69e493 100644 +--- a/localedata/locales/cs_CZ ++++ b/localedata/locales/cs_CZ +@@ -272,7 +272,7 @@ day "Nedle";/ + "Ptek";/ + "Sobota" + +-mon "leden";/ ++alt_mon "leden";/ + "nor";/ + "bezen";/ + "duben";/ +@@ -334,6 +334,19 @@ abmon "led";/ + % "Nov";/ + % "Dec" + ++mon "ledna";/ ++ "nora";/ ++ "bezna";/ ++ "dubna";/ ++ "kvtna";/ ++ "ervna";/ ++ "ervence";/ ++ "srpna";/ ++ "z";/ ++ "jna";/ ++ "listopadu";/ ++ "prosince" ++ + week 7;19971130;4 + first_weekday 2 + +diff --git a/localedata/locales/el_CY b/localedata/locales/el_CY +index f27a74bb76..28055f335b 100644 +--- a/localedata/locales/el_CY ++++ b/localedata/locales/el_CY +@@ -72,12 +72,18 @@ day "";/ + "";/ + "";/ + "" +-abmon "";"";/ ++ab_alt_mon "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"" ++abmon "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + alt_mon "";/ + "";/ + "";/ +diff --git a/localedata/locales/el_GR b/localedata/locales/el_GR +index a82ef8c6d9..7362492fbd 100644 +--- a/localedata/locales/el_GR ++++ b/localedata/locales/el_GR +@@ -104,12 +104,18 @@ day "";/ + "";/ + "";/ + "" +-abmon "";"";/ ++ab_alt_mon "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"" ++abmon "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + alt_mon "";/ + "";/ + "";/ +diff --git a/localedata/locales/et_EE b/localedata/locales/et_EE +index 9cb55b568f..bab7493c98 100644 +--- a/localedata/locales/et_EE ++++ b/localedata/locales/et_EE +@@ -103,6 +103,8 @@ reorder-after + ;;;IGNORE % ü + ;;;IGNORE % Ü + ++reorder-end ++ + END LC_COLLATE + + LC_CTYPE +diff --git a/localedata/locales/gd_GB b/localedata/locales/gd_GB +index 676ee940c9..77d11e5977 100644 +--- a/localedata/locales/gd_GB ++++ b/localedata/locales/gd_GB +@@ -66,12 +66,12 @@ mon "Am Faoilleach";/ + "An Dmhair";/ + "An t-Samhain";/ + "An Dbhlachd" +-% Faoi, Gearr, Màrt, Gibl, Mhàrt, Ògmh, Iuch, Lùna, Sult, Dàmh, Samh, Dùbh ++% Faoi, Gearr, Màrt, Gibl, Cèit, Ògmh, Iuch, Lùna, Sult, Dàmh, Samh, Dùbh + abmon "Faoi";/ + "Gearr";/ + "Mrt";/ + "Gibl";/ +- "Mhrt";/ ++ "Cit";/ + "gmh";/ + "Iuch";/ + "Lna";/ +diff --git a/localedata/locales/lt_LT b/localedata/locales/lt_LT +index c935fcf75e..bec67726e9 100644 +--- a/localedata/locales/lt_LT ++++ b/localedata/locales/lt_LT +@@ -201,12 +201,12 @@ day "Sekmadienis";/ + "Ketvirtadienis";/ + "Penktadienis";/ + "etadienis" +-abmon "Sau";"Vas";/ +- "Kov";"Bal";/ +- "Geg";"Bir";/ +- "Lie";"Rgp";/ +- "Rgs";"Spa";/ +- "Lap";"Grd" ++abmon "saus.";"vas.";/ ++ "kov.";"bal.";/ ++ "geg.";"bir.";/ ++ "liep.";"rugp.";/ ++ "rugs.";"spal.";/ ++ "lapkr.";"gruod." + alt_mon "sausis";/ + "vasaris";/ + "kovas";/ +diff --git a/manual/charset.texi b/manual/charset.texi +index 1867ace485..f6a980f6cb 100644 +--- a/manual/charset.texi ++++ b/manual/charset.texi +@@ -643,8 +643,8 @@ and they also do not require it to be in the initial state. + @cindex stateful + The @code{mbrtowc} function (``multibyte restartable to wide + character'') converts the next multibyte character in the string pointed +-to by @var{s} into a wide character and stores it in the wide character +-string pointed to by @var{pwc}. The conversion is performed according ++to by @var{s} into a wide character and stores it in the location ++pointed to by @var{pwc}. The conversion is performed according + to the locale currently selected for the @code{LC_CTYPE} category. If + the conversion for the character set used in the locale requires a state, + the multibyte string is interpreted in the state represented by the +@@ -652,7 +652,7 @@ object pointed to by @var{ps}. If @var{ps} is a null pointer, a static, + internal state variable used only by the @code{mbrtowc} function is + used. + +-If the next multibyte character corresponds to the NUL wide character, ++If the next multibyte character corresponds to the null wide character, + the return value of the function is @math{0} and the state object is + afterwards in the initial state. If the next @var{n} or fewer bytes + form a correct multibyte character, the return value is the number of +@@ -665,71 +665,59 @@ by @var{pwc} if @var{pwc} is not null. + If the first @var{n} bytes of the multibyte string possibly form a valid + multibyte character but there are more than @var{n} bytes needed to + complete it, the return value of the function is @code{(size_t) -2} and +-no value is stored. Please note that this can happen even if @var{n} +-has a value greater than or equal to @code{MB_CUR_MAX} since the input +-might contain redundant shift sequences. ++no value is stored in @code{*@var{pwc}}. The conversion state is ++updated and all @var{n} input bytes are consumed and should not be ++submitted again. Please note that this can happen even if @var{n} has a ++value greater than or equal to @code{MB_CUR_MAX} since the input might ++contain redundant shift sequences. + + If the first @code{n} bytes of the multibyte string cannot possibly form + a valid multibyte character, no value is stored, the global variable + @code{errno} is set to the value @code{EILSEQ}, and the function returns + @code{(size_t) -1}. The conversion state is afterwards undefined. + ++As specified, the @code{mbrtowc} function could deal with multibyte ++sequences which contain embedded null bytes (which happens in Unicode ++encodings such as UTF-16), but @theglibc{} does not support such ++multibyte encodings. When encountering a null input byte, the function ++will either return zero, or return @code{(size_t) -1)} and report a ++@code{EILSEQ} error. The @code{iconv} function can be used for ++converting between arbitrary encodings. @xref{Generic Conversion ++Interface}. ++ + @pindex wchar.h + @code{mbrtowc} was introduced in @w{Amendment 1} to @w{ISO C90} and + is declared in @file{wchar.h}. + @end deftypefun + +-Use of @code{mbrtowc} is straightforward. A function that copies a +-multibyte string into a wide character string while at the same time +-converting all lowercase characters into uppercase could look like this +-(this is not the final version, just an example; it has no error +-checking, and sometimes leaks memory): ++A function that copies a multibyte string into a wide character string ++while at the same time converting all lowercase characters into ++uppercase could look like this: + + @smallexample +-wchar_t * +-mbstouwcs (const char *s) +-@{ +- size_t len = strlen (s); +- wchar_t *result = malloc ((len + 1) * sizeof (wchar_t)); +- wchar_t *wcp = result; +- wchar_t tmp[1]; +- mbstate_t state; +- size_t nbytes; +- +- memset (&state, '\0', sizeof (state)); +- while ((nbytes = mbrtowc (tmp, s, len, &state)) > 0) +- @{ +- if (nbytes >= (size_t) -2) +- /* Invalid input string. */ +- return NULL; +- *wcp++ = towupper (tmp[0]); +- len -= nbytes; +- s += nbytes; +- @} +- return result; +-@} ++@include mbstouwcs.c.texi + @end smallexample + +-The use of @code{mbrtowc} should be clear. A single wide character is +-stored in @code{@var{tmp}[0]}, and the number of consumed bytes is stored +-in the variable @var{nbytes}. If the conversion is successful, the +-uppercase variant of the wide character is stored in the @var{result} +-array and the pointer to the input string and the number of available +-bytes is adjusted. +- +-The only non-obvious thing about @code{mbrtowc} might be the way memory +-is allocated for the result. The above code uses the fact that there +-can never be more wide characters in the converted result than there are +-bytes in the multibyte input string. This method yields a pessimistic +-guess about the size of the result, and if many wide character strings +-have to be constructed this way or if the strings are long, the extra +-memory required to be allocated because the input string contains +-multibyte characters might be significant. The allocated memory block can +-be resized to the correct size before returning it, but a better solution +-might be to allocate just the right amount of space for the result right +-away. Unfortunately there is no function to compute the length of the wide +-character string directly from the multibyte string. There is, however, a +-function that does part of the work. ++In the inner loop, a single wide character is stored in @code{wc}, and ++the number of consumed bytes is stored in the variable @code{nbytes}. ++If the conversion is successful, the uppercase variant of the wide ++character is stored in the @code{result} array and the pointer to the ++input string and the number of available bytes is adjusted. If the ++@code{mbrtowc} function returns zero, the null input byte has not been ++converted, so it must be stored explicitly in the result. ++ ++The above code uses the fact that there can never be more wide ++characters in the converted result than there are bytes in the multibyte ++input string. This method yields a pessimistic guess about the size of ++the result, and if many wide character strings have to be constructed ++this way or if the strings are long, the extra memory required to be ++allocated because the input string contains multibyte characters might ++be significant. The allocated memory block can be resized to the ++correct size before returning it, but a better solution might be to ++allocate just the right amount of space for the result right away. ++Unfortunately there is no function to compute the length of the wide ++character string directly from the multibyte string. There is, however, ++a function that does part of the work. + + @deftypefun size_t mbrlen (const char *restrict @var{s}, size_t @var{n}, mbstate_t *@var{ps}) + @standards{ISO, wchar.h} +diff --git a/manual/creature.texi b/manual/creature.texi +index 96f8ee0a0c..fe7a7790a2 100644 +--- a/manual/creature.texi ++++ b/manual/creature.texi +@@ -8,7 +8,7 @@ is controlled by which @dfn{feature test macros} you define. + If you compile your programs using @samp{gcc -ansi}, you get only the + @w{ISO C} library features, unless you explicitly request additional + features by defining one or more of the feature macros. +-@xref{Invoking GCC,, GNU CC Command Options, gcc.info, The GNU CC Manual}, ++@xref{Invoking GCC,, GNU CC Command Options, gcc, The GNU CC Manual}, + for more information about GCC options.@refill + + You should define these macros by using @samp{#define} preprocessor +@@ -61,13 +61,27 @@ If you define this macro to a value greater than or equal to @code{199309L}, + then the functionality from the 1993 edition of the POSIX.1b standard + (IEEE Standard 1003.1b-1993) is made available. + ++If you define this macro to a value greater than or equal to ++@code{199506L}, then the functionality from the 1995 edition of the ++POSIX.1c standard (IEEE Standard 1003.1c-1995) is made available. ++ ++If you define this macro to a value greater than or equal to ++@code{200112L}, then the functionality from the 2001 edition of the ++POSIX standard (IEEE Standard 1003.1-2001) is made available. ++ ++If you define this macro to a value greater than or equal to ++@code{200809L}, then the functionality from the 2008 edition of the ++POSIX standard (IEEE Standard 1003.1-2008) is made available. ++ + Greater values for @code{_POSIX_C_SOURCE} will enable future extensions. + The POSIX standards process will define these values as necessary, and + @theglibc{} should support them some time after they become standardized. + The 1996 edition of POSIX.1 (ISO/IEC 9945-1: 1996) states that + if you define @code{_POSIX_C_SOURCE} to a value greater than + or equal to @code{199506L}, then the functionality from the 1996 +-edition is made available. ++edition is made available. In general, in @theglibc{}, bugfixes to ++the standards are included when specifying the base version; e.g., ++POSIX.1-2004 will always be included with a value of @code{200112L}. + @end defvr + + @defvr Macro _XOPEN_SOURCE +@@ -87,7 +101,10 @@ available which are necessary for the X/Open Unix brand. + + If the macro @code{_XOPEN_SOURCE} has the value @math{500} this includes + all functionality described so far plus some new definitions from the +-Single Unix Specification, @w{version 2}. ++Single Unix Specification, @w{version 2}. The value @math{600} ++(corresponding to the sixth revision) includes definitions from SUSv3, ++and using @math{700} (the seventh revision) includes definitions from ++SUSv4. + @end defvr + + @defvr Macro _LARGEFILE_SOURCE +@@ -150,10 +167,14 @@ This macro was introduced as part of the Large File Support extension + + @defvr Macro _ISOC99_SOURCE + @standards{GNU, (none)} +-Until the revised @w{ISO C} standard is widely adopted the new features +-are not automatically enabled. @Theglibc{} nevertheless has a complete +-implementation of the new standard and to enable the new features the +-macro @code{_ISOC99_SOURCE} should be defined. ++If this macro is defined, features from ISO C99 are included. Since ++these features are included by default, this macro is mostly relevant ++when the compiler uses an earlier language version. ++@end defvr ++ ++@defvr Macro _ISOC11_SOURCE ++@standards{C11, (none)} ++If this macro is defined, ISO C11 extensions to ISO C99 are included. + @end defvr + + @defvr Macro __STDC_WANT_LIB_EXT2__ +@@ -209,6 +230,19 @@ enables those features even when the other options would otherwise + cause them to be disabled. + @end defvr + ++@defvr Macro _ATFILE_SOURCE ++@standards{GNU, (none)} ++If this macro is defined, additional @code{*at} interfaces are ++included. ++@end defvr ++ ++@defvr Macro _FORTIFY_SOURCE ++@standards{GNU, (none)} ++If this macro is defined to @math{1}, security hardening is added to ++various library functions. If defined to @math{2}, even stricter ++checks are applied. ++@end defvr ++ + @defvr Macro _REENTRANT + @defvrx Macro _THREAD_SAFE + @standards{Obsolete, (none)} +diff --git a/manual/examples/mbstouwcs.c b/manual/examples/mbstouwcs.c +new file mode 100644 +index 0000000000..c94e1fa790 +--- /dev/null ++++ b/manual/examples/mbstouwcs.c +@@ -0,0 +1,53 @@ ++#include ++#include ++#include ++#include ++ ++/* Do not include the above headers in the example. ++*/ ++wchar_t * ++mbstouwcs (const char *s) ++{ ++ /* Include the null terminator in the conversion. */ ++ size_t len = strlen (s) + 1; ++ wchar_t *result = reallocarray (NULL, len, sizeof (wchar_t)); ++ if (result == NULL) ++ return NULL; ++ ++ wchar_t *wcp = result; ++ mbstate_t state; ++ memset (&state, '\0', sizeof (state)); ++ ++ while (true) ++ { ++ wchar_t wc; ++ size_t nbytes = mbrtowc (&wc, s, len, &state); ++ if (nbytes == 0) ++ { ++ /* Terminate the result string. */ ++ *wcp = L'\0'; ++ break; ++ } ++ else if (nbytes == (size_t) -2) ++ { ++ /* Truncated input string. */ ++ errno = EILSEQ; ++ free (result); ++ return NULL; ++ } ++ else if (nbytes == (size_t) -1) ++ { ++ /* Some other error (including EILSEQ). */ ++ free (result); ++ return NULL; ++ } ++ else ++ { ++ /* A character was converted. */ ++ *wcp++ = towupper (wc); ++ len -= nbytes; ++ s += nbytes; ++ } ++ } ++ return result; ++} +diff --git a/manual/filesys.texi b/manual/filesys.texi +index ca77996902..cc70a6b7ee 100644 +--- a/manual/filesys.texi ++++ b/manual/filesys.texi +@@ -147,19 +147,20 @@ necessarily enough space to contain the directory name. That is why + this function is deprecated. + @end deftypefn + ++@vindex PWD + @deftypefun {char *} get_current_dir_name (void) + @standards{GNU, unistd.h} + @safety{@prelim{}@mtsafe{@mtsenv{}}@asunsafe{@ascuheap{}}@acunsafe{@acsmem{} @acsfd{}}} + @c Besides getcwd, which this function calls as a fallback, it calls + @c getenv, with the potential thread-safety issues that brings about. +-@vindex PWD +-This @code{get_current_dir_name} function is basically equivalent to +-@w{@code{getcwd (NULL, 0)}}. The only difference is that the value of +-the @code{PWD} variable is returned if this value is correct. This is a +-subtle difference which is visible if the path described by the +-@code{PWD} value is using one or more symbol links in which case the +-value returned by @code{getcwd} can resolve the symbol links and +-therefore yield a different result. ++The @code{get_current_dir_name} function is basically equivalent to ++@w{@code{getcwd (NULL, 0)}}, except the value of the @env{PWD} ++environment variable is first examined, and if it does in fact ++correspond to the current directory, that value is returned. This is ++a subtle difference which is visible if the path described by the ++value in @env{PWD} is using one or more symbolic links, in which case ++the value returned by @code{getcwd} would resolve the symbolic links ++and therefore yield a different result. + + This function is a GNU extension. + @end deftypefun +diff --git a/manual/llio.texi b/manual/llio.texi +index 642e56e710..7d877992d9 100644 +--- a/manual/llio.texi ++++ b/manual/llio.texi +@@ -1271,6 +1271,9 @@ Per-IO synchronization as if the file was opened with @code{O_SYNC} flag. + @item RWF_NOWAIT + Use nonblocking mode for this operation; that is, this call to @code{preadv2} + will fail and set @code{errno} to @code{EAGAIN} if the operation would block. ++ ++@item RWF_APPEND ++Per-IO synchronization as if the file was opened with @code{O_APPEND} flag. + @end vtable + + When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the +diff --git a/manual/platform.texi b/manual/platform.texi +index b8721a0712..504addc956 100644 +--- a/manual/platform.texi ++++ b/manual/platform.texi +@@ -123,7 +123,7 @@ when it is not allowed, the priority is set to medium. + Cache management facilities specific to RISC-V systems that implement the Linux + ABI are declared in @file{sys/cachectl.h}. + +-@deftypefun {void} __riscv_flush_icache(void *@var{start}, void *@var{end}, unsigned long int @var{flags}) ++@deftypefun {void} __riscv_flush_icache (void *@var{start}, void *@var{end}, unsigned long int @var{flags}) + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + Enforce ordering between stores and instruction cache fetches. The range of + addresses over which ordering is enforced is specified by @var{start} and +diff --git a/manual/stdio.texi b/manual/stdio.texi +index 5d7b50c442..38be236991 100644 +--- a/manual/stdio.texi ++++ b/manual/stdio.texi +@@ -1808,7 +1808,7 @@ verifies that the correct number and types of arguments are supplied. + There is also a GNU C syntax to tell the compiler that a function you + write uses a @code{printf}-style format string. + @xref{Function Attributes, , Declaring Attributes of Functions, +-gcc.info, Using GNU CC}, for more information. ++gcc, Using GNU CC}, for more information. + + @node Table of Output Conversions + @subsection Table of Output Conversions +@@ -2730,7 +2730,7 @@ This tells the compiler that @code{eprintf} uses a format string like + the format string appears as the first argument; + and the arguments to satisfy the format begin with the second. + @xref{Function Attributes, , Declaring Attributes of Functions, +-gcc.info, Using GNU CC}, for more information. ++gcc, Using GNU CC}, for more information. + + @node Parsing a Template String + @subsection Parsing a Template String +@@ -3478,7 +3478,7 @@ verifies that the correct number and types of arguments are supplied. + There is also a GNU C syntax to tell the compiler that a function you + write uses a @code{scanf}-style format string. + @xref{Function Attributes, , Declaring Attributes of Functions, +-gcc.info, Using GNU CC}, for more information. ++gcc, Using GNU CC}, for more information. + + @node Table of Input Conversions + @subsection Table of Input Conversions +@@ -4033,7 +4033,7 @@ know that a function uses a @code{scanf}-style format string. Then it + can check the number and types of arguments in each call to the + function, and warn you when they do not match the format string. + For details, see @ref{Function Attributes, , Declaring Attributes of Functions, +-gcc.info, Using GNU CC}. ++gcc, Using GNU CC}. + + @node EOF and Errors + @section End-Of-File and Errors +diff --git a/manual/string.texi b/manual/string.texi +index ac02c6d85e..b07cfb4550 100644 +--- a/manual/string.texi ++++ b/manual/string.texi +@@ -1087,7 +1087,7 @@ are often easier and safer automatic techniques that cause buffer + overruns to reliably terminate a program, such as GCC's + @option{-fcheck-pointer-bounds} and @option{-fsanitize=address} + options. @xref{Debugging Options,, Options for Debugging Your Program +-or GCC, gcc.info, Using GCC}. Because truncation functions can mask ++or GCC, gcc, Using GCC}. Because truncation functions can mask + application bugs that would otherwise be caught by the automatic + techniques, these functions should be used only when the application's + underlying logic requires truncation. +diff --git a/math/math.h b/math/math.h +index 3c515f817f..0fcbd91366 100644 +--- a/math/math.h ++++ b/math/math.h +@@ -1223,7 +1223,7 @@ template<> struct __iseqsig_type + + template<> struct __iseqsig_type + { +- static int __call (double __x, double __y) throw () ++ static int __call (long double __x, long double __y) throw () + { + # ifndef __NO_LONG_DOUBLE_MATH + return __iseqsigl (__x, __y); +diff --git a/misc/tst-preadvwritev2-common.c b/misc/tst-preadvwritev2-common.c +index 89fd0a3ff5..f889a21544 100644 +--- a/misc/tst-preadvwritev2-common.c ++++ b/misc/tst-preadvwritev2-common.c +@@ -34,7 +34,11 @@ do_test_with_invalid_flags (void) + #ifndef RWF_NOWAIT + # define RWF_NOWAIT 0 + #endif +-#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT) ++#ifndef RWF_APPEND ++# define RWF_APPEND 0 ++#endif ++#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT \ ++ | RWF_APPEND) + /* Set the next bit from the mask of all supported flags. */ + int invalid_flag = RWF_SUPPORTED != 0 ? __builtin_clz (RWF_SUPPORTED) : 2; + invalid_flag = 0x1 << ((sizeof (int) * CHAR_BIT) - invalid_flag); +diff --git a/nscd/gai.c b/nscd/gai.c +index d081747797..576fd0045b 100644 +--- a/nscd/gai.c ++++ b/nscd/gai.c +@@ -45,3 +45,6 @@ + #ifdef HAVE_LIBIDN + # include + #endif ++ ++/* Some variables normally defined in libc. */ ++service_user *__nss_hosts_database attribute_hidden; +diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c +index b832c9315f..2f187b208c 100644 +--- a/nscd/netgroupcache.c ++++ b/nscd/netgroupcache.c +@@ -480,7 +480,7 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req, + { + const char *group = key; + key = (char *) rawmemchr (key, '\0') + 1; +- size_t group_len = key - group - 1; ++ size_t group_len = key - group; + const char *host = *key++ ? key : NULL; + if (host != NULL) + key = (char *) rawmemchr (key, '\0') + 1; +diff --git a/nss/nsswitch.c b/nss/nsswitch.c +index d5e655974f..b0f0c11a3e 100644 +--- a/nss/nsswitch.c ++++ b/nss/nsswitch.c +@@ -62,7 +62,7 @@ static service_library *nss_new_service (name_database *database, + + /* Declare external database variables. */ + #define DEFINE_DATABASE(name) \ +- extern service_user *__nss_##name##_database attribute_hidden; \ ++ service_user *__nss_##name##_database attribute_hidden; \ + weak_extern (__nss_##name##_database) + #include "databases.def" + #undef DEFINE_DATABASE +diff --git a/nss/nsswitch.h b/nss/nsswitch.h +index eccb535ef5..63573b9ebc 100644 +--- a/nss/nsswitch.h ++++ b/nss/nsswitch.h +@@ -226,10 +226,10 @@ libc_hidden_proto (__nss_hostname_digits_dots) + #define MAX_NR_ADDRS 48 + + /* Prototypes for __nss_*_lookup2 functions. */ +-#define DEFINE_DATABASE(arg) \ +- service_user *__nss_##arg##_database attribute_hidden; \ +- int __nss_##arg##_lookup2 (service_user **, const char *, \ +- const char *, void **); \ ++#define DEFINE_DATABASE(arg) \ ++ extern service_user *__nss_##arg##_database attribute_hidden; \ ++ int __nss_##arg##_lookup2 (service_user **, const char *, \ ++ const char *, void **); \ + libc_hidden_proto (__nss_##arg##_lookup2) + #include "databases.def" + #undef DEFINE_DATABASE +diff --git a/po/pt_BR.po b/po/pt_BR.po +index b7c1650957..d49d6ec279 100644 +--- a/po/pt_BR.po ++++ b/po/pt_BR.po +@@ -1,4283 +1,7213 @@ +-# Brazilian portuguese messages for glibc. +-# Copyright © 1998, 1999 Free Software Foundation, Inc. ++# Brazilian Portuguese translation for glibc. ++# Copyright © 2018 Free Software Foundation, Inc. ++# This file is distributed under the same license as the glibc package. + # Fabio Dorival Victorelli , 1998. +-# Márcio Macedo , 1998. ++# Márcio Macedo , 1998. + # Arnaldo Carvalho de Mello , 1998. + # Sandro Nunes Henrique , 1998. + # Rodrigo Stulzer Lopes , 1999. +-# ++# Rafael Fontenelle , 2018. + msgid "" + msgstr "" +-"Project-Id-Version: libc 2.1\n" +-"POT-Creation-Date: 1998-11-28 09:29-0800\n" +-"PO-Revision-Date: 1999-06-29 18:07-0300\n" +-"Last-Translator: Rodrigo Parra Novo \n" +-"Language-Team: Brazilian Portuguese \n" +-"X-Bugs: Report translation errors to the Language-Team address.\n" ++"Project-Id-Version: libc 2.26.9000\n" ++"POT-Creation-Date: 2018-01-10 15:00+0000\n" ++"PO-Revision-Date: 2018-03-11 11:16-0300\n" ++"Last-Translator: Rafael Fontenelle \n" ++"Language-Team: Brazilian Portuguese \n" ++"Language: pt_BR\n" + "MIME-Version: 1.0\n" +-"Content-Type: text/plain; charset=ISO-8859-1\n" +-"Content-Transfer-Encoding: 8-bit\n" +- +-#: nis/nis_print.c:273 +-msgid "\t\tAccess Rights : " +-msgstr "\t\tDireitos de Acesso: " +- +-#: nis/nis_print.c:271 +-msgid "\t\tAttributes : " +-msgstr "\t\tAtributos : " +- +-#: sunrpc/rpc_main.c:1416 +-#, c-format +-msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n" +-msgstr "%s [-abkCLNTM][-Dname[=valor]] [-i tamanho] [-I [-K segundos]] [-Y rota] arquivo_entrada\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"X-Bugs: Report translation errors to the Language-Team address.\n" ++"Plural-Forms: nplurals=2; plural=(n > 1);\n" ++"X-Generator: Virtaal 1.0.0-beta1\n" + +-#: sunrpc/rpc_main.c:1418 ++#: argp/argp-help.c:227 + #, c-format +-msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n" +-msgstr "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o arquivo-saída] [arquivo-entrada]\n" ++msgid "%.*s: ARGP_HELP_FMT parameter requires a value" ++msgstr "%.*s: ARGP_HELP_FMT parâmetro requer um valor" + +-#: sunrpc/rpc_main.c:1421 ++#: argp/argp-help.c:237 + #, c-format +-msgid "\t%s [-n netid]* [-o outfile] [infile]\n" +-msgstr "\t%s [-n id-rede]* [-o arquivo-saída] [arquivo-entrada]\n" ++msgid "%.*s: Unknown ARGP_HELP_FMT parameter" ++msgstr "%.*s: Parâmetro ARGP_HELP_FMT desconhecido" + +-#: sunrpc/rpc_main.c:1420 ++#: argp/argp-help.c:250 + #, c-format +-msgid "\t%s [-s nettype]* [-o outfile] [infile]\n" +-msgstr "\t%s [-s tipo-rede]* [-o arquivo-saída] [arquivo-entrada]\n" ++msgid "Garbage in ARGP_HELP_FMT: %s" ++msgstr "Lixo em ARGP_HELP_FMT: %s" + +-#: nis/nis_print.c:235 +-msgid "\tAccess rights: " +-msgstr "\tDireitos acesso: " ++#: argp/argp-help.c:1214 ++msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options." ++msgstr "Parâmetros obrigatórios ou opcionais para opções longas são também obrigatórios ou opcionais para qualquer opção curta correspondente." + +-#: nis/nis_print.c:293 +-#, c-format +-msgid "\tEntry data of type %s\n" +-msgstr "\tEntrada de dados de tipo %s\n" ++#: argp/argp-help.c:1600 ++msgid "Usage:" ++msgstr "Uso:" + +-#: nis/nis_print.c:171 +-#, c-format +-msgid "\tName : %s\n" +-msgstr "\tNome : %s\n" ++#: argp/argp-help.c:1604 ++msgid " or: " ++msgstr " ou: " + +-#: nis/nis_print.c:172 +-msgid "\tPublic Key : " +-msgstr "\tChave pública: " ++#: argp/argp-help.c:1616 ++msgid " [OPTION...]" ++msgstr " [OPÇÃO...]" + +-#: nis/nis_print.c:234 ++#: argp/argp-help.c:1643 + #, c-format +-msgid "\tType : %s\n" +-msgstr "\tTipo : %s\n" ++msgid "Try `%s --help' or `%s --usage' for more information.\n" ++msgstr "Tente “%s --help” ou “%s --usage” para mais informações.\n" + +-#: nis/nis_print.c:201 ++#: argp/argp-help.c:1671 + #, c-format +-msgid "\tUniversal addresses (%u)\n" +-msgstr "\tEndereço universal (%u)\n" ++msgid "Report bugs to %s.\n" ++msgstr "Relate erros para %s.\n" + +-#: nis/nis_print.c:269 +-#, c-format +-msgid "\t[%d]\tName : %s\n" +-msgstr "\t[%d]\tNome : %s\n" ++#: argp/argp-parse.c:101 ++msgid "Give this help list" ++msgstr "Retorna este arquivo de ajuda" + +-#: nis/nis_print.c:296 +-#, c-format +-msgid "\t[%u] - [%u bytes] " +-msgstr "\t[%u] - [%u bytes] " ++#: argp/argp-parse.c:102 ++msgid "Give a short usage message" ++msgstr "Retorna uma mensagem de uso curta" + +-#: nscd/nscd_stat.c:153 +-msgid "" +-"\n" +-"%s cache:\n" +-"\n" +-"%15s cache is enabled\n" +-"%15Zd suggested size\n" +-"%15ld seconds time to live for positive entries\n" +-"%15ld seconds time to live for negative entries\n" +-"%15ld cache hits on positive entries\n" +-"%15ld cache hits on negative entries\n" +-"%15ld cache misses on positive entries\n" +-"%15ld cache misses on negative entries\n" +-"%15ld%% cache hit rate\n" +-"%15s check /etc/%s for changes\n" +-msgstr "" +-"\n" +-"cache %s:\n" +-"\n" +-"%15s cache está habilitado\n" +-"%15Zd tamanho sugerido%15ld segundos de vida para entradas positivas\n" +-"%15ld segundos de vida para entradas negativas\n" +-"%15ld hits do cache para entradas positivas\n" +-"%15ld hits do cache para entradas negativas\n" +-"%15ld%% quantidade de hits no cache\n" +-"%15s verifique o arquivo /etc/%s para mudanças\n" ++#: argp/argp-parse.c:103 catgets/gencat.c:109 catgets/gencat.c:113 ++#: iconv/iconv_prog.c:60 iconv/iconv_prog.c:61 nscd/nscd.c:105 ++#: nss/makedb.c:120 ++msgid "NAME" ++msgstr "NOME" + +-#: nis/nis_print.c:251 +-msgid "\nGroup Members :\n" +-msgstr "\nMembros do Grupo : \n" ++#: argp/argp-parse.c:104 ++msgid "Set the program name" ++msgstr "Configura o nome do programa" + +-#: nis/nis_print.c:320 +-msgid "\nTime to Live : " +-msgstr "\nTempo de Vida : " ++#: argp/argp-parse.c:105 ++msgid "SECS" ++msgstr "SEG" + +-#: sunrpc/rpcinfo.c:679 +-msgid " rpcinfo -b prognum versnum\n" +-msgstr " rpcinfo -b númprog númvers\n" ++#: argp/argp-parse.c:106 ++msgid "Hang for SECS seconds (default 3600)" ++msgstr "Retém por SEG segundos (o padrão é 3600)" + +-#: sunrpc/rpcinfo.c:680 +-msgid " rpcinfo -d prognum versnum\n" +-msgstr " rpcinfo -b númprog númvers\n" ++#: argp/argp-parse.c:167 ++msgid "Print program version" ++msgstr "Mostra versão do programa" + +-#: sunrpc/rpcinfo.c:678 +-msgid " rpcinfo -p [ host ]\n" +-msgstr " rpcinfo -p [ host ]\n" ++#: argp/argp-parse.c:183 ++msgid "(PROGRAM ERROR) No version known!?" ++msgstr "(ERRO DE PROGRAMA) Versão desconhecida!?" + +-#: sunrpc/rpcinfo.c:676 +-msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n" +-msgstr " rpcinfo [ -n númporta ] -t host númprog [ númvers ]\n" ++#: argp/argp-parse.c:623 ++#, c-format ++msgid "%s: Too many arguments\n" ++msgstr "%s: Argumentos demais\n" + +-#: nscd/nscd_stat.c:145 nscd/nscd_stat.c:147 +-msgid " no" +-msgstr " não" ++#: argp/argp-parse.c:766 ++msgid "(PROGRAM ERROR) Option should have been recognized!?" ++msgstr "(ERRO DE PROGRAMA) Opção deveria ter sido reconhecida!?" + +-#: nscd/nscd_stat.c:145 nscd/nscd_stat.c:147 +-msgid " yes" +-msgstr " sim" ++#: assert/assert-perr.c:35 ++#, c-format ++msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n" ++msgstr "%s%s%s:%u: %s%sErro inesperado: %s.\n" + +-#: nis/nis_print.c:344 ++#: assert/assert.c:101 + #, c-format +-msgid " Data Length = %u\n" +-msgstr " Tamanho dados = %u\n" ++msgid "" ++"%s%s%s:%u: %s%sAssertion `%s' failed.\n" ++"%n" ++msgstr "" ++"%s%s%s:%u: %s%sAssertiva “%s” falhou.\n" ++"%n" + +-#: nis/nis_print_group_entry.c:121 +-msgid " Explicit members:\n" +-msgstr " Membros explícitos:\n" ++#: catgets/gencat.c:110 ++msgid "Create C header file NAME containing symbol definitions" ++msgstr "Cria arquivo NOME com cabeçalho C contendo definições de símbolos" + +-#: nis/nis_print_group_entry.c:145 nis/nis_print_group_entry.c:161 +-msgid " Explicit nonmembers:\n" +-msgstr " Não-membros explícitos:\n" ++#: catgets/gencat.c:112 ++msgid "Do not use existing catalog, force new output file" ++msgstr "Não usa catálogo existente, força um novo arquivo de saída" + +-#: nis/nis_print_group_entry.c:129 +-msgid " Implicit members:\n" +-msgstr " Membros implícitos:\n" ++#: catgets/gencat.c:113 nss/makedb.c:120 ++msgid "Write output to file NAME" ++msgstr "Escreve a saída para o arquivo NOME" + +-#: nis/nis_print_group_entry.c:153 +-msgid " Implicit nonmembers:\n" +-msgstr " Não-membros implícitos:\n" ++#: catgets/gencat.c:118 ++msgid "" ++"Generate message catalog.\vIf INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n" ++"is -, output is written to standard output.\n" ++msgstr "" ++"Gera catálogo de mensagens.\\vSe ARQUIVO-DE-ENTRADA for -, a entrada é lida da entrada padrão.\n" ++"Se ARQUIVO-DE-SAÍDA for -, a saída é escrita para a saída padrão.\n" + +-#: nis/nis_print_group_entry.c:126 +-msgid " No explicit members\n" +-msgstr " Membros não explícitos\n" ++#: catgets/gencat.c:123 ++msgid "" ++"-o OUTPUT-FILE [INPUT-FILE]...\n" ++"[OUTPUT-FILE [INPUT-FILE]...]" ++msgstr "" ++"-o ARQUIVO-SAÍDA [ARQUIVO-ENTRADA]...\n" ++"[ARQUIVO-SAÍDA [ARQUIVO-ENTRADA...]" + +-#: nis/nis_print_group_entry.c:150 +-msgid " No explicit nonmembers\n" +-msgstr "Não-membros não explícitos\n" ++#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308 ++#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405 ++#: iconv/iconvconfig.c:379 locale/programs/locale.c:275 ++#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89 ++#: malloc/memusagestat.c:563 nss/getent.c:913 nss/makedb.c:369 ++#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61 ++#, c-format ++msgid "" ++"For bug reporting instructions, please see:\n" ++"%s.\n" ++msgstr "" ++"Para instruções sobre como relatar erros, por favor veja:\n" ++"%s.\n" + +-#: nis/nis_print_group_entry.c:134 +-msgid " No implicit members\n" +-msgstr " Membros não implícitos\n" ++#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64 ++#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75 ++#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396 ++#: locale/programs/locale.c:292 locale/programs/localedef.c:453 ++#: login/programs/pt_chown.c:63 malloc/memusage.sh:71 ++#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:86 nss/makedb.c:385 ++#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68 ++#, c-format ++msgid "" ++"Copyright (C) %s Free Software Foundation, Inc.\n" ++"This is free software; see the source for copying conditions. There is NO\n" ++"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" ++msgstr "" ++"Copyright (C) %s Free Software Foundation, Inc.\n" ++"Este é um software livre; leia os fontes para condições de cópia. NÃO HÁ\n" ++"QUALQUER GARANTIA; nem para COMERCIALIZAÇÃO ou ADEQUAÇÃO A QUALQUER\n" ++"PROPÓSITO EME PARTICULAR.\n" + +-#: nis/nis_print_group_entry.c:158 +-msgid " No implicit nonmembers\n" +-msgstr "Não-membros não implícitos\n" ++#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68 ++#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427 ++#: iconv/iconvconfig.c:401 locale/programs/locale.c:297 ++#: locale/programs/localedef.c:458 malloc/memusage.sh:75 ++#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:91 nss/makedb.c:390 ++#: posix/getconf.c:490 ++#, c-format ++msgid "Written by %s.\n" ++msgstr "Escrito por %s.\n" + +-#: nis/nis_print_group_entry.c:142 +-msgid " No recursive members\n" +-msgstr "Membros não recursivos\n" ++#: catgets/gencat.c:281 ++msgid "*standard input*" ++msgstr "*entrada padrão*" + +-#: nis/nis_print_group_entry.c:166 +-msgid " No recursive nonmembers\n" +-msgstr "Não-membros não recursivos\n" ++#: catgets/gencat.c:287 iconv/iconv_charmap.c:167 iconv/iconv_prog.c:290 ++#: nss/makedb.c:246 ++#, c-format ++msgid "cannot open input file `%s'" ++msgstr "não é possível abrir arquivo de entrada “%s”" + +-#: nis/nis_print_group_entry.c:137 +-msgid " Recursive members:\n" +-msgstr " Membros recursivos:\n" ++#: catgets/gencat.c:416 catgets/gencat.c:491 ++msgid "illegal set number" ++msgstr "número de conjunto ilegal" + +-#: sunrpc/rpcinfo.c:574 +-msgid " program vers proto port\n" +-msgstr " programa versão protocolo porta\n" ++#: catgets/gencat.c:443 ++msgid "duplicate set definition" ++msgstr "definição de conjunto duplicada" + +-#: argp/argp-help.c:1571 +-msgid " or: " +-msgstr " ou: " ++#: catgets/gencat.c:445 catgets/gencat.c:617 catgets/gencat.c:669 ++msgid "this is the first definition" ++msgstr "esta é a primeira definição" + +-#: timezone/zic.c:421 ++#: catgets/gencat.c:516 + #, c-format +-msgid " (rule from \"%s\", line %d)" +-msgstr " (regra de \"%s\", linha %d)" +- +-#: argp/argp-help.c:1583 +-msgid " [OPTION...]" +-msgstr " [OPÇÃO...]" ++msgid "unknown set `%s'" ++msgstr "conjunto desconhecido “%s”" + +-#: locale/programs/ld-collate.c:370 locale/programs/ld-ctype.c:1291 +-msgid " done\n" +-msgstr " feito\n" ++#: catgets/gencat.c:557 ++msgid "invalid quote character" ++msgstr "caractere de aspas inválido" + +-#: timezone/zic.c:418 ++#: catgets/gencat.c:570 + #, c-format +-msgid "\"%s\", line %d: %s" +-msgstr "\"%s\", linha %d: %s" ++msgid "unknown directive `%s': line ignored" ++msgstr "diretiva desconhecida “%s”: linha ignorada" + +-#: timezone/zic.c:958 +-#, c-format +-msgid "\"Zone %s\" line and -l option are mutually exclusive" +-msgstr "A linha \"Zone %s\" e a opção -l são mutuamente exclusivas" ++#: catgets/gencat.c:615 ++msgid "duplicated message number" ++msgstr "número de mensagem duplicado" + +-#: timezone/zic.c:966 +-#, c-format +-msgid "\"Zone %s\" line and -p option are mutually exclusive" +-msgstr "A linha \"Zone %s\" e a opção -p são mutuamente exclusivas" ++#: catgets/gencat.c:666 ++msgid "duplicated message identifier" ++msgstr "identificador de mensagens duplicado" + +-#: sunrpc/rpc_main.c:1401 +-msgid "\"infile\" is required for template generation flags.\n" +-msgstr "\"arquivo-entrada\" é necessário para geração de indicadores do modelo.\n" ++#: catgets/gencat.c:723 ++msgid "invalid character: message ignored" ++msgstr "caractere inválido: mensagem ignorada" + +-#: argp/argp-help.c:210 +-#, c-format +-msgid "%.*s: ARGP_HELP_FMT parameter requires a value" +-msgstr "%.*s: ARGP_HELP_FMT parâmetro requer um valor" ++#: catgets/gencat.c:766 ++msgid "invalid line" ++msgstr "linha inválida" + +-#: argp/argp-help.c:219 +-#, c-format +-msgid "%.*s: Unknown ARGP_HELP_FMT parameter" +-msgstr "%.*s: Parâmetro ARGP_HELP_FMT desconhecido" ++#: catgets/gencat.c:820 ++msgid "malformed line ignored" ++msgstr "linha inválida ignorada" + +-#: timezone/zic.c:768 ++#: catgets/gencat.c:984 catgets/gencat.c:1025 + #, c-format +-msgid "%s in ruleless zone" +-msgstr "%s em uma zona sem regras" ++msgid "cannot open output file `%s'" ++msgstr "não é possível abrir arquivo de saída “%s”" + +-#: assert/assert.c:51 +-#, c-format +-msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n" +-msgstr "%s%s%s:%u: %s%sAssertiva `%s' falhou.\n" ++#: catgets/gencat.c:1187 locale/programs/linereader.c:560 ++msgid "invalid escape sequence" ++msgstr "sequência de escape inválida" + +-#: assert/assert-perr.c:52 +-#, c-format +-msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n" +-msgstr "%s%s%s:%u: %s%sErro inesperado: %s.\n" ++#: catgets/gencat.c:1209 ++msgid "unterminated message" ++msgstr "mensagem não terminada" + +-#: stdio-common/psignal.c:47 ++#: catgets/gencat.c:1233 + #, c-format +-msgid "%s%sUnknown signal %d\n" +-msgstr "%s%sSinal desconhecido %d\n" ++msgid "while opening old catalog file" ++msgstr "enquanto abrindo antigo arquivo de catálogo" + +-#: timezone/zic.c:2201 ++#: catgets/gencat.c:1324 + #, c-format +-msgid "%s: %d did not sign extend correctly\n" +-msgstr "%s: %d não fez extensão de sinal corretamente\n" ++msgid "conversion modules not available" ++msgstr "módulos de conversão não estão disponíveis" + +-#: locale/programs/charmap.c:261 ++#: catgets/gencat.c:1350 + #, c-format +-msgid "%s: must be greater than \n" +-msgstr "%s: deve ser maior que \n" ++msgid "cannot determine escape character" ++msgstr "não é possível determinar caractere de escape" + +-#: sunrpc/rpc_main.c:422 +-#, c-format +-msgid "%s: C preprocessor failed with exit code %d\n" +-msgstr "%s: Pré-processador C falhou com código de saída %d\n" ++#: debug/pcprofiledump.c:53 ++msgid "Don't buffer output" ++msgstr "Não usa buffer para a saída" + +-#: sunrpc/rpc_main.c:419 +-#, c-format +-msgid "%s: C preprocessor failed with signal %d\n" +-msgstr "%s: Pré-processador C falhou com sinal %d\n" ++#: debug/pcprofiledump.c:58 ++msgid "Dump information generated by PC profiling." ++msgstr "Despeja a informação gerada pelo perfilador de PC." + +-#: timezone/zic.c:1469 +-#, c-format +-msgid "%s: Can't create %s: %s\n" +-msgstr "%s: Não é possível criar %s: %s\n" ++#: debug/pcprofiledump.c:61 ++msgid "[FILE]" ++msgstr "[ARQUIVO]" + +-#: timezone/zic.c:2179 ++#: debug/pcprofiledump.c:108 + #, c-format +-msgid "%s: Can't create directory %s: %s\n" +-msgstr "%s: Não é possível criar o diretório %s: %s\n" ++msgid "cannot open input file" ++msgstr "não foi possível abrir arquivo de entrada" + +-#: timezone/zic.c:620 ++#: debug/pcprofiledump.c:115 + #, c-format +-msgid "%s: Can't link from %s to %s: %s\n" +-msgstr "%s: Não é possível criar um link de %s para %s: %s\n" ++msgid "cannot read header" ++msgstr "não foi possível ler cabeçalho" + +-#: timezone/zic.c:794 ++#: debug/pcprofiledump.c:179 + #, c-format +-msgid "%s: Can't open %s: %s\n" +-msgstr "%s: Não é possível abrir %s: %s\n" ++msgid "invalid pointer size" ++msgstr "tamanho de ponteiro inválido" + +-#: timezone/zic.c:1459 +-#, c-format +-msgid "%s: Can't remove %s: %s\n" +-msgstr "%s: Não é possível remover %s: %s\n" ++#: debug/xtrace.sh:26 debug/xtrace.sh:44 ++msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n" ++msgstr "Uso: xtrace [OPÇÃO]... PROGRAMA [OPÇÃOPROGRAMA]...\\n" + +-#: timezone/zic.c:863 +-#, c-format +-msgid "%s: Error closing %s: %s\n" +-msgstr "%s: Erro fechando %s: %s\n" ++#: debug/xtrace.sh:32 elf/sotruss.sh:56 elf/sotruss.sh:67 elf/sotruss.sh:135 ++#: malloc/memusage.sh:26 ++msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n" ++msgstr "Tente “%s --help” ou “%s --usage” para mais informações.\\n" + +-#: timezone/zic.c:856 +-#, c-format +-msgid "%s: Error reading %s\n" +-msgstr "%s: Erro lendo %s\n" ++#: debug/xtrace.sh:38 ++msgid "%s: option '%s' requires an argument.\\n" ++msgstr "%s: opção “%s” requer um argumento.\\n" + +-#: timezone/zic.c:1535 +-#, c-format +-msgid "%s: Error writing %s\n" +-msgstr "%s: Erro escrevendo %s\n" ++#: debug/xtrace.sh:45 ++msgid "" ++"Trace execution of program by printing currently executed function.\n" ++"\n" ++" --data=FILE Don't run the program, just print the data from FILE.\n" ++"\n" ++" -?,--help Print this help and exit\n" ++" --usage Give a short usage message\n" ++" -V,--version Print version information and exit\n" ++"\n" ++"Mandatory arguments to long options are also mandatory for any corresponding\n" ++"short options.\n" ++"\n" ++msgstr "" ++"Rastreia a execução do programa exibindo a função atualmente executada.\n" ++"\n" ++" --data=ARQUIVO Não executa o programa, apenas exibe os dados\n" ++" do ARQUIVO.\n" ++"\n" ++" -?,--help Exibe essa ajuda e sai\n" ++" --usage Fornece uma curta mensagem de uso\n" ++" -V,--version Exibe informação da versão e sai\n" ++"\n" ++"Argumentos obrigatórios para opções longas são também obrigatórias para opções curtas correspondentes.\n" ++"\n" + +-#: timezone/zdump.c:266 +-#, c-format +-msgid "%s: Error writing standard output " +-msgstr "%s: Erro escrevendo para saída padrão " ++#: debug/xtrace.sh:57 elf/ldd.bash.in:55 elf/sotruss.sh:49 ++#: malloc/memusage.sh:64 ++msgid "For bug reporting instructions, please see:\\\\n%s.\\\\n" ++msgstr "Para instruções sobre como relatar erros, por favor veja:\\\\n%s.\\\\n" + +-#: timezone/zic.c:841 +-#, c-format +-msgid "%s: Leap line in non leap seconds file %s\n" +-msgstr "%s: linha Leap no arquivo %s, que não é arquivo de ajuste\n" ++#: debug/xtrace.sh:125 ++msgid "xtrace: unrecognized option \\`$1'\\n" ++msgstr "xtrace: opção não reconhecida “$1”\\n" + +-#: timezone/zic.c:359 +-#, c-format +-msgid "%s: Memory exhausted: %s\n" +-msgstr "%s: Memória esgotada: %s\n" ++#: debug/xtrace.sh:138 ++msgid "No program name given\\n" ++msgstr "Nenhum nome de programa dado\\n" + +-#: timezone/zic.c:524 +-#, c-format +-msgid "%s: More than one -L option specified\n" +-msgstr "%s: Mais que uma opção -L foi especificada\n" ++#: debug/xtrace.sh:146 ++#, sh-format ++msgid "executable \\`$program' not found\\n" ++msgstr "“$program” executável não foi encontrado\\n" + +-#: timezone/zic.c:484 +-#, c-format +-msgid "%s: More than one -d option specified\n" +-msgstr "%s: Mais que uma opção -d foi especificada\n" ++#: debug/xtrace.sh:150 ++#, sh-format ++msgid "\\`$program' is no executable\\n" ++msgstr "“$program” não é um executável\\n" + +-#: timezone/zic.c:494 +-#, c-format +-msgid "%s: More than one -l option specified\n" +-msgstr "%s: Mais que uma opção -l especificada\n" ++#: dlfcn/dlinfo.c:63 ++msgid "RTLD_SELF used in code not dynamically loaded" ++msgstr "RTLD_SELF usado em código não carregado dinamicamente" + +-#: timezone/zic.c:504 +-#, c-format +-msgid "%s: More than one -p option specified\n" +-msgstr "%s: Mais que uma opção -p especificada\n" ++#: dlfcn/dlinfo.c:72 ++msgid "unsupported dlinfo request" ++msgstr "requisição dlinfo sem suporte" + +-#: timezone/zic.c:514 +-#, c-format +-msgid "%s: More than one -y option specified\n" +-msgstr "%s: Mais que uma opção -y especificada\n" ++#: dlfcn/dlmopen.c:63 ++msgid "invalid namespace" ++msgstr "espaço de nome inválido" + +-#: argp/argp-parse.c:640 +-#, c-format +-msgid "%s: Too many arguments\n" +-msgstr "%s: Muitos parâmetros\n" ++#: dlfcn/dlmopen.c:68 ++msgid "invalid mode" ++msgstr "modo inválido" + +-#: login/programs/database.c:129 +-#, c-format +-msgid "%s: cannot get modification time" +-msgstr "%s: não é possível processar modificações de horário" ++#: dlfcn/dlopen.c:64 ++msgid "invalid mode parameter" ++msgstr "parâmetro de modo inválido" + +-#: timezone/zic.c:1900 +-#, c-format +-msgid "%s: command was '%s', result was %d\n" +-msgstr "%s: comando era '%s', resultado era %d\n" ++#: elf/cache.c:69 ++msgid "unknown" ++msgstr "desconhecido" + +-#: locale/programs/charmap.c:677 locale/programs/locfile.c:1008 +-#, c-format +-msgid "%s: error in state machine" +-msgstr "%s: erro na máquina de estados" ++# Operating System (OS) = Sistema Operacional (SO) ++#: elf/cache.c:135 ++msgid "Unknown OS" ++msgstr "SO desconhecido" + +-#: posix/getopt.c:784 ++#: elf/cache.c:140 + #, c-format +-msgid "%s: illegal option -- %c\n" +-msgstr "%s: opção ilegal -- %c\n" ++msgid ", OS ABI: %s %d.%d.%d" ++msgstr ", ABI de SO: %s %d.%d.%d" + +-#: posix/getopt.c:787 ++#: elf/cache.c:157 elf/ldconfig.c:1332 + #, c-format +-msgid "%s: invalid option -- %c\n" +-msgstr "%s: opção inválida -- %c\n" ++msgid "Can't open cache file %s\n" ++msgstr "Não foi possível abrir arquivo de cache %s\n" + +-#: posix/getopt.c:707 ++#: elf/cache.c:171 + #, c-format +-msgid "%s: option `%c%s' doesn't allow an argument\n" +-msgstr "%s: opção `%c%s' não permite um argumento\n" ++msgid "mmap of cache file failed.\n" ++msgstr "mmap de arquivo de cache falhou.\n" + +-#: posix/getopt.c:677 ++#: elf/cache.c:175 elf/cache.c:189 + #, c-format +-msgid "%s: option `%s' is ambiguous\n" +-msgstr "%s: opção `%s' é ambígua\n" ++msgid "File is not a cache file.\n" ++msgstr "Arquivo não é um arquivo de cache.\n" + +-#: posix/getopt.c:725 posix/getopt.c:898 ++# %d = número (quantidade) de bibliotecas ++#: elf/cache.c:222 elf/cache.c:232 + #, c-format +-msgid "%s: option `%s' requires an argument\n" +-msgstr "%s: opção `%s' requer um argumento\n" ++msgid "%d libs found in cache `%s'\n" ++msgstr "%d bibliotecas localizadas no cache “%s”\n" + +-#: posix/getopt.c:702 ++#: elf/cache.c:426 + #, c-format +-msgid "%s: option `--%s' doesn't allow an argument\n" +-msgstr "%s: opção `--%s' não permite um argumento\n" ++msgid "Can't create temporary cache file %s" ++msgstr "Não foi possível criar arquivo temporário de cache %s" + +-#: posix/getopt.c:882 ++#: elf/cache.c:434 elf/cache.c:444 elf/cache.c:448 elf/cache.c:453 + #, c-format +-msgid "%s: option `-W %s' doesn't allow an argument\n" +-msgstr "%s: opção `-W %s' não permite um argumento\n" ++msgid "Writing of cache data failed" ++msgstr "Escrita de dados de cache falhou" + +-#: posix/getopt.c:864 ++#: elf/cache.c:458 + #, c-format +-msgid "%s: option `-W %s' is ambiguous\n" +-msgstr "%s: opção `-W %s' é ambígua\n" ++msgid "Changing access rights of %s to %#o failed" ++msgstr "Mudança de direitos de acesso de %s para %#o falhou" + +-#: posix/getopt.c:817 posix/getopt.c:947 ++#: elf/cache.c:463 + #, c-format +-msgid "%s: option requires an argument -- %c\n" +-msgstr "%s: opção requer um argumento -- %c\n" ++msgid "Renaming of %s to %s failed" ++msgstr "Renomeio de %s para %s falhou" + +-#: sunrpc/rpc_main.c:287 +-#, c-format +-msgid "%s: output would overwrite %s\n" +-msgstr "%s: saída poderá sobrescrever %s\n" ++#: elf/dl-close.c:399 elf/dl-open.c:425 ++msgid "cannot create scope list" ++msgstr "não é possível criar lista de escopo" + +-#: timezone/zic.c:848 timezone/zic.c:1262 timezone/zic.c:1287 +-#, c-format +-msgid "%s: panic: Invalid l_value %d\n" +-msgstr "%s: pânico: l_value inválido %d\n" ++#: elf/dl-close.c:839 ++msgid "shared object not open" ++msgstr "objeto compartilhado não está aberto" + +-#: locale/programs/charmap.c:684 locale/programs/repertoire.c:289 +-#, c-format +-msgid "%s: premature end of file" +-msgstr "%s: fim de arquivo prematuro" ++#: elf/dl-deps.c:111 ++msgid "DST not allowed in SUID/SGID programs" ++msgstr "DST não permitido em programas SUID/SGID" + +-#: sunrpc/rpc_main.c:294 +-#, c-format +-msgid "%s: unable to open " +-msgstr "%s: Não foi possível abrir " ++#: elf/dl-deps.c:124 ++msgid "empty dynamic string token substitution" ++msgstr "substituição de token de string dinâmica vazia" + +-#: posix/getopt.c:758 ++#: elf/dl-deps.c:130 + #, c-format +-msgid "%s: unrecognized option `%c%s'\n" +-msgstr "%s: opção não reconhecida `%c%s'\n" ++msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n" ++msgstr "não foi possível carregar “%s” auxiliar por causa de substituição de token de string dinâmica vazia\n" + +-#: posix/getopt.c:754 +-#, c-format +-msgid "%s: unrecognized option `--%s'\n" +-msgstr "%s: opção não reconhecida `--%s'\n" ++#: elf/dl-deps.c:442 ++msgid "cannot allocate dependency list" ++msgstr "não foi possível alocar lista de dependências" + +-#: timezone/zic.c:443 +-#, c-format +-msgid "" +-"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n" +-"\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" +-msgstr "" +-"%s: uso é %s [ -s ] [ -v ] [ -l tempolocal ] [ -p regrasposix ] [ -d diretório ]\n" +-"\t[ -L segundosajuste ] [ -y tipoano ] [ nome do arquivo ... ]\n" ++#: elf/dl-deps.c:479 elf/dl-deps.c:539 ++msgid "cannot allocate symbol search list" ++msgstr "não foi possível alocar lista de pesquisa de símbolos" + +-#: timezone/zdump.c:174 +-#, c-format +-msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n" +-msgstr "%s: uso é %s [ -v ] [ -c cutoff ] nomezona ...\n" ++#: elf/dl-deps.c:519 ++msgid "Filters not supported with LD_TRACE_PRELINKING" ++msgstr "Filtros sem suporte com LD_TRACE_PRELINKING" + +-#: sunrpc/rpc_main.c:307 +-#, c-format +-msgid "%s: while writing output: " +-msgstr "%s: enquanto escrevendo saída: " ++#: elf/dl-error-skeleton.c:80 ++msgid "error while loading shared libraries" ++msgstr "erro ao carregar bibliotecas compartilhadas" + +-#: argp/argp-parse.c:164 +-msgid "(PROGRAM ERROR) No version known!?" +-msgstr "(ERRO DE PROGRAMA) Versão desconhecida!?" ++#: elf/dl-error-skeleton.c:113 ++msgid "DYNAMIC LINKER BUG!!!" ++msgstr "ERRO NO VINCULADOR DINÂMICO!!!" + +-#: argp/argp-parse.c:781 +-msgid "(PROGRAM ERROR) Option should have been recognized!?" +-msgstr "(ERRO DE PROGRAMA) Opção deveria ter sido reconhecida!?" ++#: elf/dl-fptr.c:88 sysdeps/hppa/dl-fptr.c:95 ++msgid "cannot map pages for fdesc table" ++msgstr "não foi possível mapear as páginas para tabela de fdesc" + +-#: nis/nis_print.c:129 +-msgid "(Unknown object)\n" +-msgstr "(Objeto desconhecido)\n" ++#: elf/dl-fptr.c:192 sysdeps/hppa/dl-fptr.c:213 ++msgid "cannot map pages for fptr table" ++msgstr "não foi possível mapear as páginas para tabela de fptr" + +-#: sunrpc/clnt_perr.c:124 +-#, c-format +-msgid "(unknown authentication error - %d)" +-msgstr "(erro de autenticação desconhecido - %d)" ++#: elf/dl-fptr.c:221 sysdeps/hppa/dl-fptr.c:242 ++msgid "internal error: symidx out of range of fptr table" ++msgstr "erro interno: symidx fora de alcance da tabela fptr" + +-#: sunrpc/rpcinfo.c:613 +-msgid "(unknown)" +-msgstr "(desconhecido)" ++#: elf/dl-hwcaps.c:202 elf/dl-hwcaps.c:214 ++msgid "cannot create capability list" ++msgstr "não foi possível criar lista de capacidades" + +-#: elf/sprof.c:574 +-#, c-format +-msgid "*** The file `%s' is stripped: no detailed analysis possible\n" +-msgstr "*** O arquivo `%s' está sem símbolos (stripped): a análise detalhada é impossível\n" ++#: elf/dl-load.c:369 ++msgid "cannot allocate name record" ++msgstr "não foi possível alocar registro de nome" + +-#: catgets/gencat.c:266 +-msgid "*standard input*" +-msgstr "*entrada padrão*" ++#: elf/dl-load.c:455 elf/dl-load.c:568 elf/dl-load.c:657 elf/dl-load.c:753 ++msgid "cannot create cache for search path" ++msgstr "não foi possível criar socket para caminho de pesquisa" + +-#: catgets/gencat.c:120 +-msgid "" +-"-o OUTPUT-FILE [INPUT-FILE]...\n" +-"[OUTPUT-FILE [INPUT-FILE]...]" +-msgstr "" +-"-o ARQUIVO-SAÍDA [ARQUIVO-ENTRADA]...\n" +-"[ARQUIVO-SAÍDA [ARQUIVO-ENTRADA...]" ++#: elf/dl-load.c:551 ++msgid "cannot create RUNPATH/RPATH copy" ++msgstr "não foi possível criar cópia de RUNPATH/RPATH" + +-#: stdio-common/../sysdeps/gnu/errlist.c:778 +-msgid ".lib section in a.out corrupted" +-msgstr "seção .lib corrompida em a.out" ++#: elf/dl-load.c:644 ++msgid "cannot create search path array" ++msgstr "não foi possível criar vetor de caminho de pesquisa" + +-#: sunrpc/clnt_perr.c:110 sunrpc/clnt_perr.c:131 +-#, c-format +-msgid "; low version = %lu, high version = %lu" +-msgstr "; versão baixa = %lu, versão alta = %lu" ++#: elf/dl-load.c:825 ++msgid "cannot stat shared object" ++msgstr "não foi possível obter estado do objeto compartilhado" + +-#: sunrpc/clnt_perr.c:117 +-msgid "; why = " +-msgstr "; porque = " ++#: elf/dl-load.c:902 ++msgid "cannot open zero fill device" ++msgstr "não foi possível abrir dispositivo preenchido com zero" + +-#: locale/programs/charset.c:98 +-#, c-format +-msgid "<%s> and <%s> are illegal names for range" +-msgstr "<%s> e <%s> são nomes ilegais para faixa de caracteres" ++#: elf/dl-load.c:949 elf/dl-load.c:2125 ++msgid "cannot create shared object descriptor" ++msgstr "não foi possível criar descritor de objeto compartilhado" + +-#: locale/programs/ld-ctype.c:342 +-#, c-format +-msgid " character must not be in class `%s'" +-msgstr " caracter não deve estar na classe `%s'" ++#: elf/dl-load.c:968 elf/dl-load.c:1499 elf/dl-load.c:1611 ++msgid "cannot read file data" ++msgstr "não foi possível carregar dados do arquivo" + +-#: locale/programs/ld-ctype.c:330 +-#, c-format +-msgid " character not in class `%s'" +-msgstr " caracter não está na classe `%s'" ++#: elf/dl-load.c:1014 ++msgid "ELF load command alignment not page-aligned" ++msgstr "alinhamento de comando de carregamento de ELF não está alinhado por página" + +-#. TRANS The experienced user will know what is wrong. +-#. TRANS @c This error code is a joke. Its perror text is part of the joke. +-#. TRANS @c Don't change it. +-#: stdio-common/../sysdeps/gnu/errlist.c:603 +-msgid "?" +-msgstr "?" ++#: elf/dl-load.c:1021 ++msgid "ELF load command address/offset not properly aligned" ++msgstr "endereço/deslocamento de comando de carregamento de ELF não alinhado adequadamente" + +-#: sysdeps/unix/sysv/linux/siglist.h:27 +-msgid "Aborted" +-msgstr "Abortado" ++#: elf/dl-load.c:1106 ++msgid "object file has no loadable segments" ++msgstr "arquivo de objeto não possui segmentos carregáveis" + +-#: nis/nis_print.c:318 +-msgid "Access Rights : " +-msgstr "Direitos de Acesso : " ++#: elf/dl-load.c:1115 elf/dl-load.c:1591 ++msgid "cannot dynamically load executable" ++msgstr "não foi possível carregar dinamicamente o executável" + +-#: stdio-common/../sysdeps/gnu/errlist.c:774 +-msgid "Accessing a corrupted shared library" +-msgstr "Acessando uma biblioteca compartilhado corrompida" ++#: elf/dl-load.c:1136 ++msgid "object file has no dynamic section" ++msgstr "arquivo de objeto não possui seção dinâmica" + +-#. TRANS The requested socket address is already in use. @xref{Socket Addresses}. +-#: stdio-common/../sysdeps/gnu/errlist.c:366 +-msgid "Address already in use" +-msgstr "Endereço já em uso" ++#: elf/dl-load.c:1159 ++msgid "shared object cannot be dlopen()ed" ++msgstr "objeto compartilhado não pode ser dlopen()ado" + +-#: posix/../sysdeps/posix/gai_strerror.c:30 +-msgid "Address family for hostname not supported" +-msgstr "Família de endereços não suportada para nome de máquina" ++#: elf/dl-load.c:1172 ++msgid "cannot allocate memory for program header" ++msgstr "não foi possível alocar memória para cabeçalho do programa" + +-#. TRANS The address family specified for a socket is not supported; it is +-#. TRANS inconsistent with the protocol being used on the socket. @xref{Sockets}. +-#: stdio-common/../sysdeps/gnu/errlist.c:361 +-msgid "Address family not supported by protocol" +-msgstr "Família de endereços não suportada pelo protocolo" ++#: elf/dl-load.c:1188 elf/dl-open.c:193 ++msgid "invalid caller" ++msgstr "chamador inválido" + +-#: stdio-common/../sysdeps/gnu/errlist.c:742 +-msgid "Advertise error" +-msgstr "Erro de aviso" ++#: elf/dl-load.c:1211 elf/dl-load.h:130 ++msgid "cannot change memory protections" ++msgstr "não é possível alterar proteções de memória" + +-#: stdio-common/../sysdeps/unix/siglist.c:39 +-#: sysdeps/unix/sysv/linux/siglist.h:33 +-msgid "Alarm clock" +-msgstr "Alarme de tempo" ++#: elf/dl-load.c:1231 ++msgid "cannot enable executable stack as shared object requires" ++msgstr "não foi possível habilitar pilhas de executável como requisitado pelo objeto compartilhado" + +-#. TRANS Argument list too long; used when the arguments passed to a new program +-#. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a +-#. TRANS File}) occupy too much memory space. This condition never arises in the +-#. TRANS GNU system. +-#: stdio-common/../sysdeps/gnu/errlist.c:69 +-msgid "Argument list too long" +-msgstr "Lista de argumentos muito longa" ++#: elf/dl-load.c:1244 ++msgid "cannot close file descriptor" ++msgstr "não é possível fechar o descritor de arquivo" + +-#: nis/nis_error.c:65 +-msgid "Attempt to remove a non-empty table" +-msgstr "Tentativa de remoção de uma tabela que não está vazia" ++#: elf/dl-load.c:1499 ++msgid "file too short" ++msgstr "arquivo pequeno demais" + +-#: stdio-common/../sysdeps/gnu/errlist.c:782 +-msgid "Attempting to link in too many shared libraries" +-msgstr "Tentando o link em muitas bibliotecas compartilhadas" ++#: elf/dl-load.c:1534 ++msgid "invalid ELF header" ++msgstr "cabeçalho de ELF inválido" + +-#: sunrpc/clnt_perr.c:273 +-msgid "Authentication OK" +-msgstr "Autenticação OK" ++#: elf/dl-load.c:1546 ++msgid "ELF file data encoding not big-endian" ++msgstr "codificação de dados de arquivo ELF não é big-endian" + +-#. TRANS ??? +-#: stdio-common/../sysdeps/gnu/errlist.c:561 +-msgid "Authentication error" +-msgstr "Erro de autenticação" ++#: elf/dl-load.c:1548 ++msgid "ELF file data encoding not little-endian" ++msgstr "codificação de dados de arquivo ELF não é little-endian" + +-#: nis/nis_print.c:105 +-msgid "BOGUS OBJECT\n" +-msgstr "OBJETO FALSO\n" ++#: elf/dl-load.c:1552 ++msgid "ELF file version ident does not match current one" ++msgstr "identificação de versão de arquivo ELF não corresponde ao atual" + +-#. TRANS Bad address; an invalid pointer was detected. +-#. TRANS In the GNU system, this error never happens; you get a signal instead. +-#: stdio-common/../sysdeps/gnu/errlist.c:114 +-msgid "Bad address" +-msgstr "Endereço inválido" ++#: elf/dl-load.c:1556 ++msgid "ELF file OS ABI invalid" ++msgstr "ABI de SO do arquivo ELF inválido" + +-#. TRANS Bad file descriptor; for example, I/O on a descriptor that has been +-#. TRANS closed or reading from a descriptor open only for writing (or vice +-#. TRANS versa). +-#: stdio-common/../sysdeps/gnu/errlist.c:82 +-msgid "Bad file descriptor" +-msgstr "Descritor de arquivo inválido" ++#: elf/dl-load.c:1559 ++msgid "ELF file ABI version invalid" ++msgstr "versão de ABI do arquivo ELF inválido" + +-#: stdio-common/../sysdeps/gnu/errlist.c:730 +-msgid "Bad font file format" +-msgstr "Formato do arquivo fonte inválido " ++#: elf/dl-load.c:1562 ++msgid "nonzero padding in e_ident" ++msgstr "espaçamento não-zero em e_ident" + +-#: stdio-common/../sysdeps/gnu/errlist.c:622 +-msgid "Bad message" +-msgstr "Mensagem inválida" ++#: elf/dl-load.c:1565 ++msgid "internal error" ++msgstr "erro interno" + +-#: stdio-common/../sysdeps/unix/siglist.c:37 +-#: sysdeps/unix/sysv/linux/siglist.h:56 +-msgid "Bad system call" +-msgstr "Chamada de sistema inválida" ++#: elf/dl-load.c:1572 ++msgid "ELF file version does not match current one" ++msgstr "versão de arquivo ELF não corresponde à atual" + +-#: posix/../sysdeps/posix/gai_strerror.c:32 +-msgid "Bad value for ai_flags" +-msgstr "Valor inválido para ai_flags" +- +-#: locale/programs/localedef.c:104 +-msgid "Be strictly POSIX conform" +-msgstr "Se extremamente compatível com o POSIX" ++#: elf/dl-load.c:1580 ++msgid "only ET_DYN and ET_EXEC can be loaded" ++msgstr "apenas ET_DYN e ET_EXEC podem ser carregados" + +-#: nis/nis_print.c:301 +-msgid "Binary data\n" +-msgstr "Dados binários\n" ++#: elf/dl-load.c:1596 ++msgid "ELF file's phentsize not the expected size" ++msgstr "phentsize do arquivo ELF não está no tamanho esperado" + +-#. TRANS A file that isn't a block special file was given in a situation that +-#. TRANS requires one. For example, trying to mount an ordinary file as a file +-#. TRANS system in Unix gives this error. +-#: stdio-common/../sysdeps/gnu/errlist.c:121 +-msgid "Block device required" +-msgstr "Dispositivo de bloco requerido" ++#: elf/dl-load.c:2144 ++msgid "wrong ELF class: ELFCLASS64" ++msgstr "classe ELF errada: ELFCLASS64" + +-#: sunrpc/pmap_rmt.c:347 +-msgid "Broadcast poll problem" +-msgstr "Problema em select para broadcast" ++#: elf/dl-load.c:2145 ++msgid "wrong ELF class: ELFCLASS32" ++msgstr "classe ELF errada: ELFCLASS32" + +-#. TRANS Broken pipe; there is no process reading from the other end of a pipe. +-#. TRANS Every library function that returns this error code also generates a +-#. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled +-#. TRANS or blocked. Thus, your program will never actually see @code{EPIPE} +-#. TRANS unless it has handled or blocked @code{SIGPIPE}. +-#: stdio-common/../sysdeps/gnu/errlist.c:234 +-#: stdio-common/../sysdeps/unix/siglist.c:38 +-#: sysdeps/unix/sysv/linux/siglist.h:32 +-msgid "Broken pipe" +-msgstr "Pipe quebrado" ++#: elf/dl-load.c:2148 ++msgid "cannot open shared object file" ++msgstr "não é possível abrir arquivo compartilhado" + +-#: stdio-common/../sysdeps/unix/siglist.c:35 +-#: sysdeps/unix/sysv/linux/siglist.h:30 +-msgid "Bus error" +-msgstr "Erro no barramento" ++#: elf/dl-load.h:128 ++msgid "failed to map segment from shared object" ++msgstr "falha no mapeamento de segmento do objeto compartilhado" + +-#: nis/nis_print.c:45 +-msgid "CDS" +-msgstr "CDS" ++#: elf/dl-load.h:132 ++msgid "cannot map zero-fill pages" ++msgstr "não é possível mapear páginas preenchidas com zero" + +-#: stdio-common/../sysdeps/unix/siglist.c:49 +-#: sysdeps/unix/sysv/linux/siglist.h:43 +-msgid "CPU time limit exceeded" +-msgstr "Tempo de CPU excedido" ++#: elf/dl-lookup.c:834 ++msgid "relocation error" ++msgstr "erro de realocação" + +-#: nis/nis_error.c:32 +-msgid "Cache expired" +-msgstr "Tempo expirado" ++#: elf/dl-lookup.c:857 ++msgid "symbol lookup error" ++msgstr "erro de procura por símbolo" + +-#: stdio-common/../sysdeps/gnu/errlist.c:770 +-msgid "Can not access a needed shared library" +-msgstr "Não foi possível acessar uma biblioteca compartilhada" ++#: elf/dl-open.c:101 ++msgid "cannot extend global scope" ++msgstr "não foi possível estender escopo global" + +-#: nis/ypclnt.c:769 +-msgid "Can't bind to server which serves this domain" +-msgstr "Não posso executar bind com o servidor deste domínio" ++#: elf/dl-open.c:475 ++msgid "TLS generation counter wrapped! Please report this." ++msgstr "Contador de geração TLS envolto! Por favor, relate isso." + +-#: nis/ypclnt.c:781 +-msgid "Can't communicate with portmapper" +-msgstr "Não foi possível comunicar-se com o portmapper" ++#: elf/dl-open.c:539 ++msgid "invalid mode for dlopen()" ++msgstr "modo inválido para dlopen()" + +-#: nis/ypclnt.c:783 +-msgid "Can't communicate with ypbind" +-msgstr "Não foi possível comunicar-se com o ypbind" ++#: elf/dl-open.c:556 ++msgid "no more namespaces available for dlmopen()" ++msgstr "não há mais espaços de nomes disponíveis para dlmopen()" + +-#: nis/ypclnt.c:785 +-msgid "Can't communicate with ypserv" +-msgstr "Não foi possível comunicar-se com o ypserv" ++#: elf/dl-open.c:580 ++msgid "invalid target namespace in dlmopen()" ++msgstr "espaço de nomes de alvo inválido em dlmopen()" + +-#. TRANS No memory available. The system cannot allocate more virtual memory +-#. TRANS because its capacity is full. +-#: stdio-common/../sysdeps/gnu/errlist.c:103 +-msgid "Cannot allocate memory" +-msgstr "Não foi possível alocar memória" ++#: elf/dl-reloc.c:120 ++msgid "cannot allocate memory in static TLS block" ++msgstr "não foi possível alocar memória em bloco TLS estático" + +-#. TRANS The requested socket address is not available; for example, you tried +-#. TRANS to give a socket a name that doesn't match the local host name. +-#. TRANS @xref{Socket Addresses}. +-#: stdio-common/../sysdeps/gnu/errlist.c:373 +-msgid "Cannot assign requested address" +-msgstr "Não foi possível acessar o endereço requisitado" ++#: elf/dl-reloc.c:205 ++msgid "cannot make segment writable for relocation" ++msgstr "não foi possível fazer segmento gravável para realocação" + +-#: sunrpc/pmap_rmt.c:264 +-msgid "Cannot create socket for broadcast rpc" +-msgstr "Não é possível criar socket para rpc de broadcast" ++#: elf/dl-reloc.c:276 ++#, c-format ++msgid "%s: out of memory to store relocation results for %s\n" ++msgstr "%s: memória insuficiente para armazenar resultados de realocação para %s\n" + +-#: stdio-common/../sysdeps/gnu/errlist.c:786 +-msgid "Cannot exec a shared library directly" +-msgstr "Não foi possível executar uma biblioteca compartilhado diretamente" ++#: elf/dl-reloc.c:292 ++msgid "cannot restore segment prot after reloc" ++msgstr "não foi possível restaurar proteção de segmento após realocação" + +-#: sunrpc/rpc_main.c:1406 +-msgid "Cannot have more than one file generation flag!\n" +-msgstr "Não é possível ter mais de um indicador de geração de arquivo!\n" ++#: elf/dl-reloc.c:323 ++msgid "cannot apply additional memory protection after relocation" ++msgstr "não foi possível aplicar proteção de memória adicional após realocação" + +-#: sunrpc/pmap_rmt.c:360 +-msgid "Cannot receive reply to broadcast" +-msgstr "Não foi possível receber resposta para broadcast" ++#: elf/dl-sym.c:136 ++msgid "RTLD_NEXT used in code not dynamically loaded" ++msgstr "RTLD_NEXT usado em código não dinamicamente carregado" + +-#: sunrpc/pmap_clnt.c:74 +-msgid "Cannot register service" +-msgstr "Não foi possível registrar serviço" ++#: elf/dl-tls.c:931 ++msgid "cannot create TLS data structures" ++msgstr "não é possível criar estruturas de dados TLS" + +-#. TRANS The socket has already been shut down. +-#: stdio-common/../sysdeps/gnu/errlist.c:434 +-msgid "Cannot send after transport endpoint shutdown" +-msgstr "Não é possível enviar após desligamento do ponto final de transporte" ++#: elf/dl-version.c:148 ++msgid "version lookup error" ++msgstr "erro na procura por versão" + +-#: sunrpc/pmap_rmt.c:322 +-msgid "Cannot send broadcast packet" +-msgstr "Não foi possível enviar pacote de broadcast" ++#: elf/dl-version.c:279 ++msgid "cannot allocate version reference table" ++msgstr "não foi possível alocar tabela de referência de versão" + +-#: sunrpc/pmap_rmt.c:271 +-msgid "Cannot set socket option SO_BROADCAST" +-msgstr "Não foi possível usar opção do socket SO_BROADCAST" ++#: elf/ldconfig.c:142 ++msgid "Print cache" ++msgstr "Mostra o cache" + +-#: sunrpc/rpc_main.c:1193 +-msgid "Cannot specify more than one input file!\n" +-msgstr "Nao é possível especificar mais de um arquivo de entrada!\n" ++#: elf/ldconfig.c:143 ++msgid "Generate verbose messages" ++msgstr "Gera mensagens detalhadas" + +-#: sunrpc/rpc_main.c:1363 +-msgid "Cannot use netid flag with inetd flag!\n" +-msgstr "Não é possível user tabela de indicadores com novo estilo!\n" ++#: elf/ldconfig.c:144 ++msgid "Don't build cache" ++msgstr "Não compila o cache" + +-#: sunrpc/rpc_main.c:1375 +-msgid "Cannot use netid flag without TIRPC!\n" +-msgstr "Não é possível usar indicador netid sem TIRPC!\n" ++#: elf/ldconfig.c:145 ++msgid "Don't update symbolic links" ++msgstr "Não atualiza links simbólicos" + +-#: sunrpc/rpc_main.c:1382 +-msgid "Cannot use table flags with newstyle!\n" +-msgstr "Não é possível usar indicadores de tabelas com novo estilo!\n" ++#: elf/ldconfig.c:146 ++msgid "Change to and use ROOT as root directory" ++msgstr "Muda para e usa ROOT como diretório raiz" + +-#: stdio-common/../sysdeps/gnu/errlist.c:670 +-msgid "Channel number out of range" +-msgstr "Número do canal fora do intervalo" ++#: elf/ldconfig.c:146 ++msgid "ROOT" ++msgstr "ROOT" + +-#: nis/nis_print.c:264 +-#, c-format +-msgid "Character Separator : %c\n" +-msgstr "Separador de caracteres \"%c\n" ++#: elf/ldconfig.c:147 ++msgid "CACHE" ++msgstr "CACHE" + +-#: stdio-common/../sysdeps/unix/siglist.c:45 +-#: sysdeps/unix/sysv/linux/siglist.h:39 +-msgid "Child exited" +-msgstr "Filho finalizado" ++#: elf/ldconfig.c:147 ++msgid "Use CACHE as cache file" ++msgstr "Usa CACHE como arquivo de cache" + +-#: sunrpc/clnt_perr.c:283 +-msgid "Client credential too weak" +-msgstr "Credencial do cliente muito fraca" ++#: elf/ldconfig.c:148 ++msgid "CONF" ++msgstr "CONF" + +-#: nis/nis_print.c:266 +-msgid "Columns :\n" +-msgstr "Colunas :\n" ++#: elf/ldconfig.c:148 ++msgid "Use CONF as configuration file" ++msgstr "Usa CONF como arquivo de configuração" + +-#: stdio-common/../sysdeps/gnu/errlist.c:750 +-msgid "Communication error on send" +-msgstr "Erro de communicação ao enviar" ++#: elf/ldconfig.c:149 ++msgid "Only process directories specified on the command line. Don't build cache." ++msgstr "Processa apenas diretórios especificados na linha de comando. Não compila o cache." + +-#: locale/programs/localedef.c:112 +-msgid "Compile locale specification" +-msgstr "Compila especificação localizada" ++#: elf/ldconfig.c:150 ++msgid "Manually link individual libraries." ++msgstr "Vincula manualmente bibliotecas individuais." + +-#. TRANS Go home and have a glass of warm, dairy-fresh milk. +-#: stdio-common/../sysdeps/gnu/errlist.c:613 +-msgid "Computer bought the farm" +-msgstr "O computador comprou a fazenda" ++#: elf/ldconfig.c:151 ++msgid "FORMAT" ++msgstr "FORMATO" + +-#: locale/programs/ld-ctype.c:1253 +-msgid "Computing table size for character classes might take a while..." +-msgstr "O cálculo do tamanho da tabela de classes de caracteres pode demorar..." ++#: elf/ldconfig.c:151 ++msgid "Format to use: new, old or compat (default)" ++msgstr "Formato para usar: new, old ou compat (padrão)" + +-#: locale/programs/ld-collate.c:336 +-msgid "Computing table size for collation information might take a while..." +-msgstr "O cálculo do tamanho da tabela de informações de comparação (collation) pode demorar..." ++#: elf/ldconfig.c:152 ++msgid "Ignore auxiliary cache file" ++msgstr "Ignora arquivo de cache auxiliar" + +-#. TRANS A remote host refused to allow the network connection (typically because +-#. TRANS it is not running the requested service). +-#: stdio-common/../sysdeps/gnu/errlist.c:451 +-msgid "Connection refused" +-msgstr "Conexão recusada" ++#: elf/ldconfig.c:160 ++msgid "Configure Dynamic Linker Run Time Bindings." ++msgstr "Configura associações de tempo real do vinculador dinâmico." + +-#. TRANS A network connection was closed for reasons outside the control of the +-#. TRANS local host, such as by the remote machine rebooting or an unrecoverable +-#. TRANS protocol violation. +-#: stdio-common/../sysdeps/gnu/errlist.c:401 +-msgid "Connection reset by peer" +-msgstr "Conexão fechada pela outra ponta" ++#: elf/ldconfig.c:347 ++#, c-format ++msgid "Path `%s' given more than once" ++msgstr "Caminho “%s” fornecido mais de uma vez" + +-#. TRANS A socket operation with a specified timeout received no response during +-#. TRANS the timeout period. +-#: stdio-common/../sysdeps/gnu/errlist.c:445 +-msgid "Connection timed out" +-msgstr "Tempo esgotado para conexão" ++#: elf/ldconfig.c:387 ++#, c-format ++msgid "%s is not a known library type" ++msgstr "%s não é um tipo de memória conhecida" + +-#: stdio-common/../sysdeps/unix/siglist.c:44 +-#: sysdeps/unix/sysv/linux/siglist.h:38 +-msgid "Continued" +-msgstr "Continua" ++#: elf/ldconfig.c:415 ++#, c-format ++msgid "Can't stat %s" ++msgstr "Não foi possível obter estado de %s" + +-#: iconv/iconv_prog.c:66 +-msgid "Convert encoding of given files from one encoding to another." +-msgstr "Converte codificação dos arquivos dados de uma codificação para outra." ++#: elf/ldconfig.c:489 ++#, c-format ++msgid "Can't stat %s\n" ++msgstr "Não foi possível obter estado de %s\n" + +-#: db2/makedb.c:58 +-msgid "Convert key to lower case" +-msgstr "Converte chave para letras minúsculas" ++#: elf/ldconfig.c:499 ++#, c-format ++msgid "%s is not a symbolic link\n" ++msgstr "%s não é um link simbólico\n" + +-#: catgets/gencat.c:236 db2/makedb.c:242 elf/sprof.c:359 +-#: iconv/iconv_prog.c:294 locale/programs/locale.c:267 +-#: locale/programs/localedef.c:403 nscd/nscd.c:223 nss/getent.c:65 +-#: posix/getconf.c:624 ++#: elf/ldconfig.c:518 + #, c-format +-msgid "" +-"Copyright (C) %s Free Software Foundation, Inc.\n" +-"This is free software; see the source for copying conditions. There is NO\n" +-"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +-msgstr "" +-"Copyright (C) %s Free Software Foundation, Inc.\n" +-"Este é um software free; leia os fontes para condicões de cópia. Não existe\n" +-"garantia; nem para comércio ou adequacão para propóstios particulares.\n" ++msgid "Can't unlink %s" ++msgstr "Não foi possível desvincular %s" + +-#: nscd/nscd_conf.c:167 ++#: elf/ldconfig.c:524 + #, c-format +-msgid "Could not create log file \"%s\"" +-msgstr "não é possível ler arquivo de registro \"%s\"" ++msgid "Can't link %s to %s" ++msgstr "Não foi possível vincular %s a %s" + +-#: catgets/gencat.c:107 +-msgid "Create C header file NAME containing symbol definitions" +-msgstr "Cria arquivo NOME com cabeçalho C contendo definições de símbolos " ++# link alterado ++#: elf/ldconfig.c:530 ++msgid " (changed)\n" ++msgstr " (alterado)\n" + +-#: locale/programs/localedef.c:103 +-msgid "Create output even if warning messages were issued" +-msgstr "Cria saída mesmo que mensagens de aviso forem produzidas" ++# link ignorado ++#: elf/ldconfig.c:532 ++msgid " (SKIPPED)\n" ++msgstr " (IGNORADO)\n" + +-#: db2/makedb.c:68 +-msgid "Create simple DB database from textual input." +-msgstr "Cria um base de dados DB simples de uma entrada textual." ++#: elf/ldconfig.c:587 ++#, c-format ++msgid "Can't find %s" ++msgstr "Não foi possível localizar %s" + +-#: nis/nis_print.c:322 ++# `lstat' similar a stat(), mas para links; `stat' = obtém estado de arquivo ++#: elf/ldconfig.c:603 elf/ldconfig.c:769 elf/ldconfig.c:825 elf/ldconfig.c:857 + #, c-format +-msgid "Creation Time : %s" +-msgstr "Horário de criação : %s" ++msgid "Cannot lstat %s" ++msgstr "Não foi possível obter estado do link %s" + +-#: nis/nss_nisplus/nisplus-publickey.c:89 +-#: nis/nss_nisplus/nisplus-publickey.c:159 ++#: elf/ldconfig.c:610 + #, c-format +-msgid "DES entry for netname %s not unique\n" +-msgstr "Entrada DES para nome de rede (netname) %s não é única\n" ++msgid "Ignored file %s since it is not a regular file." ++msgstr "Arquivo %s ignorado já que agora não é mais um arquivo comum." + +-#: nis/nis_print.c:111 +-msgid "DIRECTORY\n" +-msgstr "DIRETÓRIO\n" ++#: elf/ldconfig.c:619 ++#, c-format ++msgid "No link created since soname could not be found for %s" ++msgstr "Nenhum link foi criado porque um soname não foi encontrado para %s" + +-#: nis/nis_print.c:41 +-msgid "DNANS" +-msgstr "DNANS" ++#: elf/ldconfig.c:702 ++#, c-format ++msgid "Can't open directory %s" ++msgstr "Não foi possível abrir o diretório %s" + +-#: nis/nis_print.c:37 +-msgid "DNS" +-msgstr "DNS" ++#: elf/ldconfig.c:787 elf/ldconfig.c:845 elf/readlib.c:97 ++#, c-format ++msgid "Input file %s not found.\n" ++msgstr "Arquivo de entrada %s não foi localizado.\n" + +-#: nis/nis_error.c:51 +-msgid "Database for table does not exist" +-msgstr "Base de dados para tabela não existe" ++#: elf/ldconfig.c:794 ++#, c-format ++msgid "Cannot stat %s" ++msgstr "Não foi possível obter estado do arquivo %s" + +-#: nis/ypclnt.c:795 +-msgid "Database is busy" +-msgstr "Base de dados está ocupada" ++#: elf/ldconfig.c:939 ++#, c-format ++msgid "libc5 library %s in wrong directory" ++msgstr "biblioteca libc5 %s em diretório errado" + +-#: nis/nis_print.c:225 +-msgid "Default Access rights :\n" +-msgstr "Direitos de Acesso padrão :\n" ++#: elf/ldconfig.c:942 ++#, c-format ++msgid "libc6 library %s in wrong directory" ++msgstr "biblioteca libc6 %s em diretório errado" + +-#. TRANS No default destination address was set for the socket. You get this +-#. TRANS error when you try to transmit data over a connectionless socket, +-#. TRANS without first specifying a destination for the data with @code{connect}. +-#: stdio-common/../sysdeps/gnu/errlist.c:429 +-msgid "Destination address required" +-msgstr "Endereço de destino requerido" ++#: elf/ldconfig.c:945 ++#, c-format ++msgid "libc4 library %s in wrong directory" ++msgstr "biblioteca libc4 %s em diretório errado" + +-#: stdio-common/../sysdeps/gnu/errlist.c:650 +-msgid "Device not a stream" +-msgstr "Dispositivo não é um stream" ++#: elf/ldconfig.c:973 ++#, c-format ++msgid "libraries %s and %s in directory %s have same soname but different type." ++msgstr "bibliotecas %s e %s no diretório %s possuem o mesmo soname, mas tipos diferentes." + +-#. TRANS No such device or address. The system tried to use the device +-#. TRANS represented by a file you specified, and it couldn't find the device. +-#. TRANS This can mean that the device file was installed incorrectly, or that +-#. TRANS the physical device is missing or not correctly attached to the +-#. TRANS computer. +-#: stdio-common/../sysdeps/gnu/errlist.c:61 +-msgid "Device not configured" +-msgstr "Dispositivo não configurado" ++#: elf/ldconfig.c:1082 ++#, c-format ++msgid "Warning: ignoring configuration file that cannot be opened: %s" ++msgstr "Aviso: ignorando arquivo de configuração que não pode ser aberto: %s" + +-#. TRANS Resource busy; a system resource that can't be shared is already in use. +-#. TRANS For example, if you try to delete a file that is the root of a currently +-#. TRANS mounted filesystem, you get this error. +-#: stdio-common/../sysdeps/gnu/errlist.c:128 +-msgid "Device or resource busy" +-msgstr "Dispositivo ou recurso está ocupado" ++#: elf/ldconfig.c:1148 ++#, c-format ++msgid "%s:%u: bad syntax in hwcap line" ++msgstr "%s:%u: sintaxe incorreta na linha hwcap" + +-#: nis/nis_print.c:179 ++#: elf/ldconfig.c:1154 + #, c-format +-msgid "Diffie-Hellmann (%d bits)\n" +-msgstr "Diffie-Hellmann (%d bits)\n" ++msgid "%s:%u: hwcap index %lu above maximum %u" ++msgstr "%s:%u: índica de hwcap %lu acima do máximo %u" + +-#: nis/nis_print.c:315 ++#: elf/ldconfig.c:1161 elf/ldconfig.c:1169 + #, c-format +-msgid "Directory : %s\n" +-msgstr "Diretório : %s\n" ++msgid "%s:%u: hwcap index %lu already defined as %s" ++msgstr "%s:%u: índice de hwcap %lu já definido como %s" + +-#. TRANS Directory not empty, where an empty directory was expected. Typically, +-#. TRANS this error occurs when you are trying to delete a directory. +-#: stdio-common/../sysdeps/gnu/errlist.c:480 +-msgid "Directory not empty" +-msgstr "Diretório não vazio" ++#: elf/ldconfig.c:1172 ++#, c-format ++msgid "%s:%u: duplicate hwcap %lu %s" ++msgstr "%s:%u: hwcap %lu duplicado %s" + +-#. TRANS The user's disk quota was exceeded. +-#: stdio-common/../sysdeps/gnu/errlist.c:498 +-msgid "Disc quota exceeded" +-msgstr "Cota de disco excedida" ++#: elf/ldconfig.c:1194 ++#, c-format ++msgid "need absolute file name for configuration file when using -r" ++msgstr "necessita de nome de arquivo absoluto para arquivo de configuração quando usado -r" + +-#: nscd/nscd.c:80 +-msgid "Do not fork and display messages on the current tty" +-msgstr "Não divide (fork) e mostre mensagens na tty corrente" ++#: elf/ldconfig.c:1201 locale/programs/xmalloc.c:63 malloc/obstack.c:416 ++#: malloc/obstack.c:418 posix/getconf.c:458 posix/getconf.c:697 ++#, c-format ++msgid "memory exhausted" ++msgstr "memória esgotada" + +-#: db2/makedb.c:61 +-msgid "Do not print messages while building database" +-msgstr "Não mostra mensagens enquanto constrói base de dados" ++#: elf/ldconfig.c:1233 ++#, c-format ++msgid "%s:%u: cannot read directory %s" ++msgstr "%s:%u: não foi possível ler diretório %s" + +-#: catgets/gencat.c:109 +-msgid "Do not use existing catalog, force new output file" +-msgstr "Não usar catálogo existente, forçar novo arquivo de saída" ++#: elf/ldconfig.c:1281 ++#, c-format ++msgid "relative path `%s' used to build cache" ++msgstr "caminho relativo “%s” usado para compilar o cache" + +-#: nis/ypclnt.c:841 +-msgid "Domain not bound" +-msgstr "Domínio não limitado (not bound)" ++#: elf/ldconfig.c:1311 ++#, c-format ++msgid "Can't chdir to /" ++msgstr "Não foi possível mudar o diretório para /" + +-#: stdio-common/../sysdeps/unix/siglist.c:32 +-#: sysdeps/unix/sysv/linux/siglist.h:53 +-msgid "EMT trap" +-msgstr "trap EMT" ++#: elf/ldconfig.c:1352 ++#, c-format ++msgid "Can't open cache file directory %s\n" ++msgstr "Não foi possível abrir o diretório de arquivo cache %s\n" + +-#: nis/nis_print.c:120 +-msgid "ENTRY\n" +-msgstr "ENTRADA\n" ++#: elf/ldd.bash.in:42 ++msgid "Written by %s and %s.\n" ++msgstr "Escrito por %s e %s.\n" + +-#: nis/nis_print.c:299 +-msgid "Encrypted data\n" +-msgstr "Dado criptografado\n" ++#: elf/ldd.bash.in:47 ++msgid "" ++"Usage: ldd [OPTION]... FILE...\n" ++" --help print this help and exit\n" ++" --version print version information and exit\n" ++" -d, --data-relocs process data relocations\n" ++" -r, --function-relocs process data and function relocations\n" ++" -u, --unused print unused direct dependencies\n" ++" -v, --verbose print all information\n" ++msgstr "" ++"Uso: ldd [OPÇÃO]... ARQUIVO...\n" ++" --help exibe essa ajuda e sai\n" ++" --version exibe informação da versão e sai\n" ++" -d, --data-relocs processa realocações de dados\n" ++" -r, --function-relocs processa realocações de dados e funções\n" ++" -u, --unused exibe dependências diretas não usadas\n" ++" -v, --verbose exibe todas informações\n" ++ ++#: elf/ldd.bash.in:80 ++msgid "ldd: option \\`$1' is ambiguous" ++msgstr "ldd: opção “$1” é ambígua" ++ ++#: elf/ldd.bash.in:87 ++msgid "unrecognized option" ++msgstr "opção não reconhecida" ++ ++#: elf/ldd.bash.in:88 elf/ldd.bash.in:125 ++msgid "Try \\`ldd --help' for more information." ++msgstr "Tente “ldd --help” para mais informações." ++ ++#: elf/ldd.bash.in:124 ++msgid "missing file arguments" ++msgstr "faltando argumento ARQUIVO" ++ ++#. TRANS This is a ``file doesn't exist'' error ++#. TRANS for ordinary files that are referenced in contexts where they are ++#. TRANS expected to already exist. ++#: elf/ldd.bash.in:147 sysdeps/gnu/errlist.c:37 ++msgid "No such file or directory" ++msgstr "Arquivo ou diretório inexistente" + +-#: nis/nis_error.c:52 +-msgid "Entry/Table type mismatch" +-msgstr "Tipo de entrada/tabela incompatíveis" ++#: elf/ldd.bash.in:150 inet/rcmd.c:480 ++msgid "not regular file" ++msgstr "não é arquivo normal" + +-#: nis/nis_error.c:56 +-msgid "Error in RPC subsystem" +-msgstr "Erro no subsistema RPC" ++# após "for" vem um nome de arquivo ++#: elf/ldd.bash.in:153 ++msgid "warning: you do not have execution permission for" ++msgstr "aviso: você não tem permissão para execução para" + +-#: nis/nis_error.c:66 +-msgid "Error in accessing NIS+ cold start file. Is NIS+ installed?" +-msgstr "Erro acessando arquivo inicial do NIS+. O NIS+ está instalado?" ++#: elf/ldd.bash.in:170 ++msgid "\tnot a dynamic executable" ++msgstr "\tnão é um executável dinâmico" + +-#: string/../sysdeps/mach/_strerror.c:56 +-#: sysdeps/mach/hurd/mips/dl-machine.c:67 +-msgid "Error in unknown error system: " +-msgstr "Falha no erro desconhecido do sistema: " ++#: elf/ldd.bash.in:178 ++msgid "exited with unknown exit code" ++msgstr "saiu com código de saída desconhecido" + +-#: nis/nis_error.c:59 +-msgid "Error while talking to callback proc" +-msgstr "Erro durante a chamada a processo callback" ++# após "for" vem um nome de arquivo ++#: elf/ldd.bash.in:183 ++msgid "error: you do not have read permission for" ++msgstr "erro: você não possui permissão de leitura para" + +-#: inet/ruserpass.c:161 +-msgid "Error: .netrc file is readable by others." +-msgstr "Erro: arquivo .netrc é legível por outros." ++#: elf/pldd-xx.c:105 ++#, c-format ++msgid "cannot find program header of process" ++msgstr "não foi possível localizar cabeçalho do programa do processo" + +-#: stdio-common/../sysdeps/gnu/errlist.c:710 +-msgid "Exchange full" +-msgstr "Troca completa" ++#: elf/pldd-xx.c:110 ++#, c-format ++msgid "cannot read program header" ++msgstr "não foi possível ler o cabeçalho do programa" + +-#. TRANS Invalid executable file format. This condition is detected by the +-#. TRANS @code{exec} functions; see @ref{Executing a File}. +-#: stdio-common/../sysdeps/gnu/errlist.c:75 +-msgid "Exec format error" +-msgstr "Erro no formato exec" ++#: elf/pldd-xx.c:135 ++#, c-format ++msgid "cannot read dynamic section" ++msgstr "não foi possível ler a seção dinâmica" + +-#: locale/programs/localedef.c:190 +-msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'" +-msgstr "FATAL: sistema não define `_POSIX2_LOCALEDEF'" ++#: elf/pldd-xx.c:147 ++#, c-format ++msgid "cannot read r_debug" ++msgstr "não foi possível ler r_debug" + +-#: locale/programs/localedef.c:99 +-msgid "FILE contains mapping from symbolic names to UCS4 values" +-msgstr "ARQUIVO contém mapas de nomes simbólicos para valores UCS4" ++#: elf/pldd-xx.c:167 ++#, c-format ++msgid "cannot read program interpreter" ++msgstr "não foi possível ler o interpretador de programa" + +-#: sunrpc/clnt_perr.c:287 +-msgid "Failed (unspecified error)" +-msgstr "Falha (erro não especificado)" ++#: elf/pldd-xx.c:197 ++#, c-format ++msgid "cannot read link map" ++msgstr "não foi possível ler o mapa de links" + +-#: stdio-common/../sysdeps/gnu/errlist.c:762 +-msgid "File descriptor in bad state" +-msgstr "Descritor de arquivo em mal estado" ++#: elf/pldd-xx.c:209 ++#, c-format ++msgid "cannot read object name" ++msgstr "não foi possível ler o nome do objeto" + +-#. TRANS File exists; an existing file was specified in a context where it only +-#. TRANS makes sense to specify a new file. +-#: stdio-common/../sysdeps/gnu/errlist.c:134 +-msgid "File exists" +-msgstr "Arquivo existe" ++#: elf/pldd-xx.c:219 ++#, c-format ++msgid "cannot allocate buffer for object name" ++msgstr "não foi possível alocar buffer para o nome de objeto" + +-#: stdio-common/../sysdeps/gnu/errlist.c:726 +-msgid "File locking deadlock error" +-msgstr "Erro de bloqueio em arquivo (deadlock)" ++#: elf/pldd.c:64 ++msgid "List dynamic shared objects loaded into process." ++msgstr "Lista objetos compartilhados dinâmicos carregados no processo." + +-#. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for +-#. TRANS Files}) or host name too long (in @code{gethostname} or +-#. TRANS @code{sethostname}; @pxref{Host Identification}). +-#: stdio-common/../sysdeps/gnu/errlist.c:464 +-msgid "File name too long" +-msgstr "Nome de arquivo muito longo" ++#: elf/pldd.c:68 ++msgid "PID" ++msgstr "PID" + +-#: stdio-common/../sysdeps/unix/siglist.c:50 +-#: sysdeps/unix/sysv/linux/siglist.h:44 +-msgid "File size limit exceeded" +-msgstr "Excedido tamanho limite de arquivo" ++#: elf/pldd.c:100 ++#, c-format ++msgid "Exactly one parameter with process ID required.\n" ++msgstr "É necessário exatamente um parâmetro com ID de processo.\n" + +-#. TRANS File too big; the size of a file would be larger than allowed by the system. +-#: stdio-common/../sysdeps/gnu/errlist.c:202 +-msgid "File too large" +-msgstr "Arquivo muito grande" ++#: elf/pldd.c:112 ++#, c-format ++msgid "invalid process ID '%s'" ++msgstr "ID de processo inválido “%s”" + +-#: nis/nis_error.c:37 +-msgid "First/Next chain broken" +-msgstr "Primeira/próxima corrente quebrada" ++#: elf/pldd.c:120 ++#, c-format ++msgid "cannot open %s" ++msgstr "não foi possível abrir %s" + +-#: stdio-common/../sysdeps/unix/siglist.c:33 +-#: sysdeps/unix/sysv/linux/siglist.h:28 +-msgid "Floating point exception" +-msgstr "Exceção de ponto flutuante" ++#: elf/pldd.c:152 ++#, c-format ++msgid "cannot open %s/task" ++msgstr "não foi possível abrir %s/tarefa" + +-#: nis/nis_error.c:67 +-msgid "Full resync required for directory" +-msgstr "Resincronismo total necessário para o diretório" ++#: elf/pldd.c:155 ++#, c-format ++msgid "cannot prepare reading %s/task" ++msgstr "não foi possível preparar a leitura de %s/tarefa" + +-#. TRANS Function not implemented. Some functions have commands or options defined +-#. TRANS that might not be supported in all implementations, and this is the kind +-#. TRANS of error you get if you request them and they are not supported. +-#: stdio-common/../sysdeps/gnu/errlist.c:573 +-msgid "Function not implemented" +-msgstr "Função não implementada" ++#: elf/pldd.c:168 ++#, c-format ++msgid "invalid thread ID '%s'" ++msgstr "ID de thread “%s” inválido" + +-#: nis/nis_print.c:114 +-msgid "GROUP\n" +-msgstr "GRUPO\n" ++#: elf/pldd.c:179 ++#, c-format ++msgid "cannot attach to process %lu" ++msgstr "não foi possível anexar ao processado %lu" + +-#: argp/argp-help.c:231 ++#: elf/pldd.c:294 + #, c-format +-msgid "Garbage in ARGP_HELP_FMT: %s" +-msgstr "Lixo em ARGP_HELP_FMT: %s" ++msgid "cannot get information about process %lu" ++msgstr "não foi possível obter informação sobre o processo %lu" + +-#: catgets/gencat.c:115 +-msgid "" +-"Generate message catalog.\\vIf INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n" +-"is -, output is written to standard output.\n" +-msgstr "" +-"Gera catálogo de mensagens.\\vSe ARQUIVO-DE-ENTRADA é -, a entrada é lidada entrada padrão. Se ARQUIVO-DE-SAÍDA\n" +-"é -, a saída é escrita para a saída padrão.\n" ++#: elf/pldd.c:307 ++#, c-format ++msgid "process %lu is no ELF program" ++msgstr "processo %lu não é um programa ELF" + +-#: nis/nis_error.c:36 +-msgid "Generic system error" +-msgstr "Erro desconhecido de sistema" ++#: elf/readelflib.c:34 ++#, c-format ++msgid "file %s is truncated\n" ++msgstr "arquivo %s está truncado\n" + +-#: locale/programs/locale.c:75 +-msgid "Get locale-specific information." +-msgstr "Pegar informações específicas de localização." ++#: elf/readelflib.c:66 ++#, c-format ++msgid "%s is a 32 bit ELF file.\n" ++msgstr "%s é um arquivo ELF de 32 bits.\n" + +-#: argp/argp-parse.c:88 +-msgid "Give a short usage message" +-msgstr "Retorna uma mensagem de uso curta" ++#: elf/readelflib.c:68 ++#, c-format ++msgid "%s is a 64 bit ELF file.\n" ++msgstr "%s é um arquivo ELF de 64 bits.\n" + +-#: argp/argp-parse.c:87 +-msgid "Give this help list" +-msgstr "Retorna este arquivo de ajuda" ++#: elf/readelflib.c:70 ++#, c-format ++msgid "Unknown ELFCLASS in file %s.\n" ++msgstr "ELFCLASS desconhecida em arquivo %s.\n" + +-#. TRANS This error code has no purpose. +-#: stdio-common/../sysdeps/gnu/errlist.c:618 +-msgid "Gratuitous error" +-msgstr "Erro gratuito" ++#: elf/readelflib.c:77 ++#, c-format ++msgid "%s is not a shared object file (Type: %d).\n" ++msgstr "%s não é um arquivo de objeto compartilhado (Tipo: %d).\n" + +-#: nis/nis_print.c:317 ++#: elf/readelflib.c:108 + #, c-format +-msgid "Group : %s\n" +-msgstr "Grupo : %s\n" ++msgid "more than one dynamic segment\n" ++msgstr "mais do que um segmento dinâmico\n" + +-#: nis/nis_print.c:248 +-msgid "Group Flags :" +-msgstr "Indicadores de Grupo :" ++#: elf/readlib.c:103 ++#, c-format ++msgid "Cannot fstat file %s.\n" ++msgstr "Não é possível obter estado do arquivo %s.\n" + +-#: nis/nis_print_group_entry.c:113 ++#: elf/readlib.c:114 + #, c-format +-msgid "Group entry for \"%s.%s\" group:\n" +-msgstr "Entrada de Grupo para grupo \"%s.%s\":\n" ++msgid "File %s is empty, not checked." ++msgstr "Arquivo %s está vazio, não verificado." + +-#: argp/argp-parse.c:91 +-msgid "Hang for SECS seconds (default 3600)" +-msgstr "Pendurar por SEG segundos (o padrão é 3600)" ++#: elf/readlib.c:120 ++#, c-format ++msgid "File %s is too small, not checked." ++msgstr "Arquivo %s é pequeno demais, não verificado." + +-#: stdio-common/../sysdeps/unix/siglist.c:26 +-#: sysdeps/unix/sysv/linux/siglist.h:22 +-msgid "Hangup" +-msgstr "Desconexão" ++#: elf/readlib.c:130 ++#, c-format ++msgid "Cannot mmap file %s.\n" ++msgstr "Não foi possível executar mmap no arquivo %s.\n" + +-#: nscd/grpcache.c:238 ++#: elf/readlib.c:169 + #, c-format +-msgid "Haven't found \"%d\" in group cache!" +-msgstr "Não encontrado \"%d\" no cache de grupo!" ++msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" ++msgstr "%s não é um arquivo ELF – ele tem os magic bytes errados no início.\n" + +-#: nscd/pwdcache.c:235 ++#: elf/sln.c:76 + #, c-format +-msgid "Haven't found \"%d\" in password cache!" +-msgstr "Não encontrado \"%d\" no cache de senhas!" ++msgid "" ++"Usage: sln src dest|file\n" ++"\n" ++msgstr "" ++"Uso: sln fonte destino|arquivo\n" ++"\n" + +-#: nscd/grpcache.c:210 ++#: elf/sln.c:97 + #, c-format +-msgid "Haven't found \"%s\" in group cache!" +-msgstr "Não encontrado \"%s\" no cache de grupo!" ++msgid "%s: file open error: %m\n" ++msgstr "%s: erro na abertura do arquivo: %m\n" + +-#: nscd/hstcache.c:297 nscd/hstcache.c:328 nscd/hstcache.c:359 +-#: nscd/hstcache.c:390 ++#: elf/sln.c:134 + #, c-format +-msgid "Haven't found \"%s\" in hosts cache!" +-msgstr "Não encontrado \"%s\" no cache de máquinas!" ++msgid "No target in line %d\n" ++msgstr "Nenhum alvo na linha %d\n" + +-#: nscd/pwdcache.c:207 ++#: elf/sln.c:164 + #, c-format +-msgid "Haven't found \"%s\" in password cache!" +-msgstr "Não encontrado \"%s\" no cache de senhas! " ++msgid "%s: destination must not be a directory\n" ++msgstr "%s: destino não pode ser um diretório\n" + +-#. TRANS The remote host for a requested network connection is down. +-#: stdio-common/../sysdeps/gnu/errlist.c:469 +-msgid "Host is down" +-msgstr "Host está desligado" ++#: elf/sln.c:170 ++#, c-format ++msgid "%s: failed to remove the old destination\n" ++msgstr "%s: falha ao remover o destino antigo\n" + +-#: resolv/herror.c:75 +-msgid "Host name lookup failure" +-msgstr "Falha na procura do nome de host" ++#: elf/sln.c:178 ++#, c-format ++msgid "%s: invalid destination: %s\n" ++msgstr "%s: destino inválido: %s\n" + +-#: stdio-common/../sysdeps/unix/siglist.c:48 +-#: sysdeps/unix/sysv/linux/siglist.h:42 +-msgid "I/O possible" +-msgstr "possível E/S" ++#: elf/sln.c:189 elf/sln.c:198 ++#, c-format ++msgid "Invalid link from \"%s\" to \"%s\": %s\n" ++msgstr "Link inválido de “%s” para “%s”: %s\n" + +-#: db2/makedb.c:71 ++#: elf/sotruss.sh:32 ++#, sh-format + msgid "" +-"INPUT-FILE OUTPUT-FILE\n" +-"-o OUTPUT-FILE INPUT-FILE\n" +-"-u INPUT-FILE" ++"Usage: sotruss [OPTION...] [--] EXECUTABLE [EXECUTABLE-OPTION...]\n" ++" -F, --from FROMLIST Trace calls from objects on FROMLIST\n" ++" -T, --to TOLIST Trace calls to objects on TOLIST\n" ++"\n" ++" -e, --exit Also show exits from the function calls\n" ++" -f, --follow Trace child processes\n" ++" -o, --output FILENAME Write output to FILENAME (or FILENAME.$PID in case\n" ++"\t\t\t -f is also used) instead of standard error\n" ++"\n" ++" -?, --help Give this help list\n" ++" --usage Give a short usage message\n" ++" --version Print program version" + msgstr "" +-"ARQUIVO-ENTRADA ARQUIVO-SAÏDA\n" +-"-o ARQUIVO-SAÍDA ARQUIVO-ENTRADA\n" +-"-u ARQUIVO-ENTRADA" ++"Uso: sotruss [OPÇÃO...] [--] EXECUTÁVEL [OPÇÃO-EXECUTÁVEL...]\n" ++" -F, --from LISTA-DE Rastreia chamadas a partir de objetos na LISTA-DE\n" ++" -T, --to LISTA-PARA Rastreia chamadas para objetos na LISTA-PARA\n" ++"\n" ++" -e, --exit Também mostra saídas de chamadas de função\n" ++" -f, --follow Rastreia processos filhos\n" ++" -o, --output ARQUIVO Escreve a saída para ARQUIVO (ou ARQUIVO.$PID, caso\n" ++" -f também seja usada) em vez da saída de erro\n" ++"\n" ++" -?, --help Fornece essa lista de ajuda\n" ++" --usage Fornece uma mensagem curta de uso\n" ++" --version Exibe a versão do programa" + +-#: stdio-common/../sysdeps/unix/siglist.c:31 +-msgid "IOT trap" +-msgstr "trap IOT" ++# caractere de nova linha (\n) inserido visando não ultrapassar 80 caracteres. ++#: elf/sotruss.sh:46 ++msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n" ++msgstr "Argumentos obrigatórios para opções longas são também obrigatórios para\\nqualquer opção curta correspondente.\\n" + +-#: nis/nis_print.c:35 +-msgid "IVY" +-msgstr "IVY" ++#: elf/sotruss.sh:55 ++msgid "%s: option requires an argument -- '%s'\\n" ++msgstr "%s: opção requer um argumento -- “%s”\\n" + +-#: stdio-common/../sysdeps/gnu/errlist.c:626 +-msgid "Identifier removed" +-msgstr "Identificador removido" ++#: elf/sotruss.sh:61 ++msgid "%s: option is ambiguous; possibilities:" ++msgstr "%s: opção é ambígua; possibilidades:" + +-#: stdio-common/../sysdeps/unix/siglist.c:29 +-#: sysdeps/unix/sysv/linux/siglist.h:25 +-msgid "Illegal instruction" +-msgstr "Instrução ilegal" ++#: elf/sotruss.sh:79 ++msgid "Written by %s.\\n" ++msgstr "Escrito por %s.\\n" + +-#: nis/nis_error.c:61 +-msgid "Illegal object type for operation" +-msgstr "Tipo ilegal de objeto para a operação" +- +-#. TRANS Invalid seek operation (such as on a pipe). +-#: stdio-common/../sysdeps/gnu/errlist.c:213 +-msgid "Illegal seek" +-msgstr "Procura ilegal" ++#: elf/sotruss.sh:86 ++msgid "" ++"Usage: %s [-ef] [-F FROMLIST] [-o FILENAME] [-T TOLIST] [--exit]\n" ++"\t [--follow] [--from FROMLIST] [--output FILENAME] [--to TOLIST]\n" ++"\t [--help] [--usage] [--version] [--]\n" ++"\t EXECUTABLE [EXECUTABLE-OPTION...]\\n" ++msgstr "" ++"Uso: %s [-ef] [-F LISTA-DE] [-o ARQUIVO] [-T LISTA-PARA] [--exit]\n" ++"\t [--follow] [--from LISTA-DE] [--output ARQUIVO] [--to LISTA-PARA]\n" ++"\t [--help] [--usage] [--version] [--]\n" ++"\t EXECUTÁVEL [OPÇÃO-EXECUTÁVEL...]\\n" + +-#. TRANS Inappropriate file type or format. The file was the wrong type for the +-#. TRANS operation, or a data file had the wrong format. +-#. TRANS +-#. TRANS On some systems @code{chmod} returns this error if you try to set the +-#. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}. +-#: stdio-common/../sysdeps/gnu/errlist.c:556 +-msgid "Inappropriate file type or format" +-msgstr "Tipo ou formato de arquivo inapropriado" ++#: elf/sotruss.sh:134 ++msgid "%s: unrecognized option '%c%s'\\n" ++msgstr "%s: opção não reconhecida “%c%s”\\n" + +-#. TRANS Inappropriate I/O control operation, such as trying to set terminal +-#. TRANS modes on an ordinary file. +-#: stdio-common/../sysdeps/gnu/errlist.c:188 +-msgid "Inappropriate ioctl for device" +-msgstr "ioctl inapropriado para dispositivo" ++#: elf/sprof.c:77 ++msgid "Output selection:" ++msgstr "Seleção de saída:" + +-#. TRANS In the GNU system, servers supporting the @code{term} protocol return +-#. TRANS this error for certain operations when the caller is not in the +-#. TRANS foreground process group of the terminal. Users do not usually see this +-#. TRANS error because functions such as @code{read} and @code{write} translate +-#. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal. @xref{Job Control}, +-#. TRANS for information on process groups and these signals. +-#: stdio-common/../sysdeps/gnu/errlist.c:589 +-msgid "Inappropriate operation for background process" +-msgstr "Operação inapropriada para processo em background" ++#: elf/sprof.c:79 ++msgid "print list of count paths and their number of use" ++msgstr "mostra lista de número de rotas e seu número de uso" + +-#: sysdeps/unix/sysv/linux/siglist.h:62 +-msgid "Information request" +-msgstr "Requesição de informação" ++#: elf/sprof.c:81 ++msgid "generate flat profile with counts and ticks" ++msgstr "gera perfil com contadores e “ticks”" + +-#: iconv/iconv_prog.c:57 +-msgid "Information:" +-msgstr "Informação:" ++#: elf/sprof.c:82 ++msgid "generate call graph" ++msgstr "gera gráfico de chamadas" + +-#: locale/programs/localedef.c:94 +-msgid "Input Files:" +-msgstr "Arquivos de entrada:" ++#: elf/sprof.c:89 ++msgid "Read and display shared object profiling data." ++msgstr "Lê e mostra dados de perfil do objeto compartilhado." + +-#: iconv/iconv_prog.c:54 +-msgid "Input/Output format specification:" +-msgstr "Especificação de formato de Entrada/Saída:" ++#: elf/sprof.c:94 ++msgid "SHOBJ [PROFDATA]" ++msgstr "SHOBJ [DADOSPERFIL]" + +-#. TRANS Input/output error; usually used for physical read or write errors. +-#: stdio-common/../sysdeps/gnu/errlist.c:52 +-msgid "Input/output error" +-msgstr "Erro de entrada/saída" ++#: elf/sprof.c:433 ++#, c-format ++msgid "failed to load shared object `%s'" ++msgstr "falha no carregamento do objeto compartilhado “%s”" + +-#: nis/ypclnt.c:775 +-msgid "Internal NIS error" +-msgstr "Erro NIS interno" ++#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 ++#, c-format ++msgid "cannot create internal descriptor" ++msgstr "não é possível criar descritor interno" + +-#: nis/ypclnt.c:839 +-msgid "Internal ypbind error" +-msgstr "Erro interno de ypbind" ++#: elf/sprof.c:554 ++#, c-format ++msgid "Reopening shared object `%s' failed" ++msgstr "Reabertura de objeto compartilhado “%s” falhou" + +-#: stdio-common/../sysdeps/unix/siglist.c:27 +-#: sysdeps/unix/sysv/linux/siglist.h:23 +-msgid "Interrupt" +-msgstr "Interrupção" ++#: elf/sprof.c:561 elf/sprof.c:656 ++#, c-format ++msgid "reading of section headers failed" ++msgstr "a leitura de cabeçalhos de seção falhou" + +-#. TRANS Interrupted function call; an asynchronous signal occurred and prevented +-#. TRANS completion of the call. When this happens, you should try the call +-#. TRANS again. +-#. TRANS +-#. TRANS You can choose to have functions resume after a signal that is handled, +-#. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted +-#. TRANS Primitives}. +-#: stdio-common/../sysdeps/gnu/errlist.c:47 +-msgid "Interrupted system call" +-msgstr "Chamada de sistema interrompida" ++#: elf/sprof.c:569 elf/sprof.c:664 ++#, c-format ++msgid "reading of section header string table failed" ++msgstr "a leitura da tabela de string do cabeçalho da seção falhou" + +-#: stdio-common/../sysdeps/gnu/errlist.c:666 +-msgid "Interrupted system call should be restarted" +-msgstr "Chamada de sistema interrompida deve ser reiniciada" ++#: elf/sprof.c:595 ++#, c-format ++msgid "*** Cannot read debuginfo file name: %m\n" ++msgstr "*** Não foi possível ler o arquivo de debuginfo: %m\n" + +-#: nis/nis_error.c:44 +-msgid "Invalid Object for operation" +-msgstr "Objeto inválido para operação" ++#: elf/sprof.c:616 ++#, c-format ++msgid "cannot determine file name" ++msgstr "não foi possível determinar o nome do arquivo" + +-#. TRANS Invalid argument. This is used to indicate various kinds of problems +-#. TRANS with passing the wrong argument to a library function. +-#: stdio-common/../sysdeps/gnu/errlist.c:164 +-msgid "Invalid argument" +-msgstr "Argumento inválido" ++#: elf/sprof.c:649 ++#, c-format ++msgid "reading of ELF header failed" ++msgstr "a leitura de cabeçalho de ELF falhou" + +-#: posix/regex.c:1018 +-msgid "Invalid back reference" +-msgstr "Referência anterior inválida" ++#: elf/sprof.c:685 ++#, c-format ++msgid "*** The file `%s' is stripped: no detailed analysis possible\n" ++msgstr "*** O arquivo “%s” está sem símbolos (stripped): análise detalhada é impossível\n" + +-#: posix/regex.c:1016 +-msgid "Invalid character class name" +-msgstr "Nome de classe de caracter inválido" ++#: elf/sprof.c:715 ++#, c-format ++msgid "failed to load symbol data" ++msgstr "falha ao carregar dados de símbolos" + +-#: sunrpc/clnt_perr.c:275 +-msgid "Invalid client credential" +-msgstr "Credencial de cliente inválido" ++#: elf/sprof.c:780 ++#, c-format ++msgid "cannot load profiling data" ++msgstr "impossível carregar dados de perfil" + +-#: sunrpc/clnt_perr.c:279 +-msgid "Invalid client verifier" +-msgstr "Verificador de cliente inválido" ++#: elf/sprof.c:789 ++#, c-format ++msgid "while stat'ing profiling data file" ++msgstr "enquanto obtinha estado do arquivo de dados de perfil" + +-#: posix/regex.c:1015 +-msgid "Invalid collation character" +-msgstr "Caracter de comparação inválido" ++#: elf/sprof.c:797 ++#, c-format ++msgid "profiling data file `%s' does not match shared object `%s'" ++msgstr "arquivo de dados de perfil “%s” não coincide com objetos compartilhados “%s”" + +-#: posix/regex.c:1022 +-msgid "Invalid content of \\{\\}" +-msgstr "Conteúdo inválido de \\{\\}" ++#: elf/sprof.c:808 ++#, c-format ++msgid "failed to mmap the profiling data file" ++msgstr "falha para mapear (mmap) o arquivo de dados de perfil" + +-#. TRANS An attempt to make an improper link across file systems was detected. +-#. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but +-#. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}). +-#: stdio-common/../sysdeps/gnu/errlist.c:141 +-msgid "Invalid cross-device link" +-msgstr "Link entre dispositivos inválido" ++#: elf/sprof.c:816 ++#, c-format ++msgid "error while closing the profiling data file" ++msgstr "erro ao fechar arquivo de dados de perfil" + +-#: stdio-common/../sysdeps/gnu/errlist.c:702 +-msgid "Invalid exchange" +-msgstr "Troca inválida" ++#: elf/sprof.c:899 ++#, c-format ++msgid "`%s' is no correct profile data file for `%s'" ++msgstr "“%s” não é o arquivo de perfil de dados correto para “%s”" + +-#. TRANS While decoding a multibyte character the function came along an invalid +-#. TRANS or an incomplete sequence of bytes or the given wide character is invalid. +-#: stdio-common/../sysdeps/gnu/errlist.c:579 +-msgid "Invalid or incomplete multibyte or wide character" +-msgstr "Multibyte ou caracter largo inválido" ++#: elf/sprof.c:1080 elf/sprof.c:1138 ++#, c-format ++msgid "cannot allocate symbol data" ++msgstr "não foi possível alocar dados de símbolos" + +-#: posix/regex.c:1025 +-msgid "Invalid preceding regular expression" +-msgstr "Expressão regular precedente inválida" ++#: iconv/iconv_charmap.c:141 iconv/iconv_prog.c:445 ++#, c-format ++msgid "cannot open output file" ++msgstr "não foi possível abrir arquivo de saída" + +-#: posix/regex.c:1023 +-msgid "Invalid range end" +-msgstr "Intervalo final inválida" ++#: iconv/iconv_charmap.c:187 iconv/iconv_prog.c:308 ++#, c-format ++msgid "error while closing input `%s'" ++msgstr "erro ao fechar a entrada “%s”" + +-#: posix/regex.c:1014 +-msgid "Invalid regular expression" +-msgstr "Expressão regular inválida" ++#: iconv/iconv_charmap.c:435 ++#, c-format ++msgid "illegal input sequence at position %Zd" ++msgstr "sequência de entrada ilegal na posição %Zd" + +-#: stdio-common/../sysdeps/gnu/errlist.c:718 +-msgid "Invalid request code" +-msgstr "Código de requisição inválido" ++#: iconv/iconv_charmap.c:454 iconv/iconv_prog.c:536 ++#, c-format ++msgid "incomplete character or shift sequence at end of buffer" ++msgstr "caractere incompleto ou mudança de sequência no final do buffer" + +-#: stdio-common/../sysdeps/gnu/errlist.c:706 +-msgid "Invalid request descriptor" +-msgstr "Descritor de requisição inválido" ++#: iconv/iconv_charmap.c:499 iconv/iconv_charmap.c:535 iconv/iconv_prog.c:579 ++#: iconv/iconv_prog.c:615 ++#, c-format ++msgid "error while reading the input" ++msgstr "erro ao ler a entrada" + +-#: sunrpc/clnt_perr.c:285 +-msgid "Invalid server verifier" +-msgstr "Verificador de servidor inválido" ++#: iconv/iconv_charmap.c:517 iconv/iconv_prog.c:597 ++#, c-format ++msgid "unable to allocate buffer for input" ++msgstr "não foi possível alocar espaço para entrada" + +-#: stdio-common/../sysdeps/gnu/errlist.c:722 +-msgid "Invalid slot" +-msgstr "Slot inválido" ++#: iconv/iconv_prog.c:59 ++msgid "Input/Output format specification:" ++msgstr "Especificação de formato de entrada/saída:" + +-#. TRANS File is a directory; you cannot open a directory for writing, +-#. TRANS or create or remove hard links to it. +-#: stdio-common/../sysdeps/gnu/errlist.c:158 +-msgid "Is a directory" +-msgstr "É um diretório" ++#: iconv/iconv_prog.c:60 ++msgid "encoding of original text" ++msgstr "codificação para o texto original" + +-#: stdio-common/../sysdeps/gnu/errlist.c:806 +-msgid "Is a named type file" +-msgstr "É um arquivo tipo nomeável" ++#: iconv/iconv_prog.c:61 ++msgid "encoding for output" ++msgstr "codificação para a saída" + +-#: nis/nis_print.c:187 +-msgid "Kerberos.\n" +-msgstr "Kerberos.\n" ++#: iconv/iconv_prog.c:62 ++msgid "Information:" ++msgstr "Informação:" + +-#: stdio-common/../sysdeps/unix/siglist.c:34 +-#: sysdeps/unix/sysv/linux/siglist.h:29 +-msgid "Killed" +-msgstr "Morto" ++#: iconv/iconv_prog.c:63 ++msgid "list all known coded character sets" ++msgstr "lista todas as coleções de caracteres codificados" + +-#: nis/nis_print.c:123 +-msgid "LINK\n" +-msgstr "LINK\n" ++#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120 ++msgid "Output control:" ++msgstr "Controle de saída:" + +-#: nis/nis_local_names.c:125 +-#, c-format +-msgid "LOCAL entry for UID %d in directory %s not unique\n" +-msgstr "Entrada LOCAL para UID %d no diretório %s não é única\n" ++#: iconv/iconv_prog.c:65 ++msgid "omit invalid characters from output" ++msgstr "omite caracteres inválidos da saída" + +-#: stdio-common/../sysdeps/gnu/errlist.c:698 +-msgid "Level 2 halted" +-msgstr "Parada de sistema nível 2" ++#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128 ++#: locale/programs/localedef.c:113 locale/programs/localedef.c:115 ++#: locale/programs/localedef.c:117 locale/programs/localedef.c:144 ++#: malloc/memusagestat.c:56 ++msgid "FILE" ++msgstr "ARQUIVO" + +-#: stdio-common/../sysdeps/gnu/errlist.c:674 +-msgid "Level 2 not synchronized" +-msgstr "Nível 2 não sincronizado" ++#: iconv/iconv_prog.c:66 ++msgid "output file" ++msgstr "arquivo de saída" + +-#: stdio-common/../sysdeps/gnu/errlist.c:678 +-msgid "Level 3 halted" +-msgstr "Nível 3 parado" ++#: iconv/iconv_prog.c:67 ++msgid "suppress warnings" ++msgstr "suprime avisos" + +-#: stdio-common/../sysdeps/gnu/errlist.c:682 +-msgid "Level 3 reset" +-msgstr "Nível 3 resetado" ++#: iconv/iconv_prog.c:68 ++msgid "print progress information" ++msgstr "mostra informações de progresso" + +-#: nis/nis_error.c:53 +-msgid "Link Points to illegal name" +-msgstr "Vínculo aponta para nome ilegal" ++#: iconv/iconv_prog.c:73 ++msgid "Convert encoding of given files from one encoding to another." ++msgstr "Converte codificação dos arquivos dados de uma codificação para outra." + +-#: stdio-common/../sysdeps/gnu/errlist.c:638 +-msgid "Link has been severed" +-msgstr "Link foi cortado" ++#: iconv/iconv_prog.c:77 ++msgid "[FILE...]" ++msgstr "[ARQUIVO...]" + +-#: stdio-common/../sysdeps/gnu/errlist.c:686 +-msgid "Link number out of range" +-msgstr "Número de link fora da faixa" ++#: iconv/iconv_prog.c:230 ++#, c-format ++msgid "conversions from `%s' and to `%s' are not supported" ++msgstr "não há suporte para as conversões de “%s” e para “%s”" + +-#: nis/nis_print.c:282 +-msgid "Linked Object Type : " +-msgstr "Tipo de Objeto Vinculado (linked) : " ++#: iconv/iconv_prog.c:235 ++#, c-format ++msgid "conversion from `%s' is not supported" ++msgstr "não há suporte para a conversão de “%s”" + +-#: nis/nis_print.c:284 ++#: iconv/iconv_prog.c:242 + #, c-format +-msgid "Linked to : %s\n" +-msgstr "Vinculado (linked) para : %s\n" ++msgid "conversion to `%s' is not supported" ++msgstr "não há suporte para a conversão para “%s”" + +-#: nis/ypclnt.c:787 +-msgid "Local domain name not set" +-msgstr "Não foi configurado nome de domínio local" ++#: iconv/iconv_prog.c:246 ++#, c-format ++msgid "conversion from `%s' to `%s' is not supported" ++msgstr "não há suporte para a conversão de “%s” para “%s”" + +-#: nis/ypclnt.c:777 +-msgid "Local resource allocation failure" +-msgstr "Falha na alocação de recurso local" ++#: iconv/iconv_prog.c:256 ++#, c-format ++msgid "failed to start conversion processing" ++msgstr "falha ao iniciar o processo de conversão" + +-#: stdio-common/../sysdeps/gnu/errlist.c:734 +-msgid "Machine is not on the network" +-msgstr "A maquina não está na rede" ++#: iconv/iconv_prog.c:354 ++#, c-format ++msgid "error while closing output file" ++msgstr "erro ao fechar o arquivo de saída" + +-#: nis/nis_error.c:45 +-msgid "Malformed Name, or illegal name" +-msgstr "Nome malformado ou ilegal" ++#: iconv/iconv_prog.c:455 ++#, c-format ++msgid "conversion stopped due to problem in writing the output" ++msgstr "a conversão parou devido a problemas de escrita na saída" + +-#: argp/argp-help.c:1182 +-msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options." +-msgstr "Parâmetros obrigatórios ou opcionais para opções longas são também obrigatórios ou opcionais para qualquer opção curta correspondente." ++#: iconv/iconv_prog.c:532 ++#, c-format ++msgid "illegal input sequence at position %ld" ++msgstr "sequência de entrada ilegal na posição %ld" + +-#: nis/nis_print.c:168 +-msgid "Master Server :\n" +-msgstr "Servidor Mestre :\n" ++#: iconv/iconv_prog.c:540 ++#, c-format ++msgid "internal error (illegal descriptor)" ++msgstr "erro interno (descritor ilegal)" + +-#: nis/nis_error.c:75 +-msgid "Master server busy, full dump rescheduled." +-msgstr "Servidor Mestre ocupado, descarregamento completo (dump) remarcado." ++#: iconv/iconv_prog.c:543 ++#, c-format ++msgid "unknown iconv() error %d" ++msgstr "erro iconv() desconhecido: %d" + +-#: posix/../sysdeps/posix/gai_strerror.c:35 +-msgid "Memory allocation failure" +-msgstr "Falha de alocação de memória" ++#: iconv/iconv_prog.c:786 ++msgid "" ++"The following list contains all the coded character sets known. This does\n" ++"not necessarily mean that all combinations of these names can be used for\n" ++"the FROM and TO command line parameters. One coded character set can be\n" ++"listed with several different names (aliases).\n" ++"\n" ++" " ++msgstr "" ++"A lista a seguir contém todos os conjuntos de codificação de caracteres \n" ++"conhecidos. Isto não quer dizer necessariamente que todas as combinações\n" ++"destes nomes podem ser utilizadas nos parâmetros DE e PARA. Um conjunto\n" ++"de caracteres pode ser listado com vários nomes diferentes (apelidos).\n" ++"\n" ++" " + +-#: posix/regex.c:1024 +-msgid "Memory exhausted" +-msgstr "Memória esgotada" ++#: iconv/iconvconfig.c:109 ++msgid "Create fastloading iconv module configuration file." ++msgstr "Cria um arquivo de configuração para carregamento rápido de módulos iconv." + +-#. TRANS The size of a message sent on a socket was larger than the supported +-#. TRANS maximum size. +-#: stdio-common/../sysdeps/gnu/errlist.c:317 +-msgid "Message too long" +-msgstr "Mensagem muito longa" ++#: iconv/iconvconfig.c:113 ++msgid "[DIR...]" ++msgstr "[DIR...]" + +-#: nis/nis_error.c:57 +-msgid "Missing or malformed attribute" +-msgstr "Atributo perdido ou malformado" ++#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123 ++msgid "PATH" ++msgstr "CAMINHO" + +-#: nis/nis_print.c:323 +-#, c-format +-msgid "Mod. Time : %s" +-msgstr "Horário Mod. : %s" ++#: iconv/iconvconfig.c:127 ++msgid "Prefix used for all file accesses" ++msgstr "Prefixo usado para todos os acessos a arquivos" + +-#: nis/nis_error.c:50 +-msgid "Modification failed" +-msgstr "Modificação falhou" ++#: iconv/iconvconfig.c:128 ++msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)" ++msgstr "Coloca saída em ARQUIVO, em vez da localização instalada (--prefix não se aplica a ARQUIVO)" + +-#: nis/nis_error.c:63 +-msgid "Modify operation failed" +-msgstr "Operação de modificação falhou" ++#: iconv/iconvconfig.c:132 ++msgid "Do not search standard directories, only those on the command line" ++msgstr "Não pesquisa por diretórios padrões, e sim apenas por aqueles na linha de comando" + +-#: locale/programs/locale.c:68 +-msgid "Modify output format:" +-msgstr "Formato de modificação de saída:" ++#: iconv/iconvconfig.c:299 ++#, c-format ++msgid "Directory arguments required when using --nostdlib" ++msgstr "Argumentos de diretório são necessários ao usar --nostdlib" + +-#: stdio-common/../sysdeps/gnu/errlist.c:630 +-msgid "Multihop attempted" +-msgstr "Tentativa de Multihop" ++#: iconv/iconvconfig.c:341 ++#, c-format ++msgid "no output file produced because warnings were issued" ++msgstr "nenhum arquivo de saída foi produzido porque avisos foram emitidos" + +-#: catgets/gencat.c:106 catgets/gencat.c:110 db2/makedb.c:59 +-#: locale/programs/localedef.c:115 nscd/nscd.c:77 +-msgid "NAME" +-msgstr "NOME" ++#: iconv/iconvconfig.c:430 ++#, c-format ++msgid "while inserting in search tree" ++msgstr "erro ao inserir na área de pesquisa" + +-#: locale/programs/locale.c:78 +-msgid "" +-"NAME\n" +-"[-a|-m]" +-msgstr "" +-"NOME\n" +-"[-a|-m]" ++#: iconv/iconvconfig.c:1238 ++#, c-format ++msgid "cannot generate output file" ++msgstr "não foi possível gerar o arquivo de saída" + +-#: nis/nis_print.c:31 +-msgid "NIS" +-msgstr "NIS" ++#: inet/rcmd.c:157 ++msgid "rcmd: Cannot allocate memory\n" ++msgstr "rcmd: Não foi possível alocar memória\n" + +-#: nis/ypclnt.c:791 +-msgid "NIS client/server version mismatch - can't supply service" +-msgstr "Versões cliente/servidor NIS não conferem - não é possível oferecer serviço" ++#: inet/rcmd.c:174 ++msgid "rcmd: socket: All ports in use\n" ++msgstr "rcmd: socket: Todas as portas em uso\n" + +-#: nis/ypclnt.c:789 +-msgid "NIS map database is bad" +-msgstr "Base de dados de mapas NIS está ruim" ++#: inet/rcmd.c:202 ++#, c-format ++msgid "connect to address %s: " ++msgstr "conectar ao endereço %s: " + +-#: nis/nis_error.c:68 +-msgid "NIS+ operation failed" +-msgstr "Operação NIS+ falhou" ++#: inet/rcmd.c:215 ++#, c-format ++msgid "Trying %s...\n" ++msgstr "Tentando %s...\n" + +-#: nis/nis_error.c:33 +-msgid "NIS+ servers unreachable" +-msgstr "Servidores NIS+ fora do alcance" ++#: inet/rcmd.c:251 ++#, c-format ++msgid "rcmd: write (setting up stderr): %m\n" ++msgstr "rcmd: write (configurando stderr): %m\n" + +-#: nis/nis_error.c:69 +-msgid "NIS+ service is unavailable or not installed" +-msgstr "Serviço NIS+ está indisponível ou não está instalado" ++#: inet/rcmd.c:267 ++#, c-format ++msgid "rcmd: poll (setting up stderr): %m\n" ++msgstr "rcmd: poll (configurando stderr): %m\n" + +-#: nis/nis_print.c:108 +-msgid "NO OBJECT\n" +-msgstr "SEM OBJETO\n" ++#: inet/rcmd.c:270 ++msgid "poll: protocol failure in circuit setup\n" ++msgstr "poll: falha de protocolo na configuração do circuito\n" + +-#: nscd/nscd.c:81 +-msgid "NUMBER" +-msgstr "NÚMERO" ++#: inet/rcmd.c:302 ++msgid "socket: protocol failure in circuit setup\n" ++msgstr "socket: falha de protocolo na configuração do circuito\n" + +-#: nis/nis_print.c:162 ++#: inet/rcmd.c:326 + #, c-format +-msgid "Name : '%s'\n" +-msgstr "Nome : `%s'\n" ++msgid "rcmd: %s: short read" ++msgstr "rcmd: %s: leitura insuficiente" + +-#: nscd/nscd.c:88 +-msgid "Name Service Cache Daemon." +-msgstr "Servidor de Cache de Nomes." ++#: inet/rcmd.c:478 ++msgid "lstat failed" ++msgstr "lstat falhou" + +-#: nis/nis_error.c:40 +-msgid "Name not served by this server" +-msgstr "Nome não servidor por este servidor" ++#: inet/rcmd.c:485 ++msgid "cannot open" ++msgstr "não foi possível abrir" + +-#: stdio-common/../sysdeps/gnu/errlist.c:758 +-msgid "Name not unique on network" +-msgstr "O nome não é único na rede" ++#: inet/rcmd.c:487 ++msgid "fstat failed" ++msgstr "fstat falhou" + +-#: posix/../sysdeps/posix/gai_strerror.c:37 +-msgid "Name or service not known" +-msgstr "Nome ou serviço desconhecido" ++#: inet/rcmd.c:489 ++msgid "bad owner" ++msgstr "dono inválido" + +-#: nis/nis_error.c:49 +-msgid "Name/entry isn't unique" +-msgstr "Nome/entrada não é único" ++#: inet/rcmd.c:491 ++msgid "writeable by other than owner" ++msgstr "permissão de escrita para outros" + +-#: nis/nis_error.c:58 +-msgid "Named object is not searchable" +-msgstr "Objeto nomeado não é pesquisável" ++#: inet/rcmd.c:493 ++msgid "hard linked somewhere" ++msgstr "link absoluto em algum lugar" + +-#. TRANS ??? +-#: stdio-common/../sysdeps/gnu/errlist.c:566 +-msgid "Need authenticator" +-msgstr "É necessário um autenticador" ++#: inet/ruserpass.c:165 inet/ruserpass.c:188 ++msgid "out of memory" ++msgstr "memória insuficiente" + +-#. TRANS A network connection was reset because the remote host crashed. +-#: stdio-common/../sysdeps/gnu/errlist.c:389 +-msgid "Network dropped connection on reset" +-msgstr "A rede desconectou-se ao resetar" ++#: inet/ruserpass.c:179 ++msgid "Error: .netrc file is readable by others." ++msgstr "Erro: arquivo .netrc é legível por outros." + +-#. TRANS A socket operation failed because the network was down. +-#: stdio-common/../sysdeps/gnu/errlist.c:378 +-msgid "Network is down" +-msgstr "A rede não responde" ++#: inet/ruserpass.c:180 ++msgid "Remove password or make file unreadable by others." ++msgstr "Remove a senha ou torne arquivo não-legível por outros." + +-#. TRANS A socket operation failed because the subnet containing the remote host +-#. TRANS was unreachable. +-#: stdio-common/../sysdeps/gnu/errlist.c:384 +-msgid "Network is unreachable" +-msgstr "A rede está fora de alcance" ++#: inet/ruserpass.c:199 ++#, c-format ++msgid "Unknown .netrc keyword %s" ++msgstr "Palavra-chave em .netrc desconhecida %s" + +-#: stdio-common/../sysdeps/gnu/errlist.c:694 +-msgid "No CSI structure available" +-msgstr "Não há estrutura CSI disponível" ++#: libidn/nfkc.c:463 ++msgid "Character out of range for UTF-8" ++msgstr "Caractere fora do limite para UTF-8" + +-#: stdio-common/../sysdeps/gnu/errlist.c:802 +-msgid "No XENIX semaphores available" +-msgstr "Não há semáforos XENIX disponíveis" ++#: locale/programs/charmap-dir.c:56 ++#, c-format ++msgid "cannot read character map directory `%s'" ++msgstr "não é possível ler diretório de mapa de caracteres “%s”" + +-#: posix/../sysdeps/posix/gai_strerror.c:36 +-msgid "No address associated with hostname" +-msgstr "Não há endereço associado com o nome" ++#: locale/programs/charmap.c:138 ++#, c-format ++msgid "character map file `%s' not found" ++msgstr "arquivo de mapa de caracteres “%s” não foi localizado" + +-#: resolv/herror.c:77 +-msgid "No address associated with name" +-msgstr "Não há endereço associado com o nome" ++#: locale/programs/charmap.c:196 ++#, c-format ++msgid "default character map file `%s' not found" ++msgstr "arquivo padrão de mapa de caracteres “%s” não localizado" + +-#: stdio-common/../sysdeps/gnu/errlist.c:714 +-msgid "No anode" +-msgstr "Sem anode" ++#: locale/programs/charmap.c:265 ++#, c-format ++msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant [--no-warnings=ascii]" ++msgstr "mapa de caracteres “%s” não é compatível com ASCII; localidade não é compatível com C ISO [--no-warnings=ascii]" + +-#. TRANS The kernel's buffers for I/O operations are all in use. In GNU, this +-#. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the +-#. TRANS other from network operations. +-#: stdio-common/../sysdeps/gnu/errlist.c:408 +-msgid "No buffer space available" +-msgstr "Não há espaço de buffer disponível" ++#: locale/programs/charmap.c:343 ++#, c-format ++msgid "%s: must be greater than \n" ++msgstr "%s: deve ser maior que \n" + +-#. TRANS There are no child processes. This error happens on operations that are +-#. TRANS supposed to manipulate child processes, when there aren't any processes +-#. TRANS to manipulate. +-#: stdio-common/../sysdeps/gnu/errlist.c:89 +-msgid "No child processes" +-msgstr "Não há processos filhos" ++#: locale/programs/charmap.c:363 locale/programs/charmap.c:380 ++#: locale/programs/repertoire.c:173 ++#, c-format ++msgid "syntax error in prolog: %s" ++msgstr "erro de sintaxe em prolog: %s" + +-#: stdio-common/../sysdeps/gnu/errlist.c:634 +-msgid "No data available" +-msgstr "Não há dados disponíveis" ++#: locale/programs/charmap.c:364 ++msgid "invalid definition" ++msgstr "definição inválida" + +-#: nis/nis_error.c:73 +-msgid "No file space on server" +-msgstr "Não há espaço disponível no servidor" ++#: locale/programs/charmap.c:381 locale/programs/locfile.c:131 ++#: locale/programs/locfile.c:158 locale/programs/repertoire.c:174 ++msgid "bad argument" ++msgstr "argumento inválido" + +-#. TRANS No locks available. This is used by the file locking facilities; see +-#. TRANS @ref{File Locks}. This error is never generated by the GNU system, but +-#. TRANS it can result from an operation to an NFS server running another +-#. TRANS operating system. +-#: stdio-common/../sysdeps/gnu/errlist.c:547 +-msgid "No locks available" +-msgstr "Não há locks disponíveis" ++#: locale/programs/charmap.c:408 ++#, c-format ++msgid "duplicate definition of <%s>" ++msgstr "definição duplicada de <%s>" + +-#: posix/regex.c:1013 +-msgid "No match" +-msgstr "Não confere" ++#: locale/programs/charmap.c:415 ++#, c-format ++msgid "value for <%s> must be 1 or greater" ++msgstr "o valor para <%s> deve ser 1 ou maior" + +-#: stdio-common/../sysdeps/gnu/errlist.c:814 +-msgid "No medium found" +-msgstr "Mídia não encontrada" ++#: locale/programs/charmap.c:427 ++#, c-format ++msgid "value of <%s> must be greater or equal than the value of <%s>" ++msgstr "o valor de <%s> deve ser maior ou igual ao valor de <%s>" + +-#: stdio-common/../sysdeps/gnu/errlist.c:642 +-msgid "No message of desired type" +-msgstr "Não há mensagens do tipo desejado" ++#: locale/programs/charmap.c:450 locale/programs/repertoire.c:182 ++#, c-format ++msgid "argument to <%s> must be a single character" ++msgstr "o argumento para <%s> deve ser um caractere simples" + +-#: nis/ypclnt.c:779 +-msgid "No more records in map database" +-msgstr "Não há mais registros no banco de dados map" ++#: locale/programs/charmap.c:476 ++msgid "character sets with locking states are not supported" ++msgstr "não há suporte a conjuntos de caracteres com estados de trava" + +-#: posix/regex.c:5515 +-msgid "No previous regular expression" +-msgstr "Não há expressão regular anterior" ++#: locale/programs/charmap.c:503 locale/programs/charmap.c:557 ++#: locale/programs/charmap.c:589 locale/programs/charmap.c:683 ++#: locale/programs/charmap.c:738 locale/programs/charmap.c:779 ++#: locale/programs/charmap.c:820 ++#, c-format ++msgid "syntax error in %s definition: %s" ++msgstr "erro de sintaxe na definição %s: %s" + +-#: sunrpc/rpcinfo.c:570 +-msgid "No remote programs registered.\n" +-msgstr "Não há programas remotos registrados.\n" ++#: locale/programs/charmap.c:504 locale/programs/charmap.c:684 ++#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229 ++msgid "no symbolic name given" ++msgstr "nenhum nome simbólico dado" + +-#. TRANS The remote host for a requested network connection is not reachable. +-#: stdio-common/../sysdeps/gnu/errlist.c:474 +-msgid "No route to host" +-msgstr "Não há rota para o host" ++#: locale/programs/charmap.c:558 ++msgid "invalid encoding given" ++msgstr "codificação inválida dada" + +-#. TRANS No space left on device; write operation on a file failed because the +-#. TRANS disk is full. +-#: stdio-common/../sysdeps/gnu/errlist.c:208 +-msgid "No space left on device" +-msgstr "Não há espaço disponível no dispositivo" ++#: locale/programs/charmap.c:567 ++msgid "too few bytes in character encoding" ++msgstr "poucos bytes na codificação do caractere" + +-#. TRANS The wrong type of device was given to a function that expects a +-#. TRANS particular sort of device. +-#: stdio-common/../sysdeps/gnu/errlist.c:147 +-msgid "No such device" +-msgstr "Dispositivo inexistente" ++#: locale/programs/charmap.c:569 ++msgid "too many bytes in character encoding" ++msgstr "muitos bytes na codificação do caractere" + +-#. TRANS No such file or directory. This is a ``file doesn't exist'' error +-#. TRANS for ordinary files that are referenced in contexts where they are +-#. TRANS expected to already exist. +-#: stdio-common/../sysdeps/gnu/errlist.c:31 +-msgid "No such file or directory" +-msgstr "Arquivo ou diretório não encontrado" ++#: locale/programs/charmap.c:591 locale/programs/charmap.c:739 ++#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295 ++msgid "no symbolic name given for end of range" ++msgstr "nenhum nome simbólico dado para fim do intervalo" ++ ++#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524 ++#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774 ++#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829 ++#: locale/programs/ld-identification.c:397 ++#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295 ++#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262 ++#: locale/programs/ld-numeric.c:325 locale/programs/ld-paper.c:212 ++#: locale/programs/ld-telephone.c:276 locale/programs/ld-time.c:934 ++#: locale/programs/repertoire.c:312 ++#, c-format ++msgid "%1$s: definition does not end with `END %1$s'" ++msgstr "%1$s: definição não termina com “END %1$s”" ++ ++#: locale/programs/charmap.c:648 ++msgid "only WIDTH definitions are allowed to follow the CHARMAP definition" ++msgstr "apenas definições de WIDTH são permitidas em seguida à definição de CHARMAP" + +-#: nis/ypclnt.c:773 +-msgid "No such key in map" +-msgstr "Chave no está no mapa" ++#: locale/programs/charmap.c:656 locale/programs/charmap.c:719 ++#, c-format ++msgid "value for %s must be an integer" ++msgstr "o valor para %s deve ser um inteiro" + +-#: nis/ypclnt.c:771 +-msgid "No such map in server's domain" +-msgstr "Mapa não encontrado no domínio do servidor" ++#: locale/programs/charmap.c:847 ++#, c-format ++msgid "%s: error in state machine" ++msgstr "%s: erro na máquina de estados" ++ ++#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540 ++#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967 ++#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846 ++#: locale/programs/ld-identification.c:413 ++#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311 ++#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278 ++#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228 ++#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:950 ++#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323 ++#, c-format ++msgid "%s: premature end of file" ++msgstr "%s: fim de arquivo prematuro" + +-#. TRANS No process matches the specified process ID. +-#: stdio-common/../sysdeps/gnu/errlist.c:36 +-msgid "No such process" +-msgstr "Processo inexistente" ++#: locale/programs/charmap.c:874 locale/programs/charmap.c:885 ++#, c-format ++msgid "unknown character `%s'" ++msgstr "caractere desconhecido “%s”" ++ ++#: locale/programs/charmap.c:893 ++#, c-format ++msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" ++msgstr "número de bytes para a sequência de bytes de começo e término de intervalo não é o mesmo: %d vs %d" ++ ++#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893 ++#: locale/programs/repertoire.c:418 ++msgid "invalid names for character range" ++msgstr "nomes inválidos para intervalo de caracteres" ++ ++#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430 ++msgid "hexadecimal range format should use only capital characters" ++msgstr "formato de intervalo hexadecimal deve usar apenas caracteres maiúsculos" ++ ++#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448 ++#, c-format ++msgid "<%s> and <%s> are invalid names for range" ++msgstr "<%s> e <%s> são nomes inválidos para o intervalo" ++ ++#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455 ++msgid "upper limit in range is smaller than lower limit" ++msgstr "o limite superior do intervalo é menor que o limite inferior" ++ ++#: locale/programs/charmap.c:1092 ++msgid "resulting bytes for range not representable." ++msgstr "bytes resultantes para o intervalo não representáveis." ++ ++#: locale/programs/ld-address.c:133 locale/programs/ld-collate.c:1563 ++#: locale/programs/ld-ctype.c:430 locale/programs/ld-identification.c:131 ++#: locale/programs/ld-measurement.c:92 locale/programs/ld-messages.c:96 ++#: locale/programs/ld-monetary.c:192 locale/programs/ld-name.c:93 ++#: locale/programs/ld-numeric.c:97 locale/programs/ld-paper.c:89 ++#: locale/programs/ld-telephone.c:92 locale/programs/ld-time.c:158 ++#, c-format ++msgid "No definition for %s category found" ++msgstr "Nenhuma definição para a categoria %s localizada" ++ ++#: locale/programs/ld-address.c:144 locale/programs/ld-address.c:182 ++#: locale/programs/ld-address.c:199 locale/programs/ld-address.c:228 ++#: locale/programs/ld-address.c:300 locale/programs/ld-address.c:319 ++#: locale/programs/ld-address.c:331 locale/programs/ld-identification.c:144 ++#: locale/programs/ld-measurement.c:103 locale/programs/ld-monetary.c:204 ++#: locale/programs/ld-monetary.c:258 locale/programs/ld-monetary.c:274 ++#: locale/programs/ld-monetary.c:286 locale/programs/ld-name.c:104 ++#: locale/programs/ld-name.c:141 locale/programs/ld-numeric.c:111 ++#: locale/programs/ld-numeric.c:125 locale/programs/ld-paper.c:100 ++#: locale/programs/ld-paper.c:109 locale/programs/ld-telephone.c:103 ++#: locale/programs/ld-telephone.c:160 locale/programs/ld-time.c:174 ++#: locale/programs/ld-time.c:195 ++#, c-format ++msgid "%s: field `%s' not defined" ++msgstr "%s: campo “%s” não definido" + +-#: nis/nis_error.c:60 +-msgid "Non NIS+ namespace encountered" +-msgstr "Namespace NIS+ não encontrado" ++#: locale/programs/ld-address.c:156 locale/programs/ld-address.c:207 ++#: locale/programs/ld-address.c:237 locale/programs/ld-address.c:275 ++#: locale/programs/ld-name.c:116 locale/programs/ld-telephone.c:115 ++#, c-format ++msgid "%s: field `%s' must not be empty" ++msgstr "%s: campo “%s” não pode estar vazio" + +-#: posix/../sysdeps/posix/gai_strerror.c:33 +-msgid "Non-recoverable failure in name resolution" +-msgstr "Falha irrecuperável na resolução de nome" ++#: locale/programs/ld-address.c:168 ++#, c-format ++msgid "%s: invalid escape `%%%c' sequence in field `%s'" ++msgstr "%s: sequência de escape “%%%c” inválida no campo “%s”" + +-#: nis/nis_print.c:176 +-msgid "None.\n" +-msgstr "nenhum.\n" ++#: locale/programs/ld-address.c:218 ++#, c-format ++msgid "%s: terminology language code `%s' not defined" ++msgstr "%s: código de idioma de terminologia “%s” não definido" + +-#: nis/nis_error.c:48 +-msgid "Not Found, no such name" +-msgstr "Não encontrado, nome inexistente" ++#: locale/programs/ld-address.c:243 ++#, c-format ++msgid "%s: field `%s' must not be defined" ++msgstr "%s: campo “%s” não pode estar definido" + +-#: stdio-common/../sysdeps/gnu/errlist.c:798 +-msgid "Not a XENIX named type file" +-msgstr "Não é um arquivo nomeável XENIX" ++#: locale/programs/ld-address.c:257 locale/programs/ld-address.c:286 ++#, c-format ++msgid "%s: language abbreviation `%s' not defined" ++msgstr "%s: abreviação de idioma “%s” não definida" + +-#. TRANS A file that isn't a directory was specified when a directory is required. +-#: stdio-common/../sysdeps/gnu/errlist.c:152 +-msgid "Not a directory" +-msgstr "Não é um diretório" ++#: locale/programs/ld-address.c:264 locale/programs/ld-address.c:292 ++#: locale/programs/ld-address.c:325 locale/programs/ld-address.c:337 ++#, c-format ++msgid "%s: `%s' value does not match `%s' value" ++msgstr "%s: o valor “%s” não corresponde ao valor “%s”" + +-#: nis/nis_error.c:30 +-msgid "Not found" +-msgstr "Não encontrado" ++#: locale/programs/ld-address.c:311 ++#, c-format ++msgid "%s: numeric country code `%d' not valid" ++msgstr "%s: código numérico do país “%d” não válido" + +-#: nis/nis_error.c:43 +-msgid "Not master server for this domain" +-msgstr "Não é um servidor mestre para este domínio" ++#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469 ++#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478 ++#: locale/programs/ld-identification.c:309 ++#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264 ++#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538 ++#: locale/programs/ld-monetary.c:579 locale/programs/ld-name.c:235 ++#: locale/programs/ld-numeric.c:217 locale/programs/ld-paper.c:195 ++#: locale/programs/ld-telephone.c:251 locale/programs/ld-time.c:839 ++#: locale/programs/ld-time.c:881 ++#, c-format ++msgid "%s: field `%s' declared more than once" ++msgstr "%s: campo “%s” declarado mais de uma vez" + +-#: nis/nis_error.c:39 +-msgid "Not owner" +-msgstr "Dono inválido" ++#: locale/programs/ld-address.c:436 locale/programs/ld-address.c:474 ++#: locale/programs/ld-identification.c:313 locale/programs/ld-messages.c:274 ++#: locale/programs/ld-monetary.c:507 locale/programs/ld-monetary.c:542 ++#: locale/programs/ld-name.c:239 locale/programs/ld-numeric.c:221 ++#: locale/programs/ld-telephone.c:255 locale/programs/ld-time.c:733 ++#: locale/programs/ld-time.c:802 locale/programs/ld-time.c:844 ++#, c-format ++msgid "%s: unknown character in field `%s'" ++msgstr "%s: caractere desconhecido no campo “%s”" + +-#: nis/nis_print.c:263 ++#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772 ++#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394 ++#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293 ++#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260 ++#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210 ++#: locale/programs/ld-telephone.c:274 locale/programs/ld-time.c:932 + #, c-format +-msgid "Number of Columns : %d\n" +-msgstr "Número de Colunas : %d\n" ++msgid "%s: incomplete `END' line" ++msgstr "%s: linha “END” incompleta" + +-#: nis/nis_print.c:358 ++#: locale/programs/ld-address.c:531 locale/programs/ld-collate.c:550 ++#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898 ++#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582 ++#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957 ++#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104 ++#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837 ++#: locale/programs/ld-identification.c:404 ++#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302 ++#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269 ++#: locale/programs/ld-numeric.c:332 locale/programs/ld-paper.c:219 ++#: locale/programs/ld-telephone.c:283 locale/programs/ld-time.c:941 + #, c-format +-msgid "Number of objects : %u\n" +-msgstr "Número de objetos : %u\n" ++msgid "%s: syntax error" ++msgstr "%s: erro de sintaxe" + +-#. TRANS Domain error; used by mathematical functions when an argument value does +-#. TRANS not fall into the domain over which the function is defined. +-#: stdio-common/../sysdeps/gnu/errlist.c:240 +-msgid "Numerical argument out of domain" +-msgstr "Argumento numérico fora de domínio" ++#: locale/programs/ld-collate.c:425 ++#, c-format ++msgid "`%.*s' already defined in charmap" ++msgstr "“%.*s” já definido no mapa de caracteres" + +-#. TRANS Range error; used by mathematical functions when the result value is +-#. TRANS not representable because of overflow or underflow. +-#: stdio-common/../sysdeps/gnu/errlist.c:246 +-msgid "Numerical result out of range" +-msgstr "Resultado numérico fora de alcance" ++#: locale/programs/ld-collate.c:434 ++#, c-format ++msgid "`%.*s' already defined in repertoire" ++msgstr "“%.*s” já definido no repertório" + +-#: nis/nis_print.c:362 ++#: locale/programs/ld-collate.c:441 + #, c-format +-msgid "Object #%d:\n" +-msgstr "Objeto #%d:\n" ++msgid "`%.*s' already defined as collating symbol" ++msgstr "“%.*s” já definido como símbolo de comparação" + +-#: nis/nis_print.c:314 ++#: locale/programs/ld-collate.c:448 + #, c-format +-msgid "Object Name : %s\n" +-msgstr "Nome do Objeto: %s\n" ++msgid "`%.*s' already defined as collating element" ++msgstr "“%.*s” já definido como elemento de comparação" + +-#: nis/nis_print.c:324 +-msgid "Object Type : " +-msgstr "Tipo do Objeto: " ++#: locale/programs/ld-collate.c:479 locale/programs/ld-collate.c:505 ++#, c-format ++msgid "%s: `forward' and `backward' are mutually excluding each other" ++msgstr "%s: “forward” e “backward” são mutuamente exclusivas entre si" + +-#. TRANS An attempt was made to NFS-mount a remote file system with a file name that +-#. TRANS already specifies an NFS-mounted file. +-#. TRANS (This is an error on some operating systems, but we expect it to work +-#. TRANS properly on the GNU system, making this error code impossible.) +-#: stdio-common/../sysdeps/gnu/errlist.c:514 +-msgid "Object is remote" +-msgstr "Objeto é remoto" ++#: locale/programs/ld-collate.c:489 locale/programs/ld-collate.c:515 ++#: locale/programs/ld-collate.c:531 ++#, c-format ++msgid "%s: `%s' mentioned more than once in definition of weight %d" ++msgstr "%s: “%s” mencionado mais de uma vez na definição de peso %d" + +-#: nis/nis_error.c:42 +-msgid "Object with same name exists" +-msgstr "Objeto com o mesmo nome existe" ++#: locale/programs/ld-collate.c:587 ++#, c-format ++msgid "%s: too many rules; first entry only had %d" ++msgstr "%s: número excessivo de regras; a primeira entrada tinha apenas %d" + +-#: timezone/zic.c:1995 +-msgid "Odd number of quotation marks" +-msgstr "Número ímpar de aspas" ++#: locale/programs/ld-collate.c:623 ++#, c-format ++msgid "%s: not enough sorting rules" ++msgstr "%s: número insuficiente de regras de ordenação" + +-#: nscd/nscd.c:185 +-msgid "Only root is allowed to use this option!" +-msgstr "Somente o superusuário pode usar esta opção!" ++#: locale/programs/ld-collate.c:788 ++#, c-format ++msgid "%s: empty weight string not allowed" ++msgstr "%s: texto de peso vazio não permitida" + +-#. TRANS An operation is already in progress on an object that has non-blocking +-#. TRANS mode selected. +-#: stdio-common/../sysdeps/gnu/errlist.c:306 +-msgid "Operation already in progress" +-msgstr "Operação já em progresso" ++#: locale/programs/ld-collate.c:883 ++#, c-format ++msgid "%s: weights must use the same ellipsis symbol as the name" ++msgstr "%s: pesos devem usar o mesmo símbolo de elipse que o nome" + +-#. TRANS Operation not permitted; only the owner of the file (or other resource) +-#. TRANS or processes with special privileges can perform the operation. +-#: stdio-common/../sysdeps/gnu/errlist.c:24 +-msgid "Operation not permitted" +-msgstr "Operação não permitida" ++#: locale/programs/ld-collate.c:939 ++#, c-format ++msgid "%s: too many values" ++msgstr "%s: número excessivo de valores" + +-#. TRANS The operation you requested is not supported. Some socket functions +-#. TRANS don't make sense for all types of sockets, and others may not be +-#. TRANS implemented for all communications protocols. In the GNU system, this +-#. TRANS error can happen for many calls when the object does not support the +-#. TRANS particular operation; it is a generic indication that the server knows +-#. TRANS nothing to do for that call. +-#: stdio-common/../sysdeps/gnu/errlist.c:350 +-msgid "Operation not supported" +-msgstr "Operação não suportada " ++#: locale/programs/ld-collate.c:1059 locale/programs/ld-collate.c:1234 ++#, c-format ++msgid "order for `%.*s' already defined at %s:%Zu" ++msgstr "ordem para “%.*s” já definida em %s:%Zu" + +-#. TRANS An operation that cannot complete immediately was initiated on an object +-#. TRANS that has non-blocking mode selected. Some functions that must always +-#. TRANS block (such as @code{connect}; @pxref{Connecting}) never return +-#. TRANS @code{EAGAIN}. Instead, they return @code{EINPROGRESS} to indicate that +-#. TRANS the operation has begun and will take some time. Attempts to manipulate +-#. TRANS the object before the call completes return @code{EALREADY}. You can +-#. TRANS use the @code{select} function to find out when the pending operation +-#. TRANS has completed; @pxref{Waiting for I/O}. +-#: stdio-common/../sysdeps/gnu/errlist.c:300 +-msgid "Operation now in progress" +-msgstr "Operação agora em progresso" ++#: locale/programs/ld-collate.c:1109 ++#, c-format ++msgid "%s: the start and the end symbol of a range must stand for characters" ++msgstr "%s: o símbolo de início e terminação de um intervalo deve representar caracteres" + +-#. TRANS In the GNU C library, this is another name for @code{EAGAIN} (above). +-#. TRANS The values are always the same, on every operating system. +-#. TRANS +-#. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a +-#. TRANS separate error code. +-#: stdio-common/../sysdeps/gnu/errlist.c:288 +-msgid "Operation would block" +-msgstr "Operation causaria bloqueio" ++#: locale/programs/ld-collate.c:1136 ++#, c-format ++msgid "%s: byte sequences of first and last character must have the same length" ++msgstr "%s: sequências de byte de primeiro e último caractere deve ter o mesmo comprimento" + +-#: stdio-common/../sysdeps/gnu/errlist.c:646 +-msgid "Out of streams resources" +-msgstr "Sem recursos de streams" ++#: locale/programs/ld-collate.c:1178 ++#, c-format ++msgid "%s: byte sequence of first character of range is not lower than that of the last character" ++msgstr "%s: sequência de byte do primeiro caractere de intervalo não é menor que aquele do último caractere" + +-#: iconv/iconv_prog.c:59 locale/programs/localedef.c:101 +-msgid "Output control:" +-msgstr "Controle de Saída:" ++#: locale/programs/ld-collate.c:1303 ++#, c-format ++msgid "%s: symbolic range ellipsis must not directly follow `order_start'" ++msgstr "%s: elipse de intervalo simbólico não pode seguir diretamente “order_start”" + +-#: elf/sprof.c:76 +-msgid "Output selection:" +-msgstr "Seleção de Saída:" ++#: locale/programs/ld-collate.c:1307 ++#, c-format ++msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" ++msgstr "%s: elipse de intervalo simbólico não pode estar seguido diretamente por “order_end”" + +-#: nis/nis_print.c:316 ++#: locale/programs/ld-collate.c:1327 locale/programs/ld-ctype.c:1363 + #, c-format +-msgid "Owner : %s\n" +-msgstr "Dono : %s\n" ++msgid "`%s' and `%.*s' are not valid names for symbolic range" ++msgstr "“%s” e “%.*s” não são nomes válidos para intervalo simbólico" + +-#: nis/nis_print.c:126 +-msgid "PRIVATE\n" +-msgstr "PRIVADO\n" ++#: locale/programs/ld-collate.c:1377 locale/programs/ld-collate.c:3708 ++#, c-format ++msgid "%s: order for `%.*s' already defined at %s:%Zu" ++msgstr "%s: ordem para “%.*s” já definida em %s:%Zu" + +-#: stdio-common/../sysdeps/gnu/errlist.c:738 +-msgid "Package not installed" +-msgstr "Pacote não instalado" ++#: locale/programs/ld-collate.c:1386 ++#, c-format ++msgid "%s: `%s' must be a character" ++msgstr "%s: “%s” deve ser um caractere" + +-#: nscd/nscd_conf.c:84 ++#: locale/programs/ld-collate.c:1580 + #, c-format +-msgid "Parse error: %s" +-msgstr "Erro de verificação (parser): %s" ++msgid "%s: `position' must be used for a specific level in all sections or none" ++msgstr "%s: “position” deve ser usado para um nível específico em todas as seções ou nenhuma" + +-#: nis/nis_error.c:54 +-msgid "Partial Success" +-msgstr "Sucesso Parcial" ++#: locale/programs/ld-collate.c:1604 ++#, c-format ++msgid "symbol `%s' not defined" ++msgstr "símbolo “%s” não definido" + +-#: nis/nis_error.c:62 +-msgid "Passed object is not the same object on server" +-msgstr "Objeto passado não é o mesmo objeto no servidor" ++#: locale/programs/ld-collate.c:1680 locale/programs/ld-collate.c:1785 ++#, c-format ++msgid "symbol `%s' has the same encoding as" ++msgstr "o símbolo “%s” possui a mesma codificação que" + +-#. TRANS Permission denied; the file permissions do not allow the attempted operation. +-#: nis/nis_error.c:38 nis/ypclnt.c:793 +-#: stdio-common/../sysdeps/gnu/errlist.c:108 +-msgid "Permission denied" +-msgstr "Permissão negada" ++#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1789 ++#, c-format ++msgid "symbol `%s'" ++msgstr "símbolo “%s”" + +-#: sysdeps/unix/sysv/linux/siglist.h:64 +-msgid "Power failure" +-msgstr "Falha de energia" ++#: locale/programs/ld-collate.c:1852 ++msgid "too many errors; giving up" ++msgstr "número excessivo de erros; desistindo" + +-#: posix/regex.c:1026 +-msgid "Premature end of regular expression" +-msgstr "Fim prematuro da expressão regular" ++#: locale/programs/ld-collate.c:2508 locale/programs/ld-collate.c:3896 ++#, c-format ++msgid "%s: nested conditionals not supported" ++msgstr "%s: condicionais aninhados sem suporte" + +-#: db2/makedb.c:63 +-msgid "Print content of database file, one entry a line" +-msgstr "Mostra o conteúdo da base de dados do arquivo, um entrada por linha" ++#: locale/programs/ld-collate.c:2526 ++#, c-format ++msgid "%s: more than one 'else'" ++msgstr "%s: mais que um “else”" + +-#: nscd/nscd.c:83 +-msgid "Print current configuration statistic" +-msgstr "Mostra estatística da configuração atual" ++#: locale/programs/ld-collate.c:2701 ++#, c-format ++msgid "%s: duplicate definition of `%s'" ++msgstr "%s: definição duplicada de “%s”" + +-#: locale/programs/localedef.c:107 +-msgid "Print more messages" +-msgstr "Mostra mais mensagens" ++#: locale/programs/ld-collate.c:2737 ++#, c-format ++msgid "%s: duplicate declaration of section `%s'" ++msgstr "%s: declaração duplicada da seção “%s”" + +-#: argp/argp-parse.c:148 +-msgid "Print program version" +-msgstr "Mostra versão do programa" ++#: locale/programs/ld-collate.c:2873 ++#, c-format ++msgid "%s: unknown character in collating symbol name" ++msgstr "%s: caractere desconhecido no nome de símbolo de comparação" + +-#: nis/nis_error.c:29 +-msgid "Probable success" +-msgstr "Sucesso provável" ++#: locale/programs/ld-collate.c:3002 ++#, c-format ++msgid "%s: unknown character in equivalent definition name" ++msgstr "%s: caractere desconhecido no nome de definição equivalente" + +-#: nis/nis_error.c:31 +-msgid "Probably not found" +-msgstr "Provavelmente não encontrado" ++#: locale/programs/ld-collate.c:3013 ++#, c-format ++msgid "%s: unknown character in equivalent definition value" ++msgstr "%s: caractere desconhecido no valor de definição equivalente" + +-#: stdio-common/../sysdeps/unix/siglist.c:52 +-#: sysdeps/unix/sysv/linux/siglist.h:46 +-msgid "Profiling timer expired" +-msgstr "Tempo expirado para profiling" ++#: locale/programs/ld-collate.c:3023 ++#, c-format ++msgid "%s: unknown symbol `%s' in equivalent definition" ++msgstr "%s: símbolo desconhecido “%s” na definição equivalente" + +-#: stdio-common/../sysdeps/gnu/errlist.c:690 +-msgid "Protocol driver not attached" +-msgstr "Driver de protocolo não anexado" ++#: locale/programs/ld-collate.c:3032 ++msgid "error while adding equivalent collating symbol" ++msgstr "erro ao adicionar símbolo de colação equivalente" + +-#: stdio-common/../sysdeps/gnu/errlist.c:658 +-msgid "Protocol error" +-msgstr "Erro de protocolo" ++#: locale/programs/ld-collate.c:3070 ++#, c-format ++msgid "duplicate definition of script `%s'" ++msgstr "definição duplicada de script “%s”" + +-#. TRANS The socket communications protocol family you requested is not supported. +-#: stdio-common/../sysdeps/gnu/errlist.c:355 +-msgid "Protocol family not supported" +-msgstr "Família de protocolo não suportada" ++#: locale/programs/ld-collate.c:3118 ++#, c-format ++msgid "%s: unknown section name `%.*s'" ++msgstr "%s: nome de seção desconhecida “%.*s”" + +-#. TRANS You specified a socket option that doesn't make sense for the +-#. TRANS particular protocol being used by the socket. @xref{Socket Options}. +-#: stdio-common/../sysdeps/gnu/errlist.c:328 +-msgid "Protocol not available" +-msgstr "Protocolo não disponível" ++#: locale/programs/ld-collate.c:3147 ++#, c-format ++msgid "%s: multiple order definitions for section `%s'" ++msgstr "%s: múltiplas definições de ordem para a seção “%s”" + +-#. TRANS The socket domain does not support the requested communications protocol +-#. TRANS (perhaps because the requested protocol is completely invalid). +-#. TRANS @xref{Creating a Socket}. +-#: stdio-common/../sysdeps/gnu/errlist.c:335 +-msgid "Protocol not supported" +-msgstr "Protocolo não suportado" ++#: locale/programs/ld-collate.c:3175 ++#, c-format ++msgid "%s: invalid number of sorting rules" ++msgstr "%s: número inválido de regras de ordenação" + +-#. TRANS The socket type does not support the requested communications protocol. +-#: stdio-common/../sysdeps/gnu/errlist.c:322 +-msgid "Protocol wrong type for socket" +-msgstr "Tipo errado de protocolo para socket" ++#: locale/programs/ld-collate.c:3202 ++#, c-format ++msgid "%s: multiple order definitions for unnamed section" ++msgstr "%s: múltiplas definições de ordem para seção sem nome" + +-#: nis/nis_error.c:64 +-msgid "Query illegal for named table" +-msgstr "Pergunta ilegal para tabela nominada" ++#: locale/programs/ld-collate.c:3257 locale/programs/ld-collate.c:3387 ++#: locale/programs/ld-collate.c:3750 ++#, c-format ++msgid "%s: missing `order_end' keyword" ++msgstr "%s: faltando palavra-chave “order_end”" + +-#: stdio-common/../sysdeps/unix/siglist.c:28 +-#: sysdeps/unix/sysv/linux/siglist.h:24 +-msgid "Quit" +-msgstr "Sair" ++#: locale/programs/ld-collate.c:3320 ++#, c-format ++msgid "%s: order for collating symbol %.*s not yet defined" ++msgstr "%s: ordem para símbolo de comparação %.*s ainda não definida" + +-#: stdio-common/../sysdeps/gnu/errlist.c:754 +-msgid "RFS specific error" +-msgstr "Erro específico de RFS" ++#: locale/programs/ld-collate.c:3338 ++#, c-format ++msgid "%s: order for collating element %.*s not yet defined" ++msgstr "%s: ordem para elemento de comparação %.*s ainda não definida" + +-#. TRANS ??? +-#: stdio-common/../sysdeps/gnu/errlist.c:539 +-msgid "RPC bad procedure for program" +-msgstr "Procedimento RPC ruim para programa" ++#: locale/programs/ld-collate.c:3349 ++#, c-format ++msgid "%s: cannot reorder after %.*s: symbol not known" ++msgstr "%s: não foi possível reordenar após %.*s: símbolo desconhecido" + +-#: nis/ypclnt.c:767 +-msgid "RPC failure on NIS operation" +-msgstr "Falha RPC na operação NIS" ++#: locale/programs/ld-collate.c:3401 locale/programs/ld-collate.c:3762 ++#, c-format ++msgid "%s: missing `reorder-end' keyword" ++msgstr "%s: faltando palavra-chave “reorder-end”" + +-#. TRANS ??? +-#: stdio-common/../sysdeps/gnu/errlist.c:529 +-msgid "RPC program not available" +-msgstr "Programa RPC não disponível" ++#: locale/programs/ld-collate.c:3435 locale/programs/ld-collate.c:3633 ++#, c-format ++msgid "%s: section `%.*s' not known" ++msgstr "%s: seção “%.*s” desconhecida" + +-#. TRANS ??? +-#: stdio-common/../sysdeps/gnu/errlist.c:534 +-msgid "RPC program version wrong" +-msgstr "Versão incorreta de programa RPC" ++#: locale/programs/ld-collate.c:3500 ++#, c-format ++msgid "%s: bad symbol <%.*s>" ++msgstr "%s: símbolo inválido <%.*s>" + +-#. TRANS ??? +-#: stdio-common/../sysdeps/gnu/errlist.c:519 +-msgid "RPC struct is bad" +-msgstr "Estrutura RPC inválida" ++#: locale/programs/ld-collate.c:3696 ++#, c-format ++msgid "%s: cannot have `%s' as end of ellipsis range" ++msgstr "%s: não pode ter “%s” como terminação de intervalo de elipse" + +-#. TRANS ??? +-#: stdio-common/../sysdeps/gnu/errlist.c:524 +-msgid "RPC version wrong" +-msgstr "Versão RPC incorreta" ++#: locale/programs/ld-collate.c:3746 ++#, c-format ++msgid "%s: empty category description not allowed" ++msgstr "%s: descrição vazia para categoria não permitida" + +-#: sunrpc/clnt_perr.c:215 +-msgid "RPC: (unknown error code)" +-msgstr "RPC: (código de erro desconhecido)" ++#: locale/programs/ld-collate.c:3765 ++#, c-format ++msgid "%s: missing `reorder-sections-end' keyword" ++msgstr "%s: faltando palavra-chave “reorder-sections-end”" + +-#: sunrpc/clnt_perr.c:176 +-msgid "RPC: Authentication error" +-msgstr "RPC: Erro de autenticação" ++#: locale/programs/ld-collate.c:3929 ++#, c-format ++msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" ++msgstr "%s: “%s” sem “ifdef” ou “ifndef” correspondente" + +-#: sunrpc/clnt_perr.c:166 +-msgid "RPC: Can't decode result" +-msgstr "RPC: Impossível decodificar resultado" ++#: locale/programs/ld-collate.c:3947 ++#, c-format ++msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" ++msgstr "%s: “endif” sem “ifdef” ou “ifndef” correspondente" + +-#: sunrpc/clnt_perr.c:164 +-msgid "RPC: Can't encode arguments" +-msgstr "RPC: impossível codificar argumentos" ++#: locale/programs/ld-ctype.c:448 ++msgid "No character set name specified in charmap" ++msgstr "Nenhum nome de conjunto de caracteres especificado no mapa de caracteres" + +-#: sunrpc/clnt_perr.c:196 +-msgid "RPC: Failed (unspecified error)" +-msgstr "RPC: Falhou (erro não especificado)" ++#: locale/programs/ld-ctype.c:476 ++#, c-format ++msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" ++msgstr "caractere L“\\u%0*x” na classe “%s” deve estar na classe “%s”" + +-#: sunrpc/clnt_perr.c:174 +-msgid "RPC: Incompatible versions of RPC" +-msgstr "RPC: Versões incompatíveis de RPC" ++#: locale/programs/ld-ctype.c:490 ++#, c-format ++msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" ++msgstr "caractere L“\\u%0*x” na classe “%s” não pode estar na classe “%s”" + +-#: sunrpc/clnt_perr.c:192 +-msgid "RPC: Port mapper failure" +-msgstr "RPC: Falha no Port mapper" ++#: locale/programs/ld-ctype.c:504 locale/programs/ld-ctype.c:560 ++#, c-format ++msgid "internal error in %s, line %u" ++msgstr "erro interno em %s, linha %u" + +-#: sunrpc/clnt_perr.c:182 +-msgid "RPC: Procedure unavailable" +-msgstr "RPC: Procedimento indisponível" ++#: locale/programs/ld-ctype.c:532 ++#, c-format ++msgid "character '%s' in class `%s' must be in class `%s'" ++msgstr "caractere “%s” na classe “%s” deve estar na classe “%s”" + +-#: sunrpc/clnt_perr.c:194 +-msgid "RPC: Program not registered" +-msgstr "RPC: Programa não registrado" ++#: locale/programs/ld-ctype.c:547 ++#, c-format ++msgid "character '%s' in class `%s' must not be in class `%s'" ++msgstr "caractere “%s” na classe “%s” não pode estar na classe “%s”" + +-#: sunrpc/clnt_perr.c:178 +-msgid "RPC: Program unavailable" +-msgstr "RPC: Programa indisponível" ++#: locale/programs/ld-ctype.c:576 locale/programs/ld-ctype.c:611 ++#, c-format ++msgid " character not in class `%s'" ++msgstr " caractere não está na classe “%s”" + +-#: sunrpc/clnt_perr.c:180 +-msgid "RPC: Program/version mismatch" +-msgstr "RPC: Programa/versão incompatíveis" +- +-#: sunrpc/clnt_perr.c:186 +-msgid "RPC: Remote system error" +-msgstr "RPC: Erro remoto de sistema" +- +-#: sunrpc/clnt_perr.c:184 +-msgid "RPC: Server can't decode arguments" +-msgstr "RPC: O servidor não pode decodificar os argumentos" +- +-#: sunrpc/clnt_perr.c:162 +-msgid "RPC: Success" +-msgstr "RPC: Sucesso" ++#: locale/programs/ld-ctype.c:587 locale/programs/ld-ctype.c:621 ++#, c-format ++msgid " character must not be in class `%s'" ++msgstr " caractere não pode estar na classe “%s”" + +-#: sunrpc/clnt_perr.c:172 +-msgid "RPC: Timed out" +-msgstr "RPC: Tempo esgotado" ++#: locale/programs/ld-ctype.c:601 ++msgid "character not defined in character map" ++msgstr "caractere não definido no mapa de caracteres" + +-#: sunrpc/clnt_perr.c:170 +-msgid "RPC: Unable to receive" +-msgstr "RPC: Impossível receber" ++#: locale/programs/ld-ctype.c:735 ++msgid "`digit' category has not entries in groups of ten" ++msgstr "categoria “digit” não possui entradas em grupos de dez" + +-#: sunrpc/clnt_perr.c:168 +-msgid "RPC: Unable to send" +-msgstr "RPC: Impossível enviar" ++#: locale/programs/ld-ctype.c:784 ++msgid "no input digits defined and none of the standard names in the charmap" ++msgstr "nenhum dígito de entrada definido e nenhum dos nomes padrões no mapa de caracteres" + +-#: sunrpc/clnt_perr.c:188 +-msgid "RPC: Unknown host" +-msgstr "RPC: Host desconhecido" ++#: locale/programs/ld-ctype.c:849 ++msgid "not all characters used in `outdigit' are available in the charmap" ++msgstr "nem todos os caracteres usados em “outdigit” estão disponíveis no mapa de caracteres" + +-#: sunrpc/clnt_perr.c:190 +-msgid "RPC: Unknown protocol" +-msgstr "RPC: Protocolo desconhecido" ++#: locale/programs/ld-ctype.c:866 ++msgid "not all characters used in `outdigit' are available in the repertoire" ++msgstr "nem todos os caracteres usados em “outdigit” estão disponíveis no repertório" + +-#: nis/nis_print.c:184 ++#: locale/programs/ld-ctype.c:1131 + #, c-format +-msgid "RSA (%d bits)\n" +-msgstr "RSA (%d bits)\n" ++msgid "character class `%s' already defined" ++msgstr "classe de caractere “%s” já definida" + +-#: elf/dlsym.c:59 elf/dlvsym.c:62 +-msgid "RTLD_NEXT used in code not dynamically loaded" +-msgstr "RTLD_NEXT usado em código não dinamicamente carregado" ++#: locale/programs/ld-ctype.c:1137 ++#, c-format ++msgid "implementation limit: no more than %Zd character classes allowed" ++msgstr "limite de implementação: não são permitidos mais que %Zd classes de caracteres" + +-#: elf/sprof.c:88 +-msgid "Read and display shared object profiling data" +-msgstr "Lê e mostra perfil de dados do objeto compartilhado" ++#: locale/programs/ld-ctype.c:1163 ++#, c-format ++msgid "character map `%s' already defined" ++msgstr "mapa de caracteres “%s” já definido" + +-#: nscd/nscd.c:78 +-msgid "Read configuration data from NAME" +-msgstr "Lê configuração de dados de NOME" ++#: locale/programs/ld-ctype.c:1169 ++#, c-format ++msgid "implementation limit: no more than %d character maps allowed" ++msgstr "limite de implementação: não são permitidos mais que %d mapas de caracteres" + +-#. TRANS An attempt was made to modify something on a read-only file system. +-#: stdio-common/../sysdeps/gnu/errlist.c:218 +-msgid "Read-only file system" +-msgstr "Sistema de arquivos somente para leitura" ++#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559 ++#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341 ++#: locale/programs/ld-ctype.c:3299 ++#, c-format ++msgid "%s: field `%s' does not contain exactly ten entries" ++msgstr "%s: campo “%s” não contém exatamente dez entradas" + +-#: string/strsignal.c:66 ++#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036 + #, c-format +-msgid "Real-time signal %d" +-msgstr "Sinal de tempo-real %d" ++msgid "to-value of range is smaller than from-value " ++msgstr "valor-para de intervalo é menor que o valor-de " + +-#: posix/regex.c:1027 +-msgid "Regular expression too big" +-msgstr "Expressão regular muito longa" ++#: locale/programs/ld-ctype.c:1589 ++msgid "start and end character sequence of range must have the same length" ++msgstr "sequência de caracteres de início e término de intervalo devem ter o mesmo comprimento" + +-#: stdio-common/../sysdeps/gnu/errlist.c:810 +-msgid "Remote I/O error" +-msgstr "Erro de E/S remota" ++#: locale/programs/ld-ctype.c:1596 ++msgid "to-value character sequence is smaller than from-value sequence" ++msgstr "sequência de caracteres do valor-para é menor que a sequência de valor-de" + +-#: stdio-common/../sysdeps/gnu/errlist.c:766 +-msgid "Remote address changed" +-msgstr "Endereço remoto alterado" ++#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007 ++msgid "premature end of `translit_ignore' definition" ++msgstr "fim prematuro da definição “translit_ignore”" + +-#: inet/ruserpass.c:162 +-msgid "Remove password or make file unreadable by others." +-msgstr "Remova senha ou torne arquivo não-legível por outros." ++#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013 ++#: locale/programs/ld-ctype.c:2055 ++msgid "syntax error" ++msgstr "erro de sintaxe" + +-#: elf/sprof.c:537 ++#: locale/programs/ld-ctype.c:2188 + #, c-format +-msgid "Reopening shared object `%s' failed" +-msgstr "Reabertura de objeto compartilhado `%s' falhou" +- +-#: nis/nis_print.c:170 +-msgid "Replicate :\n" +-msgstr "Duplicado :\n" ++msgid "%s: syntax error in definition of new character class" ++msgstr "%s: erro de sintaxe na definição da nova classe de caracteres" + +-#: argp/argp-help.c:1638 ++#: locale/programs/ld-ctype.c:2203 + #, c-format +-msgid "Report bugs to %s.\n" +-msgstr "Reporte erros (bugs) para %s.\n" ++msgid "%s: syntax error in definition of new character map" ++msgstr "%s: erro de sintaxe na definição do novo mapa de caracteres" + +-#: catgets/gencat.c:223 db2/makedb.c:229 iconv/iconv_prog.c:280 +-#: locale/programs/locale.c:254 locale/programs/localedef.c:389 +-msgid "Report bugs using the `glibcbug' script to .\n" +-msgstr "Reportar erros usando o script `glibcbug' para .\n" ++#: locale/programs/ld-ctype.c:2363 ++msgid "ellipsis range must be marked by two operands of same type" ++msgstr "intervalo de elipse deve estar marcado per dois operandos do mesmo tipo" + +-#: nis/ypclnt.c:765 +-msgid "Request arguments bad" +-msgstr "Argumentos de requisição inválidos" ++#: locale/programs/ld-ctype.c:2372 ++msgid "with symbolic name range values the absolute ellipsis `...' must not be used" ++msgstr "com valores de intervalo com nome simbólico, a elipse absoluta “...” não pode ser usada" + +-#: resolv/herror.c:73 +-msgid "Resolver Error 0 (no error)" +-msgstr "Erro de resolvedor 0 (não há erro)" ++#: locale/programs/ld-ctype.c:2387 ++msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'" ++msgstr "com valores de intervalo de UCS, deve-se usar a elipse hexadecimal simbólica “..”" + +-#: resolv/herror.c:117 +-msgid "Resolver internal error" +-msgstr "Erro interno do resolvedor" ++#: locale/programs/ld-ctype.c:2401 ++msgid "with character code range values one must use the absolute ellipsis `...'" ++msgstr "com valores de intervalo de código de caracteres, deve-se usar a elipse absoluta “…”" + +-#. TRANS Deadlock avoided; allocating a system resource would have resulted in a +-#. TRANS deadlock situation. The system does not guarantee that it will notice +-#. TRANS all such situations. This error means you got lucky and the system +-#. TRANS noticed; it might just hang. @xref{File Locks}, for an example. +-#: stdio-common/../sysdeps/gnu/errlist.c:97 +-msgid "Resource deadlock avoided" +-msgstr "Evitado deadlock de recurso" ++#: locale/programs/ld-ctype.c:2552 ++#, c-format ++msgid "duplicated definition for mapping `%s'" ++msgstr "definição duplicada para o mapeamento “%s”" + +-#: stdio-common/../sysdeps/unix/siglist.c:54 +-msgid "Resource lost" +-msgstr "Recurso perdido" ++#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782 ++#, c-format ++msgid "%s: `translit_start' section does not end with `translit_end'" ++msgstr "%s: a seção “translit_start” não termina com “translit_end”" + +-#. TRANS Resource temporarily unavailable; the call might work if you try again +-#. TRANS later. The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN}; +-#. TRANS they are always the same in the GNU C library. +-#. TRANS +-#. TRANS This error can happen in a few different situations: +-#. TRANS +-#. TRANS @itemize @bullet +-#. TRANS @item +-#. TRANS An operation that would block was attempted on an object that has +-#. TRANS non-blocking mode selected. Trying the same operation again will block +-#. TRANS until some external condition makes it possible to read, write, or +-#. TRANS connect (whatever the operation). You can use @code{select} to find out +-#. TRANS when the operation will be possible; @pxref{Waiting for I/O}. +-#. TRANS +-#. TRANS @strong{Portability Note:} In many older Unix systems, this condition +-#. TRANS was indicated by @code{EWOULDBLOCK}, which was a distinct error code +-#. TRANS different from @code{EAGAIN}. To make your program portable, you should +-#. TRANS check for both codes and treat them the same. +-#. TRANS +-#. TRANS @item +-#. TRANS A temporary resource shortage made an operation impossible. @code{fork} +-#. TRANS can return this error. It indicates that the shortage is expected to +-#. TRANS pass, so your program can try the call again later and it may succeed. +-#. TRANS It is probably a good idea to delay for a few seconds before trying it +-#. TRANS again, to allow time for other processes to release scarce resources. +-#. TRANS Such shortages are usually fairly serious and affect the whole system, +-#. TRANS so usually an interactive program should report the error to the user +-#. TRANS and return to its command loop. +-#. TRANS @end itemize +-#: stdio-common/../sysdeps/gnu/errlist.c:279 +-msgid "Resource temporarily unavailable" +-msgstr "Recurso temporariamente indisponível" ++#: locale/programs/ld-ctype.c:2733 ++#, c-format ++msgid "%s: duplicate `default_missing' definition" ++msgstr "%s: definição duplicada de “default_missing”" + +-#: nis/nis_error.c:47 +-msgid "Results Sent to callback proc" +-msgstr "Resultados enviados para processo chamador" ++#: locale/programs/ld-ctype.c:2738 ++msgid "previous definition was here" ++msgstr "definição anterior estava aqui" + +-#: elf/sprof.c:91 +-msgid "SHOBJ [PROFDATA]" +-msgstr "SHOBJ [PROFDATA]" ++#: locale/programs/ld-ctype.c:2760 ++#, c-format ++msgid "%s: no representable `default_missing' definition found" ++msgstr "%s: nenhuma definição representável de “default_missing” localizada" + +-#: nis/nis_print.c:33 +-msgid "SUNYP" +-msgstr "SUNYP" ++#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973 ++#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012 ++#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052 ++#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111 ++#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195 ++#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259 ++#, c-format ++msgid "%s: character `%s' not defined while needed as default value" ++msgstr "%s: caractere “%s” não definido enquanto necessário como valor padrão" + +-#: nis/nis_print.c:265 ++#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978 ++#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017 ++#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057 ++#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116 ++#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200 + #, c-format +-msgid "Search Path : %s\n" +-msgstr "Rota de Busca :%s\n" ++msgid "%s: character `%s' in charmap not representable with one byte" ++msgstr "%s: caractere “%s” no mapa de caracteres não representável com um byte" + +-#: stdio-common/../sysdeps/unix/siglist.c:36 +-#: sysdeps/unix/sysv/linux/siglist.h:31 +-msgid "Segmentation fault" +-msgstr "Falha de segmentação" ++#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265 ++#, c-format ++msgid "%s: character `%s' needed as default value not representable with one byte" ++msgstr "%s: caractere “%s” necessário como valor padrão não representável com um byte" + +-#: nis/nis_error.c:35 +-msgid "Server busy, try again" +-msgstr "Servidor ocupado, tente novamente" ++#: locale/programs/ld-ctype.c:3321 ++msgid "no output digits defined and none of the standard names in the charmap" ++msgstr "nenhum dígito de saída definido e nenhum dos nomes padrões no mapa de caracteres" + +-#: nis/nis_error.c:41 +-msgid "Server out of memory" +-msgstr "Memória do servidor exaurida" ++#: locale/programs/ld-ctype.c:3570 ++#, c-format ++msgid "%s: transliteration data from locale `%s' not available" ++msgstr "%s: dados de transliteração da localidade “%s” não disponíveis" + +-#: sunrpc/clnt_perr.c:277 +-msgid "Server rejected credential" +-msgstr "Servidor rejeitou credencial" ++#: locale/programs/ld-ctype.c:3669 ++#, c-format ++msgid "%s: table for class \"%s\": %lu bytes" ++msgstr "%s: tabela para a classe “%s”: %lu bytes" + +-#: sunrpc/clnt_perr.c:281 +-msgid "Server rejected verifier" +-msgstr "Servidor rejeitou verificador" ++#: locale/programs/ld-ctype.c:3733 ++#, c-format ++msgid "%s: table for map \"%s\": %lu bytes" ++msgstr "%s: tabela para o mapa “%s”: %lu bytes" + +-#: posix/../sysdeps/posix/gai_strerror.c:38 +-msgid "Servname not supported for ai_socktype" +-msgstr "`Servname' não suportado para `ai_socktype'" ++#: locale/programs/ld-ctype.c:3857 ++#, c-format ++msgid "%s: table for width: %lu bytes" ++msgstr "%s: tabela para largura: %lu bytes" + +-#: argp/argp-parse.c:89 +-msgid "Set the program name" +-msgstr "Configura o nome do programa" ++#: locale/programs/ld-identification.c:173 ++#, c-format ++msgid "%s: no identification for category `%s'" ++msgstr "%s: nenhuma identificação para a categoria “%s”" + +-#: nscd/nscd.c:82 +-msgid "Shut the server down" +-msgstr "Encerra o servidor" ++#: locale/programs/ld-identification.c:197 ++#, c-format ++msgid "%s: unknown standard `%s' for category `%s'" ++msgstr "%s: padrão desconhecido “%s” para a categoria “%s”" + +-#: stdio-common/../sysdeps/unix/siglist.c:25 +-msgid "Signal 0" +-msgstr "Sinal 0" ++#: locale/programs/ld-identification.c:380 ++#, c-format ++msgid "%s: duplicate category version definition" ++msgstr "%s: definição duplicada da versão da categoria" + +-#. TRANS A file that isn't a socket was specified when a socket is required. +-#: stdio-common/../sysdeps/gnu/errlist.c:311 +-msgid "Socket operation on non-socket" +-msgstr "Operação socket em um arquivo não-socket" ++#: locale/programs/ld-measurement.c:111 ++#, c-format ++msgid "%s: invalid value for field `%s'" ++msgstr "%s: valor inválido para o campo “%s”" + +-#. TRANS The socket type is not supported. +-#: stdio-common/../sysdeps/gnu/errlist.c:340 +-msgid "Socket type not supported" +-msgstr "Tipo socket não suportado" ++#: locale/programs/ld-messages.c:113 locale/programs/ld-messages.c:146 ++#, c-format ++msgid "%s: field `%s' undefined" ++msgstr "%s: campo “%s” indefinido" + +-#. TRANS A network connection was aborted locally. +-#: stdio-common/../sysdeps/gnu/errlist.c:394 +-msgid "Software caused connection abort" +-msgstr "Término de conexão causada por software" ++#: locale/programs/ld-messages.c:119 locale/programs/ld-messages.c:152 ++#: locale/programs/ld-monetary.c:264 locale/programs/ld-numeric.c:117 ++#, c-format ++msgid "%s: value for field `%s' must not be an empty string" ++msgstr "%s: valor para campo “%s” não pode estar vazio" + +-#: sunrpc/rpcinfo.c:658 +-msgid "Sorry. You are not root\n" +-msgstr "Lamento. Você não é o superusuário\n" ++#: locale/programs/ld-messages.c:135 locale/programs/ld-messages.c:168 ++#, c-format ++msgid "%s: no correct regular expression for field `%s': %s" ++msgstr "%s: nenhuma expressão regular correta para o campo “%s”: %s" + +-#: locale/programs/localedef.c:97 +-msgid "Source definitions are found in FILE" +-msgstr "Definições fonte são encontrada no ARQUIVO" ++#: locale/programs/ld-monetary.c:228 ++#, c-format ++msgid "%s: value of field `int_curr_symbol' has wrong length" ++msgstr "%s: valor do campo “int_curr_symbol” possui comprimento incorreto" + +-#: stdio-common/../sysdeps/gnu/errlist.c:746 +-msgid "Srmount error" +-msgstr "Erro de Srmount" ++#: locale/programs/ld-monetary.c:245 ++#, c-format ++msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217 [--no-warnings=intcurrsym]" ++msgstr "%s: valor do campo “int_curr_symbol” não corresponde a um nome válido na ISO 4217 [--no-warnings=intcurrsym]" + +-#: sysdeps/unix/sysv/linux/siglist.h:59 +-msgid "Stack fault" +-msgstr "Falha de pilha" ++#: locale/programs/ld-monetary.c:293 locale/programs/ld-monetary.c:322 ++#, c-format ++msgid "%s: value for field `%s' must be in range %d...%d" ++msgstr "%s: valor para o campo “%s” deve estar no intervalo %d…%d" + +-#. TRANS Stale NFS file handle. This indicates an internal confusion in the NFS +-#. TRANS system which is due to file system rearrangements on the server host. +-#. TRANS Repairing this condition usually requires unmounting and remounting +-#. TRANS the NFS file system on the local host. +-#: stdio-common/../sysdeps/gnu/errlist.c:506 +-msgid "Stale NFS file handle" +-msgstr "Manipulador de arquivo NFS corrompido" ++#: locale/programs/ld-monetary.c:549 locale/programs/ld-numeric.c:228 ++#, c-format ++msgid "%s: value for field `%s' must be a single character" ++msgstr "%s: valor para o campo “%s” deve estar em um único caractere" + +-#: nscd/nscd.c:81 +-msgid "Start NUMBER threads" +-msgstr "Iniciar NÚMERO de linhas (threads)" ++#: locale/programs/ld-monetary.c:646 locale/programs/ld-numeric.c:272 ++#, c-format ++msgid "%s: `-1' must be last entry in `%s' field" ++msgstr "%s: “-1” deve ser o último registro no campo “%s”" + +-#: nis/nis_print.c:357 ++#: locale/programs/ld-monetary.c:668 locale/programs/ld-numeric.c:289 + #, c-format +-msgid "Status : %s\n" +-msgstr "Posição : %s\n" ++msgid "%s: values for field `%s' must be smaller than 127" ++msgstr "%s: valor para o campo “%s” deve ser menor que 127" + +-#: stdio-common/../sysdeps/unix/siglist.c:43 +-#: sysdeps/unix/sysv/linux/siglist.h:37 +-msgid "Stopped" +-msgstr "Parado" ++#: locale/programs/ld-monetary.c:714 ++msgid "conversion rate value cannot be zero" ++msgstr "valor da taxa de conversão não pode ser zero" + +-#: stdio-common/../sysdeps/unix/siglist.c:42 +-#: sysdeps/unix/sysv/linux/siglist.h:36 +-msgid "Stopped (signal)" +-msgstr "Parado (sinal)" ++#: locale/programs/ld-name.c:128 locale/programs/ld-telephone.c:124 ++#: locale/programs/ld-telephone.c:147 ++#, c-format ++msgid "%s: invalid escape sequence in field `%s'" ++msgstr "%s: sequência de escape inválida no campo “%s”" + +-#: stdio-common/../sysdeps/unix/siglist.c:46 +-#: sysdeps/unix/sysv/linux/siglist.h:40 +-msgid "Stopped (tty input)" +-msgstr "Parado (entrada tty)" ++#: locale/programs/ld-time.c:245 ++#, c-format ++msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'" ++msgstr "%s: sinalizador de direção na string %Zd no campo “era” não é “+” nem “-”" + +-#: stdio-common/../sysdeps/unix/siglist.c:47 +-#: sysdeps/unix/sysv/linux/siglist.h:41 +-msgid "Stopped (tty output)" +-msgstr "Parado (saída tty)" ++#: locale/programs/ld-time.c:255 ++#, c-format ++msgid "%s: direction flag in string %Zd in `era' field is not a single character" ++msgstr "%s: sinalizador de direção na string %Zd no campo “era” não é um único caractere" + +-#: stdio-common/../sysdeps/gnu/errlist.c:790 +-msgid "Streams pipe error" +-msgstr "Erro de pipe streams" ++#: locale/programs/ld-time.c:267 ++#, c-format ++msgid "%s: invalid number for offset in string %Zd in `era' field" ++msgstr "%s: número inválido para deslocamento na string %Zd no campo “era”" + +-#: stdio-common/../sysdeps/gnu/errlist.c:794 +-msgid "Structure needs cleaning" +-msgstr "A estrutura necessita de limpeza" ++#: locale/programs/ld-time.c:274 ++#, c-format ++msgid "%s: garbage at end of offset value in string %Zd in `era' field" ++msgstr "%s: lixo no final do valor do deslocamento na string %Zd no campo “era”" + +-#: nis/nis_error.c:28 nis/ypclnt.c:763 nis/ypclnt.c:837 posix/regex.c:1012 +-#: stdio-common/../sysdeps/gnu/errlist.c:19 +-msgid "Success" +-msgstr "Sucesso" ++#: locale/programs/ld-time.c:324 ++#, c-format ++msgid "%s: invalid starting date in string %Zd in `era' field" ++msgstr "%s: data de início inválida na string %Zd no campo “era”" + +-#: locale/programs/localedef.c:106 +-msgid "Suppress warnings and information messages" +-msgstr "Suprime avisos e mensagens de informação" ++#: locale/programs/ld-time.c:332 ++#, c-format ++msgid "%s: garbage at end of starting date in string %Zd in `era' field " ++msgstr "%s: lixo no final da data início na string %Zd no campo “era” " + +-#: locale/programs/localedef.c:96 +-msgid "Symbolic character names defined in FILE" +-msgstr "Nomes de caracteres simbólicos definido en ARQUIVO" ++#: locale/programs/ld-time.c:350 ++#, c-format ++msgid "%s: starting date is invalid in string %Zd in `era' field" ++msgstr "%s: data de início inválida na string %Zd no campo “era”" + +-#: posix/../sysdeps/posix/gai_strerror.c:40 +-msgid "System error" +-msgstr "Erro de sistema" ++#: locale/programs/ld-time.c:398 locale/programs/ld-time.c:424 ++#, c-format ++msgid "%s: invalid stopping date in string %Zd in `era' field" ++msgstr "%s: data de parada inválida na string %Zd no campo “era”" + +-#: locale/programs/locale.c:63 +-msgid "System information:" +-msgstr "Informação do Sistema:" ++#: locale/programs/ld-time.c:406 ++#, c-format ++msgid "%s: garbage at end of stopping date in string %Zd in `era' field" ++msgstr "%s: lixo no final da data de parada na string %Zd no campo “era”" + +-#: nis/ypclnt.c:843 +-msgid "System resource allocation failure" +-msgstr "Falha de alocação de recursos do sistema" ++#: locale/programs/ld-time.c:432 ++#, c-format ++msgid "%s: missing era name in string %Zd in `era' field" ++msgstr "%s: faltando o nome da era na string %Zd no campo “era”" + +-#: locale/programs/localedef.c:384 ++#: locale/programs/ld-time.c:443 + #, c-format +-msgid "" +-"System's directory for character maps : %s\n" +-" repertoire maps: %s\n" +-" locale path : %s\n" +-"%s" +-msgstr "" +-"Diretório do sistema para mapas de caracteres: %s\n" +-" mapas de repertório: %s\n" +-" rota de localização: %s\n" +-"%s" ++msgid "%s: missing era format in string %Zd in `era' field" ++msgstr "%s: faltando o formato era na string %Zd no campo “era”" + +-#: nis/nis_print.c:117 +-msgid "TABLE\n" +-msgstr "TABELA\n" ++#: locale/programs/ld-time.c:488 ++#, c-format ++msgid "%s: third operand for value of field `%s' must not be larger than %d" ++msgstr "%s: terceiro operando para o valor de campo “%s” não pode ser maior que %d" + +-#: nis/nis_print.c:262 ++#: locale/programs/ld-time.c:496 locale/programs/ld-time.c:504 ++#: locale/programs/ld-time.c:512 + #, c-format +-msgid "Table Type : %s\n" +-msgstr "Tipo de Tabela : %s\n" ++msgid "%s: values for field `%s' must not be larger than %d" ++msgstr "%s: valor para o campo “%s” não pode ser maior que %d" + +-#: posix/../sysdeps/posix/gai_strerror.c:31 +-msgid "Temporary failure in name resolution" +-msgstr "Falha temporário na resolução de nome" ++#: locale/programs/ld-time.c:717 ++#, c-format ++msgid "%s: too few values for field `%s'" ++msgstr "%s: número insuficiente de valores para o campo “%s”" + +-#: stdio-common/../sysdeps/unix/siglist.c:40 +-#: sysdeps/unix/sysv/linux/siglist.h:34 +-msgid "Terminated" +-msgstr "Terminado" ++#: locale/programs/ld-time.c:762 ++msgid "extra trailing semicolon" ++msgstr "ponto e vírgula extra no final" + +-#. TRANS An attempt to execute a file that is currently open for writing, or +-#. TRANS write to a file that is currently being executed. Often using a +-#. TRANS debugger to run a program is considered having it open for writing and +-#. TRANS will cause this error. (The name stands for ``text file busy''.) This +-#. TRANS is not an error in the GNU system; the text is copied as necessary. +-#: stdio-common/../sysdeps/gnu/errlist.c:197 +-msgid "Text file busy" +-msgstr "Área de texto ocupada" ++#: locale/programs/ld-time.c:765 ++#, c-format ++msgid "%s: too many values for field `%s'" ++msgstr "%s: número excessivo de valores para o campo “%s” de valores" + +-#: iconv/iconv_prog.c:536 +-msgid "" +-"The following list contain all the coded character sets known. This does\n" +-"not necessarily mean that all combinations of these names can be used for\n" +-"the FROM and TO command line parameters. One coded character set can be\n" +-"listed with several different names (aliases).\n" +-" Some of the names are no plain strings but instead regular expressions and\n" +-"they match a variety of names which can be given as parameters to the\n" +-"program.\n" +-"\n" +-" " +-msgstr "" +-"A lista seguinte contém todos os conjuntos de codificação de caracteres \n" +-"conhecidos. Isto não quer dizer necessáriamente que todas as combinações\n" +-"destes nomes podem ser utilizadas nos parâmetros FROM e TO. Um conjunto\n" +-"de caracteres pode ser listado com vários nomes diferentes (apelidos).\n" +-" Alguns destes nomes não strings simples mas sim, expressões regulares, e\n" +-"eles combinam com uma variedade de nomes que podem ser dados como parâmetrosao programa.\n" +-"\n" +-" " ++#: locale/programs/linereader.c:130 ++msgid "trailing garbage at end of line" ++msgstr "lixo no final da linha" + +-#: nis/nis_print.c:223 +-msgid "Time to live : " +-msgstr "Tempo de vida : " ++#: locale/programs/linereader.c:298 ++msgid "garbage at end of number" ++msgstr "lixo no final do número" + +-#: stdio-common/../sysdeps/gnu/errlist.c:662 +-msgid "Timer expired" +-msgstr "Tempo expirado" ++#: locale/programs/linereader.c:410 ++msgid "garbage at end of character code specification" ++msgstr "lixo no final da especificação do código de caractere" + +-#: nis/nis_error.c:55 +-msgid "Too Many Attributes" +-msgstr "Muitos atributos" ++#: locale/programs/linereader.c:496 ++msgid "unterminated symbolic name" ++msgstr "nome simbólico não terminado" + +-#. TRANS Too many levels of symbolic links were encountered in looking up a file name. +-#. TRANS This often indicates a cycle of symbolic links. +-#: stdio-common/../sysdeps/gnu/errlist.c:457 +-msgid "Too many levels of symbolic links" +-msgstr "Muitos níveis de links simbólicos" ++#: locale/programs/linereader.c:623 ++msgid "illegal escape sequence at end of string" ++msgstr "sequência de escape ilegal no final da string" + +-#. TRANS Too many links; the link count of a single file would become too large. +-#. TRANS @code{rename} can cause this error if the file being renamed already has +-#. TRANS as many links as it can take (@pxref{Renaming Files}). +-#: stdio-common/../sysdeps/gnu/errlist.c:225 +-msgid "Too many links" +-msgstr "Muitos links" ++#: locale/programs/linereader.c:627 locale/programs/linereader.c:847 ++msgid "unterminated string" ++msgstr "string não terminada" + +-#. TRANS The current process has too many files open and can't open any more. +-#. TRANS Duplicate descriptors do count toward this limit. +-#. TRANS +-#. TRANS In BSD and GNU, the number of open files is controlled by a resource +-#. TRANS limit that can usually be increased. If you get this error, you might +-#. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited; +-#. TRANS @pxref{Limits on Resources}. +-#: stdio-common/../sysdeps/gnu/errlist.c:175 +-msgid "Too many open files" +-msgstr "Muitos arquivos abertos" ++#: locale/programs/linereader.c:808 ++#, c-format ++msgid "symbol `%.*s' not in charmap" ++msgstr "símbolo “%.*s” não está no mapa de caracteres" + +-#. TRANS There are too many distinct file openings in the entire system. Note +-#. TRANS that any number of linked channels count as just one file opening; see +-#. TRANS @ref{Linked Channels}. This error never occurs in the GNU system. +-#: stdio-common/../sysdeps/gnu/errlist.c:182 +-msgid "Too many open files in system" +-msgstr "Muitos arquivos abertos no sistema" ++#: locale/programs/linereader.c:829 ++#, c-format ++msgid "symbol `%.*s' not in repertoire map" ++msgstr "símbolo “%.*s” não está no mapa de repertório" + +-#. TRANS This means that the per-user limit on new process would be exceeded by +-#. TRANS an attempted @code{fork}. @xref{Limits on Resources}, for details on +-#. TRANS the @code{RLIMIT_NPROC} limit. +-#: stdio-common/../sysdeps/gnu/errlist.c:487 +-msgid "Too many processes" +-msgstr "Muitos processos" ++#: locale/programs/locale-spec.c:130 ++#, c-format ++msgid "unknown name \"%s\"" ++msgstr "nome desconhecido “%s”" + +-#. TRANS ??? +-#: stdio-common/../sysdeps/gnu/errlist.c:439 +-msgid "Too many references: cannot splice" +-msgstr "Muitas referências: não é possível unir" ++#: locale/programs/locale.c:70 ++msgid "System information:" ++msgstr "Informação do sistema:" + +-#. TRANS The file quota system is confused because there are too many users. +-#. TRANS @c This can probably happen in a GNU system when using NFS. +-#: stdio-common/../sysdeps/gnu/errlist.c:493 +-msgid "Too many users" +-msgstr "Muitos usuários" ++#: locale/programs/locale.c:72 ++msgid "Write names of available locales" ++msgstr "Escreve nomes das localidades (locales) disponíveis" + +-#: stdio-common/../sysdeps/unix/siglist.c:30 +-#: sysdeps/unix/sysv/linux/siglist.h:26 +-msgid "Trace/breakpoint trap" +-msgstr "Trace/breakpoint trap" ++#: locale/programs/locale.c:74 ++msgid "Write names of available charmaps" ++msgstr "Escreve nomes dos mapas de caracteres disponíveis" + +-#: posix/regex.c:1017 +-msgid "Trailing backslash" +-msgstr "Contrabarra final" ++#: locale/programs/locale.c:75 ++msgid "Modify output format:" ++msgstr "Formato de modificação de saída:" + +-#. TRANS In the GNU system, opening a file returns this error when the file is +-#. TRANS translated by a program and the translator program dies while starting +-#. TRANS up, before it has connected to the file. +-#: stdio-common/../sysdeps/gnu/errlist.c:596 +-msgid "Translator died" +-msgstr "Tradutor morto" ++#: locale/programs/locale.c:76 ++msgid "Write names of selected categories" ++msgstr "Escreve nomes das categorias selecionadas" + +-#. TRANS You tried to connect a socket that is already connected. +-#. TRANS @xref{Connecting}. +-#: stdio-common/../sysdeps/gnu/errlist.c:414 +-msgid "Transport endpoint is already connected" +-msgstr "Ponto final de transporte já está conectado" ++#: locale/programs/locale.c:77 ++msgid "Write names of selected keywords" ++msgstr "Escreve nomes das palavras-chave selecionadas" + +-#. TRANS The socket is not connected to anything. You get this error when you +-#. TRANS try to transmit data over a socket, without first specifying a +-#. TRANS destination for the data. For a connectionless socket (for datagram +-#. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead. +-#: stdio-common/../sysdeps/gnu/errlist.c:422 +-msgid "Transport endpoint is not connected" +-msgstr "Ponto final de transporte não está conectado" ++#: locale/programs/locale.c:78 ++msgid "Print more information" ++msgstr "Imprime mais informações" + +-#: argp/argp-help.c:1610 +-#, c-format +-msgid "Try `%s --help' or `%s --usage' for more information.\n" +-msgstr "Tente `%s --help' ou `%s --usage' para mais informações.\n" ++#: locale/programs/locale.c:83 ++msgid "Get locale-specific information." ++msgstr "Obtém informações específicas da localidade." + +-#: inet/rcmd.c:143 +-#, c-format +-msgid "Trying %s...\n" +-msgstr "Tentando %s...\n" ++#: locale/programs/locale.c:86 ++msgid "" ++"NAME\n" ++"[-a|-m]" ++msgstr "" ++"NOME\n" ++"[-a|-m]" + +-#: nis/nis_print.c:163 ++#: locale/programs/locale.c:190 + #, c-format +-msgid "Type : %s\n" +-msgstr "Tipo : %s\n" ++msgid "Cannot set LC_CTYPE to default locale" ++msgstr "Não foi possível definir LC_CTYPE para a localidade padrão" + +-#: nis/nis_print.c:47 +-msgid "UNKNOWN" +-msgstr "DESCONHECIDO" +- +-#: nis/nis_error.c:72 +-msgid "Unable to authenticate NIS+ client" +-msgstr "Impossível autenticar cliente NIS+" +- +-#: nis/nis_error.c:71 +-msgid "Unable to authenticate NIS+ server" +-msgstr "Impossível autenticar servidor NIS+" +- +-#: nis/nis_error.c:46 +-msgid "Unable to create callback" +-msgstr "Impossível criar chamador" +- +-#: nis/nis_error.c:74 +-msgid "Unable to create process on server" +-msgstr "Impossível criar processo no servidor" +- +-#: nis/nis_print.c:190 ++#: locale/programs/locale.c:192 + #, c-format +-msgid "Unknown (type = %d, bits = %d)\n" +-msgstr "Desconhecido (tipo = %d, bits = %d)\n" ++msgid "Cannot set LC_MESSAGES to default locale" ++msgstr "Não foi possível definir LC_MESSAGES para a localidade padrão" + +-#: inet/ruserpass.c:248 ++#: locale/programs/locale.c:205 + #, c-format +-msgid "Unknown .netrc keyword %s" +-msgstr "Palavra-chave em .netrc desconhecida %s" ++msgid "Cannot set LC_COLLATE to default locale" ++msgstr "Não foi possível definir LC_COLLATE para a localidade padrão" + +-#: nis/ypclnt.c:797 +-msgid "Unknown NIS error code" +-msgstr "Código de erro NIS desconhecido" +- +-#: nss/getent.c:505 ++#: locale/programs/locale.c:221 + #, c-format +-msgid "Unknown database: %s\n" +-msgstr "Base de dados desconhecida: %s\n" +- +-#: posix/../sysdeps/posix/gai_strerror.c:51 +-msgid "Unknown error" +-msgstr "Erro desconhecido" +- +-#: string/../sysdeps/generic/_strerror.c:48 +-#: string/../sysdeps/mach/_strerror.c:86 +-#: sysdeps/mach/hurd/mips/dl-machine.c:82 +-msgid "Unknown error " +-msgstr "Erro desconhecido " +- +-#: resolv/herror.c:74 +-msgid "Unknown host" +-msgstr "Host desconhecido" +- +-#: nis/nis_error.c:34 +-msgid "Unknown object" +-msgstr "Objeto desconhecido" ++msgid "Cannot set LC_ALL to default locale" ++msgstr "Não foi possível definir LC_ALL para a localidade padrão" + +-#: nscd/nscd_conf.c:181 ++#: locale/programs/locale.c:521 + #, c-format +-msgid "Unknown option: %s %s %s" +-msgstr "Opção desconhecida: %s %s %s" +- +-#: resolv/herror.c:120 +-msgid "Unknown resolver error" +-msgstr "Erro desconhecido do resolvedor" +- +-#: resolv/herror.c:76 +-msgid "Unknown server error" +-msgstr "Erro desconhecido de servidor" ++msgid "while preparing output" ++msgstr "enquanto preparava a saída" + +-#: string/strsignal.c:70 +-#, c-format +-msgid "Unknown signal %d" +-msgstr "Sinal desconhecido %d" ++#: locale/programs/localedef.c:112 ++msgid "Input Files:" ++msgstr "Arquivos de entrada:" + +-#: misc/error.c:107 +-msgid "Unknown system error" +-msgstr "Erro desconhecido de sistema" ++#: locale/programs/localedef.c:114 ++msgid "Symbolic character names defined in FILE" ++msgstr "Nomes de caracteres simbólicos definido no ARQUIVO" + +-#: nis/ypclnt.c:845 +-msgid "Unknown ypbind error" +-msgstr "Erro desconhecido de ypbind" ++#: locale/programs/localedef.c:116 ++msgid "Source definitions are found in FILE" ++msgstr "Definições fonte são encontradas no ARQUIVO" + +-#: posix/regex.c:1020 +-msgid "Unmatched ( or \\(" +-msgstr "( ou \\( descasados" ++#: locale/programs/localedef.c:118 ++msgid "FILE contains mapping from symbolic names to UCS4 values" ++msgstr "ARQUIVO contém mapas de nomes simbólicos para valores UCS4" + +-#: posix/regex.c:1028 +-msgid "Unmatched ) or \\)" +-msgstr ") ou \\) descasados" ++#: locale/programs/localedef.c:122 ++msgid "Create output even if warning messages were issued" ++msgstr "Cria saída mesmo que mensagens de aviso forem produzidas" + +-#: posix/regex.c:1019 +-msgid "Unmatched [ or [^" +-msgstr "[ ou [^ descasados" ++#: locale/programs/localedef.c:123 ++msgid "Optional output file prefix" ++msgstr "Prefixo opcional de arquivo de saída" + +-#: posix/regex.c:1021 +-msgid "Unmatched \\{" +-msgstr "\\{ descasado" ++#: locale/programs/localedef.c:124 ++msgid "Strictly conform to POSIX" ++msgstr "Adapta estritamente ao POSIX" + +-#: posix/getconf.c:692 +-#, c-format +-msgid "Unrecognized variable `%s'" +-msgstr "Variável não reconhecida `%s'" ++#: locale/programs/localedef.c:126 ++msgid "Suppress warnings and information messages" ++msgstr "Suprime avisos e mensagens de informação" + +-#: stdio-common/../sysdeps/unix/siglist.c:41 +-#: sysdeps/unix/sysv/linux/siglist.h:35 +-msgid "Urgent I/O condition" +-msgstr "Condição urgente de E/S" ++#: locale/programs/localedef.c:127 ++msgid "Print more messages" ++msgstr "Mostra mais mensagens" + +-#: argp/argp-help.c:1567 +-msgid "Usage:" +-msgstr "Uso:" ++#: locale/programs/localedef.c:128 locale/programs/localedef.c:131 ++msgid "" ++msgstr "" + +-#: posix/getconf.c:604 +-#, c-format +-msgid "Usage: %s variable_name [pathname]\n" +-msgstr "Uso: %s nome_da_variável [caminho]\n" ++#: locale/programs/localedef.c:129 ++msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym" ++msgstr "Lista separada por vírgulas de avisos para desabilitar; há suporte para os avisos: ascii, intcurrsym" + +-#: sunrpc/rpcinfo.c:674 +-msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n" +-msgstr "Uso: rpcinfo [ -n númporta ] -u host númprog [ númvers ]\n" ++#: locale/programs/localedef.c:132 ++msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym" ++msgstr "Lista separada por vírgulas de avisos para habilitar; há suporte para os avisos: ascii, intcurrsym" + +-#: stdio-common/../sysdeps/unix/siglist.c:55 +-#: sysdeps/unix/sysv/linux/siglist.h:48 +-msgid "User defined signal 1" +-msgstr "Sinal 1 definido pelo usuário" ++#: locale/programs/localedef.c:135 ++msgid "Archive control:" ++msgstr "Controle de pacote:" + +-#: stdio-common/../sysdeps/unix/siglist.c:56 +-#: sysdeps/unix/sysv/linux/siglist.h:49 +-msgid "User defined signal 2" +-msgstr "Sinal 2 definido pelo usuário" ++#: locale/programs/localedef.c:137 ++msgid "Don't add new data to archive" ++msgstr "Não adiciona novos dados ao pacote" + +-#: stdio-common/../sysdeps/gnu/errlist.c:654 +-msgid "Value too large for defined data type" +-msgstr "Valor muito extenso para o tipo de dados definido" ++#: locale/programs/localedef.c:139 ++msgid "Add locales named by parameters to archive" ++msgstr "Adiciona localidades nomeadas por parâmetros ao pacote" + +-#: stdio-common/../sysdeps/unix/siglist.c:51 +-#: sysdeps/unix/sysv/linux/siglist.h:45 +-msgid "Virtual timer expired" +-msgstr "Temporizador virtual expirado" ++#: locale/programs/localedef.c:140 ++msgid "Replace existing archive content" ++msgstr "Substitui o conteúdo de pacote existente" + +-#: timezone/zic.c:1899 +-msgid "Wild result from command execution" +-msgstr "Resultado insensato da execução do comando" ++#: locale/programs/localedef.c:142 ++msgid "Remove locales named by parameters from archive" ++msgstr "Remove localidades nomeadas por parâmetros do pacote" + +-#: stdio-common/../sysdeps/unix/siglist.c:53 +-#: sysdeps/unix/sysv/linux/siglist.h:47 +-msgid "Window changed" +-msgstr "Janela alterada" ++#: locale/programs/localedef.c:143 ++msgid "List content of archive" ++msgstr "Lista conteúdo do pacote" + +-#: locale/programs/locale.c:67 +-msgid "Write names of available charmaps" +-msgstr "Escreve nomes dos mapas de caracteres (charmaps) disponíveis" ++#: locale/programs/localedef.c:145 ++msgid "locale.alias file to consult when making archive" ++msgstr "arquivo localidade.apelido a ser consultado ao criar pacote" + +-#: locale/programs/locale.c:65 +-msgid "Write names of available locales" +-msgstr "Escreve nomes das localizações (locales) disponíveis" ++#: locale/programs/localedef.c:147 ++msgid "Generate little-endian output" ++msgstr "Gera saída em little-endian" + +-#: locale/programs/locale.c:69 +-msgid "Write names of selected categories" +-msgstr "Escreve nomes das categorias selecionadasd" ++#: locale/programs/localedef.c:149 ++msgid "Generate big-endian output" ++msgstr "Gera saída em big-endian" + +-#: locale/programs/locale.c:70 +-msgid "Write names of selected keywords" +-msgstr "Escreve nomes das palavras-chave selecionadas" ++#: locale/programs/localedef.c:154 ++msgid "Compile locale specification" ++msgstr "Compila especificação localizada" + +-#: catgets/gencat.c:110 db2/makedb.c:59 +-msgid "Write output to file NAME" +-msgstr "Escreve a saída para o arquivo NOME" ++#: locale/programs/localedef.c:157 ++msgid "" ++"NAME\n" ++"[--add-to-archive|--delete-from-archive] FILE...\n" ++"--list-archive [FILE]" ++msgstr "" ++"NOME\n" ++"[--add-to-archive|--delete-from-archive] ARQUIVO...\n" ++"--list-archive [ARQUIVO]" + +-#: catgets/gencat.c:241 db2/makedb.c:247 elf/sprof.c:365 +-#: iconv/iconv_prog.c:299 locale/programs/locale.c:272 +-#: locale/programs/localedef.c:408 nscd/nscd.c:228 nss/getent.c:70 +-#: posix/getconf.c:629 ++#: locale/programs/localedef.c:232 + #, c-format +-msgid "Written by %s.\n" +-msgstr "Escrito por %s.\n" +- +-#: stdio-common/../sysdeps/gnu/errlist.c:818 +-msgid "Wrong medium type" +-msgstr "Tipo de mídia incorreta" ++msgid "cannot create directory for output files" ++msgstr "não foi possível criar diretório para os arquivos de saída" + +-#: nis/nis_print.c:39 +-msgid "X500" +-msgstr "X500" +- +-#: nis/nis_print.c:43 +-msgid "XCHS" +-msgstr "XCHS" ++#: locale/programs/localedef.c:243 ++msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'" ++msgstr "FATAL: sistema não define “_POSIX2_LOCALEDEF”" + +-#: nis/ypclnt.c:185 ++#: locale/programs/localedef.c:257 locale/programs/localedef.c:273 ++#: locale/programs/localedef.c:663 locale/programs/localedef.c:683 + #, c-format +-msgid "YPBINDPROC_DOMAIN: %s\n" +-msgstr "YPBINDPROC_DOMAIN: %s\n" ++msgid "cannot open locale definition file `%s'" ++msgstr "não é possível abrir arquivo de definição da localidade “%s”" + +-#: nis/nis_error.c:70 +-msgid "Yes, 42 is the meaning of life" +-msgstr "Sim, 42 é o sentido da vida" ++#: locale/programs/localedef.c:297 ++#, c-format ++msgid "cannot write output files to `%s'" ++msgstr "não é possível escrever arquivo de saída para “%s”" + +-#. TRANS You did @strong{what}? +-#: stdio-common/../sysdeps/gnu/errlist.c:608 +-msgid "You really blew it this time" +-msgstr "Você realmente o destruiu desta vez" ++#: locale/programs/localedef.c:303 ++msgid "no output file produced because errors were issued" ++msgstr "nenhum arquivo de saída foi produzido porque erros foram emitidos" + +-#: timezone/zic.c:1063 +-msgid "Zone continuation line end time is not after end time of previous line" +-msgstr "Tempo final da linha de zona não está após o tempo final da linha anterior" ++#: locale/programs/localedef.c:431 ++#, c-format ++msgid "" ++"System's directory for character maps : %s\n" ++"\t\t repertoire maps: %s\n" ++"\t\t locale path : %s\n" ++"%s" ++msgstr "" ++"Diretório do sistema para mapas de caracteres: %s\n" ++" mapas de repertórios: %s\n" ++" caminho da localidade: %s\n" ++"%s" + +-#: iconv/iconv_prog.c:70 +-msgid "[FILE...]" +-msgstr "[ARQUIVO...]" ++#: locale/programs/localedef.c:631 ++msgid "circular dependencies between locale definitions" ++msgstr "dependências circulares entre definições de localidade" + +-#: locale/programs/charmap.c:481 locale/programs/locfile.c:471 +-#: locale/programs/repertoire.c:278 ++#: locale/programs/localedef.c:637 + #, c-format +-msgid "`%1$s' definition does not end with `END %1$s'" +-msgstr "`%1$s' definição não termina com `END %1$s'" ++msgid "cannot add already read locale `%s' a second time" ++msgstr "não foi possível adicionar localidade já lida “%s” uma segunda vez" + +-#: elf/sprof.c:766 ++#: locale/programs/locarchive.c:133 locale/programs/locarchive.c:380 + #, c-format +-msgid "`%s' is no correct profile data file for `%s'" +-msgstr "`%s' não é o arquivo deperfil de dados correto para `%s'" ++msgid "cannot create temporary file: %s" ++msgstr "não foi possível criar arquivo temporário: %s" + +-#: locale/programs/ld-monetary.c:369 locale/programs/ld-numeric.c:193 ++#: locale/programs/locarchive.c:167 locale/programs/locarchive.c:430 + #, c-format +-msgid "`-1' must be last entry in `%s' field in `%s' category" +-msgstr "`-1' deve ser o último registro no `%s' campo na `%s' categoria" +- +-#: locale/programs/ld-collate.c:1666 +-msgid "`...' must only be used in `...' and `UNDEFINED' entries" +-msgstr "`...' deve ser usado apenas em `...' e entradas `UNDEFINED'" +- +-#: locale/programs/locfile.c:668 +-msgid "`from' expected after first argument to `collating-element'" +-msgstr "`from' esperado após primeiro argumento para `collating-element'" +- +-#: locale/programs/ld-collate.c:1118 +-msgid "`from' string in collation element declaration contains unknown character" +-msgstr "string `from' na declaração de elemento de comparação contém caracter desconhecido" ++msgid "cannot initialize archive file" ++msgstr "não foi possível inicializar o arquivo do pacote" + +-#: posix/../sysdeps/posix/gai_strerror.c:34 +-msgid "ai_family not supported" +-msgstr "Família de protocolo (ai_family) não suportada" +- +-#: posix/../sysdeps/posix/gai_strerror.c:39 +-msgid "ai_socktype not supported" +-msgstr "Tipo socket (ai_socktype) não suportado" +- +-#: nscd/nscd.c:121 +-msgid "already running" +-msgstr "já está rodando" +- +-#: locale/programs/charmap.c:352 locale/programs/repertoire.c:152 ++#: locale/programs/locarchive.c:174 locale/programs/locarchive.c:437 + #, c-format +-msgid "argument to <%s> must be a single character" +-msgstr "argumento para <%s> deve ser um caracter simples" ++msgid "cannot resize archive file" ++msgstr "não foi possível redimensionar o arquivo do pacote" + +-#: locale/programs/locfile.c:240 ++#: locale/programs/locarchive.c:189 locale/programs/locarchive.c:452 ++#: locale/programs/locarchive.c:674 + #, c-format +-msgid "argument to `%s' must be a single character" +-msgstr "argumento para `%s' deve ser um caracter simples" +- +-#: sunrpc/auth_unix.c:321 +-msgid "auth_none.c - Fatal marshalling problem" +-msgstr "auth_none.c - Problema fatal de marshalling" +- +-#: sunrpc/auth_unix.c:116 sunrpc/auth_unix.c:122 sunrpc/auth_unix.c:151 +-msgid "authunix_create: out of memory\n" +-msgstr "authunix_create: não há memória suficiente\n" +- +-#: locale/programs/charmap.c:297 locale/programs/locfile.c:234 +-#: locale/programs/locfile.c:261 locale/programs/repertoire.c:144 +-msgid "bad argument" +-msgstr "argumento inválido" +- +-#: inet/rcmd.c:318 +-msgid "bad owner" +-msgstr "dono inválido" +- +-#: timezone/zic.c:1185 +-msgid "blank FROM field on Link line" +-msgstr "campo FROM em branco na linha Link" +- +-#: timezone/zic.c:1189 +-msgid "blank TO field on Link line" +-msgstr "campo TO em branco na linha Link" +- +-#: malloc/mcheck.c:208 +-msgid "block freed twice\n" +-msgstr "bloco liberado duas vezes\n" +- +-#: malloc/mcheck.c:211 +-msgid "bogus mcheck_status, library is buggy\n" +-msgstr "mcheck_status inválido, biblioteca está com problemas\n" +- +-#: sunrpc/pmap_rmt.c:185 +-msgid "broadcast: ioctl (get interface configuration)" +-msgstr "broadcast: ioctl (obter configuração de interface)" ++msgid "cannot map archive header" ++msgstr "não foi possível mapear o cabeçalho do pacote" + +-#: sunrpc/pmap_rmt.c:194 +-msgid "broadcast: ioctl (get interface flags)" +-msgstr "broadcast: ioctl (obter flags de interface)" +- +-#: login/programs/request.c:167 +-msgid "buffer overflow" +-msgstr "estouro de buffer" +- +-#: sunrpc/svc_udp.c:446 +-msgid "cache_set: could not allocate new rpc_buffer" +-msgstr "cache_set: não foi possível alocar novo rpc_buffer" +- +-#: sunrpc/svc_udp.c:440 +-msgid "cache_set: victim alloc failed" +-msgstr "cache_set: alocação de vítima falhou" ++#: locale/programs/locarchive.c:211 ++#, c-format ++msgid "failed to create new locale archive" ++msgstr "falha ao criar o novo pacote de localidade" + +-#: sunrpc/svc_udp.c:429 +-msgid "cache_set: victim not found" +-msgstr "cache_set: vítima não localizada" ++#: locale/programs/locarchive.c:223 ++#, c-format ++msgid "cannot change mode of new locale archive" ++msgstr "não foi possível alterar o modo do novo arquivo de localidade" + +-#: timezone/zic.c:1726 +-msgid "can't determine time zone abbreviation to use just after until time" +-msgstr "não é possível determinar abreviação para zona de tempo" ++#: locale/programs/locarchive.c:324 ++msgid "cannot read data from locale archive" ++msgstr "não foi possível ler dados do pacote de localidade" + +-#: sunrpc/svc_simple.c:75 ++#: locale/programs/locarchive.c:355 + #, c-format +-msgid "can't reassign procedure number %d\n" +-msgstr "não é possível reassinalar número de procedimento %d\n" ++msgid "cannot map locale archive file" ++msgstr "não foi possível mapear o arquivo do pacote de localidade" + +-#: locale/programs/localedef.c:279 ++#: locale/programs/locarchive.c:460 + #, c-format +-msgid "cannot `stat' locale file `%s'" +-msgstr "não é possível acessar arquivo de locale `%s'" ++msgid "cannot lock new archive" ++msgstr "não foi possível travar o novo pacote" + +-#: elf/sprof.c:935 elf/sprof.c:987 +-msgid "cannot allocate symbol data" +-msgstr "Não foi possível alocar memória" ++#: locale/programs/locarchive.c:529 ++#, c-format ++msgid "cannot extend locale archive file" ++msgstr "não foi possível estender o arquivo do pacote de localidade" + +-#: elf/sprof.c:719 elf/sprof.c:777 +-msgid "cannot create internal descriptor" +-msgstr "não é possível criar descritor interno" ++#: locale/programs/locarchive.c:538 ++#, c-format ++msgid "cannot change mode of resized locale archive" ++msgstr "não foi possível alterar o modo do arquivo de localidade redimensionado" + +-#: elf/sprof.c:417 +-msgid "cannot create internal descriptors" +-msgstr "não é possivel criar descritores internos" ++#: locale/programs/locarchive.c:546 ++#, c-format ++msgid "cannot rename new archive" ++msgstr "não foi possível renomear o novo pacote" + +-#: nscd/connections.c:180 ++#: locale/programs/locarchive.c:608 + #, c-format +-msgid "cannot enable socket to accept connections: %s" +-msgstr "impossível habilitar soquete para aceitar conecções: %s" ++msgid "cannot open locale archive \"%s\"" ++msgstr "não foi possível abrir pacote de localidade “%s”" + +-#: sunrpc/rpc_main.c:342 ++#: locale/programs/locarchive.c:613 + #, c-format +-msgid "cannot find C preprocessor: %s \n" +-msgstr "impossível encontrar pré-processador C: %s\n" ++msgid "cannot stat locale archive \"%s\"" ++msgstr "não foi possível obter estado do pacote de localidade “%s”" + +-#: sunrpc/rpc_main.c:350 +-msgid "cannot find any C preprocessor (cpp)\n" +-msgstr "impossível encontrar qualquer pré-processador C (cpp)\n" ++#: locale/programs/locarchive.c:632 ++#, c-format ++msgid "cannot lock locale archive \"%s\"" ++msgstr "não foi possível travar o pacote de localidade “%s”" + +-#: nscd/connections.c:205 ++#: locale/programs/locarchive.c:655 + #, c-format +-msgid "cannot handle old request version %d; current version is %d" +-msgstr "impossível lidar com requisições de versões antigas %d; a versão atual é %d" ++msgid "cannot read archive header" ++msgstr "não foi possível ler o cabeçalho do pacote" + +-#: locale/programs/ld-collate.c:1324 ++#: locale/programs/locarchive.c:728 + #, c-format +-msgid "cannot insert collation element `%.*s'" +-msgstr "não é possível inserir elemento de comparação `%.*s'" ++msgid "locale '%s' already exists" ++msgstr "localidade “%s” já existe" + +-#: locale/programs/ld-collate.c:1503 locale/programs/ld-collate.c:1510 +-msgid "cannot insert into result table" +-msgstr "não é possível inserir na tabela de resultados" ++#: locale/programs/locarchive.c:1003 locale/programs/locarchive.c:1018 ++#: locale/programs/locarchive.c:1030 locale/programs/locarchive.c:1042 ++#: locale/programs/locfile.c:350 ++#, c-format ++msgid "cannot add to locale archive" ++msgstr "não foi possível adicionar ao pacote de localidade" + +-#: locale/programs/ld-collate.c:1175 locale/programs/ld-collate.c:1218 ++#: locale/programs/locarchive.c:1203 + #, c-format +-msgid "cannot insert new collating symbol definition: %s" +-msgstr "não é possível inserir nova definição de símbolo de comparação: %s" ++msgid "locale alias file `%s' not found" ++msgstr "arquivo de apelido de localidade “%s” não localizado" + +-#: elf/sprof.c:674 +-msgid "cannot load profiling data" +-msgstr "impossível carregar perfis de dados" ++#: locale/programs/locarchive.c:1351 ++#, c-format ++msgid "Adding %s\n" ++msgstr "Adicionando %s\n" + +-#: inet/rcmd.c:314 +-msgid "cannot open" +-msgstr "impossível abrir" ++#: locale/programs/locarchive.c:1357 ++#, c-format ++msgid "stat of \"%s\" failed: %s: ignored" ++msgstr "obtenção de estado de “%s” falhou: %s: ignorado" + +-#: sysdeps/unix/sysv/linux/lddlibc4.c:64 ++#: locale/programs/locarchive.c:1363 + #, c-format +-msgid "cannot open `%s'" +-msgstr "não é possível abrir `%s'" ++msgid "\"%s\" is no directory; ignored" ++msgstr "“%s” não é um diretório; ignorado" + +-#: db2/makedb.c:146 ++#: locale/programs/locarchive.c:1370 + #, c-format +-msgid "cannot open database file `%s': %s" +-msgstr "não é possível abrir arquivo de banco de dados `%s': %s" ++msgid "cannot open directory \"%s\": %s: ignored" ++msgstr "não foi possível abrir o diretório “%s”: %s: ignorado" + +-#: catgets/gencat.c:272 db2/makedb.c:167 iconv/iconv_prog.c:177 ++#: locale/programs/locarchive.c:1438 + #, c-format +-msgid "cannot open input file `%s'" +-msgstr "não é possível abrir arquivo de entrada `%s'" ++msgid "incomplete set of locale files in \"%s\"" ++msgstr "definição incompleta dos arquivos de localização em “%s”" + +-#: locale/programs/localedef.c:198 ++#: locale/programs/locarchive.c:1502 + #, c-format +-msgid "cannot open locale definition file `%s'" +-msgstr "não é possível abrir arquivo de definição locale `%s'" ++msgid "cannot read all files in \"%s\": ignored" ++msgstr "não foi possível ler todos os arquivos em “%s”: ignorado" + +-#: iconv/iconv_prog.c:155 +-msgid "cannot open output file" +-msgstr "não é possível abrir arquivo de saída" ++#: locale/programs/locarchive.c:1572 ++#, c-format ++msgid "locale \"%s\" not in archive" ++msgstr "localidade “%s” não está no pacote" + +-#: catgets/gencat.c:774 catgets/gencat.c:815 db2/makedb.c:181 ++#: locale/programs/locfile.c:137 + #, c-format +-msgid "cannot open output file `%s'" +-msgstr "não é possível abrir arquivo de saída `%s'" ++msgid "argument to `%s' must be a single character" ++msgstr "argumento para “%s” deve ser um caractere simples" ++ ++#: locale/programs/locfile.c:257 ++msgid "syntax error: not inside a locale definition section" ++msgstr "erro de sintaxe: não está dentro de uma seção de definição de localidade" + +-#: locale/programs/locfile.c:1129 ++#: locale/programs/locfile.c:799 + #, c-format + msgid "cannot open output file `%s' for category `%s'" +-msgstr "não é possível abrir arquivo de saída `%s' para categoria `%s'" ++msgstr "não foi possível abrir o arquivo de saída “%s” para a categoria “%s”" + +-#: nscd/connections.c:162 ++#: locale/programs/locfile.c:822 + #, c-format +-msgid "cannot open socket: %s" +-msgstr "não é possível abrir soquete: `%s'" +- +-#: locale/programs/ld-collate.c:1370 +-msgid "cannot process order specification" +-msgstr "não é possível processar specificação de ordem" ++msgid "failure while writing data for category `%s'" ++msgstr "falha ao escrever dados para categoria “%s”" + +-#: locale/programs/locale.c:449 ++#: locale/programs/locfile.c:917 + #, c-format +-msgid "cannot read character map directory `%s'" +-msgstr "não é possível ler diretório de mapa de caracter `%s'" ++msgid "cannot create output file `%s' for category `%s'" ++msgstr "não foi possível criar o arquivo de saída “%s” para a categoria “%s”" + +-#: nscd/connections.c:122 +-msgid "cannot read configuration file; this is fatal" +-msgstr "impossível ler arquivo de configuração; isto é fatal" ++#: locale/programs/locfile.c:953 ++msgid "expecting string argument for `copy'" ++msgstr "esperando argumento em string para “copy”" + +-#: login/programs/request.c:91 +-msgid "cannot read from client" +-msgstr "não é possível ler do cliente" ++#: locale/programs/locfile.c:957 ++msgid "locale name should consist only of portable characters" ++msgstr "nome de localidade deve consistir apenas em caracteres portáteis" + +-#: sysdeps/unix/sysv/linux/lddlibc4.c:68 +-#, c-format +-msgid "cannot read header from `%s'" +-msgstr "não é possível ler cabeçalho de `%s'" ++#: locale/programs/locfile.c:976 ++msgid "no other keyword shall be specified when `copy' is used" ++msgstr "nenhuma outra palavra-chave deve ser especificada quando “copy” é usado" + +-#: locale/programs/locale.c:306 ++#: locale/programs/locfile.c:990 + #, c-format +-msgid "cannot read locale directory `%s'" +-msgstr "não é possível ler diretório locale `%s'" ++msgid "`%1$s' definition does not end with `END %1$s'" ++msgstr "“%1$s” definição não termina com “END %1$s”" + +-#: locale/programs/localedef.c:303 ++#: locale/programs/repertoire.c:228 locale/programs/repertoire.c:269 ++#: locale/programs/repertoire.c:294 + #, c-format +-msgid "cannot read locale file `%s'" +-msgstr "não é possível ler arquivo locale `%s'" ++msgid "syntax error in repertoire map definition: %s" ++msgstr "erro de sintaxe no mapa de repertório: %s" + +-#: locale/programs/locfile.c:288 locale/programs/locfile.c:306 +-#: locale/programs/locfile.c:324 locale/programs/locfile.c:342 +-#: locale/programs/locfile.c:360 locale/programs/locfile.c:378 +-#, c-format +-msgid "cannot read repertoire map `%s'" +-msgstr "não é possível ler mapa de repertório `%s'" ++#: locale/programs/repertoire.c:270 ++msgid "no or value given" ++msgstr "valores ou não dados" + +-#: nscd/nscd_stat.c:127 +-msgid "cannot read statistics data" +-msgstr "impossível ler dados de estatística" ++#: locale/programs/repertoire.c:330 ++msgid "cannot save new repertoire map" ++msgstr "não foi possível salvar novo mapa de repertório" + +-#: nscd/cache.c:141 nscd/connections.c:148 ++#: locale/programs/repertoire.c:341 + #, c-format +-msgid "cannot stat() file `%s': %s" +-msgstr "não é possível ler atributos do arquivo `%s': %s" ++msgid "repertoire map file `%s' not found" ++msgstr "arquivo de mapa de repertório “%s” não foi encontrado" + +-#: locale/programs/localedef.c:328 ++#: login/programs/pt_chown.c:79 + #, c-format +-msgid "cannot write output files to `%s'" +-msgstr "não é possível escrever arquivo de saída para `%s'" ++msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'. This is the helper program for the `grantpt' function. It is not intended to be run directly from the command line.\n" ++msgstr "Define o dono, grupo e permissão de acesso ao pseudoterminal escravo correspondente ao pseudoterminal mestre passado no descritor de arquivo “%d”. Esse é um programa auxiliar para a função “grantpt”. Ele não tem a intenção de ser executado diretamente da linha de comando.\n" + +-#: nscd/connections.c:229 nscd/connections.c:250 ++#: login/programs/pt_chown.c:93 + #, c-format +-msgid "cannot write result: %s" +-msgstr "não é possível escrever resultado: %s" ++msgid "" ++"The owner is set to the current user, the group is set to `%s', and the access permission is set to `%o'.\n" ++"\n" ++"%s" ++msgstr "" ++"O dono está definido como o usuário atual, o grupo está definido para “%s” e a permissão de acesso está definida para “%o”.\n" ++"\n" ++"%s" + +-#: nscd/nscd_stat.c:86 ++#: login/programs/pt_chown.c:204 + #, c-format +-msgid "cannot write statistics: %s" +-msgstr "não é possível escrever estatisticas: %s" ++msgid "too many arguments" ++msgstr "número excessivo de argumentos" + +-#: login/programs/request.c:120 +-msgid "cannot write to client" +-msgstr "não é possível escrever para o cliente" ++#: login/programs/pt_chown.c:212 ++#, c-format ++msgid "needs to be installed setuid `root'" ++msgstr "precisa ser instalado com setuid “root”" + +-#: locale/programs/localedef.c:442 +-msgid "category data requested more than once: should not happen" +-msgstr "categoria de dados requisitada mais que uma vez: isto não deveria acontecer" ++#: malloc/mcheck.c:344 ++msgid "memory is consistent, library is buggy\n" ++msgstr "a memória está consistente; a biblioteca está problemática\n" + +-#: locale/programs/ld-ctype.c:269 +-#, c-format +-msgid "character %s'%s' in class `%s' must be in class `%s'" +-msgstr "caracter %s'%s' na classe `%s' deve estar na classe `%s'" ++#: malloc/mcheck.c:347 ++msgid "memory clobbered before allocated block\n" ++msgstr "memória sobrescrita antes do bloco alocado\n" + +-#: locale/programs/ld-ctype.c:294 +-#, c-format +-msgid "character %s'%s' in class `%s' must not be in class `%s'" +-msgstr "caracter %s'%s' na classe `%s' não deve estar na classe `%s'" ++#: malloc/mcheck.c:350 ++msgid "memory clobbered past end of allocated block\n" ++msgstr "memória sobrescrita após o fim do bloco alocado\n" + +-#: locale/programs/ld-ctype.c:320 +-msgid "character not defined in character map" +-msgstr "caracter não definido no mapa de caracteres" ++#: malloc/mcheck.c:353 ++msgid "block freed twice\n" ++msgstr "bloco liberado duas vezes\n" + +-#: locale/programs/ld-ctype.c:964 locale/programs/ld-ctype.c:1029 +-#: locale/programs/ld-ctype.c:1040 locale/programs/ld-ctype.c:1051 +-#: locale/programs/ld-ctype.c:1062 locale/programs/ld-ctype.c:1073 +-#: locale/programs/ld-ctype.c:1084 locale/programs/ld-ctype.c:1113 +-#: locale/programs/ld-ctype.c:1124 locale/programs/ld-ctype.c:1165 +-#: locale/programs/ld-ctype.c:1194 locale/programs/ld-ctype.c:1206 +-#, c-format +-msgid "character `%s' not defined while needed as default value" +-msgstr "caracter `%s' não definido enquanto necessário como valor default" ++#: malloc/mcheck.c:356 ++msgid "bogus mcheck_status, library is buggy\n" ++msgstr "mcheck_status inválido; a biblioteca está problemática\n" + +-#: locale/programs/ld-ctype.c:825 +-#, c-format +-msgid "character class `%s' already defined" +-msgstr "classe de caracter `%s' já definida" ++#: malloc/memusage.sh:32 ++msgid "%s: option '%s' requires an argument\\n" ++msgstr "%s: a opção “%s” requer um argumento\\n" + +-#: locale/programs/ld-ctype.c:857 +-#, c-format +-msgid "character map `%s' already defined" +-msgstr "mapa de caracteres `%s' já definido" ++#: malloc/memusage.sh:38 ++msgid "" ++"Usage: memusage [OPTION]... PROGRAM [PROGRAMOPTION]...\n" ++"Profile memory usage of PROGRAM.\n" ++"\n" ++" -n,--progname=NAME Name of the program file to profile\n" ++" -p,--png=FILE Generate PNG graphic and store it in FILE\n" ++" -d,--data=FILE Generate binary data file and store it in FILE\n" ++" -u,--unbuffered Don't buffer output\n" ++" -b,--buffer=SIZE Collect SIZE entries before writing them out\n" ++" --no-timer Don't collect additional information through timer\n" ++" -m,--mmap Also trace mmap & friends\n" ++"\n" ++" -?,--help Print this help and exit\n" ++" --usage Give a short usage message\n" ++" -V,--version Print version information and exit\n" ++"\n" ++" The following options only apply when generating graphical output:\n" ++" -t,--time-based Make graph linear in time\n" ++" -T,--total Also draw graph of total memory use\n" ++" --title=STRING Use STRING as title of the graph\n" ++" -x,--x-size=SIZE Make graphic SIZE pixels wide\n" ++" -y,--y-size=SIZE Make graphic SIZE pixels high\n" ++"\n" ++"Mandatory arguments to long options are also mandatory for any corresponding\n" ++"short options.\n" ++"\n" ++msgstr "" ++"Uso: memusage [OPÇÃO]... PROGRAMA [OPÇÃO-PROGRAMA]...\n" ++"Perfila o uso de memória do PROGRAMA.\n" ++"\n" ++" -n,--progname=NOME Nome do arquivo de programa a perfilar\n" ++" -p,--png=ARQUIVO Gera um gráfico em PNG e o armazena em ARQUIVO\n" ++" -d,--data=ARQUIVO Gera um arquivo de dados binários e o armazena \n" ++" em ARQUIVO\n" ++" -u,--unbuffered Não utiliza buffer na saída\n" ++" -b,--buffer=TAM Coleta TAM registros antes de escrevê-los na saída\n" ++" --no-timer Não coleta informações adicionais do temporizador\n" ++" -m,--mmap Também rastreia mmap & amigos\n" ++"\n" ++" -?,--help Exibe essa ajuda e sai\n" ++" --usage Fornece uma curta mensagem de uso\n" ++" -V,--version Exibe informação da versão e sai\n" ++"\n" ++" As seguintes opções se aplicam apenas ao gerar saída gráfica:\n" ++" -t,--time-based Cria um gráfico linear no tempo\n" ++" -T,--total Também desenha um gráfico do uso total de memória\n" ++" --title=TEXTO Usa TEXTO como título do gráfico\n" ++" -x,--x-size=TAM Faz com que o gráfico tenha TAM pixels de largura\n" ++" -y,--y-size=TAM Faz com que o gráfico tenha TAM pixels de altura\n" ++"\n" ++"Argumentos obrigatórios para opções longas são também obrigatórios para\n" ++"qualquer opção curta correspondente.\n" ++"\n" + +-#: locale/programs/charmap.c:83 +-#, c-format +-msgid "character map file `%s' not found" +-msgstr "arquivo de mapa de caracter `%s' não foi localizado" ++# Usei "Uso:" para caber tudo na mesma linha e para padronizar -- Rafael ++#: malloc/memusage.sh:99 ++msgid "" ++"Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]\n" ++"\t [--buffer=SIZE] [--no-timer] [--time-based] [--total]\n" ++"\t [--title=STRING] [--x-size=SIZE] [--y-size=SIZE]\n" ++"\t PROGRAM [PROGRAMOPTION]..." ++msgstr "" ++"Uso: memusage [--data=ARQUIVO] [--progname=NOME] [--png=ARQUIVO] [--unbuffered]\n" ++"\t [--buffer=TAM] [--no-timer] [--time-based] [--total]\n" ++"\t [--title=TEXTO] [--x-size=TAM] [--y-size=TAM]\n" ++"\t PROGRAMA [OPÇÃO-PROGRAMA]..." + +-#: sunrpc/clnt_raw.c:110 +-msgid "clnt_raw.c - Fatal header serialization error." +-msgstr "clnt_raw.c - Erro fatal no cabeçalho de serialização." ++#: malloc/memusage.sh:191 ++msgid "memusage: option \\`${1##*=}' is ambiguous" ++msgstr "memusage: opção “${1##*=}” é ambígua" + +-#: sunrpc/clnt_tcp.c:125 sunrpc/clnt_tcp.c:133 +-msgid "clnttcp_create: out of memory\n" +-msgstr "clnttcp_create: não há memória suficiente\n" ++#: malloc/memusage.sh:200 ++msgid "memusage: unrecognized option \\`$1'" ++msgstr "memusage: opção não reconhecida “$1”" + +-#: sunrpc/clnt_udp.c:124 sunrpc/clnt_udp.c:134 +-msgid "clntudp_create: out of memory\n" +-msgstr "clntudp_create: não há memória suficiente\n" ++#: malloc/memusage.sh:213 ++msgid "No program name given" ++msgstr "Nenhum nome de programa fornecido" + +-#: sunrpc/clnt_unix.c:123 sunrpc/clnt_unix.c:131 +-msgid "clntunix_create: out of memory\n" +-msgstr "clntunix_reate: não há memória suficiente\n" ++#: malloc/memusagestat.c:56 ++msgid "Name output file" ++msgstr "Nome do arquivo de saída" + +-#: locale/programs/ld-collate.c:1339 +-#, c-format +-msgid "collation element `%.*s' appears more than once: ignore line" +-msgstr "o elemento de comparação `%.*s' aparece mais que uma vez: ignorar linha" ++#: malloc/memusagestat.c:57 ++msgid "STRING" ++msgstr "TEXTO" + +-#: locale/programs/ld-collate.c:1357 +-#, c-format +-msgid "collation symbol `%.*s' appears more than once: ignore line" +-msgstr "o símbolo de comparação `%.*s' aparece mais que uma vez: ignorar linha" ++#: malloc/memusagestat.c:57 ++msgid "Title string used in output graphic" ++msgstr "Texto do título usado no gráfico de saída" + +-#: locale/programs/locfile.c:652 +-#, c-format +-msgid "collation symbol expected after `%s'" +-msgstr "símbolo de comparação esperado após `%s'" ++#: malloc/memusagestat.c:58 ++msgid "Generate output linear to time (default is linear to number of function calls)" ++msgstr "Gera uma saída linear no tempo (padrão é linear ao número de chamadas de função)" + +-#: inet/rcmd.c:136 +-#, c-format +-msgid "connect to address %s: " +-msgstr "connectar-se ao endereço %s: " ++#: malloc/memusagestat.c:62 ++msgid "Also draw graph for total memory consumption" ++msgstr "Também desenha um gráfico de consumo total de memória" + +-#: sunrpc/rpc_scan.c:115 +-msgid "constant or identifier expected" +-msgstr "identificador ou constante esperado" ++#: malloc/memusagestat.c:63 ++msgid "VALUE" ++msgstr "VALOR" + +-#: iconv/iconv_prog.c:144 +-#, c-format +-msgid "conversion from `%s' to `%s' not supported" +-msgstr "conversão de `%s' para `%s' não é suportada" ++#: malloc/memusagestat.c:64 ++msgid "Make output graphic VALUE pixels wide" ++msgstr "Fazer um gráfico de saída com VALOR pixels de largura" + +-#: iconv/iconv_prog.c:326 +-msgid "conversion stopped due to problem in writing the output" +-msgstr "a conversão parou devido a problemas de escrita na saída" ++#: malloc/memusagestat.c:65 ++msgid "Make output graphic VALUE pixels high" ++msgstr "Fazer um gráfico de saída com VALOR pixels de altura" + +-#: sunrpc/svc_simple.c:83 +-msgid "couldn't create an rpc server\n" +-msgstr "não foi possível criar um servidor rpc\n" ++#: malloc/memusagestat.c:70 ++msgid "Generate graphic from memory profiling data" ++msgstr "Gera um gráfico a partir dos dados de perfilamento de memória" + +-#: sunrpc/svc_simple.c:91 +-#, c-format +-msgid "couldn't register prog %d vers %d\n" +-msgstr "não foi possível registrar prog %d vers %d\n" ++#: malloc/memusagestat.c:73 ++msgid "DATAFILE [OUTFILE]" ++msgstr "ARQUIVO-DADOS [ARQUIVO-SAÍDA]" + +-#: nss/getent.c:49 +-msgid "database [key ...]" +-msgstr "base de dados [chave ...]" ++#: misc/error.c:192 ++msgid "Unknown system error" ++msgstr "Erro desconhecido de sistema" ++ ++#: nis/nis_callback.c:188 ++msgid "unable to free arguments" ++msgstr "não foi possível liberar argumentos" ++ ++#: nis/nis_error.h:1 nis/ypclnt.c:824 nis/ypclnt.c:913 posix/regcomp.c:137 ++#: sysdeps/gnu/errlist.c:21 ++msgid "Success" ++msgstr "Sucesso" ++ ++#: nis/nis_error.h:2 ++msgid "Probable success" ++msgstr "Sucesso provável" ++ ++#: nis/nis_error.h:3 ++msgid "Not found" ++msgstr "Não localizado" ++ ++#: nis/nis_error.h:4 ++msgid "Probably not found" ++msgstr "Provavelmente não encontrado" ++ ++#: nis/nis_error.h:5 ++msgid "Cache expired" ++msgstr "Tempo expirado" ++ ++#: nis/nis_error.h:6 ++msgid "NIS+ servers unreachable" ++msgstr "Servidores NIS+ fora do alcance" ++ ++#: nis/nis_error.h:7 ++msgid "Unknown object" ++msgstr "Objeto desconhecido" ++ ++#: nis/nis_error.h:8 ++msgid "Server busy, try again" ++msgstr "Servidor ocupado, tente novamente" ++ ++#: nis/nis_error.h:9 ++msgid "Generic system error" ++msgstr "Erro genérico de sistema" ++ ++#: nis/nis_error.h:10 ++msgid "First/next chain broken" ++msgstr "Primeira/próxima corrente quebrada" ++ ++#. TRANS The file permissions do not allow the attempted operation. ++#: nis/nis_error.h:11 nis/ypclnt.c:869 sysdeps/gnu/errlist.c:158 ++msgid "Permission denied" ++msgstr "Permissão negada" ++ ++#: nis/nis_error.h:12 ++msgid "Not owner" ++msgstr "Dono inválido" ++ ++#: nis/nis_error.h:13 ++msgid "Name not served by this server" ++msgstr "Nome não servido por este servidor" ++ ++#: nis/nis_error.h:14 ++msgid "Server out of memory" ++msgstr "Memória do servidor exaurida" ++ ++#: nis/nis_error.h:15 ++msgid "Object with same name exists" ++msgstr "Um objeto com o mesmo nome existe" ++ ++#: nis/nis_error.h:16 ++msgid "Not master server for this domain" ++msgstr "Não é um servidor mestre para este domínio" ++ ++#: nis/nis_error.h:17 ++msgid "Invalid object for operation" ++msgstr "Objeto inválido para a operação" ++ ++#: nis/nis_error.h:18 ++msgid "Malformed name, or illegal name" ++msgstr "Nome malformado ou nome ilegal" ++ ++#: nis/nis_error.h:19 ++msgid "Unable to create callback" ++msgstr "Impossível criar retorno de chamada" ++ ++#: nis/nis_error.h:20 ++msgid "Results sent to callback proc" ++msgstr "Resultados enviados para o processo de retorno chamada" ++ ++#: nis/nis_error.h:21 ++msgid "Not found, no such name" ++msgstr "Não localizado, nome inexistente" ++ ++#: nis/nis_error.h:22 ++msgid "Name/entry isn't unique" ++msgstr "Nome/entrada não é único" ++ ++#: nis/nis_error.h:23 ++msgid "Modification failed" ++msgstr "Modificação falhou" ++ ++#: nis/nis_error.h:24 ++msgid "Database for table does not exist" ++msgstr "Banco de dados para a tabela não existe" ++ ++#: nis/nis_error.h:25 ++msgid "Entry/table type mismatch" ++msgstr "Tipo de entrada/tabela incompatível" ++ ++#: nis/nis_error.h:26 ++msgid "Link points to illegal name" ++msgstr "Link aponta para um nome ilegal" ++ ++#: nis/nis_error.h:27 ++msgid "Partial success" ++msgstr "Sucesso parcial" ++ ++#: nis/nis_error.h:28 ++msgid "Too many attributes" ++msgstr "Número excessivo de atributos" ++ ++#: nis/nis_error.h:29 ++msgid "Error in RPC subsystem" ++msgstr "Erro no subsistema RPC" ++ ++#: nis/nis_error.h:30 ++msgid "Missing or malformed attribute" ++msgstr "Atributo perdido ou malformado" ++ ++#: nis/nis_error.h:31 ++msgid "Named object is not searchable" ++msgstr "Objeto nomeado não é pesquisável" ++ ++#: nis/nis_error.h:32 ++msgid "Error while talking to callback proc" ++msgstr "Erro durante a chamada a processo de retorno de chamada" ++ ++#: nis/nis_error.h:33 ++msgid "Non NIS+ namespace encountered" ++msgstr "Espaço de nomes não-NIS+ encontrado" ++ ++#: nis/nis_error.h:34 ++msgid "Illegal object type for operation" ++msgstr "Tipo ilegal de objeto para a operação" ++ ++#: nis/nis_error.h:35 ++msgid "Passed object is not the same object on server" ++msgstr "Objeto passado não é o mesmo objeto no servidor" ++ ++#: nis/nis_error.h:36 ++msgid "Modify operation failed" ++msgstr "Operação de modificação falhou" ++ ++#: nis/nis_error.h:37 ++msgid "Query illegal for named table" ++msgstr "Pergunta ilegal para tabela nominada" ++ ++#: nis/nis_error.h:38 ++msgid "Attempt to remove a non-empty table" ++msgstr "Tentativa de remoção de uma tabela não vazia" ++ ++#: nis/nis_error.h:39 ++msgid "Error in accessing NIS+ cold start file. Is NIS+ installed?" ++msgstr "Erro acessando arquivo inicial do NIS+. O NIS+ está instalado?" ++ ++#: nis/nis_error.h:40 ++msgid "Full resync required for directory" ++msgstr "Nova sincronização total necessária para o diretório" ++ ++#: nis/nis_error.h:41 ++msgid "NIS+ operation failed" ++msgstr "Operação NIS+ falhou" ++ ++#: nis/nis_error.h:42 ++msgid "NIS+ service is unavailable or not installed" ++msgstr "Serviço NIS+ está indisponível ou não está instalado" ++ ++#: nis/nis_error.h:43 ++msgid "Yes, 42 is the meaning of life" ++msgstr "Sim, 42 é o sentido da vida" ++ ++#: nis/nis_error.h:44 ++msgid "Unable to authenticate NIS+ server" ++msgstr "Não foi possível autenticar servidor NIS+" ++ ++#: nis/nis_error.h:45 ++msgid "Unable to authenticate NIS+ client" ++msgstr "Não foi possível autenticar cliente NIS+" ++ ++#: nis/nis_error.h:46 ++msgid "No file space on server" ++msgstr "Não há espaço disponível no servidor" + +-#: locale/programs/charmap.c:170 ++#: nis/nis_error.h:47 ++msgid "Unable to create process on server" ++msgstr "Não foi possível criar processo no servidor" ++ ++#: nis/nis_error.h:48 ++msgid "Master server busy, full dump rescheduled." ++msgstr "Servidor mestre ocupado, descarregamento completo (dump) remarcado." ++ ++#: nis/nis_local_names.c:122 + #, c-format +-msgid "default character map file `%s' not found" +-msgstr "arquivo default de mapa de caracter `%s' não localizado" ++msgid "LOCAL entry for UID %d in directory %s not unique\n" ++msgstr "Entrada LOCAL para UID %d no diretório %s não é única\n" ++ ++#: nis/nis_print.c:52 ++msgid "UNKNOWN" ++msgstr "DESCONHECIDO" ++ ++#: nis/nis_print.c:110 ++msgid "BOGUS OBJECT\n" ++msgstr "OBJETO FALSO\n" ++ ++#: nis/nis_print.c:113 ++msgid "NO OBJECT\n" ++msgstr "SEM OBJETO\n" ++ ++#: nis/nis_print.c:116 ++msgid "DIRECTORY\n" ++msgstr "DIRETÓRIO\n" ++ ++#: nis/nis_print.c:119 ++msgid "GROUP\n" ++msgstr "GRUPO\n" ++ ++#: nis/nis_print.c:122 ++msgid "TABLE\n" ++msgstr "TABELA\n" ++ ++#: nis/nis_print.c:125 ++msgid "ENTRY\n" ++msgstr "ENTRADA\n" ++ ++#: nis/nis_print.c:128 ++msgid "LINK\n" ++msgstr "LINK\n" ++ ++#: nis/nis_print.c:131 ++msgid "PRIVATE\n" ++msgstr "PRIVADO\n" + +-#: locale/programs/ld-time.c:163 ++#: nis/nis_print.c:134 ++msgid "(Unknown object)\n" ++msgstr "(Objeto desconhecido)\n" ++ ++#: nis/nis_print.c:168 + #, c-format +-msgid "direction flag in string %d in `era' field in category `%s' is not '+' nor '-'" +-msgstr "flag de direção na string %d no campo `era', categoria `%s', não é '+'nem '_'" ++msgid "Name : `%s'\n" ++msgstr "Nome : “%s”\n" + +-#: locale/programs/ld-time.c:174 ++#: nis/nis_print.c:169 + #, c-format +-msgid "direction flag in string %d in `era' field in category `%s' is not a single character" +-msgstr "flag de direção na string %d no campo `era', categoria `%s', não é um caracter simples" ++msgid "Type : %s\n" ++msgstr "Tipo : %s\n" ++ ++#: nis/nis_print.c:174 ++msgid "Master Server :\n" ++msgstr "Servidor mestre :\n" ++ ++#: nis/nis_print.c:176 ++msgid "Replicate :\n" ++msgstr "Duplicado :\n" + +-#: locale/programs/charset.c:64 locale/programs/charset.c:118 ++#: nis/nis_print.c:177 + #, c-format +-msgid "duplicate character name `%s'" +-msgstr "nome de caracter duplicado `%s'" ++msgid "\tName : %s\n" ++msgstr "\tNome : %s\n" + +-#: locale/programs/ld-collate.c:1150 +-msgid "duplicate collating element definition" +-msgstr "definição de elemento de comparação duplicada" ++#: nis/nis_print.c:178 ++msgid "\tPublic Key : " ++msgstr "\tChave pública : " ++ ++#: nis/nis_print.c:182 ++msgid "None.\n" ++msgstr "nenhum.\n" + +-#: locale/programs/ld-collate.c:1297 ++#: nis/nis_print.c:185 + #, c-format +-msgid "duplicate definition for character `%.*s'" +-msgstr "definição para caracter duplicada `%.*s'" ++msgid "Diffie-Hellmann (%d bits)\n" ++msgstr "Diffie-Hellman (%d bits)\n" + +-#: db2/makedb.c:328 +-msgid "duplicate key" +-msgstr "chave duplicada" ++#: nis/nis_print.c:190 ++#, c-format ++msgid "RSA (%d bits)\n" ++msgstr "RSA (%d bits)\n" + +-#: catgets/gencat.c:388 +-msgid "duplicate set definition" +-msgstr "definição de conjunto duplicada" ++#: nis/nis_print.c:193 ++msgid "Kerberos.\n" ++msgstr "Kerberos.\n" + +-#: timezone/zic.c:978 ++#: nis/nis_print.c:196 + #, c-format +-msgid "duplicate zone name %s (file \"%s\", line %d)" +-msgstr "nome de zona duplicado %s (arquivo \"%s\", linha %d)" ++msgid "Unknown (type = %d, bits = %d)\n" ++msgstr "Desconhecido (tipo = %d, bits = %d)\n" + +-#: catgets/gencat.c:551 +-msgid "duplicated message identifier" +-msgstr "identificador de mensagens duplicado" ++#: nis/nis_print.c:207 ++#, c-format ++msgid "\tUniversal addresses (%u)\n" ++msgstr "\tEndereço universal (%u)\n" + +-#: catgets/gencat.c:524 +-msgid "duplicated message number" +-msgstr "número de mensagem duplicado" ++#: nis/nis_print.c:229 ++msgid "Time to live : " ++msgstr "Tempo de vida : " + +-#: sunrpc/rpc_scan.c:382 +-msgid "empty char string" +-msgstr "cadeia de caractere vazia" ++#: nis/nis_print.c:231 ++msgid "Default Access rights :\n" ++msgstr "Direitos de acesso padrão :\n" + +-#: locale/programs/ld-collate.c:1710 +-msgid "empty weight name: line ignored" +-msgstr "nome do peso vazio: linha ignorada" ++#: nis/nis_print.c:240 ++#, c-format ++msgid "\tType : %s\n" ++msgstr "\tTipo : %s\n" + +-#: sunrpc/svc_udp.c:372 +-msgid "enablecache: cache already enabled" +-msgstr "enablecache: cache já ativado" ++#: nis/nis_print.c:241 ++msgid "\tAccess rights: " ++msgstr "\tDireitos acesso: " + +-#: sunrpc/svc_udp.c:378 +-msgid "enablecache: could not allocate cache" +-msgstr "enablecache: não foi possível alocar cache" ++#: nis/nis_print.c:255 ++msgid "Group Flags :" ++msgstr "Indicadores de grupo :" + +-#: sunrpc/svc_udp.c:386 +-msgid "enablecache: could not allocate cache data" +-msgstr "enablecache: não foi possível alocar dados do cache" ++#: nis/nis_print.c:258 ++msgid "" ++"\n" ++"Group Members :\n" ++msgstr "" ++"\n" ++"Membros do grupo :\n" + +-#: sunrpc/svc_udp.c:393 +-msgid "enablecache: could not allocate cache fifo" +-msgstr "enablecache: não foi possível alocar cache fifo" ++#: nis/nis_print.c:270 ++#, c-format ++msgid "Table Type : %s\n" ++msgstr "Tipo de tabela : %s\n" + +-#: iconv/iconv_prog.c:56 +-msgid "encoding for output" +-msgstr "codificação para a saída" ++#: nis/nis_print.c:271 ++#, c-format ++msgid "Number of Columns : %d\n" ++msgstr "Número de colunas : %d\n" + +-#: iconv/iconv_prog.c:55 +-msgid "encoding of original text" +-msgstr "codificação para o texto original" ++#: nis/nis_print.c:272 ++#, c-format ++msgid "Character Separator : %c\n" ++msgstr "Separador de caracteres : %c\n" ++ ++#: nis/nis_print.c:273 ++#, c-format ++msgid "Search Path : %s\n" ++msgstr "Caminho de pesquisa : %s\n" ++ ++#: nis/nis_print.c:274 ++msgid "Columns :\n" ++msgstr "Colunas :\n" ++ ++#: nis/nis_print.c:277 ++#, c-format ++msgid "\t[%d]\tName : %s\n" ++msgstr "\t[%d]\tNome : %s\n" ++ ++#: nis/nis_print.c:279 ++msgid "\t\tAttributes : " ++msgstr "\t\tAtributos : " ++ ++#: nis/nis_print.c:281 ++msgid "\t\tAccess Rights : " ++msgstr "\t\tDireitos de acesso : " ++ ++#: nis/nis_print.c:291 ++msgid "Linked Object Type : " ++msgstr "Tipo de objeto vinculado : " ++ ++#: nis/nis_print.c:293 ++#, c-format ++msgid "Linked to : %s\n" ++msgstr "Vinculado a : %s\n" ++ ++#: nis/nis_print.c:303 ++#, c-format ++msgid "\tEntry data of type %s\n" ++msgstr "\tEntrada de dados de tipo %s\n" ++ ++#: nis/nis_print.c:306 ++#, c-format ++msgid "\t[%u] - [%u bytes] " ++msgstr "\t[%u] – [%u bytes] " ++ ++#: nis/nis_print.c:309 ++msgid "Encrypted data\n" ++msgstr "Dados criptografados\n" ++ ++#: nis/nis_print.c:311 ++msgid "Binary data\n" ++msgstr "Dados binários\n" ++ ++#: nis/nis_print.c:327 ++#, c-format ++msgid "Object Name : %s\n" ++msgstr "Nome do objeto : %s\n" ++ ++#: nis/nis_print.c:328 ++#, c-format ++msgid "Directory : %s\n" ++msgstr "Diretório : %s\n" ++ ++#: nis/nis_print.c:329 ++#, c-format ++msgid "Owner : %s\n" ++msgstr "Dono : %s\n" ++ ++#: nis/nis_print.c:330 ++#, c-format ++msgid "Group : %s\n" ++msgstr "Grupo : %s\n" ++ ++#: nis/nis_print.c:331 ++msgid "Access Rights : " ++msgstr "Direitos de acesso : " ++ ++#: nis/nis_print.c:333 ++#, c-format ++msgid "" ++"\n" ++"Time to Live : " ++msgstr "" ++"\n" ++"Tempo de vida : " ++ ++#: nis/nis_print.c:336 ++#, c-format ++msgid "Creation Time : %s" ++msgstr "Horário de criação : %s" ++ ++#: nis/nis_print.c:338 ++#, c-format ++msgid "Mod. Time : %s" ++msgstr "Horário de mod. : %s" ++ ++#: nis/nis_print.c:339 ++msgid "Object Type : " ++msgstr "Tipo do objeto : " ++ ++#: nis/nis_print.c:359 ++#, c-format ++msgid " Data Length = %u\n" ++msgstr " Tamanho dados = %u\n" ++ ++#: nis/nis_print.c:373 ++#, c-format ++msgid "Status : %s\n" ++msgstr "Posição : %s\n" + +-#: locale/programs/ld-collate.c:1429 +-msgid "end point of ellipsis range is bigger then start" +-msgstr "o ponto final da área da elipse é maior que o início " ++#: nis/nis_print.c:374 ++#, c-format ++msgid "Number of objects : %u\n" ++msgstr "Número de objetos : %u\n" ++ ++#: nis/nis_print.c:378 ++#, c-format ++msgid "Object #%d:\n" ++msgstr "Objeto #%d:\n" ++ ++#: nis/nis_print_group_entry.c:117 ++#, c-format ++msgid "Group entry for \"%s.%s\" group:\n" ++msgstr "Entrada para o grupo “%s.%s”:\n" ++ ++#: nis/nis_print_group_entry.c:125 ++msgid " Explicit members:\n" ++msgstr " Membros explícitos:\n" ++ ++#: nis/nis_print_group_entry.c:130 ++msgid " No explicit members\n" ++msgstr " Nenhum membro explícito\n" ++ ++#: nis/nis_print_group_entry.c:133 ++msgid " Implicit members:\n" ++msgstr " Membros implícitos:\n" ++ ++#: nis/nis_print_group_entry.c:138 ++msgid " No implicit members\n" ++msgstr " Nenhum membro implícito\n" ++ ++#: nis/nis_print_group_entry.c:141 ++msgid " Recursive members:\n" ++msgstr " Membros recursivos:\n" ++ ++#: nis/nis_print_group_entry.c:146 ++msgid " No recursive members\n" ++msgstr " Nenhuma membros recursivo\n" ++ ++#: nis/nis_print_group_entry.c:149 ++msgid " Explicit nonmembers:\n" ++msgstr " Não-membros explícitos:\n" ++ ++#: nis/nis_print_group_entry.c:154 ++msgid " No explicit nonmembers\n" ++msgstr " Nenhum não-membro explícito\n" ++ ++#: nis/nis_print_group_entry.c:157 ++msgid " Implicit nonmembers:\n" ++msgstr " Não-membros implícitos:\n" ++ ++#: nis/nis_print_group_entry.c:162 ++msgid " No implicit nonmembers\n" ++msgstr " Nenhum não-membro implícito\n" ++ ++#: nis/nis_print_group_entry.c:165 ++msgid " Recursive nonmembers:\n" ++msgstr " Não-membros recursivos:\n" ++ ++#: nis/nis_print_group_entry.c:170 ++msgid " No recursive nonmembers\n" ++msgstr " Nenhum não-membro recursivo\n" ++ ++#: nis/nss_nisplus/nisplus-publickey.c:100 ++#: nis/nss_nisplus/nisplus-publickey.c:182 ++#, c-format ++msgid "DES entry for netname %s not unique\n" ++msgstr "Entrada DES para nome de rede (netname) %s não é única\n" ++ ++#: nis/nss_nisplus/nisplus-publickey.c:219 ++#, c-format ++msgid "netname2user: missing group id list in `%s'" ++msgstr "netname2user: faltando lista de id do grupo em “%s”" ++ ++#: nis/nss_nisplus/nisplus-publickey.c:301 ++#: nis/nss_nisplus/nisplus-publickey.c:307 ++#: nis/nss_nisplus/nisplus-publickey.c:372 ++#: nis/nss_nisplus/nisplus-publickey.c:381 ++#, c-format ++msgid "netname2user: (nis+ lookup): %s\n" ++msgstr "netname2user: (nis+ lookup): %s\n" ++ ++#: nis/nss_nisplus/nisplus-publickey.c:320 ++#, c-format ++msgid "netname2user: DES entry for %s in directory %s not unique" ++msgstr "netname2user: entrada DES para %s no diretório %s não é única" ++ ++#: nis/nss_nisplus/nisplus-publickey.c:338 ++#, c-format ++msgid "netname2user: principal name `%s' too long" ++msgstr "netname2user: nome princpal “%s” longo demais" ++ ++#: nis/nss_nisplus/nisplus-publickey.c:394 ++#, c-format ++msgid "netname2user: LOCAL entry for %s in directory %s not unique" ++msgstr "netname2user: entrada LOCAL para %s no diretório %s não é única" ++ ++#: nis/nss_nisplus/nisplus-publickey.c:401 ++msgid "netname2user: should not have uid 0" ++msgstr "netname2user: não deve possuir uid 0" ++ ++#: nis/ypclnt.c:827 ++msgid "Request arguments bad" ++msgstr "Argumentos de requisição inválidos" ++ ++#: nis/ypclnt.c:830 ++msgid "RPC failure on NIS operation" ++msgstr "Falha RPC na operação NIS" ++ ++#: nis/ypclnt.c:833 ++msgid "Can't bind to server which serves this domain" ++msgstr "Não é possível vincular ao servidor que serve este domínio" ++ ++#: nis/ypclnt.c:836 ++msgid "No such map in server's domain" ++msgstr "Mapa inexistente no domínio do servidor" ++ ++#: nis/ypclnt.c:839 ++msgid "No such key in map" ++msgstr "Chave inexistente no mapa" ++ ++#: nis/ypclnt.c:842 ++msgid "Internal NIS error" ++msgstr "Erro NIS interno" ++ ++#: nis/ypclnt.c:845 ++msgid "Local resource allocation failure" ++msgstr "Falha na alocação de recurso local" ++ ++#: nis/ypclnt.c:848 ++msgid "No more records in map database" ++msgstr "Não há mais registros no banco de dados de mapas" ++ ++#: nis/ypclnt.c:851 ++msgid "Can't communicate with portmapper" ++msgstr "Não foi possível comunicar com o portmapper" ++ ++#: nis/ypclnt.c:854 ++msgid "Can't communicate with ypbind" ++msgstr "Não foi possível comunicar com o ypbind" ++ ++#: nis/ypclnt.c:857 ++msgid "Can't communicate with ypserv" ++msgstr "Não foi possível comunicar com o ypserv" ++ ++#: nis/ypclnt.c:860 ++msgid "Local domain name not set" ++msgstr "Nome de domínio local não definido" ++ ++#: nis/ypclnt.c:863 ++msgid "NIS map database is bad" ++msgstr "Banco de dados de mapas NIS é inválido" ++ ++#: nis/ypclnt.c:866 ++msgid "NIS client/server version mismatch - can't supply service" ++msgstr "Versões cliente/servidor NIS não conferem – não foi possível oferecer serviço" ++ ++#: nis/ypclnt.c:872 ++msgid "Database is busy" ++msgstr "Banco de dados está ocupado" ++ ++#: nis/ypclnt.c:875 ++msgid "Unknown NIS error code" ++msgstr "Código de erro NIS desconhecido" ++ ++#: nis/ypclnt.c:916 ++msgid "Internal ypbind error" ++msgstr "Erro interno de ypbind" ++ ++#: nis/ypclnt.c:919 ++msgid "Domain not bound" ++msgstr "Domínio não vinculado" ++ ++#: nis/ypclnt.c:922 ++msgid "System resource allocation failure" ++msgstr "Falha de alocação de recursos do sistema" ++ ++#: nis/ypclnt.c:925 ++msgid "Unknown ypbind error" ++msgstr "Erro desconhecido de ypbind" ++ ++#: nis/ypclnt.c:966 ++msgid "yp_update: cannot convert host to netname\n" ++msgstr "yp_update: não foi possível converter host para netname\n" ++ ++#: nis/ypclnt.c:984 ++msgid "yp_update: cannot get server address\n" ++msgstr "yp_update: não foi possível obter o endereço do servidor\n" ++ ++#: nscd/aicache.c:85 nscd/hstcache.c:485 ++#, c-format ++msgid "Haven't found \"%s\" in hosts cache!" ++msgstr "Não foi encontrado “%s” no cache de máquinas!" ++ ++#: nscd/aicache.c:87 nscd/hstcache.c:487 ++#, c-format ++msgid "Reloading \"%s\" in hosts cache!" ++msgstr "Recarregando “%s” no cache de máquinas!" ++ ++#: nscd/cache.c:151 ++#, c-format ++msgid "add new entry \"%s\" of type %s for %s to cache%s" ++msgstr "adicionar nova entrada “%s” do tipo %s para %s ao cache%s" ++ ++#: nscd/cache.c:153 ++msgid " (first)" ++msgstr " (primeira)" ++ ++#: nscd/cache.c:288 ++#, c-format ++msgid "checking for monitored file `%s': %s" ++msgstr "verificando pelo arquivo monitorado “%s”: %s" ++ ++#: nscd/cache.c:298 ++#, c-format ++msgid "monitored file `%s` changed (mtime)" ++msgstr "arquivo monitorado “%s” foi modificado (mtime)" ++ ++#: nscd/cache.c:341 ++#, c-format ++msgid "pruning %s cache; time %ld" ++msgstr "removendo cache %s; tempo %ld" ++ ++#: nscd/cache.c:370 ++#, c-format ++msgid "considering %s entry \"%s\", timeout %" ++msgstr "considerando entrada %s “%s”, tempo limite %" ++ ++#: nscd/connections.c:537 ++#, c-format ++msgid "invalid persistent database file \"%s\": %s" ++msgstr "arquivo inválido de banco de dados persistente “%s”: %s" ++ ++#: nscd/connections.c:545 ++msgid "uninitialized header" ++msgstr "cabeçalho não inicializado" ++ ++#: nscd/connections.c:550 ++msgid "header size does not match" ++msgstr "tamanho do cabeçalho não confere" ++ ++#: nscd/connections.c:560 ++msgid "file size does not match" ++msgstr "tamanho de arquivo não confere" ++ ++#: nscd/connections.c:577 ++msgid "verification failed" ++msgstr "verificação falhou" ++ ++#: nscd/connections.c:591 ++#, c-format ++msgid "suggested size of table for database %s larger than the persistent database's table" ++msgstr "tamanho sugerido de tabela para banco de dados %s maior que a tabela do banco de dados persistente" ++ ++#: nscd/connections.c:602 nscd/connections.c:686 ++#, c-format ++msgid "cannot create read-only descriptor for \"%s\"; no mmap" ++msgstr "não foi possível criar descritor somente leitura para “%s”; nenhum mmap" ++ ++#: nscd/connections.c:618 ++#, c-format ++msgid "cannot access '%s'" ++msgstr "não foi possível acessar “%s”" ++ ++#: nscd/connections.c:666 ++#, c-format ++msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart" ++msgstr "banco de dados para %s corrompido ou usado simultaneamente; remova %s manualmente, se necessário, e reinicie" ++ ++#: nscd/connections.c:672 ++#, c-format ++msgid "cannot create %s; no persistent database used" ++msgstr "não foi possível criar %s; nenhum banco de dados persistente usado" ++ ++#: nscd/connections.c:675 ++#, c-format ++msgid "cannot create %s; no sharing possible" ++msgstr "não foi possível criar %s; nenhum compartilhamento possível" ++ ++#: nscd/connections.c:746 ++#, c-format ++msgid "cannot write to database file %s: %s" ++msgstr "não foi possível escrever para o arquivo de banco de dados %s: %s" ++ ++#: nscd/connections.c:802 ++#, c-format ++msgid "cannot open socket: %s" ++msgstr "não é possível abrir soquete: “%s”" ++ ++#: nscd/connections.c:821 ++#, c-format ++msgid "cannot enable socket to accept connections: %s" ++msgstr "impossível habilitar soquete para aceitar conexões: %s" ++ ++#: nscd/connections.c:878 ++#, c-format ++msgid "disabled inotify-based monitoring for file `%s': %s" ++msgstr "desabilitado monitoramento baseado em inotify para o arquivo “%s”: %s" ++ ++#: nscd/connections.c:882 ++#, c-format ++msgid "monitoring file `%s` (%d)" ++msgstr "monitorando o arquivo “%s” (%d)" ++ ++#: nscd/connections.c:895 ++#, c-format ++msgid "disabled inotify-based monitoring for directory `%s': %s" ++msgstr "desabilitado monitoramento baseado em inotify para o diretório “%s”: %s" ++ ++#: nscd/connections.c:899 ++#, c-format ++msgid "monitoring directory `%s` (%d)" ++msgstr "monitorando o diretório “%s” (%d)" ++ ++#: nscd/connections.c:927 ++#, c-format ++msgid "monitoring file %s for database %s" ++msgstr "monitorando o arquivo %s para o banco de dados %s" ++ ++#: nscd/connections.c:937 ++#, c-format ++msgid "stat failed for file `%s'; will try again later: %s" ++msgstr "obtenção de estado falhou para o arquivo “%s”; nova tentativa posteriormente: %s" ++ ++#: nscd/connections.c:1056 ++#, c-format ++msgid "provide access to FD %d, for %s" ++msgstr "fornece acesso ao descritor de arquivo %d, para %s" ++ ++#: nscd/connections.c:1068 ++#, c-format ++msgid "cannot handle old request version %d; current version is %d" ++msgstr "impossível lidar com requisições de versões antigas %d; a versão atual é %d" ++ ++#: nscd/connections.c:1091 ++#, c-format ++msgid "request from %ld not handled due to missing permission" ++msgstr "requisição de %ld não manipulada em razão de falta de permissão" ++ ++#: nscd/connections.c:1096 ++#, c-format ++msgid "request from '%s' [%ld] not handled due to missing permission" ++msgstr "requisição de “%s” [%ld] não manipulada em razão de falta de permissão" ++ ++#: nscd/connections.c:1101 ++msgid "request not handled due to missing permission" ++msgstr "requisição não manipulada em razão de falta de permissão" ++ ++#: nscd/connections.c:1139 nscd/connections.c:1192 ++#, c-format ++msgid "cannot write result: %s" ++msgstr "não é possível escrever resultado: %s" ++ ++#: nscd/connections.c:1283 ++#, c-format ++msgid "error getting caller's id: %s" ++msgstr "erro ao obter o id do chamador: %s" ++ ++#: nscd/connections.c:1343 ++#, c-format ++msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" ++msgstr "não foi possível abrir /proc/self/cmdline: %s; desabilitando modo paranoia" ++ ++#: nscd/connections.c:1357 ++#, c-format ++msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" ++msgstr "não foi possível ler /proc/self/cmdline: %s; desabilitando modo paranoia" ++ ++#: nscd/connections.c:1397 ++#, c-format ++msgid "cannot change to old UID: %s; disabling paranoia mode" ++msgstr "não foi possível alterar para UID antigo: %s; desabilitando modo paranoia" ++ ++#: nscd/connections.c:1407 ++#, c-format ++msgid "cannot change to old GID: %s; disabling paranoia mode" ++msgstr "não foi possível alterar para GID antigo: %s; desabilitando modo paranoia" ++ ++#: nscd/connections.c:1420 ++#, c-format ++msgid "cannot change to old working directory: %s; disabling paranoia mode" ++msgstr "não foi possível mudar para diretório de trabalho anterior: %s; desabilitando modo paranoia" ++ ++#: nscd/connections.c:1466 ++#, c-format ++msgid "re-exec failed: %s; disabling paranoia mode" ++msgstr "reexecução falhou: %s; desabilitando modo paranoia" ++ ++#: nscd/connections.c:1475 ++#, c-format ++msgid "cannot change current working directory to \"/\": %s" ++msgstr "não foi possível mudar o diretório de trabalho atual para “/”: %s" ++ ++#: nscd/connections.c:1658 ++#, c-format ++msgid "short read while reading request: %s" ++msgstr "leitura insuficiente durante a leitura da requisição: %s" ++ ++#: nscd/connections.c:1691 ++#, c-format ++msgid "key length in request too long: %d" ++msgstr "tamanho da chave na requisição é grande demais: %d" ++ ++#: nscd/connections.c:1704 ++#, c-format ++msgid "short read while reading request key: %s" ++msgstr "leitura insuficiente durante a leitura da chave de requisição: %s" ++ ++#: nscd/connections.c:1714 ++#, c-format ++msgid "handle_request: request received (Version = %d) from PID %ld" ++msgstr "handle_request: requisição recebida (Versão = %d) do PID %ld" ++ ++#: nscd/connections.c:1719 ++#, c-format ++msgid "handle_request: request received (Version = %d)" ++msgstr "handle_request: requisição recebida (Versão = %d)" ++ ++#: nscd/connections.c:1859 ++#, c-format ++msgid "ignored inotify event for `%s` (file exists)" ++msgstr "evento inotify ignorado para “%s” (arquivo existe)" ++ ++#: nscd/connections.c:1864 ++#, c-format ++msgid "monitored file `%s` was %s, removing watch" ++msgstr "arquivo monitorado “%s” era %s, removendo inspeção" ++ ++#: nscd/connections.c:1872 nscd/connections.c:1914 ++#, c-format ++msgid "failed to remove file watch `%s`: %s" ++msgstr "falha ao remover inspeção do arquivo “%s”: %s" ++ ++#: nscd/connections.c:1887 ++#, c-format ++msgid "monitored file `%s` was written to" ++msgstr "arquivo monitorado “%s” foi escrito para" ++ ++#: nscd/connections.c:1911 ++#, c-format ++msgid "monitored parent directory `%s` was %s, removing watch on `%s`" ++msgstr "diretório pai monitorado “%s” foi %s, removendo inspeção em “%s”" ++ ++#: nscd/connections.c:1937 ++#, c-format ++msgid "monitored file `%s` was %s, adding watch" ++msgstr "arquivo monitorado “%s” foi %s, adicionando inspeção" ++ ++#: nscd/connections.c:1949 ++#, c-format ++msgid "failed to add file watch `%s`: %s" ++msgstr "falha ao adicionar inspeção do arquivo “%s”: %s" ++ ++#: nscd/connections.c:2127 nscd/connections.c:2292 ++#, c-format ++msgid "disabled inotify-based monitoring after read error %d" ++msgstr "desabilitado monitoramento baseado em inotify após erro de leitura %d" ++ ++#: nscd/connections.c:2407 ++msgid "could not initialize conditional variable" ++msgstr "não foi possível inicializar variável condicional" ++ ++#: nscd/connections.c:2415 ++msgid "could not start clean-up thread; terminating" ++msgstr "não foi possível iniciar fluxo de limpeza; terminando" ++ ++#: nscd/connections.c:2429 ++msgid "could not start any worker thread; terminating" ++msgstr "não foi possível iniciar qualquer fluxo de trabalho; terminando" ++ ++#: nscd/connections.c:2484 nscd/connections.c:2486 nscd/connections.c:2502 ++#: nscd/connections.c:2512 nscd/connections.c:2530 nscd/connections.c:2541 ++#: nscd/connections.c:2551 ++#, c-format ++msgid "Failed to run nscd as user '%s'" ++msgstr "Falha ao executar nscd como usuário “%s”" ++ ++#: nscd/connections.c:2504 ++msgid "initial getgrouplist failed" ++msgstr "getgrouplist inicial falhou" ++ ++#: nscd/connections.c:2513 ++msgid "getgrouplist failed" ++msgstr "getgrouplist falhou" ++ ++#: nscd/connections.c:2531 ++msgid "setgroups failed" ++msgstr "setgroups falhou" ++ ++#: nscd/grpcache.c:416 nscd/hstcache.c:432 nscd/initgrcache.c:416 ++#: nscd/pwdcache.c:394 nscd/servicescache.c:338 ++#, c-format ++msgid "short write in %s: %s" ++msgstr "escrita insuficiente em %s: %s" ++ ++#: nscd/grpcache.c:461 nscd/initgrcache.c:84 ++#, c-format ++msgid "Haven't found \"%s\" in group cache!" ++msgstr "Não foi encontrado “%s” no cache de grupo!" ++ ++#: nscd/grpcache.c:463 nscd/initgrcache.c:86 ++#, c-format ++msgid "Reloading \"%s\" in group cache!" ++msgstr "Recarregando “%s” no cache de grupo!" ++ ++#: nscd/grpcache.c:542 ++#, c-format ++msgid "Invalid numeric gid \"%s\"!" ++msgstr "GID numérico inválido “%s”!" ++ ++#: nscd/mem.c:425 ++#, c-format ++msgid "freed %zu bytes in %s cache" ++msgstr "liberados %zu bytes no cache de %s" ++ ++#: nscd/mem.c:568 ++#, c-format ++msgid "no more memory for database '%s'" ++msgstr "não há mais memória para o banco de dados “%s”" ++ ++#: nscd/netgroupcache.c:121 ++#, c-format ++msgid "Haven't found \"%s\" in netgroup cache!" ++msgstr "Não foi encontrado “%s” no cache de netgroup!" ++ ++#: nscd/netgroupcache.c:123 ++#, c-format ++msgid "Reloading \"%s\" in netgroup cache!" ++msgstr "Recarregando “%s” no cache de netgroup!" ++ ++#: nscd/netgroupcache.c:495 ++#, c-format ++msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!" ++msgstr "Não foi encontrado “%s (%s,%s,%s)” no cache de netgroup!" ++ ++#: nscd/netgroupcache.c:498 ++#, c-format ++msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!" ++msgstr "Recarregando “%s (%s,%s,%s)” no cache de netgroup!" ++ ++#: nscd/nscd.c:106 ++msgid "Read configuration data from NAME" ++msgstr "Lê configuração de dados de NOME" ++ ++#: nscd/nscd.c:108 ++msgid "Do not fork and display messages on the current tty" ++msgstr "Não bifurca (fork) e mostre mensagens na tty corrente" ++ ++#: nscd/nscd.c:110 ++msgid "Do not fork, but otherwise behave like a daemon" ++msgstr "Não bifurca (fork), mas, em vez disso, se comporta como um serviço (daemon)" ++ ++#: nscd/nscd.c:111 ++msgid "NUMBER" ++msgstr "NÚMERO" ++ ++# Espaço inical adicionado para corrigir alinhamento; veja 'nscd --help' -- Rafael ++#: nscd/nscd.c:111 ++msgid "Start NUMBER threads" ++msgstr " Inicia NÚMERO threads" ++ ++#: nscd/nscd.c:112 ++msgid "Shut the server down" ++msgstr "Encerra o servidor" ++ ++#: nscd/nscd.c:113 ++msgid "Print current configuration statistics" ++msgstr "Reúne e imprime as estatísticas de configuração" ++ ++#: nscd/nscd.c:114 ++msgid "TABLE" ++msgstr "TABELA" ++ ++#: nscd/nscd.c:115 ++msgid "Invalidate the specified cache" ++msgstr "Invalida o cache especificado" ++ ++#: nscd/nscd.c:116 ++msgid "TABLE,yes" ++msgstr "TABELA,sim" ++ ++#: nscd/nscd.c:117 ++msgid "Use separate cache for each user" ++msgstr "Usa um cache separado para cada usuário" ++ ++#: nscd/nscd.c:122 ++msgid "Name Service Cache Daemon." ++msgstr "Daemon de cache de serviço de nomes." ++ ++#: nscd/nscd.c:155 nss/getent.c:947 nss/makedb.c:206 ++#, c-format ++msgid "wrong number of arguments" ++msgstr "número incorreto de argumentos" ++ ++#: nscd/nscd.c:165 ++#, c-format ++msgid "failure while reading configuration file; this is fatal" ++msgstr "falha ao ler arquivo de configuração; isto é fatal" ++ ++#: nscd/nscd.c:174 ++#, c-format ++msgid "already running" ++msgstr "já está em execução" ++ ++#: nscd/nscd.c:194 ++#, c-format ++msgid "cannot create a pipe to talk to the child" ++msgstr "não foi possível criar um pipe para falar com o processo filho" ++ ++#: nscd/nscd.c:198 ++#, c-format ++msgid "cannot fork" ++msgstr "não foi possível bifurcar (fork)" ++ ++#: nscd/nscd.c:268 ++msgid "cannot change current working directory to \"/\"" ++msgstr "não foi possível mudar o diretório de trabalho atual para “/”" ++ ++#: nscd/nscd.c:276 ++msgid "Could not create log file" ++msgstr "Não foi possível criar o arquivo de log" ++ ++#: nscd/nscd.c:355 nscd/nscd_stat.c:209 ++#, c-format ++msgid "write incomplete" ++msgstr "escrita incompleta" ++ ++#: nscd/nscd.c:366 ++#, c-format ++msgid "cannot read invalidate ACK" ++msgstr "não foi possível ler ACK inválida" ++ ++#: nscd/nscd.c:372 ++#, c-format ++msgid "invalidation failed" ++msgstr "invalidação falhou" ++ ++#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:190 ++#, c-format ++msgid "Only root is allowed to use this option!" ++msgstr "Somente o superusuário pode usar esta opção!" ++ ++#: nscd/nscd.c:437 ++#, c-format ++msgid "'%s' is not a known database" ++msgstr "“%s” não é um banco de dados conhecido" ++ ++#: nscd/nscd.c:452 ++#, c-format ++msgid "secure services not implemented anymore" ++msgstr "serviços seguros não mais implementado" ++ ++#: nscd/nscd.c:485 ++#, c-format ++msgid "" ++"Supported tables:\n" ++"%s\n" ++"\n" ++"For bug reporting instructions, please see:\n" ++"%s.\n" ++msgstr "" ++"Há suporte às seguintes tabelas:\n" ++"%s\n" ++"\n" ++"Para instruções sobre como relatar erros, por favor veja:\n" ++"%s.\n" ++ ++#: nscd/nscd.c:635 ++#, c-format ++msgid "'wait' failed\n" ++msgstr "“wait” falhou\n" ++ ++#: nscd/nscd.c:642 ++#, c-format ++msgid "child exited with status %d\n" ++msgstr "processo filho saiu com erro %d\n" ++ ++#: nscd/nscd.c:647 ++#, c-format ++msgid "child terminated by signal %d\n" ++msgstr "processo filho terminado pelo sinal %d\n" ++ ++#: nscd/nscd_conf.c:54 ++#, c-format ++msgid "database %s is not supported" ++msgstr "sem suporte ao banco de dados %s" ++ ++#: nscd/nscd_conf.c:105 ++#, c-format ++msgid "Parse error: %s" ++msgstr "Erro de análise: %s" ++ ++#: nscd/nscd_conf.c:191 ++#, c-format ++msgid "Must specify user name for server-user option" ++msgstr "Deve-se especificar o nome do usuário para a opção “server-user”" ++ ++#: nscd/nscd_conf.c:198 ++#, c-format ++msgid "Must specify user name for stat-user option" ++msgstr "Deve-se especificar o nome do usuário para a opção “stat-user”" ++ ++#: nscd/nscd_conf.c:255 ++#, c-format ++msgid "Must specify value for restart-interval option" ++msgstr "Deve-se especificar valor para a opção “restart-interval”" ++ ++#: nscd/nscd_conf.c:269 ++#, c-format ++msgid "Unknown option: %s %s %s" ++msgstr "Opção desconhecida: %s %s %s" ++ ++#: nscd/nscd_conf.c:282 ++#, c-format ++msgid "cannot get current working directory: %s; disabling paranoia mode" ++msgstr "não foi possível obter o diretório de trabalho: %s; desabilitando modo paranoia" ++ ++#: nscd/nscd_conf.c:302 ++#, c-format ++msgid "maximum file size for %s database too small" ++msgstr "tamanho máximo de arquivo para o banco de dados %s é pequeno demais" ++ ++#: nscd/nscd_stat.c:159 ++#, c-format ++msgid "cannot write statistics: %s" ++msgstr "não foi possível escrever estatísticas: %s" ++ ++#: nscd/nscd_stat.c:174 ++msgid "yes" ++msgstr "sim" ++ ++#: nscd/nscd_stat.c:175 ++msgid "no" ++msgstr "não" ++ ++#: nscd/nscd_stat.c:186 ++#, c-format ++msgid "Only root or %s is allowed to use this option!" ++msgstr "Somente o superusuário ou %s pode usar esta opção!" ++ ++#: nscd/nscd_stat.c:197 ++#, c-format ++msgid "nscd not running!\n" ++msgstr "nscd não está em execução!\n" ++ ++#: nscd/nscd_stat.c:221 ++#, c-format ++msgid "cannot read statistics data" ++msgstr "não foi possível ler dados de estatística" ++ ++#: nscd/nscd_stat.c:224 ++#, c-format ++msgid "" ++"nscd configuration:\n" ++"\n" ++"%15d server debug level\n" ++msgstr "" ++"configuração do nscd:\n" ++"\n" ++"%15d nível de depuração do servidor\n" ++ ++#: nscd/nscd_stat.c:248 ++#, c-format ++msgid "%3ud %2uh %2um %2lus server runtime\n" ++msgstr "%3ud %2uh %2um %2lus tempo de execução do servidor\n" ++ ++#: nscd/nscd_stat.c:251 ++#, c-format ++msgid " %2uh %2um %2lus server runtime\n" ++msgstr " %2uh %2um %2lus tempo de execução do servidor\n" ++ ++#: nscd/nscd_stat.c:253 ++#, c-format ++msgid " %2um %2lus server runtime\n" ++msgstr " %2um %2lus tempo de execução do servidor\n" ++ ++#: nscd/nscd_stat.c:255 ++#, c-format ++msgid " %2lus server runtime\n" ++msgstr " %2lus tempo de execução do servidor\n" ++ ++#: nscd/nscd_stat.c:257 ++#, c-format ++msgid "" ++"%15d current number of threads\n" ++"%15d maximum number of threads\n" ++"%15lu number of times clients had to wait\n" ++"%15s paranoia mode enabled\n" ++"%15lu restart internal\n" ++"%15u reload count\n" ++msgstr "" ++"%15d número atual de threads\n" ++"%15d número máximo de threads\n" ++"%15lu número de tempos de espera de clientes\n" ++"%15s modo paranoia habilitado\n" ++"%15lu reinicialização interna\n" ++"%15u recarregamento de contagem\n" ++ ++#: nscd/nscd_stat.c:292 ++#, c-format ++msgid "" ++"\n" ++"%s cache:\n" ++"\n" ++"%15s cache is enabled\n" ++"%15s cache is persistent\n" ++"%15s cache is shared\n" ++"%15zu suggested size\n" ++"%15zu total data pool size\n" ++"%15zu used data pool size\n" ++"%15lu seconds time to live for positive entries\n" ++"%15lu seconds time to live for negative entries\n" ++"%15 cache hits on positive entries\n" ++"%15 cache hits on negative entries\n" ++"%15 cache misses on positive entries\n" ++"%15 cache misses on negative entries\n" ++"%15lu%% cache hit rate\n" ++"%15zu current number of cached values\n" ++"%15zu maximum number of cached values\n" ++"%15zu maximum chain length searched\n" ++"%15 number of delays on rdlock\n" ++"%15 number of delays on wrlock\n" ++"%15 memory allocations failed\n" ++"%15s check /etc/%s for changes\n" ++msgstr "" ++"\n" ++"cache %s:\n" ++"\n" ++"%15s cache está habilitado\n" ++"%15s cache é persistente\n" ++"%15s cache está compartilhado\n" ++"%15zu tamanho sugerido\n" ++"%15zu tamanho total de pool de dados\n" ++"%15zu tamanho usado de pool de dados\n" ++"%15lu segundos de vida para entradas positivas\n" ++"%15lu segundos de vida para entradas negativas\n" ++"%15 acertos do cache para entradas positivas\n" ++"%15 acertos do cache para entradas negativas\n" ++"%15 erros do cache para entradas positivas\n" ++"%15 erros do cache para entradas negativas\n" ++"%15lu%% taxa de acertos do cache\n" ++"%15zu número atual de valores em cache\n" ++"%15zu número máximo de valores em cache\n" ++"%15zu tamanho máximo de correntes pesquisadas\n" ++"%15 número de atraso no rdlock\n" ++"%15 número de atraso no wrlock\n" ++"%15 alocações de memória falharam\n" ++"%15s verifica /etc/%s por alterações\n" ++ ++#: nscd/pwdcache.c:439 ++#, c-format ++msgid "Haven't found \"%s\" in password cache!" ++msgstr "Não foi encontrado “%s” no cache de senhas!" ++ ++#: nscd/pwdcache.c:441 ++#, c-format ++msgid "Reloading \"%s\" in password cache!" ++msgstr "Recarregando “%s” no cache de senhas!" ++ ++#: nscd/pwdcache.c:522 ++#, c-format ++msgid "Invalid numeric uid \"%s\"!" ++msgstr "UID numérico inválido “%s”!" ++ ++#: nscd/selinux.c:154 ++#, c-format ++msgid "Failed opening connection to the audit subsystem: %m" ++msgstr "Falha ao abrir conexão com o subsistema de auditoria: %m" ++ ++#: nscd/selinux.c:175 ++msgid "Failed to set keep-capabilities" ++msgstr "Falha ao definir capacidades a serem mantidas" ++ ++#: nscd/selinux.c:176 nscd/selinux.c:239 ++msgid "prctl(KEEPCAPS) failed" ++msgstr "prctl(KEEPCAPS) falhou" ++ ++#: nscd/selinux.c:190 ++msgid "Failed to initialize drop of capabilities" ++msgstr "Falha ao inicializar descarte de capacidades" ++ ++#: nscd/selinux.c:191 ++msgid "cap_init failed" ++msgstr "cap_init falhou" ++ ++#: nscd/selinux.c:212 nscd/selinux.c:229 ++msgid "Failed to drop capabilities" ++msgstr "Falha ao descartar capacidades" ++ ++#: nscd/selinux.c:213 nscd/selinux.c:230 ++msgid "cap_set_proc failed" ++msgstr "cap_set_proc falhou" ++ ++#: nscd/selinux.c:238 ++msgid "Failed to unset keep-capabilities" ++msgstr "Falha ao remover definição de capacidades a serem mantidas" ++ ++#: nscd/selinux.c:254 ++msgid "Failed to determine if kernel supports SELinux" ++msgstr "Falha ao determinar se o kernel oferece suporte a SELinux" ++ ++#: nscd/selinux.c:269 ++msgid "Failed to start AVC thread" ++msgstr "Falha ao iniciar fluxo de AVC" ++ ++#: nscd/selinux.c:291 ++msgid "Failed to create AVC lock" ++msgstr "Falha ao criar trava de AVC" ++ ++#: nscd/selinux.c:331 ++msgid "Failed to start AVC" ++msgstr "Falha ao iniciar AVC" ++ ++#: nscd/selinux.c:333 ++msgid "Access Vector Cache (AVC) started" ++msgstr "Cache do Vetor de Acesso (AVC) iniciado" ++ ++#: nscd/selinux.c:368 ++msgid "Error querying policy for undefined object classes or permissions." ++msgstr "Erro ao consultar política por classes de objetos indefinidos ou permissões." ++ ++#: nscd/selinux.c:375 ++msgid "Error getting security class for nscd." ++msgstr "Erro ao obter classe de segurança para nscd." ++ ++#: nscd/selinux.c:380 ++#, c-format ++msgid "Error translating permission name \"%s\" to access vector bit." ++msgstr "Erro ao traduzir nome de permissão “%s” para bit do vetor de acesso." ++ ++#: nscd/selinux.c:390 ++msgid "Error getting context of socket peer" ++msgstr "Erro ao obter contexto do soquete da outra ponta" ++ ++#: nscd/selinux.c:395 ++msgid "Error getting context of nscd" ++msgstr "Erro ao obter um contexto do nscd" ++ ++#: nscd/selinux.c:401 ++msgid "Error getting sid from context" ++msgstr "Erro ao obter sid do contexto" ++ ++#: nscd/selinux.c:439 ++#, c-format ++msgid "" ++"\n" ++"SELinux AVC Statistics:\n" ++"\n" ++"%15u entry lookups\n" ++"%15u entry hits\n" ++"%15u entry misses\n" ++"%15u entry discards\n" ++"%15u CAV lookups\n" ++"%15u CAV hits\n" ++"%15u CAV probes\n" ++"%15u CAV misses\n" ++msgstr "" ++"\n" ++"Estatísticas do AVC do SELinux:\n" ++"\n" ++"%15u consultas a registros\n" ++"%15u acerto a registros\n" ++"%15u erros a registros\n" ++"%15u descarte de registros\n" ++"%15u consultas a CAV\n" ++"%15u acertos a CAV\n" ++"%15u investigações de CAV\n" ++"%15u erros de CAV\n" ++ ++#: nscd/servicescache.c:387 ++#, c-format ++msgid "Haven't found \"%s\" in services cache!" ++msgstr "Não foi encontrado “%s” no cache de serviços!" ++ ++#: nscd/servicescache.c:389 ++#, c-format ++msgid "Reloading \"%s\" in services cache!" ++msgstr "Recarregando “%s” no cache de serviços!" ++ ++#: nss/getent.c:53 ++msgid "database [key ...]" ++msgstr "base_de_dados [chave ...]" ++ ++#: nss/getent.c:58 ++msgid "CONFIG" ++msgstr "CONFIG" ++ ++#: nss/getent.c:58 ++msgid "Service configuration to be used" ++msgstr "Serviço de configuração a ser usado" ++ ++#: nss/getent.c:59 ++msgid "disable IDN encoding" ++msgstr "desabilita codificação de IDN" ++ ++#: nss/getent.c:64 ++msgid "Get entries from administrative database." ++msgstr "Obtém registros de banco de dados administrativo." ++ ++#: nss/getent.c:148 nss/getent.c:441 nss/getent.c:486 ++#, c-format ++msgid "Enumeration not supported on %s\n" ++msgstr "Sem suporte a enumeração no %s\n" ++ ++#: nss/getent.c:861 ++#, c-format ++msgid "Unknown database name" ++msgstr "Nome de banco de dados desconhecido" ++ ++#: nss/getent.c:891 ++msgid "Supported databases:\n" ++msgstr "Há suporte aos seguintes bancos de dados:\n" ++ ++#: nss/getent.c:957 ++#, c-format ++msgid "Unknown database: %s\n" ++msgstr "Base de dados desconhecida: %s\n" ++ ++#: nss/makedb.c:119 ++msgid "Convert key to lower case" ++msgstr "Converte chave para letras minúsculas" ++ ++#: nss/makedb.c:122 ++msgid "Do not print messages while building database" ++msgstr "Não mostra mensagens enquanto constrói base de dados" ++ ++#: nss/makedb.c:124 ++msgid "Print content of database file, one entry a line" ++msgstr "Mostra o conteúdo da base de dados do arquivo, um entrada por linha" ++ ++#: nss/makedb.c:125 ++msgid "CHAR" ++msgstr "CARACT" ++ ++#: nss/makedb.c:126 ++msgid "Generated line not part of iteration" ++msgstr "Linha gerada não é parte da iteração" ++ ++#: nss/makedb.c:131 ++msgid "Create simple database from textual input." ++msgstr "Cria um banco de dados simples de uma entrada textual." ++ ++#: nss/makedb.c:134 ++msgid "" ++"INPUT-FILE OUTPUT-FILE\n" ++"-o OUTPUT-FILE INPUT-FILE\n" ++"-u INPUT-FILE" ++msgstr "" ++"ARQUIVO-ENTRADA ARQUIVO-SAÍDA\n" ++"-o ARQUIVO-SAÍDA ARQUIVO-ENTRADA\n" ++"-u ARQUIVO-ENTRADA" ++ ++#: nss/makedb.c:227 ++#, c-format ++msgid "cannot open database file `%s'" ++msgstr "não foi possível abrir o arquivo de banco de dados “%s”" ++ ++#: nss/makedb.c:272 ++#, c-format ++msgid "no entries to be processed" ++msgstr "nenhum registro a ser processado" ++ ++#: nss/makedb.c:282 ++#, c-format ++msgid "cannot create temporary file name" ++msgstr "não foi possível criar um nome de arquivo temporário" ++ ++#: nss/makedb.c:288 ++#, c-format ++msgid "cannot create temporary file" ++msgstr "não foi possível criar um arquivo temporário" ++ ++#: nss/makedb.c:304 ++#, c-format ++msgid "cannot stat newly created file" ++msgstr "não foi possível obter estado do arquivo recém-criado" ++ ++#: nss/makedb.c:315 ++#, c-format ++msgid "cannot rename temporary file" ++msgstr "não foi possível renomear o arquivo temporário" ++ ++#: nss/makedb.c:527 nss/makedb.c:550 ++#, c-format ++msgid "cannot create search tree" ++msgstr "não foi possível criar árvore de pesquisa" ++ ++#: nss/makedb.c:556 ++msgid "duplicate key" ++msgstr "chave duplicada" ++ ++#: nss/makedb.c:568 ++#, c-format ++msgid "problems while reading `%s'" ++msgstr "problemas durante a leitura de “%s”" ++ ++#: nss/makedb.c:795 ++#, c-format ++msgid "failed to write new database file" ++msgstr "falha ao escrever novo arquivo de banco de dados" ++ ++#: nss/makedb.c:808 ++#, c-format ++msgid "cannot stat database file" ++msgstr "não foi possível obter estado do arquivo de banco de dados" ++ ++#: nss/makedb.c:813 ++#, c-format ++msgid "cannot map database file" ++msgstr "não foi possível mapear o arquivo de banco de dados" ++ ++#: nss/makedb.c:816 ++#, c-format ++msgid "file not a database file" ++msgstr "o arquivo não é um arquivo de banco de dados" ++ ++#: nss/makedb.c:867 ++#, c-format ++msgid "cannot set file creation context for `%s'" ++msgstr "não foi possível definir contexto de criação de arquivo para “%s”" ++ ++#: posix/getconf.c:417 ++#, c-format ++msgid "Usage: %s [-v specification] variable_name [pathname]\n" ++msgstr "Uso: %s [-v especificação] nome_da_variável [caminho]\n" ++ ++#: posix/getconf.c:420 ++#, c-format ++msgid " %s -a [pathname]\n" ++msgstr " %s -a [caminho]\n" ++ ++#: posix/getconf.c:496 ++#, c-format ++msgid "" ++"Usage: getconf [-v SPEC] VAR\n" ++" or: getconf [-v SPEC] PATH_VAR PATH\n" ++"\n" ++"Get the configuration value for variable VAR, or for variable PATH_VAR\n" ++"for path PATH. If SPEC is given, give values for compilation\n" ++"environment SPEC.\n" ++"\n" ++msgstr "" ++"Uso: getconf [-v ESPEC] VAR\n" ++" ou: getconf [-v ESPEC] VAR_CAMINHO CAMINHO\n" ++"\n" ++"Obtém o valor de configuração da variável VAR ou para variável VAR_CAMINHO\n" ++"para caminho CAMINHO. Se ESPEC for dado, atribuir valores para ambiente de\n" ++"compilação ESPEC.\n" ++"\n" ++ ++#: posix/getconf.c:572 ++#, c-format ++msgid "unknown specification \"%s\"" ++msgstr "especificação desconhecida “%s”" ++ ++#: posix/getconf.c:624 ++#, c-format ++msgid "Couldn't execute %s" ++msgstr "Não foi possível executar %s" ++ ++#: posix/getconf.c:669 posix/getconf.c:685 ++msgid "undefined" ++msgstr "indefinido" ++ ++#: posix/getconf.c:707 ++#, c-format ++msgid "Unrecognized variable `%s'" ++msgstr "Variável não reconhecida “%s”" ++ ++#: posix/getopt.c:277 ++#, c-format ++msgid "%s: option '%s%s' is ambiguous\n" ++msgstr "%s: a opção “%s%s” é ambígua\n" ++ ++#: posix/getopt.c:283 ++#, c-format ++msgid "%s: option '%s%s' is ambiguous; possibilities:" ++msgstr "%s: a opção “%s%s” é ambígua; possibilidades:" ++ ++#: posix/getopt.c:318 ++#, c-format ++msgid "%s: unrecognized option '%s%s'\n" ++msgstr "%s: opção não reconhecida “%s%s”\n" ++ ++#: posix/getopt.c:344 ++#, c-format ++msgid "%s: option '%s%s' doesn't allow an argument\n" ++msgstr "%s: a opção “%s%s” não permite um argumento\n" ++ ++#: posix/getopt.c:359 ++#, c-format ++msgid "%s: option '%s%s' requires an argument\n" ++msgstr "%s: a opção “%s%s” requer um argumento\n" ++ ++#: posix/getopt.c:620 ++#, c-format ++msgid "%s: invalid option -- '%c'\n" ++msgstr "%s: opção inválida -- “%c”\n" ++ ++#: posix/getopt.c:635 posix/getopt.c:681 ++#, c-format ++msgid "%s: option requires an argument -- '%c'\n" ++msgstr "%s: a opção requer um argumento -- “%c”\n" ++ ++#: posix/regcomp.c:140 ++msgid "No match" ++msgstr "Não confere" ++ ++#: posix/regcomp.c:143 ++msgid "Invalid regular expression" ++msgstr "Expressão regular inválida" ++ ++#: posix/regcomp.c:146 ++msgid "Invalid collation character" ++msgstr "Caractere de comparação inválido" ++ ++#: posix/regcomp.c:149 ++msgid "Invalid character class name" ++msgstr "Nome de classe de caractere inválido" ++ ++#: posix/regcomp.c:152 ++msgid "Trailing backslash" ++msgstr "Barra invertida final" ++ ++#: posix/regcomp.c:155 ++msgid "Invalid back reference" ++msgstr "Referência anterior inválida" ++ ++#: posix/regcomp.c:158 ++msgid "Unmatched [ or [^" ++msgstr "[ ou [^ descasados" ++ ++#: posix/regcomp.c:161 ++msgid "Unmatched ( or \\(" ++msgstr "( ou \\( descasados" ++ ++#: posix/regcomp.c:164 ++msgid "Unmatched \\{" ++msgstr "\\{ descasado" ++ ++#: posix/regcomp.c:167 ++msgid "Invalid content of \\{\\}" ++msgstr "Conteúdo inválido de \\{\\}" ++ ++#: posix/regcomp.c:170 ++msgid "Invalid range end" ++msgstr "Intervalo final inválida" ++ ++#: posix/regcomp.c:173 ++msgid "Memory exhausted" ++msgstr "Memória esgotada" ++ ++#: posix/regcomp.c:176 ++msgid "Invalid preceding regular expression" ++msgstr "Expressão regular precedente inválida" ++ ++#: posix/regcomp.c:179 ++msgid "Premature end of regular expression" ++msgstr "Fim prematuro da expressão regular" ++ ++#: posix/regcomp.c:182 ++msgid "Regular expression too big" ++msgstr "Expressão regular muito longa" ++ ++#: posix/regcomp.c:185 ++msgid "Unmatched ) or \\)" ++msgstr ") ou \\) descasados" ++ ++#: posix/regcomp.c:675 ++msgid "No previous regular expression" ++msgstr "Não há expressão regular anterior" ++ ++#: posix/wordexp.c:1803 ++msgid "parameter null or not set" ++msgstr "parâmetro nulo ou não definido" ++ ++#: resolv/herror.c:63 ++msgid "Resolver Error 0 (no error)" ++msgstr "Erro de resolvedor 0 (não há erro)" ++ ++#: resolv/herror.c:64 ++msgid "Unknown host" ++msgstr "Host desconhecido" ++ ++#: resolv/herror.c:65 ++msgid "Host name lookup failure" ++msgstr "Falha na procura do nome de host" ++ ++#: resolv/herror.c:66 ++msgid "Unknown server error" ++msgstr "Erro desconhecido de servidor" ++ ++#: resolv/herror.c:67 ++msgid "No address associated with name" ++msgstr "Não há endereço associado com o nome" ++ ++#: resolv/herror.c:102 ++msgid "Resolver internal error" ++msgstr "Erro interno do resolvedor" ++ ++#: resolv/herror.c:105 ++msgid "Unknown resolver error" ++msgstr "Erro desconhecido do resolvedor" ++ ++#: resolv/res_hconf.c:118 ++#, c-format ++msgid "%s: line %d: cannot specify more than %d trim domains" ++msgstr "%s: linha %d: não é possível especificar mais de %d domínios" ++ ++#: resolv/res_hconf.c:139 ++#, c-format ++msgid "%s: line %d: list delimiter not followed by domain" ++msgstr "%s: linha %d: delimitador de lista não seguido pelo domínio" ++ ++#: resolv/res_hconf.c:176 ++#, c-format ++msgid "%s: line %d: expected `on' or `off', found `%s'\n" ++msgstr "%s: linha %d: esperava “on” ou “off”, encontrou “%s”\n" ++ ++#: resolv/res_hconf.c:219 ++#, c-format ++msgid "%s: line %d: bad command `%s'\n" ++msgstr "%s: linha %d: comando inválido “%s”\n" ++ ++#: resolv/res_hconf.c:252 ++#, c-format ++msgid "%s: line %d: ignoring trailing garbage `%s'\n" ++msgstr "%s: linha %d: ignorando lixo ao final “%s”\n" ++ ++#: stdio-common/psiginfo-data.h:2 ++msgid "Illegal opcode" ++msgstr "Código de operação ilegal" ++ ++#: stdio-common/psiginfo-data.h:3 ++msgid "Illegal operand" ++msgstr "Operando ilegal" ++ ++#: stdio-common/psiginfo-data.h:4 ++msgid "Illegal addressing mode" ++msgstr "Modo de endereçamento ilegal" ++ ++#: stdio-common/psiginfo-data.h:5 ++msgid "Illegal trap" ++msgstr "Armadilha ilegal" ++ ++#: stdio-common/psiginfo-data.h:6 ++msgid "Privileged opcode" ++msgstr "Código de operação privilegiado" ++ ++#: stdio-common/psiginfo-data.h:7 ++msgid "Privileged register" ++msgstr "Registrador privilegiado" ++ ++#: stdio-common/psiginfo-data.h:8 ++msgid "Coprocessor error" ++msgstr "Erro do coprocessador" ++ ++#: stdio-common/psiginfo-data.h:9 ++msgid "Internal stack error" ++msgstr "Erro interno da pilha" ++ ++#: stdio-common/psiginfo-data.h:12 ++msgid "Integer divide by zero" ++msgstr "Divisão de inteiro por zero" ++ ++#: stdio-common/psiginfo-data.h:13 ++msgid "Integer overflow" ++msgstr "Estouro de valor inteiro" ++ ++#: stdio-common/psiginfo-data.h:14 ++msgid "Floating-point divide by zero" ++msgstr "Divisão de ponto flutuante por zero" ++ ++#: stdio-common/psiginfo-data.h:15 ++msgid "Floating-point overflow" ++msgstr "Estouro de ponto flutuante" ++ ++#: stdio-common/psiginfo-data.h:16 ++msgid "Floating-point underflow" ++msgstr "Estouro negativo de ponto flutuante" ++ ++#: stdio-common/psiginfo-data.h:17 ++msgid "Floating-poing inexact result" ++msgstr "Resultado inexato de ponto flutuante" ++ ++#: stdio-common/psiginfo-data.h:18 ++msgid "Invalid floating-point operation" ++msgstr "Operação inválida de ponto flutuante" ++ ++#: stdio-common/psiginfo-data.h:19 ++msgid "Subscript out of range" ++msgstr "Subscrito fora da faixa" ++ ++#: stdio-common/psiginfo-data.h:22 ++msgid "Address not mapped to object" ++msgstr "Endereço não mapeado ao objeto" ++ ++#: stdio-common/psiginfo-data.h:23 ++msgid "Invalid permissions for mapped object" ++msgstr "Permissões inválidas para objeto mapeado" ++ ++#: stdio-common/psiginfo-data.h:26 ++msgid "Invalid address alignment" ++msgstr "Alinhamento inválido de endereço" ++ ++#: stdio-common/psiginfo-data.h:27 ++msgid "Nonexisting physical address" ++msgstr "Endereço físico inexistente" ++ ++#: stdio-common/psiginfo-data.h:28 ++msgid "Object-specific hardware error" ++msgstr "Erro de hardware específico do objeto" ++ ++#: stdio-common/psiginfo-data.h:31 ++msgid "Process breakpoint" ++msgstr "Ponto de interrupção de processo" ++ ++#: stdio-common/psiginfo-data.h:32 ++msgid "Process trace trap" ++msgstr "Interrupção de rastreamento de processo" ++ ++#: stdio-common/psiginfo-data.h:35 ++msgid "Child has exited" ++msgstr "Processo filho saiu" ++ ++#: stdio-common/psiginfo-data.h:36 ++msgid "Child has terminated abnormally and did not create a core file" ++msgstr "Processo filho foi terminado anormalmente e não criou um arquivo de núcleo" ++ ++#: stdio-common/psiginfo-data.h:37 ++msgid "Child has terminated abnormally and created a core file" ++msgstr "Processo filho foi terminado anormalmente e criou um arquivo de núcleo" ++ ++#: stdio-common/psiginfo-data.h:38 ++msgid "Traced child has trapped" ++msgstr "Processo filho rastreado atingiu uma armadilha" ++ ++#: stdio-common/psiginfo-data.h:39 ++msgid "Child has stopped" ++msgstr "Processo filho parou" ++ ++#: stdio-common/psiginfo-data.h:40 ++msgid "Stopped child has continued" ++msgstr "Processo filho parado continuou" ++ ++#: stdio-common/psiginfo-data.h:43 ++msgid "Data input available" ++msgstr "Entrada de dados disponível" ++ ++#: stdio-common/psiginfo-data.h:44 ++msgid "Output buffers available" ++msgstr "Buffers de saída disponíveis" ++ ++#: stdio-common/psiginfo-data.h:45 ++msgid "Input message available" ++msgstr "Mensagem de entrada disponível" ++ ++#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520 ++msgid "I/O error" ++msgstr "Erro de E/S" ++ ++#: stdio-common/psiginfo-data.h:47 ++msgid "High priority input available" ++msgstr "Entrada de prioridade muito alta disponível" ++ ++#: stdio-common/psiginfo-data.h:48 ++msgid "Device disconnected" ++msgstr "Dispositivo desconectado" ++ ++#: stdio-common/psiginfo.c:140 ++msgid "Signal sent by kill()" ++msgstr "Sinal enviado por kill()" ++ ++#: stdio-common/psiginfo.c:143 ++msgid "Signal sent by sigqueue()" ++msgstr "Sinal enviado por sigqueue()" ++ ++#: stdio-common/psiginfo.c:146 ++msgid "Signal generated by the expiration of a timer" ++msgstr "Sinal gerado pela expiração de um temporizador" ++ ++#: stdio-common/psiginfo.c:149 ++msgid "Signal generated by the completion of an asynchronous I/O request" ++msgstr "Sinal gerado pelo completamento de uma requisição assíncrona de E/S" ++ ++#: stdio-common/psiginfo.c:153 ++msgid "Signal generated by the arrival of a message on an empty message queue" ++msgstr "Sinal gerado pela chegada de uma mensagem em uma pilhe de mensagens vazia" ++ ++#: stdio-common/psiginfo.c:158 ++msgid "Signal sent by tkill()" ++msgstr "Sinal enviado por tkill()" ++ ++#: stdio-common/psiginfo.c:163 ++msgid "Signal generated by the completion of an asynchronous name lookup request" ++msgstr "Sinal gerada pelo completamento de uma requisição assíncrona de procura de nome" ++ ++#: stdio-common/psiginfo.c:169 ++msgid "Signal generated by the completion of an I/O request" ++msgstr "Sinal gerado pelo completamento de uma requisição de E/S" ++ ++#: stdio-common/psiginfo.c:175 ++msgid "Signal sent by the kernel" ++msgstr "Sinal enviado pelo kernel" ++ ++#: stdio-common/psiginfo.c:199 ++#, c-format ++msgid "Unknown signal %d\n" ++msgstr "Sinal desconhecido %d\n" ++ ++#: stdio-common/psignal.c:43 ++#, c-format ++msgid "%s%sUnknown signal %d\n" ++msgstr "%s%sSinal desconhecido %d\n" ++ ++#: stdio-common/psignal.c:44 ++msgid "Unknown signal" ++msgstr "Sinal desconhecido" ++ ++#: string/_strerror.c:45 sysdeps/mach/_strerror.c:86 ++msgid "Unknown error " ++msgstr "Erro desconhecido " ++ ++#: string/strerror.c:41 ++msgid "Unknown error" ++msgstr "Erro desconhecido" ++ ++#: string/strsignal.c:60 ++#, c-format ++msgid "Real-time signal %d" ++msgstr "Sinal de tempo-real %d" ++ ++#: string/strsignal.c:64 ++#, c-format ++msgid "Unknown signal %d" ++msgstr "Sinal desconhecido %d" ++ ++#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139 ++#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233 ++#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229 ++#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102 ++#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79 ++msgid "out of memory\n" ++msgstr "memória insuficiente\n" ++ ++#: sunrpc/auth_unix.c:349 ++msgid "auth_unix.c: Fatal marshalling problem" ++msgstr "auth_unix.c: Problema fatal de marshalling" ++ ++#: sunrpc/clnt_perr.c:96 sunrpc/clnt_perr.c:112 ++#, c-format ++msgid "%s: %s; low version = %lu, high version = %lu" ++msgstr "%s: %s; versão baixa = %lu, versão alta = %lu" ++ ++#: sunrpc/clnt_perr.c:103 ++#, c-format ++msgid "%s: %s; why = %s\n" ++msgstr "%s: %s; por que = %s\n" ++ ++#: sunrpc/clnt_perr.c:105 ++#, c-format ++msgid "%s: %s; why = (unknown authentication error - %d)\n" ++msgstr "%s: %s; por que = (erro desconhecido de autenticação – %d)\n" ++ ++#: sunrpc/clnt_perr.c:154 ++msgid "RPC: Success" ++msgstr "RPC: Sucesso" ++ ++#: sunrpc/clnt_perr.c:157 ++msgid "RPC: Can't encode arguments" ++msgstr "RPC: não foi possível codificar argumentos" ++ ++#: sunrpc/clnt_perr.c:161 ++msgid "RPC: Can't decode result" ++msgstr "RPC: não foi possível decodificar resultado" ++ ++#: sunrpc/clnt_perr.c:165 ++msgid "RPC: Unable to send" ++msgstr "RPC: não foi possível enviar" ++ ++#: sunrpc/clnt_perr.c:169 ++msgid "RPC: Unable to receive" ++msgstr "RPC: não foi possível receber" ++ ++#: sunrpc/clnt_perr.c:173 ++msgid "RPC: Timed out" ++msgstr "RPC: Tempo esgotado" ++ ++#: sunrpc/clnt_perr.c:177 ++msgid "RPC: Incompatible versions of RPC" ++msgstr "RPC: Versões incompatíveis de RPC" ++ ++#: sunrpc/clnt_perr.c:181 ++msgid "RPC: Authentication error" ++msgstr "RPC: Erro de autenticação" ++ ++#: sunrpc/clnt_perr.c:185 ++msgid "RPC: Program unavailable" ++msgstr "RPC: Programa indisponível" ++ ++#: sunrpc/clnt_perr.c:189 ++msgid "RPC: Program/version mismatch" ++msgstr "RPC: Programa/versão incompatíveis" ++ ++#: sunrpc/clnt_perr.c:193 ++msgid "RPC: Procedure unavailable" ++msgstr "RPC: Procedimento indisponível" ++ ++#: sunrpc/clnt_perr.c:197 ++msgid "RPC: Server can't decode arguments" ++msgstr "RPC: O servidor não pode decodificar os argumentos" ++ ++#: sunrpc/clnt_perr.c:201 ++msgid "RPC: Remote system error" ++msgstr "RPC: Erro remoto de sistema" ++ ++#: sunrpc/clnt_perr.c:205 ++msgid "RPC: Unknown host" ++msgstr "RPC: Host desconhecido" ++ ++#: sunrpc/clnt_perr.c:209 ++msgid "RPC: Unknown protocol" ++msgstr "RPC: Protocolo desconhecido" ++ ++#: sunrpc/clnt_perr.c:213 ++msgid "RPC: Port mapper failure" ++msgstr "RPC: Falha no Port mapper" ++ ++#: sunrpc/clnt_perr.c:217 ++msgid "RPC: Program not registered" ++msgstr "RPC: Programa não registrado" ++ ++#: sunrpc/clnt_perr.c:221 ++msgid "RPC: Failed (unspecified error)" ++msgstr "RPC: Falhou (erro não especificado)" ++ ++#: sunrpc/clnt_perr.c:262 ++msgid "RPC: (unknown error code)" ++msgstr "RPC: (código de erro desconhecido)" ++ ++#: sunrpc/clnt_perr.c:334 ++msgid "Authentication OK" ++msgstr "Autenticação OK" ++ ++#: sunrpc/clnt_perr.c:337 ++msgid "Invalid client credential" ++msgstr "Credencial de cliente inválido" ++ ++#: sunrpc/clnt_perr.c:341 ++msgid "Server rejected credential" ++msgstr "Servidor rejeitou credencial" ++ ++#: sunrpc/clnt_perr.c:345 ++msgid "Invalid client verifier" ++msgstr "Verificador de cliente inválido" ++ ++#: sunrpc/clnt_perr.c:349 ++msgid "Server rejected verifier" ++msgstr "Servidor rejeitou verificador" ++ ++#: sunrpc/clnt_perr.c:353 ++msgid "Client credential too weak" ++msgstr "Credencial do cliente muito fraca" ++ ++#: sunrpc/clnt_perr.c:357 ++msgid "Invalid server verifier" ++msgstr "Verificador de servidor inválido" ++ ++#: sunrpc/clnt_perr.c:361 ++msgid "Failed (unspecified error)" ++msgstr "Falha (erro não especificado)" ++ ++#: sunrpc/clnt_raw.c:116 ++msgid "clnt_raw.c: fatal header serialization error" ++msgstr "clnt_raw.c: erro fatal no cabeçalho de serialização" ++ ++#: sunrpc/pm_getmaps.c:78 ++msgid "pmap_getmaps.c: rpc problem" ++msgstr "pmap_getmaps.c: problema de rpc" ++ ++#: sunrpc/pmap_clnt.c:128 ++msgid "Cannot register service" ++msgstr "Não foi possível registrar serviço" ++ ++#: sunrpc/pmap_rmt.c:244 ++msgid "Cannot create socket for broadcast rpc" ++msgstr "Não foi possível criar socket para rpc de broadcast" ++ ++#: sunrpc/pmap_rmt.c:251 ++msgid "Cannot set socket option SO_BROADCAST" ++msgstr "Não foi possível usar opção do socket SO_BROADCAST" ++ ++#: sunrpc/pmap_rmt.c:303 ++msgid "Cannot send broadcast packet" ++msgstr "Não foi possível enviar pacote de broadcast" ++ ++#: sunrpc/pmap_rmt.c:328 ++msgid "Broadcast poll problem" ++msgstr "Problema na pesquisa de broadcast" ++ ++#: sunrpc/pmap_rmt.c:341 ++msgid "Cannot receive reply to broadcast" ++msgstr "Não foi possível receber resposta para broadcast" ++ ++#: sunrpc/rpc_main.c:281 ++#, c-format ++msgid "%s: output would overwrite %s\n" ++msgstr "%s: saída poderá sobrescrever %s\n" ++ ++#: sunrpc/rpc_main.c:288 ++#, c-format ++msgid "%s: unable to open %s: %m\n" ++msgstr "%s: não foi possível abrir %s: %m\n" ++ ++#: sunrpc/rpc_main.c:300 ++#, c-format ++msgid "%s: while writing output %s: %m" ++msgstr "%s: ao escrever saída %s: %m" ++ ++#: sunrpc/rpc_main.c:336 sunrpc/rpc_main.c:375 ++#, c-format ++msgid "cannot find C preprocessor: %s\n" ++msgstr "não foi possível localizar pré-processador C: %s\n" ++ ++#: sunrpc/rpc_main.c:411 ++#, c-format ++msgid "%s: C preprocessor failed with signal %d\n" ++msgstr "%s: pré-processador C falhou com sinal %d\n" ++ ++#: sunrpc/rpc_main.c:414 ++#, c-format ++msgid "%s: C preprocessor failed with exit code %d\n" ++msgstr "%s: pré-processador C falhou com código de saída %d\n" ++ ++#: sunrpc/rpc_main.c:454 ++#, c-format ++msgid "illegal nettype: `%s'\n" ++msgstr "nettype ilegal: “%s”\n" ++ ++#: sunrpc/rpc_main.c:1089 ++#, c-format ++msgid "rpcgen: too many defines\n" ++msgstr "rpcgen: número excessivo de definições\n" ++ ++#: sunrpc/rpc_main.c:1101 ++#, c-format ++msgid "rpcgen: arglist coding error\n" ++msgstr "rpcgen: erro na codificação de parâmetros\n" ++ ++#. TRANS: the file will not be removed; this is an ++#. TRANS: informative message. ++#: sunrpc/rpc_main.c:1134 ++#, c-format ++msgid "file `%s' already exists and may be overwritten\n" ++msgstr "o arquivo “%s” já existe e pode ser sobrescrito\n" ++ ++#: sunrpc/rpc_main.c:1179 ++#, c-format ++msgid "Cannot specify more than one input file!\n" ++msgstr "Não é possível especificar mais de um arquivo de entrada!\n" ++ ++#: sunrpc/rpc_main.c:1349 ++#, c-format ++msgid "This implementation doesn't support newstyle or MT-safe code!\n" ++msgstr "Essa implementação não oferece suporte a código newstyle ou MT-safe!\n" ++ ++#: sunrpc/rpc_main.c:1358 ++#, c-format ++msgid "Cannot use netid flag with inetd flag!\n" ++msgstr "Não é possível usar tabela de indicadores com novo estilo!\n" ++ ++#: sunrpc/rpc_main.c:1367 ++#, c-format ++msgid "Cannot use netid flag without TIRPC!\n" ++msgstr "Não é possível usar indicador netid sem TIRPC!\n" ++ ++#: sunrpc/rpc_main.c:1374 ++#, c-format ++msgid "Cannot use table flags with newstyle!\n" ++msgstr "Não é possível usar indicadores de tabelas com novo estilo!\n" ++ ++#: sunrpc/rpc_main.c:1393 ++#, c-format ++msgid "\"infile\" is required for template generation flags.\n" ++msgstr "“arq-entrada” é necessário para geração de indicadores do modelo.\n" ++ ++#: sunrpc/rpc_main.c:1398 ++#, c-format ++msgid "Cannot have more than one file generation flag!\n" ++msgstr "Não é possível ter mais de um indicador de geração de arquivo!\n" ++ ++#: sunrpc/rpc_main.c:1407 ++#, c-format ++msgid "usage: %s infile\n" ++msgstr "uso: %s arq-entrada\n" ++ ++#: sunrpc/rpc_main.c:1408 ++#, c-format ++msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n" ++msgstr "\t%s [-abkCLNTM][-Dnome[=valor]] [-i tam] [-I [-K segs]] [-Y rota] arq-entrada\n" ++ ++#: sunrpc/rpc_main.c:1410 ++#, c-format ++msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n" ++msgstr "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o arq-saída] [arq-entrada]\n" ++ ++#: sunrpc/rpc_main.c:1412 ++#, c-format ++msgid "\t%s [-s nettype]* [-o outfile] [infile]\n" ++msgstr "\t%s [-s tipo-rede]* [-o arq-saída] [arq-entrada]\n" ++ ++#: sunrpc/rpc_main.c:1413 ++#, c-format ++msgid "\t%s [-n netid]* [-o outfile] [infile]\n" ++msgstr "\t%s [-n id-rede]* [-o arq-saída] [arq-entrada]\n" ++ ++#: sunrpc/rpc_main.c:1421 ++#, c-format ++msgid "options:\n" ++msgstr "opções:\n" ++ ++#: sunrpc/rpc_main.c:1422 ++#, c-format ++msgid "-a\t\tgenerate all files, including samples\n" ++msgstr "-a\t\tgera todos arquivos, incluindo amostras\n" ++ ++#: sunrpc/rpc_main.c:1423 ++#, c-format ++msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n" ++msgstr "-b\t\tmodo de compatibilidade reversa (gera código para SunOS 4.1)\n" ++ ++#: sunrpc/rpc_main.c:1424 ++#, c-format ++msgid "-c\t\tgenerate XDR routines\n" ++msgstr "-c\t\tgera rotinas XDR\n" ++ ++#: sunrpc/rpc_main.c:1425 ++#, c-format ++msgid "-C\t\tANSI C mode\n" ++msgstr "-C\t\tmodo ANSI C\n" ++ ++#: sunrpc/rpc_main.c:1426 ++#, c-format ++msgid "-Dname[=value]\tdefine a symbol (same as #define)\n" ++msgstr "-Dnome[=valor]\tdefine um símbolo (mesmos que #define)\n" ++ ++#: sunrpc/rpc_main.c:1427 ++#, c-format ++msgid "-h\t\tgenerate header file\n" ++msgstr "-h\t\tgera arquivo de cabeçalho\n" ++ ++#: sunrpc/rpc_main.c:1428 ++#, c-format ++msgid "-i size\t\tsize at which to start generating inline code\n" ++msgstr "-i tamanho\ttamanho no qual se inicia geração de código em linha\n" ++ ++#: sunrpc/rpc_main.c:1429 ++#, c-format ++msgid "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n" ++msgstr "-I\t\tgera código para suporte inetd em servidor (para SunOS 4.1)\n" ++ ++#: sunrpc/rpc_main.c:1430 ++#, c-format ++msgid "-K seconds\tserver exits after K seconds of inactivity\n" ++msgstr "-K segundos\tservidor sai após K segundos de inatividade\n" ++ ++#: sunrpc/rpc_main.c:1431 ++#, c-format ++msgid "-l\t\tgenerate client side stubs\n" ++msgstr "-l\t\tgera stubs do lado do cliente\n" ++ ++#: sunrpc/rpc_main.c:1432 ++#, c-format ++msgid "-L\t\tserver errors will be printed to syslog\n" ++msgstr "-L\t\terros de servidor serão imprimidos ao syslog\n" ++ ++#: sunrpc/rpc_main.c:1433 ++#, c-format ++msgid "-m\t\tgenerate server side stubs\n" ++msgstr "-l\t\tgera stubs do lado do servidor\n" ++ ++#: sunrpc/rpc_main.c:1434 ++#, c-format ++msgid "-M\t\tgenerate MT-safe code\n" ++msgstr "-M\t\tgera código MT-safe\n" ++ ++#: sunrpc/rpc_main.c:1435 ++#, c-format ++msgid "-n netid\tgenerate server code that supports named netid\n" ++msgstr "-n id-rede\tgera código de servidor que aceita o id-rede nomeado\n" ++ ++#: sunrpc/rpc_main.c:1436 ++#, c-format ++msgid "-N\t\tsupports multiple arguments and call-by-value\n" ++msgstr "-N\t\taceita múltiplos argumentos de chamadas por valor\n" ++ ++#: sunrpc/rpc_main.c:1437 ++#, c-format ++msgid "-o outfile\tname of the output file\n" ++msgstr "-o arq-saída\tnome do arquivo de saída\n" ++ ++#: sunrpc/rpc_main.c:1438 ++#, c-format ++msgid "-s nettype\tgenerate server code that supports named nettype\n" ++msgstr "-s tipo-rede\tgera código de servidor que aceita o tipo-rede nomeado\n" ++ ++#: sunrpc/rpc_main.c:1439 ++#, c-format ++msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n" ++msgstr "-Sc\t\tgera amostra de código cliente que usa procedimentos remotos\n" ++ ++#: sunrpc/rpc_main.c:1440 ++#, c-format ++msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n" ++msgstr "-Ss\t\tgera amostra de código servidor que define procedimentos remotos\n" ++ ++#: sunrpc/rpc_main.c:1441 ++#, c-format ++msgid "-Sm \t\tgenerate makefile template \n" ++msgstr "-Sm \t\tgera modelo de makefile \n" ++ ++#: sunrpc/rpc_main.c:1442 ++#, c-format ++msgid "-t\t\tgenerate RPC dispatch table\n" ++msgstr "-t\t\tgera tabela de expedição RPC\n" ++ ++#: sunrpc/rpc_main.c:1443 ++#, c-format ++msgid "-T\t\tgenerate code to support RPC dispatch tables\n" ++msgstr "-T\t\tgera código para lidar com tabelas de expedição RPC\n" ++ ++#: sunrpc/rpc_main.c:1444 ++#, c-format ++msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n" ++msgstr "-Y rota\t\tnome do diretório para localizar pré-processador C (cpp)\n" ++ ++#: sunrpc/rpc_main.c:1445 ++#, c-format ++msgid "-5\t\tSysVr4 compatibility mode\n" ++msgstr "-5\t\tmodo de compatibilidade com SysVr4\n" ++ ++#: sunrpc/rpc_main.c:1446 ++#, c-format ++msgid "--help\t\tgive this help list\n" ++msgstr "--help\t\tfornece essa lista de ajuda\n" ++ ++#: sunrpc/rpc_main.c:1447 ++#, c-format ++msgid "--version\tprint program version\n" ++msgstr "--version\temite a versão do programa\n" ++ ++#: sunrpc/rpc_main.c:1449 ++#, c-format ++msgid "" ++"\n" ++"For bug reporting instructions, please see:\n" ++"%s.\n" ++msgstr "" ++"\n" ++"Para instruções sobre relatório de erro, veja:\n" ++"%s.\n" ++ ++#: sunrpc/rpc_scan.c:112 ++msgid "constant or identifier expected" ++msgstr "identificador ou constante esperado" ++ ++#: sunrpc/rpc_scan.c:308 ++msgid "illegal character in file: " ++msgstr "caracteres ilegais no arquivo: " ++ ++#: sunrpc/rpc_scan.c:347 sunrpc/rpc_scan.c:373 ++msgid "unterminated string constant" ++msgstr "constante string não terminada" ++ ++#: sunrpc/rpc_scan.c:379 ++msgid "empty char string" ++msgstr "cadeia de caractere vazia" ++ ++#: sunrpc/rpc_scan.c:521 sunrpc/rpc_scan.c:531 ++msgid "preprocessor error" ++msgstr "Erro de pré-processador" ++ ++#: sunrpc/svc_run.c:72 ++msgid "svc_run: - out of memory" ++msgstr "svc_run: – memória insuficiente" ++ ++#: sunrpc/svc_run.c:92 ++msgid "svc_run: - poll failed" ++msgstr "svc_run: – poll falhou" ++ ++#: sunrpc/svc_simple.c:80 ++#, c-format ++msgid "can't reassign procedure number %ld\n" ++msgstr "não é possível reatribuir número de procedimento %ld\n" ++ ++#: sunrpc/svc_simple.c:90 ++msgid "couldn't create an rpc server\n" ++msgstr "não foi possível criar um servidor rpc\n" ++ ++#: sunrpc/svc_simple.c:98 ++#, c-format ++msgid "couldn't register prog %ld vers %ld\n" ++msgstr "não foi possível registrar prog %ld vers %ld\n" ++ ++#: sunrpc/svc_simple.c:106 ++msgid "registerrpc: out of memory\n" ++msgstr "registerrpc: memória insuficiente\n" ++ ++#: sunrpc/svc_simple.c:169 ++#, c-format ++msgid "trouble replying to prog %d\n" ++msgstr "problemas ao responder ao prog %d\n" ++ ++#: sunrpc/svc_simple.c:178 ++#, c-format ++msgid "never registered prog %d\n" ++msgstr "prog %d nunca registrado\n" ++ ++#: sunrpc/svc_tcp.c:165 ++msgid "svc_tcp.c - tcp socket creation problem" ++msgstr "svc_tcp_.c – problema na criação do soquete AF_UNIX" ++ ++#: sunrpc/svc_tcp.c:180 ++msgid "svc_tcp.c - cannot getsockname or listen" ++msgstr "svc_tcp_.c – não foi possível receber getsocknome ou listen" ++ ++#: sunrpc/svc_udp.c:136 ++msgid "svcudp_create: socket creation problem" ++msgstr "svcudp_create: problema na criação socket" ++ ++#: sunrpc/svc_udp.c:150 ++msgid "svcudp_create - cannot getsockname" ++msgstr "svcudp_create – não foi possível getsockname" ++ ++#: sunrpc/svc_udp.c:182 ++msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n" ++msgstr "svcudp_create: xp_pad é pequeno demais para IP_PKTINFO\n" ++ ++#: sunrpc/svc_udp.c:481 ++msgid "enablecache: cache already enabled" ++msgstr "enablecache: cache já ativado" ++ ++#: sunrpc/svc_udp.c:487 ++msgid "enablecache: could not allocate cache" ++msgstr "enablecache: não foi possível alocar cache" ++ ++#: sunrpc/svc_udp.c:496 ++msgid "enablecache: could not allocate cache data" ++msgstr "enablecache: não foi possível alocar dados do cache" ++ ++#: sunrpc/svc_udp.c:504 ++msgid "enablecache: could not allocate cache fifo" ++msgstr "enablecache: não foi possível alocar fifo de cache" ++ ++#: sunrpc/svc_udp.c:540 ++msgid "cache_set: victim not found" ++msgstr "cache_set: vítima não localizada" ++ ++#: sunrpc/svc_udp.c:551 ++msgid "cache_set: victim alloc failed" ++msgstr "cache_set: alocação de vítima falhou" ++ ++#: sunrpc/svc_udp.c:558 ++msgid "cache_set: could not allocate new rpc_buffer" ++msgstr "cache_set: não foi possível alocar novo rpc_buffer" ++ ++#: sunrpc/svc_unix.c:163 ++msgid "svc_unix.c - AF_UNIX socket creation problem" ++msgstr "svc_tcp_.c – problema na criação do soquete AF_UNIX" ++ ++#: sunrpc/svc_unix.c:179 ++msgid "svc_unix.c - cannot getsockname or listen" ++msgstr "svc_tcp_.c – não foi possível receber getsocknome ou listen" ++ ++#: sysdeps/generic/siglist.h:29 ++msgid "Hangup" ++msgstr "Desconexão" ++ ++#: sysdeps/generic/siglist.h:30 ++msgid "Interrupt" ++msgstr "Interrupção" ++ ++#: sysdeps/generic/siglist.h:31 ++msgid "Quit" ++msgstr "Sair" ++ ++#: sysdeps/generic/siglist.h:32 ++msgid "Illegal instruction" ++msgstr "Instrução ilegal" ++ ++#: sysdeps/generic/siglist.h:33 ++msgid "Trace/breakpoint trap" ++msgstr "Trace/breakpoint trap" ++ ++#: sysdeps/generic/siglist.h:34 ++msgid "Aborted" ++msgstr "Abortado" ++ ++#: sysdeps/generic/siglist.h:35 ++msgid "Floating point exception" ++msgstr "Exceção de ponto flutuante" ++ ++#: sysdeps/generic/siglist.h:36 ++msgid "Killed" ++msgstr "Morto" ++ ++#: sysdeps/generic/siglist.h:37 ++msgid "Bus error" ++msgstr "Erro no barramento" ++ ++#: sysdeps/generic/siglist.h:38 ++msgid "Bad system call" ++msgstr "Chamada de sistema inválida" ++ ++#: sysdeps/generic/siglist.h:39 ++msgid "Segmentation fault" ++msgstr "Falha de segmentação" ++ ++#. TRANS There is no process reading from the other end of a pipe. ++#. TRANS Every library function that returns this error code also generates a ++#. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled ++#. TRANS or blocked. Thus, your program will never actually see @code{EPIPE} ++#. TRANS unless it has handled or blocked @code{SIGPIPE}. ++#: sysdeps/generic/siglist.h:40 sysdeps/gnu/errlist.c:360 ++msgid "Broken pipe" ++msgstr "Pipe quebrado" ++ ++#: sysdeps/generic/siglist.h:41 ++msgid "Alarm clock" ++msgstr "Alarme de tempo" ++ ++#: sysdeps/generic/siglist.h:42 ++msgid "Terminated" ++msgstr "Terminado" ++ ++#: sysdeps/generic/siglist.h:43 ++msgid "Urgent I/O condition" ++msgstr "Condição urgente de E/S" ++ ++#: sysdeps/generic/siglist.h:44 ++msgid "Stopped (signal)" ++msgstr "Parado (sinal)" ++ ++#: sysdeps/generic/siglist.h:45 ++msgid "Stopped" ++msgstr "Parado" ++ ++#: sysdeps/generic/siglist.h:46 ++msgid "Continued" ++msgstr "Continua" ++ ++#: sysdeps/generic/siglist.h:47 ++msgid "Child exited" ++msgstr "Filho finalizado" ++ ++#: sysdeps/generic/siglist.h:48 ++msgid "Stopped (tty input)" ++msgstr "Parado (entrada tty)" ++ ++#: sysdeps/generic/siglist.h:49 ++msgid "Stopped (tty output)" ++msgstr "Parado (saída tty)" ++ ++#: sysdeps/generic/siglist.h:50 ++msgid "I/O possible" ++msgstr "Possível E/S" ++ ++#: sysdeps/generic/siglist.h:51 ++msgid "CPU time limit exceeded" ++msgstr "Tempo de CPU excedido" ++ ++#: sysdeps/generic/siglist.h:52 ++msgid "File size limit exceeded" ++msgstr "Excedido tamanho limite de arquivo" ++ ++#: sysdeps/generic/siglist.h:53 ++msgid "Virtual timer expired" ++msgstr "Temporizador virtual expirado" ++ ++#: sysdeps/generic/siglist.h:54 ++msgid "Profiling timer expired" ++msgstr "Tempo expirado para perfilamento" ++ ++#: sysdeps/generic/siglist.h:55 ++msgid "User defined signal 1" ++msgstr "Sinal 1 definido pelo usuário" ++ ++#: sysdeps/generic/siglist.h:56 ++msgid "User defined signal 2" ++msgstr "Sinal 2 definido pelo usuário" ++ ++#: sysdeps/generic/siglist.h:57 ++msgid "Window changed" ++msgstr "Janela alterada" ++ ++#: sysdeps/generic/siglist.h:61 ++msgid "EMT trap" ++msgstr "Trap EMT" ++ ++#: sysdeps/generic/siglist.h:64 ++msgid "Stack fault" ++msgstr "Falha de pilha" ++ ++#: sysdeps/generic/siglist.h:67 ++msgid "Power failure" ++msgstr "Falha de energia" ++ ++#: sysdeps/generic/siglist.h:70 ++msgid "Information request" ++msgstr "Requisição de informação" ++ ++#: sysdeps/generic/siglist.h:73 ++msgid "Resource lost" ++msgstr "Recurso perdido" ++ ++#. TRANS Only the owner of the file (or other resource) ++#. TRANS or processes with special privileges can perform the operation. ++#: sysdeps/gnu/errlist.c:26 ++msgid "Operation not permitted" ++msgstr "Operação não permitida" ++ ++#. TRANS No process matches the specified process ID. ++#: sysdeps/gnu/errlist.c:46 ++msgid "No such process" ++msgstr "Processo inexistente" ++ ++#. TRANS An asynchronous signal occurred and prevented ++#. TRANS completion of the call. When this happens, you should try the call ++#. TRANS again. ++#. TRANS ++#. TRANS You can choose to have functions resume after a signal that is handled, ++#. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted ++#. TRANS Primitives}. ++#: sysdeps/gnu/errlist.c:61 ++msgid "Interrupted system call" ++msgstr "Chamada de sistema interrompida" ++ ++#. TRANS Usually used for physical read or write errors. ++#: sysdeps/gnu/errlist.c:70 ++msgid "Input/output error" ++msgstr "Erro de entrada/saída" ++ ++#. TRANS The system tried to use the device ++#. TRANS represented by a file you specified, and it couldn't find the device. ++#. TRANS This can mean that the device file was installed incorrectly, or that ++#. TRANS the physical device is missing or not correctly attached to the ++#. TRANS computer. ++#: sysdeps/gnu/errlist.c:83 ++msgid "No such device or address" ++msgstr "Endereço ou dispositivo inexistente" ++ ++#. TRANS Used when the arguments passed to a new program ++#. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a ++#. TRANS File}) occupy too much memory space. This condition never arises on ++#. TRANS @gnuhurdsystems{}. ++#: sysdeps/gnu/errlist.c:95 ++msgid "Argument list too long" ++msgstr "Lista de argumentos muito longa" ++ ++#. TRANS Invalid executable file format. This condition is detected by the ++#. TRANS @code{exec} functions; see @ref{Executing a File}. ++#: sysdeps/gnu/errlist.c:105 ++msgid "Exec format error" ++msgstr "Erro no formato exec" ++ ++#. TRANS For example, I/O on a descriptor that has been ++#. TRANS closed or reading from a descriptor open only for writing (or vice ++#. TRANS versa). ++#: sysdeps/gnu/errlist.c:116 ++msgid "Bad file descriptor" ++msgstr "Descritor de arquivo inválido" ++ ++#. TRANS This error happens on operations that are ++#. TRANS supposed to manipulate child processes, when there aren't any processes ++#. TRANS to manipulate. ++#: sysdeps/gnu/errlist.c:127 ++msgid "No child processes" ++msgstr "Não há processos filhos" ++ ++#. TRANS Allocating a system resource would have resulted in a ++#. TRANS deadlock situation. The system does not guarantee that it will notice ++#. TRANS all such situations. This error means you got lucky and the system ++#. TRANS noticed; it might just hang. @xref{File Locks}, for an example. ++#: sysdeps/gnu/errlist.c:139 ++msgid "Resource deadlock avoided" ++msgstr "Evitado deadlock de recurso" ++ ++#. TRANS The system cannot allocate more virtual memory ++#. TRANS because its capacity is full. ++#: sysdeps/gnu/errlist.c:149 ++msgid "Cannot allocate memory" ++msgstr "Não foi possível alocar memória" ++ ++#. TRANS An invalid pointer was detected. ++#. TRANS On @gnuhurdsystems{}, this error never happens; you get a signal instead. ++#: sysdeps/gnu/errlist.c:168 ++msgid "Bad address" ++msgstr "Endereço inválido" ++ ++#. TRANS A file that isn't a block special file was given in a situation that ++#. TRANS requires one. For example, trying to mount an ordinary file as a file ++#. TRANS system in Unix gives this error. ++#: sysdeps/gnu/errlist.c:179 ++msgid "Block device required" ++msgstr "Dispositivo de bloco requerido" ++ ++#. TRANS A system resource that can't be shared is already in use. ++#. TRANS For example, if you try to delete a file that is the root of a currently ++#. TRANS mounted filesystem, you get this error. ++#: sysdeps/gnu/errlist.c:190 ++msgid "Device or resource busy" ++msgstr "Dispositivo ou recurso está ocupado" ++ ++#. TRANS An existing file was specified in a context where it only ++#. TRANS makes sense to specify a new file. ++#: sysdeps/gnu/errlist.c:200 ++msgid "File exists" ++msgstr "Arquivo existe" ++ ++#. TRANS An attempt to make an improper link across file systems was detected. ++#. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but ++#. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}). ++#: sysdeps/gnu/errlist.c:211 ++msgid "Invalid cross-device link" ++msgstr "Link entre dispositivos inválido" ++ ++#. TRANS The wrong type of device was given to a function that expects a ++#. TRANS particular sort of device. ++#: sysdeps/gnu/errlist.c:221 ++msgid "No such device" ++msgstr "Dispositivo inexistente" ++ ++#. TRANS A file that isn't a directory was specified when a directory is required. ++#: sysdeps/gnu/errlist.c:230 ++msgid "Not a directory" ++msgstr "Não é um diretório" ++ ++#. TRANS You cannot open a directory for writing, ++#. TRANS or create or remove hard links to it. ++#: sysdeps/gnu/errlist.c:240 ++msgid "Is a directory" ++msgstr "É um diretório" ++ ++#. TRANS This is used to indicate various kinds of problems ++#. TRANS with passing the wrong argument to a library function. ++#: sysdeps/gnu/errlist.c:250 ++msgid "Invalid argument" ++msgstr "Argumento inválido" ++ ++#. TRANS The current process has too many files open and can't open any more. ++#. TRANS Duplicate descriptors do count toward this limit. ++#. TRANS ++#. TRANS In BSD and GNU, the number of open files is controlled by a resource ++#. TRANS limit that can usually be increased. If you get this error, you might ++#. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited; ++#. TRANS @pxref{Limits on Resources}. ++#: sysdeps/gnu/errlist.c:265 ++msgid "Too many open files" ++msgstr "Muitos arquivos abertos" ++ ++#. TRANS There are too many distinct file openings in the entire system. Note ++#. TRANS that any number of linked channels count as just one file opening; see ++#. TRANS @ref{Linked Channels}. This error never occurs on @gnuhurdsystems{}. ++#: sysdeps/gnu/errlist.c:276 ++msgid "Too many open files in system" ++msgstr "Muitos arquivos abertos no sistema" ++ ++#. TRANS Inappropriate I/O control operation, such as trying to set terminal ++#. TRANS modes on an ordinary file. ++#: sysdeps/gnu/errlist.c:286 ++msgid "Inappropriate ioctl for device" ++msgstr "ioctl inapropriado para dispositivo" ++ ++#. TRANS An attempt to execute a file that is currently open for writing, or ++#. TRANS write to a file that is currently being executed. Often using a ++#. TRANS debugger to run a program is considered having it open for writing and ++#. TRANS will cause this error. (The name stands for ``text file busy''.) This ++#. TRANS is not an error on @gnuhurdsystems{}; the text is copied as necessary. ++#: sysdeps/gnu/errlist.c:299 ++msgid "Text file busy" ++msgstr "Área de texto ocupada" ++ ++#. TRANS The size of a file would be larger than allowed by the system. ++#: sysdeps/gnu/errlist.c:308 ++msgid "File too large" ++msgstr "Arquivo muito grande" ++ ++#. TRANS Write operation on a file failed because the ++#. TRANS disk is full. ++#: sysdeps/gnu/errlist.c:318 ++msgid "No space left on device" ++msgstr "Não há espaço disponível no dispositivo" ++ ++#. TRANS Invalid seek operation (such as on a pipe). ++#: sysdeps/gnu/errlist.c:327 ++msgid "Illegal seek" ++msgstr "Procura ilegal" ++ ++#. TRANS An attempt was made to modify something on a read-only file system. ++#: sysdeps/gnu/errlist.c:336 ++msgid "Read-only file system" ++msgstr "Sistema de arquivos somente para leitura" ++ ++#. TRANS The link count of a single file would become too large. ++#. TRANS @code{rename} can cause this error if the file being renamed already has ++#. TRANS as many links as it can take (@pxref{Renaming Files}). ++#: sysdeps/gnu/errlist.c:347 ++msgid "Too many links" ++msgstr "Muitos links" ++ ++#. TRANS Used by mathematical functions when an argument value does ++#. TRANS not fall into the domain over which the function is defined. ++#: sysdeps/gnu/errlist.c:370 ++msgid "Numerical argument out of domain" ++msgstr "Argumento numérico fora de domínio" ++ ++#. TRANS Used by mathematical functions when the result value is ++#. TRANS not representable because of overflow or underflow. ++#: sysdeps/gnu/errlist.c:380 ++msgid "Numerical result out of range" ++msgstr "Resultado numérico fora de alcance" ++ ++#. TRANS The call might work if you try again ++#. TRANS later. The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN}; ++#. TRANS they are always the same in @theglibc{}. ++#. TRANS ++#. TRANS This error can happen in a few different situations: ++#. TRANS ++#. TRANS @itemize @bullet ++#. TRANS @item ++#. TRANS An operation that would block was attempted on an object that has ++#. TRANS non-blocking mode selected. Trying the same operation again will block ++#. TRANS until some external condition makes it possible to read, write, or ++#. TRANS connect (whatever the operation). You can use @code{select} to find out ++#. TRANS when the operation will be possible; @pxref{Waiting for I/O}. ++#. TRANS ++#. TRANS @strong{Portability Note:} In many older Unix systems, this condition ++#. TRANS was indicated by @code{EWOULDBLOCK}, which was a distinct error code ++#. TRANS different from @code{EAGAIN}. To make your program portable, you should ++#. TRANS check for both codes and treat them the same. ++#. TRANS ++#. TRANS @item ++#. TRANS A temporary resource shortage made an operation impossible. @code{fork} ++#. TRANS can return this error. It indicates that the shortage is expected to ++#. TRANS pass, so your program can try the call again later and it may succeed. ++#. TRANS It is probably a good idea to delay for a few seconds before trying it ++#. TRANS again, to allow time for other processes to release scarce resources. ++#. TRANS Such shortages are usually fairly serious and affect the whole system, ++#. TRANS so usually an interactive program should report the error to the user ++#. TRANS and return to its command loop. ++#. TRANS @end itemize ++#: sysdeps/gnu/errlist.c:417 ++msgid "Resource temporarily unavailable" ++msgstr "Recurso temporariamente indisponível" ++ ++#. TRANS In @theglibc{}, this is another name for @code{EAGAIN} (above). ++#. TRANS The values are always the same, on every operating system. ++#. TRANS ++#. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a ++#. TRANS separate error code. ++#: sysdeps/gnu/errlist.c:430 ++msgid "Operation would block" ++msgstr "Operation causaria bloqueio" ++ ++#. TRANS An operation that cannot complete immediately was initiated on an object ++#. TRANS that has non-blocking mode selected. Some functions that must always ++#. TRANS block (such as @code{connect}; @pxref{Connecting}) never return ++#. TRANS @code{EAGAIN}. Instead, they return @code{EINPROGRESS} to indicate that ++#. TRANS the operation has begun and will take some time. Attempts to manipulate ++#. TRANS the object before the call completes return @code{EALREADY}. You can ++#. TRANS use the @code{select} function to find out when the pending operation ++#. TRANS has completed; @pxref{Waiting for I/O}. ++#: sysdeps/gnu/errlist.c:446 ++msgid "Operation now in progress" ++msgstr "Operação agora em progresso" ++ ++#. TRANS An operation is already in progress on an object that has non-blocking ++#. TRANS mode selected. ++#: sysdeps/gnu/errlist.c:456 ++msgid "Operation already in progress" ++msgstr "Operação já em progresso" ++ ++#. TRANS A file that isn't a socket was specified when a socket is required. ++#: sysdeps/gnu/errlist.c:465 ++msgid "Socket operation on non-socket" ++msgstr "Operação socket em um arquivo não-socket" ++ ++#. TRANS The size of a message sent on a socket was larger than the supported ++#. TRANS maximum size. ++#: sysdeps/gnu/errlist.c:475 ++msgid "Message too long" ++msgstr "Mensagem muito longa" ++ ++#. TRANS The socket type does not support the requested communications protocol. ++#: sysdeps/gnu/errlist.c:484 ++msgid "Protocol wrong type for socket" ++msgstr "Tipo errado de protocolo para socket" ++ ++#. TRANS You specified a socket option that doesn't make sense for the ++#. TRANS particular protocol being used by the socket. @xref{Socket Options}. ++#: sysdeps/gnu/errlist.c:494 ++msgid "Protocol not available" ++msgstr "Protocolo não disponível" ++ ++#. TRANS The socket domain does not support the requested communications protocol ++#. TRANS (perhaps because the requested protocol is completely invalid). ++#. TRANS @xref{Creating a Socket}. ++#: sysdeps/gnu/errlist.c:505 ++msgid "Protocol not supported" ++msgstr "Protocolo sem suporte" ++ ++#. TRANS The socket type is not supported. ++#: sysdeps/gnu/errlist.c:514 ++msgid "Socket type not supported" ++msgstr "Tipo socket sem suporte" ++ ++#. TRANS The operation you requested is not supported. Some socket functions ++#. TRANS don't make sense for all types of sockets, and others may not be ++#. TRANS implemented for all communications protocols. On @gnuhurdsystems{}, this ++#. TRANS error can happen for many calls when the object does not support the ++#. TRANS particular operation; it is a generic indication that the server knows ++#. TRANS nothing to do for that call. ++#: sysdeps/gnu/errlist.c:528 ++msgid "Operation not supported" ++msgstr "Operação sem suporte" ++ ++#. TRANS The socket communications protocol family you requested is not supported. ++#: sysdeps/gnu/errlist.c:537 ++msgid "Protocol family not supported" ++msgstr "Família de protocolo sem suporte" ++ ++#. TRANS The address family specified for a socket is not supported; it is ++#. TRANS inconsistent with the protocol being used on the socket. @xref{Sockets}. ++#: sysdeps/gnu/errlist.c:547 ++msgid "Address family not supported by protocol" ++msgstr "Família de endereços sem suporte pelo protocolo" ++ ++#. TRANS The requested socket address is already in use. @xref{Socket Addresses}. ++#: sysdeps/gnu/errlist.c:556 ++msgid "Address already in use" ++msgstr "Endereço já em uso" ++ ++#. TRANS The requested socket address is not available; for example, you tried ++#. TRANS to give a socket a name that doesn't match the local host name. ++#. TRANS @xref{Socket Addresses}. ++#: sysdeps/gnu/errlist.c:567 ++msgid "Cannot assign requested address" ++msgstr "Não foi possível acessar o endereço requisitado" + +-#: iconv/iconv_prog.c:193 +-#, c-format +-msgid "error while closing input `%s'" +-msgstr "erro fechando entrada `%s'" ++#. TRANS A socket operation failed because the network was down. ++#: sysdeps/gnu/errlist.c:576 ++msgid "Network is down" ++msgstr "A rede não responde" + +-#: iconv/iconv_prog.c:239 +-msgid "error while closing output file" +-msgstr "erro fechando arquivo de saída" ++#. TRANS A socket operation failed because the subnet containing the remote host ++#. TRANS was unreachable. ++#: sysdeps/gnu/errlist.c:586 ++msgid "Network is unreachable" ++msgstr "A rede está fora de alcance" + +-#: elf/sprof.c:710 +-msgid "error while closing the profiling data file" +-msgstr "erro fechando arquivo de dados de perfil" ++#. TRANS A network connection was reset because the remote host crashed. ++#: sysdeps/gnu/errlist.c:595 ++msgid "Network dropped connection on reset" ++msgstr "A rede desconectou-se ao reiniciar" + +-#: locale/programs/ld-collate.c:1158 +-msgid "error while inserting collation element into hash table" +-msgstr "erro enquanto inserindo elemento de comparação na tabela hash" ++#. TRANS A network connection was aborted locally. ++#: sysdeps/gnu/errlist.c:604 ++msgid "Software caused connection abort" ++msgstr "Término de conexão causada por software" + +-#: locale/programs/ld-collate.c:1170 +-msgid "error while inserting to hash table" +-msgstr "erro ao inserir na tabela hash" ++#. TRANS A network connection was closed for reasons outside the control of the ++#. TRANS local host, such as by the remote machine rebooting or an unrecoverable ++#. TRANS protocol violation. ++#: sysdeps/gnu/errlist.c:615 ++msgid "Connection reset by peer" ++msgstr "Conexão fechada pela outra ponta" + +-#: iconv/iconv_prog.c:389 iconv/iconv_prog.c:420 +-msgid "error while reading the input" +-msgstr "enquanto lendo entrada" ++#. TRANS The kernel's buffers for I/O operations are all in use. In GNU, this ++#. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the ++#. TRANS other from network operations. ++#: sysdeps/gnu/errlist.c:626 ++msgid "No buffer space available" ++msgstr "Não há espaço de buffer disponível" + +-#: locale/programs/locfile.c:595 +-msgid "expect string argument for `copy'" +-msgstr "esperado argumento tipo string para `copy'" ++#. TRANS You tried to connect a socket that is already connected. ++#. TRANS @xref{Connecting}. ++#: sysdeps/gnu/errlist.c:636 ++msgid "Transport endpoint is already connected" ++msgstr "Ponto final de transporte já está conectado" + +-#: timezone/zic.c:868 +-msgid "expected continuation line not found" +-msgstr "linha de continuação não foi localizada" ++#. TRANS The socket is not connected to anything. You get this error when you ++#. TRANS try to transmit data over a socket, without first specifying a ++#. TRANS destination for the data. For a connectionless socket (for datagram ++#. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead. ++#: sysdeps/gnu/errlist.c:648 ++msgid "Transport endpoint is not connected" ++msgstr "Ponto final de transporte não está conectado" + +-#: elf/sprof.c:408 +-#, c-format +-msgid "failed to load shared object `%s'" +-msgstr "falha no carregamento do objeto compartilhado `%s'" ++#. TRANS No default destination address was set for the socket. You get this ++#. TRANS error when you try to transmit data over a connectionless socket, ++#. TRANS without first specifying a destination for the data with @code{connect}. ++#: sysdeps/gnu/errlist.c:659 ++msgid "Destination address required" ++msgstr "Endereço de destino requerido" + +-#: elf/sprof.c:604 +-msgid "failed to load symbol data" +-msgstr "falha para carregar dados de símbolos" ++#. TRANS The socket has already been shut down. ++#: sysdeps/gnu/errlist.c:668 ++msgid "Cannot send after transport endpoint shutdown" ++msgstr "Não é possível enviar após desligamento do ponto final de transporte" + +-#: elf/sprof.c:702 +-msgid "failed to mmap the profiling data file" +-msgstr "falha para mapear (mmap) o arquivo de dados do perfil" ++#: sysdeps/gnu/errlist.c:676 ++msgid "Too many references: cannot splice" ++msgstr "Muitas referências: não é possível unir" + +-#: iconv/iconv_prog.c:147 +-msgid "failed to start conversion processing" +-msgstr "falha para iniciar o processo de conversão" ++#. TRANS A socket operation with a specified timeout received no response during ++#. TRANS the timeout period. ++#: sysdeps/gnu/errlist.c:686 ++msgid "Connection timed out" ++msgstr "Tempo esgotado para conexão" + +-#: locale/programs/locfile.c:1154 +-#, c-format +-msgid "failure while writing data for category `%s'" +-msgstr "falha ao escrever dados para categoria `%s'" ++#. TRANS A remote host refused to allow the network connection (typically because ++#. TRANS it is not running the requested service). ++#: sysdeps/gnu/errlist.c:696 ++msgid "Connection refused" ++msgstr "Conexão recusada" + +-#: nis/nis_call.c:155 +-msgid "fcntl: F_SETFD" +-msgstr "fcntl: F_SETFD" ++#. TRANS Too many levels of symbolic links were encountered in looking up a file name. ++#. TRANS This often indicates a cycle of symbolic links. ++#: sysdeps/gnu/errlist.c:706 ++msgid "Too many levels of symbolic links" ++msgstr "Muitos níveis de links simbólicos" + +-#: locale/programs/ld-monetary.c:163 locale/programs/ld-numeric.c:98 +-#, c-format +-msgid "field `%s' in category `%s' not defined" +-msgstr "campo `%s' na categoria `%s' não definido" ++#. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for ++#. TRANS Files}) or host name too long (in @code{gethostname} or ++#. TRANS @code{sethostname}; @pxref{Host Identification}). ++#: sysdeps/gnu/errlist.c:717 ++msgid "File name too long" ++msgstr "Nome de arquivo muito longo" + +-#: locale/programs/ld-messages.c:86 locale/programs/ld-messages.c:110 +-#, c-format +-msgid "field `%s' in category `%s' undefined" +-msgstr "campo `%s' na categoria `%s' não definido" ++#. TRANS The remote host for a requested network connection is down. ++#: sysdeps/gnu/errlist.c:726 ++msgid "Host is down" ++msgstr "Host está desligado" + +-#: sunrpc/rpc_main.c:1148 +-#, c-format +-msgid "file '%s' already exists and may be overwritten\n" +-msgstr "arquivo `%s' já existe e pode ser sobrescrito\n" ++#. TRANS The remote host for a requested network connection is not reachable. ++#: sysdeps/gnu/errlist.c:735 ++msgid "No route to host" ++msgstr "Não há rota para o host" + +-#: locale/programs/locfile.c:677 +-msgid "from-value of `collating-element' must be a string" +-msgstr "valor `from' do elemento de comparação deve ser uma string" ++#. TRANS Directory not empty, where an empty directory was expected. Typically, ++#. TRANS this error occurs when you are trying to delete a directory. ++#: sysdeps/gnu/errlist.c:745 ++msgid "Directory not empty" ++msgstr "Diretório não vazio" + +-#: inet/rcmd.c:316 +-msgid "fstat failed" +-msgstr "falha em fstat" ++#. TRANS This means that the per-user limit on new process would be exceeded by ++#. TRANS an attempted @code{fork}. @xref{Limits on Resources}, for details on ++#. TRANS the @code{RLIMIT_NPROC} limit. ++#: sysdeps/gnu/errlist.c:756 ++msgid "Too many processes" ++msgstr "Muitos processos" + +-#: locale/programs/linereader.c:333 +-msgid "garbage at end of character code specification" +-msgstr "lixo no final da especificação do código de caracter" ++#. TRANS The file quota system is confused because there are too many users. ++#. TRANS @c This can probably happen in a GNU system when using NFS. ++#: sysdeps/gnu/errlist.c:766 ++msgid "Too many users" ++msgstr "Muitos usuários" + +-#: locale/programs/linereader.c:219 +-msgid "garbage at end of number" +-msgstr "lixo no final do número" ++#. TRANS The user's disk quota was exceeded. ++#: sysdeps/gnu/errlist.c:775 ++msgid "Disk quota exceeded" ++msgstr "Cota da disco excedida" ++ ++#. TRANS This indicates an internal confusion in the ++#. TRANS file system which is due to file system rearrangements on the server host ++#. TRANS for NFS file systems or corruption in other file systems. ++#. TRANS Repairing this condition usually requires unmounting, possibly repairing ++#. TRANS and remounting the file system. ++#: sysdeps/gnu/errlist.c:788 ++msgid "Stale file handle" ++msgstr "Manipulador de arquivo corrompido" + +-#: locale/programs/ld-time.c:195 +-#, c-format +-msgid "garbage at end of offset value in string %d in `era' field in category `%s'" +-msgstr "lixo no final do valor do deslocamento na string %d no campo `era', categoria `%s'" ++#. TRANS An attempt was made to NFS-mount a remote file system with a file name that ++#. TRANS already specifies an NFS-mounted file. ++#. TRANS (This is an error on some operating systems, but we expect it to work ++#. TRANS properly on @gnuhurdsystems{}, making this error code impossible.) ++#: sysdeps/gnu/errlist.c:800 ++msgid "Object is remote" ++msgstr "Objeto é remoto" + +-#: locale/programs/ld-time.c:252 +-#, c-format +-msgid "garbage at end of starting date in string %d in `era' field in category `%s'" +-msgstr "lixo no final da data de início na string %d no campo `era', categoria `%s'" ++#: sysdeps/gnu/errlist.c:808 ++msgid "RPC struct is bad" ++msgstr "Estrutura RPC inválida" + +-#: locale/programs/ld-time.c:328 +-#, c-format +-msgid "garbage at end of stopping date in string %d in `era' field in category `%s'" +-msgstr "lixo no final da data de parada na string %d no campo `era', categoria `%s'" ++#: sysdeps/gnu/errlist.c:816 ++msgid "RPC version wrong" ++msgstr "Versão RPC incorreta" + +-#: elf/sprof.c:81 +-msgid "generate call graph" +-msgstr "gera gráfico de chamadas" ++#: sysdeps/gnu/errlist.c:824 ++msgid "RPC program not available" ++msgstr "Programa RPC não disponível" + +-#: elf/sprof.c:80 +-msgid "generate flat profile with counts and ticks" +-msgstr "gera perfil com contadores e `ticks'" ++#: sysdeps/gnu/errlist.c:832 ++msgid "RPC program version wrong" ++msgstr "Versão incorreta de programa RPC" + +-#: sunrpc/get_myaddr.c:77 +-msgid "get_myaddress: ioctl (get interface configuration)" +-msgstr "get_myaddress: ioctl (obtém configuração de interface)" ++#: sysdeps/gnu/errlist.c:840 ++msgid "RPC bad procedure for program" ++msgstr "Procedimento RPC ruim para programa" + +-#: nss/getent.c:53 +-msgid "getent - get entries from administrative database." +-msgstr "getent - pega entrada da base de dados administrativa." ++#. TRANS This is used by the file locking facilities; see ++#. TRANS @ref{File Locks}. This error is never generated by @gnuhurdsystems{}, but ++#. TRANS it can result from an operation to an NFS server running another ++#. TRANS operating system. ++#: sysdeps/gnu/errlist.c:852 ++msgid "No locks available" ++msgstr "Não há travas disponíveis" + +-#: nscd/connections.c:200 +-#, c-format +-msgid "handle_request: request received (Version = %d)" +-msgstr "handle_request: requisição recebida (Versão = %d)" ++#. TRANS The file was the wrong type for the ++#. TRANS operation, or a data file had the wrong format. ++#. TRANS ++#. TRANS On some systems @code{chmod} returns this error if you try to set the ++#. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}. ++#: sysdeps/gnu/errlist.c:865 ++msgid "Inappropriate file type or format" ++msgstr "Tipo ou formato de arquivo inapropriado" + +-#: timezone/zic.c:613 +-msgid "hard link failed, symbolic link used" +-msgstr "vínculo (link( falhou, vínculo simbólico usado" ++#: sysdeps/gnu/errlist.c:873 ++msgid "Authentication error" ++msgstr "Erro de autenticação" + +-#: inet/rcmd.c:322 +-msgid "hard linked somewhere" +-msgstr "vinculo (hard linked) em algúm lugar" ++#: sysdeps/gnu/errlist.c:881 ++msgid "Need authenticator" ++msgstr "É necessário um autenticador" ++ ++#. TRANS This indicates that the function called is ++#. TRANS not implemented at all, either in the C library itself or in the ++#. TRANS operating system. When you get this error, you can be sure that this ++#. TRANS particular function will always fail with @code{ENOSYS} unless you ++#. TRANS install a new version of the C library or the operating system. ++#: sysdeps/gnu/errlist.c:894 ++msgid "Function not implemented" ++msgstr "Função não implementada" ++ ++#. TRANS A function returns this error when certain parameter ++#. TRANS values are valid, but the functionality they request is not available. ++#. TRANS This can mean that the function does not implement a particular command ++#. TRANS or option value or flag bit at all. For functions that operate on some ++#. TRANS object given in a parameter, such as a file descriptor or a port, it ++#. TRANS might instead mean that only @emph{that specific object} (file ++#. TRANS descriptor, port, etc.) is unable to support the other parameters given; ++#. TRANS different file descriptors might support different ranges of parameter ++#. TRANS values. ++#. TRANS ++#. TRANS If the entire function is not available at all in the implementation, ++#. TRANS it returns @code{ENOSYS} instead. ++#: sysdeps/gnu/errlist.c:914 ++msgid "Not supported" ++msgstr "Não há suporte" + +-#: timezone/zic.c:1162 +-msgid "illegal CORRECTION field on Leap line" +-msgstr "Campo CORRECTION ilegal em linha Leap (ajuste)" ++#. TRANS While decoding a multibyte character the function came along an invalid ++#. TRANS or an incomplete sequence of bytes or the given wide character is invalid. ++#: sysdeps/gnu/errlist.c:924 ++msgid "Invalid or incomplete multibyte or wide character" ++msgstr "Multibyte ou caractere largo inválido" + +-#: timezone/zic.c:1166 +-msgid "illegal Rolling/Stationary field on Leap line" +-msgstr "campo Rolling/Stationary ilegal em linha Leap (ajuste)" ++#. TRANS On @gnuhurdsystems{}, servers supporting the @code{term} protocol return ++#. TRANS this error for certain operations when the caller is not in the ++#. TRANS foreground process group of the terminal. Users do not usually see this ++#. TRANS error because functions such as @code{read} and @code{write} translate ++#. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal. @xref{Job Control}, ++#. TRANS for information on process groups and these signals. ++#: sysdeps/gnu/errlist.c:938 ++msgid "Inappropriate operation for background process" ++msgstr "Operação inapropriada para processo em background" + +-#: locale/programs/ld-collate.c:1782 +-msgid "illegal character constant in string" +-msgstr "constante de caracteres ilegal na string" ++#. TRANS On @gnuhurdsystems{}, opening a file returns this error when the file is ++#. TRANS translated by a program and the translator program dies while starting ++#. TRANS up, before it has connected to the file. ++#: sysdeps/gnu/errlist.c:949 ++msgid "Translator died" ++msgstr "Tradutor morto" + +-#: sunrpc/rpc_scan.c:311 +-msgid "illegal character in file: " +-msgstr "caracteres ilegais no arquivo: " ++#. TRANS The experienced user will know what is wrong. ++#. TRANS @c This error code is a joke. Its perror text is part of the joke. ++#. TRANS @c Don't change it. ++#: sysdeps/gnu/errlist.c:960 ++msgid "?" ++msgstr "?" + +-#: locale/programs/ld-collate.c:1125 +-msgid "illegal collation element" +-msgstr "elemento de comparação ilegal" ++#. TRANS You did @strong{what}? ++#: sysdeps/gnu/errlist.c:969 ++msgid "You really blew it this time" ++msgstr "Você realmente estragou desta vez" + +-#: locale/programs/charmap.c:281 +-msgid "illegal definition" +-msgstr "definição ilegal" ++#. TRANS Go home and have a glass of warm, dairy-fresh milk. ++#: sysdeps/gnu/errlist.c:978 ++msgid "Computer bought the farm" ++msgstr "O computador comprou a fazenda" + +-#: locale/programs/charmap.c:434 +-msgid "illegal encoding given" +-msgstr "dada codificação ilegal" ++#. TRANS This error code has no purpose. ++#: sysdeps/gnu/errlist.c:987 ++msgid "Gratuitous error" ++msgstr "Erro gratuito" + +-#: locale/programs/linereader.c:551 +-msgid "illegal escape sequence at end of string" +-msgstr "sequência de escape ilegal no final da string" ++#: sysdeps/gnu/errlist.c:995 ++msgid "Bad message" ++msgstr "Mensagem inválida" + +-#: iconv/iconv_prog.c:342 +-#, c-format +-msgid "illegal input sequence at position %ld" +-msgstr "sequência de entrada ilegal na posição %ld" ++#: sysdeps/gnu/errlist.c:1003 ++msgid "Identifier removed" ++msgstr "Identificador removido" + +-#: locale/programs/charset.c:78 +-msgid "illegal names for character range" +-msgstr "nomes ilegais para faixa de caracteres" ++#: sysdeps/gnu/errlist.c:1011 ++msgid "Multihop attempted" ++msgstr "Tentativa de Multihop" + +-#: sunrpc/rpc_main.c:462 +-#, c-format +-msgid "illegal nettype :'%s'\n" +-msgstr "nettype ilegal: `%s'\n" ++#: sysdeps/gnu/errlist.c:1019 ++msgid "No data available" ++msgstr "Não há dados disponíveis" + +-#: locale/programs/ld-time.c:187 +-#, c-format +-msgid "illegal number for offset in string %d in `era' field in category `%s'" +-msgstr "número ilegal para offset na string %d no campo `era', categoria `%s'" ++#: sysdeps/gnu/errlist.c:1027 ++msgid "Link has been severed" ++msgstr "Link foi cortado" + +-#: catgets/gencat.c:361 catgets/gencat.c:438 +-msgid "illegal set number" +-msgstr "número de conjunto ilegal" ++#: sysdeps/gnu/errlist.c:1035 ++msgid "No message of desired type" ++msgstr "Não há mensagens do tipo desejado" + +-#: locale/programs/ld-time.c:243 +-#, c-format +-msgid "illegal starting date in string %d in `era' field in category `%s'" +-msgstr "data de início ilegal na string %d no campo `era', categoria `%s'" ++#: sysdeps/gnu/errlist.c:1043 ++msgid "Out of streams resources" ++msgstr "Sem recursos de streams" + +-#: locale/programs/ld-time.c:319 +-#, c-format +-msgid "illegal stopping date in string %d in `era' field in category `%s'" +-msgstr "data de parada ilegal na string %d no campo `era', categoria `%s'" ++#: sysdeps/gnu/errlist.c:1051 ++msgid "Device not a stream" ++msgstr "Dispositivo não é um stream" + +-#: locale/programs/ld-ctype.c:831 +-#, c-format +-msgid "implementation limit: no more than %d character classes allowed" +-msgstr "limite de implementacão: não são permitidas mais que %d classes de caracter" ++#: sysdeps/gnu/errlist.c:1059 ++msgid "Value too large for defined data type" ++msgstr "Valor muito grande para o tipo de dados definido" + +-#: locale/programs/ld-ctype.c:863 +-#, c-format +-msgid "implementation limit: no more than %d character maps allowed" +-msgstr "limite de implementacão: não são permitidos mais que %d mapas de caracter" ++#: sysdeps/gnu/errlist.c:1067 ++msgid "Protocol error" ++msgstr "Erro de protocolo" + +-#: iconv/iconv_prog.c:346 +-msgid "incomplete character or shift sequence at end of buffer" +-msgstr "caractere incompleto ou mudança de seqüencia no final do buffer" ++#: sysdeps/gnu/errlist.c:1075 ++msgid "Timer expired" ++msgstr "Tempo expirado" + +-#: db2/makedb.c:148 +-msgid "incorrectly formatted file" +-msgstr "arquivo formatado incorretamente" ++#. TRANS An asynchronous operation was canceled before it ++#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel}, ++#. TRANS the normal result is for the operations affected to complete with this ++#. TRANS error; @pxref{Cancel AIO Operations}. ++#: sysdeps/gnu/errlist.c:1087 ++msgid "Operation canceled" ++msgstr "Operação cancelada" + +-#: timezone/zic.c:825 +-msgid "input line of unknown type" +-msgstr "linha de entrada de tipo desconhecido" ++#: sysdeps/gnu/errlist.c:1095 ++msgid "Interrupted system call should be restarted" ++msgstr "Chamada de sistema interrompida deve ser reiniciada" + +-#: iconv/iconv_prog.c:350 +-msgid "internal error (illegal descriptor)" +-msgstr "erro interno (descritor ilegal)" ++#: sysdeps/gnu/errlist.c:1103 ++msgid "Channel number out of range" ++msgstr "Número do canal fora do intervalo" + +-#: timezone/zic.c:1788 +-msgid "internal error - addtype called with bad isdst" +-msgstr "erro interno - addtype chamado com isdst incorreto" ++#: sysdeps/gnu/errlist.c:1111 ++msgid "Level 2 not synchronized" ++msgstr "Nível 2 não sincronizado" + +-#: timezone/zic.c:1796 +-msgid "internal error - addtype called with bad ttisgmt" +-msgstr "erro interno - addtype chamado com ttisgmt incorreto" ++#: sysdeps/gnu/errlist.c:1119 ++msgid "Level 3 halted" ++msgstr "Nível 3 parado" + +-#: timezone/zic.c:1792 +-msgid "internal error - addtype called with bad ttisstd" +-msgstr "erro interno - addtype chamado com ttisstd incorreto" ++#: sysdeps/gnu/errlist.c:1127 ++msgid "Level 3 reset" ++msgstr "Nível 3 reiniciado" + +-#: locale/programs/ld-ctype.c:307 +-#, c-format +-msgid "internal error in %s, line %u" +-msgstr "erro interno em %s, linha %u" ++#: sysdeps/gnu/errlist.c:1135 ++msgid "Link number out of range" ++msgstr "Número de link fora da faixa" + +-#: timezone/zic.c:1034 +-msgid "invalid UTC offset" +-msgstr "deslocamento UTC inválido" ++#: sysdeps/gnu/errlist.c:1143 ++msgid "Protocol driver not attached" ++msgstr "Driver de protocolo não anexado" + +-#: timezone/zic.c:1037 +-msgid "invalid abbreviation format" +-msgstr "formato de abreviação inválido" ++#: sysdeps/gnu/errlist.c:1151 ++msgid "No CSI structure available" ++msgstr "Não há estrutura CSI disponível" + +-#: timezone/zic.c:1127 timezone/zic.c:1339 timezone/zic.c:1353 +-msgid "invalid day of month" +-msgstr "dia do mês inválido" ++#: sysdeps/gnu/errlist.c:1159 ++msgid "Level 2 halted" ++msgstr "Parada de sistema nível 2" + +-#: timezone/zic.c:1291 +-msgid "invalid ending year" +-msgstr "ano final inválido" ++#: sysdeps/gnu/errlist.c:1167 ++msgid "Invalid exchange" ++msgstr "Troca inválida" + +-#: timezone/zic.c:1099 +-msgid "invalid leaping year" +-msgstr "ano bissexto inválido" ++#: sysdeps/gnu/errlist.c:1175 ++msgid "Invalid request descriptor" ++msgstr "Descritor de requisição inválido" + +-#: elf/dl-open.c:159 +-msgid "invalid mode for dlopen()" +-msgstr "modo inválido para dlopen()" ++#: sysdeps/gnu/errlist.c:1183 ++msgid "Exchange full" ++msgstr "Troca completa" + +-#: timezone/zic.c:1114 timezone/zic.c:1217 +-msgid "invalid month name" +-msgstr "nome do mês inválido" ++#: sysdeps/gnu/errlist.c:1191 ++msgid "No anode" ++msgstr "Sem anode" + +-#: timezone/zic.c:933 +-msgid "invalid saved time" +-msgstr "tempo gravado inválido" ++#: sysdeps/gnu/errlist.c:1199 ++msgid "Invalid request code" ++msgstr "Código de requisição inválido" + +-#: timezone/zic.c:1266 +-msgid "invalid starting year" +-msgstr "ano inicial inválido" ++#: sysdeps/gnu/errlist.c:1207 ++msgid "Invalid slot" ++msgstr "Slot inválido" + +-#: timezone/zic.c:1143 timezone/zic.c:1246 +-msgid "invalid time of day" +-msgstr "hora do dia inválida" ++#: sysdeps/gnu/errlist.c:1215 ++msgid "File locking deadlock error" ++msgstr "Erro de bloqueio em arquivo (deadlock)" + +-#: timezone/zic.c:1344 +-msgid "invalid weekday name" +-msgstr "nome de dia de semana inválido" ++#: sysdeps/gnu/errlist.c:1223 ++msgid "Bad font file format" ++msgstr "Formato do arquivo fonte inválido" + +-#: nscd/connections.c:375 +-#, c-format +-msgid "key length in request too long: %Zd" +-msgstr "tamanho de chave na requisição muito longa: %Zd" ++#: sysdeps/gnu/errlist.c:1231 ++msgid "Machine is not on the network" ++msgstr "A maquina não está na rede" + +-#: locale/programs/ld-collate.c:1422 +-msgid "line after ellipsis must contain character definition" +-msgstr "linha após elipse deve conter definição de caracter" ++#: sysdeps/gnu/errlist.c:1239 ++msgid "Package not installed" ++msgstr "Pacote não instalado" + +-#: locale/programs/ld-collate.c:1401 +-msgid "line before ellipsis does not contain definition for character constant" +-msgstr "linha antes da elipse não contém definição para constante de caracter" ++#: sysdeps/gnu/errlist.c:1247 ++msgid "Advertise error" ++msgstr "Erro de aviso" + +-#: timezone/zic.c:805 +-msgid "line too long" +-msgstr "linha muito longa" ++#: sysdeps/gnu/errlist.c:1255 ++msgid "Srmount error" ++msgstr "Erro de srmount" + +-#: iconv/iconv_prog.c:58 +-msgid "list all known coded character sets" +-msgstr "lista todas as coleções de caracteres codificados" ++#: sysdeps/gnu/errlist.c:1263 ++msgid "Communication error on send" ++msgstr "Erro de comunicação ao enviar" + +-#: locale/programs/localedef.c:273 +-#, c-format +-msgid "locale file `%s', used in `copy' statement, not found" +-msgstr "arquivo locale `%s', usado na declaração `copy' , não encontrado" ++#: sysdeps/gnu/errlist.c:1271 ++msgid "RFS specific error" ++msgstr "Erro específico de RFS" + +-#: inet/rcmd.c:307 +-msgid "lstat failed" +-msgstr "falha em lstat" ++#: sysdeps/gnu/errlist.c:1279 ++msgid "Name not unique on network" ++msgstr "O nome não é único na rede" + +-#: catgets/gencat.c:619 +-msgid "malformed line ignored" +-msgstr "linha inválida ignorada" ++#: sysdeps/gnu/errlist.c:1287 ++msgid "File descriptor in bad state" ++msgstr "Descritor de arquivo em mal estado" + +-#: elf/sprof.c:554 +-msgid "mapping of section header string table failed" +-msgstr "mapeamento da tabela de cadeias do cabeçalho da seção falhou" ++#: sysdeps/gnu/errlist.c:1295 ++msgid "Remote address changed" ++msgstr "Endereço remoto alterado" + +-#: elf/sprof.c:544 +-msgid "mapping of section headers failed" +-msgstr "mapeamento dos cabeçalhos da seção falhou" ++#: sysdeps/gnu/errlist.c:1303 ++msgid "Can not access a needed shared library" ++msgstr "Não foi possível acessar uma biblioteca compartilhada" + +-#: malloc/mcheck.c:202 +-msgid "memory clobbered before allocated block\n" +-msgstr "memória sobrescrita antes do bloco alocado\n" ++#: sysdeps/gnu/errlist.c:1311 ++msgid "Accessing a corrupted shared library" ++msgstr "Acessando uma biblioteca compartilhado corrompida" + +-#: malloc/mcheck.c:205 +-msgid "memory clobbered past end of allocated block\n" +-msgstr "memória sobrescrita após o fim do bloco allocado\n" +- +-#: locale/programs/ld-collate.c:170 locale/programs/ld-collate.c:176 +-#: locale/programs/ld-collate.c:180 locale/programs/ld-collate.c:1449 +-#: locale/programs/ld-collate.c:1478 locale/programs/locfile.c:1082 +-#: locale/programs/xmalloc.c:70 login/programs/database.c:62 +-#: login/programs/database.c:79 login/programs/database.c:95 +-#: posix/getconf.c:682 +-msgid "memory exhausted" +-msgstr "memória esgotada" ++#: sysdeps/gnu/errlist.c:1319 ++msgid ".lib section in a.out corrupted" ++msgstr "Seção .lib corrompida em a.out" + +-#: malloc/obstack.c:471 +-msgid "memory exhausted\n" +-msgstr "memória esgotada\n" ++#: sysdeps/gnu/errlist.c:1327 ++msgid "Attempting to link in too many shared libraries" ++msgstr "Tentando vincular em muitas bibliotecas compartilhadas" + +-#: malloc/mcheck.c:199 +-msgid "memory is consistent, library is buggy\n" +-msgstr "a memória está consistente, problemas na biblioteca\n" ++#: sysdeps/gnu/errlist.c:1335 ++msgid "Cannot exec a shared library directly" ++msgstr "Não foi possível executar uma biblioteca compartilhado diretamente" + +-#: locale/programs/ld-time.c:370 +-#, c-format +-msgid "missing era format in string %d in `era' field in category `%s'" +-msgstr "formato era ausente na string %d no campo `era', categoria`%s'" ++#: sysdeps/gnu/errlist.c:1343 ++msgid "Streams pipe error" ++msgstr "Erro de fluxos de pipe" + +-#: locale/programs/ld-time.c:358 +-#, c-format +-msgid "missing era name in string %d in `era' field in category `%s'" +-msgstr "nome era ausente na string %d no campo `era', categoria `%s'" ++#: sysdeps/gnu/errlist.c:1351 ++msgid "Structure needs cleaning" ++msgstr "A estrutura necessita de limpeza" + +-#: timezone/zic.c:928 +-msgid "nameless rule" +-msgstr "regra sem nome" ++#: sysdeps/gnu/errlist.c:1359 ++msgid "Not a XENIX named type file" ++msgstr "Não é um arquivo nomeável XENIX" + +-#: iconv/iconv_prog.c:133 +-msgid "neither original nor target encoding specified" +-msgstr "codificação original nem destino especificada" ++#: sysdeps/gnu/errlist.c:1367 ++msgid "No XENIX semaphores available" ++msgstr "Não há semáforos XENIX disponíveis" + +-#: nis/nss_nisplus/nisplus-publickey.c:262 +-#: nis/nss_nisplus/nisplus-publickey.c:268 +-#: nis/nss_nisplus/nisplus-publickey.c:327 +-#: nis/nss_nisplus/nisplus-publickey.c:336 +-#, c-format +-msgid "netname2user: (nis+ lookup): %s\n" +-msgstr "netname2user: (nis+ lookup): %s\n" ++#: sysdeps/gnu/errlist.c:1375 ++msgid "Is a named type file" ++msgstr "É um arquivo tipo nomeável" + +-#: nis/nss_nisplus/nisplus-publickey.c:281 +-#, c-format +-msgid "netname2user: DES entry for %s in directory %s not unique" +-msgstr "netname2user: entrada DES para %s no diretório %s não é única" ++#: sysdeps/gnu/errlist.c:1383 ++msgid "Remote I/O error" ++msgstr "Erro de E/S remota" + +-#: nis/nss_nisplus/nisplus-publickey.c:349 +-#, c-format +-msgid "netname2user: LOCAL entry for %s in directory %s not unique" +-msgstr "netname2user: entrada LOCAL para %s no diretório %s não é única" ++#: sysdeps/gnu/errlist.c:1391 ++msgid "No medium found" ++msgstr "Mídia não encontrada" + +-#: nis/nss_nisplus/nisplus-publickey.c:194 +-#, c-format +-msgid "netname2user: missing group id list in '%s'." +-msgstr "netname2user: lista de id do grupo perdida em `%s'." ++#: sysdeps/gnu/errlist.c:1399 ++msgid "Wrong medium type" ++msgstr "Tipo de mídia incorreta" + +-#: nis/nss_nisplus/nisplus-publickey.c:299 +-#, c-format +-msgid "netname2user: principal name '%s' too long" +-msgstr "netname2user: nome principal `%s' muito longo" ++#: sysdeps/gnu/errlist.c:1407 ++msgid "Required key not available" ++msgstr "Chave necessária não disponível" + +-#: nis/nss_nisplus/nisplus-publickey.c:356 +-msgid "netname2user: should not have uid 0" +-msgstr "netname2user: não deve possuir uid 0" ++#: sysdeps/gnu/errlist.c:1415 ++msgid "Key has expired" ++msgstr "A chave expirou" + +-#: sunrpc/svc_simple.c:158 +-#, c-format +-msgid "never registered prog %d\n" +-msgstr "nunca registrado prog %d\n" ++#: sysdeps/gnu/errlist.c:1423 ++msgid "Key has been revoked" ++msgstr "A chave foi revogada" + +-#: locale/programs/repertoire.c:238 +-msgid "no or value given" +-msgstr "Valores ou não entrados" ++#: sysdeps/gnu/errlist.c:1431 ++msgid "Key was rejected by service" ++msgstr "A chave foi rejeitada pelo serviço" + +-#: locale/programs/ld-messages.c:101 locale/programs/ld-messages.c:125 +-#, c-format +-msgid "no correct regular expression for field `%s' in category `%s': %s" +-msgstr "não há expressão regular correta para campo `%s', categoria `%s': %s" ++#: sysdeps/gnu/errlist.c:1439 ++msgid "Owner died" ++msgstr "Dono morto" + +-#: timezone/zic.c:2115 +-msgid "no day in month matches rule" +-msgstr "nehum dia do mês satisfaz a norma" ++#: sysdeps/gnu/errlist.c:1447 ++msgid "State not recoverable" ++msgstr "Estado não recuperável" + +-#: locale/programs/ld-collate.c:267 +-msgid "no definition of `UNDEFINED'" +-msgstr "não há definição de `UNDEFINED'" ++#: sysdeps/gnu/errlist.c:1455 ++msgid "Operation not possible due to RF-kill" ++msgstr "Operação não permitida em razão de RF-kill" + +-#: elf/sprof.c:276 +-#, c-format +-msgid "no filename for profiling data given and shared object `%s' has no soname" +-msgstr "nome de arquivo para perfil de dados não informado e objetos compartilhados `%s' não tem `soname'" ++#: sysdeps/gnu/errlist.c:1463 ++msgid "Memory page has hardware error" ++msgstr "Página de memória possui um erro de hardware" + +-#: locale/programs/locfile.c:609 +-msgid "no other keyword shall be specified when `copy' is used" +-msgstr "nehuma outra palavra-chave deve ser especificada quando `copy' é usado" ++#: sysdeps/mach/_strerror.c:56 ++msgid "Error in unknown error system: " ++msgstr "Falha no erro desconhecido do sistema: " + +-#: locale/programs/localedef.c:334 +-msgid "no output file produced because warning were issued" +-msgstr "nenhum arquivo de saída foi produzido porque avisos foram emitidos" ++#: sysdeps/posix/gai_strerror-strs.h:1 ++msgid "Address family for hostname not supported" ++msgstr "Família de endereços não suportada para nome de máquina" + +-#: locale/programs/locfile.c:283 locale/programs/locfile.c:301 +-#: locale/programs/locfile.c:319 locale/programs/locfile.c:337 +-#: locale/programs/locfile.c:355 locale/programs/locfile.c:373 +-msgid "no repertoire map specified: cannot proceed" +-msgstr "mapa de repertório não especificado: não posso prosseguir" ++#: sysdeps/posix/gai_strerror-strs.h:2 ++msgid "Temporary failure in name resolution" ++msgstr "Falha temporário na resolução de nome" + +-#: locale/programs/charmap.c:400 locale/programs/charmap.c:550 +-#: locale/programs/charmap.c:629 locale/programs/repertoire.c:199 +-msgid "no symbolic name given" +-msgstr "nenhum nome simbólico dado" ++#: sysdeps/posix/gai_strerror-strs.h:3 ++msgid "Bad value for ai_flags" ++msgstr "Valor inválido para ai_flags" + +-#: locale/programs/charmap.c:465 locale/programs/charmap.c:596 +-#: locale/programs/charmap.c:662 locale/programs/repertoire.c:261 +-msgid "no symbolic name given for end of range" +-msgstr "nenhum nome simbólico dado para fim do intervalo" ++#: sysdeps/posix/gai_strerror-strs.h:4 ++msgid "Non-recoverable failure in name resolution" ++msgstr "Falha irrecuperável na resolução de nome" + +-#: locale/programs/ld-collate.c:249 +-#, c-format +-msgid "no weight defined for symbol `%s'" +-msgstr "não foi definido peso para o símbolo `%s'" ++#: sysdeps/posix/gai_strerror-strs.h:5 ++msgid "ai_family not supported" ++msgstr "Família de protocolo (ai_family) sem suporte" + +-#: inet/rcmd.c:309 +-msgid "not regular file" +-msgstr "não é arquivo normal" ++#: sysdeps/posix/gai_strerror-strs.h:6 ++msgid "Memory allocation failure" ++msgstr "Falha de alocação de memória" + +-#: nscd/nscd_stat.c:130 +-#, c-format +-msgid "" +-"nscd configuration:\n" +-"\n" +-"%15d server debug level\n" +-msgstr "" +-"configuração nscd:\n" +-"\n" +-"%15d nível de debug do servidor\n" ++#: sysdeps/posix/gai_strerror-strs.h:7 ++msgid "No address associated with hostname" ++msgstr "Não há endereço associado com o nome" + +-#: nscd/nscd_stat.c:104 +-msgid "nscd not running!\n" +-msgstr "nscd não está rodando!\n" ++#: sysdeps/posix/gai_strerror-strs.h:8 ++msgid "Name or service not known" ++msgstr "Nome ou serviço desconhecido" + +-#: locale/programs/charmap.c:514 +-msgid "only WIDTH definitions are allowed to follow the CHARMAP definition" +-msgstr "apenas definições de WIDTH são permitidas em seguida à definição de CHARMAP" ++#: sysdeps/posix/gai_strerror-strs.h:9 ++msgid "Servname not supported for ai_socktype" ++msgstr "Servname sem suporte para “ai_socktype”" + +-#: iconv/iconv_prog.c:135 +-msgid "original encoding not specified using `-f'" +-msgstr "codificação original não especificada usando `-f'" ++#: sysdeps/posix/gai_strerror-strs.h:10 ++msgid "ai_socktype not supported" ++msgstr "ai_socktype sem suporte" + +-#: iconv/iconv_prog.c:60 +-msgid "output file" +-msgstr "arquivo de saída" ++#: sysdeps/posix/gai_strerror-strs.h:11 ++msgid "System error" ++msgstr "Erro de sistema" + +-#: sunrpc/pm_getmaps.c:73 +-msgid "pmap_getmaps rpc problem" +-msgstr "problemas de pmap_getmaps rpc" ++#: sysdeps/posix/gai_strerror-strs.h:12 ++msgid "Processing request in progress" ++msgstr "Processamento da requisição em progresso" + +-#: inet/rcmd.c:179 +-msgid "poll: protocol failure in circuit setup\n" +-msgstr "poll: falha de protocolo na configuração do circuito\n" ++#: sysdeps/posix/gai_strerror-strs.h:13 ++msgid "Request canceled" ++msgstr "Requisição cancelada" + +-#: sunrpc/rpc_scan.c:523 sunrpc/rpc_scan.c:533 +-msgid "preprocessor error" +-msgstr "Erro de pré-processador" ++#: sysdeps/posix/gai_strerror-strs.h:14 ++msgid "Request not canceled" ++msgstr "Requisição não cancelada" + +-#: elf/sprof.c:78 +-msgid "print list of count paths and their number of use" +-msgstr "mostra lista de número de rotas e seu número de uso" ++#: sysdeps/posix/gai_strerror-strs.h:15 ++msgid "All requests done" ++msgstr "Todas as requisições feitas" + +-#: iconv/iconv_prog.c:61 +-msgid "print progress information" +-msgstr "mostra informações de progresso" ++#: sysdeps/posix/gai_strerror-strs.h:16 ++msgid "Interrupted by a signal" ++msgstr "Interrompido por um sinal" + +-#: db2/makedb.c:345 +-#, c-format +-msgid "problems while reading `%s'" +-msgstr "problems lendo `%s'" ++#: sysdeps/posix/gai_strerror-strs.h:17 ++msgid "Parameter string not correctly encoded" ++msgstr "String de parâmetro não codificado corretamente" + +-#: elf/sprof.c:691 ++#: sysdeps/unix/sysv/linux/i386/readelflib.c:65 + #, c-format +-msgid "profiling data file `%s' does not match shared object `%s'" +-msgstr "arquivo de dados de perfil `%s' não coincide com objetos compartilhados `%s'" ++msgid "%s is for unknown machine %d.\n" ++msgstr "%s é para máquina desconhecida %d.\n" + +-#: sunrpc/rpcinfo.c:237 sunrpc/rpcinfo.c:383 ++#: sysdeps/unix/sysv/linux/ia64/makecontext.c:58 + #, c-format +-msgid "program %lu is not available\n" +-msgstr "programa %lu não está disponível\n" ++msgid "makecontext: does not know how to handle more than 8 arguments\n" ++msgstr "makecontext: não sabe como lidar com mais de 8 argumentos\n" + +-#: sunrpc/rpcinfo.c:264 sunrpc/rpcinfo.c:310 sunrpc/rpcinfo.c:333 +-#: sunrpc/rpcinfo.c:407 sunrpc/rpcinfo.c:453 sunrpc/rpcinfo.c:476 +-#: sunrpc/rpcinfo.c:510 ++#: sysdeps/unix/sysv/linux/lddlibc4.c:60 + #, c-format +-msgid "program %lu version %lu is not available\n" +-msgstr "programa %lu versão %lu não está disponível\n" ++msgid "" ++"Usage: lddlibc4 FILE\n" ++"\n" ++msgstr "" ++"Uso: lddlibc4 ARQUIVO\n" ++"\n" + +-#: sunrpc/rpcinfo.c:515 ++#: sysdeps/unix/sysv/linux/lddlibc4.c:81 + #, c-format +-msgid "program %lu version %lu ready and waiting\n" +-msgstr "programa %lu versão %lu pronto e aguardando\n" ++msgid "cannot open `%s'" ++msgstr "não foi possível abrir “%s”" + +-#: inet/rcmd.c:176 ++#: sysdeps/unix/sysv/linux/lddlibc4.c:85 + #, c-format +-msgid "rcmd: poll (setting up stderr): %m\n" +-msgstr "rcmd: poll (configurando stderr): %m\n" +- +-#: inet/rcmd.c:110 +-msgid "rcmd: socket: All ports in use\n" +-msgstr "rcmd: socket: Todas as portas em uso\n" ++msgid "cannot read header from `%s'" ++msgstr "não foi possível ler cabeçalho de “%s”" + +-#: inet/rcmd.c:166 +-#, c-format +-msgid "rcmd: write (setting up stderr): %m\n" +-msgstr "rcmd: write (configurando stderr): %m\n" ++#: timezone/zdump.c:338 ++msgid "has fewer than 3 characters" ++msgstr "possui menos de 3 caracteres" + +-#: sunrpc/svc_simple.c:98 +-msgid "registerrpc: out of memory\n" +-msgstr "registerrpc: não há memória suficiente\n" ++#: timezone/zdump.c:340 ++msgid "has more than 6 characters" ++msgstr "possui mais de 6 caracteres" + +-#: timezone/zic.c:1849 +-msgid "repeated leap second moment" +-msgstr "ajuste repetido em segundo momento" ++#: timezone/zdump.c:342 ++msgid "has characters other than ASCII alphanumerics, '-' or '+'" ++msgstr "possui caracteres além de “-”, “+” ou alfanuméricos ASCII" + +-#: locale/programs/repertoire.c:95 ++#: timezone/zdump.c:347 + #, c-format +-msgid "repertoire map file `%s' not found" +-msgstr "arquivo de mapas `%s' não foi localizado" +- +-#: sunrpc/rpc_main.c:1117 +-msgid "rpcgen: arglist coding error\n" +-msgstr "rpcgen: erro na codificação de parâmetros\n" +- +-#: sunrpc/rpc_main.c:1105 +-msgid "rpcgen: too many defines\n" +-msgstr "rpcgen: muitas definições\n" ++msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n" ++msgstr "%s: aviso: fuso “%s” abreviação “%s” %s\n" + +-#: sunrpc/rpcinfo.c:732 ++#: timezone/zdump.c:393 + #, c-format +-msgid "rpcinfo: %s is unknown host\n" +-msgstr "rpcinfo: %s é um host desconhecido\n" ++msgid "" ++"%s: usage: %s OPTIONS ZONENAME ...\n" ++"Options include:\n" ++" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n" ++" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n" ++" -i List transitions briefly (format is experimental)\n" ++" -v List transitions verbosely\n" ++" -V List transitions a bit less verbosely\n" ++" --help Output this help\n" ++" --version Output version info\n" ++"\n" ++"Report bugs to %s.\n" ++msgstr "" ++"%s: uso: %s OPÇÕES NOMEFUSO ...\n" ++"Opções incluem:\n" ++" -c [L,]U Inicia no ano L (padrão -500), termina até o ano U (padrão 2500)\n" ++" -t [L,]U Inicia no tempo L, termina até o tempo U (em segundos desde 1970)\n" ++" -i Lista transições brevemente (formato é experimental)\n" ++" -v Lista transições verbosamente\n" ++" -V Lista transições um pouco menos verbosamente\n" ++" --help Emite essa ajuda\n" ++" --version Emite informação da versão\n" ++"\n" ++"Relate erros para %s.\n" + +-#: sunrpc/rpcinfo.c:695 ++#: timezone/zdump.c:479 + #, c-format +-msgid "rpcinfo: %s is unknown service\n" +-msgstr "rpcinfo: %s é um serviço desconhecido\n" ++msgid "%s: wild -c argument %s\n" ++msgstr "%s: argumento -c insensato %s\n" + +-#: sunrpc/rpcinfo.c:665 ++#: timezone/zdump.c:512 + #, c-format +-msgid "rpcinfo: Could not delete registration for prog %s version %s\n" +-msgstr "rpcinfo: Não foi possível apagar registro para prog %s versão %s\n" ++msgid "%s: wild -t argument %s\n" ++msgstr "%s: argumento -t insensato %s\n" + +-#: sunrpc/rpcinfo.c:637 ++#: timezone/zic.c:398 + #, c-format +-msgid "rpcinfo: broadcast failed: %s\n" +-msgstr "rpcinfo: broadcast falhou: %s\n" ++msgid "%s: Memory exhausted: %s\n" ++msgstr "%s: Memória esgotada: %s\n" + +-#: sunrpc/rpcinfo.c:556 sunrpc/rpcinfo.c:563 +-msgid "rpcinfo: can't contact portmapper" +-msgstr "rpcinfo: impossível contactar portmapper" ++#: timezone/zic.c:406 ++msgid "size overflow" ++msgstr "estouro de tamanho" + +-#: timezone/zic.c:718 timezone/zic.c:720 +-msgid "same rule name in multiple files" +-msgstr "mesmo nome de regra em múltiplos arquivos" ++#: timezone/zic.c:454 ++msgid "integer overflow" ++msgstr "estouro de valor inteiro" + +-#: nscd/connections.c:387 ++#: timezone/zic.c:488 + #, c-format +-msgid "short read while reading request key: %s" +-msgstr "falha na leitura lendo chave de requisição: %s" ++msgid "\"%s\", line %: " ++msgstr "“%s”, linha %: " + +-#: nscd/connections.c:364 ++#: timezone/zic.c:491 + #, c-format +-msgid "short read while reading request: %s" +-msgstr "problems lendo `%s'" ++msgid " (rule from \"%s\", line %)" ++msgstr " (regra de “%s”, linha %)" + +-#: nscd/grpcache.c:191 nscd/hstcache.c:278 nscd/pwdcache.c:188 ++#: timezone/zic.c:510 + #, c-format +-msgid "short write in %s: %s" +-msgstr "Erro escrevendo em %s: %s" +- +-#: inet/rcmd.c:197 +-msgid "socket: protocol failure in circuit setup\n" +-msgstr "socket: falha de protocolo na configuração do circuito\n" +- +-#: locale/programs/locfile.c:730 +-msgid "sorting order `forward' and `backward' are mutually exclusive" +-msgstr "as ordens de classificação `forward' e `backward' são mutuamente exclusivas" +- +-#: locale/programs/ld-collate.c:1582 locale/programs/ld-collate.c:1628 +-msgid "specification of sorting weight for collation symbol does not make sense" +-msgstr "especificação de peso para símbolo de comparação não faz sentido" +- +-#: timezone/zic.c:789 +-msgid "standard input" +-msgstr "entrada padrão" +- +-#: timezone/zdump.c:268 +-msgid "standard output" +-msgstr "saída padrão" ++msgid "warning: " ++msgstr "aviso: " + +-#: locale/programs/ld-time.c:272 ++#: timezone/zic.c:535 + #, c-format +-msgid "starting date is illegal in string %d in `era' field in category `%s'" +-msgstr "data inicial é ilegal na string %d no campo `era', categoria `%s'" +- +-#: timezone/zic.c:1300 +-msgid "starting year greater than ending year" +-msgstr "ano inicial maior que ano final" +- +-#: timezone/zic.c:1272 timezone/zic.c:1297 +-msgid "starting year too high to be represented" +-msgstr "ano inicial muito alto para ser representado" +- +-#: timezone/zic.c:1270 timezone/zic.c:1295 +-msgid "starting year too low to be represented" +-msgstr "ano inicial muito baixo para ser representado" ++msgid "" ++"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n" ++"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n" ++"\t[ -L leapseconds ] [ filename ... ]\n" ++"\n" ++"Report bugs to %s.\n" ++msgstr "" ++"%s: uso é %s [ --version ] [ --help ] [ -h ] \\\n" ++"\t[ -l tempolocal ] [ -p regrasposix ] [ -d diretório ] \\\n" ++"\t[ -L segundos bissextos ] [ nome do arquivo ... ]\n" ++"\n" ++"Relate erros para %s.\n" + +-#: locale/programs/ld-time.c:348 ++#: timezone/zic.c:558 + #, c-format +-msgid "stopping date is illegal in string %d in `era' field in category `%s'" +-msgstr "data de término é ilegal na string %d no campo `era', categoria `%s'" ++msgid "%s: Can't chdir to %s: %s\n" ++msgstr "%s: Não foi fazer chdir criar %s: %s\n" + +-#: sunrpc/svc_run.c:81 +-msgid "svc_run: - select failed" +-msgstr "svc_run: - select falhou" ++#: timezone/zic.c:590 ++msgid "wild compilation-time specification of zic_t" ++msgstr "especificação insensata de tempo de compilação de zic_t" + +-#: sunrpc/svc_tcp.c:160 +-msgid "svc_tcp.c - cannot getsockname or listen" +-msgstr "svc_tcp_.c - não é possível receber `getsocknome' ou `listen'" ++#: timezone/zic.c:610 ++#, c-format ++msgid "%s: More than one -d option specified\n" ++msgstr "%s: Mais de uma opção -d foi especificada\n" + +-#: sunrpc/svc_tcp.c:145 +-msgid "svc_tcp.c - tcp socket creation problem" +-msgstr "svc_tcp_.c - problema na criação do soquete AF_UNIX" ++#: timezone/zic.c:620 ++#, c-format ++msgid "%s: More than one -l option specified\n" ++msgstr "%s: Mais de uma opção -l especificada\n" + +-#: sunrpc/svc_tcp.c:209 sunrpc/svc_tcp.c:215 +-msgid "svc_tcp: makefd_xprt: out of memory\n" +-msgstr "svc_tcp: makefd_xprt: não há memória suficiente\n" ++#: timezone/zic.c:630 ++#, c-format ++msgid "%s: More than one -p option specified\n" ++msgstr "%s: Mais de uma opção -p especificada\n" + +-#: sunrpc/svc_unix.c:135 +-msgid "svc_unix.c - AF_UNIX socket creation problem" +-msgstr "svc_tcp_.c - problema na criação do soquete AF_UNIX" ++#: timezone/zic.c:640 ++#, c-format ++msgid "%s: More than one -y option specified\n" ++msgstr "%s: Mais de uma opção -y especificada\n" + +-#: sunrpc/svc_unix.c:151 +-msgid "svc_unix.c - cannot getsockname or listen" +-msgstr "svc_tcp_.c - memória exaurida" ++#: timezone/zic.c:650 ++#, c-format ++msgid "%s: More than one -L option specified\n" ++msgstr "%s: Mais de uma opção -L foi especificada\n" + +-#: sunrpc/svc_unix.c:201 sunrpc/svc_unix.c:207 +-msgid "svc_unix: makefd_xprt: out of memory\n" +-msgstr "svc_unix: makefd_xprt: não há memória suficiente\n" ++#: timezone/zic.c:659 ++msgid "-s ignored" ++msgstr "-s ignorada" + +-#: sunrpc/svc_tcp.c:168 sunrpc/svc_tcp.c:176 +-msgid "svctcp_create: out of memory\n" +-msgstr "svctcp_create: não há memória suficiente\n" ++#: timezone/zic.c:698 ++msgid "link to link" ++msgstr "link para o link" + +-#: sunrpc/svc_udp.c:135 +-msgid "svcudp_create - cannot getsockname" +-msgstr "svcudp_create - não é possível getsockname" ++#: timezone/zic.c:701 timezone/zic.c:705 ++msgid "command line" ++msgstr "linha de comando" + +-#: sunrpc/svc_udp.c:143 sunrpc/svc_udp.c:149 sunrpc/svc_udp.c:155 +-msgid "svcudp_create: out of memory\n" +-msgstr "svcucp_create: não há memória suficiente\n" ++#: timezone/zic.c:721 ++msgid "empty file name" ++msgstr "arquivo com nome vazio" + +-#: sunrpc/svc_udp.c:121 +-msgid "svcudp_create: socket creation problem" +-msgstr "svcudp_create: problema na criação socket" ++#: timezone/zic.c:724 ++#, c-format ++msgid "file name '%s' begins with '/'" ++msgstr "nome de arquivo “%s” começa com “/”" + +-#: sunrpc/svc_unix.c:160 sunrpc/svc_unix.c:168 +-msgid "svcunix_create: out of memory\n" +-msgstr "svcunix_create: não há memória suficiente\n" ++#: timezone/zic.c:734 ++#, c-format ++msgid "file name '%s' contains '%.*s' component" ++msgstr "nome de arquivo “%s” contém componente “%.*s”" + +-#: locale/programs/ld-collate.c:1201 ++#: timezone/zic.c:740 + #, c-format +-msgid "symbol for multicharacter collating element `%.*s' duplicates element definition" +-msgstr "símbolo para elemento de comparação multicaracter `%.*s' duplica a definição do elemento" ++msgid "file name '%s' component contains leading '-'" ++msgstr "um componente do nome de arquivo “%s” inicia com “-”" + +-#: locale/programs/ld-collate.c:1073 ++#: timezone/zic.c:743 + #, c-format +-msgid "symbol for multicharacter collating element `%.*s' duplicates other element definition" +-msgstr "símbolo para elemento de comparação multicaracter `%.*s' duplica a definição do elemento" ++msgid "file name '%s' contains overlength component '%.*s...'" ++msgstr "nome de arquivo “%s” contém componente “%.*s...” comprido demais" + +-#: locale/programs/ld-collate.c:1210 ++#: timezone/zic.c:771 + #, c-format +-msgid "symbol for multicharacter collating element `%.*s' duplicates other symbol definition" +-msgstr "símbolo para elemento de comparação multicaracter `%.*s' duplica outra definição de símbolo" ++msgid "file name '%s' contains byte '%c'" ++msgstr "nome de arquivo “%s” contém byte “%c”" + +-#: locale/programs/ld-collate.c:1082 ++#: timezone/zic.c:772 + #, c-format +-msgid "symbol for multicharacter collating element `%.*s' duplicates symbol definition" +-msgstr "símbolo para elemento de comparação multicaracter `%.*s' duplica a definição do símbolo" ++msgid "file name '%s' contains byte '\\%o'" ++msgstr "nome de arquivo “%s” contém byte “\\%o”" + +-#: locale/programs/ld-collate.c:1064 locale/programs/ld-collate.c:1192 ++#: timezone/zic.c:842 + #, c-format +-msgid "symbol for multicharacter collating element `%.*s' duplicates symbolic name in charset" +-msgstr "símbolo para elemento de comparação multicaracter `%.*s duplicado" ++msgid "%s: link from %s/%s failed: %s\n" ++msgstr "%s: link de %s/%s falhou: %s\n" + +-#: locale/programs/charmap.c:399 locale/programs/charmap.c:433 +-#: locale/programs/charmap.c:463 locale/programs/charmap.c:549 +-#: locale/programs/charmap.c:595 locale/programs/charmap.c:628 +-#: locale/programs/charmap.c:660 ++#: timezone/zic.c:852 timezone/zic.c:1815 + #, c-format +-msgid "syntax error in %s definition: %s" +-msgstr "erro de sintaxe na definição %s: %s" ++msgid "%s: Can't remove %s/%s: %s\n" ++msgstr "%s: Não é possível remover %s/%s: %s\n" + +-#: locale/programs/locfile.c:750 +-msgid "syntax error in `order_start' directive" +-msgstr "erro de sintaxe na diretiva `order_start'" ++#: timezone/zic.c:874 ++#, c-format ++msgid "symbolic link used because hard link failed: %s" ++msgstr "link simbólico usado porque link absoluto falhou: %s" + +-#: locale/programs/locfile.c:492 +-msgid "syntax error in character class definition" +-msgstr "erro de sintaxe na definição de classe de caracteres" ++#: timezone/zic.c:882 ++#, c-format ++msgid "%s: Can't read %s/%s: %s\n" ++msgstr "%s: Não foi possível ler %s/%s: %s\n" + +-#: locale/programs/locfile.c:550 +-msgid "syntax error in character conversion definition" +-msgstr "erro de sintaxe na definição de conversão de caracteres" ++#: timezone/zic.c:889 timezone/zic.c:1828 ++#, c-format ++msgid "%s: Can't create %s/%s: %s\n" ++msgstr "%s: Não é possível criar %s/%s (%s)\n" + +-#: locale/programs/locfile.c:792 +-msgid "syntax error in collating order definition" +-msgstr "erro de sintaxe na definição de ordem de comparação" ++#: timezone/zic.c:898 ++#, c-format ++msgid "copy used because hard link failed: %s" ++msgstr "cópia usada porque link absoluto falhou: %s" + +-#: locale/programs/locfile.c:642 +-msgid "syntax error in collation definition" +-msgstr "erro de sintaxe na definição de comparação" ++#: timezone/zic.c:901 ++#, c-format ++msgid "copy used because symbolic link failed: %s" ++msgstr "cópia usada porque link simbólico falhou: %s" + +-#: locale/programs/locfile.c:465 +-msgid "syntax error in definition of LC_CTYPE category" +-msgstr "erro de sintaxe na definição da categoria LC_CTYPE" ++#: timezone/zic.c:1013 timezone/zic.c:1015 ++msgid "same rule name in multiple files" ++msgstr "mesmo nome de regra em múltiplos arquivos" + +-#: locale/programs/locfile.c:408 +-msgid "syntax error in definition of new character class" +-msgstr "erro de sintaxe na definição de uma nova classe de caracteres" ++#: timezone/zic.c:1056 ++msgid "unruly zone" ++msgstr "fuso horário sem regras" + +-#: locale/programs/locfile.c:418 +-msgid "syntax error in definition of new character map" +-msgstr "erro de sintaxe na definição de um novo mapa de caracteres" ++#: timezone/zic.c:1063 ++#, c-format ++msgid "%s in ruleless zone" ++msgstr "%s em uma fuso horário sem regras" + +-#: locale/programs/locfile.c:1003 +-msgid "syntax error in message locale definition" +-msgstr "erro de sintaxe na definição da mensagem locale" ++#: timezone/zic.c:1083 ++msgid "standard input" ++msgstr "entrada padrão" + +-#: locale/programs/locfile.c:914 +-msgid "syntax error in monetary locale definition" +-msgstr "erro de sintaxe na definição monetária locale" ++#: timezone/zic.c:1088 ++#, c-format ++msgid "%s: Can't open %s: %s\n" ++msgstr "%s: Não é possível abrir %s: %s\n" + +-#: locale/programs/locfile.c:941 +-msgid "syntax error in numeric locale definition" +-msgstr "erro de sintaxe na definição numérica locale" ++#: timezone/zic.c:1099 ++msgid "line too long" ++msgstr "linha muito longa" + +-#: locale/programs/locfile.c:852 +-msgid "syntax error in order specification" +-msgstr "erro de sintaxe na especificação de ordem" ++#: timezone/zic.c:1119 ++msgid "input line of unknown type" ++msgstr "linha de entrada de tipo desconhecido" + +-#: locale/programs/charmap.c:280 locale/programs/charmap.c:296 +-#: locale/programs/repertoire.c:143 ++#: timezone/zic.c:1134 + #, c-format +-msgid "syntax error in prolog: %s" +-msgstr "erro de sintaxe em prolog: %s" ++msgid "%s: Leap line in non leap seconds file %s" ++msgstr "%s: linha Leap em arquivo de segundos não bissextos %s" + +-#: locale/programs/repertoire.c:198 locale/programs/repertoire.c:237 +-#: locale/programs/repertoire.c:260 ++#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569 + #, c-format +-msgid "syntax error in repertoire map definition: %s" +-msgstr "erro de sintaxe no mapa de repertório: %s" +- +-#: locale/programs/locfile.c:979 +-msgid "syntax error in time locale definition" +-msgstr "erro de sintaxe na definição de tempo locale" +- +-#: locale/programs/locfile.c:385 +-msgid "syntax error: not inside a locale definition section" +-msgstr "erro de sintaxe: não está dentro de uma definição de seção locale" +- +-#: iconv/iconv_prog.c:137 +-msgid "target encoding not specified using `-t'" +-msgstr "codificação destino não especificada usando `-t'" +- +-#: catgets/gencat.c:390 catgets/gencat.c:526 catgets/gencat.c:553 +-msgid "this is the first definition" +-msgstr "esta é a primeira definição" ++msgid "%s: panic: Invalid l_value %d\n" ++msgstr "%s: pânico: l_value inválido %d\n" + +-#: timezone/zic.c:1132 +-msgid "time before zero" +-msgstr "tempo menor que zero" ++#: timezone/zic.c:1151 ++msgid "expected continuation line not found" ++msgstr "linha de continuação não foi localizada" + +-#: timezone/zic.c:1140 timezone/zic.c:2015 timezone/zic.c:2034 ++#: timezone/zic.c:1193 timezone/zic.c:2976 + msgid "time overflow" + msgstr "estouro de tempo" + +-#: locale/programs/charmap.c:443 +-msgid "too few bytes in character encoding" +-msgstr "poucos bytes na codificação do caracter" +- +-#: locale/programs/charmap.c:445 +-msgid "too many bytes in character encoding" +-msgstr "muitos bytes na codificação do caracter" +- +-#: locale/programs/locales.h:92 +-msgid "too many character classes defined" +-msgstr "muitas classes de caracteres definidas" ++#: timezone/zic.c:1198 ++msgid "values over 24 hours not handled by pre-2007 versions of zic" ++msgstr "valor sobre 24 horas não tratado por versões anteriores a 2007 do zic" + +-#: timezone/zic.c:1843 +-msgid "too many leap seconds" +-msgstr "excessivos ajustes em segundos" ++#: timezone/zic.c:1209 ++msgid "wrong number of fields on Rule line" ++msgstr "número incorreto de campos na linha Rule" + +-#: timezone/zic.c:1815 +-msgid "too many local time types" +-msgstr "muitos tipos de tempo local" ++#: timezone/zic.c:1213 ++msgid "nameless rule" ++msgstr "regra sem nome" + +-#: timezone/zic.c:1769 +-msgid "too many transitions?!" +-msgstr "muitas transições?!" ++#: timezone/zic.c:1218 ++msgid "invalid saved time" ++msgstr "tempo gravado inválido" + +-#: locale/programs/ld-collate.c:1637 +-msgid "too many weights" +-msgstr "muitos pesos" ++#: timezone/zic.c:1235 ++msgid "wrong number of fields on Zone line" ++msgstr "número incorreto de campos na linha Zone" + +-#: timezone/zic.c:2138 +-msgid "too many, or too long, time zone abbreviations" +-msgstr "abreviações de zona de tempo excessivas ou muito extensas" ++#: timezone/zic.c:1240 ++#, c-format ++msgid "\"Zone %s\" line and -l option are mutually exclusive" ++msgstr "A linha “Zone %s” e a opção -l são mutuamente exclusivas" + +-#: locale/programs/linereader.h:146 +-msgid "trailing garbage at end of line" +-msgstr "lixo no final da linha" ++#: timezone/zic.c:1246 ++#, c-format ++msgid "\"Zone %s\" line and -p option are mutually exclusive" ++msgstr "A linha “Zone %s” e a opção -p são mutuamente exclusivas" + +-#: sunrpc/svc_simple.c:150 ++#: timezone/zic.c:1253 + #, c-format +-msgid "trouble replying to prog %d\n" +-msgstr "problemas respondendo ao prog %d\n" ++msgid "duplicate zone name %s (file \"%s\", line %)" ++msgstr "nome de fuso horário duplicado %s (arquivo “%s”, linha %)" + +-#: locale/programs/ld-collate.c:1393 +-msgid "two lines in a row containing `...' are not allowed" +-msgstr "duas linhas em uma lista contendo `...' não são permitidas" ++#: timezone/zic.c:1267 ++msgid "wrong number of fields on Zone continuation line" ++msgstr "número incorreto de campos na linha de continuação de Zone" + + #: timezone/zic.c:1307 +-msgid "typed single year" +-msgstr "digitado ano simples" ++msgid "invalid UT offset" ++msgstr "deslocamento de UT inválido" + +-#: iconv/iconv_prog.c:406 +-msgid "unable to allocate buffer for input" +-msgstr "incapaz de alocar espaço para entrada" +- +-#: nis/nis_callback.c:187 +-msgid "unable to free arguments" +-msgstr "não consegui liberar parâmetros" +- +-#: posix/getconf.c:654 posix/getconf.c:670 +-msgid "undefined" +-msgstr "indefinido" +- +-#: locale/programs/charmap.c:701 locale/programs/charmap.c:712 +-#, c-format +-msgid "unknown character `%s'" +-msgstr "caracter desconhecido `%s'" +- +-#: locale/programs/ld-messages.c:202 locale/programs/ld-messages.c:213 +-#: locale/programs/ld-messages.c:224 locale/programs/ld-messages.c:235 +-#: locale/programs/ld-time.c:718 +-#, c-format +-msgid "unknown character in field `%s' of category `%s'" +-msgstr "caracter desconhecido no campo `%s', categoria `%s'" +- +-#: locale/programs/locfile.c:715 +-msgid "unknown collation directive" +-msgstr "diretiva de comparação desconhecida" ++#: timezone/zic.c:1311 ++msgid "invalid abbreviation format" ++msgstr "formato de abreviação inválido" + +-#: catgets/gencat.c:487 ++#: timezone/zic.c:1320 + #, c-format +-msgid "unknown directive `%s': line ignored" +-msgstr "diretiva desconhecida `%s': linha ignorada" ++msgid "format '%s' not handled by pre-2015 versions of zic" ++msgstr "formato “%s” não tratado por versões pré-2015 do zic" + +-#: iconv/iconv_prog.c:353 +-#, c-format +-msgid "unknown iconv() error %d" +-msgstr "erro iconv() desconhecido: %d" ++#: timezone/zic.c:1347 ++msgid "Zone continuation line end time is not after end time of previous line" ++msgstr "Hora final da linha de fuso horário não está após o tempo final da linha anterior" + +-#: catgets/gencat.c:466 +-#, c-format +-msgid "unknown set `%s'" +-msgstr "conjunto desconhecido `%s'" ++#: timezone/zic.c:1374 ++msgid "wrong number of fields on Leap line" ++msgstr "número incorreto de campos na linha Leap" + +-#: locale/programs/ld-collate.c:1377 locale/programs/ld-collate.c:1572 +-#: locale/programs/ld-collate.c:1747 +-#, c-format +-msgid "unknown symbol `%.*s': line ignored" +-msgstr "símbolo desconhecido `%.*s': linha ignorada" ++#: timezone/zic.c:1383 ++msgid "invalid leaping year" ++msgstr "ano bissexto inválido" + +-#: timezone/zic.c:761 +-msgid "unruly zone" +-msgstr "zona sem regras" ++#: timezone/zic.c:1403 timezone/zic.c:1501 ++msgid "invalid month name" ++msgstr "nome do mês inválido" + +-#: catgets/gencat.c:971 +-msgid "unterminated message" +-msgstr "mensagem não terminada" ++#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628 ++msgid "invalid day of month" ++msgstr "dia do mês inválido" + +-#: locale/programs/linereader.c:520 locale/programs/linereader.c:555 +-msgid "unterminated string" +-msgstr "string não terminada" ++#: timezone/zic.c:1421 ++msgid "time too small" ++msgstr "hora pequena demais" + +-#: sunrpc/rpc_scan.c:350 sunrpc/rpc_scan.c:376 +-msgid "unterminated string constant" +-msgstr "string não terminada" ++#: timezone/zic.c:1425 ++msgid "time too large" ++msgstr "hora grande demais" + +-#: locale/programs/linereader.c:390 +-msgid "unterminated symbolic name" +-msgstr "nome simbólico não terminado" ++#: timezone/zic.c:1429 timezone/zic.c:1530 ++msgid "invalid time of day" ++msgstr "hora do dia inválida" + +-#: locale/programs/ld-collate.c:1699 +-msgid "unterminated weight name" +-msgstr "nome do peso não terminado" ++#: timezone/zic.c:1448 ++msgid "illegal CORRECTION field on Leap line" ++msgstr "Campo CORRECTION ilegal em linha Leap (ajuste)" + +-#: locale/programs/charset.c:104 +-msgid "upper limit in range is not smaller then lower limit" +-msgstr "o limite inferior do intervalo é maior que o limite superior" ++#: timezone/zic.c:1453 ++msgid "illegal Rolling/Stationary field on Leap line" ++msgstr "campo Rolling/Stationary ilegal em linha Leap (ajuste)" + +-#: sunrpc/rpc_main.c:1415 +-#, c-format +-msgid "usage: %s infile\n" +-msgstr "uso: %s arquivo_entrada\n" ++#: timezone/zic.c:1459 ++msgid "leap second precedes Big Bang" ++msgstr "segundo bissexto precede Big Bang" + +-#: timezone/zic.c:2081 +-msgid "use of 2/29 in non leap-year" +-msgstr "use 2/29 em ano não bissexto" ++#: timezone/zic.c:1472 ++msgid "wrong number of fields on Link line" ++msgstr "número incorreto de campos na linha Link" + +-#: locale/programs/charmap.c:522 locale/programs/charmap.c:576 +-#, c-format +-msgid "value for %s must be an integer" +-msgstr "valor para %s deve ser um inteiro" ++#: timezone/zic.c:1476 ++msgid "blank FROM field on Link line" ++msgstr "campo FROM em branco na linha Link" + +-#: locale/programs/charmap.c:318 +-#, c-format +-msgid "value for <%s> must lie between 1 and 4" +-msgstr "valor para <%s> deve estar entre 1 e 4" ++#: timezone/zic.c:1551 ++msgid "invalid starting year" ++msgstr "ano inicial inválido" + +-#: locale/programs/ld-monetary.c:157 locale/programs/ld-numeric.c:92 +-#, c-format +-msgid "value for field `%s' in category `%s' must not be the empty string" +-msgstr "valor para campo `%s', categoria `%s', não deve ser uma string vazia" ++#: timezone/zic.c:1573 ++msgid "invalid ending year" ++msgstr "ano final inválido" + +-#: locale/programs/charmap.c:330 +-msgid "value of must be greater than the value of " +-msgstr "o valor de deve ser maior que o valor de " ++#: timezone/zic.c:1577 ++msgid "starting year greater than ending year" ++msgstr "ano inicial maior que ano final" + +-#: locale/programs/ld-monetary.c:147 +-msgid "value of field `int_curr_symbol' in category `LC_MONETARY' does not correspond to a valid name in ISO 4217" +-msgstr "o valor do campo `int_curr_symbol' na categoria `LC_MONETARY' não corresponde a um nome válido na ISO 4217" ++#: timezone/zic.c:1584 ++msgid "typed single year" ++msgstr "digitado ano simples" + +-#: locale/programs/ld-monetary.c:139 +-msgid "value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length" +-msgstr "o valor do campo `int_curr_symbol' na categoria `LC_MONETARY' possui tamanho errado" ++#: timezone/zic.c:1619 ++msgid "invalid weekday name" ++msgstr "nome de dia de semana inválido" + +-#: locale/programs/ld-monetary.c:383 locale/programs/ld-numeric.c:207 ++#: timezone/zic.c:1743 + #, c-format +-msgid "values for field `%s' in category `%s' must be smaller than 127" +-msgstr "os valores para o campo `%s' na categoria `%s' devem ser menores que 127" ++msgid "reference clients mishandle more than %d transition times" ++msgstr "clientes de referência lidam incorretamente com mais %d tempos de transição" + +-#: nscd/connections.c:355 +-#, c-format +-msgid "while accepting connection: %s" +-msgstr "enquanto aceitando conecção: %s" ++#: timezone/zic.c:1747 ++msgid "pre-2014 clients may mishandle more than 1200 transition times" ++msgstr "clientes pré-2014 podem não lidar corretamente comais de 1200 tempos de transições" + +-#: nscd/grpcache.c:149 nscd/hstcache.c:168 nscd/pwdcache.c:142 +-msgid "while allocating cache entry" +-msgstr "enquanto alocando entrada de cache" ++#: timezone/zic.c:1858 ++msgid "too many transition times" ++msgstr "tempos de transição em excesso" + +-#: nscd/cache.c:85 +-msgid "while allocating hash table entry" +-msgstr "enquanto alocando entrada na tabela hash" ++#: timezone/zic.c:2047 ++#, c-format ++msgid "%%z UTC offset magnitude exceeds 99:59:59" ++msgstr "a magnitude do deslocamento de %%z UTC excede 99:59:59" + +-#: nscd/grpcache.c:99 nscd/hstcache.c:109 nscd/pwdcache.c:105 +-msgid "while allocating key copy" +-msgstr "enquanto alocando chave cópia" ++#: timezone/zic.c:2424 ++msgid "no POSIX environment variable for zone" ++msgstr "nenhuma variável de ambiente POSIX para o fuso horário" + +-#: catgets/gencat.c:1001 +-msgid "while opening old catalog file" +-msgstr "enquanto abrindo antigo arquivo de catálogo" ++#: timezone/zic.c:2430 ++#, c-format ++msgid "%s: pre-%d clients may mishandle distant timestamps" ++msgstr "%s: clientes pré-%d podem não lidar corretamente com marcas de tempo distantes" + +-#: locale/programs/locale.c:346 +-msgid "while preparing output" +-msgstr "enquanto preparando saída" ++#: timezone/zic.c:2566 ++msgid "two rules for same instant" ++msgstr "duas regras para o mesmo instante" + +-#: db2/makedb.c:365 db2/makedb.c:382 +-msgid "while reading database" +-msgstr "enquanto lendo database" ++#: timezone/zic.c:2627 ++msgid "can't determine time zone abbreviation to use just after until time" ++msgstr "não é possível determinar abreviação de fuso horário para usar apenas após um tempo" + +-#: elf/sprof.c:683 +-msgid "while stat'ing profiling data file" +-msgstr "enquanto escrevendo arquivo data de dados de perfil" ++#: timezone/zic.c:2725 ++msgid "too many local time types" ++msgstr "tipos de tempo local em excesso" + +-#: db2/makedb.c:334 +-msgid "while writing database file" +-msgstr "enquanto escrevendo arquivo data base" ++#: timezone/zic.c:2729 ++msgid "UT offset out of range" ++msgstr "deslocamento de UT fora da faixa" + +-#: nscd/nscd_stat.c:115 +-msgid "write incomplete" +-msgstr "escrita incompleta" ++#: timezone/zic.c:2753 ++msgid "too many leap seconds" ++msgstr "número excessivo de segundos bissextos" + +-#: inet/rcmd.c:320 +-msgid "writeable by other than owner" +-msgstr "permissão de escrita para outros" ++#: timezone/zic.c:2759 ++msgid "repeated leap second moment" ++msgstr "momento de segundo bissexto repetido" + +-#: db2/makedb.c:124 nscd/nscd.c:114 nss/getent.c:392 +-msgid "wrong number of arguments" +-msgstr "número incorreto de argumentos" ++#: timezone/zic.c:2830 ++msgid "Wild result from command execution" ++msgstr "Resultado insensato da execução do comando" + +-#: timezone/zic.c:1090 +-msgid "wrong number of fields on Leap line" +-msgstr "número incorreto de campos na linha Leap" ++#: timezone/zic.c:2831 ++#, c-format ++msgid "%s: command was '%s', result was %d\n" ++msgstr "%s: comando era “%s”, resultado era %d\n" + +-#: timezone/zic.c:1181 +-msgid "wrong number of fields on Link line" +-msgstr "número incorreto de campos na linha Link" ++#: timezone/zic.c:2961 ++msgid "Odd number of quotation marks" ++msgstr "Número ímpar de aspas" + +-#: timezone/zic.c:924 +-msgid "wrong number of fields on Rule line" +-msgstr "número incorreto de campos na linha Rule" ++#: timezone/zic.c:3046 ++msgid "use of 2/29 in non leap-year" ++msgstr "uso de 2/29 em ano não bissexto" + +-#: timezone/zic.c:994 +-msgid "wrong number of fields on Zone continuation line" +-msgstr "número incorreto de campos na linha de continuação de Zone" ++#: timezone/zic.c:3081 ++msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic" ++msgstr "regra vai de início/fim do mês; não vai funcionar em versões pré-2004 do zic" + +-#: timezone/zic.c:952 +-msgid "wrong number of fields on Zone line" +-msgstr "número incorreto de campos na linha Zone" ++#: timezone/zic.c:3108 ++msgid "time zone abbreviation has fewer than 3 characters" ++msgstr "abreviação de fuso horário possui menos de 3 caracteres" + +-#: sunrpc/xdr_ref.c:84 +-msgid "xdr_reference: out of memory\n" +-msgstr "xdr_reference: não há memória suficiente\n" ++#: timezone/zic.c:3110 ++msgid "time zone abbreviation has too many characters" ++msgstr "abreviação de fuso horário possui um número excessivo de caracteres" + +-#: sunrpc/xdr_rec.c:151 sunrpc/xdr_rec.c:166 +-msgid "xdrrec_create: out of memory\n" +-msgstr "xdrrec_create: não há memória suficiente\n" ++#: timezone/zic.c:3112 ++msgid "time zone abbreviation differs from POSIX standard" ++msgstr "abreviação de fuso horário difere do padrão POSIX" + +-#: nis/ypclnt.c:884 +-msgid "yp_update: cannot convert host to netname\n" +-msgstr "yp_update: não é possível converter host para netname\n" ++#: timezone/zic.c:3118 ++msgid "too many, or too long, time zone abbreviations" ++msgstr "abreviações de fuso horário em excesso ou muito extensas" + +-#: nis/ypclnt.c:896 +-msgid "yp_update: cannot get server address\n" +-msgstr "yp_update: não é possível obter o endereço do servidor\n" ++#: timezone/zic.c:3161 ++#, c-format ++msgid "%s: Can't create directory %s: %s" ++msgstr "%s: Não foi possível criar o diretório %s: %s" +diff --git a/posix/Makefile b/posix/Makefile +index 83b3d7418c..0fb280ba69 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -95,10 +95,10 @@ tests := test-errno tstgetopt testfnm runtests runptests \ + tst-posix_spawn-fd tst-posix_spawn-setsid \ + tst-posix_fadvise tst-posix_fadvise64 \ + tst-sysconf-empty-chroot tst-glob_symlinks tst-fexecve \ +- tst-glob-tilde ++ tst-glob-tilde tst-spawn4 + tests-internal := bug-regex5 bug-regex20 bug-regex33 \ + tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 \ +- tst-glob_lstat_compat ++ tst-glob_lstat_compat tst-spawn4-compat + xtests := bug-ga2 tst-getaddrinfo4 tst-getaddrinfo5 + ifeq (yes,$(build-shared)) + test-srcs := globtest +diff --git a/posix/execvpe.c b/posix/execvpe.c +index 859c0f69bf..ea67d19fcd 100644 +--- a/posix/execvpe.c ++++ b/posix/execvpe.c +@@ -67,11 +67,9 @@ maybe_script_execute (const char *file, char *const argv[], char *const envp[]) + __execve (new_argv[0], new_argv, envp); + } + +- +-/* Execute FILE, searching in the `PATH' environment variable if it contains +- no slashes, with arguments ARGV and environment from ENVP. */ +-int +-__execvpe (const char *file, char *const argv[], char *const envp[]) ++static int ++__execvpe_common (const char *file, char *const argv[], char *const envp[], ++ bool exec_script) + { + /* We check the simple case first. */ + if (*file == '\0') +@@ -85,7 +83,7 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) + { + __execve (file, argv, envp); + +- if (errno == ENOEXEC) ++ if (errno == ENOEXEC && exec_script) + maybe_script_execute (file, argv, envp); + + return -1; +@@ -137,7 +135,7 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) + + __execve (buffer, argv, envp); + +- if (errno == ENOEXEC) ++ if (errno == ENOEXEC && exec_script) + /* This has O(P*C) behavior, where P is the length of the path and C + is the argument count. A better strategy would be allocate the + substitute argv and reuse it each time through the loop (so it +@@ -184,4 +182,18 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) + return -1; + } + ++/* Execute FILE, searching in the `PATH' environment variable if it contains ++ no slashes, with arguments ARGV and environment from ENVP. */ ++int ++__execvpe (const char *file, char *const argv[], char *const envp[]) ++{ ++ return __execvpe_common (file, argv, envp, true); ++} + weak_alias (__execvpe, execvpe) ++ ++/* Same as __EXECVPE, but does not try to execute NOEXEC files. */ ++int ++__execvpex (const char *file, char *const argv[], char *const envp[]) ++{ ++ return __execvpe_common (file, argv, envp, false); ++} +diff --git a/posix/tst-glob_lstat_compat.c b/posix/tst-glob_lstat_compat.c +index c46bc9e578..22cd1f02f9 100644 +--- a/posix/tst-glob_lstat_compat.c ++++ b/posix/tst-glob_lstat_compat.c +@@ -35,7 +35,14 @@ + #if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_27) + + __typeof (glob) glob; ++/* On alpha glob exists in version GLIBC_2_0, GLIBC_2_1, and GLIBC_2_27. ++ This test needs to access the version prior to GLIBC_2_27, which is ++ GLIBC_2_1 on alpha, GLIBC_2_0 elsewhere. */ ++# ifdef __alpha__ ++compat_symbol_reference (libc, glob, glob, GLIBC_2_1); ++# else + compat_symbol_reference (libc, glob, glob, GLIBC_2_0); ++# endif + + /* Compat glob should not call gl_lstat since for some old binaries it + might be unitialized (for instance GNUmake). Check if it is indeed +diff --git a/posix/tst-rfc3484-2.c b/posix/tst-rfc3484-2.c +index f509534ca9..8c64ac59ff 100644 +--- a/posix/tst-rfc3484-2.c ++++ b/posix/tst-rfc3484-2.c +@@ -58,6 +58,7 @@ _res_hconf_init (void) + #undef USE_NSCD + #include "../sysdeps/posix/getaddrinfo.c" + ++service_user *__nss_hosts_database attribute_hidden; + + /* This is the beginning of the real test code. The above defines + (among other things) the function rfc3484_sort. */ +diff --git a/posix/tst-rfc3484-3.c b/posix/tst-rfc3484-3.c +index ae44087a10..1c61aaf844 100644 +--- a/posix/tst-rfc3484-3.c ++++ b/posix/tst-rfc3484-3.c +@@ -58,6 +58,7 @@ _res_hconf_init (void) + #undef USE_NSCD + #include "../sysdeps/posix/getaddrinfo.c" + ++service_user *__nss_hosts_database attribute_hidden; + + /* This is the beginning of the real test code. The above defines + (among other things) the function rfc3484_sort. */ +diff --git a/posix/tst-rfc3484.c b/posix/tst-rfc3484.c +index 7f191abbbc..8f45848e44 100644 +--- a/posix/tst-rfc3484.c ++++ b/posix/tst-rfc3484.c +@@ -58,6 +58,7 @@ _res_hconf_init (void) + #undef USE_NSCD + #include "../sysdeps/posix/getaddrinfo.c" + ++service_user *__nss_hosts_database attribute_hidden; + + /* This is the beginning of the real test code. The above defines + (among other things) the function rfc3484_sort. */ +diff --git a/posix/tst-spawn4-compat.c b/posix/tst-spawn4-compat.c +new file mode 100644 +index 0000000000..11f654b913 +--- /dev/null ++++ b/posix/tst-spawn4-compat.c +@@ -0,0 +1,77 @@ ++/* Check if posix_spawn does handle correctly ENOEXEC files. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_15) ++ ++compat_symbol_reference (libc, posix_spawn, posix_spawn, GLIBC_2_2); ++compat_symbol_reference (libc, posix_spawnp, posix_spawnp, GLIBC_2_2); ++ ++static int ++do_test (void) ++{ ++ char *scriptname; ++ int fd = create_temp_file ("tst-spawn4.", &scriptname); ++ TEST_VERIFY_EXIT (fd >= 0); ++ ++ const char script[] = "exit 65"; ++ xwrite (fd, script, sizeof (script) - 1); ++ xclose (fd); ++ ++ TEST_VERIFY_EXIT (chmod (scriptname, 0x775) == 0); ++ ++ pid_t pid; ++ int status; ++ ++ /* For compat symbol it verifies that trying to issued a shell script ++ without a shebang is correctly executed. */ ++ status = posix_spawn (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, ++ (char *[]) { 0 }); ++ TEST_VERIFY_EXIT (status == 0); ++ ++ TEST_VERIFY_EXIT (waitpid (pid, &status, 0) == pid); ++ TEST_VERIFY_EXIT (WIFEXITED (status) == 1 && WEXITSTATUS (status) == 65); ++ ++ status = posix_spawnp (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, ++ (char *[]) { 0 }); ++ TEST_VERIFY_EXIT (status == 0); ++ ++ TEST_VERIFY_EXIT (waitpid (pid, &status, 0) == pid); ++ TEST_VERIFY_EXIT (WIFEXITED (status) == 1 && WEXITSTATUS (status) == 65); ++ ++ return 0; ++} ++#else ++static int ++do_test (void) ++{ ++ return 77; ++} ++#endif ++ ++#include +diff --git a/posix/tst-spawn4.c b/posix/tst-spawn4.c +new file mode 100644 +index 0000000000..e4a1fa3f00 +--- /dev/null ++++ b/posix/tst-spawn4.c +@@ -0,0 +1,56 @@ ++/* Check if posix_spawn does handle correctly ENOEXEC files. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ char *scriptname; ++ int fd = create_temp_file ("tst-spawn4.", &scriptname); ++ TEST_VERIFY_EXIT (fd >= 0); ++ ++ const char script[] = "echo it should not happen"; ++ xwrite (fd, script, sizeof (script) - 1); ++ xclose (fd); ++ ++ TEST_VERIFY_EXIT (chmod (scriptname, 0x775) == 0); ++ ++ pid_t pid; ++ int status; ++ ++ /* Check if scripts without shebang are correctly not executed. */ ++ status = posix_spawn (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, ++ (char *[]) { 0 }); ++ TEST_VERIFY_EXIT (status == ENOEXEC); ++ ++ status = posix_spawnp (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, ++ (char *[]) { 0 }); ++ TEST_VERIFY_EXIT (status == ENOEXEC); ++ ++ return 0; ++} ++ ++#include +diff --git a/resolv/res_send.c b/resolv/res_send.c +index dde0425a33..9e9541789b 100644 +--- a/resolv/res_send.c ++++ b/resolv/res_send.c +@@ -471,6 +471,11 @@ __res_context_send (struct resolv_context *ctx, + '\0', + sizeof (struct sockaddr_in6) + - sizeof (struct sockaddr_in)); ++ else ++ { ++ __set_errno (ENOMEM); ++ return -1; ++ } + } + EXT(statp).nscount = statp->nscount; + } +@@ -1152,25 +1157,27 @@ send_dg(res_state statp, + if (have_sendmmsg >= 0 && nwritten == 0 && buf2 != NULL + && !single_request) + { +- struct iovec iov[2]; +- struct mmsghdr reqs[2]; +- reqs[0].msg_hdr.msg_name = NULL; +- reqs[0].msg_hdr.msg_namelen = 0; +- reqs[0].msg_hdr.msg_iov = &iov[0]; +- reqs[0].msg_hdr.msg_iovlen = 1; +- iov[0].iov_base = (void *) buf; +- iov[0].iov_len = buflen; +- reqs[0].msg_hdr.msg_control = NULL; +- reqs[0].msg_hdr.msg_controllen = 0; +- +- reqs[1].msg_hdr.msg_name = NULL; +- reqs[1].msg_hdr.msg_namelen = 0; +- reqs[1].msg_hdr.msg_iov = &iov[1]; +- reqs[1].msg_hdr.msg_iovlen = 1; +- iov[1].iov_base = (void *) buf2; +- iov[1].iov_len = buflen2; +- reqs[1].msg_hdr.msg_control = NULL; +- reqs[1].msg_hdr.msg_controllen = 0; ++ struct iovec iov = ++ { .iov_base = (void *) buf, .iov_len = buflen }; ++ struct iovec iov2 = ++ { .iov_base = (void *) buf2, .iov_len = buflen2 }; ++ struct mmsghdr reqs[2] = ++ { ++ { ++ .msg_hdr = ++ { ++ .msg_iov = &iov, ++ .msg_iovlen = 1, ++ }, ++ }, ++ { ++ .msg_hdr = ++ { ++ .msg_iov = &iov2, ++ .msg_iovlen = 1, ++ } ++ }, ++ }; + + int ndg = __sendmmsg (pfd[0].fd, reqs, 2, MSG_NOSIGNAL); + if (__glibc_likely (ndg == 2)) +diff --git a/signal/Makefile b/signal/Makefile +index a9b99a20be..aa63434f47 100644 +--- a/signal/Makefile ++++ b/signal/Makefile +@@ -46,7 +46,7 @@ routines := signal raise killpg \ + sighold sigrelse sigignore sigset + + tests := tst-signal tst-sigset tst-sigsimple tst-raise tst-sigset2 \ +- tst-sigwait-eintr \ ++ tst-sigwait-eintr tst-sigaction \ + + include ../Rules + +diff --git a/signal/tst-sigaction.c b/signal/tst-sigaction.c +new file mode 100644 +index 0000000000..c908e8f6f6 +--- /dev/null ++++ b/signal/tst-sigaction.c +@@ -0,0 +1,56 @@ ++/* Test sigaction regression for BZ #23069. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++ ++static void ++my_sig_handler (int signum) ++{ ++} ++ ++static int ++do_test (void) ++{ ++ /* Define a simple signal handler */ ++ struct sigaction act; ++ act.sa_handler = my_sig_handler; ++ act.sa_flags = 0; ++ sigemptyset (&act.sa_mask); ++ ++ /* Set it as SIGUSR1 signal handler */ ++ TEST_VERIFY_EXIT (sigaction (SIGUSR1, &act, NULL) == 0); ++ ++ /* Get SIGUSR1 signal handler */ ++ TEST_VERIFY_EXIT (sigaction (SIGUSR1, NULL, &act) == 0); ++ ++ /* Check it is consistent with the defined one */ ++ TEST_VERIFY (act.sa_handler == my_sig_handler); ++ TEST_VERIFY (!(act.sa_flags & SA_RESETHAND)); ++ ++ for (int i = 1; i < _NSIG; i++) ++ { ++ TEST_VERIFY (!sigismember (&act.sa_mask, i)); ++ } ++ ++ return 0; ++} ++ ++#include +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 7c363a6e4d..a9ad849531 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -84,7 +84,7 @@ tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ + tst-cxa_atexit tst-on_exit test-atexit-race \ + test-at_quick_exit-race test-cxa_atexit-race \ + test-on_exit-race test-dlclose-exit-race \ +- tst-makecontext-align ++ tst-makecontext-align test-bz22786 + + tests-internal := tst-strtod1i tst-strtod3 tst-strtod4 tst-strtod5i \ + tst-tls-atexit tst-tls-atexit-nodelete +diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c +index 30825a91b8..432fc82b4a 100644 +--- a/stdlib/canonicalize.c ++++ b/stdlib/canonicalize.c +@@ -181,7 +181,7 @@ __realpath (const char *name, char *resolved) + extra_buf = __alloca (path_max); + + len = strlen (end); +- if ((long int) (n + len) >= path_max) ++ if (path_max - n <= len) + { + __set_errno (ENAMETOOLONG); + goto error; +diff --git a/stdlib/random_r.c b/stdlib/random_r.c +index 4d2f0d472f..b47c65c6d7 100644 +--- a/stdlib/random_r.c ++++ b/stdlib/random_r.c +@@ -361,8 +361,7 @@ __random_r (struct random_data *buf, int32_t *result) + + if (buf->rand_type == TYPE_0) + { +- int32_t val = state[0]; +- val = ((state[0] * 1103515245) + 12345) & 0x7fffffff; ++ int32_t val = ((state[0] * 1103515245U) + 12345U) & 0x7fffffff; + state[0] = val; + *result = val; + } +@@ -371,11 +370,11 @@ __random_r (struct random_data *buf, int32_t *result) + int32_t *fptr = buf->fptr; + int32_t *rptr = buf->rptr; + int32_t *end_ptr = buf->end_ptr; +- int32_t val; ++ uint32_t val; + +- val = *fptr += *rptr; ++ val = *fptr += (uint32_t) *rptr; + /* Chucking least random bit. */ +- *result = (val >> 1) & 0x7fffffff; ++ *result = val >> 1; + ++fptr; + if (fptr >= end_ptr) + { +diff --git a/stdlib/test-bz22786.c b/stdlib/test-bz22786.c +new file mode 100644 +index 0000000000..e7837f98c1 +--- /dev/null ++++ b/stdlib/test-bz22786.c +@@ -0,0 +1,90 @@ ++/* Bug 22786: test for buffer overflow in realpath. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This file must be run from within a directory called "stdlib". */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ const char dir[] = "bz22786"; ++ const char lnk[] = "bz22786/symlink"; ++ ++ rmdir (dir); ++ if (mkdir (dir, 0755) != 0 && errno != EEXIST) ++ { ++ printf ("mkdir %s: %m\n", dir); ++ return EXIT_FAILURE; ++ } ++ if (symlink (".", lnk) != 0 && errno != EEXIST) ++ { ++ printf ("symlink (%s, %s): %m\n", dir, lnk); ++ return EXIT_FAILURE; ++ } ++ ++ const size_t path_len = (size_t) INT_MAX + 1; ++ ++ DIAG_PUSH_NEEDS_COMMENT; ++#if __GNUC_PREREQ (7, 0) ++ /* GCC 7 warns about too-large allocations; here we need such ++ allocation to succeed for the test to work. */ ++ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than="); ++#endif ++ char *path = malloc (path_len); ++ DIAG_POP_NEEDS_COMMENT; ++ ++ if (path == NULL) ++ { ++ printf ("malloc (%zu): %m\n", path_len); ++ return EXIT_UNSUPPORTED; ++ } ++ ++ /* Construct very long path = "bz22786/symlink/aaaa....." */ ++ char *p = mempcpy (path, lnk, sizeof (lnk) - 1); ++ *(p++) = '/'; ++ memset (p, 'a', path_len - (path - p) - 2); ++ p[path_len - (path - p) - 1] = '\0'; ++ ++ /* This call crashes before the fix for bz22786 on 32-bit platforms. */ ++ p = realpath (path, NULL); ++ ++ if (p != NULL || errno != ENAMETOOLONG) ++ { ++ printf ("realpath: %s (%m)", p); ++ return EXIT_FAILURE; ++ } ++ ++ /* Cleanup. */ ++ unlink (lnk); ++ rmdir (dir); ++ ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test ++#include +diff --git a/string/test-memcpy.c b/string/test-memcpy.c +index 45f20a6d80..3c8066da52 100644 +--- a/string/test-memcpy.c ++++ b/string/test-memcpy.c +@@ -212,6 +212,50 @@ do_random_tests (void) + } + } + ++static void ++do_test1 (void) ++{ ++ size_t size = 0x100000; ++ void *large_buf; ++ ++ large_buf = mmap (NULL, size * 2 + page_size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANON, -1, 0); ++ if (large_buf == MAP_FAILED) ++ { ++ puts ("Failed to allocat large_buf, skipping do_test1"); ++ return; ++ } ++ ++ if (mprotect (large_buf + size, page_size, PROT_NONE)) ++ error (EXIT_FAILURE, errno, "mprotect failed"); ++ ++ size_t arrary_size = size / sizeof (uint32_t); ++ uint32_t *dest = large_buf; ++ uint32_t *src = large_buf + size + page_size; ++ size_t i; ++ ++ for (i = 0; i < arrary_size; i++) ++ src[i] = (uint32_t) i; ++ ++ FOR_EACH_IMPL (impl, 0) ++ { ++ memset (dest, -1, size); ++ CALL (impl, (char *) dest, (char *) src, size); ++ for (i = 0; i < arrary_size; i++) ++ if (dest[i] != src[i]) ++ { ++ error (0, 0, ++ "Wrong result in function %s dst \"%p\" src \"%p\" offset \"%zd\"", ++ impl->name, dest, src, i); ++ ret = 1; ++ break; ++ } ++ } ++ ++ munmap ((void *) dest, size); ++ munmap ((void *) src, size); ++} ++ + int + test_main (void) + { +@@ -253,6 +297,9 @@ test_main (void) + do_test (0, 0, getpagesize ()); + + do_random_tests (); ++ ++ do_test1 (); ++ + return ret; + } + +diff --git a/string/test-memmove.c b/string/test-memmove.c +index edc7a4c3bf..64e3651ba4 100644 +--- a/string/test-memmove.c ++++ b/string/test-memmove.c +@@ -24,6 +24,7 @@ + # define TEST_NAME "memmove" + #endif + #include "test-string.h" ++#include + + char *simple_memmove (char *, const char *, size_t); + +@@ -245,6 +246,60 @@ do_random_tests (void) + } + } + ++static void ++do_test2 (void) ++{ ++ size_t size = 0x20000000; ++ uint32_t * large_buf; ++ ++ large_buf = mmap ((void*) 0x70000000, size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANON, -1, 0); ++ ++ if (large_buf == MAP_FAILED) ++ error (EXIT_UNSUPPORTED, errno, "Large mmap failed"); ++ ++ if ((uintptr_t) large_buf > 0x80000000 - 128 ++ || 0x80000000 - (uintptr_t) large_buf > 0x20000000) ++ { ++ error (0, 0, "Large mmap allocated improperly"); ++ ret = EXIT_UNSUPPORTED; ++ munmap ((void *) large_buf, size); ++ return; ++ } ++ ++ size_t bytes_move = 0x80000000 - (uintptr_t) large_buf; ++ size_t arr_size = bytes_move / sizeof (uint32_t); ++ size_t i; ++ ++ FOR_EACH_IMPL (impl, 0) ++ { ++ for (i = 0; i < arr_size; i++) ++ large_buf[i] = (uint32_t) i; ++ ++ uint32_t * dst = &large_buf[33]; ++ ++#ifdef TEST_BCOPY ++ CALL (impl, (char *) large_buf, (char *) dst, bytes_move); ++#else ++ CALL (impl, (char *) dst, (char *) large_buf, bytes_move); ++#endif ++ ++ for (i = 0; i < arr_size; i++) ++ { ++ if (dst[i] != (uint32_t) i) ++ { ++ error (0, 0, ++ "Wrong result in function %s dst \"%p\" src \"%p\" offset \"%zd\"", ++ impl->name, dst, large_buf, i); ++ ret = 1; ++ break; ++ } ++ } ++ } ++ ++ munmap ((void *) large_buf, size); ++} ++ + int + test_main (void) + { +@@ -284,6 +339,9 @@ test_main (void) + } + + do_random_tests (); ++ ++ do_test2 (); ++ + return ret; + } + +diff --git a/string/test-mempcpy.c b/string/test-mempcpy.c +index c08fba895e..d98ecdd2d9 100644 +--- a/string/test-mempcpy.c ++++ b/string/test-mempcpy.c +@@ -18,6 +18,7 @@ + . */ + + #define MEMCPY_RESULT(dst, len) (dst) + (len) ++#define MIN_PAGE_SIZE 131072 + #define TEST_MAIN + #define TEST_NAME "mempcpy" + #include "test-string.h" +diff --git a/sunrpc/rpc_common.c b/sunrpc/rpc_common.c +index 710191163c..2d42827a87 100644 +--- a/sunrpc/rpc_common.c ++++ b/sunrpc/rpc_common.c +@@ -46,7 +46,14 @@ + the variable is declared. So we use the section attribute. */ + struct opaque_auth _null_auth __attribute__ ((nocommon)); + libc_hidden_nolink_sunrpc (_null_auth, GLIBC_2_0) +-fd_set svc_fdset; +-struct rpc_createerr rpc_createerr; +-struct pollfd *svc_pollfd; +-int svc_max_pollfd; ++ ++/* The variables need the nocommon attribute, so that it is possible ++ to create aliases and specify symbol versions. */ ++fd_set svc_fdset __attribute__ ((nocommon)); ++libc_hidden_nolink_sunrpc (svc_fdset, GLIBC_2_0) ++struct rpc_createerr rpc_createerr __attribute__ ((nocommon)); ++libc_hidden_nolink_sunrpc (rpc_createerr, GLIBC_2_0) ++struct pollfd *svc_pollfd __attribute__ ((nocommon)); ++libc_hidden_nolink_sunrpc (svc_pollfd, GLIBC_2_2) ++int svc_max_pollfd __attribute__ ((nocommon)); ++libc_hidden_nolink_sunrpc (svc_max_pollfd, GLIBC_2_2) +diff --git a/sunrpc/svcauth_des.c b/sunrpc/svcauth_des.c +index f99a5a324f..9ce4804239 100644 +--- a/sunrpc/svcauth_des.c ++++ b/sunrpc/svcauth_des.c +@@ -87,16 +87,21 @@ static void cache_ref (uint32_t sid); /* note that sid was ref'd */ + + static void invalidate (char *cred); /* invalidate entry in cache */ + +-/* +- * cache statistics +- */ ++/* Cache statistics. Accidental historic export without a matching ++ declaration in any header file. */ ++#ifndef SHARED ++static ++#endif + struct + { + u_long ncachehits; /* times cache hit, and is not replay */ + u_long ncachereplays; /* times cache hit, and is replay */ + u_long ncachemisses; /* times cache missed */ + } +-svcauthdes_stats; ++svcauthdes_stats __attribute__ ((nocommon)); ++#ifdef SHARED ++compat_symbol (libc, svcauthdes_stats, svcauthdes_stats, GLIBC_2_0); ++#endif + + /* + * Service side authenticator for AUTH_DES +diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps +index 862a74e09d..9d1c35c605 100644 +--- a/sysdeps/i386/fpu/libm-test-ulps ++++ b/sysdeps/i386/fpu/libm-test-ulps +@@ -281,20 +281,20 @@ ldouble: 1 + + Function: Real part of "cacos": + double: 1 +-float: 1 ++float: 2 + float128: 2 + idouble: 1 +-ifloat: 1 ++ifloat: 2 + ifloat128: 2 + ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "cacos": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 +@@ -360,21 +360,21 @@ ildouble: 7 + ldouble: 7 + + Function: Real part of "cacosh": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: Imaginary part of "cacosh": + double: 1 +-float: 1 ++float: 2 + float128: 2 + idouble: 1 +-ifloat: 1 ++ifloat: 2 + ifloat128: 2 + ildouble: 1 + ldouble: 1 +@@ -420,10 +420,10 @@ ildouble: 2 + ldouble: 2 + + Function: Real part of "cacosh_upward": +-double: 4 ++double: 5 + float: 4 + float128: 6 +-idouble: 4 ++idouble: 5 + ifloat: 4 + ifloat128: 6 + ildouble: 5 +@@ -488,11 +488,11 @@ ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "casin": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 +@@ -558,11 +558,11 @@ ildouble: 7 + ldouble: 7 + + Function: Real part of "casinh": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 +@@ -774,11 +774,11 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "catanh_upward": +-double: 2 +-float: 2 ++double: 4 ++float: 4 + float128: 4 +-idouble: 2 +-ifloat: 2 ++idouble: 4 ++ifloat: 4 + ifloat128: 4 + ildouble: 4 + ldouble: 4 +@@ -875,10 +875,10 @@ ldouble: 3 + + Function: Real part of "ccos_towardzero": + double: 1 +-float: 1 ++float: 2 + float128: 2 + idouble: 1 +-ifloat: 1 ++ifloat: 2 + ifloat128: 2 + ildouble: 3 + ldouble: 3 +@@ -934,10 +934,10 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "ccosh_downward": +-double: 1 ++double: 2 + float: 2 + float128: 2 +-idouble: 1 ++idouble: 2 + ifloat: 2 + ifloat128: 2 + ildouble: 3 +@@ -954,11 +954,11 @@ ildouble: 3 + ldouble: 3 + + Function: Real part of "ccosh_towardzero": +-double: 1 +-float: 2 ++double: 2 ++float: 3 + float128: 2 +-idouble: 1 +-ifloat: 2 ++idouble: 2 ++ifloat: 3 + ifloat128: 2 + ildouble: 3 + ldouble: 3 +@@ -1075,10 +1075,10 @@ ldouble: 3 + + Function: Real part of "clog": + double: 2 +-float: 1 ++float: 3 + float128: 2 + idouble: 2 +-ifloat: 1 ++ifloat: 3 + ifloat128: 2 + ildouble: 3 + ldouble: 3 +@@ -1092,79 +1092,81 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "clog10": +-double: 2 +-float: 2 ++double: 3 ++float: 4 + float128: 2 +-idouble: 2 +-ifloat: 2 ++idouble: 3 ++ifloat: 4 + ifloat128: 2 + ildouble: 4 + ldouble: 4 + + Function: Imaginary part of "clog10": +-double: 1 ++double: 2 ++float: 1 + float128: 2 +-idouble: 1 ++idouble: 2 ++ifloat: 1 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: Real part of "clog10_downward": +-double: 3 +-float: 3 ++double: 4 ++float: 4 + float128: 3 +-idouble: 3 +-ifloat: 3 ++idouble: 4 ++ifloat: 4 + ifloat128: 3 + ildouble: 8 + ldouble: 8 + + Function: Imaginary part of "clog10_downward": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: Real part of "clog10_towardzero": +-double: 3 +-float: 3 ++double: 5 ++float: 5 + float128: 4 +-idouble: 3 +-ifloat: 3 ++idouble: 5 ++ifloat: 5 + ifloat128: 4 + ildouble: 8 + ldouble: 8 + + Function: Imaginary part of "clog10_towardzero": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: Real part of "clog10_upward": +-double: 3 +-float: 3 ++double: 4 ++float: 5 + float128: 4 +-idouble: 3 +-ifloat: 3 ++idouble: 4 ++ifloat: 5 + ifloat128: 4 + ildouble: 7 + ldouble: 7 + + Function: Imaginary part of "clog10_upward": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 3 + ldouble: 3 +@@ -1191,10 +1193,10 @@ ldouble: 1 + + Function: Real part of "clog_towardzero": + double: 3 +-float: 3 ++float: 4 + float128: 3 + idouble: 3 +-ifloat: 3 ++ifloat: 4 + ifloat128: 3 + ildouble: 5 + ldouble: 5 +@@ -1230,8 +1232,10 @@ ildouble: 1 + ldouble: 1 + + Function: "cos": ++double: 1 + float: 1 + float128: 1 ++idouble: 1 + ifloat: 1 + ifloat128: 1 + ildouble: 1 +@@ -1462,7 +1466,9 @@ ildouble: 2 + ldouble: 2 + + Function: Real part of "csinh": ++float: 1 + float128: 1 ++ifloat: 1 + ifloat128: 1 + ildouble: 1 + ldouble: 1 +@@ -1478,10 +1484,10 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "csinh_downward": +-double: 1 ++double: 2 + float: 1 + float128: 2 +-idouble: 1 ++idouble: 2 + ifloat: 1 + ifloat128: 2 + ildouble: 3 +@@ -1498,11 +1504,11 @@ ildouble: 3 + ldouble: 3 + + Function: Real part of "csinh_towardzero": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 3 + ldouble: 3 +@@ -1538,79 +1544,81 @@ ildouble: 2 + ldouble: 2 + + Function: Real part of "csqrt": +-double: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: Imaginary part of "csqrt": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: Real part of "csqrt_downward": +-double: 1 +-float: 1 ++double: 4 ++float: 4 + float128: 4 +-idouble: 1 +-ifloat: 1 ++idouble: 4 ++ifloat: 4 + ifloat128: 4 + ildouble: 5 + ldouble: 5 + + Function: Imaginary part of "csqrt_downward": +-double: 1 +-float: 1 ++double: 3 ++float: 3 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 4 + ldouble: 4 + + Function: Real part of "csqrt_towardzero": +-double: 1 +-float: 1 ++double: 3 ++float: 3 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 4 + ldouble: 4 + + Function: Imaginary part of "csqrt_towardzero": +-double: 1 +-float: 1 ++double: 3 ++float: 3 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 4 + ldouble: 4 + + Function: Real part of "csqrt_upward": +-double: 1 +-float: 1 ++double: 4 ++float: 4 + float128: 4 +-idouble: 1 +-ifloat: 1 ++idouble: 4 ++ifloat: 4 + ifloat128: 4 + ildouble: 5 + ldouble: 5 + + Function: Imaginary part of "csqrt_upward": +-double: 1 +-float: 2 ++double: 3 ++float: 3 + float128: 3 +-idouble: 1 +-ifloat: 2 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 4 + ldouble: 4 +@@ -1626,21 +1634,21 @@ ildouble: 2 + ldouble: 2 + + Function: Imaginary part of "ctan": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 1 + ldouble: 1 + + Function: Real part of "ctan_downward": +-double: 1 +-float: 2 ++double: 6 ++float: 5 + float128: 4 +-idouble: 1 +-ifloat: 2 ++idouble: 6 ++ifloat: 5 + ifloat128: 4 + ildouble: 5 + ldouble: 5 +@@ -1656,11 +1664,11 @@ ildouble: 4 + ldouble: 4 + + Function: Real part of "ctan_towardzero": +-double: 3 +-float: 2 ++double: 5 ++float: 3 + float128: 4 +-idouble: 3 +-ifloat: 2 ++idouble: 5 ++ifloat: 3 + ifloat128: 4 + ildouble: 5 + ldouble: 5 +@@ -1677,10 +1685,10 @@ ldouble: 4 + + Function: Real part of "ctan_upward": + double: 3 +-float: 2 ++float: 4 + float128: 5 + idouble: 3 +-ifloat: 2 ++ifloat: 4 + ifloat128: 5 + ildouble: 3 + ldouble: 3 +@@ -1696,21 +1704,21 @@ ildouble: 3 + ldouble: 3 + + Function: Real part of "ctanh": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "ctanh": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 2 + ldouble: 2 +@@ -1726,11 +1734,11 @@ ildouble: 4 + ldouble: 4 + + Function: Imaginary part of "ctanh_downward": +-double: 2 +-float: 1 ++double: 6 ++float: 5 + float128: 4 +-idouble: 2 +-ifloat: 1 ++idouble: 6 ++ifloat: 5 + ifloat128: 4 + ildouble: 4 + ldouble: 4 +@@ -1746,31 +1754,31 @@ ildouble: 4 + ldouble: 4 + + Function: Imaginary part of "ctanh_towardzero": +-double: 2 +-float: 2 ++double: 5 ++float: 3 + float128: 3 +-idouble: 2 +-ifloat: 2 ++idouble: 5 ++ifloat: 3 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: Real part of "ctanh_upward": + double: 2 +-float: 1 ++float: 2 + float128: 5 + idouble: 2 +-ifloat: 1 ++ifloat: 2 + ifloat128: 5 + ildouble: 3 + ldouble: 3 + + Function: Imaginary part of "ctanh_upward": + double: 3 +-float: 2 ++float: 3 + float128: 5 + idouble: 3 +-ifloat: 2 ++ifloat: 3 + ifloat128: 5 + ildouble: 3 + ldouble: 3 +@@ -1816,41 +1824,41 @@ ildouble: 1 + ldouble: 1 + + Function: "erfc": +-double: 1 +-float: 1 ++double: 3 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 2 + ifloat128: 2 + ildouble: 3 + ldouble: 3 + + Function: "erfc_downward": +-double: 2 +-float: 3 ++double: 5 ++float: 6 + float128: 5 +-idouble: 2 +-ifloat: 3 ++idouble: 5 ++ifloat: 6 + ifloat128: 5 + ildouble: 4 + ldouble: 4 + + Function: "erfc_towardzero": +-double: 2 +-float: 2 ++double: 3 ++float: 4 + float128: 4 +-idouble: 2 +-ifloat: 2 ++idouble: 3 ++ifloat: 4 + ifloat128: 4 + ildouble: 4 + ldouble: 4 + + Function: "erfc_upward": +-double: 2 +-float: 3 ++double: 5 ++float: 6 + float128: 5 +-idouble: 2 +-ifloat: 3 ++idouble: 5 ++ifloat: 6 + ifloat128: 5 + ildouble: 5 + ldouble: 5 +@@ -1994,34 +2002,34 @@ ildouble: 4 + ldouble: 4 + + Function: "gamma": +-double: 3 ++double: 4 + float: 3 +-idouble: 3 ++idouble: 4 + ifloat: 3 + ildouble: 4 + ldouble: 4 + + Function: "gamma_downward": +-double: 4 ++double: 5 + float: 5 +-idouble: 4 ++idouble: 5 + ifloat: 5 + ildouble: 7 + ldouble: 7 + + Function: "gamma_towardzero": +-double: 4 +-float: 3 +-idouble: 4 +-ifloat: 3 ++double: 5 ++float: 4 ++idouble: 5 ++ifloat: 4 + ildouble: 7 + ldouble: 7 + + Function: "gamma_upward": +-double: 3 +-float: 4 +-idouble: 3 +-ifloat: 4 ++double: 5 ++float: 5 ++idouble: 5 ++ifloat: 5 + ildouble: 5 + ldouble: 5 + +@@ -2059,39 +2067,39 @@ ldouble: 1 + + Function: "j0": + double: 2 +-float: 1 ++float: 2 + float128: 2 + idouble: 2 +-ifloat: 1 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: "j0_downward": +-double: 1 +-float: 3 ++double: 2 ++float: 4 + float128: 4 +-idouble: 1 +-ifloat: 3 ++idouble: 2 ++ifloat: 4 + ifloat128: 4 + ildouble: 4 + ldouble: 4 + + Function: "j0_towardzero": +-double: 2 +-float: 1 ++double: 3 ++float: 2 + float128: 2 +-idouble: 2 +-ifloat: 1 ++idouble: 3 ++ifloat: 2 + ifloat128: 2 + ildouble: 5 + ldouble: 5 + + Function: "j0_upward": +-double: 2 ++double: 3 + float: 3 + float128: 5 +-idouble: 2 ++idouble: 3 + ifloat: 3 + ifloat128: 5 + ildouble: 4 +@@ -2108,111 +2116,111 @@ ildouble: 1 + ldouble: 1 + + Function: "j1_downward": +-double: 2 +-float: 2 ++double: 3 ++float: 3 + float128: 4 +-idouble: 2 +-ifloat: 2 ++idouble: 3 ++ifloat: 3 + ifloat128: 4 + ildouble: 4 + ldouble: 4 + + Function: "j1_towardzero": +-double: 2 ++double: 3 + float: 2 + float128: 4 +-idouble: 2 ++idouble: 3 + ifloat: 2 + ifloat128: 4 + ildouble: 4 + ldouble: 4 + + Function: "j1_upward": +-double: 2 +-float: 3 ++double: 3 ++float: 5 + float128: 3 +-idouble: 2 +-ifloat: 3 ++idouble: 3 ++ifloat: 5 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: "jn": +-double: 2 +-float: 3 ++double: 4 ++float: 4 + float128: 7 +-idouble: 2 +-ifloat: 3 ++idouble: 4 ++ifloat: 4 + ifloat128: 7 + ildouble: 4 + ldouble: 4 + + Function: "jn_downward": +-double: 2 +-float: 3 ++double: 5 ++float: 5 + float128: 8 +-idouble: 2 +-ifloat: 3 ++idouble: 5 ++ifloat: 5 + ifloat128: 8 + ildouble: 4 + ldouble: 4 + + Function: "jn_towardzero": +-double: 2 +-float: 3 ++double: 5 ++float: 5 + float128: 8 +-idouble: 2 +-ifloat: 3 ++idouble: 5 ++ifloat: 5 + ifloat128: 8 + ildouble: 5 + ldouble: 5 + + Function: "jn_upward": +-double: 2 +-float: 3 ++double: 5 ++float: 5 + float128: 7 +-idouble: 2 +-ifloat: 3 ++idouble: 5 ++ifloat: 5 + ifloat128: 7 + ildouble: 5 + ldouble: 5 + + Function: "lgamma": +-double: 3 ++double: 4 + float: 3 + float128: 5 +-idouble: 3 ++idouble: 4 + ifloat: 3 + ifloat128: 5 + ildouble: 4 + ldouble: 4 + + Function: "lgamma_downward": +-double: 4 ++double: 5 + float: 5 + float128: 8 +-idouble: 4 ++idouble: 5 + ifloat: 5 + ifloat128: 8 + ildouble: 7 + ldouble: 7 + + Function: "lgamma_towardzero": +-double: 4 +-float: 3 ++double: 5 ++float: 4 + float128: 5 +-idouble: 4 +-ifloat: 3 ++idouble: 5 ++ifloat: 4 + ifloat128: 5 + ildouble: 7 + ldouble: 7 + + Function: "lgamma_upward": +-double: 3 +-float: 4 ++double: 5 ++float: 5 + float128: 8 +-idouble: 3 +-ifloat: 4 ++idouble: 5 ++ifloat: 5 + ifloat128: 8 + ildouble: 5 + ldouble: 5 +@@ -2402,8 +2410,10 @@ ildouble: 4 + ldouble: 4 + + Function: "sin": ++double: 1 + float: 1 + float128: 1 ++idouble: 1 + ifloat: 1 + ifloat128: 1 + ildouble: 1 +@@ -2440,8 +2450,10 @@ ildouble: 3 + ldouble: 3 + + Function: "sincos": ++double: 1 + float: 1 + float128: 1 ++idouble: 1 + ifloat: 1 + ifloat128: 1 + ildouble: 1 +@@ -2478,39 +2490,41 @@ ildouble: 3 + ldouble: 3 + + Function: "sinh": +-double: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: "sinh_downward": +-double: 2 +-float: 1 ++double: 3 ++float: 3 + float128: 3 +-idouble: 2 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 5 + ldouble: 5 + + Function: "sinh_towardzero": + double: 2 +-float: 1 ++float: 2 + float128: 3 + idouble: 2 +-ifloat: 1 ++ifloat: 2 + ifloat128: 3 + ildouble: 4 + ldouble: 4 + + Function: "sinh_upward": + double: 4 +-float: 2 ++float: 3 + float128: 4 + idouble: 4 +-ifloat: 2 ++ifloat: 3 + ifloat128: 4 + ildouble: 5 + ldouble: 5 +@@ -2554,199 +2568,201 @@ ildouble: 2 + ldouble: 2 + + Function: "tanh": +-double: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 3 + ldouble: 3 + + Function: "tanh_downward": +-double: 1 +-float: 1 ++double: 3 ++float: 3 + float128: 4 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 4 + ildouble: 7 + ldouble: 4 + + Function: "tanh_towardzero": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: "tanh_upward": +-double: 1 +-float: 1 ++double: 3 ++float: 3 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 5 + ldouble: 4 + + Function: "tgamma": +-double: 3 +-float: 3 ++double: 5 ++float: 4 + float128: 4 +-idouble: 3 +-ifloat: 3 ++idouble: 5 ++ifloat: 4 + ifloat128: 4 + ildouble: 5 + ldouble: 5 + + Function: "tgamma_downward": +-double: 3 +-float: 3 ++double: 6 ++float: 5 + float128: 5 +-idouble: 3 +-ifloat: 3 ++idouble: 6 ++ifloat: 5 + ifloat128: 5 + ildouble: 5 + ldouble: 5 + + Function: "tgamma_towardzero": +-double: 3 +-float: 3 ++double: 6 ++float: 4 + float128: 5 +-idouble: 3 +-ifloat: 3 ++idouble: 6 ++ifloat: 4 + ifloat128: 5 + ildouble: 5 + ldouble: 5 + + Function: "tgamma_upward": +-double: 3 +-float: 3 ++double: 5 ++float: 4 + float128: 4 +-idouble: 3 +-ifloat: 3 ++idouble: 5 ++ifloat: 4 + ifloat128: 4 + ildouble: 5 + ldouble: 5 + + Function: "y0": +-double: 1 ++double: 2 + float: 1 + float128: 3 +-idouble: 1 ++idouble: 2 + ifloat: 1 + ifloat128: 3 + ildouble: 1 + ldouble: 1 + + Function: "y0_downward": +-double: 2 +-float: 3 ++double: 3 ++float: 4 + float128: 4 +-idouble: 2 +-ifloat: 3 ++idouble: 3 ++ifloat: 4 + ifloat128: 4 + ildouble: 5 + ldouble: 5 + + Function: "y0_towardzero": +-double: 2 ++double: 3 + float: 3 + float128: 3 +-idouble: 2 ++idouble: 3 + ifloat: 3 + ifloat128: 3 + ildouble: 5 + ldouble: 5 + + Function: "y0_upward": +-double: 1 +-float: 3 ++double: 3 ++float: 5 + float128: 3 +-idouble: 1 +-ifloat: 3 ++idouble: 3 ++ifloat: 5 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: "y1": +-double: 2 ++double: 3 + float: 2 + float128: 2 +-idouble: 2 ++idouble: 3 + ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: "y1_downward": +-double: 2 ++double: 3 + float: 3 + float128: 4 +-idouble: 2 ++idouble: 3 + ifloat: 3 + ifloat128: 4 + ildouble: 7 + ldouble: 7 + + Function: "y1_towardzero": +-double: 2 ++double: 3 + float: 3 + float128: 2 +-idouble: 2 ++idouble: 3 + ifloat: 3 + ifloat128: 2 + ildouble: 5 + ldouble: 5 + + Function: "y1_upward": +-double: 1 ++double: 7 + float: 3 + float128: 5 +-idouble: 1 ++idouble: 7 + ifloat: 3 + ifloat128: 5 + ildouble: 7 + ldouble: 7 + + Function: "yn": +-double: 2 ++double: 3 + float: 3 + float128: 5 +-idouble: 2 ++idouble: 3 + ifloat: 3 + ifloat128: 5 + ildouble: 4 + ldouble: 4 + + Function: "yn_downward": +-double: 2 +-float: 3 ++double: 3 ++float: 4 + float128: 5 +-idouble: 2 +-ifloat: 3 ++idouble: 3 ++ifloat: 4 + ifloat128: 5 + ildouble: 5 + ldouble: 5 + + Function: "yn_towardzero": + double: 3 +-float: 3 ++float: 4 + float128: 5 + idouble: 3 +-ifloat: 3 ++ifloat: 4 + ifloat128: 5 + ildouble: 5 + ldouble: 5 + + Function: "yn_upward": +-double: 3 +-float: 3 ++double: 4 ++float: 5 + float128: 5 +-idouble: 3 +-ifloat: 3 ++idouble: 4 ++ifloat: 5 + ifloat128: 5 + ildouble: 4 + ldouble: 4 +diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps +index 8a862ef2eb..1bc39f47e8 100644 +--- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps ++++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps +@@ -281,20 +281,20 @@ ldouble: 1 + + Function: Real part of "cacos": + double: 1 +-float: 1 ++float: 2 + float128: 2 + idouble: 1 +-ifloat: 1 ++ifloat: 2 + ifloat128: 2 + ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "cacos": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 +@@ -360,21 +360,21 @@ ildouble: 7 + ldouble: 7 + + Function: Real part of "cacosh": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: Imaginary part of "cacosh": + double: 1 +-float: 1 ++float: 2 + float128: 2 + idouble: 1 +-ifloat: 1 ++ifloat: 2 + ifloat128: 2 + ildouble: 1 + ldouble: 1 +@@ -420,10 +420,10 @@ ildouble: 2 + ldouble: 2 + + Function: Real part of "cacosh_upward": +-double: 4 ++double: 5 + float: 4 + float128: 6 +-idouble: 4 ++idouble: 5 + ifloat: 4 + ifloat128: 6 + ildouble: 5 +@@ -488,11 +488,11 @@ ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "casin": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 +@@ -558,11 +558,11 @@ ildouble: 7 + ldouble: 7 + + Function: Real part of "casinh": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 +@@ -774,11 +774,11 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "catanh_upward": +-double: 2 +-float: 2 ++double: 4 ++float: 4 + float128: 4 +-idouble: 2 +-ifloat: 2 ++idouble: 4 ++ifloat: 4 + ifloat128: 4 + ildouble: 4 + ldouble: 4 +@@ -875,10 +875,10 @@ ldouble: 3 + + Function: Real part of "ccos_towardzero": + double: 1 +-float: 1 ++float: 2 + float128: 2 + idouble: 1 +-ifloat: 1 ++ifloat: 2 + ifloat128: 2 + ildouble: 3 + ldouble: 3 +@@ -934,10 +934,10 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "ccosh_downward": +-double: 1 ++double: 2 + float: 2 + float128: 2 +-idouble: 1 ++idouble: 2 + ifloat: 2 + ifloat128: 2 + ildouble: 3 +@@ -954,11 +954,11 @@ ildouble: 3 + ldouble: 3 + + Function: Real part of "ccosh_towardzero": +-double: 1 +-float: 2 ++double: 2 ++float: 3 + float128: 2 +-idouble: 1 +-ifloat: 2 ++idouble: 2 ++ifloat: 3 + ifloat128: 2 + ildouble: 3 + ldouble: 3 +@@ -1075,10 +1075,10 @@ ldouble: 3 + + Function: Real part of "clog": + double: 2 +-float: 1 ++float: 3 + float128: 2 + idouble: 2 +-ifloat: 1 ++ifloat: 3 + ifloat128: 2 + ildouble: 3 + ldouble: 3 +@@ -1092,79 +1092,81 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "clog10": +-double: 2 +-float: 2 ++double: 3 ++float: 4 + float128: 2 +-idouble: 2 +-ifloat: 2 ++idouble: 3 ++ifloat: 4 + ifloat128: 2 + ildouble: 4 + ldouble: 4 + + Function: Imaginary part of "clog10": +-double: 1 ++double: 2 ++float: 1 + float128: 2 +-idouble: 1 ++idouble: 2 ++ifloat: 1 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: Real part of "clog10_downward": +-double: 3 +-float: 3 ++double: 4 ++float: 4 + float128: 3 +-idouble: 3 +-ifloat: 3 ++idouble: 4 ++ifloat: 4 + ifloat128: 3 + ildouble: 8 + ldouble: 8 + + Function: Imaginary part of "clog10_downward": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: Real part of "clog10_towardzero": +-double: 3 +-float: 3 ++double: 5 ++float: 5 + float128: 4 +-idouble: 3 +-ifloat: 3 ++idouble: 5 ++ifloat: 5 + ifloat128: 4 + ildouble: 8 + ldouble: 8 + + Function: Imaginary part of "clog10_towardzero": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: Real part of "clog10_upward": +-double: 3 +-float: 3 ++double: 4 ++float: 5 + float128: 4 +-idouble: 3 +-ifloat: 3 ++idouble: 4 ++ifloat: 5 + ifloat128: 4 + ildouble: 8 + ldouble: 8 + + Function: Imaginary part of "clog10_upward": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 3 + ldouble: 3 +@@ -1191,10 +1193,10 @@ ldouble: 1 + + Function: Real part of "clog_towardzero": + double: 3 +-float: 3 ++float: 4 + float128: 3 + idouble: 3 +-ifloat: 3 ++ifloat: 4 + ifloat128: 3 + ildouble: 5 + ldouble: 5 +@@ -1230,7 +1232,9 @@ ildouble: 1 + ldouble: 1 + + Function: "cos": ++double: 1 + float128: 1 ++idouble: 1 + ifloat128: 1 + ildouble: 1 + ldouble: 1 +@@ -1478,10 +1482,10 @@ ildouble: 1 + ldouble: 1 + + Function: Real part of "csinh_downward": +-double: 1 ++double: 2 + float: 2 + float128: 2 +-idouble: 1 ++idouble: 2 + ifloat: 2 + ifloat128: 2 + ildouble: 3 +@@ -1498,10 +1502,10 @@ ildouble: 3 + ldouble: 3 + + Function: Real part of "csinh_towardzero": +-double: 1 ++double: 2 + float: 2 + float128: 2 +-idouble: 1 ++idouble: 2 + ifloat: 2 + ifloat128: 2 + ildouble: 3 +@@ -1538,79 +1542,81 @@ ildouble: 3 + ldouble: 3 + + Function: Real part of "csqrt": +-double: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: Imaginary part of "csqrt": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: Real part of "csqrt_downward": +-double: 1 +-float: 1 ++double: 4 ++float: 4 + float128: 4 +-idouble: 1 +-ifloat: 1 ++idouble: 4 ++ifloat: 4 + ifloat128: 4 + ildouble: 5 + ldouble: 5 + + Function: Imaginary part of "csqrt_downward": +-double: 1 +-float: 1 ++double: 3 ++float: 3 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 4 + ldouble: 4 + + Function: Real part of "csqrt_towardzero": +-double: 1 +-float: 1 ++double: 3 ++float: 3 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 4 + ldouble: 4 + + Function: Imaginary part of "csqrt_towardzero": +-double: 1 +-float: 1 ++double: 3 ++float: 3 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 4 + ldouble: 4 + + Function: Real part of "csqrt_upward": +-double: 1 +-float: 1 ++double: 4 ++float: 4 + float128: 4 +-idouble: 1 +-ifloat: 1 ++idouble: 4 ++ifloat: 4 + ifloat128: 4 + ildouble: 5 + ldouble: 5 + + Function: Imaginary part of "csqrt_upward": +-double: 1 +-float: 2 ++double: 3 ++float: 3 + float128: 3 +-idouble: 1 +-ifloat: 2 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 4 + ldouble: 4 +@@ -1626,21 +1632,21 @@ ildouble: 2 + ldouble: 2 + + Function: Imaginary part of "ctan": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 1 + ldouble: 1 + + Function: Real part of "ctan_downward": +-double: 1 +-float: 2 ++double: 6 ++float: 5 + float128: 4 +-idouble: 1 +-ifloat: 2 ++idouble: 6 ++ifloat: 5 + ifloat128: 4 + ildouble: 5 + ldouble: 5 +@@ -1656,31 +1662,31 @@ ildouble: 4 + ldouble: 4 + + Function: Real part of "ctan_towardzero": +-double: 3 +-float: 1 ++double: 5 ++float: 3 + float128: 4 +-idouble: 3 +-ifloat: 1 ++idouble: 5 ++ifloat: 3 + ifloat128: 4 + ildouble: 5 + ldouble: 5 + + Function: Imaginary part of "ctan_towardzero": + double: 2 +-float: 1 ++float: 2 + float128: 5 + idouble: 2 +-ifloat: 1 ++ifloat: 2 + ifloat128: 5 + ildouble: 4 + ldouble: 4 + + Function: Real part of "ctan_upward": + double: 3 +-float: 2 ++float: 4 + float128: 5 + idouble: 3 +-ifloat: 2 ++ifloat: 4 + ifloat128: 5 + ildouble: 3 + ldouble: 3 +@@ -1696,21 +1702,21 @@ ildouble: 3 + ldouble: 3 + + Function: Real part of "ctanh": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 1 + ldouble: 1 + + Function: Imaginary part of "ctanh": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 2 + ldouble: 2 +@@ -1726,51 +1732,51 @@ ildouble: 4 + ldouble: 4 + + Function: Imaginary part of "ctanh_downward": +-double: 2 +-float: 1 ++double: 6 ++float: 5 + float128: 4 +-idouble: 2 +-ifloat: 1 ++idouble: 6 ++ifloat: 5 + ifloat128: 4 + ildouble: 4 + ldouble: 4 + + Function: Real part of "ctanh_towardzero": + double: 2 +-float: 1 ++float: 2 + float128: 5 + idouble: 2 +-ifloat: 1 ++ifloat: 2 + ifloat128: 5 + ildouble: 4 + ldouble: 4 + + Function: Imaginary part of "ctanh_towardzero": +-double: 2 +-float: 1 ++double: 5 ++float: 3 + float128: 3 +-idouble: 2 +-ifloat: 1 ++idouble: 5 ++ifloat: 3 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: Real part of "ctanh_upward": + double: 2 +-float: 1 ++float: 2 + float128: 5 + idouble: 2 +-ifloat: 1 ++ifloat: 2 + ifloat128: 5 + ildouble: 3 + ldouble: 3 + + Function: Imaginary part of "ctanh_upward": + double: 3 +-float: 2 ++float: 3 + float128: 5 + idouble: 3 +-ifloat: 2 ++ifloat: 3 + ifloat128: 5 + ildouble: 3 + ldouble: 3 +@@ -1816,41 +1822,41 @@ ildouble: 1 + ldouble: 1 + + Function: "erfc": +-double: 1 +-float: 1 ++double: 3 ++float: 2 + float128: 2 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 2 + ifloat128: 2 + ildouble: 3 + ldouble: 3 + + Function: "erfc_downward": +-double: 2 +-float: 3 ++double: 5 ++float: 6 + float128: 5 +-idouble: 2 +-ifloat: 3 ++idouble: 5 ++ifloat: 6 + ifloat128: 5 + ildouble: 4 + ldouble: 4 + + Function: "erfc_towardzero": +-double: 2 +-float: 2 ++double: 3 ++float: 4 + float128: 4 +-idouble: 2 +-ifloat: 2 ++idouble: 3 ++ifloat: 4 + ifloat128: 4 + ildouble: 4 + ldouble: 4 + + Function: "erfc_upward": +-double: 2 +-float: 3 ++double: 5 ++float: 6 + float128: 5 +-idouble: 2 +-ifloat: 3 ++idouble: 5 ++ifloat: 6 + ifloat128: 5 + ildouble: 5 + ldouble: 5 +@@ -1994,34 +2000,34 @@ ildouble: 4 + ldouble: 4 + + Function: "gamma": +-double: 3 ++double: 4 + float: 3 +-idouble: 3 ++idouble: 4 + ifloat: 3 + ildouble: 4 + ldouble: 4 + + Function: "gamma_downward": +-double: 4 ++double: 5 + float: 5 +-idouble: 4 ++idouble: 5 + ifloat: 5 + ildouble: 7 + ldouble: 7 + + Function: "gamma_towardzero": +-double: 4 ++double: 5 + float: 4 +-idouble: 4 ++idouble: 5 + ifloat: 4 + ildouble: 7 + ldouble: 7 + + Function: "gamma_upward": +-double: 3 +-float: 4 +-idouble: 3 +-ifloat: 4 ++double: 5 ++float: 5 ++idouble: 5 ++ifloat: 5 + ildouble: 6 + ldouble: 6 + +@@ -2059,39 +2065,39 @@ ldouble: 1 + + Function: "j0": + double: 2 +-float: 1 ++float: 2 + float128: 2 + idouble: 2 +-ifloat: 1 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: "j0_downward": +-double: 1 +-float: 3 ++double: 2 ++float: 4 + float128: 4 +-idouble: 1 +-ifloat: 3 ++idouble: 2 ++ifloat: 4 + ifloat128: 4 + ildouble: 4 + ldouble: 4 + + Function: "j0_towardzero": +-double: 2 +-float: 1 ++double: 3 ++float: 2 + float128: 2 +-idouble: 2 +-ifloat: 1 ++idouble: 3 ++ifloat: 2 + ifloat128: 2 + ildouble: 5 + ldouble: 5 + + Function: "j0_upward": +-double: 2 ++double: 3 + float: 3 + float128: 5 +-idouble: 2 ++idouble: 3 + ifloat: 3 + ifloat128: 5 + ildouble: 4 +@@ -2099,120 +2105,120 @@ ldouble: 4 + + Function: "j1": + double: 2 +-float: 1 ++float: 2 + float128: 4 + idouble: 2 +-ifloat: 1 ++ifloat: 2 + ifloat128: 4 + ildouble: 1 + ldouble: 1 + + Function: "j1_downward": +-double: 2 +-float: 2 ++double: 3 ++float: 3 + float128: 4 +-idouble: 2 +-ifloat: 2 ++idouble: 3 ++ifloat: 3 + ifloat128: 4 + ildouble: 4 + ldouble: 4 + + Function: "j1_towardzero": +-double: 2 ++double: 3 + float: 2 + float128: 4 +-idouble: 2 ++idouble: 3 + ifloat: 2 + ifloat128: 4 + ildouble: 4 + ldouble: 4 + + Function: "j1_upward": +-double: 2 +-float: 3 ++double: 3 ++float: 5 + float128: 3 +-idouble: 2 +-ifloat: 3 ++idouble: 3 ++ifloat: 5 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: "jn": +-double: 2 +-float: 3 ++double: 4 ++float: 4 + float128: 7 +-idouble: 2 +-ifloat: 3 ++idouble: 4 ++ifloat: 4 + ifloat128: 7 + ildouble: 4 + ldouble: 4 + + Function: "jn_downward": +-double: 2 +-float: 3 ++double: 5 ++float: 5 + float128: 8 +-idouble: 2 +-ifloat: 3 ++idouble: 5 ++ifloat: 5 + ifloat128: 8 + ildouble: 4 + ldouble: 4 + + Function: "jn_towardzero": +-double: 2 +-float: 3 ++double: 5 ++float: 5 + float128: 8 +-idouble: 2 +-ifloat: 3 ++idouble: 5 ++ifloat: 5 + ifloat128: 8 + ildouble: 5 + ldouble: 5 + + Function: "jn_upward": +-double: 2 +-float: 3 ++double: 5 ++float: 5 + float128: 7 +-idouble: 2 +-ifloat: 3 ++idouble: 5 ++ifloat: 5 + ifloat128: 7 + ildouble: 5 + ldouble: 5 + + Function: "lgamma": +-double: 3 ++double: 4 + float: 3 + float128: 5 +-idouble: 3 ++idouble: 4 + ifloat: 3 + ifloat128: 5 + ildouble: 4 + ldouble: 4 + + Function: "lgamma_downward": +-double: 4 ++double: 5 + float: 5 + float128: 8 +-idouble: 4 ++idouble: 5 + ifloat: 5 + ifloat128: 8 + ildouble: 7 + ldouble: 7 + + Function: "lgamma_towardzero": +-double: 4 ++double: 5 + float: 4 + float128: 5 +-idouble: 4 ++idouble: 5 + ifloat: 4 + ifloat128: 5 + ildouble: 7 + ldouble: 7 + + Function: "lgamma_upward": +-double: 3 +-float: 4 ++double: 5 ++float: 5 + float128: 8 +-idouble: 3 +-ifloat: 4 ++idouble: 5 ++ifloat: 5 + ifloat128: 8 + ildouble: 6 + ldouble: 6 +@@ -2402,7 +2408,9 @@ ildouble: 4 + ldouble: 4 + + Function: "sin": ++double: 1 + float128: 1 ++idouble: 1 + ifloat128: 1 + ildouble: 1 + ldouble: 1 +@@ -2432,7 +2440,9 @@ ildouble: 3 + ldouble: 3 + + Function: "sincos": ++double: 1 + float128: 1 ++idouble: 1 + ifloat128: 1 + ildouble: 1 + ldouble: 1 +@@ -2462,39 +2472,41 @@ ildouble: 3 + ldouble: 3 + + Function: "sinh": +-double: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: "sinh_downward": +-double: 2 +-float: 1 ++double: 3 ++float: 3 + float128: 3 +-idouble: 2 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 5 + ldouble: 5 + + Function: "sinh_towardzero": + double: 2 +-float: 1 ++float: 2 + float128: 3 + idouble: 2 +-ifloat: 1 ++ifloat: 2 + ifloat128: 3 + ildouble: 4 + ldouble: 4 + + Function: "sinh_upward": + double: 4 +-float: 2 ++float: 3 + float128: 4 + idouble: 4 +-ifloat: 2 ++ifloat: 3 + ifloat128: 4 + ildouble: 5 + ldouble: 5 +@@ -2538,199 +2550,201 @@ ildouble: 2 + ldouble: 2 + + Function: "tanh": +-double: 1 ++double: 2 ++float: 2 + float128: 2 +-idouble: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 2 + ildouble: 3 + ldouble: 3 + + Function: "tanh_downward": +-double: 1 +-float: 1 ++double: 3 ++float: 3 + float128: 4 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 4 + ildouble: 7 + ldouble: 4 + + Function: "tanh_towardzero": +-double: 1 +-float: 1 ++double: 2 ++float: 2 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 2 ++ifloat: 2 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: "tanh_upward": +-double: 1 +-float: 1 ++double: 3 ++float: 3 + float128: 3 +-idouble: 1 +-ifloat: 1 ++idouble: 3 ++ifloat: 3 + ifloat128: 3 + ildouble: 5 + ldouble: 4 + + Function: "tgamma": +-double: 3 +-float: 3 ++double: 5 ++float: 4 + float128: 4 +-idouble: 3 +-ifloat: 3 ++idouble: 5 ++ifloat: 4 + ifloat128: 4 + ildouble: 5 + ldouble: 5 + + Function: "tgamma_downward": +-double: 3 ++double: 6 + float: 5 + float128: 5 +-idouble: 3 ++idouble: 6 + ifloat: 5 + ifloat128: 5 + ildouble: 5 + ldouble: 5 + + Function: "tgamma_towardzero": +-double: 4 ++double: 6 + float: 5 + float128: 5 +-idouble: 4 ++idouble: 6 + ifloat: 5 + ifloat128: 5 + ildouble: 5 + ldouble: 5 + + Function: "tgamma_upward": +-double: 4 ++double: 5 + float: 6 + float128: 4 +-idouble: 4 ++idouble: 5 + ifloat: 6 + ifloat128: 4 + ildouble: 5 + ldouble: 5 + + Function: "y0": +-double: 1 ++double: 2 + float: 1 + float128: 3 +-idouble: 1 ++idouble: 2 + ifloat: 1 + ifloat128: 3 + ildouble: 1 + ldouble: 1 + + Function: "y0_downward": +-double: 2 +-float: 2 ++double: 3 ++float: 4 + float128: 4 +-idouble: 2 +-ifloat: 2 ++idouble: 3 ++ifloat: 4 + ifloat128: 4 + ildouble: 5 + ldouble: 5 + + Function: "y0_towardzero": +-double: 2 ++double: 3 + float: 3 + float128: 3 +-idouble: 2 ++idouble: 3 + ifloat: 3 + ifloat128: 3 + ildouble: 5 + ldouble: 5 + + Function: "y0_upward": +-double: 1 +-float: 3 ++double: 3 ++float: 5 + float128: 3 +-idouble: 1 +-ifloat: 3 ++idouble: 3 ++ifloat: 5 + ifloat128: 3 + ildouble: 3 + ldouble: 3 + + Function: "y1": +-double: 2 ++double: 3 + float: 2 + float128: 2 +-idouble: 2 ++idouble: 3 + ifloat: 2 + ifloat128: 2 + ildouble: 2 + ldouble: 2 + + Function: "y1_downward": +-double: 2 +-float: 2 ++double: 3 ++float: 4 + float128: 4 +-idouble: 2 +-ifloat: 2 ++idouble: 3 ++ifloat: 4 + ifloat128: 4 + ildouble: 7 + ldouble: 7 + + Function: "y1_towardzero": +-double: 2 +-float: 2 ++double: 3 ++float: 3 + float128: 2 +-idouble: 2 +-ifloat: 2 ++idouble: 3 ++ifloat: 3 + ifloat128: 2 + ildouble: 5 + ldouble: 5 + + Function: "y1_upward": +-double: 1 ++double: 7 + float: 3 + float128: 5 +-idouble: 1 ++idouble: 7 + ifloat: 3 + ifloat128: 5 + ildouble: 7 + ldouble: 7 + + Function: "yn": +-double: 2 ++double: 3 + float: 3 + float128: 5 +-idouble: 2 ++idouble: 3 + ifloat: 3 + ifloat128: 5 + ildouble: 4 + ldouble: 4 + + Function: "yn_downward": +-double: 2 +-float: 2 ++double: 3 ++float: 4 + float128: 5 +-idouble: 2 +-ifloat: 2 ++idouble: 3 ++ifloat: 4 + ifloat128: 5 + ildouble: 5 + ldouble: 5 + + Function: "yn_towardzero": + double: 3 +-float: 3 ++float: 4 + float128: 5 + idouble: 3 +-ifloat: 3 ++ifloat: 4 + ifloat128: 5 + ildouble: 5 + ldouble: 5 + + Function: "yn_upward": +-double: 3 +-float: 3 ++double: 4 ++float: 5 + float128: 5 +-idouble: 3 +-ifloat: 3 ++idouble: 4 ++ifloat: 5 + ifloat128: 5 + ildouble: 4 + ldouble: 4 +diff --git a/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S b/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S +index 9c3bbe7e17..9aa17de99c 100644 +--- a/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S ++++ b/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S +@@ -72,7 +72,7 @@ ENTRY (MEMCPY) + cmp %edx, %eax + + # ifdef USE_AS_MEMMOVE +- jg L(check_forward) ++ ja L(check_forward) + + L(mm_len_0_or_more_backward): + /* Now do checks for lengths. We do [0..16], [16..32], [32..64], [64..128] +@@ -81,7 +81,7 @@ L(mm_len_0_or_more_backward): + jbe L(mm_len_0_16_bytes_backward) + + cmpl $32, %ecx +- jg L(mm_len_32_or_more_backward) ++ ja L(mm_len_32_or_more_backward) + + /* Copy [0..32] and return. */ + movdqu (%eax), %xmm0 +@@ -92,7 +92,7 @@ L(mm_len_0_or_more_backward): + + L(mm_len_32_or_more_backward): + cmpl $64, %ecx +- jg L(mm_len_64_or_more_backward) ++ ja L(mm_len_64_or_more_backward) + + /* Copy [0..64] and return. */ + movdqu (%eax), %xmm0 +@@ -107,7 +107,7 @@ L(mm_len_32_or_more_backward): + + L(mm_len_64_or_more_backward): + cmpl $128, %ecx +- jg L(mm_len_128_or_more_backward) ++ ja L(mm_len_128_or_more_backward) + + /* Copy [0..128] and return. */ + movdqu (%eax), %xmm0 +@@ -132,7 +132,7 @@ L(mm_len_128_or_more_backward): + add %ecx, %eax + cmp %edx, %eax + movl SRC(%esp), %eax +- jle L(forward) ++ jbe L(forward) + PUSH (%esi) + PUSH (%edi) + PUSH (%ebx) +@@ -269,7 +269,7 @@ L(check_forward): + add %edx, %ecx + cmp %eax, %ecx + movl LEN(%esp), %ecx +- jle L(forward) ++ jbe L(forward) + + /* Now do checks for lengths. We do [0..16], [0..32], [0..64], [0..128] + separately. */ +diff --git a/sysdeps/i386/i686/multiarch/strncmp-c.c b/sysdeps/i386/i686/multiarch/strncmp-c.c +index cc059da494..2e3eca9b2b 100644 +--- a/sysdeps/i386/i686/multiarch/strncmp-c.c ++++ b/sysdeps/i386/i686/multiarch/strncmp-c.c +@@ -1,4 +1,4 @@ +-#ifdef SHARED ++#if defined (SHARED) && IS_IN (libc) + # define STRNCMP __strncmp_ia32 + # undef libc_hidden_builtin_def + # define libc_hidden_builtin_def(name) \ +diff --git a/sysdeps/nptl/lowlevellock.h b/sysdeps/nptl/lowlevellock.h +index 8326e2805c..bfbda99940 100644 +--- a/sysdeps/nptl/lowlevellock.h ++++ b/sysdeps/nptl/lowlevellock.h +@@ -181,11 +181,14 @@ extern int __lll_timedlock_wait (int *futex, const struct timespec *, + thread ID while the clone is running and is reset to zero by the kernel + afterwards. The kernel up to version 3.16.3 does not use the private futex + operations for futex wake-up when the clone terminates. */ +-#define lll_wait_tid(tid) \ +- do { \ +- __typeof (tid) __tid; \ +- while ((__tid = (tid)) != 0) \ +- lll_futex_wait (&(tid), __tid, LLL_SHARED);\ ++#define lll_wait_tid(tid) \ ++ do { \ ++ __typeof (tid) __tid; \ ++ /* We need acquire MO here so that we synchronize \ ++ with the kernel's store to 0 when the clone \ ++ terminates. (see above) */ \ ++ while ((__tid = atomic_load_acquire (&(tid))) != 0) \ ++ lll_futex_wait (&(tid), __tid, LLL_SHARED); \ + } while (0) + + extern int __lll_timedwait_tid (int *, const struct timespec *) +diff --git a/sysdeps/posix/spawni.c b/sysdeps/posix/spawni.c +index 36bb5b4f78..b138ab4393 100644 +--- a/sysdeps/posix/spawni.c ++++ b/sysdeps/posix/spawni.c +@@ -310,6 +310,8 @@ __spawni (pid_t * pid, const char *file, + const posix_spawnattr_t * attrp, char *const argv[], + char *const envp[], int xflags) + { ++ /* It uses __execvpex to avoid run ENOEXEC in non compatibility mode (it ++ will be handled by maybe_script_execute). */ + return __spawnix (pid, file, acts, attrp, argv, envp, xflags, +- xflags & SPAWN_XFLAGS_USE_PATH ? __execvpe : __execve); ++ xflags & SPAWN_XFLAGS_USE_PATH ? __execvpex : __execve); + } +diff --git a/sysdeps/powerpc/powerpc32/sysdep.h b/sysdeps/powerpc/powerpc32/sysdep.h +index 8e32a2a131..5f1294ead3 100644 +--- a/sysdeps/powerpc/powerpc32/sysdep.h ++++ b/sysdeps/powerpc/powerpc32/sysdep.h +@@ -90,7 +90,7 @@ GOT_LABEL: ; \ + cfi_endproc; \ + ASM_SIZE_DIRECTIVE(name) + +-#if ! IS_IN(rtld) ++#if !IS_IN(rtld) && !defined(__SPE__) + # define ABORT_TRANSACTION_IMPL \ + cmpwi 2,0; \ + beq 1f; \ +diff --git a/sysdeps/powerpc/sysdep.h b/sysdeps/powerpc/sysdep.h +index 03db75fcb7..8a6d236caa 100644 +--- a/sysdeps/powerpc/sysdep.h ++++ b/sysdeps/powerpc/sysdep.h +@@ -174,7 +174,7 @@ + we abort transaction just before syscalls. + + [1] Documentation/powerpc/transactional_memory.txt [Syscalls] */ +-#if !IS_IN(rtld) ++#if !IS_IN(rtld) && !defined(__SPE__) + # define ABORT_TRANSACTION \ + ({ \ + if (THREAD_GET_TM_CAPABLE ()) \ +diff --git a/sysdeps/riscv/rvd/s_fmax.c b/sysdeps/riscv/rvd/s_fmax.c +index ef8f1344ce..22e91bfc4b 100644 +--- a/sysdeps/riscv/rvd/s_fmax.c ++++ b/sysdeps/riscv/rvd/s_fmax.c +@@ -17,12 +17,19 @@ + . */ + + #include ++#include + #include + + double + __fmax (double x, double y) + { +- asm ("fmax.d %0, %1, %2" : "=f" (x) : "f" (x), "f" (y)); +- return x; ++ double res; ++ ++ if (__glibc_unlikely ((_FCLASS (x) | _FCLASS (y)) & _FCLASS_SNAN)) ++ return x + y; ++ else ++ asm ("fmax.d %0, %1, %2" : "=f" (res) : "f" (x), "f" (y)); ++ ++ return res; + } + libm_alias_double (__fmax, fmax) +diff --git a/sysdeps/riscv/rvd/s_fmin.c b/sysdeps/riscv/rvd/s_fmin.c +index c6ff24cefb..7b35230cac 100644 +--- a/sysdeps/riscv/rvd/s_fmin.c ++++ b/sysdeps/riscv/rvd/s_fmin.c +@@ -17,12 +17,19 @@ + . */ + + #include ++#include + #include + + double + __fmin (double x, double y) + { +- asm ("fmin.d %0, %1, %2" : "=f" (x) : "f" (x), "f" (y)); +- return x; ++ double res; ++ ++ if (__glibc_unlikely ((_FCLASS (x) | _FCLASS (y)) & _FCLASS_SNAN)) ++ return x + y; ++ else ++ asm ("fmin.d %0, %1, %2" : "=f" (res) : "f" (x), "f" (y)); ++ ++ return res; + } + libm_alias_double (__fmin, fmin) +diff --git a/sysdeps/riscv/rvf/s_fmaxf.c b/sysdeps/riscv/rvf/s_fmaxf.c +index 3293f2f41c..63f7e3d664 100644 +--- a/sysdeps/riscv/rvf/s_fmaxf.c ++++ b/sysdeps/riscv/rvf/s_fmaxf.c +@@ -17,12 +17,19 @@ + . */ + + #include ++#include + #include + + float + __fmaxf (float x, float y) + { +- asm ("fmax.s %0, %1, %2" : "=f" (x) : "f" (x), "f" (y)); +- return x; ++ float res; ++ ++ if (__glibc_unlikely ((_FCLASS (x) | _FCLASS (y)) & _FCLASS_SNAN)) ++ return x + y; ++ else ++ asm ("fmax.s %0, %1, %2" : "=f" (res) : "f" (x), "f" (y)); ++ ++ return res; + } + libm_alias_float (__fmax, fmax) +diff --git a/sysdeps/riscv/rvf/s_fminf.c b/sysdeps/riscv/rvf/s_fminf.c +index e4411f04b2..82cca4e37d 100644 +--- a/sysdeps/riscv/rvf/s_fminf.c ++++ b/sysdeps/riscv/rvf/s_fminf.c +@@ -17,12 +17,19 @@ + . */ + + #include ++#include + #include + + float + __fminf (float x, float y) + { +- asm ("fmin.s %0, %1, %2" : "=f" (x) : "f" (x), "f" (y)); +- return x; ++ float res; ++ ++ if (__glibc_unlikely ((_FCLASS (x) | _FCLASS (y)) & _FCLASS_SNAN)) ++ return x + y; ++ else ++ asm ("fmin.s %0, %1, %2" : "=f" (res) : "f" (x), "f" (y)); ++ ++ return res; + } + libm_alias_float (__fmin, fmin) +diff --git a/sysdeps/riscv/tls-macros.h b/sysdeps/riscv/tls-macros.h +index 5433ed9d16..7f0dd926d0 100644 +--- a/sysdeps/riscv/tls-macros.h ++++ b/sysdeps/riscv/tls-macros.h +@@ -23,19 +23,9 @@ + #include + #include "dl-tls.h" + +-#define LOAD_GP \ +- ".option push\n\t" \ +- ".option norelax\n\t" \ +- "la gp, __global_pointer$\n\t" \ +- ".option pop\n\t" +- +-#define UNLOAD_GP +- + #define TLS_GD(x) \ + ({ void *__result; \ +- asm (LOAD_GP \ +- "la.tls.gd %0, " #x "\n\t" \ +- UNLOAD_GP \ ++ asm ("la.tls.gd %0, " #x "\n\t" \ + : "=r" (__result)); \ + __tls_get_addr (__result); }) + +@@ -43,19 +33,15 @@ + + #define TLS_IE(x) \ + ({ void *__result; \ +- asm (LOAD_GP \ +- "la.tls.ie %0, " #x "\n\t" \ ++ asm ("la.tls.ie %0, " #x "\n\t" \ + "add %0, %0, tp\n\t" \ +- UNLOAD_GP \ + : "=r" (__result)); \ + __result; }) + + #define TLS_LE(x) \ + ({ void *__result; \ +- asm (LOAD_GP \ +- "lui %0, %%tprel_hi(" #x ")\n\t" \ ++ asm ("lui %0, %%tprel_hi(" #x ")\n\t" \ + "add %0, %0, tp, %%tprel_add(" #x ")\n\t" \ + "addi %0, %0, %%tprel_lo(" #x ")\n\t" \ +- UNLOAD_GP \ + : "=r" (__result)); \ + __result; }) +diff --git a/sysdeps/sh/libm-test-ulps b/sysdeps/sh/libm-test-ulps +index da4224c2d6..11c5f3216d 100644 +--- a/sysdeps/sh/libm-test-ulps ++++ b/sysdeps/sh/libm-test-ulps +@@ -1,13 +1,31 @@ + # Begin of automatic generation + + # Maximal error of functions: +-Function: "acos_towardzero": ++Function: "acos": + float: 1 + ifloat: 1 + +-Function: "acosh": ++Function: "acos_towardzero": + double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 ++ ++Function: "acosh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "acosh_towardzero": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "asin": ++float: 1 ++ifloat: 1 + + Function: "asin_towardzero": + double: 1 +@@ -18,16 +36,55 @@ ifloat: 1 + Function: "asinh": + double: 1 + float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: "asinh_towardzero": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "atan": ++float: 1 + ifloat: 1 + + Function: "atan2": + float: 1 + ifloat: 1 + +-Function: "atanh": ++Function: "atan2_towardzero": ++double: 1 ++float: 2 ++idouble: 1 ++ifloat: 2 ++ ++Function: "atan_towardzero": ++double: 1 + float: 1 ++idouble: 1 + ifloat: 1 + ++Function: "atanh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "atanh_towardzero": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "cabs": ++double: 1 ++idouble: 1 ++ ++Function: "cabs_towardzero": ++double: 1 ++idouble: 1 ++ + Function: Real part of "cacos": + double: 1 + float: 2 +@@ -35,18 +92,52 @@ idouble: 1 + ifloat: 2 + + Function: Imaginary part of "cacos": +-double: 1 ++double: 2 + float: 2 +-idouble: 1 ++idouble: 2 ++ifloat: 2 ++ ++Function: Real part of "cacos_towardzero": ++double: 3 ++float: 2 ++idouble: 3 ++ifloat: 2 ++ ++Function: Imaginary part of "cacos_towardzero": ++double: 4 ++float: 2 ++idouble: 4 + ifloat: 2 + + Function: Real part of "cacosh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Imaginary part of "cacosh": + double: 1 + float: 2 + idouble: 1 + ifloat: 2 + +-Function: Imaginary part of "cacosh": ++Function: Real part of "cacosh_towardzero": ++double: 4 ++float: 2 ++idouble: 4 ++ifloat: 2 ++ ++Function: Imaginary part of "cacosh_towardzero": ++double: 3 ++float: 2 ++idouble: 3 ++ifloat: 2 ++ ++Function: "carg": ++float: 1 ++ifloat: 1 ++ ++Function: "carg_towardzero": + double: 1 + float: 2 + idouble: 1 +@@ -59,15 +150,27 @@ idouble: 1 + ifloat: 1 + + Function: Imaginary part of "casin": +-double: 1 ++double: 2 + float: 2 +-idouble: 1 ++idouble: 2 ++ifloat: 2 ++ ++Function: Real part of "casin_towardzero": ++double: 3 ++float: 1 ++idouble: 3 ++ifloat: 1 ++ ++Function: Imaginary part of "casin_towardzero": ++double: 4 ++float: 2 ++idouble: 4 + ifloat: 2 + + Function: Real part of "casinh": +-double: 1 ++double: 2 + float: 2 +-idouble: 1 ++idouble: 2 + ifloat: 2 + + Function: Imaginary part of "casinh": +@@ -76,8 +179,22 @@ float: 1 + idouble: 1 + ifloat: 1 + ++Function: Real part of "casinh_towardzero": ++double: 4 ++float: 2 ++idouble: 4 ++ifloat: 2 ++ ++Function: Imaginary part of "casinh_towardzero": ++double: 3 ++float: 1 ++idouble: 3 ++ifloat: 1 ++ + Function: Real part of "catan": ++double: 1 + float: 1 ++idouble: 1 + ifloat: 1 + + Function: Imaginary part of "catan": +@@ -86,6 +203,18 @@ float: 1 + idouble: 1 + ifloat: 1 + ++Function: Real part of "catan_towardzero": ++double: 1 ++float: 2 ++idouble: 1 ++ifloat: 2 ++ ++Function: Imaginary part of "catan_towardzero": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ + Function: Real part of "catanh": + double: 1 + float: 1 +@@ -93,13 +222,33 @@ idouble: 1 + ifloat: 1 + + Function: Imaginary part of "catanh": ++double: 1 + float: 1 ++idouble: 1 + ifloat: 1 + +-Function: "cbrt": ++Function: Real part of "catanh_towardzero": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Imaginary part of "catanh_towardzero": + double: 1 +-float: 1 ++float: 2 + idouble: 1 ++ifloat: 2 ++ ++Function: "cbrt": ++double: 3 ++float: 1 ++idouble: 3 ++ifloat: 1 ++ ++Function: "cbrt_towardzero": ++double: 3 ++float: 1 ++idouble: 3 + ifloat: 1 + + Function: Real part of "ccos": +@@ -114,6 +263,18 @@ float: 1 + idouble: 1 + ifloat: 1 + ++Function: Real part of "ccos_towardzero": ++double: 1 ++float: 2 ++idouble: 1 ++ifloat: 2 ++ ++Function: Imaginary part of "ccos_towardzero": ++double: 2 ++float: 3 ++idouble: 2 ++ifloat: 3 ++ + Function: Real part of "ccosh": + double: 1 + float: 1 +@@ -126,6 +287,18 @@ float: 1 + idouble: 1 + ifloat: 1 + ++Function: Real part of "ccosh_towardzero": ++double: 1 ++float: 3 ++idouble: 1 ++ifloat: 3 ++ ++Function: Imaginary part of "ccosh_towardzero": ++double: 2 ++float: 3 ++idouble: 2 ++ifloat: 3 ++ + Function: Real part of "cexp": + double: 2 + float: 1 +@@ -138,27 +311,63 @@ float: 2 + idouble: 1 + ifloat: 2 + +-Function: Real part of "clog": ++Function: Real part of "cexp_towardzero": + double: 1 +-float: 1 ++float: 2 + idouble: 1 +-ifloat: 1 ++ifloat: 2 ++ ++Function: Imaginary part of "cexp_towardzero": ++double: 1 ++float: 3 ++idouble: 1 ++ifloat: 3 ++ ++Function: Real part of "clog": ++double: 3 ++float: 3 ++idouble: 3 ++ifloat: 3 + + Function: Imaginary part of "clog": + float: 1 + ifloat: 1 + + Function: Real part of "clog10": ++double: 3 ++float: 4 ++idouble: 3 ++ifloat: 4 ++ ++Function: Imaginary part of "clog10": + double: 2 + float: 2 + idouble: 2 + ifloat: 2 + +-Function: Imaginary part of "clog10": ++Function: Real part of "clog10_towardzero": ++double: 5 ++float: 5 ++idouble: 5 ++ifloat: 5 ++ ++Function: Imaginary part of "clog10_towardzero": ++double: 2 ++float: 3 ++idouble: 2 ++ifloat: 3 ++ ++Function: Real part of "clog_towardzero": ++double: 4 ++float: 4 ++idouble: 4 ++ifloat: 4 ++ ++Function: Imaginary part of "clog_towardzero": + double: 1 +-float: 1 ++float: 3 + idouble: 1 +-ifloat: 1 ++ifloat: 3 + + Function: "cos": + float: 1 +@@ -184,42 +393,90 @@ ifloat: 1 + + Function: Real part of "cpow": + double: 2 +-float: 4 ++float: 5 + idouble: 2 +-ifloat: 4 ++ifloat: 5 + + Function: Imaginary part of "cpow": + float: 2 + ifloat: 2 + ++Function: Real part of "cpow_towardzero": ++double: 4 ++float: 8 ++idouble: 4 ++ifloat: 8 ++ ++Function: Imaginary part of "cpow_towardzero": ++double: 1 ++float: 2 ++idouble: 1 ++ifloat: 2 ++ + Function: Real part of "csin": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 + +-Function: Real part of "csinh": +-float: 1 +-ifloat: 1 ++Function: Real part of "csin_towardzero": ++double: 2 ++float: 3 ++idouble: 2 ++ifloat: 3 + +-Function: Imaginary part of "csinh": ++Function: Imaginary part of "csin_towardzero": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 + +-Function: Real part of "csqrt": +-double: 1 ++Function: Real part of "csinh": + float: 1 +-idouble: 1 + ifloat: 1 + +-Function: Imaginary part of "csqrt": ++Function: Imaginary part of "csinh": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 + ++Function: Real part of "csinh_towardzero": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Imaginary part of "csinh_towardzero": ++double: 2 ++float: 3 ++idouble: 2 ++ifloat: 3 ++ ++Function: Real part of "csqrt": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Imaginary part of "csqrt": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Real part of "csqrt_towardzero": ++double: 4 ++float: 3 ++idouble: 4 ++ifloat: 3 ++ ++Function: Imaginary part of "csqrt_towardzero": ++double: 4 ++float: 3 ++idouble: 4 ++ifloat: 3 ++ + Function: Real part of "ctan": + double: 1 + float: 1 +@@ -246,9 +503,9 @@ ifloat: 3 + + Function: Real part of "ctanh": + double: 2 +-float: 1 ++float: 2 + idouble: 2 +-ifloat: 1 ++ifloat: 2 + + Function: Imaginary part of "ctanh": + double: 2 +@@ -270,25 +527,51 @@ ifloat: 3 + + Function: "erf": + double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 + +-Function: "erfc": ++Function: "erf_towardzero": + double: 1 + float: 1 + idouble: 1 + ifloat: 1 + ++Function: "erfc": ++double: 3 ++float: 2 ++idouble: 3 ++ifloat: 2 ++ ++Function: "erfc_towardzero": ++double: 3 ++float: 3 ++idouble: 3 ++ifloat: 3 ++ + Function: "exp10": ++double: 2 ++idouble: 2 ++ ++Function: "exp10_towardzero": ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 ++ ++Function: "exp2": + double: 1 + idouble: 1 + +-Function: "exp10_towardzero": ++Function: "exp2_towardzero": + double: 1 + idouble: 1 + + Function: "exp_towardzero": + double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 + + Function: "expm1": + double: 1 +@@ -298,21 +581,31 @@ ifloat: 1 + + Function: "expm1_towardzero": + double: 1 +-float: 1 ++float: 2 + idouble: 1 +-ifloat: 1 ++ifloat: 2 + + Function: "fma_towardzero": + double: 1 + idouble: 1 + + Function: "gamma": ++double: 4 ++float: 3 ++idouble: 4 ++ifloat: 3 ++ ++Function: "gamma_towardzero": ++double: 5 ++float: 3 ++idouble: 5 ++ifloat: 3 ++ ++Function: "hypot": + double: 1 +-float: 1 + idouble: 1 +-ifloat: 1 + +-Function: "hypot": ++Function: "hypot_towardzero": + double: 1 + idouble: 1 + +@@ -322,44 +615,94 @@ float: 2 + idouble: 2 + ifloat: 2 + ++Function: "j0_towardzero": ++double: 3 ++float: 1 ++idouble: 3 ++ifloat: 1 ++ + Function: "j1": + double: 1 + float: 2 + idouble: 1 + ifloat: 2 + ++Function: "j1_towardzero": ++double: 3 ++float: 2 ++idouble: 3 ++ifloat: 2 ++ + Function: "jn": + double: 4 + float: 4 + idouble: 4 + ifloat: 4 + ++Function: "jn_towardzero": ++double: 5 ++float: 5 ++idouble: 5 ++ifloat: 5 ++ + Function: "lgamma": +-double: 1 +-float: 1 +-idouble: 1 +-ifloat: 1 ++double: 4 ++float: 3 ++idouble: 4 ++ifloat: 3 ++ ++Function: "lgamma_towardzero": ++double: 5 ++float: 3 ++idouble: 5 ++ifloat: 3 + + Function: "log": + float: 1 + ifloat: 1 + + Function: "log10": +-double: 1 ++double: 2 + float: 2 +-idouble: 1 ++idouble: 2 + ifloat: 2 + ++Function: "log10_towardzero": ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 ++ + Function: "log1p": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: "log1p_towardzero": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "log2": ++double: 2 + float: 1 ++idouble: 2 + ifloat: 1 + ++Function: "log2_towardzero": ++double: 2 ++idouble: 2 ++ + Function: "pow": + float: 1 + ifloat: 1 + + Function: "pow_towardzero": ++double: 1 + float: 1 ++idouble: 1 + ifloat: 1 + + Function: "sin": +@@ -376,9 +719,27 @@ Function: "sincos": + float: 1 + ifloat: 1 + +-Function: "sinh_towardzero": ++Function: "sincos_towardzero": + double: 1 ++float: 1 + idouble: 1 ++ifloat: 1 ++ ++Function: "sinh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "sinh_towardzero": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "tan": ++float: 1 ++ifloat: 1 + + Function: "tan_towardzero": + double: 1 +@@ -386,11 +747,29 @@ float: 1 + idouble: 1 + ifloat: 1 + ++Function: "tanh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "tanh_towardzero": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ + Function: "tgamma": +-double: 4 +-float: 3 +-idouble: 4 +-ifloat: 3 ++double: 5 ++float: 4 ++idouble: 5 ++ifloat: 4 ++ ++Function: "tgamma_towardzero": ++double: 5 ++float: 4 ++idouble: 5 ++ifloat: 4 + + Function: "y0": + double: 2 +@@ -398,16 +777,34 @@ float: 1 + idouble: 2 + ifloat: 1 + ++Function: "y0_towardzero": ++double: 3 ++float: 3 ++idouble: 3 ++ifloat: 3 ++ + Function: "y1": + double: 3 + float: 2 + idouble: 3 + ifloat: 2 + ++Function: "y1_towardzero": ++double: 3 ++float: 2 ++idouble: 3 ++ifloat: 2 ++ + Function: "yn": + double: 3 + float: 2 + idouble: 3 + ifloat: 2 + ++Function: "yn_towardzero": ++double: 3 ++float: 3 ++idouble: 3 ++ifloat: 3 ++ + # end of automatic generation +diff --git a/sysdeps/sparc/sparc32/start.S b/sysdeps/sparc/sparc32/start.S +index 1db7327fc6..46ba8b6afa 100644 +--- a/sysdeps/sparc/sparc32/start.S ++++ b/sysdeps/sparc/sparc32/start.S +@@ -42,7 +42,7 @@ + .global _start + .type _start,#function + _start: +-#ifdef SHARED ++#ifdef PIC + SETUP_PIC_REG(l7) + #endif + +@@ -57,7 +57,7 @@ _start: + add %sp, 23*4, %o2 + + /* Load the addresses of the user entry points. */ +-#ifndef SHARED ++#ifndef PIC + sethi %hi(main), %o0 + sethi %hi(__libc_csu_init), %o3 + sethi %hi(__libc_csu_fini), %o4 +diff --git a/sysdeps/sparc/sparc64/start.S b/sysdeps/sparc/sparc64/start.S +index e1865f10cb..75ff5093dc 100644 +--- a/sysdeps/sparc/sparc64/start.S ++++ b/sysdeps/sparc/sparc64/start.S +@@ -42,7 +42,7 @@ + .global _start + .type _start,#function + _start: +-#ifdef SHARED ++#ifdef PIC + SETUP_PIC_REG(l7) + #endif + +@@ -58,7 +58,7 @@ _start: + add %sp, STACK_BIAS+23*8, %o2 + + /* Load the addresses of the user entry points. */ +-#ifndef SHARED ++#ifndef PIC + sethi %hi(main), %o0 + sethi %hi(__libc_csu_init), %o3 + sethi %hi(__libc_csu_fini), %o4 +diff --git a/sysdeps/unix/sysv/linux/aarch64/configure b/sysdeps/unix/sysv/linux/aarch64/configure +index 27d50e1d3c..290670a67a 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/configure ++++ b/sysdeps/unix/sysv/linux/aarch64/configure +@@ -6,10 +6,10 @@ arch_minimum_kernel=3.7.0 + test -n "$libc_cv_slibdir" || + case "$prefix" in + /usr | /usr/) +- libc_cv_slibdir='/lib64' ++ libc_cv_slibdir='/lib' + libc_cv_rtlddir='/lib' + if test "$libdir" = '${exec_prefix}/lib'; then +- libdir='${exec_prefix}/lib64'; ++ libdir='${exec_prefix}/lib'; + # Locale data can be shared between 32-bit and 64-bit libraries. + libc_cv_complocaledir='${exec_prefix}/lib/locale' + fi +diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h +index 4be45b95ff..93e373c3ad 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h ++++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h +@@ -78,18 +78,10 @@ enum __ptrace_request + PTRACE_DETACH = 17, + #define PT_DETACH PTRACE_DETACH + +- PTRACE_GET_THREAD_AREA = 22, +- + /* Continue and stop at the next entry to or return from syscall. */ + PTRACE_SYSCALL = 24, + #define PT_SYSCALL PTRACE_SYSCALL + +- /* Get all hardware breakpoint registers. */ +- PTRACE_GETHBPREGS = 29, +- +- /* Set all hardware breakpoint registers. */ +- PTRACE_SETHBPREGS = 30, +- + /* Set ptrace filter options. */ + PTRACE_SETOPTIONS = 0x4200, + #define PT_SETOPTIONS PTRACE_SETOPTIONS +@@ -140,8 +132,12 @@ enum __ptrace_request + #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK + + /* Get seccomp BPF filters. */ +- PTRACE_SECCOMP_GET_FILTER = 0x420c ++ PTRACE_SECCOMP_GET_FILTER = 0x420c, + #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER ++ ++ /* Get seccomp BPF filter metadata. */ ++ PTRACE_SECCOMP_GET_METADATA = 0x420d ++#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA + }; + + +diff --git a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h +index fbcb9384bd..bc54a1e5e2 100644 +--- a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h ++++ b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h +@@ -192,8 +192,12 @@ enum __ptrace_request + #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK + + /* Get seccomp BPF filters. */ +- PTRACE_SECCOMP_GET_FILTER = 0x420c ++ PTRACE_SECCOMP_GET_FILTER = 0x420c, + #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER ++ ++ /* Get seccomp BPF filter metadata. */ ++ PTRACE_SECCOMP_GET_METADATA = 0x420d ++#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA + }; + + +diff --git a/sysdeps/unix/sysv/linux/bits/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h +index 7715e680ca..d15ba95c9d 100644 +--- a/sysdeps/unix/sysv/linux/bits/mman-shared.h ++++ b/sysdeps/unix/sysv/linux/bits/mman-shared.h +@@ -61,7 +61,7 @@ int pkey_set (int __key, unsigned int __access_rights) __THROW; + + /* Return the access rights for the current thread for KEY, which must + have been allocated using pkey_alloc. */ +-int pkey_get (int _key) __THROW; ++int pkey_get (int __key) __THROW; + + /* Free an allocated protection key, which must have been allocated + using pkey_alloc. */ +diff --git a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h +index 960b101f94..03a779140c 100644 +--- a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h ++++ b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h +@@ -66,6 +66,13 @@ enum __ptrace_peeksiginfo_flags + PTRACE_PEEKSIGINFO_SHARED = (1 << 0) + }; + ++/* Argument and results of PTRACE_SECCOMP_GET_METADATA. */ ++struct __ptrace_seccomp_metadata ++{ ++ __uint64_t filter_off; /* Input: which filter. */ ++ __uint64_t flags; /* Output: filter's flags. */ ++}; ++ + /* Perform process tracing functions. REQUEST is one of the values + above, and determines the action to be taken. + For all requests except PTRACE_TRACEME, PID specifies the process to be +diff --git a/sysdeps/unix/sysv/linux/bits/uio-ext.h b/sysdeps/unix/sysv/linux/bits/uio-ext.h +index 53663ed1a2..8698bc1200 100644 +--- a/sysdeps/unix/sysv/linux/bits/uio-ext.h ++++ b/sysdeps/unix/sysv/linux/bits/uio-ext.h +@@ -46,6 +46,7 @@ extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec, + #define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC. */ + #define RWF_SYNC 0x00000004 /* per-IO O_SYNC. */ + #define RWF_NOWAIT 0x00000008 /* per-IO nonblocking mode. */ ++#define RWF_APPEND 0x00000010 /* per-IO O_APPEND. */ + + __END_DECLS + +diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c +index 84c51d0ecd..7a814ea92f 100644 +--- a/sysdeps/unix/sysv/linux/getlogin_r.c ++++ b/sysdeps/unix/sysv/linux/getlogin_r.c +@@ -54,6 +54,15 @@ __getlogin_r_loginuid (char *name, size_t namesize) + endp == uidbuf || *endp != '\0')) + return -1; + ++ /* If there is no login uid, linux sets /proc/self/loginid to the sentinel ++ value of, (uid_t) -1, so check if that value is set and return early to ++ avoid making unneeded nss lookups. */ ++ if (uid == (uid_t) -1) ++ { ++ __set_errno (ENXIO); ++ return ENXIO; ++ } ++ + size_t buflen = 1024; + char *buf = alloca (buflen); + bool use_malloc = false; +diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile +index 4080b8c966..da716e2c1b 100644 +--- a/sysdeps/unix/sysv/linux/i386/Makefile ++++ b/sysdeps/unix/sysv/linux/i386/Makefile +@@ -3,6 +3,9 @@ default-abi := 32 + + ifeq ($(subdir),misc) + sysdep_routines += ioperm iopl vm86 ++ ++tests += tst-bz21269 ++$(objpfx)tst-bz21269: $(shared-thread-library) + endif + + ifeq ($(subdir),elf) +diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c +index a5eb9e0d3e..177ff60ee6 100644 +--- a/sysdeps/unix/sysv/linux/i386/sigaction.c ++++ b/sysdeps/unix/sysv/linux/i386/sigaction.c +@@ -42,7 +42,6 @@ extern void restore_rt (void) asm ("__restore_rt") attribute_hidden; + #endif + extern void restore (void) asm ("__restore") attribute_hidden; + +- + /* If ACT is not NULL, change the action for SIG to *ACT. + If OACT is not NULL, put the old action for SIG in *OACT. */ + int +@@ -65,6 +64,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) + kact.sa_restorer = ((act->sa_flags & SA_SIGINFO) + ? &restore_rt : &restore); + } ++ else ++ kact.sa_restorer = NULL; + } + + /* XXX The size argument hopefully will have to be changed to the +diff --git a/sysdeps/unix/sysv/linux/i386/tst-bz21269.c b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c +new file mode 100644 +index 0000000000..6ee3fc62be +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c +@@ -0,0 +1,235 @@ ++/* Test for i386 sigaction sa_restorer handling (BZ#21269) ++ Copyright (C) 2017 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This is based on Linux test tools/testing/selftests/x86/ldt_gdt.c, ++ more specifically in do_multicpu_tests function. The main changes ++ are: ++ ++ - C11 atomics instead of plain access. ++ - Remove x86_64 support which simplifies the syscall handling ++ and fallbacks. ++ - Replicate only the test required to trigger the issue for the ++ BZ#21269. */ ++ ++#include ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++static int ++xset_thread_area (struct user_desc *u_info) ++{ ++ long ret = syscall (SYS_set_thread_area, u_info); ++ TEST_VERIFY_EXIT (ret == 0); ++ return ret; ++} ++ ++static void ++xmodify_ldt (int func, const void *ptr, unsigned long bytecount) ++{ ++ TEST_VERIFY_EXIT (syscall (SYS_modify_ldt, 1, ptr, bytecount) == 0); ++} ++ ++static int ++futex (int *uaddr, int futex_op, int val, void *timeout, int *uaddr2, ++ int val3) ++{ ++ return syscall (SYS_futex, uaddr, futex_op, val, timeout, uaddr2, val3); ++} ++ ++static void ++xsethandler (int sig, void (*handler)(int, siginfo_t *, void *), int flags) ++{ ++ struct sigaction sa = { 0 }; ++ sa.sa_sigaction = handler; ++ sa.sa_flags = SA_SIGINFO | flags; ++ TEST_VERIFY_EXIT (sigemptyset (&sa.sa_mask) == 0); ++ TEST_VERIFY_EXIT (sigaction (sig, &sa, 0) == 0); ++} ++ ++static jmp_buf jmpbuf; ++ ++static void ++sigsegv_handler (int sig, siginfo_t *info, void *ctx_void) ++{ ++ siglongjmp (jmpbuf, 1); ++} ++ ++/* Points to an array of 1024 ints, each holding its own index. */ ++static const unsigned int *counter_page; ++static struct user_desc *low_user_desc; ++static struct user_desc *low_user_desc_clear; /* Used to delete GDT entry. */ ++static int gdt_entry_num; ++ ++static void ++setup_counter_page (void) ++{ ++ long page_size = sysconf (_SC_PAGE_SIZE); ++ TEST_VERIFY_EXIT (page_size > 0); ++ unsigned int *page = xmmap (NULL, page_size, PROT_READ | PROT_WRITE, ++ MAP_ANONYMOUS | MAP_PRIVATE | MAP_32BIT, -1); ++ for (int i = 0; i < (page_size / sizeof (unsigned int)); i++) ++ page[i] = i; ++ counter_page = page; ++} ++ ++static void ++setup_low_user_desc (void) ++{ ++ low_user_desc = xmmap (NULL, 2 * sizeof (struct user_desc), ++ PROT_READ | PROT_WRITE, ++ MAP_ANONYMOUS | MAP_PRIVATE | MAP_32BIT, -1); ++ ++ low_user_desc->entry_number = -1; ++ low_user_desc->base_addr = (unsigned long) &counter_page[1]; ++ low_user_desc->limit = 0xffff; ++ low_user_desc->seg_32bit = 1; ++ low_user_desc->contents = 0; ++ low_user_desc->read_exec_only = 0; ++ low_user_desc->limit_in_pages = 1; ++ low_user_desc->seg_not_present = 0; ++ low_user_desc->useable = 0; ++ ++ xset_thread_area (low_user_desc); ++ ++ low_user_desc_clear = low_user_desc + 1; ++ low_user_desc_clear->entry_number = gdt_entry_num; ++ low_user_desc_clear->read_exec_only = 1; ++ low_user_desc_clear->seg_not_present = 1; ++} ++ ++/* Possible values of futex: ++ 0: thread is idle. ++ 1: thread armed. ++ 2: thread should clear LDT entry 0. ++ 3: thread should exit. */ ++static atomic_uint ftx; ++ ++static void * ++threadproc (void *ctx) ++{ ++ while (1) ++ { ++ futex ((int *) &ftx, FUTEX_WAIT, 1, NULL, NULL, 0); ++ while (atomic_load (&ftx) != 2) ++ { ++ if (atomic_load (&ftx) >= 3) ++ return NULL; ++ } ++ ++ /* clear LDT entry 0. */ ++ const struct user_desc desc = { 0 }; ++ xmodify_ldt (1, &desc, sizeof (desc)); ++ ++ /* If ftx == 2, set it to zero, If ftx == 100, quit. */ ++ if (atomic_fetch_add (&ftx, -2) != 2) ++ return NULL; ++ } ++} ++ ++ ++/* As described in testcase, for historical reasons x86_32 Linux (and compat ++ on x86_64) interprets SA_RESTORER clear with nonzero sa_restorer as a ++ request for stack switching if the SS segment is 'funny' (this is default ++ scenario for vDSO system). This means that anything that tries to mix ++ signal handling with segmentation should explicit clear the sa_restorer. ++ ++ This testcase check if sigaction in fact does it by changing the local ++ descriptor table (LDT) through the modify_ldt syscall and triggering ++ a synchronous segfault on iret fault by trying to install an invalid ++ segment. With a correct zeroed sa_restorer it should not trigger an ++ 'real' SEGSEGV and allows the siglongjmp in signal handler. */ ++ ++static int ++do_test (void) ++{ ++ setup_counter_page (); ++ setup_low_user_desc (); ++ ++ pthread_t thread; ++ unsigned short orig_ss; ++ ++ xsethandler (SIGSEGV, sigsegv_handler, 0); ++ /* 32-bit kernels send SIGILL instead of SIGSEGV on IRET faults. */ ++ xsethandler (SIGILL, sigsegv_handler, 0); ++ /* Some kernels send SIGBUS instead. */ ++ xsethandler (SIGBUS, sigsegv_handler, 0); ++ ++ thread = xpthread_create (0, threadproc, 0); ++ ++ asm volatile ("mov %%ss, %0" : "=rm" (orig_ss)); ++ ++ for (int i = 0; i < 5; i++) ++ { ++ if (sigsetjmp (jmpbuf, 1) != 0) ++ continue; ++ ++ /* Make sure the thread is ready after the last test. */ ++ while (atomic_load (&ftx) != 0) ++ ; ++ ++ struct user_desc desc = { ++ .entry_number = 0, ++ .base_addr = 0, ++ .limit = 0xffff, ++ .seg_32bit = 1, ++ .contents = 0, ++ .read_exec_only = 0, ++ .limit_in_pages = 1, ++ .seg_not_present = 0, ++ .useable = 0 ++ }; ++ ++ xmodify_ldt (0x11, &desc, sizeof (desc)); ++ ++ /* Arm the thread. */ ++ ftx = 1; ++ futex ((int*) &ftx, FUTEX_WAKE, 0, NULL, NULL, 0); ++ ++ asm volatile ("mov %0, %%ss" : : "r" (0x7)); ++ ++ /* Fire up thread modify_ldt call. */ ++ atomic_store (&ftx, 2); ++ ++ while (atomic_load (&ftx) != 0) ++ ; ++ ++ /* On success, modify_ldt will segfault us synchronously and we will ++ escape via siglongjmp. */ ++ support_record_failure (); ++ } ++ ++ atomic_store (&ftx, 100); ++ futex ((int*) &ftx, FUTEX_WAKE, 0, NULL, NULL, 0); ++ ++ xpthread_join (thread); ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h +index 1c73b9dee6..e00b1212fc 100644 +--- a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h ++++ b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h +@@ -145,8 +145,12 @@ enum __ptrace_request + #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK + + /* Get seccomp BPF filters. */ +- PTRACE_SECCOMP_GET_FILTER = 0x420c ++ PTRACE_SECCOMP_GET_FILTER = 0x420c, + #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER ++ ++ /* Get seccomp BPF filter metadata. */ ++ PTRACE_SECCOMP_GET_METADATA = 0x420d ++#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA + }; + + +diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c +index b7093feab9..98a23f0dd2 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c ++++ b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c +@@ -45,6 +45,7 @@ + int + __lll_lock_elision (int *lock, short *adapt_count, EXTRAARG int pshared) + { ++#ifndef __SPE__ + /* adapt_count is accessed concurrently but is just a hint. Thus, + use atomic accesses but relaxed MO is sufficient. */ + if (atomic_load_relaxed (adapt_count) > 0) +@@ -82,5 +83,6 @@ __lll_lock_elision (int *lock, short *adapt_count, EXTRAARG int pshared) + aconf.skip_lock_out_of_tbegin_retries); + + use_lock: ++#endif + return LLL_LOCK ((*lock), pshared); + } +diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c +index b74a810648..fabb03b2c4 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c ++++ b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c +@@ -30,6 +30,7 @@ + int + __lll_trylock_elision (int *futex, short *adapt_count) + { ++#ifndef __SPE__ + /* Implement POSIX semantics by forbiding nesting elided trylocks. */ + __libc_tabort (_ABORT_NESTED_TRYLOCK); + +@@ -65,5 +66,6 @@ __lll_trylock_elision (int *futex, short *adapt_count) + } + + use_lock: ++#endif + return lll_trylock (*futex); + } +diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c +index dcfab199d7..14e0680ee9 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c ++++ b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c +@@ -23,6 +23,7 @@ + int + __lll_unlock_elision (int *lock, short *adapt_count, int pshared) + { ++#ifndef __SPE__ + /* When the lock was free we're in a transaction. */ + if (*lock == 0) + __libc_tend (0); +@@ -39,5 +40,8 @@ __lll_unlock_elision (int *lock, short *adapt_count, int pshared) + + lll_unlock ((*lock), pshared); + } ++#else ++ lll_unlock ((*lock), pshared); ++#endif + return 0; + } +diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h +index 75567b2bad..9fde99c748 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h ++++ b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h +@@ -24,6 +24,50 @@ + + __BEGIN_DECLS + ++#if defined _LINUX_PTRACE_H || defined _ASM_POWERPC_PTRACE_H ++/* Do not let Linux headers macros interfere with enum __ptrace_request. */ ++# undef PTRACE_ATTACH ++# undef PTRACE_CONT ++# undef PTRACE_DETACH ++# undef PTRACE_GET_DEBUGREG ++# undef PTRACE_GETEVENTMSG ++# undef PTRACE_GETEVRREGS ++# undef PTRACE_GETFPREGS ++# undef PTRACE_GETREGS ++# undef PTRACE_GETREGS64 ++# undef PTRACE_GETREGSET ++# undef PTRACE_GETSIGINFO ++# undef PTRACE_GETSIGMASK ++# undef PTRACE_GETVRREGS ++# undef PTRACE_GETVSRREGS ++# undef PTRACE_INTERRUPT ++# undef PTRACE_KILL ++# undef PTRACE_LISTEN ++# undef PTRACE_PEEKDATA ++# undef PTRACE_PEEKSIGINFO ++# undef PTRACE_PEEKTEXT ++# undef PTRACE_POKEDATA ++# undef PTRACE_POKETEXT ++# undef PTRACE_SECCOMP_GET_FILTER ++# undef PTRACE_SECCOMP_GET_METADATA ++# undef PTRACE_SEIZE ++# undef PTRACE_SET_DEBUGREG ++# undef PTRACE_SETEVRREGS ++# undef PTRACE_SETFPREGS ++# undef PTRACE_SETOPTIONS ++# undef PTRACE_SETREGS ++# undef PTRACE_SETREGS64 ++# undef PTRACE_SETREGSET ++# undef PTRACE_SETSIGINFO ++# undef PTRACE_SETSIGMASK ++# undef PTRACE_SETVRREGS ++# undef PTRACE_SETVSRREGS ++# undef PTRACE_SINGLEBLOCK ++# undef PTRACE_SINGLESTEP ++# undef PTRACE_SYSCALL ++# undef PTRACE_TRACEME ++#endif ++ + /* Type of the REQUEST argument to `ptrace.' */ + enum __ptrace_request + { +@@ -69,6 +113,22 @@ enum __ptrace_request + PTRACE_SINGLESTEP = 9, + #define PT_STEP PTRACE_SINGLESTEP + ++ /* Get all general purpose registers used by a process. */ ++ PTRACE_GETREGS = 12, ++#define PT_GETREGS PTRACE_GETREGS ++ ++ /* Set all general purpose registers used by a process. */ ++ PTRACE_SETREGS = 13, ++#define PT_SETREGS PTRACE_SETREGS ++ ++ /* Get all floating point registers used by a process. */ ++ PTRACE_GETFPREGS = 14, ++#define PT_GETFPREGS PTRACE_GETFPREGS ++ ++ /* Set all floating point registers used by a process. */ ++ PTRACE_SETFPREGS = 15, ++#define PT_SETFPREGS PTRACE_SETFPREGS ++ + /* Attach to a process that is already running. */ + PTRACE_ATTACH = 16, + #define PT_ATTACH PTRACE_ATTACH +@@ -77,10 +137,56 @@ enum __ptrace_request + PTRACE_DETACH = 17, + #define PT_DETACH PTRACE_DETACH + ++ /* Get all altivec registers used by a process. */ ++ PTRACE_GETVRREGS = 18, ++#define PT_GETVRREGS PTRACE_GETVRREGS ++ ++ /* Set all altivec registers used by a process. */ ++ PTRACE_SETVRREGS = 19, ++#define PT_SETVRREGS PTRACE_SETVRREGS ++ ++ /* Get all SPE registers used by a process. */ ++ PTRACE_GETEVRREGS = 20, ++#define PT_GETEVRREGS PTRACE_GETEVRREGS ++ ++ /* Set all SPE registers used by a process. */ ++ PTRACE_SETEVRREGS = 21, ++#define PT_SETEVRREGS PTRACE_SETEVRREGS ++ ++ /* Same as PTRACE_GETREGS except a 32-bit process will obtain ++ the full 64-bit registers. Implemented by 64-bit kernels only. */ ++ PTRACE_GETREGS64 = 22, ++#define PT_GETREGS64 PTRACE_GETREGS64 ++ ++ /* Same as PTRACE_SETREGS except a 32-bit process will set ++ the full 64-bit registers. Implemented by 64-bit kernels only. */ ++ PTRACE_SETREGS64 = 23, ++#define PT_SETREGS64 PTRACE_SETREGS64 ++ + /* Continue and stop at the next entry to or return from syscall. */ + PTRACE_SYSCALL = 24, + #define PT_SYSCALL PTRACE_SYSCALL + ++ /* Get a debug register of a process. */ ++ PTRACE_GET_DEBUGREG = 25, ++#define PT_GET_DEBUGREG PTRACE_GET_DEBUGREG ++ ++ /* Set a debug register of a process. */ ++ PTRACE_SET_DEBUGREG = 26, ++#define PT_SET_DEBUGREG PTRACE_SET_DEBUGREG ++ ++ /* Get the first 32 VSX registers of a process. */ ++ PTRACE_GETVSRREGS = 27, ++#define PT_GETVSRREGS PTRACE_GETVSRREGS ++ ++ /* Set the first 32 VSX registers of a process. */ ++ PTRACE_SETVSRREGS = 28, ++#define PT_SETVSRREGS PTRACE_SETVSRREGS ++ ++ /* Execute process until next taken branch. */ ++ PTRACE_SINGLEBLOCK = 256, ++#define PT_STEPBLOCK PTRACE_SINGLEBLOCK ++ + /* Set ptrace filter options. */ + PTRACE_SETOPTIONS = 0x4200, + #define PT_SETOPTIONS PTRACE_SETOPTIONS +@@ -131,8 +237,12 @@ enum __ptrace_request + #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK + + /* Get seccomp BPF filters. */ +- PTRACE_SECCOMP_GET_FILTER = 0x420c ++ PTRACE_SECCOMP_GET_FILTER = 0x420c, + #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER ++ ++ /* Get seccomp BPF filter metadata. */ ++ PTRACE_SECCOMP_GET_METADATA = 0x420d ++#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA + }; + + +diff --git a/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h b/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h +new file mode 100644 +index 0000000000..2a62bcc5bc +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h +@@ -0,0 +1,7 @@ ++/* This is the sigaction structure from the RISC-V Linux 4.15 kernel. */ ++ ++struct kernel_sigaction { ++ __sighandler_t k_sa_handler; ++ unsigned long sa_flags; ++ sigset_t sa_mask; ++}; +diff --git a/sysdeps/unix/sysv/linux/riscv/readelflib.c b/sysdeps/unix/sysv/linux/riscv/readelflib.c +index 6e249ff82f..7e27e0c1d6 100644 +--- a/sysdeps/unix/sysv/linux/riscv/readelflib.c ++++ b/sysdeps/unix/sysv/linux/riscv/readelflib.c +@@ -43,6 +43,7 @@ process_elf_file (const char *file_name, const char *lib, int *flag, + { + ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents; + Elf32_Ehdr *elf32_header = (Elf32_Ehdr *) elf_header; ++ Elf64_Ehdr *elf64_header = (Elf64_Ehdr *) elf_header; + int ret; + long flags; + +@@ -59,7 +60,7 @@ process_elf_file (const char *file_name, const char *lib, int *flag, + { + ret = process_elf64_file (file_name, lib, flag, osversion, soname, + file_contents, file_length); +- flags = elf32_header->e_flags; ++ flags = elf64_header->e_flags; + } + + /* RISC-V linkers encode the floating point ABI as part of the ELF headers. */ +diff --git a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h +index cca02489d6..d60a034b11 100644 +--- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h ++++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h +@@ -52,6 +52,7 @@ __BEGIN_DECLS + # undef PTRACE_GETSIGMASK + # undef PTRACE_SETSIGMASK + # undef PTRACE_SECCOMP_GET_FILTER ++# undef PTRACE_SECCOMP_GET_METADATA + # undef PTRACE_PEEKUSR_AREA + # undef PTRACE_POKEUSR_AREA + # undef PTRACE_GET_LAST_BREAK +@@ -193,6 +194,10 @@ enum __ptrace_request + PTRACE_SECCOMP_GET_FILTER = 0x420c, + #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER + ++ /* Get seccomp BPF filter metadata. */ ++ PTRACE_SECCOMP_GET_METADATA = 0x420d, ++#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA ++ + PTRACE_PEEKUSR_AREA = 0x5000, + #define PTRACE_PEEKUSR_AREA PTRACE_PEEKUSR_AREA + +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S +index 695f172c63..283aef1b30 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S ++++ b/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S +@@ -95,6 +95,19 @@ END(__setcontext) + + weak_alias (__setcontext, setcontext) + ++/* We add an NOP here to separate between __setcontext/__startcontext. The ++ wanted behavior that happens is: when unwinding from a function called ++ inside a makecontext() context, FDE lookup will use '&__startcontext - 1', ++ then returns NULL for no FDE found, and immediately ends the unwind, in ++ a normal fashion. ++ ++ If this NOP word does not exist, FDE lookup just repeatedly finds ++ __setcontext's FDE in an infinite loop, due to the convention of using ++ 'address - 1' for FDE lookup. Modifiying/deleting the below ++ __startcontext's FDE has no help on this. */ ++ ++ nop ++ + /* This is the helper code which gets called if a function which is + registered with 'makecontext' returns. In this case we have to + install the context listed in the uc_link element of the context +diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h +index 9193275fac..c037734666 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h ++++ b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h +@@ -213,8 +213,12 @@ enum __ptrace_request + #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK + + /* Get seccomp BPF filters. */ +- PTRACE_SECCOMP_GET_FILTER = 0x420c ++ PTRACE_SECCOMP_GET_FILTER = 0x420c, + #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER ++ ++ /* Get seccomp BPF filter metadata. */ ++ PTRACE_SECCOMP_GET_METADATA = 0x420d ++#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA + }; + + +diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c +index 6b699a46dd..32ab000560 100644 +--- a/sysdeps/unix/sysv/linux/spawni.c ++++ b/sysdeps/unix/sysv/linux/spawni.c +@@ -404,6 +404,8 @@ __spawni (pid_t * pid, const char *file, + const posix_spawnattr_t * attrp, char *const argv[], + char *const envp[], int xflags) + { ++ /* It uses __execvpex to avoid run ENOEXEC in non compatibility mode (it ++ will be handled by maybe_script_execute). */ + return __spawnix (pid, file, acts, attrp, argv, envp, xflags, +- xflags & SPAWN_XFLAGS_USE_PATH ? __execvpe : __execve); ++ xflags & SPAWN_XFLAGS_USE_PATH ? __execvpex :__execve); + } +diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h +index 85772f348a..3c71a0ebd6 100644 +--- a/sysdeps/unix/sysv/linux/sys/ptrace.h ++++ b/sysdeps/unix/sysv/linux/sys/ptrace.h +@@ -162,8 +162,12 @@ enum __ptrace_request + #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK + + /* Get seccomp BPF filters. */ +- PTRACE_SECCOMP_GET_FILTER = 0x420c ++ PTRACE_SECCOMP_GET_FILTER = 0x420c, + #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER ++ ++ /* Get seccomp BPF filter metadata. */ ++ PTRACE_SECCOMP_GET_METADATA = 0x420d ++#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA + }; + + +diff --git a/sysdeps/unix/sysv/linux/tile/sys/ptrace.h b/sysdeps/unix/sysv/linux/tile/sys/ptrace.h +index a1db185073..d391037ca8 100644 +--- a/sysdeps/unix/sysv/linux/tile/sys/ptrace.h ++++ b/sysdeps/unix/sysv/linux/tile/sys/ptrace.h +@@ -136,8 +136,12 @@ enum __ptrace_request + #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK + + /* Get seccomp BPF filters. */ +- PTRACE_SECCOMP_GET_FILTER = 0x420c ++ PTRACE_SECCOMP_GET_FILTER = 0x420c, + #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER ++ ++ /* Get seccomp BPF filter metadata. */ ++ PTRACE_SECCOMP_GET_METADATA = 0x420d ++#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA + }; + + +diff --git a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h +index 60003422b3..6d4605b6ed 100644 +--- a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h ++++ b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h +@@ -182,8 +182,12 @@ enum __ptrace_request + #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK + + /* Get seccomp BPF filters. */ +- PTRACE_SECCOMP_GET_FILTER = 0x420c ++ PTRACE_SECCOMP_GET_FILTER = 0x420c, + #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER ++ ++ /* Get seccomp BPF filter metadata. */ ++ PTRACE_SECCOMP_GET_METADATA = 0x420d ++#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA + }; + + +diff --git a/sysdeps/unix/sysv/linux/x86_64/64/configure b/sysdeps/unix/sysv/linux/x86_64/64/configure +index 9d298faba7..cef1ec842c 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/64/configure ++++ b/sysdeps/unix/sysv/linux/x86_64/64/configure +@@ -4,10 +4,10 @@ + test -n "$libc_cv_slibdir" || + case "$prefix" in + /usr | /usr/) +- libc_cv_slibdir='/lib64' +- libc_cv_rtlddir='/lib64' ++ libc_cv_slibdir='/lib' ++ libc_cv_rtlddir='/lib' + if test "$libdir" = '${exec_prefix}/lib'; then +- libdir='${exec_prefix}/lib64'; ++ libdir='${exec_prefix}/lib'; + # Locale data can be shared between 32-bit and 64-bit libraries. + libc_cv_complocaledir='${exec_prefix}/lib/locale' + fi +diff --git a/sysdeps/unix/sysv/linux/x86_64/ldconfig.h b/sysdeps/unix/sysv/linux/x86_64/ldconfig.h +index c7e9ad674d..cd47995d4a 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/ldconfig.h ++++ b/sysdeps/unix/sysv/linux/x86_64/ldconfig.h +@@ -18,9 +18,9 @@ + #include + + #define SYSDEP_KNOWN_INTERPRETER_NAMES \ +- { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 }, \ ++ { "/lib32/ld-linux.so.2", FLAG_ELF_LIBC6 }, \ + { "/libx32/ld-linux-x32.so.2", FLAG_ELF_LIBC6 }, \ +- { "/lib64/ld-linux-x86-64.so.2", FLAG_ELF_LIBC6 }, ++ { "/lib/ld-linux-x86-64.so.2", FLAG_ELF_LIBC6 }, + #define SYSDEP_KNOWN_LIBRARY_NAMES \ + { "libc.so.6", FLAG_ELF_LIBC6 }, \ + { "libm.so.6", FLAG_ELF_LIBC6 }, +diff --git a/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed +index 44d76e8aa1..7d6cb1e20b 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed ++++ b/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed +@@ -1,3 +1,3 @@ + /LD_TRACE_LOADED_OBJECTS=1/a\ + add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out" +-s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\4\6 \264\4-x86-64\6 \2x32\4-x32\6"_ ++s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\232\4\6 \2\4-x86-64\6 \2x32\4-x32\6"_ +diff --git a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S +index 23c0f7a9ed..effc3ac2de 100644 +--- a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S ++++ b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S +@@ -336,6 +336,7 @@ L(preloop_large): + vmovups (%rsi), %zmm4 + vmovups 0x40(%rsi), %zmm5 + ++ mov %rdi, %r11 + /* Align destination for access with non-temporal stores in the loop. */ + mov %rdi, %r8 + and $-0x80, %rdi +@@ -366,8 +367,8 @@ L(gobble_256bytes_nt_loop): + cmp $256, %rdx + ja L(gobble_256bytes_nt_loop) + sfence +- vmovups %zmm4, (%rax) +- vmovups %zmm5, 0x40(%rax) ++ vmovups %zmm4, (%r11) ++ vmovups %zmm5, 0x40(%r11) + jmp L(check) + + L(preloop_large_bkw): +diff --git a/sysdeps/x86_64/multiarch/strncmp-sse2.S b/sysdeps/x86_64/multiarch/strncmp-sse2.S +index cc5252d826..a5ecb82b13 100644 +--- a/sysdeps/x86_64/multiarch/strncmp-sse2.S ++++ b/sysdeps/x86_64/multiarch/strncmp-sse2.S +@@ -18,10 +18,13 @@ + + #include + +-#define STRCMP __strncmp_sse2 +- +-#undef libc_hidden_builtin_def +-#define libc_hidden_builtin_def(strcmp) ++#if IS_IN (libc) ++# define STRCMP __strncmp_sse2 ++# undef libc_hidden_builtin_def ++# define libc_hidden_builtin_def(strcmp) ++#else ++# define STRCMP strncmp ++#endif + + #define USE_AS_STRNCMP + #include +diff --git a/time/time.h b/time/time.h +index 49d30438f3..4b55e34402 100644 +--- a/time/time.h ++++ b/time/time.h +@@ -68,7 +68,7 @@ typedef __pid_t pid_t; + __BEGIN_DECLS + + /* Time used by the program so far (user time + system time). +- The result / CLOCKS_PER_SECOND is program time in seconds. */ ++ The result / CLOCKS_PER_SEC is program time in seconds. */ + extern clock_t clock (void) __THROW; + + /* Return the current time and put it in *TIMER if TIMER is not NULL. */ -- 2.26.2 From 0cd3e000bcfb0e81c32d33808a422d07a95cad62 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Fri, 13 Jul 2018 09:04:06 +0200 Subject: [PATCH 04/16] binutils: updated .footprint --- binutils/.footprint | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/binutils/.footprint b/binutils/.footprint index b1b6091..ef874eb 100644 --- a/binutils/.footprint +++ b/binutils/.footprint @@ -202,12 +202,11 @@ drwxr-xr-x root/root usr/lib/ldscripts/ -rw-r--r-- root/root usr/lib/libbfd.a -rwxr-xr-x root/root usr/lib/libbfd.la lrwxrwxrwx root/root usr/lib/libbfd.so -> libbfd-2.29.1.so +-rw-r--r-- root/root usr/lib/libiberty.a -rwxr-xr-x root/root usr/lib/libopcodes-2.29.1.so -rw-r--r-- root/root usr/lib/libopcodes.a -rwxr-xr-x root/root usr/lib/libopcodes.la lrwxrwxrwx root/root usr/lib/libopcodes.so -> libopcodes-2.29.1.so -drwxr-xr-x root/root usr/lib64/ --rw-r--r-- root/root usr/lib64/libiberty.a drwxr-xr-x root/root usr/share/ drwxr-xr-x root/root usr/share/man/ drwxr-xr-x root/root usr/share/man/man1/ -- 2.26.2 From 9398f34fb02bb965146b513f51a36fe56f08f4ec Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Thu, 26 Jul 2018 05:20:41 +0200 Subject: [PATCH 05/16] util-linux: updated to 2.32.1 --- util-linux/.md5sum | 2 +- util-linux/Pkgfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/util-linux/.md5sum b/util-linux/.md5sum index 575bb2c..b48d89d 100644 --- a/util-linux/.md5sum +++ b/util-linux/.md5sum @@ -1 +1 @@ -e0d8a25853f88cd15ff557e5d8cb4ea7 util-linux-2.32.tar.xz +9e5b1b8c1dc99455bdb6b462cf9436d9 util-linux-2.32.1.tar.xz diff --git a/util-linux/Pkgfile b/util-linux/Pkgfile index e2ff9ac..c3351eb 100644 --- a/util-linux/Pkgfile +++ b/util-linux/Pkgfile @@ -5,7 +5,7 @@ # Depends on: eudev ncurses zlib name=util-linux -version=2.32 +version=2.32.1 release=1 source=(https://www.kernel.org/pub/linux/utils/$name/v${version:0:4}/$name-$version.tar.xz) -- 2.26.2 From 74a8ec43759aa0b4e1e3c3441838ca85debccebd Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Tue, 21 Aug 2018 19:43:37 +0200 Subject: [PATCH 06/16] openssl: updated to 1.0.2p --- openssl/.footprint | 1 + openssl/.md5sum | 2 +- openssl/Pkgfile | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/openssl/.footprint b/openssl/.footprint index 3321694..851a236 100644 --- a/openssl/.footprint +++ b/openssl/.footprint @@ -1455,6 +1455,7 @@ lrwxrwxrwx root/root usr/share/man/man3/SSL_get_secure_renegotiation_support.3ss lrwxrwxrwx root/root usr/share/man/man3/SSL_get_servername.3ssl.gz -> SSL_CTX_set_tlsext_servername_callback.3ssl.gz lrwxrwxrwx root/root usr/share/man/man3/SSL_get_servername_type.3ssl.gz -> SSL_CTX_set_tlsext_servername_callback.3ssl.gz -rw-r--r-- root/root usr/share/man/man3/SSL_get_session.3ssl.gz +lrwxrwxrwx root/root usr/share/man/man3/SSL_get_shared_ciphers.3ssl.gz -> SSL_get_ciphers.3ssl.gz lrwxrwxrwx root/root usr/share/man/man3/SSL_get_shared_curve.3ssl.gz -> SSL_CTX_set1_curves.3ssl.gz lrwxrwxrwx root/root usr/share/man/man3/SSL_get_shutdown.3ssl.gz -> SSL_set_shutdown.3ssl.gz lrwxrwxrwx root/root usr/share/man/man3/SSL_get_ssl_method.3ssl.gz -> SSL_CTX_set_ssl_version.3ssl.gz diff --git a/openssl/.md5sum b/openssl/.md5sum index fbac728..15687f2 100644 --- a/openssl/.md5sum +++ b/openssl/.md5sum @@ -1,2 +1,2 @@ 91f85842d2118003ee465c34259047e6 mksslcert.sh -44279b8557c3247cbe324e2322ecd114 openssl-1.0.2o.tar.gz +ac5eb30bf5798aa14b1ae6d0e7da58df openssl-1.0.2p.tar.gz diff --git a/openssl/Pkgfile b/openssl/Pkgfile index da2f102..85ee989 100644 --- a/openssl/Pkgfile +++ b/openssl/Pkgfile @@ -4,7 +4,7 @@ # Arch Maintainer: CRUX-ARM System Team, devel at crux-arm dot nu name=openssl -version=1.0.2o +version=1.0.2p release=1 source=(http://www.openssl.org/source/$name-$version.tar.gz \ mksslcert.sh) -- 2.26.2 From 2cfec75a8524f8b94c52f86ce77c2954acc51e50 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Fri, 31 Aug 2018 01:50:23 +0200 Subject: [PATCH 07/16] ports: added repositories pub keys --- ports/.footprint | 3 +++ ports/.md5sum | 3 +++ ports/Pkgfile | 7 ++++++- ports/core-arm64.pub | 2 ++ ports/opt-arm64.pub | 2 ++ ports/xorg-arm64.pub | 2 ++ 6 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 ports/core-arm64.pub create mode 100644 ports/opt-arm64.pub create mode 100644 ports/xorg-arm64.pub diff --git a/ports/.footprint b/ports/.footprint index 746753a..a441da4 100644 --- a/ports/.footprint +++ b/ports/.footprint @@ -2,13 +2,16 @@ drwxr-xr-x root/root etc/ drwxr-xr-x root/root etc/ports/ -rw-r--r-- root/root etc/ports/contrib.pub -rw-r--r-- root/root etc/ports/contrib.rsync.inactive +-rw-r--r-- root/root etc/ports/core-arm64.pub -rw-r--r-- root/root etc/ports/core-arm64.rsync -rw-r--r-- root/root etc/ports/core.pub -rw-r--r-- root/root etc/ports/core.rsync drwxr-xr-x root/root etc/ports/drivers/ +-rw-r--r-- root/root etc/ports/opt-arm64.pub -rw-r--r-- root/root etc/ports/opt-arm64.rsync -rw-r--r-- root/root etc/ports/opt.pub -rw-r--r-- root/root etc/ports/opt.rsync +-rw-r--r-- root/root etc/ports/xorg-arm64.pub -rw-r--r-- root/root etc/ports/xorg-arm64.rsync -rw-r--r-- root/root etc/ports/xorg.pub -rw-r--r-- root/root etc/ports/xorg.rsync diff --git a/ports/.md5sum b/ports/.md5sum index 6c39c76..c5e20e0 100644 --- a/ports/.md5sum +++ b/ports/.md5sum @@ -1,12 +1,15 @@ 804bb419e539a70ad80e4c03df3c3411 contrib.pub 85da0c1d6c822bc6fb20b0ecdd06b3f5 contrib.rsync.inactive +3efeabfbd7104b1c566b604f802ef0c0 core-arm64.pub 9d2281b074956b09826c8dcb697c1306 core-arm64.rsync b8dd0aad383810cad920d6548cd1cb56 core.pub 87528a9bc5205ed8589e7964e34571ae core.rsync +246bdcd2c5d85192fc45e320174fb121 opt-arm64.pub 2bcb297c7873bd18e0a8772f567cbcfd opt-arm64.rsync 0d1f1fde50a9bd743d9cac6b235f038c opt.pub b1302ff270238b1450c1a025c42fd8e1 opt.rsync 1f178e2bb1beab9782993931c9832280 ports-1.5.tar.gz +c56a20ef43a22c8e294d850935f80acd xorg-arm64.pub 0408bc71c0eeabdaf977812716f722f8 xorg-arm64.rsync 69927e5d0ae5dc3455faeaac916c4db2 xorg.pub 89768ed603f9f19e48de1951191594f8 xorg.rsync diff --git a/ports/Pkgfile b/ports/Pkgfile index 5b7e468..9897ad5 100644 --- a/ports/Pkgfile +++ b/ports/Pkgfile @@ -10,7 +10,9 @@ release=23 source=(http://crux.nu/files/tools/ports/$name-$version.tar.gz \ core.pub opt.pub xorg.pub contrib.pub \ core.rsync opt.rsync xorg.rsync contrib.rsync.inactive \ - core-arm64.rsync opt-arm64.rsync xorg-arm64.rsync) + core-arm64.rsync core-arm64.pub \ + opt-arm64.rsync opt-arm64.pub \ + xorg-arm64.rsync xorg-arm64.pub) build () { cd $name-$version @@ -26,6 +28,9 @@ build () { install -m 0644 $SRC/xorg.pub $PKG/etc/ports install -m 0644 $SRC/contrib.pub $PKG/etc/ports install -m 0644 $SRC/core-arm64.rsync $PKG/etc/ports + install -m 0644 $SRC/core-arm64.pub $PKG/etc/ports install -m 0644 $SRC/opt-arm64.rsync $PKG/etc/ports + install -m 0644 $SRC/opt-arm64.pub $PKG/etc/ports install -m 0644 $SRC/xorg-arm64.rsync $PKG/etc/ports + install -m 0644 $SRC/xorg-arm64.pub $PKG/etc/ports } diff --git a/ports/core-arm64.pub b/ports/core-arm64.pub new file mode 100644 index 0000000..c89cfe5 --- /dev/null +++ b/ports/core-arm64.pub @@ -0,0 +1,2 @@ +untrusted comment: core-arm64 public key +RWSKslkvIwb+2bjA0NpslEQw6uEtQsA3dB5BXTK8G0TAc06lLrnYaGLf diff --git a/ports/opt-arm64.pub b/ports/opt-arm64.pub new file mode 100644 index 0000000..f32b156 --- /dev/null +++ b/ports/opt-arm64.pub @@ -0,0 +1,2 @@ +untrusted comment: opt-arm64 public key +RWRitF9a2DJqMTHKFbth6ZV4WjxTZLrWrN3NtnDSoGS+/8ASNjfOvBij diff --git a/ports/xorg-arm64.pub b/ports/xorg-arm64.pub new file mode 100644 index 0000000..073602e --- /dev/null +++ b/ports/xorg-arm64.pub @@ -0,0 +1,2 @@ +untrusted comment: xorg-arm64 public key +RWQK42WfXMUBTNYixko6V1oqoGuisD1SHK9BLY0w9ND8jc2ur1ADpc92 -- 2.26.2 From 21d86551207d708e1c2f2cdfb353964bcfdf7572 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Thu, 22 Nov 2018 16:47:10 +0100 Subject: [PATCH 08/16] openssl: updated to 1.0.2q --- openssl/.footprint | 1 + openssl/.md5sum | 2 +- openssl/Pkgfile | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/openssl/.footprint b/openssl/.footprint index 851a236..ebed12a 100644 --- a/openssl/.footprint +++ b/openssl/.footprint @@ -1075,6 +1075,7 @@ lrwxrwxrwx root/root usr/share/man/man3/OBJ_txt2nid.3ssl.gz -> OBJ_nid2obj.3ssl. lrwxrwxrwx root/root usr/share/man/man3/OBJ_txt2obj.3ssl.gz -> OBJ_nid2obj.3ssl.gz -rw-r--r-- root/root usr/share/man/man3/OPENSSL_Applink.3ssl.gz -rw-r--r-- root/root usr/share/man/man3/OPENSSL_VERSION_NUMBER.3ssl.gz +lrwxrwxrwx root/root usr/share/man/man3/OPENSSL_VERSION_TEXT.3ssl.gz -> OPENSSL_VERSION_NUMBER.3ssl.gz -rw-r--r-- root/root usr/share/man/man3/OPENSSL_config.3ssl.gz -rw-r--r-- root/root usr/share/man/man3/OPENSSL_ia32cap.3ssl.gz lrwxrwxrwx root/root usr/share/man/man3/OPENSSL_ia32cap_loc.3ssl.gz -> OPENSSL_ia32cap.3ssl.gz diff --git a/openssl/.md5sum b/openssl/.md5sum index 15687f2..05a15b6 100644 --- a/openssl/.md5sum +++ b/openssl/.md5sum @@ -1,2 +1,2 @@ 91f85842d2118003ee465c34259047e6 mksslcert.sh -ac5eb30bf5798aa14b1ae6d0e7da58df openssl-1.0.2p.tar.gz +7563e1ce046cb21948eeb6ba1a0eb71c openssl-1.0.2q.tar.gz diff --git a/openssl/Pkgfile b/openssl/Pkgfile index 85ee989..8a9e897 100644 --- a/openssl/Pkgfile +++ b/openssl/Pkgfile @@ -4,7 +4,7 @@ # Arch Maintainer: CRUX-ARM System Team, devel at crux-arm dot nu name=openssl -version=1.0.2p +version=1.0.2q release=1 source=(http://www.openssl.org/source/$name-$version.tar.gz \ mksslcert.sh) -- 2.26.2 From 8a62059c06a3a6046e76aa4af9c28ec8be70aa31 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Thu, 22 Nov 2018 18:47:22 +0100 Subject: [PATCH 09/16] util-linux: updated to 2.33 --- util-linux/.footprint | 1 + util-linux/.md5sum | 2 +- util-linux/Pkgfile | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/util-linux/.footprint b/util-linux/.footprint index 6added8..dab5499 100644 --- a/util-linux/.footprint +++ b/util-linux/.footprint @@ -54,6 +54,7 @@ drwxr-xr-x root/root usr/ drwxr-xr-x root/root usr/bin/ -rwxr-xr-x root/root usr/bin/cal -rwxr-xr-x root/root usr/bin/chmem +-rwxr-xr-x root/root usr/bin/choom -rwxr-xr-x root/root usr/bin/chrt -rwxr-xr-x root/root usr/bin/col -rwxr-xr-x root/root usr/bin/colcrt diff --git a/util-linux/.md5sum b/util-linux/.md5sum index b48d89d..f3816e7 100644 --- a/util-linux/.md5sum +++ b/util-linux/.md5sum @@ -1 +1 @@ -9e5b1b8c1dc99455bdb6b462cf9436d9 util-linux-2.32.1.tar.xz +3cdf1c652007610f92076ba4212381a9 util-linux-2.33.tar.xz diff --git a/util-linux/Pkgfile b/util-linux/Pkgfile index c3351eb..2e9755c 100644 --- a/util-linux/Pkgfile +++ b/util-linux/Pkgfile @@ -5,7 +5,7 @@ # Depends on: eudev ncurses zlib name=util-linux -version=2.32.1 +version=2.33 release=1 source=(https://www.kernel.org/pub/linux/utils/$name/v${version:0:4}/$name-$version.tar.xz) -- 2.26.2 From f3ac37272fa53e5cea5ed5eeeaa041b3a75535de Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Fri, 23 Nov 2018 18:46:59 +0100 Subject: [PATCH 10/16] Removed .md5sum files and added .signature files --- binutils/.md5sum | 1 - binutils/.signature | 5 +++++ db/.md5sum | 1 - db/.signature | 5 +++++ filesystem/.md5sum | 9 --------- filesystem/.signature | 13 +++++++++++++ gcc/.md5sum | 3 --- gcc/.signature | 7 +++++++ glibc/.md5sum | 8 -------- glibc/.signature | 12 ++++++++++++ kbd/.md5sum | 1 - kbd/.signature | 5 +++++ libgmp/.md5sum | 1 - libgmp/.signature | 5 +++++ openrdate/.md5sum | 3 --- openrdate/.signature | 7 +++++++ openssl/.md5sum | 2 -- openssl/.signature | 6 ++++++ pkgutils/.md5sum | 2 -- pkgutils/.signature | 6 ++++++ ports/.md5sum | 15 --------------- ports/.signature | 19 +++++++++++++++++++ prt-get/.md5sum | 3 --- prt-get/.signature | 7 +++++++ psmisc/.md5sum | 1 - psmisc/.signature | 5 +++++ sysfsutils/.md5sum | 1 - sysfsutils/.signature | 5 +++++ util-linux/.md5sum | 1 - util-linux/.signature | 5 +++++ 30 files changed, 112 insertions(+), 52 deletions(-) delete mode 100644 binutils/.md5sum create mode 100644 binutils/.signature delete mode 100644 db/.md5sum create mode 100644 db/.signature delete mode 100644 filesystem/.md5sum create mode 100644 filesystem/.signature delete mode 100644 gcc/.md5sum create mode 100644 gcc/.signature delete mode 100644 glibc/.md5sum create mode 100644 glibc/.signature delete mode 100644 kbd/.md5sum create mode 100644 kbd/.signature delete mode 100644 libgmp/.md5sum create mode 100644 libgmp/.signature delete mode 100644 openrdate/.md5sum create mode 100644 openrdate/.signature delete mode 100644 openssl/.md5sum create mode 100644 openssl/.signature delete mode 100644 pkgutils/.md5sum create mode 100644 pkgutils/.signature delete mode 100644 ports/.md5sum create mode 100644 ports/.signature delete mode 100644 prt-get/.md5sum create mode 100644 prt-get/.signature delete mode 100644 psmisc/.md5sum create mode 100644 psmisc/.signature delete mode 100644 sysfsutils/.md5sum create mode 100644 sysfsutils/.signature delete mode 100644 util-linux/.md5sum create mode 100644 util-linux/.signature diff --git a/binutils/.md5sum b/binutils/.md5sum deleted file mode 100644 index f95f910..0000000 --- a/binutils/.md5sum +++ /dev/null @@ -1 +0,0 @@ -9af59a2ca3488823e453bb356fe0f113 binutils-2.29.1.tar.bz2 diff --git a/binutils/.signature b/binutils/.signature new file mode 100644 index 0000000..4cc6204 --- /dev/null +++ b/binutils/.signature @@ -0,0 +1,5 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2ZwHR/kkYfSZrXG1FM0PVSx6oIBsKlqcuopnhwDKlm0cY+QSJbqOz4A/efSwcmv/s06BwTmrCujAbGRGB5Uf3Qg= +SHA256 (Pkgfile) = 0c5dc829d80e7bec4110c0c492e29026d057a833057a16a8811f7bc0f628beac +SHA256 (.footprint) = 51e190f6d8855de01c7dd2751701da77131f47e37cfdaed8ff29cc8db6db5b0f +SHA256 (binutils-2.29.1.tar.bz2) = 1509dff41369fb70aed23682351b663b56db894034773e6dbf7d5d6071fc55cc diff --git a/db/.md5sum b/db/.md5sum deleted file mode 100644 index 3448f36..0000000 --- a/db/.md5sum +++ /dev/null @@ -1 +0,0 @@ -b99454564d5b4479750567031d66fe24 db-5.3.28.tar.gz diff --git a/db/.signature b/db/.signature new file mode 100644 index 0000000..8c511aa --- /dev/null +++ b/db/.signature @@ -0,0 +1,5 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2XoXBRVpSAkd4mi2oRhxeS2Er8YmLxerzF1WYoEBoiyjxgy4hQ2Lk9SHiE4hRIq1Fc3FUszaGmTR84hHN8prKgE= +SHA256 (Pkgfile) = f4c1bd5df630b5662ce73657272995af0ed89d2f34bbb1826af935a387f1a35a +SHA256 (.footprint) = 3a4d0e8a4f718b7d171558a53799371c27bdcacf7991ef39b5c82e16d51b0f02 +SHA256 (db-5.3.28.tar.gz) = e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628 diff --git a/filesystem/.md5sum b/filesystem/.md5sum deleted file mode 100644 index 35d369a..0000000 --- a/filesystem/.md5sum +++ /dev/null @@ -1,9 +0,0 @@ -2838175205219d8d3609aad83e83f3a6 fstab -7e668cdf21a22956f1bb8ef119c0da07 group -544e18d6d0b5a37c55711c61fe4ea388 issue -346ede8d637940e2898cd29c56a37d30 mime.types -d41d8cd98f00b204e9800998ecf8427e motd -5f548195598fc07c16cf826256d4a471 passwd -4faaa4e1ba24038f8638a0cae5046cfb securetty -cf485c9730cb02e69176eb6aa6b75303 shadow -dc4ff0c96d8dcd2141febc8b766e9a6b shells diff --git a/filesystem/.signature b/filesystem/.signature new file mode 100644 index 0000000..1f1e43c --- /dev/null +++ b/filesystem/.signature @@ -0,0 +1,13 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2Ufybr+QYShJlOoqO0UHvla6l/+iKT/NrzD4mQ5gfSXoNicZs/gEAaiqvZk1UHuLo5uAkqR29QxQWQMKSnio4A4= +SHA256 (Pkgfile) = 87d89d8b8ef7f03e312d227095f6ea06a6dd03cacbe30b4bd6e38f4b750fdbb3 +SHA256 (.footprint) = 63a0c3f368866267abe10cef671ad7bb271546fcefa5896b6ff13853d6b16802 +SHA256 (issue) = 046b10d8ee26d0203ed301913653a31ada287a813e80c2e321bcdeae8137f301 +SHA256 (motd) = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +SHA256 (shells) = f5e8838cb33249bd0ab3a169097bcc411cfb1b37153f268e6655758942e46656 +SHA256 (group) = 2588c227b527f65a31df450e8093eaba65b6cf8a54af63110c29017c660e39d1 +SHA256 (passwd) = 0c1352f12669270fd7987be8cf06f21917c8063773d9e7a00ee7c9f030a4f93a +SHA256 (shadow) = 6c497de1ad43bb6ca95f98ca27dfa652b2072902c862fb5d393356997f921b56 +SHA256 (securetty) = 6f94828d9185fbffe81c41f76cd1fdba6b0058022bba02dd90be5362996aa0f5 +SHA256 (fstab) = b14bf23f78876a1a14bacf9bd1ba251bd70e141da0941e5e3d9a4f28024bf625 +SHA256 (mime.types) = 09ac2ceedd4514829a0bc4b553b9c3b3ba4171436b5a5a33e67989619c6fc661 diff --git a/gcc/.md5sum b/gcc/.md5sum deleted file mode 100644 index 1ad2894..0000000 --- a/gcc/.md5sum +++ /dev/null @@ -1,3 +0,0 @@ -be2da21680f27624f3a87055c4ba5af2 gcc-7.3.0.tar.xz -dd44eeb6b7d12824ac0eb56e95713a59 gcc-aarch64-dirs.patch -a617c4d3fa11e0c9410ac213eb061677 gcc-nocheck-fixincludes.patch diff --git a/gcc/.signature b/gcc/.signature new file mode 100644 index 0000000..d231469 --- /dev/null +++ b/gcc/.signature @@ -0,0 +1,7 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2YH25Fas0IVr51bPReywRhzGHVpUprXYiplWrPOGNmqY6XxXQ6+RXtgpYosVkaHlDLaj9qrc5Yvuy0NT22hbxQg= +SHA256 (Pkgfile) = 9b96a8dddfbf951ecb4f07a7150842a5b4e0441a014e0a435a47a2eee5384d44 +SHA256 (.footprint) = 3e7a94dcd5141fa1579295ebdf9ab71b36b59b752c0e82ff799bac9c96280715 +SHA256 (gcc-7.3.0.tar.xz) = 832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c +SHA256 (gcc-nocheck-fixincludes.patch) = 97f78d8c57e28cb8cc5c38f637783187b52ee66709c0cd22d083270aa7e5c05c +SHA256 (gcc-aarch64-dirs.patch) = 7f6869e18f5c9543f1569e30b9a8ec9713bd2a30e2326974925d2b75201c6ec7 diff --git a/glibc/.md5sum b/glibc/.md5sum deleted file mode 100644 index 5fae7bf..0000000 --- a/glibc/.md5sum +++ /dev/null @@ -1,8 +0,0 @@ -360e6d4a42c595245c2132abd76697fe glibc-2.27-2.patch -898cd5656519ffbc3a03fe811dd89e82 glibc-2.27.tar.xz -96156bec8e05de67384dc93e72bdc313 host.conf -fbbc215a9b15ba4846f326cc88108057 hosts -f7fefce570a3c776e26e778c5e401490 ld.so.conf -2b772ad12fddd77ade316d87bc62a499 linux-4.14.14.tar.xz -75931315bf9bc9be15a5e25e4ddd5f0d nsswitch.conf -acf9daad1ee85de5efd3543965596a63 resolv.conf diff --git a/glibc/.signature b/glibc/.signature new file mode 100644 index 0000000..eaf1d80 --- /dev/null +++ b/glibc/.signature @@ -0,0 +1,12 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2eDd+afYGchg4UMn4JJEOlY5IgVJpz5hM2UMekwkZjhPoF/egScYOjYeIYwt72P5f27bs28QrqXUhMKpgFV2LwI= +SHA256 (Pkgfile) = 7105e0b81d6626e5c171c7cab24ee467b61d32d69a526ffac2de6a8b5ed4f08a +SHA256 (.footprint) = d60f488603a7770f788a4147dd142f0c6d2a44b1c510a4e2a5d8ffffbed3fddd +SHA256 (glibc-2.27.tar.xz) = 5172de54318ec0b7f2735e5a91d908afe1c9ca291fec16b5374d9faadfc1fc72 +SHA256 (linux-4.14.14.tar.xz) = 8b96362eb55ae152555980e7193fe2585b487176fb936cc69b8947d7dd32044a +SHA256 (glibc-2.27-2.patch) = 8387a85759afc94d66e0f318feea849b1c3cd1c4a883c0e5aaa246722ed3bcda +SHA256 (hosts) = 5c02b256c105f1d4a12fb738d71c1bab9eb126533074d7a0c8a14b92670c9431 +SHA256 (resolv.conf) = 72ccb58768a72a771ec37142bc361a18478a07ec9de6e925a20760794389bf51 +SHA256 (nsswitch.conf) = 859b8984e5e90aff3cce8f9779996ae4033b280d2122840e9411e2f44a1c2e61 +SHA256 (host.conf) = 1bffc6575eb6204458758c34656cd44d87e7d89f545055f8857dd8906b7fb277 +SHA256 (ld.so.conf) = 441a37924864b5b063208922ea04a926cd9654e74ed3f160b9d455b56d23387f diff --git a/kbd/.md5sum b/kbd/.md5sum deleted file mode 100644 index 7cd7df7..0000000 --- a/kbd/.md5sum +++ /dev/null @@ -1 +0,0 @@ -c1635a5a83b63aca7f97a3eab39ebaa6 kbd-2.0.4.tar.xz diff --git a/kbd/.signature b/kbd/.signature new file mode 100644 index 0000000..f4ebe2c --- /dev/null +++ b/kbd/.signature @@ -0,0 +1,5 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2RkOJbW/UcIbDBeiYQWRyzr5NME1khYTBBk+ht91UbaW6roVx4SYz9LzsIGPwuEAFfA38AZXGliSe1R6nEO9BAo= +SHA256 (Pkgfile) = 86b91cef0dc3b9c1d66638bd98901b77565fae3bfa4eac6a2a92abd35ed1a46d +SHA256 (.footprint) = 18c9769c1f4af50237f4c5ba4d83bf91f4e95ebf22a30ed20748d525dd53aa70 +SHA256 (kbd-2.0.4.tar.xz) = 5fd90af6beb225a9bb9b9fb414c090fba53c9a55793e172f508cd43652e59a88 diff --git a/libgmp/.md5sum b/libgmp/.md5sum deleted file mode 100644 index 4d2f8b1..0000000 --- a/libgmp/.md5sum +++ /dev/null @@ -1 +0,0 @@ -f58fa8001d60c4c77595fbbb62b63c1d gmp-6.1.2.tar.xz diff --git a/libgmp/.signature b/libgmp/.signature new file mode 100644 index 0000000..db447e7 --- /dev/null +++ b/libgmp/.signature @@ -0,0 +1,5 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2b2PQzUJVsLQDZkxBaTLPM7eaPVUgZJwGJtKd9GnwrW8uXjaOGOzXQ81ju+slHevu2YAeuS+JWpFJOL+5z3VGg8= +SHA256 (Pkgfile) = 8adc5d4da208e4fe353fd3700962cef4cc52a4809b2db32920e00f0eae9c37bc +SHA256 (.footprint) = 218290c3a4ed2797496099c1665969b303bcba4c1ea4ff548283608dea585558 +SHA256 (gmp-6.1.2.tar.xz) = 87b565e89a9a684fe4ebeeddb8399dce2599f9c9049854ca8c0dfbdea0e21912 diff --git a/openrdate/.md5sum b/openrdate/.md5sum deleted file mode 100644 index 34aa263..0000000 --- a/openrdate/.md5sum +++ /dev/null @@ -1,3 +0,0 @@ -30591f4d63ae9ff02ef97775e6d85a82 ntpleaps.patch -ad9bd58e1fb7babc74d0a0a16a1248a2 openrdate-1.2.tar.gz -c212d60bdabec86c27d82b1a19223aa0 rdate diff --git a/openrdate/.signature b/openrdate/.signature new file mode 100644 index 0000000..b3022ce --- /dev/null +++ b/openrdate/.signature @@ -0,0 +1,7 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2fldwHkRiXHAp/oAaWORvpxV6oUreq8njMuF+mIbH12JVeS3LKDiz+nsp+aZc6gIIZShGvodBfxs93T78LR6DQ4= +SHA256 (Pkgfile) = 0ecae1da4634f5148f64b9c1593f533e3eae0c0e12478c0c5ca1933ee1ca5850 +SHA256 (.footprint) = 79491872e3f3d7fcf8b9bb31cccdf16a41987da60df1d6d451d9b62f0335d7d5 +SHA256 (openrdate-1.2.tar.gz) = 2921fc96d4ca676190d6ffd45fa80e107c1fe12291c0c4f64827c29639863332 +SHA256 (rdate) = b050a5e063a5b0b8ce6dde657729335ce7dc3eb02e002fb35f37aa0ef71d3aa1 +SHA256 (ntpleaps.patch) = 4ff6eb862397e05c70713897b3e80dba19160fea3cf8ec608b3d680e3e690a02 diff --git a/openssl/.md5sum b/openssl/.md5sum deleted file mode 100644 index 05a15b6..0000000 --- a/openssl/.md5sum +++ /dev/null @@ -1,2 +0,0 @@ -91f85842d2118003ee465c34259047e6 mksslcert.sh -7563e1ce046cb21948eeb6ba1a0eb71c openssl-1.0.2q.tar.gz diff --git a/openssl/.signature b/openssl/.signature new file mode 100644 index 0000000..b886cab --- /dev/null +++ b/openssl/.signature @@ -0,0 +1,6 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2WIX9/wmCXS27hZB6FZEyR9hJsnnlOXaVagfD5anGGqOV+BK3H287m/MQDqCLBfL0CHL1NrZvYIbsPJU1OyP7Q4= +SHA256 (Pkgfile) = 11dafcd31b941b9b5fc6959e74b5e194ca3fa99e29f8e6fe852753f9a53fcb2a +SHA256 (.footprint) = 07476111fb5b433bc11307ea18932c584bcddfd4ba84fc04df281db39d8a2bee +SHA256 (openssl-1.0.2q.tar.gz) = 5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684 +SHA256 (mksslcert.sh) = d01cfd061b792f4f7444429582c5c9e83aaa7fc63cafd05669fd3f2970dff779 diff --git a/pkgutils/.md5sum b/pkgutils/.md5sum deleted file mode 100644 index 2e46a38..0000000 --- a/pkgutils/.md5sum +++ /dev/null @@ -1,2 +0,0 @@ -87178832f82ac953b6c125cd71204c8c pkgmk.conf.patch -526c897cb2ba8f1659545608fe629cab pkgutils-5.40.7.tar.xz diff --git a/pkgutils/.signature b/pkgutils/.signature new file mode 100644 index 0000000..dd09bf8 --- /dev/null +++ b/pkgutils/.signature @@ -0,0 +1,6 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2V+3udHdByD0Tmv8hkQ7YzOKOZjgxnBptIjEdtyI2CSZGwdlYhH2xlmciHb3o3+KPYpoabHbJVB1ae7AWLi8aQI= +SHA256 (Pkgfile) = 584806ef17a01d25735029be7d615dbcde72f0ae7fd2e3dbe61f02ca403b6477 +SHA256 (.footprint) = e7d863393a07a29b512a2b627a65f731d8896bf0ee75cf430a9b1423716ae437 +SHA256 (pkgutils-5.40.7.tar.xz) = ee9e3e7258983ffabe5959736e8f029c02b0ea1037b2bb588a88daafcda0fafc +SHA256 (pkgmk.conf.patch) = d56b8250d6116223e021b634fdb7c7ed6a436f959950b13c78927e0c5659fd0d diff --git a/ports/.md5sum b/ports/.md5sum deleted file mode 100644 index c5e20e0..0000000 --- a/ports/.md5sum +++ /dev/null @@ -1,15 +0,0 @@ -804bb419e539a70ad80e4c03df3c3411 contrib.pub -85da0c1d6c822bc6fb20b0ecdd06b3f5 contrib.rsync.inactive -3efeabfbd7104b1c566b604f802ef0c0 core-arm64.pub -9d2281b074956b09826c8dcb697c1306 core-arm64.rsync -b8dd0aad383810cad920d6548cd1cb56 core.pub -87528a9bc5205ed8589e7964e34571ae core.rsync -246bdcd2c5d85192fc45e320174fb121 opt-arm64.pub -2bcb297c7873bd18e0a8772f567cbcfd opt-arm64.rsync -0d1f1fde50a9bd743d9cac6b235f038c opt.pub -b1302ff270238b1450c1a025c42fd8e1 opt.rsync -1f178e2bb1beab9782993931c9832280 ports-1.5.tar.gz -c56a20ef43a22c8e294d850935f80acd xorg-arm64.pub -0408bc71c0eeabdaf977812716f722f8 xorg-arm64.rsync -69927e5d0ae5dc3455faeaac916c4db2 xorg.pub -89768ed603f9f19e48de1951191594f8 xorg.rsync diff --git a/ports/.signature b/ports/.signature new file mode 100644 index 0000000..5b49919 --- /dev/null +++ b/ports/.signature @@ -0,0 +1,19 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2VBDbZ2shX7WYhlIqJGjwnsxiDG7M+akRjWDZEKNVgtGR5T8GTDQo5m4Ps6Dy9ugng0wIPXnlzEqUuQ0p32R7A4= +SHA256 (Pkgfile) = 950ad6b14d9ba510d3235ad780830f08a12253decd6cae3c5515c63c43ce2722 +SHA256 (.footprint) = 458b2fb1f74ff6f41fddcdb2c45d2997ceb9181105bde7e8e2e341ebb58fbb4e +SHA256 (ports-1.5.tar.gz) = 4360d5c96ccfa2cadf084307df418d1e86c60afe775e29c036b518f6b2d6c156 +SHA256 (core.pub) = 5a08b7f21fb1768b9e639da0b768edb536de0590b75e663dab6d185617613791 +SHA256 (opt.pub) = 4711f488546c38cdec792c1f16b3bf7c4db0c7dc0c3cdab0ecdd85e2c7247ae5 +SHA256 (xorg.pub) = 5db27d455f658ea8a6c7ae9aac601d66e74cedff5dd497910fd1ffead08e5237 +SHA256 (contrib.pub) = cae797c624547b5ffb643f4cdf60d83a7cc28081f5929b882d48085085d76190 +SHA256 (core.rsync) = c9ee13baf6e06ebae46977376f501b480e5536759351e07fc7c0b685d2436156 +SHA256 (opt.rsync) = 8b23b2aa0eb05ff4bc91fa751f89613ca05795291bbc861600bcb678aaffb83e +SHA256 (xorg.rsync) = 829c9b9eb5a6932c014e44708da343195a56e31e1bb3ef11ac5ad667b6b3db9c +SHA256 (contrib.rsync.inactive) = 7fc78f8ff7d6f8f416d245b8e279305f54e52a87c008a2794456499455b6a0ab +SHA256 (core-arm64.rsync) = 9d48b9364989437ee655e19d5d90de0191e64a078c2c1905f0750597dbdd08bc +SHA256 (core-arm64.pub) = f0d3e788325112cc541116e261adbe2c14d0bbb921a66040badf0d9e030e0957 +SHA256 (opt-arm64.rsync) = f1e35186b0bdfbfb5e7ac7c6374ec11f89ba1a86d2554b97b05cea5967f98b3d +SHA256 (opt-arm64.pub) = c079759a335314f26bc027856981a00f1251b3e6d782ae7317396e3908d9a9ee +SHA256 (xorg-arm64.rsync) = 6a1f5fb569b4a1ad718c517488cd73b6a530dce129459ae9177a74e0c4f9ccc8 +SHA256 (xorg-arm64.pub) = 1f54f0323e0f32fae1d9b6ef0e9f09a034ce4e39ebb36db59bcb5c2829ac62f5 diff --git a/prt-get/.md5sum b/prt-get/.md5sum deleted file mode 100644 index c4a6817..0000000 --- a/prt-get/.md5sum +++ /dev/null @@ -1,3 +0,0 @@ -b41d93f001adaf6926a7e98e903058fe prt-get-5.19.1.tar.xz -4f6b710e4d2b18c70cfe5e4a593938b7 prt-get.aliases -87c71bdb5fa16801fadabb5f633b3e1a prt-get.conf diff --git a/prt-get/.signature b/prt-get/.signature new file mode 100644 index 0000000..55e632e --- /dev/null +++ b/prt-get/.signature @@ -0,0 +1,7 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2bPSSz9hR6QQV+nBXrWeYzTgk9K/R5tsXU+eNpZrk90Ft+XcWNO6e07TkO7fDMRBlHmdN05I0hxkqy7rMDAVVAw= +SHA256 (Pkgfile) = 743ad16ccc253733fcd10ed04eaf0c1c9fb17f2f1c84fb0415a6632725e903b0 +SHA256 (.footprint) = 9a36be18f29307db9bfad99ab7bd2fd07b8342b935406bc89b7bde8f804292b6 +SHA256 (prt-get-5.19.1.tar.xz) = ccfacb70941452ff487ed1beb62d1e02e94d7eaa5abdba2b20994886c9606e5d +SHA256 (prt-get.conf) = 1942b51533cd342f17627df71d57076ab1c5716d14487abfc6db96fe50dbd61a +SHA256 (prt-get.aliases) = df473d38e59d1d6cd859d986a5d6586fdc54bfd51663313c63a939e941984b7b diff --git a/psmisc/.md5sum b/psmisc/.md5sum deleted file mode 100644 index 621104a..0000000 --- a/psmisc/.md5sum +++ /dev/null @@ -1 +0,0 @@ -bbba1f701c02fb50d59540d1ff90d8d1 psmisc-23.1.tar.xz diff --git a/psmisc/.signature b/psmisc/.signature new file mode 100644 index 0000000..9fec803 --- /dev/null +++ b/psmisc/.signature @@ -0,0 +1,5 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2XNt3ebnbN+A4nWLO7O4UJVgwrLg7YULLLpMmumFIfyBwNVvScWfJeta/HXs7PKyKrt/OwMEJyeK4f+fmMh7MQI= +SHA256 (Pkgfile) = 9f5393817b4e4cb515f5b78309ca7b182ade6e4e2bc37e5383329369333472e2 +SHA256 (.footprint) = 106c0c56fbd7a61af4bc6e1febfca02cb45261f004f387ef0dc280e1abaed285 +SHA256 (psmisc-23.1.tar.xz) = 2e84d474cf75dfbe3ecdacfb797bbfab71a35c7c2639d1b9f6d5f18b2149ba30 diff --git a/sysfsutils/.md5sum b/sysfsutils/.md5sum deleted file mode 100644 index 7888ed0..0000000 --- a/sysfsutils/.md5sum +++ /dev/null @@ -1 +0,0 @@ -14e7dcd0436d2f49aa403f67e1ef7ddc sysfsutils-2.1.0.tar.gz diff --git a/sysfsutils/.signature b/sysfsutils/.signature new file mode 100644 index 0000000..4e94384 --- /dev/null +++ b/sysfsutils/.signature @@ -0,0 +1,5 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2UesUHa6Sd3nbFGXE4xMw/LgIWVh9IWem/wSCrwF412cJEC2KO2//iumOuagMzdbD8wtS6URL2dGwp+6SJ3A7AI= +SHA256 (Pkgfile) = 976dad597a606c71c0a330de1a3271f3b737adc91a7af8545f0b377d1532fce5 +SHA256 (.footprint) = 06360197519c00489e8ecb25fd56370071e48098c7d66ae41f100e3344e6dcf7 +SHA256 (sysfsutils-2.1.0.tar.gz) = e865de2c1f559fff0d3fc936e660c0efaf7afe662064f2fb97ccad1ec28d208a diff --git a/util-linux/.md5sum b/util-linux/.md5sum deleted file mode 100644 index f3816e7..0000000 --- a/util-linux/.md5sum +++ /dev/null @@ -1 +0,0 @@ -3cdf1c652007610f92076ba4212381a9 util-linux-2.33.tar.xz diff --git a/util-linux/.signature b/util-linux/.signature new file mode 100644 index 0000000..9857f8e --- /dev/null +++ b/util-linux/.signature @@ -0,0 +1,5 @@ +untrusted comment: verify with /etc/ports/core-arm64.pub +RWSKslkvIwb+2UIM5tE+fGL+diOwK9VWbTP8gL6eR9qArgMzpadE81Ry2s8kKyks4Mb/lMuuQzrdvM6mqmyvBdLHDi5+9aowFQw= +SHA256 (Pkgfile) = 311d502c7379c80d844ccf63a60808a726982e74f5ce14cb0e7d3d43dccce422 +SHA256 (.footprint) = 4022f62de659f8fde15fc2c74a9d95b8a4bbfd7efc3d89242393acfd03a62435 +SHA256 (util-linux-2.33.tar.xz) = f261b9d73c35bfeeea04d26941ac47ee1df937bd3b0583e748217c1ea423658a -- 2.26.2 From f9fa74e48326f450fe556068833d5d71ab7b601b Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Fri, 23 Nov 2018 22:54:55 +0100 Subject: [PATCH 11/16] ports: removed .signature and added .md5sum --- ports/.md5sum | 15 +++++++++++++++ ports/.signature | 19 ------------------- ports/Pkgfile | 2 +- 3 files changed, 16 insertions(+), 20 deletions(-) create mode 100644 ports/.md5sum delete mode 100644 ports/.signature diff --git a/ports/.md5sum b/ports/.md5sum new file mode 100644 index 0000000..c5e20e0 --- /dev/null +++ b/ports/.md5sum @@ -0,0 +1,15 @@ +804bb419e539a70ad80e4c03df3c3411 contrib.pub +85da0c1d6c822bc6fb20b0ecdd06b3f5 contrib.rsync.inactive +3efeabfbd7104b1c566b604f802ef0c0 core-arm64.pub +9d2281b074956b09826c8dcb697c1306 core-arm64.rsync +b8dd0aad383810cad920d6548cd1cb56 core.pub +87528a9bc5205ed8589e7964e34571ae core.rsync +246bdcd2c5d85192fc45e320174fb121 opt-arm64.pub +2bcb297c7873bd18e0a8772f567cbcfd opt-arm64.rsync +0d1f1fde50a9bd743d9cac6b235f038c opt.pub +b1302ff270238b1450c1a025c42fd8e1 opt.rsync +1f178e2bb1beab9782993931c9832280 ports-1.5.tar.gz +c56a20ef43a22c8e294d850935f80acd xorg-arm64.pub +0408bc71c0eeabdaf977812716f722f8 xorg-arm64.rsync +69927e5d0ae5dc3455faeaac916c4db2 xorg.pub +89768ed603f9f19e48de1951191594f8 xorg.rsync diff --git a/ports/.signature b/ports/.signature deleted file mode 100644 index 5b49919..0000000 --- a/ports/.signature +++ /dev/null @@ -1,19 +0,0 @@ -untrusted comment: verify with /etc/ports/core-arm64.pub -RWSKslkvIwb+2VBDbZ2shX7WYhlIqJGjwnsxiDG7M+akRjWDZEKNVgtGR5T8GTDQo5m4Ps6Dy9ugng0wIPXnlzEqUuQ0p32R7A4= -SHA256 (Pkgfile) = 950ad6b14d9ba510d3235ad780830f08a12253decd6cae3c5515c63c43ce2722 -SHA256 (.footprint) = 458b2fb1f74ff6f41fddcdb2c45d2997ceb9181105bde7e8e2e341ebb58fbb4e -SHA256 (ports-1.5.tar.gz) = 4360d5c96ccfa2cadf084307df418d1e86c60afe775e29c036b518f6b2d6c156 -SHA256 (core.pub) = 5a08b7f21fb1768b9e639da0b768edb536de0590b75e663dab6d185617613791 -SHA256 (opt.pub) = 4711f488546c38cdec792c1f16b3bf7c4db0c7dc0c3cdab0ecdd85e2c7247ae5 -SHA256 (xorg.pub) = 5db27d455f658ea8a6c7ae9aac601d66e74cedff5dd497910fd1ffead08e5237 -SHA256 (contrib.pub) = cae797c624547b5ffb643f4cdf60d83a7cc28081f5929b882d48085085d76190 -SHA256 (core.rsync) = c9ee13baf6e06ebae46977376f501b480e5536759351e07fc7c0b685d2436156 -SHA256 (opt.rsync) = 8b23b2aa0eb05ff4bc91fa751f89613ca05795291bbc861600bcb678aaffb83e -SHA256 (xorg.rsync) = 829c9b9eb5a6932c014e44708da343195a56e31e1bb3ef11ac5ad667b6b3db9c -SHA256 (contrib.rsync.inactive) = 7fc78f8ff7d6f8f416d245b8e279305f54e52a87c008a2794456499455b6a0ab -SHA256 (core-arm64.rsync) = 9d48b9364989437ee655e19d5d90de0191e64a078c2c1905f0750597dbdd08bc -SHA256 (core-arm64.pub) = f0d3e788325112cc541116e261adbe2c14d0bbb921a66040badf0d9e030e0957 -SHA256 (opt-arm64.rsync) = f1e35186b0bdfbfb5e7ac7c6374ec11f89ba1a86d2554b97b05cea5967f98b3d -SHA256 (opt-arm64.pub) = c079759a335314f26bc027856981a00f1251b3e6d782ae7317396e3908d9a9ee -SHA256 (xorg-arm64.rsync) = 6a1f5fb569b4a1ad718c517488cd73b6a530dce129459ae9177a74e0c4f9ccc8 -SHA256 (xorg-arm64.pub) = 1f54f0323e0f32fae1d9b6ef0e9f09a034ce4e39ebb36db59bcb5c2829ac62f5 diff --git a/ports/Pkgfile b/ports/Pkgfile index 9897ad5..f82ff51 100644 --- a/ports/Pkgfile +++ b/ports/Pkgfile @@ -6,7 +6,7 @@ name=ports version=1.5 -release=23 +release=24 source=(http://crux.nu/files/tools/ports/$name-$version.tar.gz \ core.pub opt.pub xorg.pub contrib.pub \ core.rsync opt.rsync xorg.rsync contrib.rsync.inactive \ -- 2.26.2 From 19a76243974d3a852592e348ec5300248917d893 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Thu, 29 Nov 2018 19:35:45 +0100 Subject: [PATCH 12/16] glibc: updated to 2.27-3. Fix for CVE-2018-19591 --- glibc/.footprint | 1 + glibc/.signature | 8 +- glibc/Pkgfile | 4 +- ...{glibc-2.27-2.patch => glibc-2.27-3.patch} | 5571 ++++++++++++++--- 4 files changed, 4590 insertions(+), 994 deletions(-) rename glibc/{glibc-2.27-2.patch => glibc-2.27-3.patch} (81%) diff --git a/glibc/.footprint b/glibc/.footprint index fa9ea9c..a0a0178 100644 --- a/glibc/.footprint +++ b/glibc/.footprint @@ -397,6 +397,7 @@ drwxr-xr-x root/root usr/include/gnu/ -rw-r--r-- root/root usr/include/gnu/lib-names.h -rw-r--r-- root/root usr/include/gnu/libc-version.h -rw-r--r-- root/root usr/include/gnu/stubs-lp64.h +lrwxrwxrwx root/root usr/include/gnu/stubs-soft.h -> stubs-hard.h -rw-r--r-- root/root usr/include/gnu/stubs.h -rw-r--r-- root/root usr/include/grp.h -rw-r--r-- root/root usr/include/gshadow.h diff --git a/glibc/.signature b/glibc/.signature index eaf1d80..7bce780 100644 --- a/glibc/.signature +++ b/glibc/.signature @@ -1,10 +1,10 @@ untrusted comment: verify with /etc/ports/core-arm64.pub -RWSKslkvIwb+2eDd+afYGchg4UMn4JJEOlY5IgVJpz5hM2UMekwkZjhPoF/egScYOjYeIYwt72P5f27bs28QrqXUhMKpgFV2LwI= -SHA256 (Pkgfile) = 7105e0b81d6626e5c171c7cab24ee467b61d32d69a526ffac2de6a8b5ed4f08a -SHA256 (.footprint) = d60f488603a7770f788a4147dd142f0c6d2a44b1c510a4e2a5d8ffffbed3fddd +RWSKslkvIwb+2T386LZ1wyW5Dm0BRbYx9O/N2eQmJSZGWEwu9kFcSyL5mcpDLDvZMZEBQj1l4swnFDbjoj+noxnsx8fNzcIA6gU= +SHA256 (Pkgfile) = 57138f23f9834fc3f6065de3577a50b10e57974d11bc649a89c00089e9383f87 +SHA256 (.footprint) = 1b0bb71f428efe2b5328a0391c664a88b56f0dbe66d0f9416d0a73c10afb3c00 SHA256 (glibc-2.27.tar.xz) = 5172de54318ec0b7f2735e5a91d908afe1c9ca291fec16b5374d9faadfc1fc72 SHA256 (linux-4.14.14.tar.xz) = 8b96362eb55ae152555980e7193fe2585b487176fb936cc69b8947d7dd32044a -SHA256 (glibc-2.27-2.patch) = 8387a85759afc94d66e0f318feea849b1c3cd1c4a883c0e5aaa246722ed3bcda +SHA256 (glibc-2.27-3.patch) = 1dcfe456362f901bd48752bee6432b24b85f145c1e0bdc6ebedf4f9c93fad111 SHA256 (hosts) = 5c02b256c105f1d4a12fb738d71c1bab9eb126533074d7a0c8a14b92670c9431 SHA256 (resolv.conf) = 72ccb58768a72a771ec37142bc361a18478a07ec9de6e925a20760794389bf51 SHA256 (nsswitch.conf) = 859b8984e5e90aff3cce8f9779996ae4033b280d2122840e9411e2f44a1c2e61 diff --git a/glibc/Pkgfile b/glibc/Pkgfile index dd03b38..9e9ea9d 100644 --- a/glibc/Pkgfile +++ b/glibc/Pkgfile @@ -6,10 +6,10 @@ name=glibc version=2.27 -release=2 +release=3 source=(http://ftp.gnu.org/gnu/glibc/glibc-$version.tar.xz \ http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.14.tar.xz \ - glibc-2.27-2.patch \ + glibc-$version-$release.patch \ hosts resolv.conf nsswitch.conf host.conf ld.so.conf) build() { diff --git a/glibc/glibc-2.27-2.patch b/glibc/glibc-2.27-3.patch similarity index 81% rename from glibc/glibc-2.27-2.patch rename to glibc/glibc-2.27-3.patch index d802c45..b7438ff 100644 --- a/glibc/glibc-2.27-2.patch +++ b/glibc/glibc-2.27-3.patch @@ -1,8 +1,221 @@ diff --git a/ChangeLog b/ChangeLog -index f3fe2716b2..6fba508ae1 100644 +index f3fe2716b2..2f1e82b61c 100644 --- a/ChangeLog +++ b/ChangeLog -@@ -1,3 +1,431 @@ +@@ -1,3 +1,644 @@ ++2018-11-27 Florian Weimer ++ ++ [BZ #23927] ++ CVE-2018-19591 ++ * sysdeps/unix/sysv/linux/if_index.c (__if_nametoindex): Avoid ++ descriptor leak in case of ENODEV error. ++ ++2018-11-08 Alexandra Hájková ++ ++ [BZ #17630] ++ * resolv/tst-resolv-network.c: Add test for getnetbyname. ++ ++2018-11-05 Andreas Schwab ++ ++ [BZ #22927] ++ * resolv/gai_misc.c (__gai_enqueue_request): Don't crash if ++ creating the first helper thread failed. ++ ++2018-10-23 Adhemerval Zanella ++ ++ [BZ #23709] ++ * sysdeps/x86/cpu-features.c (init_cpu_features): Set TSX bits ++ independently of other flags. ++ ++2018-10-26 Szabolcs Nagy ++ ++ [BZ #23822] ++ * sysdeps/ia64/fpu/e_exp2f.S (exp2f): Use WEAK_LIBM_ENTRY. ++ * sysdeps/ia64/fpu/e_log2f.S (log2f): Likewise. ++ * sysdeps/ia64/fpu/e_exp2f.S (powf): Likewise. ++ ++2018-10-25 Florian Weimer ++ ++ [BZ #23562] ++ [BZ #23821] ++ XFAIL siginfo_t si_band conform test on sparc64. ++ * sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h ++ (__SI_BAND_TYPE): Only override long int default type on sparc64. ++ * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile ++ (conformtest-xfail-conds): Add sparc64-linux. ++ * conform/data/signal.h-data (siginfo_t): XFAIL si_band test on ++ sparc64. ++ * conform/data/sys/wait.h-data (siginfo_t): Likewise. ++ ++2018-10-19 Ilya Yu. Malakhov ++ ++ [BZ #23562] ++ * sysdeps/unix/sysv/linux/bits/types/siginfo_t.h ++ (struct siginfo_t): Use correct type for si_band. ++ ++2018-10-17 Stefan Liebler ++ ++ [BZ #23275] ++ * nptl/tst-mutex10.c: New File. ++ * nptl/Makefile (tests): Add tst-mutex10. ++ (tst-mutex10-ENV): New variable. ++ * sysdeps/unix/sysv/linux/s390/force-elision.h: (FORCE_ELISION): ++ Ensure that elision path is used if elision is available. ++ * sysdeps/unix/sysv/linux/powerpc/force-elision.h (FORCE_ELISION): ++ Likewise. ++ * sysdeps/unix/sysv/linux/x86/force-elision.h: (FORCE_ELISION): ++ Likewise. ++ * nptl/pthreadP.h (PTHREAD_MUTEX_TYPE, PTHREAD_MUTEX_TYPE_ELISION) ++ (PTHREAD_MUTEX_PSHARED): Use atomic_load_relaxed. ++ * nptl/pthread_mutex_consistent.c (pthread_mutex_consistent): Likewise. ++ * nptl/pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): ++ Likewise. ++ * nptl/pthread_mutex_lock.c (__pthread_mutex_lock_full) ++ (__pthread_mutex_cond_lock_adjust): Likewise. ++ * nptl/pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): ++ Likewise. ++ * nptl/pthread_mutex_timedlock.c (__pthread_mutex_timedlock): Likewise. ++ * nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise. ++ * nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Likewise. ++ * sysdeps/nptl/bits/thread-shared-types.h (struct __pthread_mutex_s): ++ Add comments. ++ * nptl/pthread_mutex_destroy.c (__pthread_mutex_destroy): ++ Use atomic_load_relaxed and atomic_store_relaxed. ++ * nptl/pthread_mutex_init.c (__pthread_mutex_init): ++ Use atomic_store_relaxed. ++ ++2018-09-28 Adhemerval Zanella ++ ++ [BZ #23579] ++ * misc/tst-preadvwritev2-common.c (do_test_with_invalid_fd, ++ do_test_with_invalid_iov): New tests. ++ * misc/tst-preadvwritev2.c, misc/tst-preadvwritev64v2.c (do_test): ++ Call do_test_with_invalid_fd and do_test_with_invalid_iov. ++ * sysdeps/unix/sysv/linux/preadv2.c (preadv2): Use fallback code iff ++ errno is ENOSYS. ++ * sysdeps/unix/sysv/linux/preadv64v2.c (preadv64v2): Likewise. ++ * sysdeps/unix/sysv/linux/pwritev2.c (pwritev2): Likewise. ++ * sysdeps/unix/sysv/linux/pwritev64v2.c (pwritev64v2): Likewise. ++ * NEWS: Add bug fixed. ++ ++2018-09-28 Florian Weimer ++ ++ [BZ #22753] ++ * sysdeps/posix/preadv2.c (preadv2): Handle offset == -1. ++ * sysdeps/posix/preadv64v2.c (preadv64v2): Likewise. ++ * sysdeps/posix/pwritev2.c (pwritev2): Likewise. ++ * sysdeps/posix/pwritev64v2.c (pwritev64v2): Likweise. ++ * sysdeps/unix/sysv/linux/preadv2.c (preadv2): Likewise. ++ * sysdeps/unix/sysv/linux/preadv64v2.c (preadv64v2): Likewise. ++ * sysdeps/unix/sysv/linux/pwritev2.c (pwritev2): Likewise. ++ * sysdeps/unix/sysv/linux/pwritev64v2.c (pwritev64v2): Likweise. ++ * manual/llio.texi (Scatter-Gather): Mention offset -1. ++ * misc/tst-preadvwritev-common.c (do_test_without_offset): New. ++ * misc/tst-preadvwritev2.c (do_test): Call it. ++ * misc/tst-preadvwritev64v2.c (do_test): Likewise. ++ * NEWS: Add bug fixed. ++ ++2018-09-06 Stefan Liebler ++ ++ * sysdeps/unix/sysv/linux/spawni.c (maybe_script_execute): ++ Increment size of new_argv by one. ++ ++2018-08-27 Martin Kuchta ++ Torvald Riegel ++ ++ [BZ #23538] ++ * nptl/pthread_cond_common.c (__condvar_quiesce_and_switch_g1): ++ Update r to include the set wake-request flag if waiters are ++ remaining after spinning. ++ ++2018-07-29 H.J. Lu ++ ++ [BZ #23459] ++ * sysdeps/x86/cpu-features.c (get_extended_indices): New ++ function. ++ (init_cpu_features): Call get_extended_indices for both Intel ++ and AMD CPUs. ++ * sysdeps/x86/cpu-features.h (COMMON_CPUID_INDEX_80000001): ++ Remove "for AMD" comment. ++ ++2018-07-29 H.J. Lu ++ ++ [BZ #23456] ++ * sysdeps/x86/cpu-features.h (index_cpu_LZCNT): Set to ++ COMMON_CPUID_INDEX_80000001. ++ ++2018-07-10 Florian Weimer ++ ++ [BZ #23036] ++ * posix/regexec.c (check_node_accept_bytes): When comparing ++ weights, do not compare an extra byte after the end of the ++ weights. ++ ++2018-06-29 Sylvain Lesage ++ ++ [BZ #22996] ++ * localedata/locales/es_BO (LC_PAPER): Change to “copy "en_US"”. ++ ++2018-07-06 Florian Weimer ++ ++ * conform/conformtest.pl (checknamespace): Escape literal braces ++ in regular expressions. ++ ++2018-06-21 Florian Weimer ++ ++ [BZ #23253] ++ * sysdeps/generic/math_private.h (default_libc_feholdsetround_ctx): ++ Renamed from libc_feholdsetround_ctx. ++ (default_libc_feresetround_ctx): Renamed from ++ libc_feresetround_ctx. ++ (default_libc_feholdsetround_noex_ctx): Renamed from ++ libc_feholdsetround_noex_ctx. ++ (default_libc_feresetround_noex_ctx): Renamed from ++ libc_feresetround_noex_ctx. ++ [!HAVE_RM_CTX] (libc_feholdsetround_ctx, libc_feresetround_ctx) ++ (libc_feholdsetround_noex_ctx, libc_feresetround_noex_ctx): Macros ++ forwardning to the old implementations under the new names. ++ * sysdeps/i386/fpu/fenv_private.h [__SSE_MATH__] ++ (libc_feholdexcept_setround_ctx, libc_fesetenv_ctx) ++ (libc_feupdateenv_ctx, libc_feholdsetround_ctx) ++ (libc_feresetround_ctx): Forward to default implements for i386 ++ and MATH_SET_BOTH_ROUNDING_MODES. ++ * sysdeps/i386/Makefile [$(subdir) == math] (CFLAGS-e_gamma_r.c): ++ Add -DMATH_SET_BOTH_ROUNDING_MODES. ++ ++2018-07-03 Florian Weimer ++ ++ [BZ #23363] ++ * stdio-common/tst-printf.c (DEC, INT, UNS, fp_test): Remove. ++ * stdio-common/tst-printf.sh: Adjust expected output. ++ * LICENSES: Update. ++ ++2018-06-26 Florian Weimer ++ ++ * libio/Makefile (tests-internal): Add tst-vtables, ++ tst-vtables-interposed. ++ * libio/tst-vtables.c: New file. ++ * libio/tst-vtables-common.c: Likewise. ++ * libio/tst-vtables-interposed.c: Likewise. ++ ++2018-06-26 Florian Weimer ++ ++ [BZ #23313] ++ * libio/vtables.c (check_stdfiles_vtables): New ELF constructor. ++ ++2018-06-29 Daniel Alvarez ++ Jakub Sitnicki ++ ++ [BZ #21812] ++ * sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs_internal): Retry ++ on NLM_F_DUMP_INTR. ++ ++2018-06-28 Florian Weimer ++ ++ [BZ #23349] ++ * time/bits/types/struct_timespec.h: Change header inclusion guard to ++ _STRUCT_TIMESPEC. ++ +2018-05-24 Gabriel F. T. Gomes + + [BZ #23171] @@ -434,7 +647,7 @@ index f3fe2716b2..6fba508ae1 100644 2018-02-01 Dmitry V. Levin * version.h (RELEASE): Set to "stable". -@@ -710,7 +1138,9 @@ +@@ -710,7 +1351,9 @@ 2018-01-18 Arjun Shankar [BZ #22343] @@ -444,11 +657,31 @@ index f3fe2716b2..6fba508ae1 100644 * malloc/malloc.c (checked_request2size): call REQUEST_OUT_OF_RANGE after padding. (_int_memalign): check for integer overflow before calling +diff --git a/LICENSES b/LICENSES +index 80f7f14879..858076d9d3 100644 +--- a/LICENSES ++++ b/LICENSES +@@ -441,15 +441,6 @@ Permission to use, copy, modify, and distribute this + software is freely granted, provided that this notice + is preserved. + +-Part of stdio-common/tst-printf.c is copyright C E Chew: +- +-(C) Copyright C E Chew +- +-Feel free to copy, use and distribute this software provided: +- +- 1. you do not pretend that you wrote it +- 2. you leave this copyright notice intact. +- + Various long double libm functions are copyright Stephen L. Moshier: + + Copyright 2001 by Stephen L. Moshier diff --git a/NEWS b/NEWS -index a71c1038a8..2dab66e851 100644 +index a71c1038a8..e1a23f076b 100644 --- a/NEWS +++ b/NEWS -@@ -5,6 +5,83 @@ See the end for copying conditions. +@@ -5,6 +5,105 @@ See the end for copying conditions. Please send GNU C library bug reports via using `glibc' in the "product" field. @@ -484,6 +717,10 @@ index a71c1038a8..2dab66e851 100644 + architecture could write beyond the target buffer, resulting in a buffer + overflow. Reported by Andreas Schwab. + ++ CVE-2018-19591: A file descriptor leak in if_nametoindex can lead to a ++ denial of service due to resource exhaustion when processing getaddrinfo ++ calls with crafted host names. Reported by Guido Vranken. ++ +The following bugs are resolved with this release: + + [6889] 'PWD' mentioned but not specified @@ -492,6 +729,7 @@ index a71c1038a8..2dab66e851 100644 + [18018] Additional $ORIGIN handling issues (CVE-2011-0536) + [20419] files with large allocated notes crash in open_verify + [21269] i386 sigaction sa_restorer handling is wrong ++ [21812] getifaddrs: Don't return ifa entries with NULL names + [21942] _dl_dst_substitute incorrectly handles $ORIGIN: with AT_SECURE=1 + [22342] NSCD not properly caching netgroup + [22638] sparc: static binaries are broken if glibc is built by gcc @@ -499,6 +737,7 @@ index a71c1038a8..2dab66e851 100644 + [22644] memmove-sse2-unaligned on 32bit x86 produces garbage when crossing + 2GB threshold + [22735] Misleading typo in time.h source comment regarding CLOCKS_PER_SECOND ++ [22753] libc: preadv2/pwritev2 fallback code should handle offset=-1 + [22786] Stack buffer overflow in realpath() if input size is close + to SSIZE_MAX + [22797] Linux: use reserved name __key in pkey_get @@ -510,11 +749,14 @@ index a71c1038a8..2dab66e851 100644 + [22918] multiple common of `__nss_shadow_database' + [22919] sparc32: backtrace yields infinite backtrace with makecontext + [22926] FTBFS on powerpcspe ++ [22927] libanl: properly cleanup if first helper thread creation failed + [22932] lt_LT: Update of abbreviated month names from CLDR required + [22937] Greek (el_GR, el_CY) locales actually need ab_alt_mon + [22947] FAIL: misc/tst-preadvwritev2 + [22963] cs_CZ: Add alternative month names ++ [22996] localedata: change LC_PAPER to en_US in es_BO locale + [23005] Crash in __res_context_send after memory allocation failure ++ [23036] regexec: Fix off-by-one bug in weight comparison + [23037] initialize msg_flags to zero for sendmmsg() calls + [23069] sigaction broken on riscv64-linux-gnu + [23102] Incorrect parsing of consecutive $ variables in runpath entries @@ -525,14 +767,27 @@ index a71c1038a8..2dab66e851 100644 + [23171] Fix parameter type in C++ version of iseqsig + [23196] __mempcpy_avx512_no_vzeroupper mishandles large copies + [23236] Harden function pointers in _IO_str_fields ++ [23253] Set 387 and SSE2 rounding mode for tgamma on i386 + [23259] Unsubstituted ${ORIGIN} remains in DT_NEEDED for AT_SECURE + [23264] libc: posix_spawnp wrongly executes ENOEXEC in non compat mode ++ [23313] libio: Disable vtable validation in case of interposition ++ [23349] Various glibc headers no longer compatible with ++ [23363] stdio-common/tst-printf.c has non-free license ++ [23456] Wrong index_cpu_LZCNT ++ [23459] COMMON_CPUID_INDEX_80000001 isn't populated for Intel processors ++ [23538] pthread_cond_broadcast: Fix waiters-after-spinning case ++ [23562] signal: Use correct type for si_band in siginfo_t ++ [23579] libc: Errors misreported in preadv2 ++ [23709] Fix CPU string flags for Haswell-type CPUs ++ [23821] si_band in siginfo_t has wrong type long int on sparc64 ++ [23822] ia64 static libm.a is missing exp2f, log2f and powf symbols ++ [23927] Linux if_nametoindex() does not close descriptor (CVE-2018-19591) + + Version 2.27 Major new features: -@@ -262,6 +339,10 @@ Security related changes: +@@ -262,6 +361,10 @@ Security related changes: an object size near the value of SIZE_MAX, would return a pointer to a buffer which is too small, instead of NULL. Reported by Jakub Wilk. @@ -554,6 +809,133 @@ index 8c15a05d9a..d5aa06fd08 100644 +#define RWF_APPEND 0x00000010 /* per-IO O_APPEND. */ #endif /* sys/uio_ext.h */ +diff --git a/conform/conformtest.pl b/conform/conformtest.pl +index cb500f0e76..a4ef756105 100644 +--- a/conform/conformtest.pl ++++ b/conform/conformtest.pl +@@ -367,7 +367,7 @@ while ($#headers >= 0) { + s/^optional-//; + $optional = 1; + } +- if (/^element *({([^}]*)}|([^{ ]*)) *({([^}]*)}|([^{ ]*)) *([A-Za-z0-9_]*) *(.*)/) { ++ if (/^element *(\{([^}]*)\}|([^{ ]*)) *(\{([^}]*)\}|([^{ ]*)) *([A-Za-z0-9_]*) *(.*)/) { + my($struct) = "$2$3"; + my($type) = "$5$6"; + my($member) = "$7"; +@@ -556,7 +556,7 @@ while ($#headers >= 0) { + "Symbol \"$symbol\" has not the right value.", $res, + $xfail); + } +- } elsif (/^type *({([^}]*)|([a-zA-Z0-9_]*))/) { ++ } elsif (/^type *(\{([^}]*)|([a-zA-Z0-9_]*))/) { + my($type) = "$2$3"; + my($maybe_opaque) = 0; + +@@ -586,7 +586,7 @@ while ($#headers >= 0) { + ? "NOT AVAILABLE" + : "Type \"$type\" not available."), $missing, $optional, + $xfail); +- } elsif (/^tag *({([^}]*)|([a-zA-Z0-9_]*))/) { ++ } elsif (/^tag *(\{([^}]*)|([a-zA-Z0-9_]*))/) { + my($type) = "$2$3"; + + # Remember that this name is allowed. +@@ -607,7 +607,7 @@ while ($#headers >= 0) { + + compiletest ($fnamebase, "Testing for type $type", + "Type \"$type\" not available.", $missing, 0, $xfail); +- } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) { ++ } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) { + my($rettype) = "$2$3"; + my($fname) = "$4"; + my($args) = "$5"; +@@ -644,7 +644,7 @@ while ($#headers >= 0) { + "Function \"$fname\" has incorrect type.", $res, 0, + $xfail); + } +- } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { ++ } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { + my($rettype) = "$2$3"; + my($fname) = "$4"; + my($args) = "$5"; +@@ -681,7 +681,7 @@ while ($#headers >= 0) { + "Function \"$fname\" has incorrect type.", $res, 0, + $xfail); + } +- } elsif (/^variable *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) *(.*)/) { ++ } elsif (/^variable *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) *(.*)/) { + my($type) = "$2$3"; + my($vname) = "$4"; + my($rest) = "$5"; +@@ -713,7 +713,7 @@ while ($#headers >= 0) { + + compiletest ($fnamebase, "Test for type of variable $fname", + "Variable \"$vname\" has incorrect type.", $res, 0, $xfail); +- } elsif (/^macro-function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { ++ } elsif (/^macro-function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { + my($rettype) = "$2$3"; + my($fname) = "$4"; + my($args) = "$5"; +@@ -812,11 +812,11 @@ while ($#headers >= 0) { + + s/^xfail(\[([^\]]*)\])?-//; + s/^optional-//; +- if (/^element *({([^}]*)}|([^ ]*)) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) { ++ if (/^element *(\{([^}]*)\}|([^ ]*)) *(\{([^}]*)\}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) { + push @allow, $7; + } elsif (/^(macro|constant|macro-constant|macro-int-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>== 0) { + } else { + push @allow, $type; + } +- } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) { ++ } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) { + push @allow, $4; +- } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { ++ } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { + push @allow, $4; +- } elsif (/^variable *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*)/) { ++ } elsif (/^variable *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*)/) { + push @allow, $4; +- } elsif (/^macro-function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { ++ } elsif (/^macro-function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { + push @allow, $4; + } elsif (/^symbol *([a-zA-Z0-9_]*) *([A-Za-z0-9_-]*)?/) { + push @allow, $1; +diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data +index fa841cfdbe..88c1f5eba2 100644 +--- a/conform/data/signal.h-data ++++ b/conform/data/signal.h-data +@@ -170,7 +170,8 @@ element siginfo_t pid_t si_pid + element siginfo_t uid_t si_uid + element siginfo_t {void*} si_addr + element siginfo_t int si_status +-element siginfo_t long si_band ++// Bug 23821: si_band has type int on sparc64. ++xfail[sparc64-linux]-element siginfo_t long si_band + # endif + # ifndef XPG42 + element siginfo_t {union sigval} si_value +diff --git a/conform/data/sys/wait.h-data b/conform/data/sys/wait.h-data +index 559ebdf677..a6713461ea 100644 +--- a/conform/data/sys/wait.h-data ++++ b/conform/data/sys/wait.h-data +@@ -44,7 +44,8 @@ element siginfo_t pid_t si_pid + element siginfo_t uid_t si_uid + element siginfo_t {void*} si_addr + element siginfo_t int si_status +-element siginfo_t long si_band ++// Bug 23821: si_band has type int on sparc64. ++xfail[sparc64-linux]-element siginfo_t long si_band + # ifndef XPG42 + element siginfo_t {union sigval} si_value + # endif diff --git a/debug/vasprintf_chk.c b/debug/vasprintf_chk.c index a00ef771e6..3eb64617fd 100644 --- a/debug/vasprintf_chk.c @@ -1117,6 +1499,20 @@ index 3d239e8f09..69a4394191 100644 is meaningful only to faccessat, while AT_REMOVEDIR is meaningful only to unlinkat. The two functions do completely different things and therefore, the flags can be allowed to overlap. For example, passing AT_REMOVEDIR to +diff --git a/libio/Makefile b/libio/Makefile +index 918a86bb74..81bd1792a5 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -64,6 +64,9 @@ tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \ + tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek \ + tst-fwrite-error tst-ftell-partial-wide tst-ftell-active-handler \ + tst-ftell-append tst-fputws tst-bz22415 ++ ++tests-internal = tst-vtables tst-vtables-interposed ++ + ifeq (yes,$(build-shared)) + # Add test-fopenloc only if shared library is enabled since it depends on + # shared localedata objects. diff --git a/libio/memstream.c b/libio/memstream.c index d86befcc02..c5c7c2f6db 100644 --- a/libio/memstream.c @@ -1220,227 +1616,846 @@ index ac995c830e..5fb38976e3 100644 fp->_IO_buf_base = NULL; _IO_default_finish (fp, 0); -diff --git a/libio/vasprintf.c b/libio/vasprintf.c -index 390a63d124..0bb217e46e 100644 ---- a/libio/vasprintf.c -+++ b/libio/vasprintf.c -@@ -54,8 +54,8 @@ _IO_vasprintf (char **result_ptr, const char *format, _IO_va_list args) - _IO_JUMPS (&sf._sbf) = &_IO_str_jumps; - _IO_str_init_static_internal (&sf, string, init_string_size, string); - sf._sbf._f._flags &= ~_IO_USER_BUF; -- sf._s._allocate_buffer = (_IO_alloc_type) malloc; -- sf._s._free_buffer = (_IO_free_type) free; -+ sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc; -+ sf._s._free_buffer_unused = (_IO_free_type) free; - ret = _IO_vfprintf (&sf._sbf._f, format, args); - if (ret < 0) - { -diff --git a/libio/wmemstream.c b/libio/wmemstream.c -index c962071d26..f4c6e75246 100644 ---- a/libio/wmemstream.c -+++ b/libio/wmemstream.c -@@ -92,8 +92,8 @@ open_wmemstream (wchar_t **bufloc, _IO_size_t *sizeloc) - _IO_wstr_init_static (&new_f->fp._sf._sbf._f, buf, - _IO_BUFSIZ / sizeof (wchar_t), buf); - new_f->fp._sf._sbf._f._flags2 &= ~_IO_FLAGS2_USER_WBUF; -- new_f->fp._sf._s._allocate_buffer = (_IO_alloc_type) malloc; -- new_f->fp._sf._s._free_buffer = (_IO_free_type) free; -+ new_f->fp._sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc; -+ new_f->fp._sf._s._free_buffer_unused = (_IO_free_type) free; - - new_f->fp.bufloc = bufloc; - new_f->fp.sizeloc = sizeloc; -diff --git a/libio/wstrops.c b/libio/wstrops.c -index a3374a7b15..0839a70bfb 100644 ---- a/libio/wstrops.c -+++ b/libio/wstrops.c -@@ -63,7 +63,7 @@ _IO_wstr_init_static (_IO_FILE *fp, wchar_t *ptr, _IO_size_t size, - fp->_wide_data->_IO_read_end = end; - } - /* A null _allocate_buffer function flags the strfile as being static. */ -- (((_IO_strfile *) fp)->_s._allocate_buffer) = (_IO_alloc_type)0; -+ (((_IO_strfile *) fp)->_s._allocate_buffer_unused) = (_IO_alloc_type)0; - } - - _IO_wint_t -@@ -95,9 +95,7 @@ _IO_wstr_overflow (_IO_FILE *fp, _IO_wint_t c) - || __glibc_unlikely (new_size > SIZE_MAX / sizeof (wchar_t))) - return EOF; - -- new_buf -- = (wchar_t *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (new_size -- * sizeof (wchar_t)); -+ new_buf = malloc (new_size * sizeof (wchar_t)); - if (new_buf == NULL) - { - /* __ferror(fp) = 1; */ -@@ -106,7 +104,7 @@ _IO_wstr_overflow (_IO_FILE *fp, _IO_wint_t c) - if (old_buf) - { - __wmemcpy (new_buf, old_buf, old_wblen); -- (*((_IO_strfile *) fp)->_s._free_buffer) (old_buf); -+ free (old_buf); - /* Make sure _IO_setb won't try to delete _IO_buf_base. */ - fp->_wide_data->_IO_buf_base = NULL; - } -@@ -186,16 +184,14 @@ enlarge_userbuf (_IO_FILE *fp, _IO_off64_t offset, int reading) - return 1; - - wchar_t *oldbuf = wd->_IO_buf_base; -- wchar_t *newbuf -- = (wchar_t *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (newsize -- * sizeof (wchar_t)); -+ wchar_t *newbuf = malloc (newsize * sizeof (wchar_t)); - if (newbuf == NULL) - return 1; - - if (oldbuf != NULL) - { - __wmemcpy (newbuf, oldbuf, _IO_wblen (fp)); -- (*((_IO_strfile *) fp)->_s._free_buffer) (oldbuf); -+ free (oldbuf); - /* Make sure _IO_setb won't try to delete - _IO_buf_base. */ - wd->_IO_buf_base = NULL; -@@ -357,7 +353,7 @@ void - _IO_wstr_finish (_IO_FILE *fp, int dummy) - { - if (fp->_wide_data->_IO_buf_base && !(fp->_flags2 & _IO_FLAGS2_USER_WBUF)) -- (((_IO_strfile *) fp)->_s._free_buffer) (fp->_wide_data->_IO_buf_base); -+ free (fp->_wide_data->_IO_buf_base); - fp->_wide_data->_IO_buf_base = NULL; - - _IO_wdefault_finish (fp, 0); -diff --git a/localedata/locales/ca_ES b/localedata/locales/ca_ES -index 914c066dab..f0d744d537 100644 ---- a/localedata/locales/ca_ES -+++ b/localedata/locales/ca_ES -@@ -106,36 +106,67 @@ grouping 0;0 - END LC_NUMERIC - - LC_TIME --abday "dg";"dl";"dt";"dc";"dj";"dv";"ds" --day "diumenge";/ -- "dilluns";/ -- "dimarts";/ -- "dimecres";/ -- "dijous";/ -- "divendres";/ -- "dissabte" --abmon "gen";"feb";/ -- "mar";"abr";/ -- "mai";"jun";/ -- "jul";"ago";/ -- "set";"oct";/ -- "nov";"des" --mon "gener";/ -- "febrer";/ -- "mar";/ -- "abril";/ -- "maig";/ -- "juny";/ -- "juliol";/ -- "agost";/ -- "setembre";/ -- "octubre";/ -- "novembre";/ -- "desembre" --d_t_fmt "%a %d %b %Y %T %Z" --d_fmt "%d//%m//%y" --t_fmt "%T" --am_pm "";"" -+abday "dg.";"dl.";"dt.";"dc.";"dj.";"dv.";"ds." -+day "diumenge";/ -+ "dilluns";/ -+ "dimarts";/ -+ "dimecres";/ -+ "dijous";/ -+ "divendres";/ -+ "dissabte" -+ab_alt_mon "gen.";/ -+ "febr.";/ -+ "mar";/ -+ "abr.";/ -+ "maig";/ -+ "juny";/ -+ "jul.";/ -+ "ag.";/ -+ "set.";/ -+ "oct.";/ -+ "nov.";/ -+ "des." -+abmon "de gen.";/ -+ "de febr.";/ -+ "de mar";/ -+ "dabr.";/ -+ "de maig";/ -+ "de juny";/ -+ "de jul.";/ -+ "dag.";/ -+ "de set.";/ -+ "doct.";/ -+ "de nov.";/ -+ "de des." -+alt_mon "gener";/ -+ "febrer";/ -+ "mar";/ -+ "abril";/ -+ "maig";/ -+ "juny";/ -+ "juliol";/ -+ "agost";/ -+ "setembre";/ -+ "octubre";/ -+ "novembre";/ -+ "desembre" -+mon "de gener";/ -+ "de febrer";/ -+ "de mar";/ -+ "dabril";/ -+ "de maig";/ -+ "de juny";/ -+ "de juliol";/ -+ "dagost";/ -+ "de setembre";/ -+ "doctubre";/ -+ "de novembre";/ -+ "de desembre" -+d_t_fmt "%A, %-d %B de %Y, %T %Z" -+d_fmt "%-d//%-m//%y" -+t_fmt "%T" -+am_pm "a. m.";/ -+ "p. m." - t_fmt_ampm "" - week 7;19971130;4 - first_weekday 2 -@@ -146,9 +177,9 @@ copy "i18n" - END LC_PAPER - - LC_TELEPHONE --tel_int_fmt "+%c %a %l" --int_prefix "34" --int_select "00" -+tel_int_fmt "+%c %a %l" -+int_prefix "34" -+int_select "00" - END LC_TELEPHONE - - LC_MEASUREMENT -@@ -156,19 +187,19 @@ copy "i18n" - END LC_MEASUREMENT - - LC_NAME --name_fmt "%d%t%g%t%m%t%f" -+name_fmt "%d%t%g%t%m%t%f" - END LC_NAME - - LC_ADDRESS --postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N" -+postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N" - country_name "Espanya" --country_ab2 "ES" --country_ab3 "ESP" --country_num 724 +diff --git a/libio/tst-vtables-common.c b/libio/tst-vtables-common.c +new file mode 100644 +index 0000000000..dc8d89c195 +--- /dev/null ++++ b/libio/tst-vtables-common.c +@@ -0,0 +1,511 @@ ++/* Test for libio vtables and their validation. Common code. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This test provides some coverage for how various stdio functions ++ use the vtables in FILE * objects. The focus is mostly on which ++ functions call which methods, not so much on validating data ++ processing. An initial series of tests check that custom vtables ++ do not work without activation through _IO_init. ++ ++ Note: libio vtables are deprecated feature. Do not use this test ++ as a documentation source for writing custom vtables. See ++ fopencookie for a different way of creating custom stdio ++ streams. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Data shared between the test subprocess and the test driver in the ++ parent. Note that *shared is reset at the start of the check_call ++ function. */ ++struct shared ++{ ++ /* Expected file pointer for method calls. */ ++ FILE *fp; ++ ++ /* If true, assume that a call to _IO_init is needed to enable ++ custom vtables. */ ++ bool initially_disabled; ++ ++ /* Requested return value for the methods which have one. */ ++ int return_value; ++ ++ /* A value (usually a character) recorded by some of the methods ++ below. */ ++ int value; ++ ++ /* Likewise, for some data. */ ++ char buffer[16]; ++ size_t buffer_length; ++ ++ /* Total number of method calls. */ ++ unsigned int calls; ++ ++ /* Individual method call counts. */ ++ unsigned int calls_finish; ++ unsigned int calls_overflow; ++ unsigned int calls_underflow; ++ unsigned int calls_uflow; ++ unsigned int calls_pbackfail; ++ unsigned int calls_xsputn; ++ unsigned int calls_xsgetn; ++ unsigned int calls_seekoff; ++ unsigned int calls_seekpos; ++ unsigned int calls_setbuf; ++ unsigned int calls_sync; ++ unsigned int calls_doallocate; ++ unsigned int calls_read; ++ unsigned int calls_write; ++ unsigned int calls_seek; ++ unsigned int calls_close; ++ unsigned int calls_stat; ++ unsigned int calls_showmanyc; ++ unsigned int calls_imbue; ++} *shared; ++ ++/* Method implementations which increment the counters in *shared. */ ++ ++static void ++log_method (FILE *fp, const char *name) ++{ ++ if (test_verbose > 0) ++ printf ("info: %s (%p) called\n", name, fp); ++} ++ ++static void ++method_finish (FILE *fp, int dummy) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_finish; ++} ++ ++static int ++method_overflow (FILE *fp, int ch) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_overflow; ++ shared->value = ch; ++ return shared->return_value; ++} ++ ++static int ++method_underflow (FILE *fp) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_underflow; ++ return shared->return_value; ++} ++ ++static int ++method_uflow (FILE *fp) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_uflow; ++ return shared->return_value; ++} ++ ++static int ++method_pbackfail (FILE *fp, int ch) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_pbackfail; ++ shared->value = ch; ++ return shared->return_value; ++} ++ ++static size_t ++method_xsputn (FILE *fp, const void *data, size_t n) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_xsputn; ++ ++ size_t to_copy = n; ++ if (n > sizeof (shared->buffer)) ++ to_copy = sizeof (shared->buffer); ++ memcpy (shared->buffer, data, to_copy); ++ shared->buffer_length = to_copy; ++ return to_copy; ++} ++ ++static size_t ++method_xsgetn (FILE *fp, void *data, size_t n) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_xsgetn; ++ return 0; ++} ++ ++static off64_t ++method_seekoff (FILE *fp, off64_t offset, int dir, int mode) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_seekoff; ++ return shared->return_value; ++} ++ ++static off64_t ++method_seekpos (FILE *fp, off64_t offset, int mode) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_seekpos; ++ return shared->return_value; ++} ++ ++static FILE * ++method_setbuf (FILE *fp, char *buffer, ssize_t length) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_setbuf; ++ return fp; ++} ++ ++static int ++method_sync (FILE *fp) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_sync; ++ return shared->return_value; ++} ++ ++static int ++method_doallocate (FILE *fp) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_doallocate; ++ return shared->return_value; ++} ++ ++static ssize_t ++method_read (FILE *fp, void *data, ssize_t length) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_read; ++ return shared->return_value; ++} ++ ++static ssize_t ++method_write (FILE *fp, const void *data, ssize_t length) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_write; ++ return shared->return_value; ++} ++ ++static off64_t ++method_seek (FILE *fp, off64_t offset, int mode) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_seek; ++ return shared->return_value; ++} ++ ++static int ++method_close (FILE *fp) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_close; ++ return shared->return_value; ++} ++ ++static int ++method_stat (FILE *fp, void *buffer) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_stat; ++ return shared->return_value; ++} ++ ++static int ++method_showmanyc (FILE *fp) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_showmanyc; ++ return shared->return_value; ++} ++ ++static void ++method_imbue (FILE *fp, void *locale) ++{ ++ log_method (fp, __func__); ++ TEST_VERIFY (fp == shared->fp); ++ ++shared->calls; ++ ++shared->calls_imbue; ++} ++ ++/* Our custom vtable. */ ++ ++static const struct _IO_jump_t jumps = ++{ ++ JUMP_INIT_DUMMY, ++ JUMP_INIT (finish, method_finish), ++ JUMP_INIT (overflow, method_overflow), ++ JUMP_INIT (underflow, method_underflow), ++ JUMP_INIT (uflow, method_uflow), ++ JUMP_INIT (pbackfail, method_pbackfail), ++ JUMP_INIT (xsputn, method_xsputn), ++ JUMP_INIT (xsgetn, method_xsgetn), ++ JUMP_INIT (seekoff, method_seekoff), ++ JUMP_INIT (seekpos, method_seekpos), ++ JUMP_INIT (setbuf, method_setbuf), ++ JUMP_INIT (sync, method_sync), ++ JUMP_INIT (doallocate, method_doallocate), ++ JUMP_INIT (read, method_read), ++ JUMP_INIT (write, method_write), ++ JUMP_INIT (seek, method_seek), ++ JUMP_INIT (close, method_close), ++ JUMP_INIT (stat, method_stat), ++ JUMP_INIT (showmanyc, method_showmanyc), ++ JUMP_INIT (imbue, method_imbue) ++}; ++ ++/* Our file implementation. */ ++ ++struct my_file ++{ ++ FILE f; ++ const struct _IO_jump_t *vtable; ++}; ++ ++struct my_file ++my_file_create (void) ++{ ++ return (struct my_file) ++ { ++ /* Disable locking, so that we do not have to set up a lock ++ pointer. */ ++ .f._flags = _IO_USER_LOCK, ++ ++ /* Copy the offset from the an initialized handle, instead of ++ figuring it out from scratch. */ ++ .f._vtable_offset = stdin->_vtable_offset, ++ ++ .vtable = &jumps, ++ }; ++} ++ ++/* Initial tests which do not enable vtable compatibility. */ ++ ++/* Inhibit GCC optimization of fprintf. */ ++typedef int (*fprintf_type) (FILE *, const char *, ...); ++static const volatile fprintf_type fprintf_ptr = &fprintf; ++ ++static void ++without_compatibility_fprintf (void *closure) ++{ ++ /* This call should abort. */ ++ fprintf_ptr (shared->fp, " "); ++ _exit (1); ++} ++ ++static void ++without_compatibility_fputc (void *closure) ++{ ++ /* This call should abort. */ ++ fputc (' ', shared->fp); ++ _exit (1); ++} ++ ++static void ++without_compatibility_fgetc (void *closure) ++{ ++ /* This call should abort. */ ++ fgetc (shared->fp); ++ _exit (1); ++} ++ ++static void ++without_compatibility_fflush (void *closure) ++{ ++ /* This call should abort. */ ++ fflush (shared->fp); ++ _exit (1); ++} ++ ++/* Exit status after abnormal termination. */ ++static int termination_status; ++ ++static void ++init_termination_status (void) ++{ ++ pid_t pid = xfork (); ++ if (pid == 0) ++ abort (); ++ xwaitpid (pid, &termination_status, 0); ++ ++ TEST_VERIFY (WIFSIGNALED (termination_status)); ++ TEST_COMPARE (WTERMSIG (termination_status), SIGABRT); ++} ++ ++static void ++check_for_termination (const char *name, void (*callback) (void *)) ++{ ++ struct my_file file = my_file_create (); ++ shared->fp = &file.f; ++ shared->return_value = -1; ++ shared->calls = 0; ++ struct support_capture_subprocess proc ++ = support_capture_subprocess (callback, NULL); ++ support_capture_subprocess_check (&proc, name, termination_status, ++ sc_allow_stderr); ++ const char *message ++ = "Fatal error: glibc detected an invalid stdio handle\n"; ++ TEST_COMPARE_BLOB (proc.err.buffer, proc.err.length, ++ message, strlen (message)); ++ TEST_COMPARE (shared->calls, 0); ++ support_capture_subprocess_free (&proc); ++} ++ ++/* The test with vtable validation disabled. */ ++ ++/* This function does not have a prototype in libioP.h to prevent ++ accidental use from within the library (which would disable vtable ++ verification). */ ++void _IO_init (FILE *fp, int flags); ++ ++static void ++with_compatibility_fprintf (void *closure) ++{ ++ TEST_COMPARE (fprintf_ptr (shared->fp, "A%sCD", "B"), 4); ++ TEST_COMPARE (shared->calls, 3); ++ TEST_COMPARE (shared->calls_xsputn, 3); ++ TEST_COMPARE_BLOB (shared->buffer, shared->buffer_length, ++ "CD", 2); ++} ++ ++static void ++with_compatibility_fputc (void *closure) ++{ ++ shared->return_value = '@'; ++ TEST_COMPARE (fputc ('@', shared->fp), '@'); ++ TEST_COMPARE (shared->calls, 1); ++ TEST_COMPARE (shared->calls_overflow, 1); ++ TEST_COMPARE (shared->value, '@'); ++} ++ ++static void ++with_compatibility_fgetc (void *closure) ++{ ++ shared->return_value = 'X'; ++ TEST_COMPARE (fgetc (shared->fp), 'X'); ++ TEST_COMPARE (shared->calls, 1); ++ TEST_COMPARE (shared->calls_uflow, 1); ++} ++ ++static void ++with_compatibility_fflush (void *closure) ++{ ++ TEST_COMPARE (fflush (shared->fp), 0); ++ TEST_COMPARE (shared->calls, 1); ++ TEST_COMPARE (shared->calls_sync, 1); ++} ++ ++/* Call CALLBACK in a subprocess, after setting up a custom file ++ object and updating shared->fp. */ ++static void ++check_call (const char *name, void (*callback) (void *), ++ bool initially_disabled) ++{ ++ *shared = (struct shared) ++ { ++ .initially_disabled = initially_disabled, ++ }; ++ ++ /* Set up a custom file object. */ ++ struct my_file file = my_file_create (); ++ shared->fp = &file.f; ++ if (shared->initially_disabled) ++ _IO_init (shared->fp, file.f._flags); ++ ++ if (test_verbose > 0) ++ printf ("info: calling test %s\n", name); ++ support_isolate_in_subprocess (callback, NULL); ++} ++ ++/* Run the tests. INITIALLY_DISABLED indicates whether custom vtables ++ are disabled when the test starts. */ ++static int ++run_tests (bool initially_disabled) ++{ ++ /* The test relies on fatal error messages being printed to standard ++ error. */ ++ setenv ("LIBC_FATAL_STDERR_", "1", 1); ++ ++ shared = support_shared_allocate (sizeof (*shared)); ++ shared->initially_disabled = initially_disabled; ++ init_termination_status (); ++ ++ if (initially_disabled) ++ { ++ check_for_termination ("fprintf", without_compatibility_fprintf); ++ check_for_termination ("fputc", without_compatibility_fputc); ++ check_for_termination ("fgetc", without_compatibility_fgetc); ++ check_for_termination ("fflush", without_compatibility_fflush); ++ } ++ ++ check_call ("fprintf", with_compatibility_fprintf, initially_disabled); ++ check_call ("fputc", with_compatibility_fputc, initially_disabled); ++ check_call ("fgetc", with_compatibility_fgetc, initially_disabled); ++ check_call ("fflush", with_compatibility_fflush, initially_disabled); ++ ++ support_shared_free (shared); ++ shared = NULL; ++ ++ return 0; ++} +diff --git a/libio/tst-vtables-interposed.c b/libio/tst-vtables-interposed.c +new file mode 100644 +index 0000000000..c8f4e8c7c3 +--- /dev/null ++++ b/libio/tst-vtables-interposed.c +@@ -0,0 +1,37 @@ ++/* Test for libio vtables and their validation. Enabled through interposition. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* Provide an interposed definition of the standard file handles with ++ our own vtable. stdout/stdin/stderr will not work as a result, but ++ a succesful test does not print anything, so this is fine. */ ++static const struct _IO_jump_t jumps; ++#define _IO_file_jumps jumps ++#include "stdfiles.c" ++ ++#include "tst-vtables-common.c" ++ ++static int ++do_test (void) ++{ ++ return run_tests (false); ++} ++ ++/* Calling setvbuf in the test driver is not supported with our ++ interposed file handles. */ ++#define TEST_NO_SETVBUF ++#include +diff --git a/libio/tst-vtables.c b/libio/tst-vtables.c +new file mode 100644 +index 0000000000..f16acf5d23 +--- /dev/null ++++ b/libio/tst-vtables.c +@@ -0,0 +1,29 @@ ++/* Test for libio vtables and their validation. Initially disabled case. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "libioP.h" ++ ++#include "tst-vtables-common.c" ++ ++static int ++do_test (void) ++{ ++ return run_tests (true); ++} ++ ++#include +diff --git a/libio/vasprintf.c b/libio/vasprintf.c +index 390a63d124..0bb217e46e 100644 +--- a/libio/vasprintf.c ++++ b/libio/vasprintf.c +@@ -54,8 +54,8 @@ _IO_vasprintf (char **result_ptr, const char *format, _IO_va_list args) + _IO_JUMPS (&sf._sbf) = &_IO_str_jumps; + _IO_str_init_static_internal (&sf, string, init_string_size, string); + sf._sbf._f._flags &= ~_IO_USER_BUF; +- sf._s._allocate_buffer = (_IO_alloc_type) malloc; +- sf._s._free_buffer = (_IO_free_type) free; ++ sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc; ++ sf._s._free_buffer_unused = (_IO_free_type) free; + ret = _IO_vfprintf (&sf._sbf._f, format, args); + if (ret < 0) + { +diff --git a/libio/vtables.c b/libio/vtables.c +index 9fd4ccf642..9df75668c8 100644 +--- a/libio/vtables.c ++++ b/libio/vtables.c +@@ -71,3 +71,19 @@ _IO_vtable_check (void) + + __libc_fatal ("Fatal error: glibc detected an invalid stdio handle\n"); + } ++ ++/* Some variants of libstdc++ interpose _IO_2_1_stdin_ etc. and ++ install their own vtables directly, without calling _IO_init or ++ other functions. Detect this by looking at the vtables values ++ during startup, and disable vtable validation in this case. */ ++#ifdef SHARED ++__attribute__ ((constructor)) ++static void ++check_stdfiles_vtables (void) ++{ ++ if (_IO_2_1_stdin_.vtable != &_IO_file_jumps ++ || _IO_2_1_stdout_.vtable != &_IO_file_jumps ++ || _IO_2_1_stderr_.vtable != &_IO_file_jumps) ++ IO_set_accept_foreign_vtables (&_IO_vtable_check); ++} ++#endif +diff --git a/libio/wmemstream.c b/libio/wmemstream.c +index c962071d26..f4c6e75246 100644 +--- a/libio/wmemstream.c ++++ b/libio/wmemstream.c +@@ -92,8 +92,8 @@ open_wmemstream (wchar_t **bufloc, _IO_size_t *sizeloc) + _IO_wstr_init_static (&new_f->fp._sf._sbf._f, buf, + _IO_BUFSIZ / sizeof (wchar_t), buf); + new_f->fp._sf._sbf._f._flags2 &= ~_IO_FLAGS2_USER_WBUF; +- new_f->fp._sf._s._allocate_buffer = (_IO_alloc_type) malloc; +- new_f->fp._sf._s._free_buffer = (_IO_free_type) free; ++ new_f->fp._sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc; ++ new_f->fp._sf._s._free_buffer_unused = (_IO_free_type) free; + + new_f->fp.bufloc = bufloc; + new_f->fp.sizeloc = sizeloc; +diff --git a/libio/wstrops.c b/libio/wstrops.c +index a3374a7b15..0839a70bfb 100644 +--- a/libio/wstrops.c ++++ b/libio/wstrops.c +@@ -63,7 +63,7 @@ _IO_wstr_init_static (_IO_FILE *fp, wchar_t *ptr, _IO_size_t size, + fp->_wide_data->_IO_read_end = end; + } + /* A null _allocate_buffer function flags the strfile as being static. */ +- (((_IO_strfile *) fp)->_s._allocate_buffer) = (_IO_alloc_type)0; ++ (((_IO_strfile *) fp)->_s._allocate_buffer_unused) = (_IO_alloc_type)0; + } + + _IO_wint_t +@@ -95,9 +95,7 @@ _IO_wstr_overflow (_IO_FILE *fp, _IO_wint_t c) + || __glibc_unlikely (new_size > SIZE_MAX / sizeof (wchar_t))) + return EOF; + +- new_buf +- = (wchar_t *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (new_size +- * sizeof (wchar_t)); ++ new_buf = malloc (new_size * sizeof (wchar_t)); + if (new_buf == NULL) + { + /* __ferror(fp) = 1; */ +@@ -106,7 +104,7 @@ _IO_wstr_overflow (_IO_FILE *fp, _IO_wint_t c) + if (old_buf) + { + __wmemcpy (new_buf, old_buf, old_wblen); +- (*((_IO_strfile *) fp)->_s._free_buffer) (old_buf); ++ free (old_buf); + /* Make sure _IO_setb won't try to delete _IO_buf_base. */ + fp->_wide_data->_IO_buf_base = NULL; + } +@@ -186,16 +184,14 @@ enlarge_userbuf (_IO_FILE *fp, _IO_off64_t offset, int reading) + return 1; + + wchar_t *oldbuf = wd->_IO_buf_base; +- wchar_t *newbuf +- = (wchar_t *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (newsize +- * sizeof (wchar_t)); ++ wchar_t *newbuf = malloc (newsize * sizeof (wchar_t)); + if (newbuf == NULL) + return 1; + + if (oldbuf != NULL) + { + __wmemcpy (newbuf, oldbuf, _IO_wblen (fp)); +- (*((_IO_strfile *) fp)->_s._free_buffer) (oldbuf); ++ free (oldbuf); + /* Make sure _IO_setb won't try to delete + _IO_buf_base. */ + wd->_IO_buf_base = NULL; +@@ -357,7 +353,7 @@ void + _IO_wstr_finish (_IO_FILE *fp, int dummy) + { + if (fp->_wide_data->_IO_buf_base && !(fp->_flags2 & _IO_FLAGS2_USER_WBUF)) +- (((_IO_strfile *) fp)->_s._free_buffer) (fp->_wide_data->_IO_buf_base); ++ free (fp->_wide_data->_IO_buf_base); + fp->_wide_data->_IO_buf_base = NULL; + + _IO_wdefault_finish (fp, 0); +diff --git a/localedata/locales/ca_ES b/localedata/locales/ca_ES +index 914c066dab..f0d744d537 100644 +--- a/localedata/locales/ca_ES ++++ b/localedata/locales/ca_ES +@@ -106,36 +106,67 @@ grouping 0;0 + END LC_NUMERIC + + LC_TIME +-abday "dg";"dl";"dt";"dc";"dj";"dv";"ds" +-day "diumenge";/ +- "dilluns";/ +- "dimarts";/ +- "dimecres";/ +- "dijous";/ +- "divendres";/ +- "dissabte" +-abmon "gen";"feb";/ +- "mar";"abr";/ +- "mai";"jun";/ +- "jul";"ago";/ +- "set";"oct";/ +- "nov";"des" +-mon "gener";/ +- "febrer";/ +- "mar";/ +- "abril";/ +- "maig";/ +- "juny";/ +- "juliol";/ +- "agost";/ +- "setembre";/ +- "octubre";/ +- "novembre";/ +- "desembre" +-d_t_fmt "%a %d %b %Y %T %Z" +-d_fmt "%d//%m//%y" +-t_fmt "%T" +-am_pm "";"" ++abday "dg.";"dl.";"dt.";"dc.";"dj.";"dv.";"ds." ++day "diumenge";/ ++ "dilluns";/ ++ "dimarts";/ ++ "dimecres";/ ++ "dijous";/ ++ "divendres";/ ++ "dissabte" ++ab_alt_mon "gen.";/ ++ "febr.";/ ++ "mar";/ ++ "abr.";/ ++ "maig";/ ++ "juny";/ ++ "jul.";/ ++ "ag.";/ ++ "set.";/ ++ "oct.";/ ++ "nov.";/ ++ "des." ++abmon "de gen.";/ ++ "de febr.";/ ++ "de mar";/ ++ "dabr.";/ ++ "de maig";/ ++ "de juny";/ ++ "de jul.";/ ++ "dag.";/ ++ "de set.";/ ++ "doct.";/ ++ "de nov.";/ ++ "de des." ++alt_mon "gener";/ ++ "febrer";/ ++ "mar";/ ++ "abril";/ ++ "maig";/ ++ "juny";/ ++ "juliol";/ ++ "agost";/ ++ "setembre";/ ++ "octubre";/ ++ "novembre";/ ++ "desembre" ++mon "de gener";/ ++ "de febrer";/ ++ "de mar";/ ++ "dabril";/ ++ "de maig";/ ++ "de juny";/ ++ "de juliol";/ ++ "dagost";/ ++ "de setembre";/ ++ "doctubre";/ ++ "de novembre";/ ++ "de desembre" ++d_t_fmt "%A, %-d %B de %Y, %T %Z" ++d_fmt "%-d//%-m//%y" ++t_fmt "%T" ++am_pm "a. m.";/ ++ "p. m." + t_fmt_ampm "" + week 7;19971130;4 + first_weekday 2 +@@ -146,9 +177,9 @@ copy "i18n" + END LC_PAPER + + LC_TELEPHONE +-tel_int_fmt "+%c %a %l" +-int_prefix "34" +-int_select "00" ++tel_int_fmt "+%c %a %l" ++int_prefix "34" ++int_select "00" + END LC_TELEPHONE + + LC_MEASUREMENT +@@ -156,19 +187,19 @@ copy "i18n" + END LC_MEASUREMENT + + LC_NAME +-name_fmt "%d%t%g%t%m%t%f" ++name_fmt "%d%t%g%t%m%t%f" + END LC_NAME + + LC_ADDRESS +-postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N" ++postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N" + country_name "Espanya" +-country_ab2 "ES" +-country_ab3 "ESP" +-country_num 724 -country_car "E" +country_ab2 "ES" +country_ab3 "ESP" @@ -1534,6 +2549,19 @@ index a82ef8c6d9..7362492fbd 100644 alt_mon "";/ "";/ "";/ +diff --git a/localedata/locales/es_BO b/localedata/locales/es_BO +index 4202c5a0cf..5b6c6e2312 100644 +--- a/localedata/locales/es_BO ++++ b/localedata/locales/es_BO +@@ -124,7 +124,7 @@ first_weekday 2 + END LC_TIME + + LC_PAPER +-copy "i18n" ++copy "en_US" + END LC_PAPER + + LC_TELEPHONE diff --git a/localedata/locales/et_EE b/localedata/locales/et_EE index 9cb55b568f..bab7493c98 100644 --- a/localedata/locales/et_EE @@ -1909,10 +2937,27 @@ index ca77996902..cc70a6b7ee 100644 This function is a GNU extension. @end deftypefun diff --git a/manual/llio.texi b/manual/llio.texi -index 642e56e710..7d877992d9 100644 +index 642e56e710..82f03be2be 100644 --- a/manual/llio.texi +++ b/manual/llio.texi -@@ -1271,6 +1271,9 @@ Per-IO synchronization as if the file was opened with @code{O_SYNC} flag. +@@ -1251,9 +1251,13 @@ When the source file is compiled using @code{_FILE_OFFSET_BITS == 64} on a + @c This is a syscall for Linux v4.6. The sysdeps/posix fallback emulation + @c is also MT-Safe since it calls preadv. + +-This function is similar to the @code{preadv} function, with the difference +-it adds an extra @var{flags} parameter of type @code{int}. The supported +-@var{flags} are dependent of the underlying system. For Linux it supports: ++This function is similar to the @code{preadv} function, with the ++difference it adds an extra @var{flags} parameter of type @code{int}. ++Additionally, if @var{offset} is @math{-1}, the current file position ++is used and updated (like the @code{readv} function). ++ ++The supported @var{flags} are dependent of the underlying system. For ++Linux it supports: + + @vtable @code + @item RWF_HIPRI +@@ -1271,6 +1275,9 @@ Per-IO synchronization as if the file was opened with @code{O_SYNC} flag. @item RWF_NOWAIT Use nonblocking mode for this operation; that is, this call to @code{preadv2} will fail and set @code{errno} to @code{EAGAIN} if the operation would block. @@ -1922,6 +2967,24 @@ index 642e56e710..7d877992d9 100644 @end vtable When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the +@@ -1320,10 +1327,13 @@ When the source file is compiled using @code{_FILE_OFFSET_BITS == 64} on a + @c This is a syscall for Linux v4.6. The sysdeps/posix fallback emulation + @c is also MT-Safe since it calls pwritev. + +-This function is similar to the @code{pwritev} function, with the difference +-it adds an extra @var{flags} parameter of type @code{int}. The supported +-@var{flags} are dependent of the underlying system and for Linux it supports +-the same ones as for @code{preadv2}. ++This function is similar to the @code{pwritev} function, with the ++difference it adds an extra @var{flags} parameter of type @code{int}. ++Additionally, if @var{offset} is @math{-1}, the current file position ++should is used and updated (like the @code{writev} function). ++ ++The supported @var{flags} are dependent of the underlying system. For ++Linux, the supported flags are the same as those for @code{preadv2}. + + When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the + @code{pwritev2} function is in fact @code{pwritev64v2} and the type diff --git a/manual/platform.texi b/manual/platform.texi index b8721a0712..504addc956 100644 --- a/manual/platform.texi @@ -2001,11 +3064,84 @@ index 3c515f817f..0fcbd91366 100644 { # ifndef __NO_LONG_DOUBLE_MATH return __iseqsigl (__x, __y); +diff --git a/misc/tst-preadvwritev-common.c b/misc/tst-preadvwritev-common.c +index 560c8f89b6..b59a3de465 100644 +--- a/misc/tst-preadvwritev-common.c ++++ b/misc/tst-preadvwritev-common.c +@@ -16,6 +16,7 @@ + License along with the GNU C Library; if not, see + . */ + ++#include + #include + #include + #include +@@ -25,6 +26,7 @@ + + #include + #include ++#include + + static char *temp_filename; + static int temp_fd; +@@ -50,6 +52,42 @@ do_prepare (int argc, char **argv) + pwritev (__fd, __iov, __iovcnt, __offset) + #endif + ++static __attribute__ ((unused)) void ++do_test_without_offset (void) ++{ ++ xftruncate (temp_fd, 0); ++ ++ xwrite (temp_fd, "123", 3); ++ xlseek (temp_fd, 2, SEEK_SET); ++ { ++ struct iovec iov[] = ++ { ++ { (void *) "abc", 3 }, ++ { (void *) "xyzt", 4 }, ++ }; ++ TEST_COMPARE (PWRITEV (temp_fd, iov, array_length (iov), -1), 7); ++ } ++ TEST_COMPARE (xlseek (temp_fd, 0, SEEK_CUR), 9); ++ ++ xlseek (temp_fd, 1, SEEK_SET); ++ char buf1[3]; ++ char buf2[2]; ++ { ++ struct iovec iov[] = ++ { ++ { buf1, sizeof (buf1) }, ++ { buf2, sizeof (buf2) }, ++ }; ++ TEST_COMPARE (PREADV (temp_fd, iov, array_length (iov), -1), ++ sizeof (buf1) + sizeof (buf2)); ++ TEST_COMPARE (memcmp ("2ab", buf1, sizeof (buf1)), 0); ++ TEST_COMPARE (memcmp ("cx", buf2, sizeof (buf2)), 0); ++ TEST_COMPARE (xlseek (temp_fd, 0, SEEK_CUR), 6); ++ } ++ ++ xftruncate (temp_fd, 0); ++} ++ + static int + do_test_with_offset (off_t offset) + { diff --git a/misc/tst-preadvwritev2-common.c b/misc/tst-preadvwritev2-common.c -index 89fd0a3ff5..f889a21544 100644 +index 89fd0a3ff5..50b9da3fea 100644 --- a/misc/tst-preadvwritev2-common.c +++ b/misc/tst-preadvwritev2-common.c -@@ -34,7 +34,11 @@ do_test_with_invalid_flags (void) +@@ -19,9 +19,6 @@ + #include + #include + +-static void +-do_test_with_invalid_flags (void) +-{ + #ifndef RWF_HIPRI + # define RWF_HIPRI 0 + #endif +@@ -34,7 +31,73 @@ do_test_with_invalid_flags (void) #ifndef RWF_NOWAIT # define RWF_NOWAIT 0 #endif @@ -2015,9 +3151,610 @@ index 89fd0a3ff5..f889a21544 100644 +#endif +#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT \ + | RWF_APPEND) ++ ++static void ++do_test_with_invalid_fd (void) ++{ ++ char buf[256]; ++ struct iovec iov = { buf, sizeof buf }; ++ ++ /* Check with flag being 0 to use the fallback code which calls pwritev ++ or writev. */ ++ TEST_VERIFY (preadv2 (-1, &iov, 1, -1, 0) == -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_VERIFY (pwritev2 (-1, &iov, 1, -1, 0) == -1); ++ TEST_COMPARE (errno, EBADF); ++ ++ /* Same tests as before but with flags being different than 0. Since ++ there is no emulation for any flag value, fallback code returns ++ ENOTSUP. This is different running on a kernel with preadv2/pwritev2 ++ support, where EBADF is returned). */ ++ TEST_VERIFY (preadv2 (-1, &iov, 1, 0, RWF_HIPRI) == -1); ++ TEST_VERIFY (errno == EBADF || errno == ENOTSUP); ++ TEST_VERIFY (pwritev2 (-1, &iov, 1, 0, RWF_HIPRI) == -1); ++ TEST_VERIFY (errno == EBADF || errno == ENOTSUP); ++} ++ ++static void ++do_test_with_invalid_iov (void) ++{ ++ { ++ char buf[256]; ++ struct iovec iov; ++ ++ iov.iov_base = buf; ++ iov.iov_len = (size_t)SSIZE_MAX + 1; ++ ++ TEST_VERIFY (preadv2 (temp_fd, &iov, 1, 0, 0) == -1); ++ TEST_COMPARE (errno, EINVAL); ++ TEST_VERIFY (pwritev2 (temp_fd, &iov, 1, 0, 0) == -1); ++ TEST_COMPARE (errno, EINVAL); ++ ++ /* Same as for invalid file descriptor tests, emulation fallback ++ first checks for flag value and return ENOTSUP. */ ++ TEST_VERIFY (preadv2 (temp_fd, &iov, 1, 0, RWF_HIPRI) == -1); ++ TEST_VERIFY (errno == EINVAL || errno == ENOTSUP); ++ TEST_VERIFY (pwritev2 (temp_fd, &iov, 1, 0, RWF_HIPRI) == -1); ++ TEST_VERIFY (errno == EINVAL || errno == ENOTSUP); ++ } ++ ++ { ++ /* An invalid iovec buffer should trigger an invalid memory access ++ or an error (Linux for instance returns EFAULT). */ ++ struct iovec iov[IOV_MAX+1] = { 0 }; ++ ++ TEST_VERIFY (preadv2 (temp_fd, iov, IOV_MAX + 1, 0, RWF_HIPRI) == -1); ++ TEST_VERIFY (errno == EINVAL || errno == ENOTSUP); ++ TEST_VERIFY (pwritev2 (temp_fd, iov, IOV_MAX + 1, 0, RWF_HIPRI) == -1); ++ TEST_VERIFY (errno == EINVAL || errno == ENOTSUP); ++ } ++} ++ ++static void ++do_test_with_invalid_flags (void) ++{ /* Set the next bit from the mask of all supported flags. */ int invalid_flag = RWF_SUPPORTED != 0 ? __builtin_clz (RWF_SUPPORTED) : 2; invalid_flag = 0x1 << ((sizeof (int) * CHAR_BIT) - invalid_flag); +diff --git a/misc/tst-preadvwritev2.c b/misc/tst-preadvwritev2.c +index d8a9daf66a..cb58cbe41e 100644 +--- a/misc/tst-preadvwritev2.c ++++ b/misc/tst-preadvwritev2.c +@@ -29,6 +29,9 @@ static int + do_test (void) + { + do_test_with_invalid_flags (); ++ do_test_without_offset (); ++ do_test_with_invalid_fd (); ++ do_test_with_invalid_iov (); + + return do_test_with_offset (0); + } +diff --git a/misc/tst-preadvwritev64v2.c b/misc/tst-preadvwritev64v2.c +index 2c656ae3d7..6a9de54c78 100644 +--- a/misc/tst-preadvwritev64v2.c ++++ b/misc/tst-preadvwritev64v2.c +@@ -31,6 +31,9 @@ static int + do_test (void) + { + do_test_with_invalid_flags (); ++ do_test_without_offset (); ++ do_test_with_invalid_fd (); ++ do_test_with_invalid_iov (); + + return do_test_with_offset (0); + } +diff --git a/nptl/Makefile b/nptl/Makefile +index 6fc2c8bb6a..a3447addea 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -235,9 +235,9 @@ LDLIBS-tst-minstack-throw = -lstdc++ + + tests = tst-attr1 tst-attr2 tst-attr3 tst-default-attr \ + tst-mutex1 tst-mutex2 tst-mutex3 tst-mutex4 tst-mutex5 tst-mutex6 \ +- tst-mutex7 tst-mutex9 tst-mutex5a tst-mutex7a tst-mutex7robust \ +- tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 tst-mutexpi5 \ +- tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a \ ++ tst-mutex7 tst-mutex9 tst-mutex10 tst-mutex5a tst-mutex7a \ ++ tst-mutex7robust tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 \ ++ tst-mutexpi5 tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a \ + tst-mutexpi9 \ + tst-spin1 tst-spin2 tst-spin3 tst-spin4 \ + tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \ +@@ -730,6 +730,8 @@ $(objpfx)tst-compat-forwarder: $(objpfx)tst-compat-forwarder-mod.so + # destroying a mutex. + tst-mutex8-ENV = GLIBC_TUNABLES=glibc.elision.enable=0 + ++tst-mutex10-ENV = GLIBC_TUNABLES=glibc.elision.enable=1 ++ + # The tests here better do not run in parallel + ifneq ($(filter %tests,$(MAKECMDGOALS)),) + .NOTPARALLEL: +diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h +index 583515ff48..ff51f452c6 100644 +--- a/nptl/pthreadP.h ++++ b/nptl/pthreadP.h +@@ -110,19 +110,23 @@ enum + }; + #define PTHREAD_MUTEX_PSHARED_BIT 128 + ++/* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ + #define PTHREAD_MUTEX_TYPE(m) \ +- ((m)->__data.__kind & 127) ++ (atomic_load_relaxed (&((m)->__data.__kind)) & 127) + /* Don't include NO_ELISION, as that type is always the same + as the underlying lock type. */ + #define PTHREAD_MUTEX_TYPE_ELISION(m) \ +- ((m)->__data.__kind & (127|PTHREAD_MUTEX_ELISION_NP)) ++ (atomic_load_relaxed (&((m)->__data.__kind)) \ ++ & (127 | PTHREAD_MUTEX_ELISION_NP)) + + #if LLL_PRIVATE == 0 && LLL_SHARED == 128 + # define PTHREAD_MUTEX_PSHARED(m) \ +- ((m)->__data.__kind & 128) ++ (atomic_load_relaxed (&((m)->__data.__kind)) & 128) + #else + # define PTHREAD_MUTEX_PSHARED(m) \ +- (((m)->__data.__kind & 128) ? LLL_SHARED : LLL_PRIVATE) ++ ((atomic_load_relaxed (&((m)->__data.__kind)) & 128) \ ++ ? LLL_SHARED : LLL_PRIVATE) + #endif + + /* The kernel when waking robust mutexes on exit never uses +diff --git a/nptl/pthread_cond_common.c b/nptl/pthread_cond_common.c +index 8e425eb01e..479e54febb 100644 +--- a/nptl/pthread_cond_common.c ++++ b/nptl/pthread_cond_common.c +@@ -405,8 +405,12 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq, + { + /* There is still a waiter after spinning. Set the wake-request + flag and block. Relaxed MO is fine because this is just about +- this futex word. */ +- r = atomic_fetch_or_relaxed (cond->__data.__g_refs + g1, 1); ++ this futex word. ++ ++ Update r to include the set wake-request flag so that the upcoming ++ futex_wait only blocks if the flag is still set (otherwise, we'd ++ violate the basic client-side futex protocol). */ ++ r = atomic_fetch_or_relaxed (cond->__data.__g_refs + g1, 1) | 1; + + if ((r >> 1) > 0) + futex_wait_simple (cond->__data.__g_refs + g1, r, private); +diff --git a/nptl/pthread_mutex_consistent.c b/nptl/pthread_mutex_consistent.c +index 85b8e1a6cb..4fbd875430 100644 +--- a/nptl/pthread_mutex_consistent.c ++++ b/nptl/pthread_mutex_consistent.c +@@ -23,8 +23,11 @@ + int + pthread_mutex_consistent (pthread_mutex_t *mutex) + { +- /* Test whether this is a robust mutex with a dead owner. */ +- if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0 ++ /* Test whether this is a robust mutex with a dead owner. ++ See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ if ((atomic_load_relaxed (&(mutex->__data.__kind)) ++ & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0 + || mutex->__data.__owner != PTHREAD_MUTEX_INCONSISTENT) + return EINVAL; + +diff --git a/nptl/pthread_mutex_destroy.c b/nptl/pthread_mutex_destroy.c +index 5a22611541..713ea68496 100644 +--- a/nptl/pthread_mutex_destroy.c ++++ b/nptl/pthread_mutex_destroy.c +@@ -27,12 +27,17 @@ __pthread_mutex_destroy (pthread_mutex_t *mutex) + { + LIBC_PROBE (mutex_destroy, 1, mutex); + +- if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0 ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ if ((atomic_load_relaxed (&(mutex->__data.__kind)) ++ & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0 + && mutex->__data.__nusers != 0) + return EBUSY; + +- /* Set to an invalid value. */ +- mutex->__data.__kind = -1; ++ /* Set to an invalid value. Relaxed MO is enough as it is undefined behavior ++ if the mutex is used after it has been destroyed. But you can reinitialize ++ it with pthread_mutex_init. */ ++ atomic_store_relaxed (&(mutex->__data.__kind), -1); + + return 0; + } +diff --git a/nptl/pthread_mutex_getprioceiling.c b/nptl/pthread_mutex_getprioceiling.c +index efa37b0d99..ee85949578 100644 +--- a/nptl/pthread_mutex_getprioceiling.c ++++ b/nptl/pthread_mutex_getprioceiling.c +@@ -24,7 +24,9 @@ + int + pthread_mutex_getprioceiling (const pthread_mutex_t *mutex, int *prioceiling) + { +- if (__builtin_expect ((mutex->__data.__kind ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ if (__builtin_expect ((atomic_load_relaxed (&(mutex->__data.__kind)) + & PTHREAD_MUTEX_PRIO_PROTECT_NP) == 0, 0)) + return EINVAL; + +diff --git a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c +index d8fe473728..5cf290c272 100644 +--- a/nptl/pthread_mutex_init.c ++++ b/nptl/pthread_mutex_init.c +@@ -101,7 +101,7 @@ __pthread_mutex_init (pthread_mutex_t *mutex, + memset (mutex, '\0', __SIZEOF_PTHREAD_MUTEX_T); + + /* Copy the values from the attribute. */ +- mutex->__data.__kind = imutexattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS; ++ int mutex_kind = imutexattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS; + + if ((imutexattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_ROBUST) != 0) + { +@@ -111,17 +111,17 @@ __pthread_mutex_init (pthread_mutex_t *mutex, + return ENOTSUP; + #endif + +- mutex->__data.__kind |= PTHREAD_MUTEX_ROBUST_NORMAL_NP; ++ mutex_kind |= PTHREAD_MUTEX_ROBUST_NORMAL_NP; + } + + switch (imutexattr->mutexkind & PTHREAD_MUTEXATTR_PROTOCOL_MASK) + { + case PTHREAD_PRIO_INHERIT << PTHREAD_MUTEXATTR_PROTOCOL_SHIFT: +- mutex->__data.__kind |= PTHREAD_MUTEX_PRIO_INHERIT_NP; ++ mutex_kind |= PTHREAD_MUTEX_PRIO_INHERIT_NP; + break; + + case PTHREAD_PRIO_PROTECT << PTHREAD_MUTEXATTR_PROTOCOL_SHIFT: +- mutex->__data.__kind |= PTHREAD_MUTEX_PRIO_PROTECT_NP; ++ mutex_kind |= PTHREAD_MUTEX_PRIO_PROTECT_NP; + + int ceiling = (imutexattr->mutexkind + & PTHREAD_MUTEXATTR_PRIO_CEILING_MASK) +@@ -145,7 +145,11 @@ __pthread_mutex_init (pthread_mutex_t *mutex, + FUTEX_PRIVATE_FLAG FUTEX_WAKE. */ + if ((imutexattr->mutexkind & (PTHREAD_MUTEXATTR_FLAG_PSHARED + | PTHREAD_MUTEXATTR_FLAG_ROBUST)) != 0) +- mutex->__data.__kind |= PTHREAD_MUTEX_PSHARED_BIT; ++ mutex_kind |= PTHREAD_MUTEX_PSHARED_BIT; ++ ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ atomic_store_relaxed (&(mutex->__data.__kind), mutex_kind); + + /* Default values: mutex not used yet. */ + // mutex->__count = 0; already done by memset +diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c +index 1519c142bd..29cc143e6c 100644 +--- a/nptl/pthread_mutex_lock.c ++++ b/nptl/pthread_mutex_lock.c +@@ -62,6 +62,8 @@ static int __pthread_mutex_lock_full (pthread_mutex_t *mutex) + int + __pthread_mutex_lock (pthread_mutex_t *mutex) + { ++ /* See concurrency notes regarding mutex type which is loaded from __kind ++ in struct __pthread_mutex_s in sysdeps/nptl/bits/thread-shared-types.h. */ + unsigned int type = PTHREAD_MUTEX_TYPE_ELISION (mutex); + + LIBC_PROBE (mutex_entry, 1, mutex); +@@ -350,8 +352,14 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex) + case PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP: + case PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP: + { +- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP; +- int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP; ++ int kind, robust; ++ { ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ int mutex_kind = atomic_load_relaxed (&(mutex->__data.__kind)); ++ kind = mutex_kind & PTHREAD_MUTEX_KIND_MASK_NP; ++ robust = mutex_kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP; ++ } + + if (robust) + { +@@ -502,7 +510,10 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex) + case PTHREAD_MUTEX_PP_NORMAL_NP: + case PTHREAD_MUTEX_PP_ADAPTIVE_NP: + { +- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP; ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ int kind = atomic_load_relaxed (&(mutex->__data.__kind)) ++ & PTHREAD_MUTEX_KIND_MASK_NP; + + oldval = mutex->__data.__lock; + +@@ -607,15 +618,18 @@ hidden_def (__pthread_mutex_lock) + void + __pthread_mutex_cond_lock_adjust (pthread_mutex_t *mutex) + { +- assert ((mutex->__data.__kind & PTHREAD_MUTEX_PRIO_INHERIT_NP) != 0); +- assert ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0); +- assert ((mutex->__data.__kind & PTHREAD_MUTEX_PSHARED_BIT) == 0); ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ int mutex_kind = atomic_load_relaxed (&(mutex->__data.__kind)); ++ assert ((mutex_kind & PTHREAD_MUTEX_PRIO_INHERIT_NP) != 0); ++ assert ((mutex_kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0); ++ assert ((mutex_kind & PTHREAD_MUTEX_PSHARED_BIT) == 0); + + /* Record the ownership. */ + pid_t id = THREAD_GETMEM (THREAD_SELF, tid); + mutex->__data.__owner = id; + +- if (mutex->__data.__kind == PTHREAD_MUTEX_PI_RECURSIVE_NP) ++ if (mutex_kind == PTHREAD_MUTEX_PI_RECURSIVE_NP) + ++mutex->__data.__count; + } + #endif +diff --git a/nptl/pthread_mutex_setprioceiling.c b/nptl/pthread_mutex_setprioceiling.c +index 8594874f85..8306cabcf4 100644 +--- a/nptl/pthread_mutex_setprioceiling.c ++++ b/nptl/pthread_mutex_setprioceiling.c +@@ -27,9 +27,10 @@ int + pthread_mutex_setprioceiling (pthread_mutex_t *mutex, int prioceiling, + int *old_ceiling) + { +- /* The low bits of __kind aren't ever changed after pthread_mutex_init, +- so we don't need a lock yet. */ +- if ((mutex->__data.__kind & PTHREAD_MUTEX_PRIO_PROTECT_NP) == 0) ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ if ((atomic_load_relaxed (&(mutex->__data.__kind)) ++ & PTHREAD_MUTEX_PRIO_PROTECT_NP) == 0) + return EINVAL; + + /* See __init_sched_fifo_prio. */ +diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c +index 66efd3989f..40b559f517 100644 +--- a/nptl/pthread_mutex_timedlock.c ++++ b/nptl/pthread_mutex_timedlock.c +@@ -53,6 +53,8 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex, + /* We must not check ABSTIME here. If the thread does not block + abstime must not be checked for a valid value. */ + ++ /* See concurrency notes regarding mutex type which is loaded from __kind ++ in struct __pthread_mutex_s in sysdeps/nptl/bits/thread-shared-types.h. */ + switch (__builtin_expect (PTHREAD_MUTEX_TYPE_ELISION (mutex), + PTHREAD_MUTEX_TIMED_NP)) + { +@@ -338,8 +340,14 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex, + case PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP: + case PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP: + { +- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP; +- int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP; ++ int kind, robust; ++ { ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ int mutex_kind = atomic_load_relaxed (&(mutex->__data.__kind)); ++ kind = mutex_kind & PTHREAD_MUTEX_KIND_MASK_NP; ++ robust = mutex_kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP; ++ } + + if (robust) + { +@@ -509,7 +517,10 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex, + case PTHREAD_MUTEX_PP_NORMAL_NP: + case PTHREAD_MUTEX_PP_ADAPTIVE_NP: + { +- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP; ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ int kind = atomic_load_relaxed (&(mutex->__data.__kind)) ++ & PTHREAD_MUTEX_KIND_MASK_NP; + + oldval = mutex->__data.__lock; + +diff --git a/nptl/pthread_mutex_trylock.c b/nptl/pthread_mutex_trylock.c +index 7de61f4f68..fa90c1d1e6 100644 +--- a/nptl/pthread_mutex_trylock.c ++++ b/nptl/pthread_mutex_trylock.c +@@ -36,6 +36,8 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex) + int oldval; + pid_t id = THREAD_GETMEM (THREAD_SELF, tid); + ++ /* See concurrency notes regarding mutex type which is loaded from __kind ++ in struct __pthread_mutex_s in sysdeps/nptl/bits/thread-shared-types.h. */ + switch (__builtin_expect (PTHREAD_MUTEX_TYPE_ELISION (mutex), + PTHREAD_MUTEX_TIMED_NP)) + { +@@ -199,8 +201,14 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex) + case PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP: + case PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP: + { +- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP; +- int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP; ++ int kind, robust; ++ { ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ int mutex_kind = atomic_load_relaxed (&(mutex->__data.__kind)); ++ kind = mutex_kind & PTHREAD_MUTEX_KIND_MASK_NP; ++ robust = mutex_kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP; ++ } + + if (robust) + /* Note: robust PI futexes are signaled by setting bit 0. */ +@@ -325,7 +333,10 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex) + case PTHREAD_MUTEX_PP_NORMAL_NP: + case PTHREAD_MUTEX_PP_ADAPTIVE_NP: + { +- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP; ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ int kind = atomic_load_relaxed (&(mutex->__data.__kind)) ++ & PTHREAD_MUTEX_KIND_MASK_NP; + + oldval = mutex->__data.__lock; + +diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c +index 9ea62943b7..68d04d5395 100644 +--- a/nptl/pthread_mutex_unlock.c ++++ b/nptl/pthread_mutex_unlock.c +@@ -35,6 +35,8 @@ int + attribute_hidden + __pthread_mutex_unlock_usercnt (pthread_mutex_t *mutex, int decr) + { ++ /* See concurrency notes regarding mutex type which is loaded from __kind ++ in struct __pthread_mutex_s in sysdeps/nptl/bits/thread-shared-types.h. */ + int type = PTHREAD_MUTEX_TYPE_ELISION (mutex); + if (__builtin_expect (type & + ~(PTHREAD_MUTEX_KIND_MASK_NP|PTHREAD_MUTEX_ELISION_FLAGS_NP), 0)) +@@ -222,13 +224,19 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr) + /* If the previous owner died and the caller did not succeed in + making the state consistent, mark the mutex as unrecoverable + and make all waiters. */ +- if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) != 0 ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ if ((atomic_load_relaxed (&(mutex->__data.__kind)) ++ & PTHREAD_MUTEX_ROBUST_NORMAL_NP) != 0 + && __builtin_expect (mutex->__data.__owner + == PTHREAD_MUTEX_INCONSISTENT, 0)) + pi_notrecoverable: + newowner = PTHREAD_MUTEX_NOTRECOVERABLE; + +- if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) != 0) ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ if ((atomic_load_relaxed (&(mutex->__data.__kind)) ++ & PTHREAD_MUTEX_ROBUST_NORMAL_NP) != 0) + { + continue_pi_robust: + /* Remove mutex from the list. +@@ -251,7 +259,10 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr) + /* Unlock. Load all necessary mutex data before releasing the mutex + to not violate the mutex destruction requirements (see + lll_unlock). */ +- int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP; ++ /* See concurrency notes regarding __kind in struct __pthread_mutex_s ++ in sysdeps/nptl/bits/thread-shared-types.h. */ ++ int robust = atomic_load_relaxed (&(mutex->__data.__kind)) ++ & PTHREAD_MUTEX_ROBUST_NORMAL_NP; + private = (robust + ? PTHREAD_ROBUST_MUTEX_PSHARED (mutex) + : PTHREAD_MUTEX_PSHARED (mutex)); +diff --git a/nptl/tst-mutex10.c b/nptl/tst-mutex10.c +new file mode 100644 +index 0000000000..e1113ca60a +--- /dev/null ++++ b/nptl/tst-mutex10.c +@@ -0,0 +1,109 @@ ++/* Testing race while enabling lock elision. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static pthread_barrier_t barrier; ++static pthread_mutex_t mutex; ++static long long int iteration_count = 1000000; ++static unsigned int thread_count = 3; ++ ++static void * ++thr_func (void *arg) ++{ ++ long long int i; ++ for (i = 0; i < iteration_count; i++) ++ { ++ if ((uintptr_t) arg == 0) ++ { ++ xpthread_mutex_destroy (&mutex); ++ xpthread_mutex_init (&mutex, NULL); ++ } ++ ++ xpthread_barrier_wait (&barrier); ++ ++ /* Test if enabling lock elision works if it is enabled concurrently. ++ There was a race in FORCE_ELISION macro which leads to either ++ pthread_mutex_destroy returning EBUSY as the owner was recorded ++ by pthread_mutex_lock - in "normal mutex" code path - but was not ++ resetted in pthread_mutex_unlock - in "elision" code path. ++ Or it leads to the assertion in nptl/pthread_mutex_lock.c: ++ assert (mutex->__data.__owner == 0); ++ Please ensure that the test is run with lock elision: ++ export GLIBC_TUNABLES=glibc.elision.enable=1 */ ++ xpthread_mutex_lock (&mutex); ++ xpthread_mutex_unlock (&mutex); ++ ++ xpthread_barrier_wait (&barrier); ++ } ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ unsigned int i; ++ printf ("Starting %d threads to run %lld iterations.\n", ++ thread_count, iteration_count); ++ ++ pthread_t *threads = xmalloc (thread_count * sizeof (pthread_t)); ++ xpthread_barrier_init (&barrier, NULL, thread_count); ++ xpthread_mutex_init (&mutex, NULL); ++ ++ for (i = 0; i < thread_count; i++) ++ threads[i] = xpthread_create (NULL, thr_func, (void *) (uintptr_t) i); ++ ++ for (i = 0; i < thread_count; i++) ++ xpthread_join (threads[i]); ++ ++ xpthread_barrier_destroy (&barrier); ++ free (threads); ++ ++ return EXIT_SUCCESS; ++} ++ ++#define OPT_ITERATIONS 10000 ++#define OPT_THREADS 10001 ++#define CMDLINE_OPTIONS \ ++ { "iterations", required_argument, NULL, OPT_ITERATIONS }, \ ++ { "threads", required_argument, NULL, OPT_THREADS }, ++static void ++cmdline_process (int c) ++{ ++ long long int arg = strtoll (optarg, NULL, 0); ++ switch (c) ++ { ++ case OPT_ITERATIONS: ++ if (arg > 0) ++ iteration_count = arg; ++ break; ++ case OPT_THREADS: ++ if (arg > 0 && arg < 100) ++ thread_count = arg; ++ break; ++ } ++} ++#define CMDLINE_PROCESS cmdline_process ++#define TIMEOUT 50 ++#include diff --git a/nscd/gai.c b/nscd/gai.c index d081747797..576fd0045b 100644 --- a/nscd/gai.c @@ -12427,314 +14164,1332 @@ index b7c1650957..d49d6ec279 100644 +msgid "starting year greater than ending year" +msgstr "ano inicial maior que ano final" --#: locale/programs/ld-monetary.c:147 --msgid "value of field `int_curr_symbol' in category `LC_MONETARY' does not correspond to a valid name in ISO 4217" --msgstr "o valor do campo `int_curr_symbol' na categoria `LC_MONETARY' não corresponde a um nome válido na ISO 4217" -+#: timezone/zic.c:1584 -+msgid "typed single year" -+msgstr "digitado ano simples" +-#: locale/programs/ld-monetary.c:147 +-msgid "value of field `int_curr_symbol' in category `LC_MONETARY' does not correspond to a valid name in ISO 4217" +-msgstr "o valor do campo `int_curr_symbol' na categoria `LC_MONETARY' não corresponde a um nome válido na ISO 4217" ++#: timezone/zic.c:1584 ++msgid "typed single year" ++msgstr "digitado ano simples" + +-#: locale/programs/ld-monetary.c:139 +-msgid "value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length" +-msgstr "o valor do campo `int_curr_symbol' na categoria `LC_MONETARY' possui tamanho errado" ++#: timezone/zic.c:1619 ++msgid "invalid weekday name" ++msgstr "nome de dia de semana inválido" + +-#: locale/programs/ld-monetary.c:383 locale/programs/ld-numeric.c:207 ++#: timezone/zic.c:1743 + #, c-format +-msgid "values for field `%s' in category `%s' must be smaller than 127" +-msgstr "os valores para o campo `%s' na categoria `%s' devem ser menores que 127" ++msgid "reference clients mishandle more than %d transition times" ++msgstr "clientes de referência lidam incorretamente com mais %d tempos de transição" + +-#: nscd/connections.c:355 +-#, c-format +-msgid "while accepting connection: %s" +-msgstr "enquanto aceitando conecção: %s" ++#: timezone/zic.c:1747 ++msgid "pre-2014 clients may mishandle more than 1200 transition times" ++msgstr "clientes pré-2014 podem não lidar corretamente comais de 1200 tempos de transições" + +-#: nscd/grpcache.c:149 nscd/hstcache.c:168 nscd/pwdcache.c:142 +-msgid "while allocating cache entry" +-msgstr "enquanto alocando entrada de cache" ++#: timezone/zic.c:1858 ++msgid "too many transition times" ++msgstr "tempos de transição em excesso" + +-#: nscd/cache.c:85 +-msgid "while allocating hash table entry" +-msgstr "enquanto alocando entrada na tabela hash" ++#: timezone/zic.c:2047 ++#, c-format ++msgid "%%z UTC offset magnitude exceeds 99:59:59" ++msgstr "a magnitude do deslocamento de %%z UTC excede 99:59:59" + +-#: nscd/grpcache.c:99 nscd/hstcache.c:109 nscd/pwdcache.c:105 +-msgid "while allocating key copy" +-msgstr "enquanto alocando chave cópia" ++#: timezone/zic.c:2424 ++msgid "no POSIX environment variable for zone" ++msgstr "nenhuma variável de ambiente POSIX para o fuso horário" + +-#: catgets/gencat.c:1001 +-msgid "while opening old catalog file" +-msgstr "enquanto abrindo antigo arquivo de catálogo" ++#: timezone/zic.c:2430 ++#, c-format ++msgid "%s: pre-%d clients may mishandle distant timestamps" ++msgstr "%s: clientes pré-%d podem não lidar corretamente com marcas de tempo distantes" + +-#: locale/programs/locale.c:346 +-msgid "while preparing output" +-msgstr "enquanto preparando saída" ++#: timezone/zic.c:2566 ++msgid "two rules for same instant" ++msgstr "duas regras para o mesmo instante" + +-#: db2/makedb.c:365 db2/makedb.c:382 +-msgid "while reading database" +-msgstr "enquanto lendo database" ++#: timezone/zic.c:2627 ++msgid "can't determine time zone abbreviation to use just after until time" ++msgstr "não é possível determinar abreviação de fuso horário para usar apenas após um tempo" + +-#: elf/sprof.c:683 +-msgid "while stat'ing profiling data file" +-msgstr "enquanto escrevendo arquivo data de dados de perfil" ++#: timezone/zic.c:2725 ++msgid "too many local time types" ++msgstr "tipos de tempo local em excesso" + +-#: db2/makedb.c:334 +-msgid "while writing database file" +-msgstr "enquanto escrevendo arquivo data base" ++#: timezone/zic.c:2729 ++msgid "UT offset out of range" ++msgstr "deslocamento de UT fora da faixa" + +-#: nscd/nscd_stat.c:115 +-msgid "write incomplete" +-msgstr "escrita incompleta" ++#: timezone/zic.c:2753 ++msgid "too many leap seconds" ++msgstr "número excessivo de segundos bissextos" + +-#: inet/rcmd.c:320 +-msgid "writeable by other than owner" +-msgstr "permissão de escrita para outros" ++#: timezone/zic.c:2759 ++msgid "repeated leap second moment" ++msgstr "momento de segundo bissexto repetido" + +-#: db2/makedb.c:124 nscd/nscd.c:114 nss/getent.c:392 +-msgid "wrong number of arguments" +-msgstr "número incorreto de argumentos" ++#: timezone/zic.c:2830 ++msgid "Wild result from command execution" ++msgstr "Resultado insensato da execução do comando" + +-#: timezone/zic.c:1090 +-msgid "wrong number of fields on Leap line" +-msgstr "número incorreto de campos na linha Leap" ++#: timezone/zic.c:2831 ++#, c-format ++msgid "%s: command was '%s', result was %d\n" ++msgstr "%s: comando era “%s”, resultado era %d\n" + +-#: timezone/zic.c:1181 +-msgid "wrong number of fields on Link line" +-msgstr "número incorreto de campos na linha Link" ++#: timezone/zic.c:2961 ++msgid "Odd number of quotation marks" ++msgstr "Número ímpar de aspas" + +-#: timezone/zic.c:924 +-msgid "wrong number of fields on Rule line" +-msgstr "número incorreto de campos na linha Rule" ++#: timezone/zic.c:3046 ++msgid "use of 2/29 in non leap-year" ++msgstr "uso de 2/29 em ano não bissexto" + +-#: timezone/zic.c:994 +-msgid "wrong number of fields on Zone continuation line" +-msgstr "número incorreto de campos na linha de continuação de Zone" ++#: timezone/zic.c:3081 ++msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic" ++msgstr "regra vai de início/fim do mês; não vai funcionar em versões pré-2004 do zic" + +-#: timezone/zic.c:952 +-msgid "wrong number of fields on Zone line" +-msgstr "número incorreto de campos na linha Zone" ++#: timezone/zic.c:3108 ++msgid "time zone abbreviation has fewer than 3 characters" ++msgstr "abreviação de fuso horário possui menos de 3 caracteres" + +-#: sunrpc/xdr_ref.c:84 +-msgid "xdr_reference: out of memory\n" +-msgstr "xdr_reference: não há memória suficiente\n" ++#: timezone/zic.c:3110 ++msgid "time zone abbreviation has too many characters" ++msgstr "abreviação de fuso horário possui um número excessivo de caracteres" + +-#: sunrpc/xdr_rec.c:151 sunrpc/xdr_rec.c:166 +-msgid "xdrrec_create: out of memory\n" +-msgstr "xdrrec_create: não há memória suficiente\n" ++#: timezone/zic.c:3112 ++msgid "time zone abbreviation differs from POSIX standard" ++msgstr "abreviação de fuso horário difere do padrão POSIX" + +-#: nis/ypclnt.c:884 +-msgid "yp_update: cannot convert host to netname\n" +-msgstr "yp_update: não é possível converter host para netname\n" ++#: timezone/zic.c:3118 ++msgid "too many, or too long, time zone abbreviations" ++msgstr "abreviações de fuso horário em excesso ou muito extensas" + +-#: nis/ypclnt.c:896 +-msgid "yp_update: cannot get server address\n" +-msgstr "yp_update: não é possível obter o endereço do servidor\n" ++#: timezone/zic.c:3161 ++#, c-format ++msgid "%s: Can't create directory %s: %s" ++msgstr "%s: Não foi possível criar o diretório %s: %s" +diff --git a/posix/Makefile b/posix/Makefile +index 83b3d7418c..0fb280ba69 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -95,10 +95,10 @@ tests := test-errno tstgetopt testfnm runtests runptests \ + tst-posix_spawn-fd tst-posix_spawn-setsid \ + tst-posix_fadvise tst-posix_fadvise64 \ + tst-sysconf-empty-chroot tst-glob_symlinks tst-fexecve \ +- tst-glob-tilde ++ tst-glob-tilde tst-spawn4 + tests-internal := bug-regex5 bug-regex20 bug-regex33 \ + tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 \ +- tst-glob_lstat_compat ++ tst-glob_lstat_compat tst-spawn4-compat + xtests := bug-ga2 tst-getaddrinfo4 tst-getaddrinfo5 + ifeq (yes,$(build-shared)) + test-srcs := globtest +diff --git a/posix/execvpe.c b/posix/execvpe.c +index 859c0f69bf..ea67d19fcd 100644 +--- a/posix/execvpe.c ++++ b/posix/execvpe.c +@@ -67,11 +67,9 @@ maybe_script_execute (const char *file, char *const argv[], char *const envp[]) + __execve (new_argv[0], new_argv, envp); + } + +- +-/* Execute FILE, searching in the `PATH' environment variable if it contains +- no slashes, with arguments ARGV and environment from ENVP. */ +-int +-__execvpe (const char *file, char *const argv[], char *const envp[]) ++static int ++__execvpe_common (const char *file, char *const argv[], char *const envp[], ++ bool exec_script) + { + /* We check the simple case first. */ + if (*file == '\0') +@@ -85,7 +83,7 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) + { + __execve (file, argv, envp); --#: locale/programs/ld-monetary.c:139 --msgid "value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length" --msgstr "o valor do campo `int_curr_symbol' na categoria `LC_MONETARY' possui tamanho errado" -+#: timezone/zic.c:1619 -+msgid "invalid weekday name" -+msgstr "nome de dia de semana inválido" +- if (errno == ENOEXEC) ++ if (errno == ENOEXEC && exec_script) + maybe_script_execute (file, argv, envp); --#: locale/programs/ld-monetary.c:383 locale/programs/ld-numeric.c:207 -+#: timezone/zic.c:1743 - #, c-format --msgid "values for field `%s' in category `%s' must be smaller than 127" --msgstr "os valores para o campo `%s' na categoria `%s' devem ser menores que 127" -+msgid "reference clients mishandle more than %d transition times" -+msgstr "clientes de referência lidam incorretamente com mais %d tempos de transição" + return -1; +@@ -137,7 +135,7 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) --#: nscd/connections.c:355 --#, c-format --msgid "while accepting connection: %s" --msgstr "enquanto aceitando conecção: %s" -+#: timezone/zic.c:1747 -+msgid "pre-2014 clients may mishandle more than 1200 transition times" -+msgstr "clientes pré-2014 podem não lidar corretamente comais de 1200 tempos de transições" + __execve (buffer, argv, envp); --#: nscd/grpcache.c:149 nscd/hstcache.c:168 nscd/pwdcache.c:142 --msgid "while allocating cache entry" --msgstr "enquanto alocando entrada de cache" -+#: timezone/zic.c:1858 -+msgid "too many transition times" -+msgstr "tempos de transição em excesso" +- if (errno == ENOEXEC) ++ if (errno == ENOEXEC && exec_script) + /* This has O(P*C) behavior, where P is the length of the path and C + is the argument count. A better strategy would be allocate the + substitute argv and reuse it each time through the loop (so it +@@ -184,4 +182,18 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) + return -1; + } --#: nscd/cache.c:85 --msgid "while allocating hash table entry" --msgstr "enquanto alocando entrada na tabela hash" -+#: timezone/zic.c:2047 -+#, c-format -+msgid "%%z UTC offset magnitude exceeds 99:59:59" -+msgstr "a magnitude do deslocamento de %%z UTC excede 99:59:59" ++/* Execute FILE, searching in the `PATH' environment variable if it contains ++ no slashes, with arguments ARGV and environment from ENVP. */ ++int ++__execvpe (const char *file, char *const argv[], char *const envp[]) ++{ ++ return __execvpe_common (file, argv, envp, true); ++} + weak_alias (__execvpe, execvpe) ++ ++/* Same as __EXECVPE, but does not try to execute NOEXEC files. */ ++int ++__execvpex (const char *file, char *const argv[], char *const envp[]) ++{ ++ return __execvpe_common (file, argv, envp, false); ++} +diff --git a/posix/regexec.c b/posix/regexec.c +index 4b1ab4ecff..21129432d1 100644 +--- a/posix/regexec.c ++++ b/posix/regexec.c +@@ -3848,30 +3848,27 @@ check_node_accept_bytes (const re_dfa_t *dfa, int node_idx, + indirect = (const int32_t *) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); + int32_t idx = findidx (table, indirect, extra, &cp, elem_len); ++ int32_t rule = idx >> 24; ++ idx &= 0xffffff; + if (idx > 0) +- for (i = 0; i < cset->nequiv_classes; ++i) +- { +- int32_t equiv_class_idx = cset->equiv_classes[i]; +- size_t weight_len = weights[idx & 0xffffff]; +- if (weight_len == weights[equiv_class_idx & 0xffffff] +- && (idx >> 24) == (equiv_class_idx >> 24)) +- { +- int cnt = 0; +- +- idx &= 0xffffff; +- equiv_class_idx &= 0xffffff; +- +- while (cnt <= weight_len +- && (weights[equiv_class_idx + 1 + cnt] +- == weights[idx + 1 + cnt])) +- ++cnt; +- if (cnt > weight_len) +- { +- match_len = elem_len; +- goto check_node_accept_bytes_match; +- } +- } +- } ++ { ++ size_t weight_len = weights[idx]; ++ for (i = 0; i < cset->nequiv_classes; ++i) ++ { ++ int32_t equiv_class_idx = cset->equiv_classes[i]; ++ int32_t equiv_class_rule = equiv_class_idx >> 24; ++ equiv_class_idx &= 0xffffff; ++ if (weights[equiv_class_idx] == weight_len ++ && equiv_class_rule == rule ++ && memcmp (weights + idx + 1, ++ weights + equiv_class_idx + 1, ++ weight_len) == 0) ++ { ++ match_len = elem_len; ++ goto check_node_accept_bytes_match; ++ } ++ } ++ } + } + } + else +diff --git a/posix/tst-glob_lstat_compat.c b/posix/tst-glob_lstat_compat.c +index c46bc9e578..22cd1f02f9 100644 +--- a/posix/tst-glob_lstat_compat.c ++++ b/posix/tst-glob_lstat_compat.c +@@ -35,7 +35,14 @@ + #if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_27) --#: nscd/grpcache.c:99 nscd/hstcache.c:109 nscd/pwdcache.c:105 --msgid "while allocating key copy" --msgstr "enquanto alocando chave cópia" -+#: timezone/zic.c:2424 -+msgid "no POSIX environment variable for zone" -+msgstr "nenhuma variável de ambiente POSIX para o fuso horário" + __typeof (glob) glob; ++/* On alpha glob exists in version GLIBC_2_0, GLIBC_2_1, and GLIBC_2_27. ++ This test needs to access the version prior to GLIBC_2_27, which is ++ GLIBC_2_1 on alpha, GLIBC_2_0 elsewhere. */ ++# ifdef __alpha__ ++compat_symbol_reference (libc, glob, glob, GLIBC_2_1); ++# else + compat_symbol_reference (libc, glob, glob, GLIBC_2_0); ++# endif --#: catgets/gencat.c:1001 --msgid "while opening old catalog file" --msgstr "enquanto abrindo antigo arquivo de catálogo" -+#: timezone/zic.c:2430 -+#, c-format -+msgid "%s: pre-%d clients may mishandle distant timestamps" -+msgstr "%s: clientes pré-%d podem não lidar corretamente com marcas de tempo distantes" + /* Compat glob should not call gl_lstat since for some old binaries it + might be unitialized (for instance GNUmake). Check if it is indeed +diff --git a/posix/tst-rfc3484-2.c b/posix/tst-rfc3484-2.c +index f509534ca9..8c64ac59ff 100644 +--- a/posix/tst-rfc3484-2.c ++++ b/posix/tst-rfc3484-2.c +@@ -58,6 +58,7 @@ _res_hconf_init (void) + #undef USE_NSCD + #include "../sysdeps/posix/getaddrinfo.c" --#: locale/programs/locale.c:346 --msgid "while preparing output" --msgstr "enquanto preparando saída" -+#: timezone/zic.c:2566 -+msgid "two rules for same instant" -+msgstr "duas regras para o mesmo instante" ++service_user *__nss_hosts_database attribute_hidden; --#: db2/makedb.c:365 db2/makedb.c:382 --msgid "while reading database" --msgstr "enquanto lendo database" -+#: timezone/zic.c:2627 -+msgid "can't determine time zone abbreviation to use just after until time" -+msgstr "não é possível determinar abreviação de fuso horário para usar apenas após um tempo" + /* This is the beginning of the real test code. The above defines + (among other things) the function rfc3484_sort. */ +diff --git a/posix/tst-rfc3484-3.c b/posix/tst-rfc3484-3.c +index ae44087a10..1c61aaf844 100644 +--- a/posix/tst-rfc3484-3.c ++++ b/posix/tst-rfc3484-3.c +@@ -58,6 +58,7 @@ _res_hconf_init (void) + #undef USE_NSCD + #include "../sysdeps/posix/getaddrinfo.c" --#: elf/sprof.c:683 --msgid "while stat'ing profiling data file" --msgstr "enquanto escrevendo arquivo data de dados de perfil" -+#: timezone/zic.c:2725 -+msgid "too many local time types" -+msgstr "tipos de tempo local em excesso" ++service_user *__nss_hosts_database attribute_hidden; --#: db2/makedb.c:334 --msgid "while writing database file" --msgstr "enquanto escrevendo arquivo data base" -+#: timezone/zic.c:2729 -+msgid "UT offset out of range" -+msgstr "deslocamento de UT fora da faixa" + /* This is the beginning of the real test code. The above defines + (among other things) the function rfc3484_sort. */ +diff --git a/posix/tst-rfc3484.c b/posix/tst-rfc3484.c +index 7f191abbbc..8f45848e44 100644 +--- a/posix/tst-rfc3484.c ++++ b/posix/tst-rfc3484.c +@@ -58,6 +58,7 @@ _res_hconf_init (void) + #undef USE_NSCD + #include "../sysdeps/posix/getaddrinfo.c" --#: nscd/nscd_stat.c:115 --msgid "write incomplete" --msgstr "escrita incompleta" -+#: timezone/zic.c:2753 -+msgid "too many leap seconds" -+msgstr "número excessivo de segundos bissextos" ++service_user *__nss_hosts_database attribute_hidden; --#: inet/rcmd.c:320 --msgid "writeable by other than owner" --msgstr "permissão de escrita para outros" -+#: timezone/zic.c:2759 -+msgid "repeated leap second moment" -+msgstr "momento de segundo bissexto repetido" + /* This is the beginning of the real test code. The above defines + (among other things) the function rfc3484_sort. */ +diff --git a/posix/tst-spawn4-compat.c b/posix/tst-spawn4-compat.c +new file mode 100644 +index 0000000000..11f654b913 +--- /dev/null ++++ b/posix/tst-spawn4-compat.c +@@ -0,0 +1,77 @@ ++/* Check if posix_spawn does handle correctly ENOEXEC files. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_15) ++ ++compat_symbol_reference (libc, posix_spawn, posix_spawn, GLIBC_2_2); ++compat_symbol_reference (libc, posix_spawnp, posix_spawnp, GLIBC_2_2); ++ ++static int ++do_test (void) ++{ ++ char *scriptname; ++ int fd = create_temp_file ("tst-spawn4.", &scriptname); ++ TEST_VERIFY_EXIT (fd >= 0); ++ ++ const char script[] = "exit 65"; ++ xwrite (fd, script, sizeof (script) - 1); ++ xclose (fd); ++ ++ TEST_VERIFY_EXIT (chmod (scriptname, 0x775) == 0); ++ ++ pid_t pid; ++ int status; ++ ++ /* For compat symbol it verifies that trying to issued a shell script ++ without a shebang is correctly executed. */ ++ status = posix_spawn (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, ++ (char *[]) { 0 }); ++ TEST_VERIFY_EXIT (status == 0); ++ ++ TEST_VERIFY_EXIT (waitpid (pid, &status, 0) == pid); ++ TEST_VERIFY_EXIT (WIFEXITED (status) == 1 && WEXITSTATUS (status) == 65); ++ ++ status = posix_spawnp (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, ++ (char *[]) { 0 }); ++ TEST_VERIFY_EXIT (status == 0); ++ ++ TEST_VERIFY_EXIT (waitpid (pid, &status, 0) == pid); ++ TEST_VERIFY_EXIT (WIFEXITED (status) == 1 && WEXITSTATUS (status) == 65); ++ ++ return 0; ++} ++#else ++static int ++do_test (void) ++{ ++ return 77; ++} ++#endif ++ ++#include +diff --git a/posix/tst-spawn4.c b/posix/tst-spawn4.c +new file mode 100644 +index 0000000000..e4a1fa3f00 +--- /dev/null ++++ b/posix/tst-spawn4.c +@@ -0,0 +1,56 @@ ++/* Check if posix_spawn does handle correctly ENOEXEC files. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ char *scriptname; ++ int fd = create_temp_file ("tst-spawn4.", &scriptname); ++ TEST_VERIFY_EXIT (fd >= 0); ++ ++ const char script[] = "echo it should not happen"; ++ xwrite (fd, script, sizeof (script) - 1); ++ xclose (fd); ++ ++ TEST_VERIFY_EXIT (chmod (scriptname, 0x775) == 0); ++ ++ pid_t pid; ++ int status; ++ ++ /* Check if scripts without shebang are correctly not executed. */ ++ status = posix_spawn (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, ++ (char *[]) { 0 }); ++ TEST_VERIFY_EXIT (status == ENOEXEC); ++ ++ status = posix_spawnp (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, ++ (char *[]) { 0 }); ++ TEST_VERIFY_EXIT (status == ENOEXEC); ++ ++ return 0; ++} ++ ++#include +diff --git a/resolv/gai_misc.c b/resolv/gai_misc.c +index e7c3b63cc5..80a2cff835 100644 +--- a/resolv/gai_misc.c ++++ b/resolv/gai_misc.c +@@ -261,8 +261,11 @@ __gai_enqueue_request (struct gaicb *gaicbp) + /* We cannot create a thread in the moment and there is + also no thread running. This is a problem. `errno' is + set to EAGAIN if this is only a temporary problem. */ +- assert (lastp->next == newp); +- lastp->next = NULL; ++ assert (requests == newp || lastp->next == newp); ++ if (lastp != NULL) ++ lastp->next = NULL; ++ else ++ requests = NULL; + requests_tail = lastp; --#: db2/makedb.c:124 nscd/nscd.c:114 nss/getent.c:392 --msgid "wrong number of arguments" --msgstr "número incorreto de argumentos" -+#: timezone/zic.c:2830 -+msgid "Wild result from command execution" -+msgstr "Resultado insensato da execução do comando" + newp->next = freelist; +diff --git a/resolv/res_send.c b/resolv/res_send.c +index dde0425a33..9e9541789b 100644 +--- a/resolv/res_send.c ++++ b/resolv/res_send.c +@@ -471,6 +471,11 @@ __res_context_send (struct resolv_context *ctx, + '\0', + sizeof (struct sockaddr_in6) + - sizeof (struct sockaddr_in)); ++ else ++ { ++ __set_errno (ENOMEM); ++ return -1; ++ } + } + EXT(statp).nscount = statp->nscount; + } +@@ -1152,25 +1157,27 @@ send_dg(res_state statp, + if (have_sendmmsg >= 0 && nwritten == 0 && buf2 != NULL + && !single_request) + { +- struct iovec iov[2]; +- struct mmsghdr reqs[2]; +- reqs[0].msg_hdr.msg_name = NULL; +- reqs[0].msg_hdr.msg_namelen = 0; +- reqs[0].msg_hdr.msg_iov = &iov[0]; +- reqs[0].msg_hdr.msg_iovlen = 1; +- iov[0].iov_base = (void *) buf; +- iov[0].iov_len = buflen; +- reqs[0].msg_hdr.msg_control = NULL; +- reqs[0].msg_hdr.msg_controllen = 0; +- +- reqs[1].msg_hdr.msg_name = NULL; +- reqs[1].msg_hdr.msg_namelen = 0; +- reqs[1].msg_hdr.msg_iov = &iov[1]; +- reqs[1].msg_hdr.msg_iovlen = 1; +- iov[1].iov_base = (void *) buf2; +- iov[1].iov_len = buflen2; +- reqs[1].msg_hdr.msg_control = NULL; +- reqs[1].msg_hdr.msg_controllen = 0; ++ struct iovec iov = ++ { .iov_base = (void *) buf, .iov_len = buflen }; ++ struct iovec iov2 = ++ { .iov_base = (void *) buf2, .iov_len = buflen2 }; ++ struct mmsghdr reqs[2] = ++ { ++ { ++ .msg_hdr = ++ { ++ .msg_iov = &iov, ++ .msg_iovlen = 1, ++ }, ++ }, ++ { ++ .msg_hdr = ++ { ++ .msg_iov = &iov2, ++ .msg_iovlen = 1, ++ } ++ }, ++ }; --#: timezone/zic.c:1090 --msgid "wrong number of fields on Leap line" --msgstr "número incorreto de campos na linha Leap" -+#: timezone/zic.c:2831 -+#, c-format -+msgid "%s: command was '%s', result was %d\n" -+msgstr "%s: comando era “%s”, resultado era %d\n" + int ndg = __sendmmsg (pfd[0].fd, reqs, 2, MSG_NOSIGNAL); + if (__glibc_likely (ndg == 2)) +diff --git a/resolv/tst-resolv-network.c b/resolv/tst-resolv-network.c +index 4b862d57e6..735e38d0f8 100644 +--- a/resolv/tst-resolv-network.c ++++ b/resolv/tst-resolv-network.c +@@ -149,6 +149,9 @@ handle_code (const struct resolv_response_context *ctx, + resolv_response_add_data (b, &rrtype, sizeof (rrtype)); + } + break; ++ case 104: ++ send_ptr (b, qname, qclass, qtype, "host.example"); ++ break; + default: + FAIL_EXIT1 ("invalid QNAME: %s (code %d)", qname, code); + } +@@ -257,6 +260,9 @@ do_test (void) + "error: TRY_AGAIN\n"); + check_netent ("code103.example", getnetbyname ("code103.example"), + "error: NO_RECOVERY\n"); ++ /* Test bug #17630. */ ++ check_netent ("code104.example", getnetbyname ("code104.example"), ++ "error: TRY_AGAIN\n"); + + /* Lookup by address, success cases. */ + check_reverse (1, +diff --git a/signal/Makefile b/signal/Makefile +index a9b99a20be..aa63434f47 100644 +--- a/signal/Makefile ++++ b/signal/Makefile +@@ -46,7 +46,7 @@ routines := signal raise killpg \ + sighold sigrelse sigignore sigset --#: timezone/zic.c:1181 --msgid "wrong number of fields on Link line" --msgstr "número incorreto de campos na linha Link" -+#: timezone/zic.c:2961 -+msgid "Odd number of quotation marks" -+msgstr "Número ímpar de aspas" + tests := tst-signal tst-sigset tst-sigsimple tst-raise tst-sigset2 \ +- tst-sigwait-eintr \ ++ tst-sigwait-eintr tst-sigaction \ --#: timezone/zic.c:924 --msgid "wrong number of fields on Rule line" --msgstr "número incorreto de campos na linha Rule" -+#: timezone/zic.c:3046 -+msgid "use of 2/29 in non leap-year" -+msgstr "uso de 2/29 em ano não bissexto" + include ../Rules --#: timezone/zic.c:994 --msgid "wrong number of fields on Zone continuation line" --msgstr "número incorreto de campos na linha de continuação de Zone" -+#: timezone/zic.c:3081 -+msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic" -+msgstr "regra vai de início/fim do mês; não vai funcionar em versões pré-2004 do zic" +diff --git a/signal/tst-sigaction.c b/signal/tst-sigaction.c +new file mode 100644 +index 0000000000..c908e8f6f6 +--- /dev/null ++++ b/signal/tst-sigaction.c +@@ -0,0 +1,56 @@ ++/* Test sigaction regression for BZ #23069. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++ ++static void ++my_sig_handler (int signum) ++{ ++} ++ ++static int ++do_test (void) ++{ ++ /* Define a simple signal handler */ ++ struct sigaction act; ++ act.sa_handler = my_sig_handler; ++ act.sa_flags = 0; ++ sigemptyset (&act.sa_mask); ++ ++ /* Set it as SIGUSR1 signal handler */ ++ TEST_VERIFY_EXIT (sigaction (SIGUSR1, &act, NULL) == 0); ++ ++ /* Get SIGUSR1 signal handler */ ++ TEST_VERIFY_EXIT (sigaction (SIGUSR1, NULL, &act) == 0); ++ ++ /* Check it is consistent with the defined one */ ++ TEST_VERIFY (act.sa_handler == my_sig_handler); ++ TEST_VERIFY (!(act.sa_flags & SA_RESETHAND)); ++ ++ for (int i = 1; i < _NSIG; i++) ++ { ++ TEST_VERIFY (!sigismember (&act.sa_mask, i)); ++ } ++ ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-printf.c b/stdio-common/tst-printf.c +index d73f0cc34e..70d9e584b3 100644 +--- a/stdio-common/tst-printf.c ++++ b/stdio-common/tst-printf.c +@@ -69,77 +69,7 @@ fmtst2chk (const char *fmt) + (void) printf(fmt, 4, 4, 0x12); + (void) printf("'\n"); + } +- +-/* This page is covered by the following copyright: */ +- +-/* (C) Copyright C E Chew +- * +- * Feel free to copy, use and distribute this software provided: +- * +- * 1. you do not pretend that you wrote it +- * 2. you leave this copyright notice intact. +- */ +- +-/* +- * Extracted from exercise.c for glibc-1.05 bug report by Bruce Evans. +- */ +- +-#define DEC -123 +-#define INT 255 +-#define UNS (~0) --#: timezone/zic.c:952 --msgid "wrong number of fields on Zone line" --msgstr "número incorreto de campos na linha Zone" -+#: timezone/zic.c:3108 -+msgid "time zone abbreviation has fewer than 3 characters" -+msgstr "abreviação de fuso horário possui menos de 3 caracteres" +-/* Formatted Output Test +- * +- * This exercises the output formatting code. +- */ +- +-static void +-fp_test (void) +-{ +- int i, j, k, l; +- char buf[7]; +- char *prefix = buf; +- char tp[20]; +- +- puts("\nFormatted output test"); +- printf("prefix 6d 6o 6x 6X 6u\n"); +- strcpy(prefix, "%"); +- for (i = 0; i < 2; i++) { +- for (j = 0; j < 2; j++) { +- for (k = 0; k < 2; k++) { +- for (l = 0; l < 2; l++) { +- strcpy(prefix, "%"); +- if (i == 0) strcat(prefix, "-"); +- if (j == 0) strcat(prefix, "+"); +- if (k == 0) strcat(prefix, "#"); +- if (l == 0) strcat(prefix, "0"); +- printf("%5s |", prefix); +- strcpy(tp, prefix); +- strcat(tp, "6d |"); +- printf(tp, DEC); +- strcpy(tp, prefix); +- strcat(tp, "6o |"); +- printf(tp, INT); +- strcpy(tp, prefix); +- strcat(tp, "6x |"); +- printf(tp, INT); +- strcpy(tp, prefix); +- strcat(tp, "6X |"); +- printf(tp, INT); +- strcpy(tp, prefix); +- strcat(tp, "6u |"); +- printf(tp, UNS); +- printf("\n"); +- } +- } +- } +- } +- printf("%10s\n", (char *) NULL); +- printf("%-10s\n", (char *) NULL); +- printf("%.8f\n", DBL_MAX); +- printf("%.8f\n", -DBL_MAX); +-} +- + static int + do_test (void) + { +@@ -239,8 +169,8 @@ I am ready for my first lesson today."; + snprintf(buf2, sizeof(buf2), "%.999999u", 10)); + } --#: sunrpc/xdr_ref.c:84 --msgid "xdr_reference: out of memory\n" --msgstr "xdr_reference: não há memória suficiente\n" -+#: timezone/zic.c:3110 -+msgid "time zone abbreviation has too many characters" -+msgstr "abreviação de fuso horário possui um número excessivo de caracteres" +- fp_test (); +- ++ printf("%.8f\n", DBL_MAX); ++ printf("%.8f\n", -DBL_MAX); + printf ("%e should be 1.234568e+06\n", 1234567.8); + printf ("%f should be 1234567.800000\n", 1234567.8); + printf ("%g should be 1.23457e+06\n", 1234567.8); +diff --git a/stdio-common/tst-printf.sh b/stdio-common/tst-printf.sh +index 93bfe03c6f..b543cc646c 100644 +--- a/stdio-common/tst-printf.sh ++++ b/stdio-common/tst-printf.sh +@@ -105,27 +105,6 @@ something really insane: 1.00000000000000000000000000000000000000000000000000000 + | 123456.0000| 1.2346e+05| 1.235e+05| + snprintf ("%30s", "foo") == 30, " " + snprintf ("%.999999u", 10) == 999999 +- +-Formatted output test +-prefix 6d 6o 6x 6X 6u +-%-+#0 |-123 |0377 |0xff |0XFF |4294967295 | +- %-+# |-123 |0377 |0xff |0XFF |4294967295 | +- %-+0 |-123 |377 |ff |FF |4294967295 | +- %-+ |-123 |377 |ff |FF |4294967295 | +- %-#0 |-123 |0377 |0xff |0XFF |4294967295 | +- %-# |-123 |0377 |0xff |0XFF |4294967295 | +- %-0 |-123 |377 |ff |FF |4294967295 | +- %- |-123 |377 |ff |FF |4294967295 | +- %+#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 | +- %+# | -123 | 0377 | 0xff | 0XFF |4294967295 | +- %+0 |-00123 |000377 |0000ff |0000FF |4294967295 | +- %+ | -123 | 377 | ff | FF |4294967295 | +- %#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 | +- %# | -123 | 0377 | 0xff | 0XFF |4294967295 | +- %0 |-00123 |000377 |0000ff |0000FF |4294967295 | +- % | -123 | 377 | ff | FF |4294967295 | +- (null) +-(null) + 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000 + -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000 + 1.234568e+06 should be 1.234568e+06 +@@ -225,27 +204,6 @@ something really insane: 1.00000000000000000000000000000000000000000000000000000 + | 123456.0000| 1.2346e+05| 1.235e+05| + snprintf ("%30s", "foo") == 30, " " + snprintf ("%.999999u", 10) == 999999 +- +-Formatted output test +-prefix 6d 6o 6x 6X 6u +-%-+#0 |-123 |0377 |0xff |0XFF |4294967295 | +- %-+# |-123 |0377 |0xff |0XFF |4294967295 | +- %-+0 |-123 |377 |ff |FF |4294967295 | +- %-+ |-123 |377 |ff |FF |4294967295 | +- %-#0 |-123 |0377 |0xff |0XFF |4294967295 | +- %-# |-123 |0377 |0xff |0XFF |4294967295 | +- %-0 |-123 |377 |ff |FF |4294967295 | +- %- |-123 |377 |ff |FF |4294967295 | +- %+#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 | +- %+# | -123 | 0377 | 0xff | 0XFF |4294967295 | +- %+0 |-00123 |000377 |0000ff |0000FF |4294967295 | +- %+ | -123 | 377 | ff | FF |4294967295 | +- %#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 | +- %# | -123 | 0377 | 0xff | 0XFF |4294967295 | +- %0 |-00123 |000377 |0000ff |0000FF |4294967295 | +- % | -123 | 377 | ff | FF |4294967295 | +- (null) +-(null) + 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000 + -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000 + 1.234568e+06 should be 1.234568e+06 +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 7c363a6e4d..a9ad849531 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -84,7 +84,7 @@ tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ + tst-cxa_atexit tst-on_exit test-atexit-race \ + test-at_quick_exit-race test-cxa_atexit-race \ + test-on_exit-race test-dlclose-exit-race \ +- tst-makecontext-align ++ tst-makecontext-align test-bz22786 --#: sunrpc/xdr_rec.c:151 sunrpc/xdr_rec.c:166 --msgid "xdrrec_create: out of memory\n" --msgstr "xdrrec_create: não há memória suficiente\n" -+#: timezone/zic.c:3112 -+msgid "time zone abbreviation differs from POSIX standard" -+msgstr "abreviação de fuso horário difere do padrão POSIX" + tests-internal := tst-strtod1i tst-strtod3 tst-strtod4 tst-strtod5i \ + tst-tls-atexit tst-tls-atexit-nodelete +diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c +index 30825a91b8..432fc82b4a 100644 +--- a/stdlib/canonicalize.c ++++ b/stdlib/canonicalize.c +@@ -181,7 +181,7 @@ __realpath (const char *name, char *resolved) + extra_buf = __alloca (path_max); --#: nis/ypclnt.c:884 --msgid "yp_update: cannot convert host to netname\n" --msgstr "yp_update: não é possível converter host para netname\n" -+#: timezone/zic.c:3118 -+msgid "too many, or too long, time zone abbreviations" -+msgstr "abreviações de fuso horário em excesso ou muito extensas" + len = strlen (end); +- if ((long int) (n + len) >= path_max) ++ if (path_max - n <= len) + { + __set_errno (ENAMETOOLONG); + goto error; +diff --git a/stdlib/random_r.c b/stdlib/random_r.c +index 4d2f0d472f..b47c65c6d7 100644 +--- a/stdlib/random_r.c ++++ b/stdlib/random_r.c +@@ -361,8 +361,7 @@ __random_r (struct random_data *buf, int32_t *result) --#: nis/ypclnt.c:896 --msgid "yp_update: cannot get server address\n" --msgstr "yp_update: não é possível obter o endereço do servidor\n" -+#: timezone/zic.c:3161 -+#, c-format -+msgid "%s: Can't create directory %s: %s" -+msgstr "%s: Não foi possível criar o diretório %s: %s" -diff --git a/posix/Makefile b/posix/Makefile -index 83b3d7418c..0fb280ba69 100644 ---- a/posix/Makefile -+++ b/posix/Makefile -@@ -95,10 +95,10 @@ tests := test-errno tstgetopt testfnm runtests runptests \ - tst-posix_spawn-fd tst-posix_spawn-setsid \ - tst-posix_fadvise tst-posix_fadvise64 \ - tst-sysconf-empty-chroot tst-glob_symlinks tst-fexecve \ -- tst-glob-tilde -+ tst-glob-tilde tst-spawn4 - tests-internal := bug-regex5 bug-regex20 bug-regex33 \ - tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 \ -- tst-glob_lstat_compat -+ tst-glob_lstat_compat tst-spawn4-compat - xtests := bug-ga2 tst-getaddrinfo4 tst-getaddrinfo5 - ifeq (yes,$(build-shared)) - test-srcs := globtest -diff --git a/posix/execvpe.c b/posix/execvpe.c -index 859c0f69bf..ea67d19fcd 100644 ---- a/posix/execvpe.c -+++ b/posix/execvpe.c -@@ -67,11 +67,9 @@ maybe_script_execute (const char *file, char *const argv[], char *const envp[]) - __execve (new_argv[0], new_argv, envp); - } + if (buf->rand_type == TYPE_0) + { +- int32_t val = state[0]; +- val = ((state[0] * 1103515245) + 12345) & 0x7fffffff; ++ int32_t val = ((state[0] * 1103515245U) + 12345U) & 0x7fffffff; + state[0] = val; + *result = val; + } +@@ -371,11 +370,11 @@ __random_r (struct random_data *buf, int32_t *result) + int32_t *fptr = buf->fptr; + int32_t *rptr = buf->rptr; + int32_t *end_ptr = buf->end_ptr; +- int32_t val; ++ uint32_t val; -- --/* Execute FILE, searching in the `PATH' environment variable if it contains -- no slashes, with arguments ARGV and environment from ENVP. */ --int --__execvpe (const char *file, char *const argv[], char *const envp[]) +- val = *fptr += *rptr; ++ val = *fptr += (uint32_t) *rptr; + /* Chucking least random bit. */ +- *result = (val >> 1) & 0x7fffffff; ++ *result = val >> 1; + ++fptr; + if (fptr >= end_ptr) + { +diff --git a/stdlib/test-bz22786.c b/stdlib/test-bz22786.c +new file mode 100644 +index 0000000000..e7837f98c1 +--- /dev/null ++++ b/stdlib/test-bz22786.c +@@ -0,0 +1,90 @@ ++/* Bug 22786: test for buffer overflow in realpath. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This file must be run from within a directory called "stdlib". */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ +static int -+__execvpe_common (const char *file, char *const argv[], char *const envp[], -+ bool exec_script) ++do_test (void) ++{ ++ const char dir[] = "bz22786"; ++ const char lnk[] = "bz22786/symlink"; ++ ++ rmdir (dir); ++ if (mkdir (dir, 0755) != 0 && errno != EEXIST) ++ { ++ printf ("mkdir %s: %m\n", dir); ++ return EXIT_FAILURE; ++ } ++ if (symlink (".", lnk) != 0 && errno != EEXIST) ++ { ++ printf ("symlink (%s, %s): %m\n", dir, lnk); ++ return EXIT_FAILURE; ++ } ++ ++ const size_t path_len = (size_t) INT_MAX + 1; ++ ++ DIAG_PUSH_NEEDS_COMMENT; ++#if __GNUC_PREREQ (7, 0) ++ /* GCC 7 warns about too-large allocations; here we need such ++ allocation to succeed for the test to work. */ ++ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than="); ++#endif ++ char *path = malloc (path_len); ++ DIAG_POP_NEEDS_COMMENT; ++ ++ if (path == NULL) ++ { ++ printf ("malloc (%zu): %m\n", path_len); ++ return EXIT_UNSUPPORTED; ++ } ++ ++ /* Construct very long path = "bz22786/symlink/aaaa....." */ ++ char *p = mempcpy (path, lnk, sizeof (lnk) - 1); ++ *(p++) = '/'; ++ memset (p, 'a', path_len - (path - p) - 2); ++ p[path_len - (path - p) - 1] = '\0'; ++ ++ /* This call crashes before the fix for bz22786 on 32-bit platforms. */ ++ p = realpath (path, NULL); ++ ++ if (p != NULL || errno != ENAMETOOLONG) ++ { ++ printf ("realpath: %s (%m)", p); ++ return EXIT_FAILURE; ++ } ++ ++ /* Cleanup. */ ++ unlink (lnk); ++ rmdir (dir); ++ ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test ++#include +diff --git a/string/test-memcpy.c b/string/test-memcpy.c +index 45f20a6d80..3c8066da52 100644 +--- a/string/test-memcpy.c ++++ b/string/test-memcpy.c +@@ -212,6 +212,50 @@ do_random_tests (void) + } + } + ++static void ++do_test1 (void) ++{ ++ size_t size = 0x100000; ++ void *large_buf; ++ ++ large_buf = mmap (NULL, size * 2 + page_size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANON, -1, 0); ++ if (large_buf == MAP_FAILED) ++ { ++ puts ("Failed to allocat large_buf, skipping do_test1"); ++ return; ++ } ++ ++ if (mprotect (large_buf + size, page_size, PROT_NONE)) ++ error (EXIT_FAILURE, errno, "mprotect failed"); ++ ++ size_t arrary_size = size / sizeof (uint32_t); ++ uint32_t *dest = large_buf; ++ uint32_t *src = large_buf + size + page_size; ++ size_t i; ++ ++ for (i = 0; i < arrary_size; i++) ++ src[i] = (uint32_t) i; ++ ++ FOR_EACH_IMPL (impl, 0) ++ { ++ memset (dest, -1, size); ++ CALL (impl, (char *) dest, (char *) src, size); ++ for (i = 0; i < arrary_size; i++) ++ if (dest[i] != src[i]) ++ { ++ error (0, 0, ++ "Wrong result in function %s dst \"%p\" src \"%p\" offset \"%zd\"", ++ impl->name, dest, src, i); ++ ret = 1; ++ break; ++ } ++ } ++ ++ munmap ((void *) dest, size); ++ munmap ((void *) src, size); ++} ++ + int + test_main (void) { - /* We check the simple case first. */ - if (*file == '\0') -@@ -85,7 +83,7 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) - { - __execve (file, argv, envp); +@@ -253,6 +297,9 @@ test_main (void) + do_test (0, 0, getpagesize ()); -- if (errno == ENOEXEC) -+ if (errno == ENOEXEC && exec_script) - maybe_script_execute (file, argv, envp); + do_random_tests (); ++ ++ do_test1 (); ++ + return ret; + } - return -1; -@@ -137,7 +135,7 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) +diff --git a/string/test-memmove.c b/string/test-memmove.c +index edc7a4c3bf..64e3651ba4 100644 +--- a/string/test-memmove.c ++++ b/string/test-memmove.c +@@ -24,6 +24,7 @@ + # define TEST_NAME "memmove" + #endif + #include "test-string.h" ++#include - __execve (buffer, argv, envp); + char *simple_memmove (char *, const char *, size_t); -- if (errno == ENOEXEC) -+ if (errno == ENOEXEC && exec_script) - /* This has O(P*C) behavior, where P is the length of the path and C - is the argument count. A better strategy would be allocate the - substitute argv and reuse it each time through the loop (so it -@@ -184,4 +182,18 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) - return -1; +@@ -245,6 +246,60 @@ do_random_tests (void) + } } -+/* Execute FILE, searching in the `PATH' environment variable if it contains -+ no slashes, with arguments ARGV and environment from ENVP. */ -+int -+__execvpe (const char *file, char *const argv[], char *const envp[]) ++static void ++do_test2 (void) +{ -+ return __execvpe_common (file, argv, envp, true); -+} - weak_alias (__execvpe, execvpe) ++ size_t size = 0x20000000; ++ uint32_t * large_buf; + -+/* Same as __EXECVPE, but does not try to execute NOEXEC files. */ -+int -+__execvpex (const char *file, char *const argv[], char *const envp[]) -+{ -+ return __execvpe_common (file, argv, envp, false); ++ large_buf = mmap ((void*) 0x70000000, size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANON, -1, 0); ++ ++ if (large_buf == MAP_FAILED) ++ error (EXIT_UNSUPPORTED, errno, "Large mmap failed"); ++ ++ if ((uintptr_t) large_buf > 0x80000000 - 128 ++ || 0x80000000 - (uintptr_t) large_buf > 0x20000000) ++ { ++ error (0, 0, "Large mmap allocated improperly"); ++ ret = EXIT_UNSUPPORTED; ++ munmap ((void *) large_buf, size); ++ return; ++ } ++ ++ size_t bytes_move = 0x80000000 - (uintptr_t) large_buf; ++ size_t arr_size = bytes_move / sizeof (uint32_t); ++ size_t i; ++ ++ FOR_EACH_IMPL (impl, 0) ++ { ++ for (i = 0; i < arr_size; i++) ++ large_buf[i] = (uint32_t) i; ++ ++ uint32_t * dst = &large_buf[33]; ++ ++#ifdef TEST_BCOPY ++ CALL (impl, (char *) large_buf, (char *) dst, bytes_move); ++#else ++ CALL (impl, (char *) dst, (char *) large_buf, bytes_move); ++#endif ++ ++ for (i = 0; i < arr_size; i++) ++ { ++ if (dst[i] != (uint32_t) i) ++ { ++ error (0, 0, ++ "Wrong result in function %s dst \"%p\" src \"%p\" offset \"%zd\"", ++ impl->name, dst, large_buf, i); ++ ret = 1; ++ break; ++ } ++ } ++ } ++ ++ munmap ((void *) large_buf, size); +} -diff --git a/posix/tst-glob_lstat_compat.c b/posix/tst-glob_lstat_compat.c -index c46bc9e578..22cd1f02f9 100644 ---- a/posix/tst-glob_lstat_compat.c -+++ b/posix/tst-glob_lstat_compat.c -@@ -35,7 +35,14 @@ - #if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_27) - - __typeof (glob) glob; -+/* On alpha glob exists in version GLIBC_2_0, GLIBC_2_1, and GLIBC_2_27. -+ This test needs to access the version prior to GLIBC_2_27, which is -+ GLIBC_2_1 on alpha, GLIBC_2_0 elsewhere. */ -+# ifdef __alpha__ -+compat_symbol_reference (libc, glob, glob, GLIBC_2_1); -+# else - compat_symbol_reference (libc, glob, glob, GLIBC_2_0); -+# endif - - /* Compat glob should not call gl_lstat since for some old binaries it - might be unitialized (for instance GNUmake). Check if it is indeed -diff --git a/posix/tst-rfc3484-2.c b/posix/tst-rfc3484-2.c -index f509534ca9..8c64ac59ff 100644 ---- a/posix/tst-rfc3484-2.c -+++ b/posix/tst-rfc3484-2.c -@@ -58,6 +58,7 @@ _res_hconf_init (void) - #undef USE_NSCD - #include "../sysdeps/posix/getaddrinfo.c" ++ + int + test_main (void) + { +@@ -284,6 +339,9 @@ test_main (void) + } -+service_user *__nss_hosts_database attribute_hidden; + do_random_tests (); ++ ++ do_test2 (); ++ + return ret; + } - /* This is the beginning of the real test code. The above defines - (among other things) the function rfc3484_sort. */ -diff --git a/posix/tst-rfc3484-3.c b/posix/tst-rfc3484-3.c -index ae44087a10..1c61aaf844 100644 ---- a/posix/tst-rfc3484-3.c -+++ b/posix/tst-rfc3484-3.c -@@ -58,6 +58,7 @@ _res_hconf_init (void) - #undef USE_NSCD - #include "../sysdeps/posix/getaddrinfo.c" +diff --git a/string/test-mempcpy.c b/string/test-mempcpy.c +index c08fba895e..d98ecdd2d9 100644 +--- a/string/test-mempcpy.c ++++ b/string/test-mempcpy.c +@@ -18,6 +18,7 @@ + . */ -+service_user *__nss_hosts_database attribute_hidden; + #define MEMCPY_RESULT(dst, len) (dst) + (len) ++#define MIN_PAGE_SIZE 131072 + #define TEST_MAIN + #define TEST_NAME "mempcpy" + #include "test-string.h" +diff --git a/sunrpc/rpc_common.c b/sunrpc/rpc_common.c +index 710191163c..2d42827a87 100644 +--- a/sunrpc/rpc_common.c ++++ b/sunrpc/rpc_common.c +@@ -46,7 +46,14 @@ + the variable is declared. So we use the section attribute. */ + struct opaque_auth _null_auth __attribute__ ((nocommon)); + libc_hidden_nolink_sunrpc (_null_auth, GLIBC_2_0) +-fd_set svc_fdset; +-struct rpc_createerr rpc_createerr; +-struct pollfd *svc_pollfd; +-int svc_max_pollfd; ++ ++/* The variables need the nocommon attribute, so that it is possible ++ to create aliases and specify symbol versions. */ ++fd_set svc_fdset __attribute__ ((nocommon)); ++libc_hidden_nolink_sunrpc (svc_fdset, GLIBC_2_0) ++struct rpc_createerr rpc_createerr __attribute__ ((nocommon)); ++libc_hidden_nolink_sunrpc (rpc_createerr, GLIBC_2_0) ++struct pollfd *svc_pollfd __attribute__ ((nocommon)); ++libc_hidden_nolink_sunrpc (svc_pollfd, GLIBC_2_2) ++int svc_max_pollfd __attribute__ ((nocommon)); ++libc_hidden_nolink_sunrpc (svc_max_pollfd, GLIBC_2_2) +diff --git a/sunrpc/svcauth_des.c b/sunrpc/svcauth_des.c +index f99a5a324f..9ce4804239 100644 +--- a/sunrpc/svcauth_des.c ++++ b/sunrpc/svcauth_des.c +@@ -87,16 +87,21 @@ static void cache_ref (uint32_t sid); /* note that sid was ref'd */ - /* This is the beginning of the real test code. The above defines - (among other things) the function rfc3484_sort. */ -diff --git a/posix/tst-rfc3484.c b/posix/tst-rfc3484.c -index 7f191abbbc..8f45848e44 100644 ---- a/posix/tst-rfc3484.c -+++ b/posix/tst-rfc3484.c -@@ -58,6 +58,7 @@ _res_hconf_init (void) - #undef USE_NSCD - #include "../sysdeps/posix/getaddrinfo.c" + static void invalidate (char *cred); /* invalidate entry in cache */ -+service_user *__nss_hosts_database attribute_hidden; +-/* +- * cache statistics +- */ ++/* Cache statistics. Accidental historic export without a matching ++ declaration in any header file. */ ++#ifndef SHARED ++static ++#endif + struct + { + u_long ncachehits; /* times cache hit, and is not replay */ + u_long ncachereplays; /* times cache hit, and is replay */ + u_long ncachemisses; /* times cache missed */ + } +-svcauthdes_stats; ++svcauthdes_stats __attribute__ ((nocommon)); ++#ifdef SHARED ++compat_symbol (libc, svcauthdes_stats, svcauthdes_stats, GLIBC_2_0); ++#endif - /* This is the beginning of the real test code. The above defines - (among other things) the function rfc3484_sort. */ -diff --git a/posix/tst-spawn4-compat.c b/posix/tst-spawn4-compat.c + /* + * Service side authenticator for AUTH_DES +diff --git a/support/Makefile b/support/Makefile +index 1bda81e55e..652d2cdf69 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -52,9 +52,12 @@ libsupport-routines = \ + support_format_hostent \ + support_format_netent \ + support_isolate_in_subprocess \ ++ support_openpty \ ++ support_quote_blob \ + support_record_failure \ + support_run_diff \ + support_shared_allocate \ ++ support_test_compare_blob \ + support_test_compare_failure \ + support_write_file_string \ + support_test_main \ +@@ -95,6 +98,9 @@ libsupport-routines = \ + xpthread_barrier_destroy \ + xpthread_barrier_init \ + xpthread_barrier_wait \ ++ xpthread_barrierattr_destroy \ ++ xpthread_barrierattr_init \ ++ xpthread_barrierattr_setpshared \ + xpthread_cancel \ + xpthread_check_return \ + xpthread_cond_wait \ +@@ -150,8 +156,10 @@ tests = \ + tst-support-namespace \ + tst-support_capture_subprocess \ + tst-support_format_dns_packet \ ++ tst-support_quote_blob \ + tst-support_record_failure \ + tst-test_compare \ ++ tst-test_compare_blob \ + tst-xreadlink \ + + ifeq ($(run-built-tests),yes) +diff --git a/support/check.h b/support/check.h +index 2192f38941..b3a4645e92 100644 +--- a/support/check.h ++++ b/support/check.h +@@ -64,6 +64,8 @@ __BEGIN_DECLS + (1, __FILE__, __LINE__, #expr); \ + }) + ++ ++ + int support_print_failure_impl (const char *file, int line, + const char *format, ...) + __attribute__ ((nonnull (1), format (printf, 3, 4))); +@@ -141,6 +143,26 @@ void support_test_compare_failure (const char *file, int line, + int right_size); + + ++/* Compare [LEFT, LEFT + LEFT_LENGTH) with [RIGHT, RIGHT + ++ RIGHT_LENGTH) and report a test failure if the arrays are ++ different. LEFT_LENGTH and RIGHT_LENGTH are measured in bytes. If ++ the length is null, the corresponding pointer is ignored (i.e., it ++ can be NULL). The blobs should be reasonably short because on ++ mismatch, both are printed. */ ++#define TEST_COMPARE_BLOB(left, left_length, right, right_length) \ ++ (support_test_compare_blob (left, left_length, right, right_length, \ ++ __FILE__, __LINE__, \ ++ #left, #left_length, #right, #right_length)) ++ ++void support_test_compare_blob (const void *left, ++ unsigned long int left_length, ++ const void *right, ++ unsigned long int right_length, ++ const char *file, int line, ++ const char *left_exp, const char *left_len_exp, ++ const char *right_exp, ++ const char *right_len_exp); ++ + /* Internal function called by the test driver. */ + int support_report_failure (int status) + __attribute__ ((weak, warn_unused_result)); +diff --git a/support/support.h b/support/support.h +index bc5827ed87..b61fe0735c 100644 +--- a/support/support.h ++++ b/support/support.h +@@ -59,6 +59,12 @@ void support_shared_free (void *); + process on error. */ + void support_write_file_string (const char *path, const char *contents); + ++/* Quote the contents of the byte array starting at BLOB, of LENGTH ++ bytes, in such a way that the result string can be included in a C ++ literal (in single/double quotes, without putting the quotes into ++ the result). */ ++char *support_quote_blob (const void *blob, size_t length); ++ + /* Error-checking wrapper functions which terminate the process on + error. */ + +diff --git a/support/support_format_addrinfo.c b/support/support_format_addrinfo.c +index c5e00e516a..60d2cc40f6 100644 +--- a/support/support_format_addrinfo.c ++++ b/support/support_format_addrinfo.c +@@ -67,8 +67,6 @@ format_ai_flags (FILE *out, struct addrinfo *ai) + FLAG (AI_ADDRCONFIG); + FLAG (AI_IDN); + FLAG (AI_CANONIDN); +- FLAG (AI_IDN_ALLOW_UNASSIGNED); +- FLAG (AI_IDN_USE_STD3_ASCII_RULES); + FLAG (AI_NUMERICSERV); + #undef FLAG + int remaining = ai->ai_flags & ~flags_printed; +@@ -220,7 +218,11 @@ support_format_addrinfo (struct addrinfo *ai, int ret) + xopen_memstream (&mem); + if (ret != 0) + { +- fprintf (mem.out, "error: %s\n", gai_strerror (ret)); ++ const char *errmsg = gai_strerror (ret); ++ if (strcmp (errmsg, "Unknown error") == 0) ++ fprintf (mem.out, "error: Unknown error %d\n", ret); ++ else ++ fprintf (mem.out, "error: %s\n", errmsg); + if (ret == EAI_SYSTEM) + { + errno = errno_copy; +diff --git a/support/support_openpty.c b/support/support_openpty.c new file mode 100644 -index 0000000000..11f654b913 +index 0000000000..ac779ab91e --- /dev/null -+++ b/posix/tst-spawn4-compat.c -@@ -0,0 +1,77 @@ -+/* Check if posix_spawn does handle correctly ENOEXEC files. ++++ b/support/support_openpty.c +@@ -0,0 +1,109 @@ ++/* Open a pseudoterminal. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + @@ -12752,72 +15507,104 @@ index 0000000000..11f654b913 + License along with the GNU C Library; if not, see + . */ + -+#include -+#include -+#include -+#include -+#include -+ -+#include ++#include +#include -+#include -+ -+#include -+#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_15) ++#include + -+compat_symbol_reference (libc, posix_spawn, posix_spawn, GLIBC_2_2); -+compat_symbol_reference (libc, posix_spawnp, posix_spawnp, GLIBC_2_2); ++#include ++#include ++#include + -+static int -+do_test (void) ++#include ++#include ++#include ++#include ++ ++/* As ptsname, but allocates space for an appropriately-sized string ++ using malloc. */ ++static char * ++xptsname (int fd) +{ -+ char *scriptname; -+ int fd = create_temp_file ("tst-spawn4.", &scriptname); -+ TEST_VERIFY_EXIT (fd >= 0); ++ int rv; ++ size_t buf_len = 128; ++ char *buf = xmalloc (buf_len); ++ for (;;) ++ { ++ rv = ptsname_r (fd, buf, buf_len); ++ if (rv) ++ FAIL_EXIT1 ("ptsname_r: %s", strerror (errno)); + -+ const char script[] = "exit 65"; -+ xwrite (fd, script, sizeof (script) - 1); -+ xclose (fd); ++ if (memchr (buf, '\0', buf_len)) ++ return buf; /* ptsname succeeded and the buffer was not truncated */ + -+ TEST_VERIFY_EXIT (chmod (scriptname, 0x775) == 0); ++ buf_len *= 2; ++ buf = xrealloc (buf, buf_len); ++ } ++} + -+ pid_t pid; -+ int status; ++void ++support_openpty (int *a_outer, int *a_inner, char **a_name, ++ const struct termios *termp, ++ const struct winsize *winp) ++{ ++ int outer = -1, inner = -1; ++ char *namebuf = 0; + -+ /* For compat symbol it verifies that trying to issued a shell script -+ without a shebang is correctly executed. */ -+ status = posix_spawn (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, -+ (char *[]) { 0 }); -+ TEST_VERIFY_EXIT (status == 0); ++ outer = posix_openpt (O_RDWR | O_NOCTTY); ++ if (outer == -1) ++ FAIL_EXIT1 ("posix_openpt: %s", strerror (errno)); + -+ TEST_VERIFY_EXIT (waitpid (pid, &status, 0) == pid); -+ TEST_VERIFY_EXIT (WIFEXITED (status) == 1 && WEXITSTATUS (status) == 65); ++ if (grantpt (outer)) ++ FAIL_EXIT1 ("grantpt: %s", strerror (errno)); + -+ status = posix_spawnp (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, -+ (char *[]) { 0 }); -+ TEST_VERIFY_EXIT (status == 0); ++ if (unlockpt (outer)) ++ FAIL_EXIT1 ("unlockpt: %s", strerror (errno)); + -+ TEST_VERIFY_EXIT (waitpid (pid, &status, 0) == pid); -+ TEST_VERIFY_EXIT (WIFEXITED (status) == 1 && WEXITSTATUS (status) == 65); + -+ return 0; -+} -+#else -+static int -+do_test (void) -+{ -+ return 77; -+} ++#ifdef TIOCGPTPEER ++ inner = ioctl (outer, TIOCGPTPEER, O_RDWR | O_NOCTTY); +#endif ++ if (inner == -1) ++ { ++ /* The kernel might not support TIOCGPTPEER, fall back to open ++ by name. */ ++ namebuf = xptsname (outer); ++ inner = open (namebuf, O_RDWR | O_NOCTTY); ++ if (inner == -1) ++ FAIL_EXIT1 ("%s: %s", namebuf, strerror (errno)); ++ } + -+#include -diff --git a/posix/tst-spawn4.c b/posix/tst-spawn4.c ++ if (termp) ++ { ++ if (tcsetattr (inner, TCSAFLUSH, termp)) ++ FAIL_EXIT1 ("tcsetattr: %s", strerror (errno)); ++ } ++#ifdef TIOCSWINSZ ++ if (winp) ++ { ++ if (ioctl (inner, TIOCSWINSZ, winp)) ++ FAIL_EXIT1 ("TIOCSWINSZ: %s", strerror (errno)); ++ } ++#endif ++ ++ if (a_name) ++ { ++ if (!namebuf) ++ namebuf = xptsname (outer); ++ *a_name = namebuf; ++ } ++ else ++ free (namebuf); ++ *a_outer = outer; ++ *a_inner = inner; ++} +diff --git a/support/support_quote_blob.c b/support/support_quote_blob.c new file mode 100644 -index 0000000000..e4a1fa3f00 +index 0000000000..d6a678d8d6 --- /dev/null -+++ b/posix/tst-spawn4.c -@@ -0,0 +1,56 @@ -+/* Check if posix_spawn does handle correctly ENOEXEC files. ++++ b/support/support_quote_blob.c +@@ -0,0 +1,83 @@ ++/* Quote a blob so that it can be used in C literals. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + @@ -12835,127 +15622,78 @@ index 0000000000..e4a1fa3f00 + License along with the GNU C Library; if not, see + . */ + -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include ++#include ++#include + -+static int -+do_test (void) ++char * ++support_quote_blob (const void *blob, size_t length) +{ -+ char *scriptname; -+ int fd = create_temp_file ("tst-spawn4.", &scriptname); -+ TEST_VERIFY_EXIT (fd >= 0); -+ -+ const char script[] = "echo it should not happen"; -+ xwrite (fd, script, sizeof (script) - 1); -+ xclose (fd); -+ -+ TEST_VERIFY_EXIT (chmod (scriptname, 0x775) == 0); -+ -+ pid_t pid; -+ int status; ++ struct xmemstream out; ++ xopen_memstream (&out); + -+ /* Check if scripts without shebang are correctly not executed. */ -+ status = posix_spawn (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, -+ (char *[]) { 0 }); -+ TEST_VERIFY_EXIT (status == ENOEXEC); ++ const unsigned char *p = blob; ++ for (size_t i = 0; i < length; ++i) ++ { ++ unsigned char ch = p[i]; + -+ status = posix_spawnp (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, -+ (char *[]) { 0 }); -+ TEST_VERIFY_EXIT (status == ENOEXEC); ++ /* Use C backslash escapes for those control characters for ++ which they are defined. */ ++ switch (ch) ++ { ++ case '\a': ++ putc_unlocked ('\\', out.out); ++ putc_unlocked ('a', out.out); ++ break; ++ case '\b': ++ putc_unlocked ('\\', out.out); ++ putc_unlocked ('b', out.out); ++ break; ++ case '\f': ++ putc_unlocked ('\\', out.out); ++ putc_unlocked ('f', out.out); ++ break; ++ case '\n': ++ putc_unlocked ('\\', out.out); ++ putc_unlocked ('n', out.out); ++ break; ++ case '\r': ++ putc_unlocked ('\\', out.out); ++ putc_unlocked ('r', out.out); ++ break; ++ case '\t': ++ putc_unlocked ('\\', out.out); ++ putc_unlocked ('t', out.out); ++ break; ++ case '\v': ++ putc_unlocked ('\\', out.out); ++ putc_unlocked ('v', out.out); ++ break; ++ case '\\': ++ case '\'': ++ case '\"': ++ putc_unlocked ('\\', out.out); ++ putc_unlocked (ch, out.out); ++ break; ++ default: ++ if (ch < ' ' || ch > '~') ++ /* Use octal sequences because they are fixed width, ++ unlike hexadecimal sequences. */ ++ fprintf (out.out, "\\%03o", ch); ++ else ++ putc_unlocked (ch, out.out); ++ } ++ } + -+ return 0; ++ xfclose_memstream (&out); ++ return out.buffer; +} -+ -+#include -diff --git a/resolv/res_send.c b/resolv/res_send.c -index dde0425a33..9e9541789b 100644 ---- a/resolv/res_send.c -+++ b/resolv/res_send.c -@@ -471,6 +471,11 @@ __res_context_send (struct resolv_context *ctx, - '\0', - sizeof (struct sockaddr_in6) - - sizeof (struct sockaddr_in)); -+ else -+ { -+ __set_errno (ENOMEM); -+ return -1; -+ } - } - EXT(statp).nscount = statp->nscount; - } -@@ -1152,25 +1157,27 @@ send_dg(res_state statp, - if (have_sendmmsg >= 0 && nwritten == 0 && buf2 != NULL - && !single_request) - { -- struct iovec iov[2]; -- struct mmsghdr reqs[2]; -- reqs[0].msg_hdr.msg_name = NULL; -- reqs[0].msg_hdr.msg_namelen = 0; -- reqs[0].msg_hdr.msg_iov = &iov[0]; -- reqs[0].msg_hdr.msg_iovlen = 1; -- iov[0].iov_base = (void *) buf; -- iov[0].iov_len = buflen; -- reqs[0].msg_hdr.msg_control = NULL; -- reqs[0].msg_hdr.msg_controllen = 0; -- -- reqs[1].msg_hdr.msg_name = NULL; -- reqs[1].msg_hdr.msg_namelen = 0; -- reqs[1].msg_hdr.msg_iov = &iov[1]; -- reqs[1].msg_hdr.msg_iovlen = 1; -- iov[1].iov_base = (void *) buf2; -- iov[1].iov_len = buflen2; -- reqs[1].msg_hdr.msg_control = NULL; -- reqs[1].msg_hdr.msg_controllen = 0; -+ struct iovec iov = -+ { .iov_base = (void *) buf, .iov_len = buflen }; -+ struct iovec iov2 = -+ { .iov_base = (void *) buf2, .iov_len = buflen2 }; -+ struct mmsghdr reqs[2] = -+ { -+ { -+ .msg_hdr = -+ { -+ .msg_iov = &iov, -+ .msg_iovlen = 1, -+ }, -+ }, -+ { -+ .msg_hdr = -+ { -+ .msg_iov = &iov2, -+ .msg_iovlen = 1, -+ } -+ }, -+ }; - - int ndg = __sendmmsg (pfd[0].fd, reqs, 2, MSG_NOSIGNAL); - if (__glibc_likely (ndg == 2)) -diff --git a/signal/Makefile b/signal/Makefile -index a9b99a20be..aa63434f47 100644 ---- a/signal/Makefile -+++ b/signal/Makefile -@@ -46,7 +46,7 @@ routines := signal raise killpg \ - sighold sigrelse sigignore sigset - - tests := tst-signal tst-sigset tst-sigsimple tst-raise tst-sigset2 \ -- tst-sigwait-eintr \ -+ tst-sigwait-eintr tst-sigaction \ - - include ../Rules - -diff --git a/signal/tst-sigaction.c b/signal/tst-sigaction.c +diff --git a/support/support_test_compare_blob.c b/support/support_test_compare_blob.c new file mode 100644 -index 0000000000..c908e8f6f6 +index 0000000000..c5e63d1b93 --- /dev/null -+++ b/signal/tst-sigaction.c -@@ -0,0 +1,56 @@ -+/* Test sigaction regression for BZ #23069. ++++ b/support/support_test_compare_blob.c +@@ -0,0 +1,76 @@ ++/* Check two binary blobs for equality. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + @@ -12973,106 +15711,112 @@ index 0000000000..c908e8f6f6 + License along with the GNU C Library; if not, see + . */ + -+#include -+#include -+ ++#include ++#include ++#include +#include ++#include ++#include + +static void -+my_sig_handler (int signum) ++report_length (const char *what, unsigned long int length, const char *expr) +{ ++ printf (" %s %lu bytes (from %s)\n", what, length, expr); +} + -+static int -+do_test (void) ++static void ++report_blob (const char *what, const unsigned char *blob, ++ unsigned long int length, const char *expr) +{ -+ /* Define a simple signal handler */ -+ struct sigaction act; -+ act.sa_handler = my_sig_handler; -+ act.sa_flags = 0; -+ sigemptyset (&act.sa_mask); -+ -+ /* Set it as SIGUSR1 signal handler */ -+ TEST_VERIFY_EXIT (sigaction (SIGUSR1, &act, NULL) == 0); -+ -+ /* Get SIGUSR1 signal handler */ -+ TEST_VERIFY_EXIT (sigaction (SIGUSR1, NULL, &act) == 0); -+ -+ /* Check it is consistent with the defined one */ -+ TEST_VERIFY (act.sa_handler == my_sig_handler); -+ TEST_VERIFY (!(act.sa_flags & SA_RESETHAND)); -+ -+ for (int i = 1; i < _NSIG; i++) ++ if (length > 0) + { -+ TEST_VERIFY (!sigismember (&act.sa_mask, i)); ++ printf (" %s (evaluated from %s):\n", what, expr); ++ char *quoted = support_quote_blob (blob, length); ++ printf (" \"%s\"\n", quoted); ++ free (quoted); ++ ++ fputs (" ", stdout); ++ for (unsigned long i = 0; i < length; ++i) ++ printf (" %02X", blob[i]); ++ putc ('\n', stdout); + } -+ -+ return 0; -+} -+ -+#include -diff --git a/stdlib/Makefile b/stdlib/Makefile -index 7c363a6e4d..a9ad849531 100644 ---- a/stdlib/Makefile -+++ b/stdlib/Makefile -@@ -84,7 +84,7 @@ tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ - tst-cxa_atexit tst-on_exit test-atexit-race \ - test-at_quick_exit-race test-cxa_atexit-race \ - test-on_exit-race test-dlclose-exit-race \ -- tst-makecontext-align -+ tst-makecontext-align test-bz22786 - - tests-internal := tst-strtod1i tst-strtod3 tst-strtod4 tst-strtod5i \ - tst-tls-atexit tst-tls-atexit-nodelete -diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c -index 30825a91b8..432fc82b4a 100644 ---- a/stdlib/canonicalize.c -+++ b/stdlib/canonicalize.c -@@ -181,7 +181,7 @@ __realpath (const char *name, char *resolved) - extra_buf = __alloca (path_max); - - len = strlen (end); -- if ((long int) (n + len) >= path_max) -+ if (path_max - n <= len) - { - __set_errno (ENAMETOOLONG); - goto error; -diff --git a/stdlib/random_r.c b/stdlib/random_r.c -index 4d2f0d472f..b47c65c6d7 100644 ---- a/stdlib/random_r.c -+++ b/stdlib/random_r.c -@@ -361,8 +361,7 @@ __random_r (struct random_data *buf, int32_t *result) - - if (buf->rand_type == TYPE_0) - { -- int32_t val = state[0]; -- val = ((state[0] * 1103515245) + 12345) & 0x7fffffff; -+ int32_t val = ((state[0] * 1103515245U) + 12345U) & 0x7fffffff; - state[0] = val; - *result = val; - } -@@ -371,11 +370,11 @@ __random_r (struct random_data *buf, int32_t *result) - int32_t *fptr = buf->fptr; - int32_t *rptr = buf->rptr; - int32_t *end_ptr = buf->end_ptr; -- int32_t val; -+ uint32_t val; ++} ++ ++void ++support_test_compare_blob (const void *left, unsigned long int left_length, ++ const void *right, unsigned long int right_length, ++ const char *file, int line, ++ const char *left_expr, const char *left_len_expr, ++ const char *right_expr, const char *right_len_expr) ++{ ++ /* No differences are possible if both lengths are null. */ ++ if (left_length == 0 && right_length == 0) ++ return; ++ ++ if (left_length != right_length || left == NULL || right == NULL ++ || memcmp (left, right, left_length) != 0) ++ { ++ support_record_failure (); ++ printf ("%s:%d: error: blob comparison failed\n", file, line); ++ if (left_length == right_length) ++ printf (" blob length: %lu bytes\n", left_length); ++ else ++ { ++ report_length ("left length: ", left_length, left_len_expr); ++ report_length ("right length:", right_length, right_len_expr); ++ } ++ report_blob ("left", left, left_length, left_expr); ++ report_blob ("right", right, right_length, right_expr); ++ } ++} +diff --git a/support/support_test_main.c b/support/support_test_main.c +index 396385729b..23429779ac 100644 +--- a/support/support_test_main.c ++++ b/support/support_test_main.c +@@ -270,7 +270,8 @@ support_test_main (int argc, char **argv, const struct test_config *config) + timeout = DEFAULT_TIMEOUT; + + /* Make sure we see all message, even those on stdout. */ +- setvbuf (stdout, NULL, _IONBF, 0); ++ if (!config->no_setvbuf) ++ setvbuf (stdout, NULL, _IONBF, 0); + + /* Make sure temporary files are deleted. */ + if (support_delete_temp_files != NULL) +diff --git a/support/test-driver.c b/support/test-driver.c +index 09c8783e4f..9798f16227 100644 +--- a/support/test-driver.c ++++ b/support/test-driver.c +@@ -140,6 +140,10 @@ main (int argc, char **argv) + test_config.no_mallopt = 1; + #endif -- val = *fptr += *rptr; -+ val = *fptr += (uint32_t) *rptr; - /* Chucking least random bit. */ -- *result = (val >> 1) & 0x7fffffff; -+ *result = val >> 1; - ++fptr; - if (fptr >= end_ptr) - { -diff --git a/stdlib/test-bz22786.c b/stdlib/test-bz22786.c ++#ifdef TEST_NO_SETVBUF ++ test_config.no_setvbuf = 1; ++#endif ++ + #ifdef TIMEOUT + test_config.timeout = TIMEOUT; + #endif +diff --git a/support/test-driver.h b/support/test-driver.h +index 1708d68d60..549179b254 100644 +--- a/support/test-driver.h ++++ b/support/test-driver.h +@@ -35,6 +35,7 @@ struct test_config + int expected_status; /* Expected exit status. */ + int expected_signal; /* If non-zero, expect termination by signal. */ + char no_mallopt; /* Boolean flag to disable mallopt. */ ++ char no_setvbuf; /* Boolean flag to disable setvbuf. */ + const char *optstring; /* Short command line options. */ + }; + +diff --git a/support/tst-support_quote_blob.c b/support/tst-support_quote_blob.c new file mode 100644 -index 0000000000..e7837f98c1 +index 0000000000..5467a190a6 --- /dev/null -+++ b/stdlib/test-bz22786.c -@@ -0,0 +1,90 @@ -+/* Bug 22786: test for buffer overflow in realpath. ++++ b/support/tst-support_quote_blob.c +@@ -0,0 +1,61 @@ ++/* Test the support_quote_blob function. + Copyright (C) 2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + @@ -13090,291 +15834,501 @@ index 0000000000..e7837f98c1 + License along with the GNU C Library; if not, see + . */ + -+/* This file must be run from within a directory called "stdlib". */ -+ -+#include -+#include -+#include -+#include ++#include ++#include +#include -+#include -+#include -+#include -+#include -+#include ++#include + +static int +do_test (void) +{ -+ const char dir[] = "bz22786"; -+ const char lnk[] = "bz22786/symlink"; ++ /* Check handling of the empty blob, both with and without trailing ++ NUL byte. */ ++ char *p = support_quote_blob ("", 0); ++ TEST_COMPARE (strlen (p), 0); ++ free (p); ++ p = support_quote_blob ("X", 0); ++ TEST_COMPARE (strlen (p), 0); ++ free (p); ++ ++ /* Check escaping of backslash-escaped characters, and lack of ++ escaping for other shell meta-characters. */ ++ p = support_quote_blob ("$()*?`@[]{}~\'\"X", 14); ++ TEST_COMPARE (strcmp (p, "$()*?`@[]{}~\\'\\\""), 0); ++ free (p); ++ ++ /* Check lack of escaping for letters and digits. */ ++#define LETTERS_AND_DIGTS \ ++ "abcdefghijklmnopqrstuvwxyz" \ ++ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ ++ "0123456789" ++ p = support_quote_blob (LETTERS_AND_DIGTS "@", 2 * 26 + 10); ++ TEST_COMPARE (strcmp (p, LETTERS_AND_DIGTS), 0); ++ free (p); ++ ++ /* Check escaping of control characters and other non-printable ++ characters. */ ++ p = support_quote_blob ("\r\n\t\a\b\f\v\1\177\200\377\0@", 14); ++ TEST_COMPARE (strcmp (p, "\\r\\n\\t\\a\\b\\f\\v\\001" ++ "\\177\\200\\377\\000@\\000"), 0); ++ free (p); + -+ rmdir (dir); -+ if (mkdir (dir, 0755) != 0 && errno != EEXIST) -+ { -+ printf ("mkdir %s: %m\n", dir); -+ return EXIT_FAILURE; -+ } -+ if (symlink (".", lnk) != 0 && errno != EEXIST) -+ { -+ printf ("symlink (%s, %s): %m\n", dir, lnk); -+ return EXIT_FAILURE; -+ } ++ return 0; ++} + -+ const size_t path_len = (size_t) INT_MAX + 1; ++#include +diff --git a/support/tst-test_compare_blob.c b/support/tst-test_compare_blob.c +new file mode 100644 +index 0000000000..aa8643e182 +--- /dev/null ++++ b/support/tst-test_compare_blob.c +@@ -0,0 +1,125 @@ ++/* Basic test for the TEST_COMPARE_BLOB macro. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. + -+ DIAG_PUSH_NEEDS_COMMENT; -+#if __GNUC_PREREQ (7, 0) -+ /* GCC 7 warns about too-large allocations; here we need such -+ allocation to succeed for the test to work. */ -+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than="); -+#endif -+ char *path = malloc (path_len); -+ DIAG_POP_NEEDS_COMMENT; ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. + -+ if (path == NULL) -+ { -+ printf ("malloc (%zu): %m\n", path_len); -+ return EXIT_UNSUPPORTED; -+ } ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. + -+ /* Construct very long path = "bz22786/symlink/aaaa....." */ -+ char *p = mempcpy (path, lnk, sizeof (lnk) - 1); -+ *(p++) = '/'; -+ memset (p, 'a', path_len - (path - p) - 2); -+ p[path_len - (path - p) - 1] = '\0'; ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ + -+ /* This call crashes before the fix for bz22786 on 32-bit platforms. */ -+ p = realpath (path, NULL); ++#include ++#include ++#include + -+ if (p != NULL || errno != ENAMETOOLONG) -+ { -+ printf ("realpath: %s (%m)", p); -+ return EXIT_FAILURE; -+ } ++static void ++subprocess (void *closure) ++{ ++ /* These tests should fail. They were chosen to cover differences ++ in length (with the same contents), single-bit mismatches, and ++ mismatching null pointers. */ ++ TEST_COMPARE_BLOB ("", 0, "", 1); /* Line 29. */ ++ TEST_COMPARE_BLOB ("X", 1, "", 1); /* Line 30. */ ++ TEST_COMPARE_BLOB ("abcd", 3, "abcd", 4); /* Line 31. */ ++ TEST_COMPARE_BLOB ("abcd", 4, "abcD", 4); /* Line 32. */ ++ TEST_COMPARE_BLOB ("abcd", 4, NULL, 0); /* Line 33. */ ++ TEST_COMPARE_BLOB (NULL, 0, "abcd", 4); /* Line 34. */ ++} + -+ /* Cleanup. */ -+ unlink (lnk); -+ rmdir (dir); ++/* Same contents, different addresses. */ ++char buffer_abc_1[] = "abc"; ++char buffer_abc_2[] = "abc"; ++ ++static int ++do_test (void) ++{ ++ /* This should succeed. Even if the pointers and array contents are ++ different, zero-length inputs are not different. */ ++ TEST_COMPARE_BLOB ("", 0, "", 0); ++ TEST_COMPARE_BLOB ("", 0, buffer_abc_1, 0); ++ TEST_COMPARE_BLOB (buffer_abc_1, 0, "", 0); ++ TEST_COMPARE_BLOB (NULL, 0, "", 0); ++ TEST_COMPARE_BLOB ("", 0, NULL, 0); ++ TEST_COMPARE_BLOB (NULL, 0, NULL, 0); ++ ++ /* Check equality of blobs containing a single NUL byte. */ ++ TEST_COMPARE_BLOB ("", 1, "", 1); ++ TEST_COMPARE_BLOB ("", 1, &buffer_abc_1[3], 1); ++ ++ /* Check equality of blobs of varying lengths. */ ++ for (size_t i = 0; i <= sizeof (buffer_abc_1); ++i) ++ TEST_COMPARE_BLOB (buffer_abc_1, i, buffer_abc_2, i); ++ ++ struct support_capture_subprocess proc = support_capture_subprocess ++ (&subprocess, NULL); ++ ++ /* Discard the reported error. */ ++ support_record_failure_reset (); ++ ++ puts ("info: *** subprocess output starts ***"); ++ fputs (proc.out.buffer, stdout); ++ puts ("info: *** subprocess output ends ***"); ++ ++ TEST_VERIFY ++ (strcmp (proc.out.buffer, ++"tst-test_compare_blob.c:29: error: blob comparison failed\n" ++" left length: 0 bytes (from 0)\n" ++" right length: 1 bytes (from 1)\n" ++" right (evaluated from \"\"):\n" ++" \"\\000\"\n" ++" 00\n" ++"tst-test_compare_blob.c:30: error: blob comparison failed\n" ++" blob length: 1 bytes\n" ++" left (evaluated from \"X\"):\n" ++" \"X\"\n" ++" 58\n" ++" right (evaluated from \"\"):\n" ++" \"\\000\"\n" ++" 00\n" ++"tst-test_compare_blob.c:31: error: blob comparison failed\n" ++" left length: 3 bytes (from 3)\n" ++" right length: 4 bytes (from 4)\n" ++" left (evaluated from \"abcd\"):\n" ++" \"abc\"\n" ++" 61 62 63\n" ++" right (evaluated from \"abcd\"):\n" ++" \"abcd\"\n" ++" 61 62 63 64\n" ++"tst-test_compare_blob.c:32: error: blob comparison failed\n" ++" blob length: 4 bytes\n" ++" left (evaluated from \"abcd\"):\n" ++" \"abcd\"\n" ++" 61 62 63 64\n" ++" right (evaluated from \"abcD\"):\n" ++" \"abcD\"\n" ++" 61 62 63 44\n" ++"tst-test_compare_blob.c:33: error: blob comparison failed\n" ++" left length: 4 bytes (from 4)\n" ++" right length: 0 bytes (from 0)\n" ++" left (evaluated from \"abcd\"):\n" ++" \"abcd\"\n" ++" 61 62 63 64\n" ++"tst-test_compare_blob.c:34: error: blob comparison failed\n" ++" left length: 0 bytes (from 0)\n" ++" right length: 4 bytes (from 4)\n" ++" right (evaluated from \"abcd\"):\n" ++" \"abcd\"\n" ++" 61 62 63 64\n" ++ ) == 0); ++ ++ /* Check that there is no output on standard error. */ ++ support_capture_subprocess_check (&proc, "TEST_COMPARE_BLOB", ++ 0, sc_allow_stdout); + + return 0; +} + -+#define TEST_FUNCTION do_test +#include -diff --git a/string/test-memcpy.c b/string/test-memcpy.c -index 45f20a6d80..3c8066da52 100644 ---- a/string/test-memcpy.c -+++ b/string/test-memcpy.c -@@ -212,6 +212,50 @@ do_random_tests (void) - } - } - -+static void -+do_test1 (void) -+{ -+ size_t size = 0x100000; -+ void *large_buf; +diff --git a/support/tty.h b/support/tty.h +new file mode 100644 +index 0000000000..1d37c42279 +--- /dev/null ++++ b/support/tty.h +@@ -0,0 +1,45 @@ ++/* Support functions related to (pseudo)terminals. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. + -+ large_buf = mmap (NULL, size * 2 + page_size, PROT_READ | PROT_WRITE, -+ MAP_PRIVATE | MAP_ANON, -1, 0); -+ if (large_buf == MAP_FAILED) -+ { -+ puts ("Failed to allocat large_buf, skipping do_test1"); -+ return; -+ } ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. + -+ if (mprotect (large_buf + size, page_size, PROT_NONE)) -+ error (EXIT_FAILURE, errno, "mprotect failed"); ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. + -+ size_t arrary_size = size / sizeof (uint32_t); -+ uint32_t *dest = large_buf; -+ uint32_t *src = large_buf + size + page_size; -+ size_t i; ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ + -+ for (i = 0; i < arrary_size; i++) -+ src[i] = (uint32_t) i; ++#ifndef _SUPPORT_TTY_H ++#define _SUPPORT_TTY_H 1 + -+ FOR_EACH_IMPL (impl, 0) -+ { -+ memset (dest, -1, size); -+ CALL (impl, (char *) dest, (char *) src, size); -+ for (i = 0; i < arrary_size; i++) -+ if (dest[i] != src[i]) -+ { -+ error (0, 0, -+ "Wrong result in function %s dst \"%p\" src \"%p\" offset \"%zd\"", -+ impl->name, dest, src, i); -+ ret = 1; -+ break; -+ } -+ } ++struct termios; ++struct winsize; + -+ munmap ((void *) dest, size); -+ munmap ((void *) src, size); -+} ++/** Open a pseudoterminal pair. The outer fd is written to the address ++ A_OUTER and the inner fd to A_INNER. + - int - test_main (void) - { -@@ -253,6 +297,9 @@ test_main (void) - do_test (0, 0, getpagesize ()); - - do_random_tests (); ++ If A_NAME is not NULL, it will be set to point to a string naming ++ the /dev/pts/NNN device corresponding to the inner fd; space for ++ this string is allocated with malloc and should be freed by the ++ caller when no longer needed. (This is different from the libutil ++ function 'openpty'.) + -+ do_test1 (); ++ If TERMP is not NULL, the terminal parameters will be initialized ++ according to the termios structure it points to. + - return ret; - } - -diff --git a/string/test-memmove.c b/string/test-memmove.c -index edc7a4c3bf..64e3651ba4 100644 ---- a/string/test-memmove.c -+++ b/string/test-memmove.c -@@ -24,6 +24,7 @@ - # define TEST_NAME "memmove" - #endif - #include "test-string.h" -+#include - - char *simple_memmove (char *, const char *, size_t); - -@@ -245,6 +246,60 @@ do_random_tests (void) - } - } - -+static void -+do_test2 (void) ++ If WINP is not NULL, the terminal window size will be set ++ accordingly. ++ ++ Terminates the process on failure (like xmalloc). */ ++extern void support_openpty (int *a_outer, int *a_inner, char **a_name, ++ const struct termios *termp, ++ const struct winsize *winp); ++ ++#endif +diff --git a/support/xpthread_barrierattr_destroy.c b/support/xpthread_barrierattr_destroy.c +new file mode 100644 +index 0000000000..3e471f9a81 +--- /dev/null ++++ b/support/xpthread_barrierattr_destroy.c +@@ -0,0 +1,26 @@ ++/* pthread_barrierattr_destroy with error checking. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++void ++xpthread_barrierattr_destroy (pthread_barrierattr_t *attr) +{ -+ size_t size = 0x20000000; -+ uint32_t * large_buf; ++ xpthread_check_return ("pthread_barrierattr_destroy", ++ pthread_barrierattr_destroy (attr)); ++} +diff --git a/support/xpthread_barrierattr_init.c b/support/xpthread_barrierattr_init.c +new file mode 100644 +index 0000000000..4ee14e78f3 +--- /dev/null ++++ b/support/xpthread_barrierattr_init.c +@@ -0,0 +1,26 @@ ++/* pthread_barrierattr_init with error checking. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. + -+ large_buf = mmap ((void*) 0x70000000, size, PROT_READ | PROT_WRITE, -+ MAP_PRIVATE | MAP_ANON, -1, 0); ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. + -+ if (large_buf == MAP_FAILED) -+ error (EXIT_UNSUPPORTED, errno, "Large mmap failed"); ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. + -+ if ((uintptr_t) large_buf > 0x80000000 - 128 -+ || 0x80000000 - (uintptr_t) large_buf > 0x20000000) -+ { -+ error (0, 0, "Large mmap allocated improperly"); -+ ret = EXIT_UNSUPPORTED; -+ munmap ((void *) large_buf, size); -+ return; -+ } ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ + -+ size_t bytes_move = 0x80000000 - (uintptr_t) large_buf; -+ size_t arr_size = bytes_move / sizeof (uint32_t); -+ size_t i; ++#include + -+ FOR_EACH_IMPL (impl, 0) -+ { -+ for (i = 0; i < arr_size; i++) -+ large_buf[i] = (uint32_t) i; ++void ++xpthread_barrierattr_init (pthread_barrierattr_t *attr) ++{ ++ xpthread_check_return ("pthread_barrierattr_init", ++ pthread_barrierattr_init (attr)); ++} +diff --git a/support/xpthread_barrierattr_setpshared.c b/support/xpthread_barrierattr_setpshared.c +new file mode 100644 +index 0000000000..90b2c5bec6 +--- /dev/null ++++ b/support/xpthread_barrierattr_setpshared.c +@@ -0,0 +1,26 @@ ++/* pthread_barrierattr_setpshared with error checking. ++ Copyright (C) 2018 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. + -+ uint32_t * dst = &large_buf[33]; ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. + -+#ifdef TEST_BCOPY -+ CALL (impl, (char *) large_buf, (char *) dst, bytes_move); -+#else -+ CALL (impl, (char *) dst, (char *) large_buf, bytes_move); -+#endif ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. + -+ for (i = 0; i < arr_size; i++) -+ { -+ if (dst[i] != (uint32_t) i) -+ { -+ error (0, 0, -+ "Wrong result in function %s dst \"%p\" src \"%p\" offset \"%zd\"", -+ impl->name, dst, large_buf, i); -+ ret = 1; -+ break; -+ } -+ } -+ } ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ + -+ munmap ((void *) large_buf, size); -+} ++#include + - int - test_main (void) ++void ++xpthread_barrierattr_setpshared (pthread_barrierattr_t *attr, int pshared) ++{ ++ xpthread_check_return ("pthread_barrierattr_setpshared", ++ pthread_barrierattr_setpshared (attr, pshared)); ++} +diff --git a/support/xthread.h b/support/xthread.h +index 79358e7c99..623f5ad0ac 100644 +--- a/support/xthread.h ++++ b/support/xthread.h +@@ -41,6 +41,9 @@ void xpthread_check_return (const char *function, int value); + void xpthread_barrier_init (pthread_barrier_t *barrier, + pthread_barrierattr_t *attr, unsigned int count); + void xpthread_barrier_destroy (pthread_barrier_t *barrier); ++void xpthread_barrierattr_destroy (pthread_barrierattr_t *); ++void xpthread_barrierattr_init (pthread_barrierattr_t *); ++void xpthread_barrierattr_setpshared (pthread_barrierattr_t *, int pshared); + void xpthread_mutexattr_destroy (pthread_mutexattr_t *); + void xpthread_mutexattr_init (pthread_mutexattr_t *); + void xpthread_mutexattr_setprotocol (pthread_mutexattr_t *, int); +diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h +index e4b9d8697f..cff76149d6 100644 +--- a/sysdeps/generic/math_private.h ++++ b/sysdeps/generic/math_private.h +@@ -514,33 +514,6 @@ default_libc_feupdateenv_test (fenv_t *e, int ex) + # define HAVE_RM_CTX 0 + #endif + +-#if HAVE_RM_CTX +-/* Set/Restore Rounding Modes only when necessary. If defined, these functions +- set/restore floating point state only if the state needed within the lexical +- block is different from the current state. This saves a lot of time when +- the floating point unit is much slower than the fixed point units. */ +- +-# ifndef libc_feholdsetround_noex_ctx +-# define libc_feholdsetround_noex_ctx libc_feholdsetround_ctx +-# endif +-# ifndef libc_feholdsetround_noexf_ctx +-# define libc_feholdsetround_noexf_ctx libc_feholdsetroundf_ctx +-# endif +-# ifndef libc_feholdsetround_noexl_ctx +-# define libc_feholdsetround_noexl_ctx libc_feholdsetroundl_ctx +-# endif +- +-# ifndef libc_feresetround_noex_ctx +-# define libc_feresetround_noex_ctx libc_fesetenv_ctx +-# endif +-# ifndef libc_feresetround_noexf_ctx +-# define libc_feresetround_noexf_ctx libc_fesetenvf_ctx +-# endif +-# ifndef libc_feresetround_noexl_ctx +-# define libc_feresetround_noexl_ctx libc_fesetenvl_ctx +-# endif +- +-#else + + /* Default implementation using standard fenv functions. + Avoid unnecessary rounding mode changes by first checking the +@@ -548,7 +521,7 @@ default_libc_feupdateenv_test (fenv_t *e, int ex) + important for performance. */ + + static __always_inline void +-libc_feholdsetround_ctx (struct rm_ctx *ctx, int round) ++default_libc_feholdsetround_ctx (struct rm_ctx *ctx, int round) { -@@ -284,6 +339,9 @@ test_main (void) - } + ctx->updated_status = false; - do_random_tests (); -+ -+ do_test2 (); -+ - return ret; +@@ -562,7 +535,7 @@ libc_feholdsetround_ctx (struct rm_ctx *ctx, int round) } -diff --git a/string/test-mempcpy.c b/string/test-mempcpy.c -index c08fba895e..d98ecdd2d9 100644 ---- a/string/test-mempcpy.c -+++ b/string/test-mempcpy.c -@@ -18,6 +18,7 @@ - . */ - - #define MEMCPY_RESULT(dst, len) (dst) + (len) -+#define MIN_PAGE_SIZE 131072 - #define TEST_MAIN - #define TEST_NAME "mempcpy" - #include "test-string.h" -diff --git a/sunrpc/rpc_common.c b/sunrpc/rpc_common.c -index 710191163c..2d42827a87 100644 ---- a/sunrpc/rpc_common.c -+++ b/sunrpc/rpc_common.c -@@ -46,7 +46,14 @@ - the variable is declared. So we use the section attribute. */ - struct opaque_auth _null_auth __attribute__ ((nocommon)); - libc_hidden_nolink_sunrpc (_null_auth, GLIBC_2_0) --fd_set svc_fdset; --struct rpc_createerr rpc_createerr; --struct pollfd *svc_pollfd; --int svc_max_pollfd; -+ -+/* The variables need the nocommon attribute, so that it is possible -+ to create aliases and specify symbol versions. */ -+fd_set svc_fdset __attribute__ ((nocommon)); -+libc_hidden_nolink_sunrpc (svc_fdset, GLIBC_2_0) -+struct rpc_createerr rpc_createerr __attribute__ ((nocommon)); -+libc_hidden_nolink_sunrpc (rpc_createerr, GLIBC_2_0) -+struct pollfd *svc_pollfd __attribute__ ((nocommon)); -+libc_hidden_nolink_sunrpc (svc_pollfd, GLIBC_2_2) -+int svc_max_pollfd __attribute__ ((nocommon)); -+libc_hidden_nolink_sunrpc (svc_max_pollfd, GLIBC_2_2) -diff --git a/sunrpc/svcauth_des.c b/sunrpc/svcauth_des.c -index f99a5a324f..9ce4804239 100644 ---- a/sunrpc/svcauth_des.c -+++ b/sunrpc/svcauth_des.c -@@ -87,16 +87,21 @@ static void cache_ref (uint32_t sid); /* note that sid was ref'd */ + static __always_inline void +-libc_feresetround_ctx (struct rm_ctx *ctx) ++default_libc_feresetround_ctx (struct rm_ctx *ctx) + { + /* Restore the rounding mode if updated. */ + if (__glibc_unlikely (ctx->updated_status)) +@@ -570,7 +543,7 @@ libc_feresetround_ctx (struct rm_ctx *ctx) + } - static void invalidate (char *cred); /* invalidate entry in cache */ + static __always_inline void +-libc_feholdsetround_noex_ctx (struct rm_ctx *ctx, int round) ++default_libc_feholdsetround_noex_ctx (struct rm_ctx *ctx, int round) + { + /* Save exception flags and rounding mode, and disable exception + traps. */ +@@ -582,12 +555,45 @@ libc_feholdsetround_noex_ctx (struct rm_ctx *ctx, int round) + } --/* -- * cache statistics -- */ -+/* Cache statistics. Accidental historic export without a matching -+ declaration in any header file. */ -+#ifndef SHARED -+static -+#endif - struct - { - u_long ncachehits; /* times cache hit, and is not replay */ - u_long ncachereplays; /* times cache hit, and is replay */ - u_long ncachemisses; /* times cache missed */ - } --svcauthdes_stats; -+svcauthdes_stats __attribute__ ((nocommon)); -+#ifdef SHARED -+compat_symbol (libc, svcauthdes_stats, svcauthdes_stats, GLIBC_2_0); -+#endif + static __always_inline void +-libc_feresetround_noex_ctx (struct rm_ctx *ctx) ++default_libc_feresetround_noex_ctx (struct rm_ctx *ctx) + { + /* Restore exception flags and rounding mode. */ + __fesetenv (&ctx->env); + } - /* - * Service side authenticator for AUTH_DES ++#if HAVE_RM_CTX ++/* Set/Restore Rounding Modes only when necessary. If defined, these functions ++ set/restore floating point state only if the state needed within the lexical ++ block is different from the current state. This saves a lot of time when ++ the floating point unit is much slower than the fixed point units. */ ++ ++# ifndef libc_feholdsetround_noex_ctx ++# define libc_feholdsetround_noex_ctx libc_feholdsetround_ctx ++# endif ++# ifndef libc_feholdsetround_noexf_ctx ++# define libc_feholdsetround_noexf_ctx libc_feholdsetroundf_ctx ++# endif ++# ifndef libc_feholdsetround_noexl_ctx ++# define libc_feholdsetround_noexl_ctx libc_feholdsetroundl_ctx ++# endif ++ ++# ifndef libc_feresetround_noex_ctx ++# define libc_feresetround_noex_ctx libc_fesetenv_ctx ++# endif ++# ifndef libc_feresetround_noexf_ctx ++# define libc_feresetround_noexf_ctx libc_fesetenvf_ctx ++# endif ++# ifndef libc_feresetround_noexl_ctx ++# define libc_feresetround_noexl_ctx libc_fesetenvl_ctx ++# endif ++ ++#else ++ ++# define libc_feholdsetround_ctx default_libc_feholdsetround_ctx ++# define libc_feresetround_ctx default_libc_feresetround_ctx ++# define libc_feholdsetround_noex_ctx default_libc_feholdsetround_noex_ctx ++# define libc_feresetround_noex_ctx default_libc_feresetround_noex_ctx ++ + # define libc_feholdsetroundf_ctx libc_feholdsetround_ctx + # define libc_feholdsetroundl_ctx libc_feholdsetround_ctx + # define libc_feresetroundf_ctx libc_feresetround_ctx +diff --git a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile +index a1500454e5..9c7078e33c 100644 +--- a/sysdeps/i386/Makefile ++++ b/sysdeps/i386/Makefile +@@ -5,6 +5,14 @@ asm-CPPFLAGS += -DGAS_SYNTAX + # The i386 `long double' is a distinct type we support. + long-double-fcts = yes + ++ifeq ($(subdir),math) ++# These functions change the rounding mode internally and need to ++# update both the SSE2 rounding mode and the 387 rounding mode. See ++# the handling of MATH_SET_BOTH_ROUNDING_MODES in ++# sysdeps/i386/fpu/fenv_private.h. ++CFLAGS-e_gamma_r.c += -DMATH_SET_BOTH_ROUNDING_MODES ++endif ++ + ifeq ($(subdir),string) + sysdep_routines += cacheinfo + endif +diff --git a/sysdeps/i386/fpu/fenv_private.h b/sysdeps/i386/fpu/fenv_private.h +index 38fd0b92b5..03177bb1ed 100644 +--- a/sysdeps/i386/fpu/fenv_private.h ++++ b/sysdeps/i386/fpu/fenv_private.h +@@ -491,11 +491,19 @@ libc_feupdateenv_387_ctx (struct rm_ctx *ctx) + #endif /* __SSE_MATH__ */ + + #ifdef __SSE2_MATH__ +-# define libc_feholdexcept_setround_ctx libc_feholdexcept_setround_sse_ctx +-# define libc_fesetenv_ctx libc_fesetenv_sse_ctx +-# define libc_feupdateenv_ctx libc_feupdateenv_sse_ctx +-# define libc_feholdsetround_ctx libc_feholdsetround_sse_ctx +-# define libc_feresetround_ctx libc_feresetround_sse_ctx ++# if defined (__x86_64__) || !defined (MATH_SET_BOTH_ROUNDING_MODES) ++# define libc_feholdexcept_setround_ctx libc_feholdexcept_setround_sse_ctx ++# define libc_fesetenv_ctx libc_fesetenv_sse_ctx ++# define libc_feupdateenv_ctx libc_feupdateenv_sse_ctx ++# define libc_feholdsetround_ctx libc_feholdsetround_sse_ctx ++# define libc_feresetround_ctx libc_feresetround_sse_ctx ++# else ++# define libc_feholdexcept_setround_ctx default_libc_feholdexcept_setround_ctx ++# define libc_fesetenv_ctx default_libc_fesetenv_ctx ++# define libc_feupdateenv_ctx default_libc_feupdateenv_ctx ++# define libc_feholdsetround_ctx default_libc_feholdsetround_ctx ++# define libc_feresetround_ctx default_libc_feresetround_ctx ++# endif + #else + # define libc_feholdexcept_setround_ctx libc_feholdexcept_setround_387_ctx + # define libc_feupdateenv_ctx libc_feupdateenv_387_ctx diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index 862a74e09d..9d1c35c605 100644 --- a/sysdeps/i386/fpu/libm-test-ulps @@ -15957,6 +18911,117 @@ index cc059da494..2e3eca9b2b 100644 # define STRNCMP __strncmp_ia32 # undef libc_hidden_builtin_def # define libc_hidden_builtin_def(name) \ +diff --git a/sysdeps/ia64/fpu/e_exp2f.S b/sysdeps/ia64/fpu/e_exp2f.S +index 77bc6ea686..3010a95a2d 100644 +--- a/sysdeps/ia64/fpu/e_exp2f.S ++++ b/sysdeps/ia64/fpu/e_exp2f.S +@@ -221,7 +221,7 @@ LOCAL_OBJECT_END(T_table) + + + .section .text +-GLOBAL_LIBM_ENTRY(__exp2f) ++WEAK_LIBM_ENTRY(exp2f) + + + {.mfi +@@ -468,10 +468,10 @@ OUT_RANGE_exp2: + } + ;; + +-GLOBAL_LIBM_END(__exp2f) ++WEAK_LIBM_END(exp2f) + libm_alias_float_other (__exp2, exp2) + #ifdef SHARED +-.symver __exp2f,exp2f@@GLIBC_2.27 ++.symver exp2f,exp2f@@GLIBC_2.27 + .weak __exp2f_compat + .set __exp2f_compat,__exp2f + .symver __exp2f_compat,exp2f@GLIBC_2.2 +diff --git a/sysdeps/ia64/fpu/e_log2f.S b/sysdeps/ia64/fpu/e_log2f.S +index 5ca3bd61ea..e4ea094344 100644 +--- a/sysdeps/ia64/fpu/e_log2f.S ++++ b/sysdeps/ia64/fpu/e_log2f.S +@@ -252,7 +252,7 @@ LOCAL_OBJECT_END(T_table) + + + .section .text +-GLOBAL_LIBM_ENTRY(__log2f) ++WEAK_LIBM_ENTRY(log2f) + + { .mfi + alloc r32=ar.pfs,1,4,4,0 +@@ -491,10 +491,10 @@ SPECIAL_log2f: + br.ret.sptk b0;; + } + +-GLOBAL_LIBM_END(__log2f) ++WEAK_LIBM_END(log2f) + libm_alias_float_other (__log2, log2) + #ifdef SHARED +-.symver __log2f,log2f@@GLIBC_2.27 ++.symver log2f,log2f@@GLIBC_2.27 + .weak __log2f_compat + .set __log2f_compat,__log2f + .symver __log2f_compat,log2f@GLIBC_2.2 +diff --git a/sysdeps/ia64/fpu/e_powf.S b/sysdeps/ia64/fpu/e_powf.S +index 7449f8c7d5..945d5cdf28 100644 +--- a/sysdeps/ia64/fpu/e_powf.S ++++ b/sysdeps/ia64/fpu/e_powf.S +@@ -868,7 +868,7 @@ data8 0xEAC0C6E7DD24392F , 0x00003FFF + LOCAL_OBJECT_END(pow_tbl2) + + .section .text +-GLOBAL_LIBM_ENTRY(__powf) ++WEAK_LIBM_ENTRY(powf) + + // Get exponent of x. Will be used to calculate K. + { .mfi +@@ -2002,10 +2002,10 @@ POW_OVER_UNDER_ERROR: + } + ;; + +-GLOBAL_LIBM_END(__powf) ++WEAK_LIBM_END(powf) + libm_alias_float_other (__pow, pow) + #ifdef SHARED +-.symver __powf,powf@@GLIBC_2.27 ++.symver powf,powf@@GLIBC_2.27 + .weak __powf_compat + .set __powf_compat,__powf + .symver __powf_compat,powf@GLIBC_2.2 +diff --git a/sysdeps/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h +index 1e2092a05d..05c94e7a71 100644 +--- a/sysdeps/nptl/bits/thread-shared-types.h ++++ b/sysdeps/nptl/bits/thread-shared-types.h +@@ -124,7 +124,27 @@ struct __pthread_mutex_s + unsigned int __nusers; + #endif + /* KIND must stay at this position in the structure to maintain +- binary compatibility with static initializers. */ ++ binary compatibility with static initializers. ++ ++ Concurrency notes: ++ The __kind of a mutex is initialized either by the static ++ PTHREAD_MUTEX_INITIALIZER or by a call to pthread_mutex_init. ++ ++ After a mutex has been initialized, the __kind of a mutex is usually not ++ changed. BUT it can be set to -1 in pthread_mutex_destroy or elision can ++ be enabled. This is done concurrently in the pthread_mutex_*lock functions ++ by using the macro FORCE_ELISION. This macro is only defined for ++ architectures which supports lock elision. ++ ++ For elision, there are the flags PTHREAD_MUTEX_ELISION_NP and ++ PTHREAD_MUTEX_NO_ELISION_NP which can be set in addition to the already set ++ type of a mutex. ++ Before a mutex is initialized, only PTHREAD_MUTEX_NO_ELISION_NP can be set ++ with pthread_mutexattr_settype. ++ After a mutex has been initialized, the functions pthread_mutex_*lock can ++ enable elision - if the mutex-type and the machine supports it - by setting ++ the flag PTHREAD_MUTEX_ELISION_NP. This is done concurrently. Afterwards ++ the lock / unlock functions are using specific elision code-paths. */ + int __kind; + __PTHREAD_COMPAT_PADDING_MID + #if __PTHREAD_MUTEX_NUSERS_AFTER_KIND diff --git a/sysdeps/nptl/lowlevellock.h b/sysdeps/nptl/lowlevellock.h index 8326e2805c..bfbda99940 100644 --- a/sysdeps/nptl/lowlevellock.h @@ -15981,6 +19046,70 @@ index 8326e2805c..bfbda99940 100644 } while (0) extern int __lll_timedwait_tid (int *, const struct timespec *) +diff --git a/sysdeps/posix/preadv2.c b/sysdeps/posix/preadv2.c +index d29147608f..4f8557ac83 100644 +--- a/sysdeps/posix/preadv2.c ++++ b/sysdeps/posix/preadv2.c +@@ -33,7 +33,10 @@ preadv2 (int fd, const struct iovec *vector, int count, off_t offset, + return -1; + } + +- return preadv (fd, vector, count, offset); ++ if (offset == -1) ++ return __readv (fd, vector, count); ++ else ++ return preadv (fd, vector, count, offset); + } + + #endif +diff --git a/sysdeps/posix/preadv64v2.c b/sysdeps/posix/preadv64v2.c +index a4844b145c..f89ad08c54 100644 +--- a/sysdeps/posix/preadv64v2.c ++++ b/sysdeps/posix/preadv64v2.c +@@ -30,7 +30,10 @@ preadv64v2 (int fd, const struct iovec *vector, int count, off64_t offset, + return -1; + } + +- return preadv64 (fd, vector, count, offset); ++ if (offset == -1) ++ return __readv (fd, vector, count); ++ else ++ return preadv64 (fd, vector, count, offset); + } + + #ifdef __OFF_T_MATCHES_OFF64_T +diff --git a/sysdeps/posix/pwritev2.c b/sysdeps/posix/pwritev2.c +index 3abf37a810..a39304d9d9 100644 +--- a/sysdeps/posix/pwritev2.c ++++ b/sysdeps/posix/pwritev2.c +@@ -33,7 +33,10 @@ pwritev2 (int fd, const struct iovec *vector, int count, off_t offset, + return -1; + } + +- return pwritev (fd, vector, count, offset); ++ if (offset == -1) ++ return __writev (fd, vector, count); ++ else ++ return pwritev (fd, vector, count, offset); + } + + #endif +diff --git a/sysdeps/posix/pwritev64v2.c b/sysdeps/posix/pwritev64v2.c +index 374d2ad8a9..7a3a3239d7 100644 +--- a/sysdeps/posix/pwritev64v2.c ++++ b/sysdeps/posix/pwritev64v2.c +@@ -31,7 +31,10 @@ pwritev64v2 (int fd, const struct iovec *vector, int count, off64_t offset, + return -1; + } + +- return pwritev64 (fd, vector, count, offset); ++ if (offset == -1) ++ return __writev (fd, vector, count); ++ else ++ return pwritev64 (fd, vector, count, offset); + } + + #ifdef __OFF_T_MATCHES_OFF64_T diff --git a/sysdeps/posix/spawni.c b/sysdeps/posix/spawni.c index 36bb5b4f78..b138ab4393 100644 --- a/sysdeps/posix/spawni.c @@ -17091,6 +20220,19 @@ index 960b101f94..03a779140c 100644 /* Perform process tracing functions. REQUEST is one of the values above, and determines the action to be taken. For all requests except PTRACE_TRACEME, PID specifies the process to be +diff --git a/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h b/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h +index 33766d1813..43c4e009a4 100644 +--- a/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h ++++ b/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h +@@ -107,7 +107,7 @@ typedef struct + /* SIGPOLL. */ + struct + { +- long int si_band; /* Band event for SIGPOLL. */ ++ __SI_BAND_TYPE si_band; /* Band event for SIGPOLL. */ + int si_fd; + } _sigpoll; + diff --git a/sysdeps/unix/sysv/linux/bits/uio-ext.h b/sysdeps/unix/sysv/linux/bits/uio-ext.h index 53663ed1a2..8698bc1200 100644 --- a/sysdeps/unix/sysv/linux/bits/uio-ext.h @@ -17417,6 +20559,54 @@ index 1c73b9dee6..e00b1212fc 100644 }; +diff --git a/sysdeps/unix/sysv/linux/if_index.c b/sysdeps/unix/sysv/linux/if_index.c +index e3d08982d9..782fc5e175 100644 +--- a/sysdeps/unix/sysv/linux/if_index.c ++++ b/sysdeps/unix/sysv/linux/if_index.c +@@ -38,11 +38,6 @@ __if_nametoindex (const char *ifname) + return 0; + #else + struct ifreq ifr; +- int fd = __opensock (); +- +- if (fd < 0) +- return 0; +- + if (strlen (ifname) >= IFNAMSIZ) + { + __set_errno (ENODEV); +@@ -50,6 +45,12 @@ __if_nametoindex (const char *ifname) + } + + strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name)); ++ ++ int fd = __opensock (); ++ ++ if (fd < 0) ++ return 0; ++ + if (__ioctl (fd, SIOCGIFINDEX, &ifr) < 0) + { + int saved_errno = errno; +diff --git a/sysdeps/unix/sysv/linux/ifaddrs.c b/sysdeps/unix/sysv/linux/ifaddrs.c +index 32381f54e4..ac0e1e5738 100644 +--- a/sysdeps/unix/sysv/linux/ifaddrs.c ++++ b/sysdeps/unix/sysv/linux/ifaddrs.c +@@ -370,6 +370,14 @@ getifaddrs_internal (struct ifaddrs **ifap) + if ((pid_t) nlh->nlmsg_pid != nh.pid || nlh->nlmsg_seq != nlp->seq) + continue; + ++ /* If the dump got interrupted, we can't rely on the results ++ so try again. */ ++ if (nlh->nlmsg_flags & NLM_F_DUMP_INTR) ++ { ++ result = -EAGAIN; ++ goto exit_free; ++ } ++ + if (nlh->nlmsg_type == NLMSG_DONE) + break; /* ok */ + diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c index b7093feab9..98a23f0dd2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c @@ -17476,6 +20666,60 @@ index dcfab199d7..14e0680ee9 100644 +#endif return 0; } +diff --git a/sysdeps/unix/sysv/linux/powerpc/force-elision.h b/sysdeps/unix/sysv/linux/powerpc/force-elision.h +index fe5d6ceade..d8f5a4b1c7 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/force-elision.h ++++ b/sysdeps/unix/sysv/linux/powerpc/force-elision.h +@@ -18,9 +18,45 @@ + + /* Automatically enable elision for existing user lock kinds. */ + #define FORCE_ELISION(m, s) \ +- if (__pthread_force_elision \ +- && (m->__data.__kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \ ++ if (__pthread_force_elision) \ + { \ +- mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \ +- s; \ ++ /* See concurrency notes regarding __kind in \ ++ struct __pthread_mutex_s in \ ++ sysdeps/nptl/bits/thread-shared-types.h. \ ++ \ ++ There are the following cases for the kind of a mutex \ ++ (The mask PTHREAD_MUTEX_ELISION_FLAGS_NP covers the flags \ ++ PTHREAD_MUTEX_ELISION_NP and PTHREAD_MUTEX_NO_ELISION_NP where \ ++ only one of both flags can be set): \ ++ - both flags are not set: \ ++ This is the first lock operation for this mutex. Enable \ ++ elision as it is not enabled so far. \ ++ Note: It can happen that multiple threads are calling e.g. \ ++ pthread_mutex_lock at the same time as the first lock \ ++ operation for this mutex. Then elision is enabled for this \ ++ mutex by multiple threads. Storing with relaxed MO is enough \ ++ as all threads will store the same new value for the kind of \ ++ the mutex. But we have to ensure that we always use the \ ++ elision path regardless if this thread has enabled elision or \ ++ another one. \ ++ \ ++ - PTHREAD_MUTEX_ELISION_NP flag is set: \ ++ Elision was already enabled for this mutex by a previous lock \ ++ operation. See case above. Just use the elision path. \ ++ \ ++ - PTHREAD_MUTEX_NO_ELISION_NP flag is set: \ ++ Elision was explicitly disabled by pthread_mutexattr_settype. \ ++ Do not use the elision path. \ ++ Note: The flag PTHREAD_MUTEX_NO_ELISION_NP will never be \ ++ changed after mutex initialization. */ \ ++ int mutex_kind = atomic_load_relaxed (&((m)->__data.__kind)); \ ++ if ((mutex_kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \ ++ { \ ++ mutex_kind |= PTHREAD_MUTEX_ELISION_NP; \ ++ atomic_store_relaxed (&((m)->__data.__kind), mutex_kind); \ ++ } \ ++ if ((mutex_kind & PTHREAD_MUTEX_ELISION_NP) != 0) \ ++ { \ ++ s; \ ++ } \ + } diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h index 75567b2bad..9fde99c748 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h @@ -17625,6 +20869,107 @@ index 75567b2bad..9fde99c748 100644 }; +diff --git a/sysdeps/unix/sysv/linux/preadv2.c b/sysdeps/unix/sysv/linux/preadv2.c +index 06d29b1322..bb08cbc5fd 100644 +--- a/sysdeps/unix/sysv/linux/preadv2.c ++++ b/sysdeps/unix/sysv/linux/preadv2.c +@@ -32,7 +32,7 @@ preadv2 (int fd, const struct iovec *vector, int count, off_t offset, + # ifdef __NR_preadv2 + ssize_t result = SYSCALL_CANCEL (preadv2, fd, vector, count, + LO_HI_LONG (offset), flags); +- if (result >= 0) ++ if (result >= 0 || errno != ENOSYS) + return result; + # endif + /* Trying to emulate the preadv2 syscall flags is troublesome: +@@ -49,7 +49,10 @@ preadv2 (int fd, const struct iovec *vector, int count, off_t offset, + __set_errno (ENOTSUP); + return -1; + } +- return preadv (fd, vector, count, offset); ++ if (offset == -1) ++ return __readv (fd, vector, count); ++ else ++ return preadv (fd, vector, count, offset); + } + + #endif +diff --git a/sysdeps/unix/sysv/linux/preadv64v2.c b/sysdeps/unix/sysv/linux/preadv64v2.c +index 58f7848352..b72a047347 100644 +--- a/sysdeps/unix/sysv/linux/preadv64v2.c ++++ b/sysdeps/unix/sysv/linux/preadv64v2.c +@@ -30,7 +30,7 @@ preadv64v2 (int fd, const struct iovec *vector, int count, off64_t offset, + #ifdef __NR_preadv64v2 + ssize_t result = SYSCALL_CANCEL (preadv64v2, fd, vector, count, + LO_HI_LONG (offset), flags); +- if (result >= 0) ++ if (result >= 0 || errno != ENOSYS) + return result; + #endif + /* Trying to emulate the preadv2 syscall flags is troublesome: +@@ -47,7 +47,11 @@ preadv64v2 (int fd, const struct iovec *vector, int count, off64_t offset, + __set_errno (ENOTSUP); + return -1; + } +- return preadv64 (fd, vector, count, offset); ++ ++ if (offset == -1) ++ return __readv (fd, vector, count); ++ else ++ return preadv64 (fd, vector, count, offset); + } + + #ifdef __OFF_T_MATCHES_OFF64_T +diff --git a/sysdeps/unix/sysv/linux/pwritev2.c b/sysdeps/unix/sysv/linux/pwritev2.c +index d50d9f51f9..26333ebd43 100644 +--- a/sysdeps/unix/sysv/linux/pwritev2.c ++++ b/sysdeps/unix/sysv/linux/pwritev2.c +@@ -28,7 +28,7 @@ pwritev2 (int fd, const struct iovec *vector, int count, off_t offset, + # ifdef __NR_pwritev2 + ssize_t result = SYSCALL_CANCEL (pwritev2, fd, vector, count, + LO_HI_LONG (offset), flags); +- if (result >= 0) ++ if (result >= 0 || errno != ENOSYS) + return result; + # endif + /* Trying to emulate the pwritev2 syscall flags is troublesome: +@@ -45,7 +45,10 @@ pwritev2 (int fd, const struct iovec *vector, int count, off_t offset, + __set_errno (ENOTSUP); + return -1; + } +- return pwritev (fd, vector, count, offset); ++ if (offset == -1) ++ return __writev (fd, vector, count); ++ else ++ return pwritev (fd, vector, count, offset); + } + + #endif +diff --git a/sysdeps/unix/sysv/linux/pwritev64v2.c b/sysdeps/unix/sysv/linux/pwritev64v2.c +index 40c2387690..17ea905aa6 100644 +--- a/sysdeps/unix/sysv/linux/pwritev64v2.c ++++ b/sysdeps/unix/sysv/linux/pwritev64v2.c +@@ -30,7 +30,7 @@ pwritev64v2 (int fd, const struct iovec *vector, int count, off64_t offset, + #ifdef __NR_pwritev64v2 + ssize_t result = SYSCALL_CANCEL (pwritev64v2, fd, vector, count, + LO_HI_LONG (offset), flags); +- if (result >= 0) ++ if (result >= 0 || errno != ENOSYS) + return result; + #endif + /* Trying to emulate the pwritev2 syscall flags is troublesome: +@@ -47,7 +47,10 @@ pwritev64v2 (int fd, const struct iovec *vector, int count, off64_t offset, + __set_errno (ENOTSUP); + return -1; + } +- return pwritev64 (fd, vector, count, offset); ++ if (offset == -1) ++ return __writev (fd, vector, count); ++ else ++ return pwritev64 (fd, vector, count, offset); + } + + #ifdef __OFF_T_MATCHES_OFF64_T diff --git a/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h b/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h new file mode 100644 index 0000000000..2a62bcc5bc @@ -17659,6 +21004,60 @@ index 6e249ff82f..7e27e0c1d6 100644 } /* RISC-V linkers encode the floating point ABI as part of the ELF headers. */ +diff --git a/sysdeps/unix/sysv/linux/s390/force-elision.h b/sysdeps/unix/sysv/linux/s390/force-elision.h +index d8a1b9972f..71f32367dd 100644 +--- a/sysdeps/unix/sysv/linux/s390/force-elision.h ++++ b/sysdeps/unix/sysv/linux/s390/force-elision.h +@@ -18,9 +18,45 @@ + + /* Automatically enable elision for existing user lock kinds. */ + #define FORCE_ELISION(m, s) \ +- if (__pthread_force_elision \ +- && (m->__data.__kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \ ++ if (__pthread_force_elision) \ + { \ +- mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \ +- s; \ ++ /* See concurrency notes regarding __kind in \ ++ struct __pthread_mutex_s in \ ++ sysdeps/nptl/bits/thread-shared-types.h. \ ++ \ ++ There are the following cases for the kind of a mutex \ ++ (The mask PTHREAD_MUTEX_ELISION_FLAGS_NP covers the flags \ ++ PTHREAD_MUTEX_ELISION_NP and PTHREAD_MUTEX_NO_ELISION_NP where \ ++ only one of both flags can be set): \ ++ - both flags are not set: \ ++ This is the first lock operation for this mutex. Enable \ ++ elision as it is not enabled so far. \ ++ Note: It can happen that multiple threads are calling e.g. \ ++ pthread_mutex_lock at the same time as the first lock \ ++ operation for this mutex. Then elision is enabled for this \ ++ mutex by multiple threads. Storing with relaxed MO is enough \ ++ as all threads will store the same new value for the kind of \ ++ the mutex. But we have to ensure that we always use the \ ++ elision path regardless if this thread has enabled elision or \ ++ another one. \ ++ \ ++ - PTHREAD_MUTEX_ELISION_NP flag is set: \ ++ Elision was already enabled for this mutex by a previous lock \ ++ operation. See case above. Just use the elision path. \ ++ \ ++ - PTHREAD_MUTEX_NO_ELISION_NP flag is set: \ ++ Elision was explicitly disabled by pthread_mutexattr_settype. \ ++ Do not use the elision path. \ ++ Note: The flag PTHREAD_MUTEX_NO_ELISION_NP will never be \ ++ changed after mutex initialization. */ \ ++ int mutex_kind = atomic_load_relaxed (&((m)->__data.__kind)); \ ++ if ((mutex_kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \ ++ { \ ++ mutex_kind |= PTHREAD_MUTEX_ELISION_NP; \ ++ atomic_store_relaxed (&((m)->__data.__kind), mutex_kind); \ ++ } \ ++ if ((mutex_kind & PTHREAD_MUTEX_ELISION_NP) != 0) \ ++ { \ ++ s; \ ++ } \ + } diff --git a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h index cca02489d6..d60a034b11 100644 --- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h @@ -17682,6 +21081,24 @@ index cca02489d6..d60a034b11 100644 PTRACE_PEEKUSR_AREA = 0x5000, #define PTRACE_PEEKUSR_AREA PTRACE_PEEKUSR_AREA +diff --git a/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h b/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h +index 9f79715ebe..4dd35237f6 100644 +--- a/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h ++++ b/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h +@@ -2,7 +2,12 @@ + #ifndef _BITS_SIGINFO_ARCH_H + #define _BITS_SIGINFO_ARCH_H 1 + +-#define __SI_BAND_TYPE int ++/* The kernel uses int instead of long int (as in POSIX). In 32-bit ++ mode, we can still use long int, but in 64-bit mode, we need to ++ deviate from POSIX. */ ++#if __WORDSIZE == 64 ++# define __SI_BAND_TYPE int ++#endif + + #define __SI_SIGFAULT_ADDL \ + int _si_trapno; diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S index 695f172c63..283aef1b30 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S @@ -17706,6 +21123,19 @@ index 695f172c63..283aef1b30 100644 /* This is the helper code which gets called if a function which is registered with 'makecontext' returns. In this case we have to install the context listed in the uc_link element of the context +diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile +index 715af3df7b..218c246f16 100644 +--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile ++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile +@@ -7,3 +7,8 @@ LD += -melf64_sparc + ifeq ($(subdir),stdlib) + sysdep_routines += __start_context + endif ++ ++ifeq ($(subdir),conform) ++# For bug 23821 (incorrect type of si_band). ++conformtest-xfail-conds += sparc64-linux ++endif diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h index 9193275fac..c037734666 100644 --- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h @@ -17725,9 +21155,18 @@ index 9193275fac..c037734666 100644 diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c -index 6b699a46dd..32ab000560 100644 +index 6b699a46dd..5fa49b229e 100644 --- a/sysdeps/unix/sysv/linux/spawni.c +++ b/sysdeps/unix/sysv/linux/spawni.c +@@ -101,7 +101,7 @@ maybe_script_execute (struct posix_spawn_args *args) + ptrdiff_t argc = args->argc; + + /* Construct an argument list for the shell. */ +- char *new_argv[argc + 1]; ++ char *new_argv[argc + 2]; + new_argv[0] = (char *) _PATH_BSHELL; + new_argv[1] = (char *) args->file; + if (argc > 1) @@ -404,6 +404,8 @@ __spawni (pid_t * pid, const char *file, const posix_spawnattr_t * attrp, char *const argv[], char *const envp[], int xflags) @@ -17774,6 +21213,60 @@ index a1db185073..d391037ca8 100644 }; +diff --git a/sysdeps/unix/sysv/linux/x86/force-elision.h b/sysdeps/unix/sysv/linux/x86/force-elision.h +index dd659c908f..61282d6678 100644 +--- a/sysdeps/unix/sysv/linux/x86/force-elision.h ++++ b/sysdeps/unix/sysv/linux/x86/force-elision.h +@@ -18,9 +18,45 @@ + + /* Automatically enable elision for existing user lock kinds. */ + #define FORCE_ELISION(m, s) \ +- if (__pthread_force_elision \ +- && (m->__data.__kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \ ++ if (__pthread_force_elision) \ + { \ +- mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \ +- s; \ ++ /* See concurrency notes regarding __kind in \ ++ struct __pthread_mutex_s in \ ++ sysdeps/nptl/bits/thread-shared-types.h. \ ++ \ ++ There are the following cases for the kind of a mutex \ ++ (The mask PTHREAD_MUTEX_ELISION_FLAGS_NP covers the flags \ ++ PTHREAD_MUTEX_ELISION_NP and PTHREAD_MUTEX_NO_ELISION_NP where \ ++ only one of both flags can be set): \ ++ - both flags are not set: \ ++ This is the first lock operation for this mutex. Enable \ ++ elision as it is not enabled so far. \ ++ Note: It can happen that multiple threads are calling e.g. \ ++ pthread_mutex_lock at the same time as the first lock \ ++ operation for this mutex. Then elision is enabled for this \ ++ mutex by multiple threads. Storing with relaxed MO is enough \ ++ as all threads will store the same new value for the kind of \ ++ the mutex. But we have to ensure that we always use the \ ++ elision path regardless if this thread has enabled elision or \ ++ another one. \ ++ \ ++ - PTHREAD_MUTEX_ELISION_NP flag is set: \ ++ Elision was already enabled for this mutex by a previous lock \ ++ operation. See case above. Just use the elision path. \ ++ \ ++ - PTHREAD_MUTEX_NO_ELISION_NP flag is set: \ ++ Elision was explicitly disabled by pthread_mutexattr_settype. \ ++ Do not use the elision path. \ ++ Note: The flag PTHREAD_MUTEX_NO_ELISION_NP will never be \ ++ changed after mutex initialization. */ \ ++ int mutex_kind = atomic_load_relaxed (&((m)->__data.__kind)); \ ++ if ((mutex_kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \ ++ { \ ++ mutex_kind |= PTHREAD_MUTEX_ELISION_NP; \ ++ atomic_store_relaxed (&((m)->__data.__kind), mutex_kind); \ ++ } \ ++ if ((mutex_kind & PTHREAD_MUTEX_ELISION_NP) != 0) \ ++ { \ ++ s; \ ++ } \ + } diff --git a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h index 60003422b3..6d4605b6ed 100644 --- a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h @@ -17835,6 +21328,95 @@ index 44d76e8aa1..7d6cb1e20b 100644 add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out" -s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\4\6 \264\4-x86-64\6 \2x32\4-x32\6"_ +s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\232\4\6 \2\4-x86-64\6 \2x32\4-x32\6"_ +diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c +index 0fc3674c4b..ecc82fc6af 100644 +--- a/sysdeps/x86/cpu-features.c ++++ b/sysdeps/x86/cpu-features.c +@@ -30,6 +30,20 @@ extern void TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *) + attribute_hidden; + #endif + ++static void ++get_extended_indices (struct cpu_features *cpu_features) ++{ ++ unsigned int eax, ebx, ecx, edx; ++ __cpuid (0x80000000, eax, ebx, ecx, edx); ++ if (eax >= 0x80000001) ++ __cpuid (0x80000001, ++ cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].eax, ++ cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].ebx, ++ cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].ecx, ++ cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].edx); ++ ++} ++ + static void + get_common_indeces (struct cpu_features *cpu_features, + unsigned int *family, unsigned int *model, +@@ -205,6 +219,8 @@ init_cpu_features (struct cpu_features *cpu_features) + get_common_indeces (cpu_features, &family, &model, &extended_model, + &stepping); + ++ get_extended_indices (cpu_features); ++ + if (family == 0x06) + { + model += extended_model; +@@ -281,7 +297,13 @@ init_cpu_features (struct cpu_features *cpu_features) + | bit_arch_Fast_Unaligned_Copy + | bit_arch_Prefer_PMINUB_for_stringop); + break; ++ } + ++ /* Disable TSX on some Haswell processors to avoid TSX on kernels that ++ weren't updated with the latest microcode package (which disables ++ broken feature by default). */ ++ switch (model) ++ { + case 0x3f: + /* Xeon E7 v3 with stepping >= 4 has working TSX. */ + if (stepping >= 4) +@@ -324,16 +346,9 @@ init_cpu_features (struct cpu_features *cpu_features) + get_common_indeces (cpu_features, &family, &model, &extended_model, + &stepping); + +- ecx = cpu_features->cpuid[COMMON_CPUID_INDEX_1].ecx; ++ get_extended_indices (cpu_features); + +- unsigned int eax; +- __cpuid (0x80000000, eax, ebx, ecx, edx); +- if (eax >= 0x80000001) +- __cpuid (0x80000001, +- cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].eax, +- cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].ebx, +- cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].ecx, +- cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].edx); ++ ecx = cpu_features->cpuid[COMMON_CPUID_INDEX_1].ecx; + + if (HAS_ARCH_FEATURE (AVX_Usable)) + { +diff --git a/sysdeps/x86/cpu-features.h b/sysdeps/x86/cpu-features.h +index c60c2e4eeb..4588c11095 100644 +--- a/sysdeps/x86/cpu-features.h ++++ b/sysdeps/x86/cpu-features.h +@@ -106,7 +106,7 @@ enum + { + COMMON_CPUID_INDEX_1 = 0, + COMMON_CPUID_INDEX_7, +- COMMON_CPUID_INDEX_80000001, /* for AMD */ ++ COMMON_CPUID_INDEX_80000001, + /* Keep the following line at the end. */ + COMMON_CPUID_INDEX_MAX + }; +@@ -202,7 +202,7 @@ extern const struct cpu_features *__get_cpu_features (void) + # define index_cpu_HTT COMMON_CPUID_INDEX_1 + # define index_cpu_BMI1 COMMON_CPUID_INDEX_7 + # define index_cpu_BMI2 COMMON_CPUID_INDEX_7 +-# define index_cpu_LZCNT COMMON_CPUID_INDEX_1 ++# define index_cpu_LZCNT COMMON_CPUID_INDEX_80000001 + # define index_cpu_MOVBE COMMON_CPUID_INDEX_1 + # define index_cpu_POPCNT COMMON_CPUID_INDEX_1 + # define index_cpu_IBT COMMON_CPUID_INDEX_7 diff --git a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S index 23c0f7a9ed..effc3ac2de 100644 --- a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S @@ -17880,6 +21462,19 @@ index cc5252d826..a5ecb82b13 100644 #define USE_AS_STRNCMP #include +diff --git a/time/bits/types/struct_timespec.h b/time/bits/types/struct_timespec.h +index 644db9fdb6..5b77c52b4f 100644 +--- a/time/bits/types/struct_timespec.h ++++ b/time/bits/types/struct_timespec.h +@@ -1,5 +1,6 @@ +-#ifndef __timespec_defined +-#define __timespec_defined 1 ++/* NB: Include guard matches what uses. */ ++#ifndef _STRUCT_TIMESPEC ++#define _STRUCT_TIMESPEC 1 + + #include + diff --git a/time/time.h b/time/time.h index 49d30438f3..4b55e34402 100644 --- a/time/time.h -- 2.26.2 From afacad76156ab1963d4c8424e7e5ef4601eeedc1 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Tue, 11 Dec 2018 11:44:41 +0100 Subject: [PATCH 13/16] gcc: updated to 7.4.0 --- gcc/.footprint | 2527 ++++++++++++++++++++++++------------------------ gcc/.signature | 8 +- gcc/Pkgfile | 2 +- 3 files changed, 1268 insertions(+), 1269 deletions(-) diff --git a/gcc/.footprint b/gcc/.footprint index 9084453..40cb4d8 100644 --- a/gcc/.footprint +++ b/gcc/.footprint @@ -15,1273 +15,1272 @@ lrwxrwxrwx root/root usr/bin/cc -> gcc -rwxr-xr-x root/root usr/bin/gcov-tool drwxr-xr-x root/root usr/include/ drwxr-xr-x root/root usr/include/c++/ -drwxr-xr-x root/root usr/include/c++/7.3.0/ -drwxr-xr-x root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/ -drwxr-xr-x root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/ --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/atomic_word.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/basic_file.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/c++allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/c++config.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/c++io.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/c++locale.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/cpu_defines.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/ctype_base.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/ctype_inline.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/cxxabi_tweaks.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/error_constants.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/extc++.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/gthr-default.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/gthr-posix.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/gthr-single.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/gthr.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/messages_members.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/opt_random.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/os_defines.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/stdc++.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/stdtr1c++.h --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/bits/time_members.h -drwxr-xr-x root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/ext/ --rw-r--r-- root/root usr/include/c++/7.3.0/aarch64-unknown-linux-gnu/ext/opt_random.h --rw-r--r-- root/root usr/include/c++/7.3.0/algorithm --rw-r--r-- root/root usr/include/c++/7.3.0/any --rw-r--r-- root/root usr/include/c++/7.3.0/array --rw-r--r-- root/root usr/include/c++/7.3.0/atomic -drwxr-xr-x root/root usr/include/c++/7.3.0/backward/ --rw-r--r-- root/root usr/include/c++/7.3.0/backward/auto_ptr.h --rw-r--r-- root/root usr/include/c++/7.3.0/backward/backward_warning.h --rw-r--r-- root/root usr/include/c++/7.3.0/backward/binders.h --rw-r--r-- root/root usr/include/c++/7.3.0/backward/hash_fun.h --rw-r--r-- root/root usr/include/c++/7.3.0/backward/hash_map --rw-r--r-- root/root usr/include/c++/7.3.0/backward/hash_set --rw-r--r-- root/root usr/include/c++/7.3.0/backward/hashtable.h --rw-r--r-- root/root usr/include/c++/7.3.0/backward/strstream -drwxr-xr-x root/root usr/include/c++/7.3.0/bits/ --rw-r--r-- root/root usr/include/c++/7.3.0/bits/algorithmfwd.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/alloc_traits.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/allocated_ptr.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/atomic_base.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/atomic_futex.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/atomic_lockfree_defines.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/basic_ios.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/basic_ios.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/basic_string.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/basic_string.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/boost_concept_check.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/c++0x_warning.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/c++14_warning.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/char_traits.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/codecvt.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/concept_check.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/cpp_type_traits.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/cxxabi_forced.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/cxxabi_init_exception.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/deque.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/enable_special_members.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/exception.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/exception_defines.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/exception_ptr.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/forward_list.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/forward_list.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/fstream.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/functexcept.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/functional_hash.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/gslice.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/gslice_array.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/hash_bytes.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/hashtable.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/hashtable_policy.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/indirect_array.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/invoke.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/ios_base.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/istream.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/list.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/locale_classes.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/locale_classes.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/locale_conv.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/locale_facets.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/locale_facets.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/locale_facets_nonio.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/locale_facets_nonio.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/localefwd.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/mask_array.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/memoryfwd.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/move.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/nested_exception.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/node_handle.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/ostream.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/ostream_insert.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/parse_numbers.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/postypes.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/predefined_ops.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/ptr_traits.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/quoted_string.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/random.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/random.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/range_access.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/refwrap.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex_automaton.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex_automaton.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex_compiler.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex_compiler.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex_constants.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex_error.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex_executor.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex_executor.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex_scanner.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/regex_scanner.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/shared_ptr.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/shared_ptr_atomic.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/shared_ptr_base.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/slice_array.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/specfun.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/sstream.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/std_abs.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/std_function.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/std_mutex.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_algo.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_algobase.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_bvector.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_construct.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_deque.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_function.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_heap.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_iterator.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_iterator_base_funcs.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_iterator_base_types.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_list.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_map.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_multimap.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_multiset.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_numeric.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_pair.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_queue.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_raw_storage_iter.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_relops.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_set.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_stack.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_tempbuf.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_tree.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_uninitialized.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stl_vector.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stream_iterator.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/streambuf.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/streambuf_iterator.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/string_view.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/stringfwd.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/uniform_int_dist.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/unique_ptr.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/unordered_map.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/unordered_set.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/uses_allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/valarray_after.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/valarray_array.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/valarray_array.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bits/valarray_before.h --rw-r--r-- root/root usr/include/c++/7.3.0/bits/vector.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/bitset --rw-r--r-- root/root usr/include/c++/7.3.0/cassert --rw-r--r-- root/root usr/include/c++/7.3.0/ccomplex --rw-r--r-- root/root usr/include/c++/7.3.0/cctype --rw-r--r-- root/root usr/include/c++/7.3.0/cerrno --rw-r--r-- root/root usr/include/c++/7.3.0/cfenv --rw-r--r-- root/root usr/include/c++/7.3.0/cfloat --rw-r--r-- root/root usr/include/c++/7.3.0/chrono --rw-r--r-- root/root usr/include/c++/7.3.0/cinttypes --rw-r--r-- root/root usr/include/c++/7.3.0/ciso646 --rw-r--r-- root/root usr/include/c++/7.3.0/climits --rw-r--r-- root/root usr/include/c++/7.3.0/clocale --rw-r--r-- root/root usr/include/c++/7.3.0/cmath --rw-r--r-- root/root usr/include/c++/7.3.0/codecvt --rw-r--r-- root/root usr/include/c++/7.3.0/complex --rw-r--r-- root/root usr/include/c++/7.3.0/complex.h --rw-r--r-- root/root usr/include/c++/7.3.0/condition_variable --rw-r--r-- root/root usr/include/c++/7.3.0/csetjmp --rw-r--r-- root/root usr/include/c++/7.3.0/csignal --rw-r--r-- root/root usr/include/c++/7.3.0/cstdalign --rw-r--r-- root/root usr/include/c++/7.3.0/cstdarg --rw-r--r-- root/root usr/include/c++/7.3.0/cstdbool --rw-r--r-- root/root usr/include/c++/7.3.0/cstddef --rw-r--r-- root/root usr/include/c++/7.3.0/cstdint --rw-r--r-- root/root usr/include/c++/7.3.0/cstdio --rw-r--r-- root/root usr/include/c++/7.3.0/cstdlib --rw-r--r-- root/root usr/include/c++/7.3.0/cstring --rw-r--r-- root/root usr/include/c++/7.3.0/ctgmath --rw-r--r-- root/root usr/include/c++/7.3.0/ctime --rw-r--r-- root/root usr/include/c++/7.3.0/cuchar --rw-r--r-- root/root usr/include/c++/7.3.0/cwchar --rw-r--r-- root/root usr/include/c++/7.3.0/cwctype --rw-r--r-- root/root usr/include/c++/7.3.0/cxxabi.h -drwxr-xr-x root/root usr/include/c++/7.3.0/debug/ --rw-r--r-- root/root usr/include/c++/7.3.0/debug/array --rw-r--r-- root/root usr/include/c++/7.3.0/debug/assertions.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/bitset --rw-r--r-- root/root usr/include/c++/7.3.0/debug/debug.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/deque --rw-r--r-- root/root usr/include/c++/7.3.0/debug/formatter.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/forward_list --rw-r--r-- root/root usr/include/c++/7.3.0/debug/functions.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/helper_functions.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/list --rw-r--r-- root/root usr/include/c++/7.3.0/debug/macros.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/map --rw-r--r-- root/root usr/include/c++/7.3.0/debug/map.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/multimap.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/multiset.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/safe_base.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/safe_container.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/safe_iterator.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/safe_iterator.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/debug/safe_local_iterator.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/safe_local_iterator.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/debug/safe_sequence.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/safe_sequence.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/debug/safe_unordered_base.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/safe_unordered_container.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/safe_unordered_container.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/debug/set --rw-r--r-- root/root usr/include/c++/7.3.0/debug/set.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/stl_iterator.h --rw-r--r-- root/root usr/include/c++/7.3.0/debug/string --rw-r--r-- root/root usr/include/c++/7.3.0/debug/unordered_map --rw-r--r-- root/root usr/include/c++/7.3.0/debug/unordered_set --rw-r--r-- root/root usr/include/c++/7.3.0/debug/vector -drwxr-xr-x root/root usr/include/c++/7.3.0/decimal/ --rw-r--r-- root/root usr/include/c++/7.3.0/decimal/decimal --rw-r--r-- root/root usr/include/c++/7.3.0/decimal/decimal.h --rw-r--r-- root/root usr/include/c++/7.3.0/deque --rw-r--r-- root/root usr/include/c++/7.3.0/exception -drwxr-xr-x root/root usr/include/c++/7.3.0/experimental/ --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/algorithm --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/any --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/array -drwxr-xr-x root/root usr/include/c++/7.3.0/experimental/bits/ --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/bits/erase_if.h --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/bits/fs_dir.h --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/bits/fs_fwd.h --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/bits/fs_ops.h --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/bits/fs_path.h --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/bits/lfts_config.h --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/bits/shared_ptr.h --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/bits/string_view.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/chrono --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/deque --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/filesystem --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/forward_list --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/functional --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/iterator --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/list --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/map --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/memory --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/memory_resource --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/numeric --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/optional --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/propagate_const --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/random --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/ratio --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/regex --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/set --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/source_location --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/string --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/string_view --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/system_error --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/tuple --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/type_traits --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/unordered_map --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/unordered_set --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/utility --rw-r--r-- root/root usr/include/c++/7.3.0/experimental/vector -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/algorithm --rw-r--r-- root/root usr/include/c++/7.3.0/ext/aligned_buffer.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/alloc_traits.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/array_allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/atomicity.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/bitmap_allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/cast.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/cmath --rw-r--r-- root/root usr/include/c++/7.3.0/ext/codecvt_specializations.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/concurrence.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/debug_allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/enc_filebuf.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/extptr_allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/functional --rw-r--r-- root/root usr/include/c++/7.3.0/ext/hash_map --rw-r--r-- root/root usr/include/c++/7.3.0/ext/hash_set --rw-r--r-- root/root usr/include/c++/7.3.0/ext/iterator --rw-r--r-- root/root usr/include/c++/7.3.0/ext/malloc_allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/memory --rw-r--r-- root/root usr/include/c++/7.3.0/ext/mt_allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/new_allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/numeric --rw-r--r-- root/root usr/include/c++/7.3.0/ext/numeric_traits.h -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/assoc_container.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/bin_search_tree_/traits.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/const_iterator.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/entry_pred.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/resize_policy.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_base_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/branch_policy/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/branch_policy/branch_policy.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/branch_policy/traits.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/cond_dealtor.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/container_base_dispatch.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/debug_map_base.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/eq_fn/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/eq_fn/eq_by_less.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_map_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_map_/lu_map_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_policy/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/ov_tree_map_/traits.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pairing_heap_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/traits.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/priority_queue_base_dispatch.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rb_tree_map_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rb_tree_map_/node.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rb_tree_map_/traits.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rc_binomial_heap_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/resize_policy/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/node.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/splay_tree_/traits.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/standard_policies.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/thin_heap_/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/tree_policy/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/tree_trace_base.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/trie_policy/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/type_utils.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/types_traits.hpp -drwxr-xr-x root/root usr/include/c++/7.3.0/ext/pb_ds/detail/unordered_iterator/ --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/unordered_iterator/iterator.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/exception.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/hash_policy.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/list_update_policy.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/priority_queue.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/tag_and_trait.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/tree_policy.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pb_ds/trie_policy.hpp --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pod_char_traits.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pointer.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/pool_allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/random --rw-r--r-- root/root usr/include/c++/7.3.0/ext/random.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/ext/rb_tree --rw-r--r-- root/root usr/include/c++/7.3.0/ext/rc_string_base.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/rope --rw-r--r-- root/root usr/include/c++/7.3.0/ext/ropeimpl.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/slist --rw-r--r-- root/root usr/include/c++/7.3.0/ext/sso_string_base.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/stdio_filebuf.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/stdio_sync_filebuf.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/string_conversions.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/throw_allocator.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/type_traits.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/typelist.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/vstring.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/vstring.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/ext/vstring_fwd.h --rw-r--r-- root/root usr/include/c++/7.3.0/ext/vstring_util.h --rw-r--r-- root/root usr/include/c++/7.3.0/fenv.h --rw-r--r-- root/root usr/include/c++/7.3.0/forward_list --rw-r--r-- root/root usr/include/c++/7.3.0/fstream --rw-r--r-- root/root usr/include/c++/7.3.0/functional --rw-r--r-- root/root usr/include/c++/7.3.0/future --rw-r--r-- root/root usr/include/c++/7.3.0/initializer_list --rw-r--r-- root/root usr/include/c++/7.3.0/iomanip --rw-r--r-- root/root usr/include/c++/7.3.0/ios --rw-r--r-- root/root usr/include/c++/7.3.0/iosfwd --rw-r--r-- root/root usr/include/c++/7.3.0/iostream --rw-r--r-- root/root usr/include/c++/7.3.0/istream --rw-r--r-- root/root usr/include/c++/7.3.0/iterator --rw-r--r-- root/root usr/include/c++/7.3.0/limits --rw-r--r-- root/root usr/include/c++/7.3.0/list --rw-r--r-- root/root usr/include/c++/7.3.0/locale --rw-r--r-- root/root usr/include/c++/7.3.0/map --rw-r--r-- root/root usr/include/c++/7.3.0/math.h --rw-r--r-- root/root usr/include/c++/7.3.0/memory --rw-r--r-- root/root usr/include/c++/7.3.0/mutex --rw-r--r-- root/root usr/include/c++/7.3.0/new --rw-r--r-- root/root usr/include/c++/7.3.0/numeric --rw-r--r-- root/root usr/include/c++/7.3.0/optional --rw-r--r-- root/root usr/include/c++/7.3.0/ostream -drwxr-xr-x root/root usr/include/c++/7.3.0/parallel/ --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/algo.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/algobase.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/algorithm --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/algorithmfwd.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/balanced_quicksort.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/base.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/basic_iterator.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/checkers.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/compatibility.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/compiletime_settings.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/equally_split.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/features.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/find.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/find_selectors.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/for_each.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/for_each_selectors.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/iterator.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/list_partition.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/losertree.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/merge.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/multiseq_selection.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/multiway_merge.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/multiway_mergesort.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/numeric --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/numericfwd.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/omp_loop.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/omp_loop_static.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/par_loop.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/parallel.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/partial_sum.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/partition.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/queue.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/quicksort.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/random_number.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/random_shuffle.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/search.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/set_operations.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/settings.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/sort.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/tags.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/types.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/unique_copy.h --rw-r--r-- root/root usr/include/c++/7.3.0/parallel/workstealing.h -drwxr-xr-x root/root usr/include/c++/7.3.0/profile/ --rw-r--r-- root/root usr/include/c++/7.3.0/profile/array --rw-r--r-- root/root usr/include/c++/7.3.0/profile/base.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/bitset --rw-r--r-- root/root usr/include/c++/7.3.0/profile/deque --rw-r--r-- root/root usr/include/c++/7.3.0/profile/forward_list -drwxr-xr-x root/root usr/include/c++/7.3.0/profile/impl/ --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_algos.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_container_size.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_hash_func.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_hashtable_size.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_list_to_slist.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_list_to_vector.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_map_to_unordered_map.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_node.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_state.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_trace.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_vector_size.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/impl/profiler_vector_to_list.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/iterator_tracker.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/list --rw-r--r-- root/root usr/include/c++/7.3.0/profile/map --rw-r--r-- root/root usr/include/c++/7.3.0/profile/map.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/multimap.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/multiset.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/ordered_base.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/set --rw-r--r-- root/root usr/include/c++/7.3.0/profile/set.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/unordered_base.h --rw-r--r-- root/root usr/include/c++/7.3.0/profile/unordered_map --rw-r--r-- root/root usr/include/c++/7.3.0/profile/unordered_set --rw-r--r-- root/root usr/include/c++/7.3.0/profile/vector --rw-r--r-- root/root usr/include/c++/7.3.0/queue --rw-r--r-- root/root usr/include/c++/7.3.0/random --rw-r--r-- root/root usr/include/c++/7.3.0/ratio --rw-r--r-- root/root usr/include/c++/7.3.0/regex --rw-r--r-- root/root usr/include/c++/7.3.0/scoped_allocator --rw-r--r-- root/root usr/include/c++/7.3.0/set --rw-r--r-- root/root usr/include/c++/7.3.0/shared_mutex --rw-r--r-- root/root usr/include/c++/7.3.0/sstream --rw-r--r-- root/root usr/include/c++/7.3.0/stack --rw-r--r-- root/root usr/include/c++/7.3.0/stdexcept --rw-r--r-- root/root usr/include/c++/7.3.0/stdlib.h --rw-r--r-- root/root usr/include/c++/7.3.0/streambuf --rw-r--r-- root/root usr/include/c++/7.3.0/string --rw-r--r-- root/root usr/include/c++/7.3.0/string_view --rw-r--r-- root/root usr/include/c++/7.3.0/system_error --rw-r--r-- root/root usr/include/c++/7.3.0/tgmath.h --rw-r--r-- root/root usr/include/c++/7.3.0/thread -drwxr-xr-x root/root usr/include/c++/7.3.0/tr1/ --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/array --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/bessel_function.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/beta_function.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/ccomplex --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cctype --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cfenv --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cfloat --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cinttypes --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/climits --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cmath --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/complex --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/complex.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cstdarg --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cstdbool --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cstdint --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cstdio --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cstdlib --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/ctgmath --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/ctime --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/ctype.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cwchar --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/cwctype --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/ell_integral.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/exp_integral.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/fenv.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/float.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/functional --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/functional_hash.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/gamma.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/hashtable.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/hashtable_policy.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/hypergeometric.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/inttypes.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/legendre_function.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/limits.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/math.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/memory --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/modified_bessel_func.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/poly_hermite.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/poly_laguerre.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/random --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/random.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/random.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/regex --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/riemann_zeta.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/shared_ptr.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/special_function_util.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/stdarg.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/stdbool.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/stdint.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/stdio.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/stdlib.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/tgmath.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/tuple --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/type_traits --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/unordered_map --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/unordered_map.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/unordered_set --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/unordered_set.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/utility --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/wchar.h --rw-r--r-- root/root usr/include/c++/7.3.0/tr1/wctype.h -drwxr-xr-x root/root usr/include/c++/7.3.0/tr2/ --rw-r--r-- root/root usr/include/c++/7.3.0/tr2/bool_set --rw-r--r-- root/root usr/include/c++/7.3.0/tr2/bool_set.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr2/dynamic_bitset --rw-r--r-- root/root usr/include/c++/7.3.0/tr2/dynamic_bitset.tcc --rw-r--r-- root/root usr/include/c++/7.3.0/tr2/ratio --rw-r--r-- root/root usr/include/c++/7.3.0/tr2/type_traits --rw-r--r-- root/root usr/include/c++/7.3.0/tuple --rw-r--r-- root/root usr/include/c++/7.3.0/type_traits --rw-r--r-- root/root usr/include/c++/7.3.0/typeindex --rw-r--r-- root/root usr/include/c++/7.3.0/typeinfo --rw-r--r-- root/root usr/include/c++/7.3.0/unordered_map --rw-r--r-- root/root usr/include/c++/7.3.0/unordered_set --rw-r--r-- root/root usr/include/c++/7.3.0/utility --rw-r--r-- root/root usr/include/c++/7.3.0/valarray --rw-r--r-- root/root usr/include/c++/7.3.0/variant --rw-r--r-- root/root usr/include/c++/7.3.0/vector +drwxr-xr-x root/root usr/include/c++/7.4.0/ +drwxr-xr-x root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/ +drwxr-xr-x root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/ +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/atomic_word.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/basic_file.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/c++allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/c++config.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/c++io.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/c++locale.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/cpu_defines.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/ctype_base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/ctype_inline.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/cxxabi_tweaks.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/error_constants.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/extc++.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/gthr-default.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/gthr-posix.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/gthr-single.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/gthr.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/messages_members.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/opt_random.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/os_defines.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/stdc++.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/stdtr1c++.h +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/bits/time_members.h +drwxr-xr-x root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/ext/ +-rw-r--r-- root/root usr/include/c++/7.4.0/aarch64-unknown-linux-gnu/ext/opt_random.h +-rw-r--r-- root/root usr/include/c++/7.4.0/algorithm +-rw-r--r-- root/root usr/include/c++/7.4.0/any +-rw-r--r-- root/root usr/include/c++/7.4.0/array +-rw-r--r-- root/root usr/include/c++/7.4.0/atomic +drwxr-xr-x root/root usr/include/c++/7.4.0/backward/ +-rw-r--r-- root/root usr/include/c++/7.4.0/backward/auto_ptr.h +-rw-r--r-- root/root usr/include/c++/7.4.0/backward/backward_warning.h +-rw-r--r-- root/root usr/include/c++/7.4.0/backward/binders.h +-rw-r--r-- root/root usr/include/c++/7.4.0/backward/hash_fun.h +-rw-r--r-- root/root usr/include/c++/7.4.0/backward/hash_map +-rw-r--r-- root/root usr/include/c++/7.4.0/backward/hash_set +-rw-r--r-- root/root usr/include/c++/7.4.0/backward/hashtable.h +-rw-r--r-- root/root usr/include/c++/7.4.0/backward/strstream +drwxr-xr-x root/root usr/include/c++/7.4.0/bits/ +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/algorithmfwd.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/alloc_traits.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/allocated_ptr.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/atomic_base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/atomic_futex.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/atomic_lockfree_defines.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/basic_ios.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/basic_ios.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/basic_string.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/basic_string.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/boost_concept_check.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/c++0x_warning.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/char_traits.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/codecvt.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/concept_check.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/cpp_type_traits.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/cxxabi_forced.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/cxxabi_init_exception.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/deque.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/enable_special_members.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/exception.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/exception_defines.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/exception_ptr.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/forward_list.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/forward_list.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/fstream.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/functexcept.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/functional_hash.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/gslice.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/gslice_array.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/hash_bytes.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/hashtable.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/hashtable_policy.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/indirect_array.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/invoke.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/ios_base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/istream.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/list.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/locale_classes.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/locale_classes.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/locale_conv.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/locale_facets.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/locale_facets.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/locale_facets_nonio.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/locale_facets_nonio.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/localefwd.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/mask_array.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/memoryfwd.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/move.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/nested_exception.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/node_handle.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/ostream.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/ostream_insert.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/parse_numbers.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/postypes.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/predefined_ops.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/ptr_traits.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/quoted_string.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/random.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/random.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/range_access.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/refwrap.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex_automaton.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex_automaton.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex_compiler.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex_compiler.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex_constants.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex_error.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex_executor.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex_executor.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex_scanner.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/regex_scanner.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/shared_ptr.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/shared_ptr_atomic.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/shared_ptr_base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/slice_array.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/specfun.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/sstream.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/std_abs.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/std_function.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/std_mutex.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_algo.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_algobase.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_bvector.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_construct.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_deque.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_function.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_heap.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_iterator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_iterator_base_funcs.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_iterator_base_types.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_list.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_map.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_multimap.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_multiset.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_numeric.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_pair.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_queue.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_raw_storage_iter.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_relops.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_set.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_stack.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_tempbuf.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_tree.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_uninitialized.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stl_vector.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stream_iterator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/streambuf.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/streambuf_iterator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/string_view.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/stringfwd.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/uniform_int_dist.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/unique_ptr.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/unordered_map.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/unordered_set.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/uses_allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/valarray_after.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/valarray_array.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/valarray_array.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/valarray_before.h +-rw-r--r-- root/root usr/include/c++/7.4.0/bits/vector.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/bitset +-rw-r--r-- root/root usr/include/c++/7.4.0/cassert +-rw-r--r-- root/root usr/include/c++/7.4.0/ccomplex +-rw-r--r-- root/root usr/include/c++/7.4.0/cctype +-rw-r--r-- root/root usr/include/c++/7.4.0/cerrno +-rw-r--r-- root/root usr/include/c++/7.4.0/cfenv +-rw-r--r-- root/root usr/include/c++/7.4.0/cfloat +-rw-r--r-- root/root usr/include/c++/7.4.0/chrono +-rw-r--r-- root/root usr/include/c++/7.4.0/cinttypes +-rw-r--r-- root/root usr/include/c++/7.4.0/ciso646 +-rw-r--r-- root/root usr/include/c++/7.4.0/climits +-rw-r--r-- root/root usr/include/c++/7.4.0/clocale +-rw-r--r-- root/root usr/include/c++/7.4.0/cmath +-rw-r--r-- root/root usr/include/c++/7.4.0/codecvt +-rw-r--r-- root/root usr/include/c++/7.4.0/complex +-rw-r--r-- root/root usr/include/c++/7.4.0/complex.h +-rw-r--r-- root/root usr/include/c++/7.4.0/condition_variable +-rw-r--r-- root/root usr/include/c++/7.4.0/csetjmp +-rw-r--r-- root/root usr/include/c++/7.4.0/csignal +-rw-r--r-- root/root usr/include/c++/7.4.0/cstdalign +-rw-r--r-- root/root usr/include/c++/7.4.0/cstdarg +-rw-r--r-- root/root usr/include/c++/7.4.0/cstdbool +-rw-r--r-- root/root usr/include/c++/7.4.0/cstddef +-rw-r--r-- root/root usr/include/c++/7.4.0/cstdint +-rw-r--r-- root/root usr/include/c++/7.4.0/cstdio +-rw-r--r-- root/root usr/include/c++/7.4.0/cstdlib +-rw-r--r-- root/root usr/include/c++/7.4.0/cstring +-rw-r--r-- root/root usr/include/c++/7.4.0/ctgmath +-rw-r--r-- root/root usr/include/c++/7.4.0/ctime +-rw-r--r-- root/root usr/include/c++/7.4.0/cuchar +-rw-r--r-- root/root usr/include/c++/7.4.0/cwchar +-rw-r--r-- root/root usr/include/c++/7.4.0/cwctype +-rw-r--r-- root/root usr/include/c++/7.4.0/cxxabi.h +drwxr-xr-x root/root usr/include/c++/7.4.0/debug/ +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/array +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/assertions.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/bitset +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/debug.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/deque +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/formatter.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/forward_list +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/functions.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/helper_functions.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/list +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/macros.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/map +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/map.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/multimap.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/multiset.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/safe_base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/safe_container.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/safe_iterator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/safe_iterator.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/safe_local_iterator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/safe_local_iterator.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/safe_sequence.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/safe_sequence.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/safe_unordered_base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/safe_unordered_container.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/safe_unordered_container.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/set +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/set.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/stl_iterator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/string +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/unordered_map +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/unordered_set +-rw-r--r-- root/root usr/include/c++/7.4.0/debug/vector +drwxr-xr-x root/root usr/include/c++/7.4.0/decimal/ +-rw-r--r-- root/root usr/include/c++/7.4.0/decimal/decimal +-rw-r--r-- root/root usr/include/c++/7.4.0/decimal/decimal.h +-rw-r--r-- root/root usr/include/c++/7.4.0/deque +-rw-r--r-- root/root usr/include/c++/7.4.0/exception +drwxr-xr-x root/root usr/include/c++/7.4.0/experimental/ +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/algorithm +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/any +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/array +drwxr-xr-x root/root usr/include/c++/7.4.0/experimental/bits/ +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/bits/erase_if.h +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/bits/fs_dir.h +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/bits/fs_fwd.h +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/bits/fs_ops.h +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/bits/fs_path.h +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/bits/lfts_config.h +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/bits/shared_ptr.h +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/bits/string_view.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/chrono +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/deque +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/filesystem +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/forward_list +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/functional +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/iterator +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/list +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/map +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/memory +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/memory_resource +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/numeric +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/optional +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/propagate_const +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/random +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/ratio +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/regex +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/set +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/source_location +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/string +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/string_view +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/system_error +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/tuple +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/type_traits +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/unordered_map +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/unordered_set +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/utility +-rw-r--r-- root/root usr/include/c++/7.4.0/experimental/vector +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/algorithm +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/aligned_buffer.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/alloc_traits.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/array_allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/atomicity.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/bitmap_allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/cast.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/cmath +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/codecvt_specializations.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/concurrence.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/debug_allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/enc_filebuf.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/extptr_allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/functional +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/hash_map +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/hash_set +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/iterator +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/malloc_allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/memory +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/mt_allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/new_allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/numeric +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/numeric_traits.h +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/assoc_container.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/bin_search_tree_/traits.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/const_iterator.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/entry_pred.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/resize_policy.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_base_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/branch_policy/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/branch_policy/branch_policy.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/branch_policy/traits.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/cond_dealtor.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/container_base_dispatch.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/debug_map_base.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/eq_fn/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/eq_fn/eq_by_less.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_map_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_map_/lu_map_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_policy/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/ov_tree_map_/traits.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pairing_heap_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/traits.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/priority_queue_base_dispatch.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rb_tree_map_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rb_tree_map_/node.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rb_tree_map_/traits.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rc_binomial_heap_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/resize_policy/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/node.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/splay_tree_/traits.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/standard_policies.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/thin_heap_/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/tree_policy/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/tree_trace_base.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/trie_policy/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/type_utils.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/types_traits.hpp +drwxr-xr-x root/root usr/include/c++/7.4.0/ext/pb_ds/detail/unordered_iterator/ +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/unordered_iterator/iterator.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/exception.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/hash_policy.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/list_update_policy.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/priority_queue.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/tag_and_trait.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/tree_policy.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pb_ds/trie_policy.hpp +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pod_char_traits.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pointer.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/pool_allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/random +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/random.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/rb_tree +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/rc_string_base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/rope +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/ropeimpl.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/slist +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/sso_string_base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/stdio_filebuf.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/stdio_sync_filebuf.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/string_conversions.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/throw_allocator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/type_traits.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/typelist.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/vstring.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/vstring.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/vstring_fwd.h +-rw-r--r-- root/root usr/include/c++/7.4.0/ext/vstring_util.h +-rw-r--r-- root/root usr/include/c++/7.4.0/fenv.h +-rw-r--r-- root/root usr/include/c++/7.4.0/forward_list +-rw-r--r-- root/root usr/include/c++/7.4.0/fstream +-rw-r--r-- root/root usr/include/c++/7.4.0/functional +-rw-r--r-- root/root usr/include/c++/7.4.0/future +-rw-r--r-- root/root usr/include/c++/7.4.0/initializer_list +-rw-r--r-- root/root usr/include/c++/7.4.0/iomanip +-rw-r--r-- root/root usr/include/c++/7.4.0/ios +-rw-r--r-- root/root usr/include/c++/7.4.0/iosfwd +-rw-r--r-- root/root usr/include/c++/7.4.0/iostream +-rw-r--r-- root/root usr/include/c++/7.4.0/istream +-rw-r--r-- root/root usr/include/c++/7.4.0/iterator +-rw-r--r-- root/root usr/include/c++/7.4.0/limits +-rw-r--r-- root/root usr/include/c++/7.4.0/list +-rw-r--r-- root/root usr/include/c++/7.4.0/locale +-rw-r--r-- root/root usr/include/c++/7.4.0/map +-rw-r--r-- root/root usr/include/c++/7.4.0/math.h +-rw-r--r-- root/root usr/include/c++/7.4.0/memory +-rw-r--r-- root/root usr/include/c++/7.4.0/mutex +-rw-r--r-- root/root usr/include/c++/7.4.0/new +-rw-r--r-- root/root usr/include/c++/7.4.0/numeric +-rw-r--r-- root/root usr/include/c++/7.4.0/optional +-rw-r--r-- root/root usr/include/c++/7.4.0/ostream +drwxr-xr-x root/root usr/include/c++/7.4.0/parallel/ +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/algo.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/algobase.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/algorithm +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/algorithmfwd.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/balanced_quicksort.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/basic_iterator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/checkers.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/compatibility.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/compiletime_settings.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/equally_split.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/features.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/find.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/find_selectors.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/for_each.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/for_each_selectors.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/iterator.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/list_partition.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/losertree.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/merge.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/multiseq_selection.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/multiway_merge.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/multiway_mergesort.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/numeric +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/numericfwd.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/omp_loop.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/omp_loop_static.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/par_loop.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/parallel.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/partial_sum.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/partition.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/queue.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/quicksort.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/random_number.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/random_shuffle.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/search.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/set_operations.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/settings.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/sort.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/tags.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/types.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/unique_copy.h +-rw-r--r-- root/root usr/include/c++/7.4.0/parallel/workstealing.h +drwxr-xr-x root/root usr/include/c++/7.4.0/profile/ +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/array +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/bitset +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/deque +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/forward_list +drwxr-xr-x root/root usr/include/c++/7.4.0/profile/impl/ +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_algos.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_container_size.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_hash_func.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_hashtable_size.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_list_to_slist.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_list_to_vector.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_map_to_unordered_map.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_node.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_state.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_trace.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_vector_size.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/impl/profiler_vector_to_list.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/iterator_tracker.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/list +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/map +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/map.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/multimap.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/multiset.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/ordered_base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/set +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/set.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/unordered_base.h +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/unordered_map +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/unordered_set +-rw-r--r-- root/root usr/include/c++/7.4.0/profile/vector +-rw-r--r-- root/root usr/include/c++/7.4.0/queue +-rw-r--r-- root/root usr/include/c++/7.4.0/random +-rw-r--r-- root/root usr/include/c++/7.4.0/ratio +-rw-r--r-- root/root usr/include/c++/7.4.0/regex +-rw-r--r-- root/root usr/include/c++/7.4.0/scoped_allocator +-rw-r--r-- root/root usr/include/c++/7.4.0/set +-rw-r--r-- root/root usr/include/c++/7.4.0/shared_mutex +-rw-r--r-- root/root usr/include/c++/7.4.0/sstream +-rw-r--r-- root/root usr/include/c++/7.4.0/stack +-rw-r--r-- root/root usr/include/c++/7.4.0/stdexcept +-rw-r--r-- root/root usr/include/c++/7.4.0/stdlib.h +-rw-r--r-- root/root usr/include/c++/7.4.0/streambuf +-rw-r--r-- root/root usr/include/c++/7.4.0/string +-rw-r--r-- root/root usr/include/c++/7.4.0/string_view +-rw-r--r-- root/root usr/include/c++/7.4.0/system_error +-rw-r--r-- root/root usr/include/c++/7.4.0/tgmath.h +-rw-r--r-- root/root usr/include/c++/7.4.0/thread +drwxr-xr-x root/root usr/include/c++/7.4.0/tr1/ +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/array +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/bessel_function.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/beta_function.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/ccomplex +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cctype +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cfenv +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cfloat +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cinttypes +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/climits +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cmath +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/complex +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/complex.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cstdarg +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cstdbool +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cstdint +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cstdio +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cstdlib +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/ctgmath +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/ctime +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/ctype.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cwchar +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/cwctype +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/ell_integral.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/exp_integral.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/fenv.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/float.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/functional +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/functional_hash.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/gamma.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/hashtable.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/hashtable_policy.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/hypergeometric.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/inttypes.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/legendre_function.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/limits.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/math.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/memory +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/modified_bessel_func.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/poly_hermite.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/poly_laguerre.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/random +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/random.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/random.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/regex +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/riemann_zeta.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/shared_ptr.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/special_function_util.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/stdarg.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/stdbool.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/stdint.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/stdio.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/stdlib.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/tgmath.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/tuple +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/type_traits +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/unordered_map +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/unordered_map.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/unordered_set +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/unordered_set.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/utility +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/wchar.h +-rw-r--r-- root/root usr/include/c++/7.4.0/tr1/wctype.h +drwxr-xr-x root/root usr/include/c++/7.4.0/tr2/ +-rw-r--r-- root/root usr/include/c++/7.4.0/tr2/bool_set +-rw-r--r-- root/root usr/include/c++/7.4.0/tr2/bool_set.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr2/dynamic_bitset +-rw-r--r-- root/root usr/include/c++/7.4.0/tr2/dynamic_bitset.tcc +-rw-r--r-- root/root usr/include/c++/7.4.0/tr2/ratio +-rw-r--r-- root/root usr/include/c++/7.4.0/tr2/type_traits +-rw-r--r-- root/root usr/include/c++/7.4.0/tuple +-rw-r--r-- root/root usr/include/c++/7.4.0/type_traits +-rw-r--r-- root/root usr/include/c++/7.4.0/typeindex +-rw-r--r-- root/root usr/include/c++/7.4.0/typeinfo +-rw-r--r-- root/root usr/include/c++/7.4.0/unordered_map +-rw-r--r-- root/root usr/include/c++/7.4.0/unordered_set +-rw-r--r-- root/root usr/include/c++/7.4.0/utility +-rw-r--r-- root/root usr/include/c++/7.4.0/valarray +-rw-r--r-- root/root usr/include/c++/7.4.0/variant +-rw-r--r-- root/root usr/include/c++/7.4.0/vector drwxr-xr-x root/root usr/lib/ drwxr-xr-x root/root usr/lib/gcc/ drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/ -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/ --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/cc1 --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/cc1obj --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/cc1plus --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/collect2 --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/crtbegin.o --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/crtbeginS.o --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/crtbeginT.o --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/crtend.o --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/crtendS.o --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/crtfastmath.o -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/ --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/arm_acle.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/arm_fp16.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/arm_neon.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/float.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/gcov.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/iso646.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/limits.h -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/objc/ --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/objc/NXConstStr.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/objc/Object.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/objc/Protocol.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/objc/message.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/objc/objc-decls.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/objc/objc-exception.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/objc/objc-sync.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/objc/objc.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/objc/runtime.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/objc/thr.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/omp.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/openacc.h -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/sanitizer/ --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/sanitizer/asan_interface.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/sanitizer/common_interface_defs.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/sanitizer/lsan_interface.h -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/ssp/ --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/ssp/ssp.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/ssp/stdio.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/ssp/string.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/ssp/unistd.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/stdalign.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/stdarg.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/stdatomic.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/stdbool.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/stddef.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/stdfix.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/stdint-gcc.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/stdint.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/stdnoreturn.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/syslimits.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/unwind.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/varargs.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/libgcc.a --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/libgcc_eh.a --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/libgcov.a --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/liblto_plugin.la -lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/liblto_plugin.so -> liblto_plugin.so.0.0.0 -lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/liblto_plugin.so.0 -> liblto_plugin.so.0.0.0 --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/liblto_plugin.so.0.0.0 --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/lto-wrapper --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/lto1 -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/ --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/gengtype --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/gtype.state -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ada/ -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ada/gcc-interface/ --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ada/gcc-interface/ada-tree.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/addresses.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/alias.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/all-tree.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/alloc-pool.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ansidecl.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/asan.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/attribs.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/auto-host.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/auto-profile.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/b-header-vars --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/backend.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/basic-block.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/bb-reorder.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/bitmap.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/brig-builtins.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/builtin-attrs.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/builtin-types.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/builtins.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/builtins.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/bversion.h -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/c-family/ --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/c-family/c-common.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/c-family/c-common.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/c-family/c-objc.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/c-family/c-pragma.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/c-family/c-pretty-print.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/c-tree.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/calls.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ccmp.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cfg-flags.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cfg.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cfganal.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cfgbuild.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cfgcleanup.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cfgexpand.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cfghooks.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cfgloop.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cfgloopmanip.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cfgrtl.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cgraph.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/chkp-builtins.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cif-code.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cilk-builtins.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cilk.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cilkplus.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/collect-utils.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/collect2-aix.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/collect2.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/conditions.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config.h -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/ -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/aarch64/ --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/aarch64/aarch64-arches.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/aarch64/aarch64-cores.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/aarch64/aarch64-elf.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/aarch64/aarch64-fusion-pairs.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/aarch64/aarch64-linux.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/aarch64/aarch64-opts.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/aarch64/aarch64-protos.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/aarch64/aarch64-tuning-flags.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/aarch64/aarch64.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/aarch64/biarchlp64.h -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/arm/ --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/arm/aarch-common-protos.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/dbxelf.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/elfos.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/glibc-stdint.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/gnu-user.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/initfini-array.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/linux-protos.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/config/linux.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/configargs.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/context.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/convert.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/coretypes.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/coverage.h -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cp/ --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cp/cp-tree.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cp/cp-tree.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cp/cxx-pretty-print.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cp/name-lookup.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cp/type-utils.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cppbuiltin.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cppdefault.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cpplib.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/cselib.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/data-streamer.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/dbgcnt.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/dbgcnt.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/dbxout.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/dce.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ddg.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/debug.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/defaults.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/df.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/dfp.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/diagnostic-color.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/diagnostic-core.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/diagnostic.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/diagnostic.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/dojump.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/dominance.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/domwalk.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/double-int.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/dumpfile.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/dwarf2asm.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/dwarf2out.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/edit-context.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/emit-rtl.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/errors.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/et-forest.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/except.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/explow.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/expmed.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/expr.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/fibonacci_heap.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/file-find.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/filenames.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/fixed-value.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/flag-types.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/flags.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/fold-const-call.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/fold-const.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/function.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gcc-plugin.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gcc-rich-location.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gcc-symtab.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gcc.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gcov-counter.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gcov-io.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gcse-common.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gcse.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/generic-match.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gengtype.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/genrtl.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gensupport.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ggc-internal.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ggc.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple-builder.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple-expr.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple-fold.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple-iterator.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple-low.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple-match.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple-predict.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple-pretty-print.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple-ssa.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple-streamer.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple-walk.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimple.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimplify-me.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gimplify.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/glimits.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/graph.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/graphds.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/graphite.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gsstruct.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gstab.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gsyms.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gsyslimits.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gtm-builtins.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/gtype-desc.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hard-reg-set.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hash-map-traits.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hash-map.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hash-set.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hash-table.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hash-traits.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hashtab.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/highlev-plugin-common.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hooks.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hosthooks-def.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hosthooks.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hsa-brig-format.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hsa-builtins.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hsa-common.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hw-doloop.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/hwint.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ifcvt.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/inchash.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/incpath.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/input.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/insn-addr.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/insn-codes.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/insn-constants.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/insn-flags.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/insn-modes.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/insn-notes.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/internal-fn.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/internal-fn.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/intl.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ipa-chkp.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ipa-icf-gimple.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ipa-icf.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ipa-inline.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ipa-prop.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ipa-ref.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ipa-reference.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ipa-utils.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ira-int.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ira.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/is-a.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/langhooks-def.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/langhooks.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/lcm.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/libfuncs.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/libiberty.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/limitx.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/limity.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/line-map.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/loop-unroll.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/lower-subreg.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/lra-int.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/lra.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/lto-compress.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/lto-section-names.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/lto-streamer.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/machmode.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/machmode.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/md5.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/mem-stats-traits.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/mem-stats.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/memmodel.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/memory-block.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/mode-classes.def -drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/objc/ --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/objc/objc-tree.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/obstack.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/omp-builtins.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/omp-expand.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/omp-general.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/omp-grid.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/omp-low.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/omp-offload.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/optabs-libfuncs.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/optabs-query.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/optabs-tree.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/optabs.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/optabs.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/options.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/opts-diagnostic.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/opts.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/output.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/params-enum.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/params-list.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/params-options.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/params.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/params.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/params.list --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/pass-instances.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/pass_manager.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/passes.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/plugin-api.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/plugin-version.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/plugin.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/plugin.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/predict.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/predict.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/prefix.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/pretty-print.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/print-rtl.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/print-tree.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/profile.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/read-md.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/read-rtl-function.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/real.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/realmpfr.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/recog.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/reg-notes.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/regcprop.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/regrename.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/regs.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/regset.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/reload.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/resource.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/rtl-chkp.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/rtl-error.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/rtl-iter.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/rtl.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/rtl.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/rtlhash.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/rtlhooks-def.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/run-rtl-passes.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/safe-ctype.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/sanitizer.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/sbitmap.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/sched-int.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/sdbout.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/sel-sched-dump.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/sel-sched-ir.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/sel-sched.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/selftest-rtl.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/selftest.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/sese.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/shrink-wrap.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/signop.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/sparseset.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/spellcheck-tree.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/spellcheck.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/splay-tree.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/sreal.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ssa-iterators.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ssa.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/stab.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/statistics.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/stmt.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/stor-layout.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/streamer-hooks.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/stringpool.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/substring-locations.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/symbol-summary.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/symtab.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/sync-builtins.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/system.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/target-def.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/target-globals.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/target-hooks-macros.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/target-insns.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/target.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/target.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/targhooks.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/timevar.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/timevar.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tm-preds.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tm.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tm_p.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/toplev.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tracer.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/trans-mem.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-affine.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-cfg.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-cfgcleanup.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-check.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-chkp.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-chrec.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-core.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-data-ref.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-dfa.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-diagnostic.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-dump.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-eh.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-hash-traits.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-hasher.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-if-conv.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-inline.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-into-ssa.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-iterator.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-nested.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-object-size.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-outof-ssa.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-parloops.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-pass.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-phinodes.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-pretty-print.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-scalar-evolution.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-address.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-alias.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-ccp.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-coalesce.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-dom.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-live.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-loop-ivopts.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-loop-manip.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-loop-niter.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-loop.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-operands.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-propagate.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-sccvn.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-scopedtables.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-ter.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-threadbackward.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-threadedge.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa-threadupdate.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssa.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-ssanames.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-stdarg.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-streamer.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-vectorizer.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree-vrp.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tree.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/treestruct.def --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tsan.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/tsystem.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/typeclass.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/typed-splay-tree.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/ubsan.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/valtrack.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/value-prof.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/varasm.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/vec.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/version.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/vmsdbg.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/vtable-verify.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/wide-int-print.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/wide-int.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/xcoff.h --rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/include/xcoffout.h --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcc1plugin.la -lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcc1plugin.so -> libcc1plugin.so.0.0.0 -lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcc1plugin.so.0 -> libcc1plugin.so.0.0.0 --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcc1plugin.so.0.0.0 --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcp1plugin.la -lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcp1plugin.so -> libcp1plugin.so.0.0.0 -lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcp1plugin.so.0 -> libcp1plugin.so.0.0.0 --rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/plugin/libcp1plugin.so.0.0.0 +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/ +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/cc1 +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/cc1obj +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/cc1plus +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/collect2 +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/crtbegin.o +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/crtbeginS.o +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/crtbeginT.o +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/crtend.o +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/crtendS.o +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/crtfastmath.o +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/ +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/arm_acle.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/arm_fp16.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/arm_neon.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/float.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/gcov.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/iso646.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/limits.h +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/objc/ +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/objc/NXConstStr.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/objc/Object.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/objc/Protocol.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/objc/message.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/objc/objc-decls.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/objc/objc-exception.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/objc/objc-sync.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/objc/objc.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/objc/runtime.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/objc/thr.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/omp.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/openacc.h +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/sanitizer/ +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/sanitizer/asan_interface.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/sanitizer/common_interface_defs.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/sanitizer/lsan_interface.h +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/ssp/ +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/ssp/ssp.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/ssp/stdio.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/ssp/string.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/ssp/unistd.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/stdalign.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/stdarg.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/stdatomic.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/stdbool.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/stddef.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/stdfix.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/stdint-gcc.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/stdint.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/stdnoreturn.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/syslimits.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/unwind.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/varargs.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/libgcc.a +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/libgcc_eh.a +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/libgcov.a +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/liblto_plugin.la +lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/liblto_plugin.so -> liblto_plugin.so.0.0.0 +lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/liblto_plugin.so.0 -> liblto_plugin.so.0.0.0 +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/liblto_plugin.so.0.0.0 +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/lto-wrapper +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/lto1 +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/ +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/gengtype +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/gtype.state +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ada/ +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ada/gcc-interface/ +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ada/gcc-interface/ada-tree.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/addresses.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/alias.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/all-tree.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/alloc-pool.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ansidecl.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/asan.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/attribs.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/auto-host.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/auto-profile.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/b-header-vars +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/backend.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/basic-block.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/bb-reorder.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/bitmap.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/brig-builtins.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/builtin-attrs.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/builtin-types.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/builtins.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/builtins.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/bversion.h +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/c-family/ +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/c-family/c-common.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/c-family/c-common.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/c-family/c-objc.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/c-family/c-pragma.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/c-family/c-pretty-print.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/c-tree.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/calls.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ccmp.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cfg-flags.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cfg.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cfganal.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cfgbuild.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cfgcleanup.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cfgexpand.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cfghooks.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cfgloop.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cfgloopmanip.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cfgrtl.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cgraph.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/chkp-builtins.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cif-code.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cilk-builtins.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cilk.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cilkplus.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/collect-utils.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/collect2-aix.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/collect2.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/conditions.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config.h +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/ +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/aarch64/ +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/aarch64/aarch64-arches.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/aarch64/aarch64-cores.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/aarch64/aarch64-elf.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/aarch64/aarch64-fusion-pairs.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/aarch64/aarch64-linux.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/aarch64/aarch64-opts.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/aarch64/aarch64-protos.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/aarch64/aarch64-tuning-flags.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/aarch64/aarch64.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/aarch64/biarchlp64.h +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/arm/ +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/arm/aarch-common-protos.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/dbxelf.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/elfos.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/glibc-stdint.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/gnu-user.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/initfini-array.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/linux-protos.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/config/linux.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/configargs.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/context.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/convert.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/coretypes.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/coverage.h +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cp/ +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cp/cp-tree.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cp/cp-tree.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cp/cxx-pretty-print.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cp/name-lookup.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cp/type-utils.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cppbuiltin.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cppdefault.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cpplib.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/cselib.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/data-streamer.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/dbgcnt.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/dbgcnt.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/dbxout.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/dce.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ddg.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/debug.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/defaults.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/df.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/dfp.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/diagnostic-color.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/diagnostic-core.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/diagnostic.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/diagnostic.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/dojump.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/dominance.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/domwalk.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/double-int.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/dumpfile.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/dwarf2asm.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/dwarf2out.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/edit-context.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/emit-rtl.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/errors.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/et-forest.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/except.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/explow.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/expmed.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/expr.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/fibonacci_heap.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/file-find.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/filenames.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/fixed-value.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/flag-types.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/flags.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/fold-const-call.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/fold-const.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/function.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gcc-plugin.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gcc-rich-location.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gcc-symtab.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gcc.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gcov-counter.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gcov-io.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gcse-common.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gcse.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/generic-match.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gengtype.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/genrtl.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gensupport.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ggc-internal.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ggc.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple-builder.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple-expr.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple-fold.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple-iterator.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple-low.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple-match.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple-predict.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple-pretty-print.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple-ssa.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple-streamer.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple-walk.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimple.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimplify-me.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gimplify.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/glimits.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/graph.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/graphds.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/graphite.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gsstruct.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gstab.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gsyms.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gsyslimits.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gtm-builtins.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/gtype-desc.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hard-reg-set.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hash-map-traits.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hash-map.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hash-set.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hash-table.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hash-traits.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hashtab.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/highlev-plugin-common.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hooks.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hosthooks-def.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hosthooks.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hsa-brig-format.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hsa-builtins.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hsa-common.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hw-doloop.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/hwint.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ifcvt.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/inchash.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/incpath.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/input.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/insn-addr.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/insn-codes.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/insn-constants.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/insn-flags.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/insn-modes.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/insn-notes.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/internal-fn.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/internal-fn.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/intl.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ipa-chkp.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ipa-icf-gimple.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ipa-icf.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ipa-inline.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ipa-prop.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ipa-ref.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ipa-reference.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ipa-utils.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ira-int.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ira.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/is-a.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/langhooks-def.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/langhooks.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/lcm.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/libfuncs.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/libiberty.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/limitx.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/limity.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/line-map.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/loop-unroll.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/lower-subreg.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/lra-int.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/lra.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/lto-compress.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/lto-section-names.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/lto-streamer.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/machmode.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/machmode.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/md5.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/mem-stats-traits.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/mem-stats.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/memmodel.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/memory-block.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/mode-classes.def +drwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/objc/ +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/objc/objc-tree.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/obstack.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/omp-builtins.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/omp-expand.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/omp-general.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/omp-grid.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/omp-low.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/omp-offload.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/optabs-libfuncs.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/optabs-query.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/optabs-tree.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/optabs.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/optabs.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/options.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/opts-diagnostic.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/opts.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/output.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/params-enum.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/params-list.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/params-options.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/params.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/params.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/params.list +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/pass-instances.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/pass_manager.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/passes.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/plugin-api.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/plugin-version.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/plugin.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/plugin.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/predict.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/predict.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/prefix.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/pretty-print.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/print-rtl.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/print-tree.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/profile.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/read-md.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/read-rtl-function.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/real.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/realmpfr.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/recog.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/reg-notes.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/regcprop.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/regrename.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/regs.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/regset.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/reload.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/resource.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/rtl-chkp.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/rtl-error.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/rtl-iter.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/rtl.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/rtl.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/rtlhash.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/rtlhooks-def.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/run-rtl-passes.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/safe-ctype.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/sanitizer.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/sbitmap.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/sched-int.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/sdbout.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/sel-sched-dump.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/sel-sched-ir.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/sel-sched.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/selftest-rtl.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/selftest.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/sese.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/shrink-wrap.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/signop.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/sparseset.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/spellcheck-tree.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/spellcheck.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/splay-tree.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/sreal.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ssa-iterators.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ssa.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/stab.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/statistics.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/stmt.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/stor-layout.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/streamer-hooks.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/stringpool.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/substring-locations.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/symbol-summary.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/symtab.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/sync-builtins.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/system.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/target-def.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/target-globals.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/target-hooks-macros.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/target-insns.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/target.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/target.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/targhooks.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/timevar.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/timevar.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tm-preds.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tm.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tm_p.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/toplev.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tracer.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/trans-mem.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-affine.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-cfg.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-cfgcleanup.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-check.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-chkp.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-chrec.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-core.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-data-ref.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-dfa.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-diagnostic.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-dump.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-eh.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-hash-traits.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-hasher.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-if-conv.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-inline.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-into-ssa.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-iterator.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-nested.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-object-size.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-outof-ssa.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-parloops.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-pass.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-phinodes.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-pretty-print.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-scalar-evolution.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-address.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-alias.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-ccp.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-coalesce.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-dom.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-live.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-loop-ivopts.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-loop-manip.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-loop-niter.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-loop.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-operands.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-propagate.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-sccvn.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-scopedtables.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-ter.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-threadbackward.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-threadedge.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa-threadupdate.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssa.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-ssanames.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-stdarg.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-streamer.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-vectorizer.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree-vrp.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tree.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/treestruct.def +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tsan.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/tsystem.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/typeclass.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/typed-splay-tree.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/ubsan.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/valtrack.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/value-prof.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/varasm.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/vec.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/version.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/vmsdbg.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/vtable-verify.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/wide-int-print.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/wide-int.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/xcoff.h +-rw-r--r-- root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/include/xcoffout.h +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/libcc1plugin.la +lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/libcc1plugin.so -> libcc1plugin.so.0.0.0 +lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/libcc1plugin.so.0 -> libcc1plugin.so.0.0.0 +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/libcc1plugin.so.0.0.0 +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/libcp1plugin.la +lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/libcp1plugin.so -> libcp1plugin.so.0.0.0 +lrwxrwxrwx root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/libcp1plugin.so.0 -> libcp1plugin.so.0.0.0 +-rwxr-xr-x root/root usr/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/plugin/libcp1plugin.so.0.0.0 -rw-r--r-- root/root usr/lib/libasan.a -rwxr-xr-x root/root usr/lib/libasan.la lrwxrwxrwx root/root usr/lib/libasan.so -> libasan.so.4.0.0 diff --git a/gcc/.signature b/gcc/.signature index d231469..19b6c95 100644 --- a/gcc/.signature +++ b/gcc/.signature @@ -1,7 +1,7 @@ untrusted comment: verify with /etc/ports/core-arm64.pub -RWSKslkvIwb+2YH25Fas0IVr51bPReywRhzGHVpUprXYiplWrPOGNmqY6XxXQ6+RXtgpYosVkaHlDLaj9qrc5Yvuy0NT22hbxQg= -SHA256 (Pkgfile) = 9b96a8dddfbf951ecb4f07a7150842a5b4e0441a014e0a435a47a2eee5384d44 -SHA256 (.footprint) = 3e7a94dcd5141fa1579295ebdf9ab71b36b59b752c0e82ff799bac9c96280715 -SHA256 (gcc-7.3.0.tar.xz) = 832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c +RWSKslkvIwb+2deP5V/5WQmeYKU2xnwYQR/q0gHT+obQ+BuFX+1HwVWfDC4LwWcwSdkH1kRpkdUQKr6iWlf/WltAr1dMVpylxg0= +SHA256 (Pkgfile) = 184424aae1ef55f32fbc326d15f1124ccaa3f2dfc750efed8158d38d3412334a +SHA256 (.footprint) = 7adbd1cc27b4a6f83138f1e293f6618e8b084d9bcea86b89b05ae2ff225941ba +SHA256 (gcc-7.4.0.tar.xz) = eddde28d04f334aec1604456e536416549e9b1aa137fc69204e65eb0c009fe51 SHA256 (gcc-nocheck-fixincludes.patch) = 97f78d8c57e28cb8cc5c38f637783187b52ee66709c0cd22d083270aa7e5c05c SHA256 (gcc-aarch64-dirs.patch) = 7f6869e18f5c9543f1569e30b9a8ec9713bd2a30e2326974925d2b75201c6ec7 diff --git a/gcc/Pkgfile b/gcc/Pkgfile index fbc1ce7..1bc1b9f 100644 --- a/gcc/Pkgfile +++ b/gcc/Pkgfile @@ -5,7 +5,7 @@ # Depends on: zlib libmpc name=gcc -version=7.3.0 +version=7.4.0 release=1 source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-$version/$name-$version.tar.xz \ $name-nocheck-fixincludes.patch $name-aarch64-dirs.patch) -- 2.26.2 From 5e5505464e4afd25f49753e76f57b205b6c9569a Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Fri, 18 Jan 2019 00:11:08 +0100 Subject: [PATCH 14/16] util-linux: updated to 2.33.1 --- util-linux/.signature | 6 +++--- util-linux/Pkgfile | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/util-linux/.signature b/util-linux/.signature index 9857f8e..cd465b7 100644 --- a/util-linux/.signature +++ b/util-linux/.signature @@ -1,5 +1,5 @@ untrusted comment: verify with /etc/ports/core-arm64.pub -RWSKslkvIwb+2UIM5tE+fGL+diOwK9VWbTP8gL6eR9qArgMzpadE81Ry2s8kKyks4Mb/lMuuQzrdvM6mqmyvBdLHDi5+9aowFQw= -SHA256 (Pkgfile) = 311d502c7379c80d844ccf63a60808a726982e74f5ce14cb0e7d3d43dccce422 +RWSKslkvIwb+2Xi+mvnpcc3GhKkSIVVBWrsukRU65IKbmnbQZ5bVhZlRupISeWJaNf9JzpNDhTZh6+l/8pxBXfmVetELFuceMgQ= +SHA256 (Pkgfile) = 275ed1d9a64cde2198cfe12ec9ca2b039c11e5d415712b51df2d2e025331d79d SHA256 (.footprint) = 4022f62de659f8fde15fc2c74a9d95b8a4bbfd7efc3d89242393acfd03a62435 -SHA256 (util-linux-2.33.tar.xz) = f261b9d73c35bfeeea04d26941ac47ee1df937bd3b0583e748217c1ea423658a +SHA256 (util-linux-2.33.1.tar.xz) = c14bd9f3b6e1792b90db87696e87ec643f9d63efa0a424f092a5a6b2f2dbef21 diff --git a/util-linux/Pkgfile b/util-linux/Pkgfile index 2e9755c..8334f1d 100644 --- a/util-linux/Pkgfile +++ b/util-linux/Pkgfile @@ -5,7 +5,7 @@ # Depends on: eudev ncurses zlib name=util-linux -version=2.33 +version=2.33.1 release=1 source=(https://www.kernel.org/pub/linux/utils/$name/v${version:0:4}/$name-$version.tar.xz) -- 2.26.2 From 70b104cd84b6518d4783bb32eeaac2f1edbdf188 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Tue, 26 Feb 2019 05:21:58 +0100 Subject: [PATCH 15/16] filesystem: synced with upstream release 4. Updated shm sticky bit and added kvm in group --- filesystem/.footprint | 2 +- filesystem/.signature | 8 ++++---- filesystem/Pkgfile | 5 +++-- filesystem/group | 1 + 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/filesystem/.footprint b/filesystem/.footprint index dd55c85..88e8f8f 100644 --- a/filesystem/.footprint +++ b/filesystem/.footprint @@ -3,7 +3,7 @@ drwxr-xr-x root/root boot/ drwxr-xr-x root/root dev/ crw------- root/root dev/console (5, 1) drwxr-xr-x root/root dev/pts/ -drwxr-xr-x root/root dev/shm/ +drwxrwxrwt root/root dev/shm/ drwxr-xr-x root/root etc/ -rw-r--r-- root/root etc/fstab -rw-r--r-- root/root etc/group diff --git a/filesystem/.signature b/filesystem/.signature index 1f1e43c..6368951 100644 --- a/filesystem/.signature +++ b/filesystem/.signature @@ -1,11 +1,11 @@ untrusted comment: verify with /etc/ports/core-arm64.pub -RWSKslkvIwb+2Ufybr+QYShJlOoqO0UHvla6l/+iKT/NrzD4mQ5gfSXoNicZs/gEAaiqvZk1UHuLo5uAkqR29QxQWQMKSnio4A4= -SHA256 (Pkgfile) = 87d89d8b8ef7f03e312d227095f6ea06a6dd03cacbe30b4bd6e38f4b750fdbb3 -SHA256 (.footprint) = 63a0c3f368866267abe10cef671ad7bb271546fcefa5896b6ff13853d6b16802 +RWSKslkvIwb+2ctBdxvViIjfCwKBCwY1OHkZNMz18dXj4GBwnjXz6mz0MWu6ds9ql2s45nNa5mwopQq3ZxpI5djORDkqRopC9AQ= +SHA256 (Pkgfile) = 1d442c4e0247121e8ac6e7db504d42cc6d0cb65cebce36e8198ddc371f88719f +SHA256 (.footprint) = 71e16dd60d5918bb5d50a6adf37048ef35f0d3d2b1d1f3e5f4bbfb9ce22841cd SHA256 (issue) = 046b10d8ee26d0203ed301913653a31ada287a813e80c2e321bcdeae8137f301 SHA256 (motd) = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 SHA256 (shells) = f5e8838cb33249bd0ab3a169097bcc411cfb1b37153f268e6655758942e46656 -SHA256 (group) = 2588c227b527f65a31df450e8093eaba65b6cf8a54af63110c29017c660e39d1 +SHA256 (group) = 6f6722ba87afb52000d0f51bd58716e2912c466d043a86f436bc7b2874530476 SHA256 (passwd) = 0c1352f12669270fd7987be8cf06f21917c8063773d9e7a00ee7c9f030a4f93a SHA256 (shadow) = 6c497de1ad43bb6ca95f98ca27dfa652b2072902c862fb5d393356997f921b56 SHA256 (securetty) = 6f94828d9185fbffe81c41f76cd1fdba6b0058022bba02dd90be5362996aa0f5 diff --git a/filesystem/Pkgfile b/filesystem/Pkgfile index c661539..74e2daa 100644 --- a/filesystem/Pkgfile +++ b/filesystem/Pkgfile @@ -5,7 +5,7 @@ name=filesystem version=3.4 -release=2 +release=4 source=(issue motd shells group passwd shadow securetty fstab mime.types) build() { @@ -14,7 +14,7 @@ build() { install -d $PKG/sbin install -d $PKG/boot install -d $PKG/dev - install -d $PKG/dev/{pts,shm} + install -d $PKG/dev/pts install -d $PKG/proc install -d $PKG/sys install -d $PKG/etc @@ -51,6 +51,7 @@ build() { install -d -m 1777 $PKG/var/lock install -d -m 1777 $PKG/var/spool/mail install -d -m 1777 $PKG/var/tmp + install -d -m 1777 $PKG/dev/shm # /dev mknod $PKG/dev/console c 5 1 diff --git a/filesystem/group b/filesystem/group index a0a42c3..a69f97d 100644 --- a/filesystem/group +++ b/filesystem/group @@ -21,6 +21,7 @@ tape::19: scanner::20: cdrom::21: input::22: +kvm::23: nobody::99: messagebus::81: users::100: -- 2.26.2 From a1c08238dd32a77f5f5d6f7e455ea570f79ab0cb Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Tue, 12 Mar 2019 06:38:06 +0100 Subject: [PATCH 16/16] openssl: updated to 1.0.2r --- openssl/.footprint | 1 + openssl/.signature | 8 ++++---- openssl/Pkgfile | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/openssl/.footprint b/openssl/.footprint index ebed12a..bad37dc 100644 --- a/openssl/.footprint +++ b/openssl/.footprint @@ -1653,6 +1653,7 @@ lrwxrwxrwx root/root usr/share/man/man3/X509_check_email.3ssl.gz -> X509_check_h lrwxrwxrwx root/root usr/share/man/man3/X509_check_ip.3ssl.gz -> X509_check_host.3ssl.gz lrwxrwxrwx root/root usr/share/man/man3/X509_check_ip_asc.3ssl.gz -> X509_check_host.3ssl.gz -rw-r--r-- root/root usr/share/man/man3/X509_check_private_key.3ssl.gz +-rw-r--r-- root/root usr/share/man/man3/X509_cmp_time.3ssl.gz lrwxrwxrwx root/root usr/share/man/man3/X509_free.3ssl.gz -> X509_new.3ssl.gz -rw-r--r-- root/root usr/share/man/man3/X509_new.3ssl.gz -rw-r--r-- root/root usr/share/man/man3/X509_verify_cert.3ssl.gz diff --git a/openssl/.signature b/openssl/.signature index b886cab..e4dac1a 100644 --- a/openssl/.signature +++ b/openssl/.signature @@ -1,6 +1,6 @@ untrusted comment: verify with /etc/ports/core-arm64.pub -RWSKslkvIwb+2WIX9/wmCXS27hZB6FZEyR9hJsnnlOXaVagfD5anGGqOV+BK3H287m/MQDqCLBfL0CHL1NrZvYIbsPJU1OyP7Q4= -SHA256 (Pkgfile) = 11dafcd31b941b9b5fc6959e74b5e194ca3fa99e29f8e6fe852753f9a53fcb2a -SHA256 (.footprint) = 07476111fb5b433bc11307ea18932c584bcddfd4ba84fc04df281db39d8a2bee -SHA256 (openssl-1.0.2q.tar.gz) = 5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684 +RWSKslkvIwb+2TVOUxHUBiDj2f4pI7DqS9nSd/DOpNtl9pXUgM4gw1rR3AWvuLL099bB6lumI1jshWkBNdA2s1XX7BWpun7ISw8= +SHA256 (Pkgfile) = 9532b02921ad41b3f350dcd0ec8e8759c0d24e5ad9d59d542bc6d66e2996502b +SHA256 (.footprint) = 8f5769fb695c815555057b54dfd6a9a579b69d7f9a0e572236fb1812a4aa180f +SHA256 (openssl-1.0.2r.tar.gz) = ae51d08bba8a83958e894946f15303ff894d75c2b8bbd44a852b64e3fe11d0d6 SHA256 (mksslcert.sh) = d01cfd061b792f4f7444429582c5c9e83aaa7fc63cafd05669fd3f2970dff779 diff --git a/openssl/Pkgfile b/openssl/Pkgfile index 8a9e897..ae97300 100644 --- a/openssl/Pkgfile +++ b/openssl/Pkgfile @@ -4,7 +4,7 @@ # Arch Maintainer: CRUX-ARM System Team, devel at crux-arm dot nu name=openssl -version=1.0.2q +version=1.0.2r release=1 source=(http://www.openssl.org/source/$name-$version.tar.gz \ mksslcert.sh) -- 2.26.2