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.
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 <locutusofb...@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 <milad...@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 <j...@ca.ibm.com> +Commit-Queue: Milad Farazmand <milad...@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 <milad...@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 <j...@ca.ibm.com> +Commit-Queue: Milad Farazmand <milad...@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