Monday's Reading and Links (2021-01-22)

On a vaguely related topic the Phidgets SBC collecting temperature and humidity at home is an armhf v7 board. I recently compiled some Go code for it (lpsh) and learned about the different GOARM options. Turns out as of this writing Go supports the following ARM architectural families:

Architecture Status GOARM value GOARCH value
ARMv4 and below not supported n/a n/a
ARMv5 supported GOARM=5 GOARCH=arm
ARMv6 supported GOARM=6 GOARCH=arm
ARMv7 supported GOARM=7 GOARCH=arm
ARMv8 supported n/a GOARCH=arm64

Picking the wrong value results in:

$ ./lpsh-arm 
Illegal instruction

Comparing the arm6 and arm7 compilations with diff -y --suppress-common-lines <(xxd lpsh-arm6) <(xxd lpsh-arm7) - the files are unsurprisingly different: