Package: libc6-armhf-cross Version: 2.28-2cross2 Severity: normal Dear Maintainer,
currently strerror(-3) sets errno unexpectedly to ENOMEM (12). The expected errno value would be either EINVAL or not touching errno at all. This behavior is relatively new and causes some CI cross builds to fail. The failing test is a gnulib test (test-strerror.c). The behavior is not seen on an i368 cross build, while on all our other cross builds, which are arm-linux-gnueabihf, mips-linux-gnu, aarch64-linux-gnu. Here is a small reproducer: include <stdio.h> #include <string.h> #include <errno.h> int main(void) { errno=0; char *msg=strerror(-3); printf("errno=%d, msg=%s\n",errno,msg); return 0; } Test it with: $ arm-linux-gnueabihf-gcc -Wextra x.c -o x $ ./x errno=12, msg=Unknown error -3 You need the binfmt/qemu stuff set up to execute the cross-compiled binary. Regards, Tim -- System Information: Debian Release: buster/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.18.0-3-amd64 (SMP w/12 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled