strange build error in usr.sbin/makefs (unknown type name 'bool')
Date: Mon, 05 Jan 2026 13:45:25 UTC
I am trying to rebuild the world from some old 15.x version
to 1b69ade6b5e8665dfb4d0cb683854705192a68 and the build fails with not knowing "bool" type.
using FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2)
===> usr.sbin/mailwrapper (all)
===> usr.sbin/makefs (all)
cc -target x86_64-unknown-freebsd16.0 --sysroot=/big/obj/usr/src/amd64.amd64/tmp -B/big/obj/usr/src/amd64.amd64/tmp/usr/bin -fpie -DPIC -O2 -pipe -fno-common -I/usr/src/usr.sbin/makefs -I/usr/src/usr.sbin/makefs/zfs -I/usr/src/stand/libsa -I/usr/src/sys/cddl/boot -DHAVE_ZFS -I/usr/src/sys/fs/cd9660/ -DMAKEFS -D_WANT_MSDOSFS_INTERNALS -I/usr/src/sys/fs/msdosfs -I/usr/src/sbin/newfs_msdos -DHAVE_STRUCT_STAT_ST_FLAGS=1 -I/usr/src/contrib/mtree -I/usr/src/contrib/mknod -I/usr/src/lib/libnetbsd -fPIE -g -gz=zlib -MD -MF.depend.cd9660.pieo -MTcd9660.pieo -std=gnu17 -Wno-format-zero-length -fstack-protector-strong -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wchar-subscripts -Wnested-externs -Wold-style-definition -Wno-pointer-sign -Wdate-time -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body -Wno-st!
ring-plus-int -Wno-unused-const-variable -Wno-error=unused-but-set-parameter -Wno-error=cast-function-type-mismatch -Qunused-arguments -c /usr/src/usr.sbin/makefs/cd9660.c -o cd9660.pieo
In file included from /usr/src/usr.sbin/makefs/cd9660.c:102:
/usr/src/stand/libsa/ctype.h:169:5: error: type name requires a specifier or qualifier
169 | bool (*dv_match)(struct devsw *, const char *);
| ^
/usr/src/stand/libsa/ctype.h:169:12: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Werror,-Wimplicit-int]
169 | bool (*dv_match)(struct devsw *, const char *);
| ^
| int
/usr/src/stand/libsa/ctype.h:177:12: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
177 | extern int errno;
| ^
/big/obj/usr/src/amd64.amd64/tmp/usr/include/sys/errno.h:45:26: note: expanded from macro 'errno'
45 | #define errno (* __error())
| ^
In file included from /usr/src/usr.sbin/makefs/cd9660.c:102:
/usr/src/stand/libsa/ctype.h:512:1: error: unknown type name 'bool'
512 | bool is_tftp(void);
| ^
/usr/src/stand/libsa/ctype.h:515:68: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Werror,-Wimplicit-int]
515 | typedef void (feature_iter_fn)(void *, const char *, const char *, bool);
| ^
| int
/usr/src/stand/libsa/ctype.h:518:8: error: unknown type name 'bool'
518 | extern bool feature_name_is_enabled(const char *);
| ^
In file included from /usr/src/usr.sbin/makefs/cd9660.c:105:
In file included from /usr/src/lib/libnetbsd/util.h:38:
/big/obj/usr/src/amd64.amd64/tmp/usr/include/libutil.h:108:6: error: conflicting types for 'hexdump'
108 | void hexdump(const void *_ptr, int _length, const char *_hdr, int _flags);
| ^
/usr/src/stand/libsa/ctype.h:530:6: note: previous declaration is here
530 | void hexdump(caddr_t region, size_t len);
| ^
In file included from /usr/src/usr.sbin/makefs/cd9660.c:105:
/usr/src/lib/libnetbsd/util.h:49:1: error: unknown type name 'FILE'
49 | FILE *efopen(const char *, const char *);
| ^
In file included from /usr/src/usr.sbin/makefs/cd9660.c:108:
/usr/src/usr.sbin/makefs/cd9660.h:307:36: error: unknown type name 'FILE'
307 | int cd9660_write_generic_bootimage(FILE *);
| ^
/usr/src/usr.sbin/makefs/cd9660.h:308:39: error: unknown type name 'FILE'
308 | int cd9660_write_boot(iso9660_disk *, FILE *);
| ^
/usr/src/usr.sbin/makefs/cd9660.h:319:38: error: unknown type name 'FILE'
319 | int cd9660_copy_file(iso9660_disk *, FILE *, off_t, const char *);
| ^
/usr/src/usr.sbin/makefs/cd9660.h:329:35: error: unknown type name 'FILE'
329 | void debug_dump_to_xml_path_table(FILE *, off_t, int, int);
| ^
/usr/src/usr.sbin/makefs/cd9660.h:330:24: error: unknown type name 'FILE'
330 | void debug_dump_to_xml(FILE *);
| ^
/usr/src/usr.sbin/makefs/cd9660.c:478:8: error: use of undeclared identifier 'EXIT_FAILURE'
478 | errx(EXIT_FAILURE, "allow-multidot requires iso level of 2");
| ^
/usr/src/usr.sbin/makefs/cd9660.c:511:8: error: use of undeclared identifier 'EXIT_FAILURE'
511 | errx(EXIT_FAILURE, "%s: converted directory is empty. "
| ^
/usr/src/usr.sbin/makefs/cd9660.c:514:8: error: use of undeclared identifier 'EXIT_FAILURE'
514 | errx(EXIT_FAILURE, "%s: tree conversion failed", __func__);
| ^
/usr/src/usr.sbin/makefs/cd9660.c:546:9: error: use of undeclared identifier 'EXIT_FAILURE'
546 | errx(EXIT_FAILURE, "setup_boot failed");
| ^
/usr/src/usr.sbin/makefs/cd9660.c:1341:3: error: use of undeclared identifier 'EXIT_FAILURE'
1341 | CD9660_MEM_ALLOC_ERROR(__func__);
| ^
/usr/src/usr.sbin/makefs/cd9660.h:96:9: note: expanded from macro 'CD9660_MEM_ALLOC_ERROR'
96 | err(EXIT_FAILURE, "%s, %s l. %d", _F, __FILE__, __LINE__)
| ^
/usr/src/usr.sbin/makefs/cd9660.c:1437:6: error: use of undeclared identifier 'EXIT_FAILURE'
1437 | CD9660_MEM_ALLOC_ERROR(__func__);
| ^
/usr/src/usr.sbin/makefs/cd9660.h:96:9: note: expanded from macro 'CD9660_MEM_ALLOC_ERROR'
96 | err(EXIT_FAILURE, "%s, %s l. %d", _F, __FILE__, __LINE__)
| ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
*** Error code 1
Stop.
make[4]: stopped making "all" in /usr/src/usr.sbin/makefs
*** Error code 1
Stop.
make[3]: stopped making "all" in /usr/src/usr.sbin
*** Error code 1
Stop.
make[2]: stopped making "all" in /usr/src
478,10 real 89,05 user 222,56 sys
*** Error code 1
Stop.
make[1]: stopped making "buildworld" in /usr/src
*** Error code 1
Stop.
make: stopped making "buildworld" in /usr/src
Command exit status: 1
Script done on Mon Jan 5 14:14:17 2026