Re: chainlint test failing on Linux sparc64
From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Date: 2024-05-20 11:02:52
Subsystem:
the rest · Maintainer:
Linus Torvalds
Hi Eric, On Mon, 2024-05-20 at 12:02 +0200, John Paul Adrian Glaubitz wrote:
quoted
which probably explains the behavior you're experiencing. To fix it, we'll need to see the output you get from: cat /proc/cpuinfoHere you go: glaubitz@stadler:~$ cat /proc/cpuinfo cpu : UltraSparc T4 (Niagara4) fpu : UltraSparc T4 integrated FPU pmu : niagara4 prom : OBP 4.38.16 2018/11/28 07:24 type : sun4v ncpus probed : 48 ncpus active : 48 D$ parity tl1 : 0 I$ parity tl1 : 0 cpucaps : flush,stbar,swap,muldiv,v9,blkinit,n2,mul32,div32,v8plus,popc,vis,vis2,ASIBlkInit,fmaf,vis3,hpc,ima,pause,cbcond,aes,des,kasumi,camellia,md5,sha1,sha256,sha512,mpmul,montmul,montsqr,crc32c Cpu0ClkTck : 00000000a9beeee4 Cpu1ClkTck : 00000000a9beeee4 (...) State: CPU0: online CPU1: online CPU2: online CPU3: online
In order to verify this theory, I made the following temporary change:
diff --git a/t/chainlint.pl b/t/chainlint.pl
index 556ee91a15..63cac942ac 100755
--- a/t/chainlint.pl
+++ b/t/chainlint.pl@@ -718,7 +718,7 @@ sub ncores { # Windows return $ENV{NUMBER_OF_PROCESSORS} if exists($ENV{NUMBER_OF_PROCESSORS}); # Linux / MSYS2 / Cygwin / WSL - do { local @ARGV='/proc/cpuinfo'; return scalar(grep(/^processor[\s\d]*:/, <>)); } if -r '/proc/cpuinfo'; + do { local @ARGV='/proc/cpuinfo'; return scalar(grep(/^processor[\s\d]*:||^CPU[\d]*:/, <>)); } if -r '/proc/cpuinfo'; # macOS & BSD return qx/sysctl -n hw.ncpu/ if $^O =~ /(?:^darwin$|bsd)/; return 1;
and I confirm that this fixes the problem. Let me whip up a patch and post it here. Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913