Hi, Jan Nieuwenhuizen skribis: >> Could it be ‘ifreq-struct-size’ that’s off on GNU/Hurd, or one of its >> friends? > > Something like that: sizeof-ifconf is set to 16 (like on x86_64), but > it's size should be 8. Oh, that’s because ‘define-c-struct’ does all the work at macro-expansion time, with the host types and alignment constraints. I wonder how we didn’t notice it earlier. Cross-compiling from x86_64 to ARMv7 has the same problem, but maybe the networking ioctls work by chance. The patch below appears to fix it: --8<---------------cut here---------------start------------->8--- $ ./pre-inst-env guild compile --target=i686-pc-linux-gnu guix/build/syscalls.scm -o guix/build/syscalls.go wrote `guix/build/syscalls.go' $ guix environment -s i686-linux -C --ad-hoc guile-next -- guile -L . -C . GNU Guile 3.0.2 Copyright (C) 1995-2020 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> ,use(guix build syscalls) scheme@(guile-user)> ,m(guix build syscalls) scheme@(guix build syscalls)> sizeof-ifconf $1 = 8 scheme@(guix build syscalls)> %host-type $2 = "i686-unknown-linux-gnu" --8<---------------cut here---------------end--------------->8--- Thank you! Ludo’.