dundee / gdu

Fast disk usage analyzer with console interface written in Go
MIT License
3.8k stars 138 forks source link

pi5 aarch64: gcc: error: unrecognized command-line option '-marm' #291

Closed glowinthedark closed 8 months ago

glowinthedark commented 8 months ago

Building from source on raspberry pi 5 throws a compile error:


$ go install github.com/dundee/gdu/v5/cmd/gdu@latest

go: downloading github.com/dundee/gdu/v5 v5.25.0
go: downloading github.com/dundee/gdu v1.7.1
go: downloading github.com/gdamore/tcell/v2 v2.6.0
go: downloading github.com/rivo/tview v0.0.0-20230530133550-8bd761dda819
go: downloading github.com/mattn/go-isatty v0.0.19
go: downloading github.com/sirupsen/logrus v1.9.2
go: downloading golang.org/x/sys v0.8.0
go: downloading github.com/maruel/natural v1.1.0
go: downloading github.com/fatih/color v1.15.0
go: downloading github.com/gdamore/encoding v1.0.0
go: downloading github.com/lucasb-eyer/go-colorful v1.2.0
go: downloading github.com/mattn/go-runewidth v0.0.14
go: downloading golang.org/x/term v0.8.0
go: downloading golang.org/x/text v0.9.0
go: downloading github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
go: downloading github.com/rivo/uniseg v0.4.4
# runtime/cgo
gcc: error: unrecognized command-line option '-marm'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

System details

Click to show details ```bash $ go version go version go1.21.5 linux/arm ---------------------- $ uname -a Linux iq 6.1.0-rpi7-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux ---------------------- $ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" NAME="Debian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" ---------------------- $ lscpu Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Vendor ID: ARM Model name: Cortex-A76 Model: 1 Thread(s) per core: 1 Core(s) per cluster: 4 Socket(s): - Cluster(s): 1 Stepping: r4p1 CPU(s) scaling MHz: 100% CPU max MHz: 2400.0000 CPU min MHz: 1000.0000 BogoMIPS: 108.00 Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp Vulnerabilities: Gather data sampling: Not affected Itlb multihit: Not affected L1tf: Not affected Mds: Not affected Meltdown: Not affected Mmio stale data: Not affected Retbleed: Not affected Spec rstack overflow: Not affected Spec store bypass: Mitigation; Speculative Store Bypass disab led via prctl Spectre v1: Mitigation; __user pointer sanitization Spectre v2: Mitigation; CSV2, BHB Srbds: Not affected Tsx async abort: Not affected ```
skutoroff commented 8 months ago

I submitted a similar error report for building with go a few days ago. Cannot find my submission. Using same go version, 64 bit Bookworm, same build same go on Pi4 Bullseye is fine.

glowinthedark commented 8 months ago

A possible workaround is to cross-compile it on some other box with a working golang env (e.g. linux x64, mac x64/arm64, etc) with:

git clone https://github.com/dundee/gdu.git
cd gdu/cmd/gdu
GOOS=linux GOARCH=arm64 go build -o gdu main.go

This will produce the gdu executable for aarch64 that will run n a pi5, etc.

skutoroff commented 8 months ago

Glowinthedark,

The problem I discovered last night is that I installed the arm6l version on both the Pi4 and Pi5. The Pi5 with Bookworm is 64 bit and requires the arm64 go install. Tested this morning and it builds fine now. I replied to my post this morning.

Thanks for taking the time and trouble to help.

Cheers. SK!

Steven Kutoroff Moonlighting Software Development 856-216-7133 856-313-2605

On Fri, Jan 5, 2024 at 10:21 glowinthedark @.***> wrote:

A possible workaround is to cross-compile it on some other box with a working golang env (e.g. linux x64, mac x64/arm64, etc) with:

git clone https://github.com/dundee/gdu.gitcd gdu/cmd/gdu GOOS=linux GOARCH=arm64 go build -o gdu main.go

This will produce the gdu executable for aarch64 that will run n a pi5, etc.

— Reply to this email directly, view it on GitHub https://github.com/dundee/gdu/issues/291#issuecomment-1878841236, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB3PQBTRRB77M3GCG6OEPQLYNALAHAVCNFSM6AAAAABBDVKDTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZYHA2DCMRTGY . You are receiving this because you commented.Message ID: @.***>

glowinthedark commented 8 months ago

@skutoroff: confirming — the root cause is installing an armv6l version of golang on an arm64 OS. Removing the go env and reinstalling the arm64 flavour from https://go.dev/dl/ solves the issue.