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""> 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 <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. </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:
(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.