NetBSD Problem Report #55165

From paul@whooppee.com  Sat Apr 11 13:05:00 2020
Return-Path: <paul@whooppee.com>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 9468E1A921E
	for <gnats-bugs@gnats.NetBSD.org>; Sat, 11 Apr 2020 13:05:00 +0000 (UTC)
Message-Id: <20200411130328.99CB730F2C4@speedy.whooppee.com>
Date: Sat, 11 Apr 2020 06:03:28 -0700 (PDT)
From: paul@whooppee.com
Reply-To: paul@whooppee.com
To: gnats-bugs@NetBSD.org
Subject: libcrypto/t_ciphers:evp test case fails on macppc
X-Send-Pr-Version: 3.95

>Number:         55165
>Category:       port-macppc
>Synopsis:       libcrypto/t_ciphers:evp test case fails on macppc
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    port-macppc-maintainer
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Apr 11 13:10:01 +0000 2020
>Closed-Date:    Sun Apr 12 00:06:29 +0000 2020
>Last-Modified:  Sun Apr 12 00:06:29 +0000 2020
>Originator:     Paul Goyette
>Release:        NetBSD 9.99.52
>Organization:
+--------------------+--------------------------+-----------------------+
| Paul Goyette       | PGP Key fingerprint:     | E-mail addresses:     |
| (Retired)          | FA29 0E3B 35AF E8AE 6651 | paul@whooppee.com     |
| Software Developer | 0786 F758 55DE 53BA 7731 | pgoyette@netbsd.org   |
+--------------------+--------------------------+-----------------------+
>Environment:


System: NetBSD 9.99.55 (GETHSEMANE) #36: Tue Apr 7 13:34:10 CEST 2020 martin@seven-days-to-the-wolves.aprisoft.de:/work/src/sys/arch/macppc/compile/GETHSEMANE
Architecture: macppc
Machine: macppc
>Description:
The libcrypto/t_ciphers:evp test case reliably fails on macppc.  Martin
indicates that "openssl powerpc cpu type detection is wrong somehow."

The failure results in the following back-trace (from the core dump of
the h_evp_test helper program):

