drivers icon indicating copy to clipboard operation
drivers copied to clipboard

go 1.24: cannot build the `lorawan/atcmd` example

Open deadprogram opened this issue 8 months ago • 3 comments
trafficstars

When using Go 1.24, cannot build the lorawan/atcmd example. The same code appears to build fine in Go 1.23.x.

$ tinygo build -size full -o ./build/test.hex -target=nucleo-wl55jc ./examples/lora/lorawan/atcmd/
# internal/syscall/unix
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at.go:15:20: undefined: syscall.BytePtrFromString
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at.go:20:25: undefined: syscall.Syscall
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at.go:29:20: undefined: syscall.BytePtrFromString
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at.go:34:26: undefined: syscall.Syscall6
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at.go:43:21: undefined: syscall.BytePtrFromString
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at.go:53:25: undefined: syscall.Syscall6
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at.go:67:20: undefined: syscall.BytePtrFromString
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at.go:72:25: undefined: syscall.Syscall6
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at_fstatat.go:14:52: undefined: syscall.Stat_t
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at_fstatat.go:16:20: undefined: syscall.BytePtrFromString
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at_fstatat.go:21:25: undefined: syscall.Syscall6
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at_sysnum_fstatat64_linux.go:11:37: undefined: syscall.SYS_FSTATAT64
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at_sysnum_linux.go:10:35: undefined: syscall.SYS_UNLINKAT
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at_sysnum_linux.go:11:35: undefined: syscall.SYS_OPENAT
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at_sysnum_linux.go:12:35: undefined: syscall.SYS_READLINKAT
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/at_sysnum_linux.go:13:35: undefined: syscall.SYS_MKDIRAT
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/copy_file_range_unix.go:15:26: undefined: syscall.Syscall6
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/faccessat_syscall.go:11:25: undefined: syscall.Faccessat
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/getrandom.go:36:26: undefined: syscall.Syscall
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/kernel_version_linux.go:15:20: undefined: syscall.Utsname
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/kernel_version_linux.go:16:20: undefined: syscall.Uname
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/nonblocking_unix.go:12:32: undefined: syscall.F_GETFL
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/nonblocking_unix.go:16:22: undefined: syscall.O_NONBLOCK
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/nonblocking_unix.go:20:22: undefined: syscall.O_NONBLOCK
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/pidfd_linux.go:10:25: undefined: syscall.Syscall
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/pidfd_linux.go:18:29: undefined: syscall.Syscall
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/tcsetpgrp_linux.go:16:25: undefined: syscall.Syscall6
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/tcsetpgrp_linux.go:16:42: undefined: syscall.SYS_IOCTL
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/tcsetpgrp_linux.go:16:82: undefined: syscall.TIOCSPGRP
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/waitid_linux.go:18:25: undefined: syscall.Syscall6
/home/ron/.gvm/gos/go1.24/src/internal/syscall/unix/waitid_linux.go:18:42: undefined: syscall.SYS_WAITID

See https://github.com/tinygo-org/drivers/actions/runs/13524721141/job/37792254919#step:8:482

deadprogram avatar Feb 25 '25 16:02 deadprogram

I will guess it is one of these packages:

	"crypto/aes"
	"crypto/cipher"

@aykevl any thoughts?

deadprogram avatar Feb 25 '25 16:02 deadprogram

Oof that's bad. I'll take a look.

aykevl avatar Feb 26 '25 12:02 aykevl

@deadprogram can you try https://github.com/tinygo-org/tinygo/pull/4761? All the driver examples build, but I haven't verified whether they actually work. I suspect GetRandom needs a real implementation (which wouldn't be too hard, just do the same thing as the crypto/rand package on baremetal).

aykevl avatar Feb 26 '25 12:02 aykevl

Closing since was fixed in subsequent release. Thanks!

deadprogram avatar Aug 11 '25 07:08 deadprogram