Bug#1134990: golang-1.26-go: go programs on ppc64 fail, receive SIGILL

"Aaron D. Johnson" <[email protected]> Sun, 26 Apr 2026 18:01:50 +0000
Newsgroups gmane.linux.debian.ports.powerpc
Message-ID <177722651041.3107.9469773277811304726.reportbug__36868.354740885$1777226729$gmane$org@stretch.internal.fnord.greeley.co.us>
Package: golang-1.26-go
Version: 1.26.2-2
Severity: important
X-Debbugs-Cc: [email protected]
User: [email protected]
Usertags: ppc64

Dear Maintainer,

"important" because reportbug's prompt says "a bug which has a major
effect on the usability of a package."  Not "grave" because while
completely unusable on this arch, I don't think "most or all users"
are actually doing anything on ppc64.  If that needs adjustment due to
the unreleased architecture, I'm totally fine with that.

   * What led up to the situation?

I was actually trying to run restic (backup software package) on this
platform.  Instead of filing a bug on that package, I figured I might
try seeing if the golang toolchain works at all.  As far as I can tell,
all go binaries on ppc64 fail immediately with a SIGILL.  This includes
the compiler/linker/standard library package for which this bug report
is being submitted.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

Installed restic.  Tried running restic.  Immediate failures as above.
Installed golang-1.26, tried building Hello World code from
https://go.dev/doc/tutorial/getting-started.  Same result:

$ hostname; date; arch; cat /etc/debian_version; /usr/lib/go-1.26/bin/go --help; /usr/lib/go-1.26/bin/go --version
stretch
Sun Apr 26 05:19:15 PM UTC 2026
ppc64
forky/sid
Illegal instruction        /usr/lib/go-1.26/bin/go --help
Illegal instruction        /usr/lib/go-1.26/bin/go --version
$

   * What was the outcome of this action?

$ hostname; date; arch; cat /etc/debian_version; /usr/lib/go-1.26/bin/go --help; /usr/lib/go-1.26/bin/go --version
stretch
Sun Apr 26 05:19:15 PM UTC 2026
ppc64
forky/sid
Illegal instruction        /usr/lib/go-1.26/bin/go --help
Illegal instruction        /usr/lib/go-1.26/bin/go --version
$
   * What outcome did you expect instead?

I would expect that a compiler package for ppc64 would be able to at
least print command line help text and its embedded version information.
Even better would be to compile the example code found on the go.dev
web site.  And even better than that would be that application code
(prevoisly mentioned restic package) built with the toolchain be able
to run.

-- System Information:
Debian Release: forky/sid
  APT prefers unreleased
  APT policy: (500, 'unreleased'), (500, 'unstable'), (1, 'experimental')
Architecture: ppc64

Kernel: Linux 6.19.14+deb14-powerpc64 (SMP w/48 CPU threads; PREEMPT)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages golang-1.26-go depends on:
ii  golang-1.26-src  1.26.2-2

Versions of packages golang-1.26-go recommends:
ii  g++        4:15.2.0-5+b1
ii  gcc        4:15.2.0-5+b1
ii  libc6-dev  2.42-15
pn  pkgconf    <none>

Versions of packages golang-1.26-go suggests:
pn  bzr | brz        <none>
ii  ca-certificates  20260223
ii  git              1:2.53.0-1
pn  mercurial        <none>
pn  subversion       <none>

-- no debconf information

And looking forward to probably questions about this machine, it is an
IBM p740 (8205-E6C) whole system LPAR:

$ hostname; date; cat /etc/debian_version; head -n 4 /proc/cpuinfo; echo ...; tail -n 10 /proc/cpuinfo
stretch
Sun Apr 26 05:44:05 PM UTC 2026
forky/sid
processor	: 0
cpu		: POWER7 (architected), altivec supported
clock		: 3720.000000MHz
revision	: 2.3 (pvr 003f 0203)
...
processor	: 47
cpu		: POWER7 (architected), altivec supported
clock		: 3720.000000MHz
revision	: 2.3 (pvr 003f 0203)

timebase	: 512000000
platform	: pSeries
model		: IBM,8205-E6C
machine		: CHRP IBM,8205-E6C
MMU		: Hash
$

And some kernel message buffer contents from attempts to run
/usr/lib/go-1.26/bin/go:

[Sun Apr 26 17:19:16 2026] go[3380]: illegal instruction (4) at 79db8 nip 79db8 lr a667c code 1 in go[69db8,10000+66d000]
[Sun Apr 26 17:19:16 2026] go[3380]: code: 7c2004ac 71070001 4182020c 80e10034 2c07fffe 408201f0 3ce00082 80e7440c
[Sun Apr 26 17:19:16 2026] go[3380]: code: 90e10030 38e10031 3900fff0 7c2004ac <7fe03868> 7fff4378 7fe03d6d 4082fff4

and /usr/bin/restic (0.8.3+ds-1):

[Sun Apr 26 17:53:39 2026] restic[3962]: illegal instruction (4) at 4a7c0 nip 4a7c0 lr 4a780 code 1 in restic[3a7c0,10000+4ef000]
[Sun Apr 26 17:53:39 2026] restic[3962]: code: e8810068 7c232000 40820208 90010048 38600001 98610048 98610049 9861004a
[Sun Apr 26 17:53:39 2026] restic[3962]: code: 9861004b 38810049 38a0fff0 7c0004ac <7fe02068> 7fff2b78 7fe0256d 4082fff4

I'm happy to collect core files if that helps at all.

Thanks!

- Aaron