Core was generated by `h_evp_test'.
Program terminated with signal SIGILL, Illegal instruction.
#0  0xfdd5a160 in SHA3_absorb () from /usr/lib/libcrypto.so.14
(gdb) bt
#0  0xfdd5a160 in SHA3_absorb () from /usr/lib/libcrypto.so.14
#1  0xfdd4c3f8 in sha3_final (evp_ctx=<optimized out>,
   md=0xfd884000 "\375\351x|\377\377\377\377")
   at $SRC/crypto/external/bsd/openssl/dist/crypto/evp/m_sha3.c:123
#2  0xfdcf54d4 in EVP_DigestFinal_ex (ctx=0xfdb8c020, md=<optimized out>,
   size=0xffffd860)
   at $SRC/crypto/external/bsd/openssl/dist/crypto/evp/digest.c:174
#3  0xfdcf5584 in EVP_DigestFinal (ctx=ctx@entry=0xfdb8c020,
   md=md@entry=0xfd884000 "\375\351x|\377\377\377\377",
   size=size@entry=0xffffd860)
   at $SRC/crypto/external/bsd/openssl/dist/crypto/evp/digest.c:163
#4  0x01807398 in digest_test_run (t=0xfd8b0000)
   at $SRC/crypto/external/bsd/openssl/dist/test/evp_test.c:434
#5  0x01804f44 in run_test (t=0xfd8b0000)
   at $SRC/crypto/external/bsd/openssl/dist/test/evp_test.c:2546
#6  run_file_tests (i=<optimized out>)
   at $SRC/crypto/external/bsd/openssl/dist/test/evp_test.c:2701
#7  0x01809940 in run_tests (test_prog_name=<optimized out>)
   at $SRC/crypto/external/bsd/openssl/dist/test/testutil/driver.c:239
#8  0x0180fc08 in main (argc=<optimized out>, argv=0xffffe9b4)
   at $SRC/crypto/external/bsd/openssl/dist/test/testutil/main.c:51


>How-To-Repeat:
cd /usr/tests/crypto
atf-run t_libcrypto

>Fix:
unknown


>Release-Note:

>Audit-Trail:
From: Martin Husemann <martin@netbsd.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: port-macppc/55165: libcrypto/t_ciphers:evp test case fails on
 macppc
Date: Sat, 11 Apr 2020 18:30:53 +0000

 The SIGILL is caused here:

 (gdb) x/16i 0xfdd5a150
    0xfdd5a150 <SHA3_absorb+112>:        li      r0,-1
    0xfdd5a154 <SHA3_absorb+116>:        stw     r8,236(r1)
    0xfdd5a158 <SHA3_absorb+120>:        mtvrsave r0
    0xfdd5a15c <SHA3_absorb+124>:        li      r11,16
 => 0xfdd5a160 <SHA3_absorb+128>:        lxvw4x  vs32,0,r3
    0xfdd5a164 <SHA3_absorb+132>:        li      r10,32

From: Christos Zoulas <christos@zoulas.com>
To: gnats-bugs@netbsd.org
Cc: port-macppc-maintainer@netbsd.org,
 gnats-admin@netbsd.org,
 netbsd-bugs@netbsd.org,
 paul@whooppee.com
Subject: Re: port-macppc/55165: libcrypto/t_ciphers:evp test case fails on
 macppc
Date: Sat, 11 Apr 2020 14:50:37 -0400

 --Apple-Mail=_5C5EB6C2-8F76-441D-A51A-E9E7682C76E5
 Content-Type: multipart/alternative;
 	boundary="Apple-Mail=_22336FBA-FD0F-4B08-BE8A-316C69FB40EE"


 --Apple-Mail=_22336FBA-FD0F-4B08-BE8A-316C69FB40EE
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/plain;
 	charset=us-ascii

 VSX Vector Load Instructions: lxvb16x lxvd2x lxv lxvx lxvh8x lxvw4x


 According to wikipedia =
 https://en.wikipedia.org/wiki/AltiVec#VSX_(Vector_Scalar_Extension) =
 <https://en.wikipedia.org/wiki/AltiVec#VSX_(Vector_Scalar_Extension)>
 only POWER7 and above has it. I think macppc is too old for that.
 We could disable the assembly code that uses VSX:

 ./crypto/chacha/asm/chacha-ppc.pl
 ./crypto/sha/asm/keccak1600p8-ppc.pl
 ./crypto/sha/asm/sha512p8-ppc.pl

 But a better solution is to check for SIGILL and switch dynamically.
 You can file a PR with the OpenSSL folks, but I doubt that they would =
 fix it.

 christos


 --Apple-Mail=_22336FBA-FD0F-4B08-BE8A-316C69FB40EE
 Content-Transfer-Encoding: quoted-printable
 Content-Type: text/html;
 	charset=us-ascii

 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
 charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
 -webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><span=
  class=3D"underline" style=3D"font-family: Verdana, Geneva, sans-serif; =
 font-size: 13.3333px; font-variant-ligatures: normal; orphans: 2; =
 widows: 2;">VSX Vector Load Instructions:</span><span =
 style=3D"font-family: Verdana, Geneva, sans-serif; font-size: 13.3333px; =
 font-variant-ligatures: normal; orphans: 2; widows: 2;" =
 class=3D"">&nbsp;lxvb16x lxvd2x lxv lxvx lxvh8x lxvw4x</span><div =
 class=3D""><div style=3D"orphans: 2; widows: 2;" class=3D""><br =
 class=3D""></div><div style=3D"orphans: 2; widows: 2;" class=3D""><br =
 class=3D""></div><div style=3D"orphans: 2; widows: 2;" =
 class=3D"">According to wikipedia&nbsp;<a =
 href=3D"https://en.wikipedia.org/wiki/AltiVec#VSX_(Vector_Scalar_Extension=
 )" =
 class=3D"">https://en.wikipedia.org/wiki/AltiVec#VSX_(Vector_Scalar_Extens=
 ion)</a></div><div style=3D"orphans: 2; widows: 2;" class=3D"">only =
 POWER7 and above has it. I think macppc is too old for =
 that.&nbsp;</div><div style=3D"orphans: 2; widows: 2;" class=3D"">We =
 could disable the assembly code that uses VSX:</div><div style=3D"orphans:=
  2; widows: 2;" class=3D""><br class=3D""></div><div style=3D"orphans: =
 2; widows: 2;" class=3D"">./crypto/chacha/asm/chacha-ppc.pl</div><div =
 style=3D"orphans: 2; widows: 2;" =
 class=3D"">./crypto/sha/asm/keccak1600p8-ppc.pl</div><div =
 style=3D"orphans: 2; widows: 2;" =
 class=3D"">./crypto/sha/asm/sha512p8-ppc.pl</div><div class=3D""><br =
 class=3D""></div><div class=3D"">But a better solution is to check for =
 SIGILL and switch dynamically.</div><div class=3D"">You can file a PR =
 with the OpenSSL folks, but I doubt that they would fix it.</div><div =
 class=3D""><br class=3D""></div><div class=3D"">christos</div><div =
 class=3D""><div style=3D"orphans: 2; widows: 2;" class=3D""><br =
 class=3D""></div></div></div></body></html>=

 --Apple-Mail=_22336FBA-FD0F-4B08-BE8A-316C69FB40EE--

 --Apple-Mail=_5C5EB6C2-8F76-441D-A51A-E9E7682C76E5
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
 	filename=signature.asc
 Content-Type: application/pgp-signature;
 	name=signature.asc
 Content-Description: Message signed with OpenPGP

 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - http://gpgtools.org

 iF0EARECAB0WIQS+BJlbqPkO0MDBdsRxESqxbLM7OgUCXpIRfQAKCRBxESqxbLM7
 Oh32AKDPhmM0KnB9CnQ89zyrLOEWUHmGFgCg8U2tnPXxfi7JEkQfy4ejgWatRnI=
 =9LkK
 -----END PGP SIGNATURE-----

 --Apple-Mail=_5C5EB6C2-8F76-441D-A51A-E9E7682C76E5--

From: Paul Goyette <paul@whooppee.com>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: port-macppc/55165 : CVS commit: src/crypto/external/bsd/openssl
 (fwd)
Date: Sat, 11 Apr 2020 16:59:34 -0700 (PDT)

 Logging commit to audit trail


 ---------- Forwarded message ----------
 Date: Sat, 11 Apr 2020 18:41:06 -0400
 From: Christos Zoulas <christos@netbsd.org>
 Reply-To: source-changes-d@NetBSD.org
 To: source-changes@NetBSD.org
 Subject: CVS commit: src/crypto/external/bsd/openssl

 Module Name:	src
 Committed By:	christos
 Date:		Sat Apr 11 22:41:06 UTC 2020

 Modified Files:
  	src/crypto/external/bsd/openssl/dist/crypto: ppccap.c
  	src/crypto/external/bsd/openssl/dist/crypto/sha: keccak1600.c
  	src/crypto/external/bsd/openssl/dist/crypto/sha/asm:
  	    keccak1600-ppc64.pl keccak1600p8-ppc.pl
  	src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc:
  	    keccak1600p8-ppc.S sha.inc
  	src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc64:
  	    keccak1600-ppc64.S keccak1600p8-ppc.S

 Log Message:
 We can only use the SHA3 assembly routines if we have VSX


 To generate a diff of this commit:
 cvs rdiff -u -r1.12 -r1.13 \
      src/crypto/external/bsd/openssl/dist/crypto/ppccap.c
 cvs rdiff -u -r1.1.1.2 -r1.2 \
      src/crypto/external/bsd/openssl/dist/crypto/sha/keccak1600.c
 cvs rdiff -u -r1.1.1.2 -r1.2 \
      src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600-ppc64.pl \
      src/crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600p8-ppc.pl
 cvs rdiff -u -r1.1 -r1.2 \
      src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/keccak1600p8-ppc.S
 cvs rdiff -u -r1.2 -r1.3 \
      src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/sha.inc
 cvs rdiff -u -r1.1 -r1.2 \
      src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc64/keccak1600-ppc64.S \
      src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc64/keccak1600p8-ppc.S

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.


 !DSPAM:5e9247c7186591677252951!

State-Changed-From-To: open->closed
State-Changed-By: pgoyette@NetBSD.org
State-Changed-When: Sun, 12 Apr 2020 00:06:29 +0000
State-Changed-Why:
Fix committed by christos@


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.