#1144304 gnumach: FTBFS: ../kern/strings.c:182:1: error: expected identifier or '(' before '_Generic'

#1144304#5
Date:
2026-08-13 12:58:49 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202608/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:gnumach, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
make[3]: Leaving directory '/<<PKGBUILDDIR>>/build-up'
make[2]: Leaving directory '/<<PKGBUILDDIR>>/build-up'
make[1]: Leaving directory '/<<PKGBUILDDIR>>/build-up'
In file included from /usr/include/features.h:539,
                 from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/string.h:26,
                 from ../kern/strings.c:34:
../kern/strings.c:182:1: error: expected identifier or ‘(’ before ‘_Generic’
  182 | strchr(
      | ^~~~~~
../kern/strings.c:252:1: error: expected identifier or ‘(’ before ‘_Generic’
  252 | strstr(
      | ^~~~~~
make[4]: *** [Makefile:10007: tests/module-hello] Error 1
make[3]: *** [Makefile:8391: check-TESTS] Error 2
make[2]: *** [Makefile:8712: check-am] Error 2
make[1]: *** [Makefile:8142: check-recursive] Error 1
SKIP tests/test-multiboot (exit status: 77)
cat: build-up/test-suite.log: No such file or directory
make: *** [debian/rules:214: build-up/stamp] Error 2
make: *** Waiting for unfinished jobs....
make[1]: Entering directory '/<<PKGBUILDDIR>>/build-up-dbg'
make[2]: Entering directory '/<<PKGBUILDDIR>>/build-up-dbg'
/usr/bin/make  check-TESTS
make[3]: Entering directory '/<<PKGBUILDDIR>>/build-up-dbg'
make[4]: Entering directory '/<<PKGBUILDDIR>>/build-up-dbg'
mkdir -p tests
echo "/* autogenerated file */" >tests/errlist.c
echo "#include <mach/message.h>" >>tests/errlist.c
echo "#include <mach/kern_return.h>" >>tests/errlist.c
echo "#include <mach/mig_errors.h>" >>tests/errlist.c
echo "#include <testlib.h>" >>tests/errlist.c
echo "#include <stddef.h>" >>tests/errlist.c
echo "const char* TEST_SUCCESS_MARKER = \"gnumach-test-success-and-reboot\";" >>tests/errlist.c
echo "const char* TEST_FAILURE_MARKER = \"gnumach-test-failure\";" >>tests/errlist.c
SKIP: tests/test-multiboot
mkdir -p tests/include-mach
echo "const char* e2s_gnumach(int err) { switch (err) {" >>tests/errlist.c
grep "define[[:space:]]MIG" ../include/mach/mig_errors.h | \
	awk '{printf "  case %s: return \"%s\";\n", $2, $2}' >>tests/errlist.c
/usr/bin/make install-data DESTDIR=tests/include-mach
grep "define[[:space:]]KERN" ../include/mach/kern_return.h | \
	awk '{printf "  case %s: return \"%s\";\n", $2, $2}' >>tests/errlist.c
awk 'f;/MACH_MSG_SUCCESS/{f=1}' ../include/mach/message.h | \
	grep "define[[:space:]]MACH" | \
	awk '{printf "  case %s: return \"%s\";\n", $2, $2}' >>tests/errlist.c
echo "  default: return NULL;"  >>tests/errlist.c
echo "}}"  >>tests/errlist.c
mkdir -p tests/mig-out
make[5]: Entering directory '/<<PKGBUILDDIR>>/build-up-dbg'
make[6]: Entering directory '/<<PKGBUILDDIR>>/build-up-dbg'
 /usr/bin/mkdir -p 'tests/include-mach/usr/include/x86_64-linux-gnu/device'
 /usr/bin/mkdir -p 'tests/include-mach/usr/include/x86_64-linux-gnu/mach'
 /bin/bash /<<PKGBUILDDIR>>/build-up-dbg/../build-aux/install-sh -C -m 644 ../include/device/audio_status.h ../include/device/bpf.h ../include/device/device.defs ../include/device/device_reply.defs ../include/device/device_request.defs ../include/device/device_types.defs ../include/device/device_types.h ../include/device/disk_status.h ../include/device/irq_status.h ../include/device/net_status.h ../include/device/notify.defs ../include/device/notify.h ../include/device/tape_status.h ../include/device/tty_status.h 'tests/include-mach/usr/include/x86_64-linux-gnu/device'
 /bin/bash /<<PKGBUILDDIR>>/build-up-dbg/../build-aux/instal [too-long-redacted] /include/x86_64-linux-gnu/mach'
 /usr/bin/mkdir -p 'tests/include-mach/usr/include/x86_64-linux-gnu/mach_debug'
 /bin/bash /<<PKGBUILDDIR>>/build-up-dbg/../build-aux/install-sh -C -m 644 ../include/mach_debug/hash_info.h ../include/mach_debug/mach_debug.defs ../include/mach_debug/mach_debug_types.defs ../include/mach_debug/mach_debug_types.h ../include/mach_debug/vm_info.h ../include/mach_debug/slab_info.h 'tests/include-mach/usr/include/x86_64-linux-gnu/mach_debug'
 /usr/bin/mkdir -p 'tests/include-mach/usr/include/x86_64-linux-gnu/mach/exec'
 /bin/bash /<<PKGBUILDDIR>>/build-up-dbg/../build-aux/install-sh -C -m 644 ../include/mach/exec/a.out.h ../include/mach/exec/elf.h ../include/mach/exec/exec.h 'tests/include-mach/usr/include/x86_64-linux-gnu/mach/exec'
 /usr/bin/mkdir -p 'tests/include-mach/usr/include/x86_64-linux-gnu/mach/x86_64'
 /bin/bash /<<PKGBUILDDIR>>/build-up-dbg/../build-aux/install-sh -C -m 644 ../i386/include/mach/i386/asm.h ../i386/include/mach/i386/boolean.h ../i386/include/mach/i386/eflags.h ../i386/include/mach/i386/exception.h ../i386/include/mach/i386/fp_reg.h ../i386/include/mach/i386/kern_return.h ../i386/include/mach/i386/mach_i386.defs ../i386/include/mach/i386/mach_i386_types.h ../i386/include/mach/i386/machine_types.defs ../i386/include/mach/i386/multiboot.h ../i386/include/mach/i386/thread_status.h ../i386/include/mach/i386/trap.h ../i386/include/mach/i386/vm_param.h ../i386/include/mach/i386/vm_types.h ../x86_64/include/syscall_sw.h 'tests/include-mach/usr/include/x86_64-linux-gnu/mach/x86_64'
 /bin/bash /<<PKGBUILDDIR>>/build-up-dbg/../build-aux/install-sh -C -m 644 ../include/mach/thread_info.h ../include/mach/thread_special_ports.h ../include/mach/thread_status.h ../include/mach/thread_switch.h ../include/mach/time_value.h ../include/mach/version.h ../include/mach/vm_attributes.h ../include/mach/vm_cache_statistics.h ../include/mach/vm_inherit.h ../include/mach/vm_param.h ../include/mach/vm_prot.h ../include/mach/vm_statistics.h ../include/mach/vm_sync.h ../include/mach/vm_wire.h ../include/mach/inline.h ../include/mach/xen.h 'tests/include-mach/usr/include/x86_64-linux-gnu/mach'
 /usr/bin/mkdir -p 'tests/include-mach/usr/share/info'
 /bin/bash /<<PKGBUILDDIR>>/build-up-dbg/../build-aux/install-sh -C -m 644 ../doc/mach.info ../doc/mach.info-1 ../doc/mach.info-2 'tests/include-mach/usr/share/info'
/usr/bin/make  install-data-hook
make[7]: Entering directory '/<<PKGBUILDDIR>>/build-up-dbg'
rm -f 'tests/include-mach/usr/include/x86_64-linux-gnu/mach'/machine
ln -s 'x86_64' 'tests/include-mach/usr/include/x86_64-linux-gnu/mach'/machine
make[7]: Leaving directory '/<<PKGBUILDDIR>>/build-up-dbg'
make[6]: Leaving directory '/<<PKGBUILDDIR>>/build-up-dbg'
make[5]: Leaving directory '/<<PKGBUILDDIR>>/build-up-dbg'
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/device.user.defs ./tests/include-mach//usr/include/x86_64-linux-gnu/device/device.defs
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/device_reply.user.defs ./tests/include-mach//usr/include/x86_64-linux-gnu/device/device_reply.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -user ./tests/mig-out/device_reply.user.c -header ./tests/mig-out/device_reply.user.h -list ./tests/mig-out/device_reply.user.msgids < ./tests/mig-out/device_reply.user.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -user ./tests/mig-out/device.user.c -header ./tests/mig-out/device.user.h -list ./tests/mig-out/device.user.msgids < ./tests/mig-out/device.user.defs
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/device_request.user.defs ./tests/include-mach//usr/include/x86_64-linux-gnu/device/device_request.defs
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/mach_debug.user.defs ./tests/include-mach//usr/include/x86_64-linux-gnu/mach_debug/mach_debug.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -user ./tests/mig-out/device_request.user.c -header ./tests/mig-out/device_request.user.h -list ./tests/mig-out/device_request.user.msgids < ./tests/mig-out/device_request.user.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -user ./tests/mig-out/mach_debug.user.c -header ./tests/mig-out/mach_debug.user.h -list ./tests/mig-out/mach_debug.user.msgids < ./tests/mig-out/mach_debug.user.defs
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/exc.server.defs ../include/mach/exc.defs
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/gnumach.user.defs ./tests/include-mach//usr/include/x86_64-linux-gnu/mach/gnumach.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -server ./tests/mig-out/exc.server.c -header ./tests/mig-out/exc.server.h -list ./tests/mig-out/exc.server.msgids < ./tests/mig-out/exc.server.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -user ./tests/mig-out/gnumach.user.c -header ./tests/mig-out/gnumach.user.h -list ./tests/mig-out/gnumach.user.msgids < ./tests/mig-out/gnumach.user.defs
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/mach4.user.defs ./tests/include-mach//usr/include/x86_64-linux-gnu/mach/mach4.defs
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/mach.user.defs ./tests/include-mach//usr/include/x86_64-linux-gnu/mach/mach.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -user ./tests/mig-out/mach4.user.c -header ./tests/mig-out/mach4.user.h -list ./tests/mig-out/mach4.user.msgids < ./tests/mig-out/mach4.user.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -user ./tests/mig-out/mach.user.c -header ./tests/mig-out/mach.user.h -list ./tests/mig-out/mach.user.msgids < ./tests/mig-out/mach.user.defs
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/mach_host.user.defs ./tests/include-mach//usr/include/x86_64-linux-gnu/mach/mach_host.defs
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/mach_port.user.defs ./tests/include-mach//usr/include/x86_64-linux-gnu/mach/mach_port.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -user ./tests/mig-out/mach_host.user.c -header ./tests/mig-out/mach_host.user.h -list ./tests/mig-out/mach_host.user.msgids < ./tests/mig-out/mach_host.user.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -user ./tests/mig-out/mach_port.user.c -header ./tests/mig-out/mach_port.user.h -list ./tests/mig-out/mach_port.user.msgids < ./tests/mig-out/mach_port.user.defs
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/task_notify.server.defs ../include/mach/task_notify.defs
gcc -E  -x c -nostdinc -I./tests/include-mach//usr/include/x86_64-linux-gnu -o ./tests/mig-out/mach_i386.user.defs ./tests/include-mach//usr/include/x86_64-linux-gnu/mach/x86_64/mach_i386.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -server ./tests/mig-out/task_notify.server.c -header ./tests/mig-out/task_notify.server.h -list ./tests/mig-out/task_notify.server.msgids < ./tests/mig-out/task_notify.server.defs
x86_64-gnu-mig -n -cc cat - /dev/null   -user ./tests/mig-out/mach_i386.user.c -header ./tests/mig-out/mach_i386.user.h -list ./tests/mig-out/mach_i386.user.msgids < ./tests/mig-out/mach_i386.user.defs
gcc -ftrivial-auto-var-init=pattern -static -nostartfiles -nolibc -ffreestanding -I../tests/include -I./tests/include-mach//usr/include/x86_64-linux-gnu -I./tests/mig-out -ggdb3 -DMIG_EOPNOTSUPP -fno-stack-protector ../tests/test-hello.c ../i386/i386/strings.c ../kern/printf.c ../kern/strings.c ../util/atoi.c ../tests/syscalls.S ../tests/start.S ../tests/testlib.c ../tests/testlib_thread_start.c ./tests/errlist.c ./tests/mig-out/device.user.c ./tests/mig-out/device_reply.user.c ./tests/mig-out/device_request.user.c ./tests/mig-out/mach_debug.user.c ./tests/mig-out/exc.server.c ./tests/mig-out/gnumach.user.c ./tests/mig-out/mach4.user.c ./tests/mig-out/mach.user.c ./tests/mig-out/mach_host.user.c ./tests/mig-out/mach_port.user.c ./tests/mig-out/task_notify.server.c ./tests/mig-out/mach_i386.user.c -o tests/module-hello
gcc -ftrivial-auto-var-init=pattern -static -nostartfiles -nolibc -ffreestanding -I../tests/include -I./tests/include-mach//usr/include/x86_64-linux-gnu -I./tests/mig-out -ggdb3 -DMIG_EOPNOTSUPP -fno-stack-protector ../tests/test-mach_host.c ../i386/i386/strings.c ../kern/printf.c ../kern/strings.c ../util/atoi.c ../tests/syscalls.S ../tests/start.S ../tests/testlib.c ../tests/testlib_thread_start.c ./tests/errlist.c ./tests/mig-out/device.user.c ./tests/mig-out/device_reply.user.c ./tests/mig-out/device_request.user.c ./tests/mig-out/mach_debug.user.c ./tests/mig-out/exc.server.c ./tests/mig-out/gnumach.user.c ./tests/mig-out/mach4.user.c ./tests/mig-out/mach.user.c ./tests/mig-out/mach_host.user.c ./tests/mig-out/mach_port.user.c ./tests/mig-out/task_notify.server.c ./tests/mig-out/mach_i386.user.c -o tests/module-mach_host
make[4]: Leaving directory '/<<PKGBUILDDIR>>/build-up-dbg'
make[3]: Leaving directory '/<<PKGBUILDDIR>>/build-up-dbg'
make[2]: Leaving directory '/<<PKGBUILDDIR>>/build-up-dbg'
make[1]: Leaving directory '/<<PKGBUILDDIR>>/build-up-dbg'
In file included from /usr/include/features.h:539,
                 from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/string.h:26,
                 from ../kern/strings.c:34:
../kern/strings.c:182:1: error: expected identifier or ‘(’ before ‘_Generic’
  182 | strchr(
      | ^~~~~~
../kern/strings.c:252:1: error: expected identifier or ‘(’ before ‘_Generic’
  252 | strstr(
      | ^~~~~~
In file included from /usr/include/features.h:539,
                 from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/string.h:26,
                 from ../kern/strings.c:34:
../kern/strings.c:182:1: error: expected identifier or ‘(’ before ‘_Generic’
  182 | strchr(
      | ^~~~~~
../kern/strings.c:252:1: error: expected identifier or ‘(’ before ‘_Generic’
  252 | strstr(
      | ^~~~~~
make[4]: *** [Makefile:10007: tests/module-mach_host] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: *** [Makefile:10007: tests/module-hello] Error 1
make[3]: *** [Makefile:8391: check-TESTS] Error 2
make[2]: *** [Makefile:8712: check-am] Error 2
make[1]: *** [Makefile:8142: check-recursive] Error 1
SKIP tests/test-multiboot (exit status: 77)
cat: build-up-dbg/test-suite.log: No such file or directory
make: *** [debian/rules:214: build-up-dbg/stamp] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------

#1144304#12
Date:
2026-08-13 22:35:02 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
gnumach, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1144304@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Samuel Thibault <sthibault@debian.org> (supplier of updated gnumach package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Thu, 13 Aug 2026 23:52:48 +0200
Source: gnumach
Architecture: source
Version: 2:1.8+git20260805-3
Distribution: unstable
Urgency: medium
Maintainer: GNU Hurd Maintainers <debian-hurd@lists.debian.org>
Changed-By: Samuel Thibault <sthibault@debian.org>
Closes: 1144304
Changes:
 gnumach (2:1.8+git20260805-3) unstable; urgency=medium
 .
   * patches/string.h: Fix build with newer toolchain (Closes: Bug#1144304)
   * patches/strings.c: Fix build with newer toolchain.
Checksums-Sha1:
 1a9babd90ee4a5208c0bc0ffbc09dc798135d05e 7362 gnumach_1.8+git20260805-3.dsc
 3a98fe7898305104162a3134277f0f0a9c777def 30432 gnumach_1.8+git20260805-3.debian.tar.xz
 567fe85d2003e914aa1d4ac58270140d26a0f3a5 10392 gnumach_1.8+git20260805-3_source.buildinfo
Checksums-Sha256:
 ca03259068b9228c30660f636c5133915b777b611d16b5819d1ceb2ead848228 7362 gnumach_1.8+git20260805-3.dsc
 fa92064ec310de2c3770ebbfda6e0bcc7f43d987db6360ca5849c31eb2e3aa09 30432 gnumach_1.8+git20260805-3.debian.tar.xz
 eed53de8b2d70710b74c349ec85fccd090c3c2b5c7bb21076074114ab3c61a93 10392 gnumach_1.8+git20260805-3_source.buildinfo
Files:
 5a7b7d6fa836a9ca7571446adac80fb4 7362 kernel optional gnumach_1.8+git20260805-3.dsc
 9a63d875deb571865a063718853ccb50 30432 kernel optional gnumach_1.8+git20260805-3.debian.tar.xz
 07754cb8270aa34b1eb6b5041dbb1c05 10392 kernel optional gnumach_1.8+git20260805-3_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEDHkkXhaQVdLZstA3O2TU75284AwFAmp+Q44ACgkQO2TU7528
4AxJyxAAhdyloSBnbcOXV+i5QjwLAnnDyRAJ++HOQtBfXomsDPuzd/Jmo1okvv/4
bMjvqaadfzpBcq+wv1sCxaaY6r7Ysferq9yxTKhuJEKAJRUjMZBfwipAa8jRB7dN
DpyNYWZpAgmsPdmzi5mm15AWaPqK43vsVjNfs4Gt88RihHjdUZyjDnG3bElhLXlQ
Q2p+V5j2uS5twkqg3ZNcAYf/xqEyu+9LMUjlUUwvj6Cv7GXH9zNt9snlrNgJzHKu
ERGcb0wKTIpCoVycoCSwotyxFAJI3H9xaWUxOyuYV6s/OUqFSFICOufeNdf6WB6R
TuQlwzbng8utPxYUecq64UIjDNOblaBJm2fgvGUHj09jtWVJ2uuHZ1HR85OJ9JTN
sd6+7jq1yxZeoY5QWWthkm6z5tH9K0Sjx3WdxCEountY3HTAHlqf1pCn3eaPm38n
UDn9vwtUye/JSmITZB71dJ+9KHmk4hLzx1MgCMnu+VCjhirhgf8G5RBu8MIsxxdE
NXt3P0sLELXxldgPCRXH9GwJjhqN8KBFSXPBS2ZxuCFUq8TP9vrTXNYGi9SKBWeS
qNAqQka3rUAeOL3p7CugrztZOnZxvF+6p6XCvEoKy2GIZaaBBi/PYTfEenePOvu2
SKWWRDvq2Pg5MM46IKwzuchRm6TCZ5h5AKJaD83lvjiojqC4G10=
=mu8O
-----END PGP SIGNATURE-----