[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#825865: marked as done (glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c)



Your message dated Mon, 15 Aug 2016 16:28:45 +0000
with message-id <E1bZKkn-0007Dx-BU@franck.debian.org>
and subject line Bug#825865: fixed in glibc 2.24-0experimental1
has caused the Debian Bug report #825865,
regarding glibc: Testsuite failure on sparc64 due to unaligned access in wcsmbs/test-wcsncmp.c
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
825865: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=825865
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Source: glibc
Version: 2.22-9
Severity: normal
Tags: patch
User: debian-sparc@lists.debian.org
Usertags: sparc64

Hi!

glibc currently fails to build from source on sparc64 due at least one test
in the testsuite failing which is due to a bus error (unaligned access):

----------
XFAIL: wcsmbs/test-wcsncmp
original exit status 1
			wcsncmp	simple_wcsncmp	stupid_wcsncmp
Didn't expect signal from child: got `Bus error'
----------

I have notified glibc upstream of these issue - not in a bug report but by
talking to one of the developers and I have now a patch that fixes the
problem [1].

This patch applies cleanly to glibc 2.22-9 in Debian unstable when dropping
the Changelog part from the upstream patch, so I'm attaching a patch with
this part removed as a suggestion for what to include in the Debian package.

Please note: I was still getting some spurious test failures in rt/tst-mqueue5
due to timeouts. But those could also be a local issue which needs some further
investiogation (might be related to TIMEOUTFACTOR in debian/build.mk).

Cheers,
Adrian

> [1] https://sourceware.org/ml/libc-alpha/2016-05/msg00710.html

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
Description: Fix string/test-strncmp.c to work with wide chars.
 wcsmbs/test-wcsncmp.c (i.e. string/test-strncmp with defined WIDE)
 triggers a signal in aligment-strict platforms, like sparc*-*-*.
 .
 This patch fixes string/test-strncmp.c to work properly when the test is
 performed on arrays of wide chars.  This includes passing align1 and
 align2 to do_test as bytes, and to use more meaningful values for middle
 chars and large chars.
 .

--- glibc-2.22.orig/string/test-strncmp.c
+++ glibc-2.22/string/test-strncmp.c
@@ -38,6 +38,8 @@
 # define CHAR wchar_t
 # define UCHAR wchar_t
 # define CHARBYTES 4
+# define MIDCHAR 0x7fffffff
+# define LARGECHAR 0xfffffffe
 # define CHAR__MAX WCHAR_MAX
 # define CHAR__MIN WCHAR_MIN
 
@@ -88,6 +90,8 @@ stupid_wcsncmp (const CHAR *s1, const CH
 # define CHAR char
 # define UCHAR unsigned char
 # define CHARBYTES 1
+# define MIDCHAR 0x7f
+# define LARGECHAR 0xfe
 # define CHAR__MAX CHAR_MAX
 # define CHAR__MIN CHAR_MIN
 
@@ -414,56 +418,56 @@ test_main (void)
 
   for (i =0; i < 16; ++i)
     {
-      do_test (0, 0, 8, i, 127, 0);
-      do_test (0, 0, 8, i, 127, -1);
-      do_test (0, 0, 8, i, 127, 1);
-      do_test (i, i, 8, i, 127, 0);
-      do_test (i, i, 8, i, 127, 1);
-      do_test (i, i, 8, i, 127, -1);
-      do_test (i, 2 * i, 8, i, 127, 0);
-      do_test (2 * i, i, 8, i, 127, 1);
-      do_test (i, 3 * i, 8, i, 127, -1);
-      do_test (0, 0, 8, i, 255, 0);
-      do_test (0, 0, 8, i, 255, -1);
-      do_test (0, 0, 8, i, 255, 1);
-      do_test (i, i, 8, i, 255, 0);
-      do_test (i, i, 8, i, 255, 1);
-      do_test (i, i, 8, i, 255, -1);
-      do_test (i, 2 * i, 8, i, 255, 0);
-      do_test (2 * i, i, 8, i, 255, 1);
-      do_test (i, 3 * i, 8, i, 255, -1);
+      do_test (0, 0, 8, i, MIDCHAR, 0);
+      do_test (0, 0, 8, i, MIDCHAR, -1);
+      do_test (0, 0, 8, i, MIDCHAR, 1);
+      do_test (CHARBYTES * i, CHARBYTES * i, 8, i, MIDCHAR, 0);
+      do_test (CHARBYTES * i, CHARBYTES * i, 8, i, MIDCHAR, 1);
+      do_test (CHARBYTES * i, CHARBYTES * i, 8, i, MIDCHAR, -1);
+      do_test (CHARBYTES * i, 2 * CHARBYTES * i, 8, i, MIDCHAR, 0);
+      do_test (2 * CHARBYTES * i, CHARBYTES * i, 8, i, MIDCHAR, 1);
+      do_test (CHARBYTES * i, 3 * CHARBYTES * i, 8, i, MIDCHAR, -1);
+      do_test (0, 0, 8, i, LARGECHAR, 0);
+      do_test (0, 0, 8, i, LARGECHAR, -1);
+      do_test (0, 0, 8, i, LARGECHAR, 1);
+      do_test (CHARBYTES * i, CHARBYTES * i, 8, i, LARGECHAR, 0);
+      do_test (CHARBYTES * i, CHARBYTES * i, 8, i, LARGECHAR, 1);
+      do_test (CHARBYTES * i, CHARBYTES * i, 8, i, LARGECHAR, -1);
+      do_test (CHARBYTES * i, 2 * CHARBYTES * i, 8, i, LARGECHAR, 0);
+      do_test (2 * CHARBYTES * i, CHARBYTES * i, 8, i, LARGECHAR, 1);
+      do_test (CHARBYTES * i, 3 * CHARBYTES * i, 8, i, LARGECHAR, -1);
     }
 
   for (i = 1; i < 8; ++i)
     {
-      do_test (0, 0, 8 << i, 16 << i, 127, 0);
-      do_test (0, 0, 8 << i, 16 << i, 127, 1);
-      do_test (0, 0, 8 << i, 16 << i, 127, -1);
-      do_test (0, 0, 8 << i, 16 << i, 255, 0);
-      do_test (0, 0, 8 << i, 16 << i, 255, 1);
-      do_test (0, 0, 8 << i, 16 << i, 255, -1);
-      do_test (8 - i, 2 * i, 8 << i, 16 << i, 127, 0);
-      do_test (8 - i, 2 * i, 8 << i, 16 << i, 127, 1);
-      do_test (2 * i, i, 8 << i, 16 << i, 255, 0);
-      do_test (2 * i, i, 8 << i, 16 << i, 255, 1);
-    }
-
-  do_test_limit (0, 0, 0, 0, 127, 0);
-  do_test_limit (4, 0, 21, 20, 127, 0);
-  do_test_limit (0, 4, 21, 20, 127, 0);
-  do_test_limit (8, 0, 25, 24, 127, 0);
-  do_test_limit (0, 8, 25, 24, 127, 0);
+      do_test (0, 0, 8 << i, 16 << i, MIDCHAR, 0);
+      do_test (0, 0, 8 << i, 16 << i, MIDCHAR, 1);
+      do_test (0, 0, 8 << i, 16 << i, MIDCHAR, -1);
+      do_test (0, 0, 8 << i, 16 << i, LARGECHAR, 0);
+      do_test (0, 0, 8 << i, 16 << i, LARGECHAR, 1);
+      do_test (0, 0, 8 << i, 16 << i, LARGECHAR, -1);
+      do_test (CHARBYTES * (8 - i), 2 * CHARBYTES * i, 8 << i, 16 << i, MIDCHAR, 0);
+      do_test (CHARBYTES * (8 - i), 2 * CHARBYTES * i, 8 << i, 16 << i, MIDCHAR, 1);
+      do_test (2 * CHARBYTES * i, CHARBYTES * i, 8 << i, 16 << i, LARGECHAR, 0);
+      do_test (2 * CHARBYTES * i, CHARBYTES * i, 8 << i, 16 << i, LARGECHAR, 1);
+    }
+
+  do_test_limit (0, 0, 0, 0, MIDCHAR, 0);
+  do_test_limit (CHARBYTES * 4, 0, 21, 20, MIDCHAR, 0);
+  do_test_limit (0, CHARBYTES * 4, 21, 20, MIDCHAR, 0);
+  do_test_limit (CHARBYTES * 8, 0, 25, 24, MIDCHAR, 0);
+  do_test_limit (0, CHARBYTES * 8, 25, 24, MIDCHAR, 0);
 
   for (i = 0; i < 8; ++i)
     {
-      do_test_limit (0, 0, 17 - i, 16 - i, 127, 0);
-      do_test_limit (0, 0, 17 - i, 16 - i, 255, 0);
-      do_test_limit (0, 0, 15 - i, 16 - i, 127, 0);
-      do_test_limit (0, 0, 15 - i, 16 - i, 127, 1);
-      do_test_limit (0, 0, 15 - i, 16 - i, 127, -1);
-      do_test_limit (0, 0, 15 - i, 16 - i, 255, 0);
-      do_test_limit (0, 0, 15 - i, 16 - i, 255, 1);
-      do_test_limit (0, 0, 15 - i, 16 - i, 255, -1);
+      do_test_limit (0, 0, 17 - i, 16 - i, MIDCHAR, 0);
+      do_test_limit (0, 0, 17 - i, 16 - i, LARGECHAR, 0);
+      do_test_limit (0, 0, 15 - i, 16 - i, MIDCHAR, 0);
+      do_test_limit (0, 0, 15 - i, 16 - i, MIDCHAR, 1);
+      do_test_limit (0, 0, 15 - i, 16 - i, MIDCHAR, -1);
+      do_test_limit (0, 0, 15 - i, 16 - i, LARGECHAR, 0);
+      do_test_limit (0, 0, 15 - i, 16 - i, LARGECHAR, 1);
+      do_test_limit (0, 0, 15 - i, 16 - i, LARGECHAR, -1);
     }
 
   do_random_tests ();

--- End Message ---
--- Begin Message ---
Source: glibc
Source-Version: 2.24-0experimental1

We believe that the bug you reported is fixed in the latest version of
glibc, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 825865@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Aurelien Jarno <aurel32@debian.org> (supplier of updated glibc package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Mon, 15 Aug 2016 16:55:38 +0200
Source: glibc
Binary: libc-bin libc-dev-bin libc-l10n glibc-doc glibc-source locales locales-all nscd multiarch-support libc6 libc6-dev libc6-dbg libc6-pic libc6-udeb libc6.1 libc6.1-dev libc6.1-dbg libc6.1-pic libc6.1-udeb libc0.3 libc0.3-dev libc0.3-dbg libc0.3-pic libc0.3-udeb libc0.1 libc0.1-dev libc0.1-dbg libc0.1-pic libc0.1-udeb libc6-i386 libc6-dev-i386 libc6-sparc libc6-dev-sparc libc6-sparc64 libc6-dev-sparc64 libc6-s390 libc6-dev-s390 libc6-amd64 libc6-dev-amd64 libc6-powerpc libc6-dev-powerpc libc6-ppc64 libc6-dev-ppc64 libc6-mips32 libc6-dev-mips32 libc6-mipsn32 libc6-dev-mipsn32 libc6-mips64 libc6-dev-mips64 libc0.1-i386 libc0.1-dev-i386 libc6-x32 libc6-dev-x32 libc6-xen libc0.3-xen libc6.1-alphaev67 libc0.1-i686 libc0.3-i686 libc6-i686
Architecture: source
Version: 2.24-0experimental1
Distribution: experimental
Urgency: medium
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Changed-By: Aurelien Jarno <aurel32@debian.org>
Description:
 glibc-doc  - GNU C Library: Documentation
 glibc-source - GNU C Library: sources
 libc-bin   - GNU C Library: Binaries
 libc-dev-bin - GNU C Library: Development binaries
 libc-l10n  - GNU C Library: localization files
 libc0.1    - GNU C Library: Shared libraries
 libc0.1-dbg - GNU C Library: detached debugging symbols
 libc0.1-dev - GNU C Library: Development Libraries and Header Files
 libc0.1-dev-i386 - GNU C Library: 32bit development libraries for AMD64
 libc0.1-i386 - GNU C Library: 32bit shared libraries for AMD64
 libc0.1-i686 - transitional dummy package
 libc0.1-pic - GNU C Library: PIC archive library
 libc0.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
 libc0.3    - GNU C Library: Shared libraries
 libc0.3-dbg - GNU C Library: detached debugging symbols
 libc0.3-dev - GNU C Library: Development Libraries and Header Files
 libc0.3-i686 - transitional dummy package
 libc0.3-pic - GNU C Library: PIC archive library
 libc0.3-udeb - GNU C Library: Shared libraries - udeb (udeb)
 libc0.3-xen - GNU C Library: Shared libraries [Xen version]
 libc6      - GNU C Library: Shared libraries
 libc6-amd64 - GNU C Library: 64bit Shared libraries for AMD64
 libc6-dbg  - GNU C Library: detached debugging symbols
 libc6-dev  - GNU C Library: Development Libraries and Header Files
 libc6-dev-amd64 - GNU C Library: 64bit Development Libraries for AMD64
 libc6-dev-i386 - GNU C Library: 32-bit development libraries for AMD64
 libc6-dev-mips32 - GNU C Library: o32 Development Libraries for MIPS
 libc6-dev-mips64 - GNU C Library: 64bit Development Libraries for MIPS64
 libc6-dev-mipsn32 - GNU C Library: n32 Development Libraries for MIPS64
 libc6-dev-powerpc - GNU C Library: 32bit powerpc development libraries for ppc64
 libc6-dev-ppc64 - GNU C Library: 64bit Development Libraries for PowerPC64
 libc6-dev-s390 - GNU C Library: 32bit Development Libraries for IBM zSeries
 libc6-dev-sparc - GNU C Library: 32bit Development Libraries for SPARC
 libc6-dev-sparc64 - GNU C Library: 64bit Development Libraries for UltraSPARC
 libc6-dev-x32 - GNU C Library: X32 ABI Development Libraries for AMD64
 libc6-i386 - GNU C Library: 32-bit shared libraries for AMD64
 libc6-i686 - transitional dummy package
 libc6-mips32 - GNU C Library: o32 Shared libraries for MIPS
 libc6-mips64 - GNU C Library: 64bit Shared libraries for MIPS64
 libc6-mipsn32 - GNU C Library: n32 Shared libraries for MIPS64
 libc6-pic  - GNU C Library: PIC archive library
 libc6-powerpc - GNU C Library: 32bit powerpc shared libraries for ppc64
 libc6-ppc64 - GNU C Library: 64bit Shared libraries for PowerPC64
 libc6-s390 - GNU C Library: 32bit Shared libraries for IBM zSeries
 libc6-sparc - GNU C Library: 32bit Shared libraries for SPARC
 libc6-sparc64 - GNU C Library: 64bit Shared libraries for UltraSPARC
 libc6-udeb - GNU C Library: Shared libraries - udeb (udeb)
 libc6-x32  - GNU C Library: X32 ABI Shared libraries for AMD64
 libc6-xen  - GNU C Library: Shared libraries [Xen version]
 libc6.1    - GNU C Library: Shared libraries
 libc6.1-alphaev67 - GNU C Library: Shared libraries (EV67 optimized)
 libc6.1-dbg - GNU C Library: detached debugging symbols
 libc6.1-dev - GNU C Library: Development Libraries and Header Files
 libc6.1-pic - GNU C Library: PIC archive library
 libc6.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
 locales    - GNU C Library: National Language (locale) data [support]
 locales-all - GNU C Library: Precompiled locale data
 multiarch-support - Transitional package to ensure multiarch compatibility
 nscd       - GNU C Library: Name Service Cache Daemon
Closes: 825865 834138
Changes:
 glibc (2.24-0experimental1) experimental; urgency=medium
 .
   [ Samuel Thibault ]
   * testsuite-xfail-debian.mk: Update with hurd-i386 non-regressions.
 .
   [ Aurelien Jarno ]
   * debian/patches/git-updates.diff: update from upstream stable branch:
     - debian/patches/powerpc/submitted-powerpc-ifunc-sel.diff: upstreamed.
     - debian/patches/sparc/submitted-sparc-fdim.diff: upstreamed.
   * debian/patches/sparc/cvs-test-strncmp.diff: new patch from upstream to
     fix wcsmbs/test-wcsncmp on architecture with strong alignment.  Closes:
     #825865.
   * debian/patches/testsuite-xfail-debian.mk: remove xfail-test-wcsncmp on
     sparc.
   * debian/sysdeps/{sparc,sparc64}.mk: force target to sparcv9-linux-gnu.
   * debian/patches/sparc/local-sparcv9-target.diff: drop, obsolete.
   * patches/hppa/local-stack-grows-up.diff: restore one hunk that has not been
     merged upstream from the 2.23 version.
   * patches/localedata/locale-C.diff: update to unicode 8.0.0, add missing
     categories, use the copy directive when possible.
   * debian/rules.d/build.mk: disable the C++ compiler when tests are disabled,
     based on a patch from Matthias Klose.  Closes: #834138.
   * rules.d/build.mk: test for DEB_BUILD_OPTIONS="nocheck" using filter
     instead of findstring.
   * patches/kfreebsd/local-sysdeps.diff: update to revision 6101 (from
     glibc-bsd).
Checksums-Sha1:
 d56ecc3eec308655f628f8de6ad03bb4862e54df 8333 glibc_2.24-0experimental1.dsc
 f4c2cd2278b7b1395ecdb66051daab857b6da929 907268 glibc_2.24-0experimental1.debian.tar.xz
Checksums-Sha256:
 38c47cf05697ab8b85e4bd980dea0b3c69c1ee2cacb027050cc7dedbc7c60b47 8333 glibc_2.24-0experimental1.dsc
 9cc5e10cd6c4705654bdc5c805f0f068fd106c45b6442f632d48de164eef7efa 907268 glibc_2.24-0experimental1.debian.tar.xz
Files:
 f1e698c7f1f0adf38f39d94cb2481d55 8333 libs required glibc_2.24-0experimental1.dsc
 46e795958ad92351748657d70f1dff47 907268 libs required glibc_2.24-0experimental1.debian.tar.xz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCgAGBQJXsdhMAAoJELqceAYd3Yyb25AQAItcrX8U3Y2tPtdZf3G8//oY
Hip3FH9XbAAHOUHQl0WjNxSpqKpaC9biEmoC9eQa+rYD7AIifhLAfN8TVg/D1jiJ
g+GAL+rV99G7CeF/atlUEhJuOkae71CKM40/Ns/12BD9/GgTLbQyIJSfxTBDtOmM
z30D45d1IWC1HWB6Mgpfah8RzPGOxcNjqUdKPy4eOW7EXBGNr8MiTnXXXj9alfqd
LboJDhKmvNCi0bRY+wfuYbAgFjfv3VTFy1vPB/c9P35J4VRO9C3H7iwNfpyOLDBm
qpDFEO6CyS5QqXYdx1RnTnNEVB+GNdpjlPbU0WIaedU+ZYT2mdwJ2cAQV+XcYVx5
er1JvExb61lkPUgRdHNxBEOQHsqZkmsthTIfZ4kODdGTZnItVgpmiVsRDF60alB4
JpNqM8PNg8Gre4e3QyV0TyMUsKYnQ2Owuqzy2jo41c3hhbLHsmGNawZUMWC6jv+n
0wuZcgRj+jRRUm1o0k2kRAAoSOTivIOXg4JiU0JMb3onjpr+PwvLT2HPRMwAncat
FCGGtmN8Yub2XBhubA1k722RwY7tZ6kNl9hL+xE8b1gJZkZ/qxsWxTwDQ7hAHNl6
FZWeeQ0JZcb5TDLdFrBsBc6fb62qeRXVDJvTPQFhjaeCXyFKy2pfzv+PTCBuHdDT
TQ6ks2g1OefB43hAdtRs
=pkiC
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: