On Fri, Nov 16, 2018 at 12:04:36AM +0100, Bruno Haible wrote: > Hi Richard, > > > After upgrading to Fedora 29, the glibc-langpack-fr locale is no > > longer installed by default. This causes many tests to fail silently: > > > > ./gnulib/tests/test-suite.log:FAIL: test-btowc1.sh > > ./gnulib/tests/test-suite.log:FAIL: test-btowc2.sh > > ./gnulib/tests/test-suite.log:FAIL: test-c-strcase.sh > > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc1.sh > > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc2.sh > > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc3.sh > > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc4.sh > > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs1.sh > > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs2.sh > > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs3.sh > > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs4.sh > > ./gnulib/tests/test-suite.log:FAIL: test-setlocale1.sh > > ./gnulib/tests/test-suite.log:FAIL: test-wcrtomb.sh > > > > The failures are completely silent. It seems as if about > > 6 months ago it used to print an error message: > > > > Skipping test: no traditional french locale is installed > > > > But for some reason that is no longer printed: > > > > $ LC_ALL=fr_FR ./test-btowc 1 > > $ echo $? > > 1 > > I cannot reproduce this. Just installed a Fedora 29, configured and > ran a gnulib testdir created through > $ ./gnulib-tool --create-testdir --dir=../testdir-posix --with-tests > --single-configure `./posix-modules` > and all tests pass, including these that you listed. > > Can you provide these infos? > > $ yum list --installed | grep glibc-langpack-fr
$ yum list --installed | grep glibc-langpack glibc-langpack-en.x86_64 2.28-17.fc29 @updates glibc-langpack-fr.x86_64 2.28-17.fc29 @updates glibc-langpack-ja.x86_64 2.28-17.fc29 @updates glibc-langpack-tr.x86_64 2.28-17.fc29 @updates glibc-langpack-zh.x86_64 2.28-17.fc29 @updates These were installed on the machine (to fix the tests). I have uninstalled glibc-langpack-{fr,ja,tr,zh} and the tests are silently failing again. After uninstallation: $ yum list --installed | grep glibc-langpack glibc-langpack-en.x86_64 2.28-17.fc29 @updates > Expected: empty > > $ locale -a | grep ^fr_FR > > Expected: > fr_FR > fr_FR@euro > fr_FR.iso88591 > fr_FR.iso88591@euro > fr_FR.utf8 There is _no_ output from the above command. In fact the full locale -a output is: C C.utf8 en_AG en_AU en_AU.utf8 en_BW en_BW.utf8 en_CA en_CA.utf8 en_DK en_DK.utf8 en_GB en_GB.iso885915 en_GB.utf8 en_HK en_HK.utf8 en_IE en_IE@euro en_IE.utf8 en_IL en_IN en_NG en_NZ en_NZ.utf8 en_PH en_PH.utf8 en_SC.utf8 en_SG en_SG.utf8 en_US en_US.iso885915 en_US.utf8 en_ZA en_ZA.utf8 en_ZM en_ZW en_ZW.utf8 POSIX > $ grep LOCALE_FR config.status > > S["LOCALE_FR_UTF8"]="fr_FR.UTF-8" > S["LOCALE_FR"]="fr_FR" Since I'm using gnulib from libguestfs, here's what's in the libguestfs config.status: $ grep LOCALE_FR config.status S["LOCALE_FR"]="fr_FR" S["LOCALE_FR_UTF8"]="fr_FR.UTF-8" > $ ldd test-btowc > > Expected: > linux-vdso.so.1 > libc.so.6 => /lib64/libc.so.6 > /lib64/ld-linux-x86-64.so.2 $ ldd test-btowc linux-vdso.so.1 (0x00007ffe6fdcf000) libc.so.6 => /lib64/libc.so.6 (0x00007f8d5402f000) /lib64/ld-linux-x86-64.so.2 (0x00007f8d54225000) > $ LC_ALL=fr_FR strace ./test-btowc 1 Attached as ‘strace.log’. > $ LC_ALL=fr_FR ltrace ./test-btowc 1 Just: +++ exited (status 1) +++ Is my ltrace broken? > And of course the GCC command line options and relevant environment > variables that you used during the configure step. export CFLAGS="$(rpm --eval '%{optflags}')" export CXXFLAGS="$(rpm --eval '%{optflags}')" export LDFLAGS="$(rpm --eval '%{__global_ldflags}')" ./autogen.sh \ --prefix /usr \ --libdir /usr/lib64 \ --disable-static \ --with-default-backend=libvirt \ --with-extra="local,libvirt" \ --enable-werror \ --disable-golang \ --with-gtk=2 \ -C The CFLAGS etc expand to: CFLAGS="-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection" LDFLAGS="-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld" Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/
execve("./test-btowc", ["./test-btowc", "1"], 0x7ffd2453c778 /* 62 vars */) = 0 brk(NULL) = 0x563f0be82000 arch_prctl(0x3001 /* ARCH_??? */, 0x7ffd6bada7d0) = -1 EINVAL (Invalid argument) access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=165199, ...}) = 0 mmap(NULL, 165199, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f494c7b3000 close(3) = 0 openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 E\2\0\0\0\0\0"..., 832) = 832 lseek(3, 792, SEEK_SET) = 792 read(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\206UJ\207\352\2651YC\35_O\220\306K\215"..., 68) = 68 fstat(3, {st_mode=S_IFREG|0755, st_size=2786376, ...}) = 0 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f494c7b1000 lseek(3, 792, SEEK_SET) = 792 read(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\206UJ\207\352\2651YC\35_O\220\306K\215"..., 68) = 68 lseek(3, 864, SEEK_SET) = 864 read(3, "\4\0\0\0\20\0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0", 32) = 32 mmap(NULL, 1857568, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f494c5eb000 mprotect(0x7f494c60d000, 1679360, PROT_NONE) = 0 mmap(0x7f494c60d000, 1363968, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7f494c60d000 mmap(0x7f494c75a000, 311296, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16f000) = 0x7f494c75a000 mmap(0x7f494c7a7000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bb000) = 0x7f494c7a7000 mmap(0x7f494c7ad000, 14368, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f494c7ad000 close(3) = 0 arch_prctl(ARCH_SET_FS, 0x7f494c7b2500) = 0 mprotect(0x7f494c7a7000, 16384, PROT_READ) = 0 mprotect(0x563f0a9d0000, 4096, PROT_READ) = 0 mprotect(0x7f494c806000, 4096, PROT_READ) = 0 munmap(0x7f494c7b3000, 165199) = 0 openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) brk(NULL) = 0x563f0be82000 brk(0x563f0bea3000) = 0x563f0bea3000 brk(NULL) = 0x563f0bea3000 openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=2997, ...}) = 0 read(3, "# Locale name alias data base.\n#"..., 4096) = 2997 read(3, "", 4096) = 0 close(3) = 0 openat(AT_FDCWD, "/usr/lib/locale/fr_FR/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/lib/locale/fr/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) exit_group(1) = ? +++ exited with 1 +++