[Pkg-javascript-devel] Bug#968681: nodejs: regresses in ppc64el ( node-create-hash, node-crypto-browserify, node-sha.js)
Gianfranco Costamagna
locutusofborg at debian.org
Wed Aug 19 20:09:33 BST 2020
Source: nodejs
Version: 12.18.2~dfsg-1
Severity: serious
Hello, looks like node-create-hask, node-crypto-browserify, node-sha.js have autopkgtests failures on ppc64el.
there might be an upstream patch according to Ubuntu bug [1] and v8 commits
https://ci.debian.net/data/autopkgtest/unstable/ppc64el/n/node-crypto-browserify/6740061/log.gz
https://ci.debian.net/data/autopkgtest/unstable/ppc64el/n/node-sha.js/6740057/log.gz
https://ci.debian.net/data/autopkgtest/unstable/ppc64el/n/node-create-hash/6738537/log.gz
the attached diff (based on upstream changes) might help in fixing the failures.
[1] https://bugs.launchpad.net/ubuntu/+source/node-create-hash/+bug/1887144
I just uploaded in Ubuntu, will see in 24h or so if the problem is fixed or not.
G.
-------------- next part --------------
diff -Nru nodejs-12.18.2~dfsg/debian/changelog nodejs-12.18.2~dfsg/debian/changelog
--- nodejs-12.18.2~dfsg/debian/changelog 2020-07-28 15:12:12.000000000 +0200
+++ nodejs-12.18.2~dfsg/debian/changelog 2020-08-19 20:47:23.000000000 +0200
@@ -1,3 +1,12 @@
+nodejs (12.18.2~dfsg-1ubuntu2) groovy; urgency=medium
+
+ * debian/patches/3f071e3.patch:
+ * debian/patches/1a9c676a141b32483b48884f8cc0330e64c8e17f.patch:
+ - cherry-pick two upstream changes in v8 to fix a testsuite failure on
+ ppc64el for some sha1 calculation errors (LP: #1887144)
+
+ -- Gianfranco Costamagna <locutusofborg at debian.org> Wed, 19 Aug 2020 20:47:23 +0200
+
nodejs (12.18.2~dfsg-1ubuntu1) groovy; urgency=medium
* Merge from Debian (LP: #1882185). Remaining changes:
diff -Nru nodejs-12.18.2~dfsg/debian/patches/1a9c676a141b32483b48884f8cc0330e64c8e17f.patch nodejs-12.18.2~dfsg/debian/patches/1a9c676a141b32483b48884f8cc0330e64c8e17f.patch
--- nodejs-12.18.2~dfsg/debian/patches/1a9c676a141b32483b48884f8cc0330e64c8e17f.patch 1970-01-01 01:00:00.000000000 +0100
+++ nodejs-12.18.2~dfsg/debian/patches/1a9c676a141b32483b48884f8cc0330e64c8e17f.patch 2020-08-19 20:47:23.000000000 +0200
@@ -0,0 +1,44 @@
+From 1a9c676a141b32483b48884f8cc0330e64c8e17f Mon Sep 17 00:00:00 2001
+From: Milad Farazmand <miladfar at ca.ibm.com>
+Date: Mon, 10 Aug 2020 20:19:25 +0000
+Subject: [PATCH] PPC: clear high 32 bits from the result of mulhw.
+
+The hight 32 bits of the result of mulhw are undefined and need
+to be cleared manually.
+
+Change-Id: I0e746898aa26a7970ab59b89c374afd1377028ea
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2347208
+Reviewed-by: Junliang Yan <jyan at ca.ibm.com>
+Commit-Queue: Milad Farazmand <miladfar at ca.ibm.com>
+Cr-Commit-Position: refs/heads/master@{#69318}
+---
+ src/compiler/backend/ppc/code-generator-ppc.cc | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
+index 337cd795ede..c18500f6e3b 100644
+--- a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
++++ b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
+@@ -1480,12 +1480,18 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
+ }
+ break;
+ case kPPC_MulHigh32:
+- __ mulhw(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
+- i.OutputRCBit());
++ __ mulhw(ip, i.InputRegister(0), i.InputRegister(1), i.OutputRCBit());
++ // High 32 bits are undefined and need to be cleared.
++ __ li(r0, Operand(-1));
++ __ clrldi(r0, r0, Operand(32));
++ __ and_(i.OutputRegister(), ip, r0);
+ break;
+ case kPPC_MulHighU32:
+- __ mulhwu(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
+- i.OutputRCBit());
++ __ mulhwu(ip, i.InputRegister(0), i.InputRegister(1), i.OutputRCBit());
++ // High 32 bits are undefined and need to be cleared.
++ __ li(r0, Operand(-1));
++ __ clrldi(r0, r0, Operand(32));
++ __ and_(i.OutputRegister(), ip, r0);
+ break;
+ case kPPC_MulDouble:
+ ASSEMBLE_FLOAT_BINOP_RC(fmul, MiscField::decode(instr->opcode()));
diff -Nru nodejs-12.18.2~dfsg/debian/patches/3f071e3.patch nodejs-12.18.2~dfsg/debian/patches/3f071e3.patch
--- nodejs-12.18.2~dfsg/debian/patches/3f071e3.patch 1970-01-01 01:00:00.000000000 +0100
+++ nodejs-12.18.2~dfsg/debian/patches/3f071e3.patch 2020-08-19 20:47:23.000000000 +0200
@@ -0,0 +1,39 @@
+From 3f071e3e7e15af187267af6c3b369029e27c8cf5 Mon Sep 17 00:00:00 2001
+From: Milad Farazmand <miladfar at ca.ibm.com>
+Date: Tue, 11 Aug 2020 17:57:09 +0000
+Subject: [PATCH] PPC: Optimize clearing higher bits of mulhw/mulhwu
+
+Change-Id: Ie3e14a6ef4531349e81a8ae741bc7470c7e547ca
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2349468
+Reviewed-by: Junliang Yan <jyan at ca.ibm.com>
+Commit-Queue: Milad Farazmand <miladfar at ca.ibm.com>
+Cr-Commit-Position: refs/heads/master@{#69343}
+---
+
+diff --git a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
+index c18500f..59cef69 100644
+--- a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
++++ b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
+@@ -1480,18 +1480,14 @@
+ }
+ break;
+ case kPPC_MulHigh32:
+- __ mulhw(ip, i.InputRegister(0), i.InputRegister(1), i.OutputRCBit());
++ __ mulhw(r0, i.InputRegister(0), i.InputRegister(1), i.OutputRCBit());
+ // High 32 bits are undefined and need to be cleared.
+- __ li(r0, Operand(-1));
+- __ clrldi(r0, r0, Operand(32));
+- __ and_(i.OutputRegister(), ip, r0);
++ __ clrldi(i.OutputRegister(), r0, Operand(32));
+ break;
+ case kPPC_MulHighU32:
+- __ mulhwu(ip, i.InputRegister(0), i.InputRegister(1), i.OutputRCBit());
++ __ mulhwu(r0, i.InputRegister(0), i.InputRegister(1), i.OutputRCBit());
+ // High 32 bits are undefined and need to be cleared.
+- __ li(r0, Operand(-1));
+- __ clrldi(r0, r0, Operand(32));
+- __ and_(i.OutputRegister(), ip, r0);
++ __ clrldi(i.OutputRegister(), r0, Operand(32));
+ break;
+ case kPPC_MulDouble:
+ ASSEMBLE_FLOAT_BINOP_RC(fmul, MiscField::decode(instr->opcode()));
diff -Nru nodejs-12.18.2~dfsg/debian/patches/series nodejs-12.18.2~dfsg/debian/patches/series
--- nodejs-12.18.2~dfsg/debian/patches/series 2020-07-28 15:11:48.000000000 +0200
+++ nodejs-12.18.2~dfsg/debian/patches/series 2020-08-19 20:47:23.000000000 +0200
@@ -17,3 +17,5 @@
ppc64.patch
test-lowerseclevel.patch
python2.patch
+1a9c676a141b32483b48884f8cc0330e64c8e17f.patch
+3f071e3.patch
More information about the Pkg-javascript-devel
mailing list