On Tue, Nov 22, 2022 at 12:45 PM Andreas Hasenack <andreas@xxxxxxxxxxxxx> wrote: > git commit 29fb2ec384a867ca577335a12f4b45c184e7b642[1], present in > 2.38.0 and later, introduced a function that gets the number of cores > from /proc/cpuinfo. It essentially does this on linux: > > do { local @ARGV='/proc/cpuinfo'; return > scalar(grep(/^processor\s*:/, <>)); } if -r '/proc/cpuinfo'; > > On s390x, the ^processor lines are like this: > > processor 0: version = FF, identification = 148F67, machine = 2964 > > In other arches (I checked amd64, armhf and arm64), they are like this instead: > > processor : 0 > > As a result, that function is returning 0 on s390x, and that value is > used for the number of jobs the script should execute. Since it's > zero, it exits without doing anything, and that breaks the test and > the build[3] on s390x. Thanks for the well-described explanation. I think this is the same problem reported in [1], however, that thread hasn't seen sufficient diagnostic information yet to figure out what was going on. So, your report is very helpful. There is discussion about altogether ditching the code in question (see the discussion starting at about [2], for instance), but in the meantime, fixing this would be a good idea. > This is trivial and I don't think a PR is necessary, but let me know > if you want one. > > That regexp could perhaps be: > > /^processor\s*\d*\s*:/ > > or > > /^processor[\s\d]*:/ > > or something else. We would be happy to take a patch if you're interested in submitting one. Otherwise, I can submit a patch to fix this case. Let me know your preference. [1]: https://lore.kernel.org/git/f1a5f758-d81f-5985-9b5d-2f0dbfaac071@xxxxxxxxxxxx/ [2]: https://lore.kernel.org/git/221122.86cz9fbyln.gmgdl@xxxxxxxxxxxxxxxxxxx/T/#m7626ed18fa0e93a8b0ada9cf6d2d18b08045cb4b