e2fsprogs icon indicating copy to clipboard operation
e2fsprogs copied to clipboard

Error when building debugfs against Kernel 5.10 headers

Open satmandu opened this issue 3 months ago • 4 comments

Is there a minimum kernel requirement for building this?

I see this error when building for Chromebrew (linux) x86_64:

E2fsprogs archive downloaded.
Unpacking archive using 'tar', this may take a while...
Building from source, this may take a while...
configure: WARNING: unrecognized options: --disable-dependency-tracking
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
Generating configuration file for e2fsprogs version 1.47.3
Package version 1.47.3 release 
Release date is July, 2025
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for dlopen in -ldl... yes
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking how to run the C preprocessor... gcc -E
checking for additional special compiler flags... (none)
Disabling maintainer mode by default
Disabling symlinks for install by default
Disabling relative symlinks for install by default
Disabling symlinks for build by default
Disabling verbose make commands
Enabling ELF shared libraries
Disabling BSD shared libraries by default
Disabling profiling libraries by default
Disabling journal debugging by default
Disabling blkid debugging by default
Enabling testio debugging by default
Disabling ext4 developer features by default
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for uuid_generate in -luuid... yes
Disabling private uuid library
checking for pkg-config... (cached) /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for blkid_get_cache in -lblkid... yes
Disabling private blkid library
Enabling use of backtrace by default
Enabling debugfs support by default
Enabling e2image support by default
Enabling e2resize support by default
Enabling e4defrag support by default
Not building fsck wrapper
Building e2initrd helper by default
Try using thread local support by default
checking for thread local storage (TLS) class... __thread
Try testing for pthread support by default
checking for a sed that does not truncate output... /usr/local/bin/sed
checking for grep that handles long lines and -e... /usr/local/bin/grep
checking for egrep... /usr/local/bin/grep -E
checking whether gcc is Clang... no
checking whether pthreads work with "-pthread" and "-lpthread"... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
Not building uuidd
Enabling mmp support by default
Enabling tdb support by default
Enabling bitmap statistics support by default
Disabling additional bitmap statistics by default
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/local/bin/install -c
checking for a race-free mkdir -p... /bin/mkdir -p
checking whether NLS is requested... yes
checking for msgfmt... /usr/local/bin/msgfmt
checking for gmsgfmt... /usr/local/bin/msgfmt
checking for xgettext... /usr/local/bin/xgettext
checking for msgmerge... /usr/local/bin/msgmerge
checking for ld used by gcc... /usr/local/bin/ld
checking if the linker (/usr/local/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking 32-bit host C ABI... no
checking for ELF binary format... yes
checking for the common suffixes of directories in the library search path... lib,lib,lib64
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyPreferredLanguages... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking whether make sets $(MAKE)... (cached) yes
checking for GNU make... make
checking for ln... /usr/local/bin/ln
checking whether ln -s works... yes
checking for mv... /usr/local/bin/mv
checking for cp... /usr/local/bin/cp
checking for rm... /usr/local/bin/rm
checking for chmod... /usr/local/bin/chmod
checking for gawk... gawk
checking for egrep... (cached) /usr/local/bin/grep -E
checking for sed... (cached) /usr/local/bin/sed
checking for perl... /usr/local/bin/perl
checking for ldconfig... /usr/local/sbin/ldconfig
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking for makeinfo... makeinfo
checking for dirent.h... yes
checking for errno.h... yes
checking for execinfo.h... yes
checking for getopt.h... yes
checking for malloc.h... yes
checking for mntent.h... yes
checking for paths.h... yes
checking for pthread.h... yes
checking for semaphore.h... yes
checking for setjmp.h... yes
checking for signal.h... yes
checking for stdarg.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for termios.h... yes
checking for termio.h... yes
checking for unistd.h... (cached) yes
checking for utime.h... yes
checking for attr/xattr.h... no
checking for linux/falloc.h... yes
checking for linux/fd.h... yes
checking for linux/fsmap.h... yes
checking for linux/fsverity.h... yes
checking for linux/major.h... yes
checking for linux/loop.h... yes
checking for linux/types.h... yes
checking for net/if_dl.h... no
checking for netinet/in.h... yes
checking for sys/acl.h... yes
checking for sys/disklabel.h... no
checking for sys/disk.h... no
checking for sys/file.h... yes
checking for sys/ioctl.h... yes
checking for sys/key.h... no
checking for sys/mkdev.h... no
checking for sys/mman.h... yes
checking for sys/mount.h... yes
checking for sys/prctl.h... yes
checking for sys/random.h... yes
checking for sys/resource.h... yes
checking for sys/select.h... yes
checking for sys/socket.h... yes
checking for sys/sockio.h... no
checking for sys/stat.h... (cached) yes
checking for sys/syscall.h... yes
checking for sys/sysmacros.h... yes
checking for sys/time.h... yes
checking for sys/types.h... (cached) yes
checking for sys/un.h... yes
checking for sys/wait.h... yes
checking for sys/xattr.h... yes
checking for a dd(1) program that supports iflag=fullblock... dd
checking for net/if.h... yes
checking for vprintf... yes
checking for struct dirent.d_reclen... yes
checking for struct stat.st_atim... yes
checking for ssize_t... yes
checking for gcc options needed to detect all undeclared functions... none needed
checking whether llseek is declared... no
checking whether lseek64 is declared... yes
checking whether fsmap_sizeof is declared... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking size of short... 2
checking size of int... 4
checking size of long... 8
checking size of long long... 8
checking size of off_t... 8
checking size of time_t... 8
checking size of void *... 8
checking whether byte ordering is bigendian... no
checking for __uNN types... using <asm/types.h>
checking for inttypes.h... (cached) yes
checking for intptr_t... yes
checking whether struct stat has a st_flags field... no
checking for struct sockaddr.sa_len... no
checking for blkid_probe_get_topology in -lblkid... yes
checking for blkid_topology_get_dax in -lblkid... yes
checking for blkid_probe_enable_partitions in -lblkid... yes
checking for __secure_getenv... no
checking for add_key... no
checking for backtrace... yes
checking for chflags... no
checking for dlopen... (cached) yes
checking for fadvise64... no
checking for fallocate... yes
checking for fallocate64... yes
checking for fchown... yes
checking for fcntl... yes
checking for fdatasync... yes
checking for fstat64... yes
checking for fsync... yes
checking for ftruncate64... yes
checking for futimes... yes
checking for getcwd... yes
checking for getdtablesize... yes
checking for getentropy... yes
checking for gethostname... yes
checking for getmntinfo... no
checking for getpwuid_r... yes
checking for getrandom... yes
checking for getrlimit... yes
checking for getrusage... yes
checking for jrand48... yes
checking for keyctl... no
checking for llistxattr... yes
checking for llseek... yes
checking for lseek64... yes
checking for mallinfo... yes
checking for mallinfo2... no
checking for mbstowcs... yes
checking for memalign... yes
checking for mempcpy... yes
checking for mmap... yes
checking for msync... yes
checking for nanosleep... yes
checking for open64... yes
checking for pathconf... yes
checking for posix_fadvise... yes
checking for posix_fadvise64... yes
checking for posix_memalign... yes
checking for prctl... yes
checking for pread... yes
checking for pwrite... yes
checking for pread64... yes
checking for pwrite64... yes
checking for qsort_r... yes
checking for secure_getenv... yes
checking for setmntent... yes
checking for setresgid... yes
checking for setresuid... yes
checking for snprintf... yes
checking for srandom... yes
checking for stpcpy... yes
checking for strcasecmp... yes
checking for strdup... yes
checking for strnlen... yes
checking for strptime... yes
checking for strtoull... yes
checking for sync_file_range... yes
checking for sysconf... yes
checking for usleep... yes
checking for utime... yes
checking for utimes... yes
checking for valloc... yes
checking for socket in -lsocket... no
checking for magic_file in -lmagic... yes
checking for magic.h... yes
Try testing for libarchive support (with dlopen) by default
checking for libarchive... yes
pkg-config found libarchive
checking for archive.h... yes
checking for clock_gettime in -lrt... yes
checking for fuse3... no
checking for pthread.h... (cached) yes
checking for fuse.h... no
checking for optreset... no
GL_THREADS_API:
checking for sem_init... no
checking for sem_init in -lpthread... yes
checking whether qsort_r is GNU version... yes
checking whether qsort_r is BSD version... no
checking for unified diff option... -u
checking for mount 'nosuid' option... yes
checking for mount 'nodev' option... yes
checking if C compiler supports LTO... yes
checking for gcc-ar... /usr/local/bin/gcc-ar
checking for gcc-ranlib... /usr/local/bin/gcc-ranlib
Setting root_libdir to /usr/local/lib64
checking whether we can link with -static... yes
checking for udev... yes
checking for udev rules dir... /usr/local/lib64/udev/rules.d
checking for system crontab dir... no
checking for systemd... no
checking for systemd system unit dir... no
configure: creating ./config.status
config.status: creating MCONFIG
config.status: creating Makefile
config.status: creating util/Makefile
config.status: creating util/subst.conf
config.status: creating util/gen-tarball
config.status: creating util/install-symlink
config.status: creating lib/et/Makefile
config.status: creating lib/ss/Makefile
config.status: creating lib/e2p/Makefile
config.status: creating lib/ext2fs/Makefile
config.status: creating lib/ext2fs/ext2_types.h
config.status: creating lib/support/Makefile
config.status: creating lib/ss/ss.pc
config.status: creating lib/et/com_err.pc
config.status: creating lib/e2p/e2p.pc
config.status: creating lib/ext2fs/ext2fs.pc
config.status: creating misc/Makefile
config.status: creating ext2ed/Makefile
config.status: creating e2fsck/Makefile
config.status: creating debugfs/Makefile
config.status: creating tests/Makefile
config.status: creating tests/progs/Makefile
config.status: creating tests/fuzz/Makefile
config.status: creating resize/Makefile
config.status: creating doc/Makefile
config.status: creating po/Makefile.in
config.status: creating scrub/Makefile
config.status: creating lib/config.h
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
configure: WARNING: unrecognized options: --disable-dependency-tracking
cd ./util ; make subst
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/util'
	CREATE dirpaths.h
	CC subst.c
	LD subst
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/util'
cd ./util ; make symlinks
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/util'
	CC symlinks.c
	LD symlinks
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/util'
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[1]: 'util/subst.conf' is up to date.
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[1]: 'lib/config.h' is up to date.
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
	SUBST lib/dirpaths.h
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
cd .; CONFIG_FILES=./lib/ext2fs/ext2_types.h ./config.status
config.status: creating ./lib/ext2fs/ext2_types.h
config.status: creating lib/config.h
config.status: lib/config.h is unchanged
config.status: executing po-directories commands
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
cd .; CONFIG_FILES=./lib/blkid/blkid_types.h ./config.status
config.status: creating ./lib/blkid/blkid_types.h
config.status: creating lib/config.h
config.status: lib/config.h is unchanged
config.status: executing po-directories commands
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
cd .; CONFIG_FILES=./lib/uuid/uuid_types.h ./config.status
config.status: creating ./lib/uuid/uuid_types.h
config.status: creating lib/config.h
config.status: lib/config.h is unchanged
config.status: executing po-directories commands
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/et'
	SUBST compile_et
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/et'
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ext2fs'
	SUBST ext2_err.et
	COMPILE_ET ext2_err.et
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ext2fs'
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/support'
	COMPILE_ET prof_err.et
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/support'
make libs
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'util/subst.conf' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'lib/config.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'lib/dirpaths.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'lib/ext2fs/ext2_types.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'lib/blkid/blkid_types.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'lib/uuid/uuid_types.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/et'
make[2]: 'compile_et' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/et'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ext2fs'
make[2]: 'ext2_err.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ext2fs'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/support'
make[2]: 'prof_err.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/support'
making all in lib/et
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/et'
	MKDIR elfshared
	CC error_message.c
	CC et_name.c
	CC init_et.c
	CC com_err.c
	CC com_right.c
	GEN_LIB libcom_err.a
	GEN_ELF_SOLIB libcom_err.so.2.1
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/et'
making all in lib/ss
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ss'
	SUBST mk_cmds
	MKDIR elfshared
	COMPILE_ET ss_err.et
	CC ss_err.c
	MK_CMDS std_rqs.c
	CC std_rqs.c
	CC invocation.c
	CC help.c
	CC execute_cmd.c
	CC listen.c
	CC parse.c
	CC error.c
	CC prompt.c
	CC request_tbl.c
	CC list_rqs.c
	CC pager.c
	CC requests.c
	CC data.c
	CC get_readline.c
	GEN_LIB libss.a
	GEN_ELF_SOLIB libss.so.2.0
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ss'
making all in lib/e2p
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/e2p'
	MKDIR elfshared
	CC feature.c
	CC fgetflags.c
	CC fsetflags.c
	CC fgetversion.c
	CC fsetversion.c
	CC getflags.c
	CC getversion.c
	CC hashstr.c
	CC iod.c
	CC ls.c
	CC ljs.c
	CC mntopts.c
	CC parse_num.c
	CC pe.c
	CC pf.c
	CC ps.c
	CC setflags.c
	CC setversion.c
	CC uuid.c
	CC ostype.c
	CC percent.c
	CC crypto_mode.c
	CC fgetproject.c
	CC fsetproject.c
	CC encoding.c
	CC errcode.c
	GEN_LIB libe2p.a
	GEN_ELF_SOLIB libe2p.so.2.3
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/e2p'
making all in lib/support
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/support'
	CC cstring.c
	CC mkquota.c
	CC plausible.c
	CC profile.c
	CC parse_qtype.c
	CC print_fs_flags.c
	CC profile_helpers.c
	CC prof_err.c
	CC quotaio.c
	CC quotaio_v2.c
	CC quotaio_tree.c
	CC dict.c
	CC devname.c
	GEN_LIB libsupport.a
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/support'
making all in lib/ext2fs
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ext2fs'
	MKDIR elfshared
	CC bb_compat.c
	CC inode_io.c
	CC write_bb_file.c
	CC dupfs.c
	CC imager.c
	CC test_io.c
	CC ext2_err.c
	CC alloc.c
	CC alloc_sb.c
	CC alloc_stats.c
	CC alloc_tables.c
	CC atexit.c
	CC badblocks.c
	CC bb_inode.c
	CC bitmaps.c
	CC bitops.c
	CC blkmap64_ba.c
	CC blkmap64_rb.c
	CC blknum.c
	CC block.c
	CC bmap.c
	CC check_desc.c
	CC closefs.c
	CC crc16.c
	CC gen_crc32ctable
	GEN32CTABLE crc32c_table.h
	CC crc32c.c
	CC csum.c
	CC dblist.c
	CC dblist_dir.c
	CC dirblock.c
	CC dirhash.c
	CC dir_iterate.c
	CC expanddir.c
	CC ext_attr.c
	CC extent.c
	CC fallocate.c
	CC fileio.c
	CC finddev.c
	CC flushb.c
	CC freefs.c
	CC gen_bitmap.c
	CC gen_bitmap64.c
	CC get_num_dirs.c
	CC get_pathname.c
	CC getenv.c
	CC getsize.c
	CC getsectsize.c
	CC hashmap.c
	CC i_block.c
	CC icount.c
	CC ind_block.c
	CC initialize.c
	CC inline.c
	CC inline_data.c
	CC inode.c
	CC io_manager.c
	CC ismounted.c
	CC link.c
	CC llseek.c
	CC lookup.c
	CC mkdir.c
	CC mkjournal.c
	CC mmp.c
	CC namei.c
	CC native.c
	CC newdir.c
	CC nls_utf8.c
	CC openfs.c
	CC orphan.c
	CC progress.c
	CC punch.c
	CC qcow2.c
	CC read_bb.c
	CC read_bb_file.c
	CC res_gdt.c
	CC rw_bitmaps.c
	CC sha512.c
	CC swapfs.c
	CC symlink.c
	CC tdb.c
	CC undo_io.c
	CC unix_io.c
	CC sparse_io.c
	CC unlink.c
	CC valid_blk.c
	CC version.c
	CC rbtree.c
	GEN_LIB libext2fs.a
	GEN_ELF_SOLIB libext2fs.so.2.4
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ext2fs'
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make progs
make[1]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'util/subst.conf' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'lib/config.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'lib/dirpaths.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'lib/ext2fs/ext2_types.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'lib/blkid/blkid_types.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: 'lib/uuid/uuid_types.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/et'
make[2]: 'compile_et' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/et'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ext2fs'
make[2]: 'ext2_err.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ext2fs'
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/support'
make[2]: 'prof_err.h' is up to date.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/support'
making all in lib/et
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/et'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/et'
making all in lib/ss
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ss'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ss'
making all in lib/e2p
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/e2p'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/e2p'
making all in lib/support
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/support'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/support'
making all in lib/ext2fs
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ext2fs'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/lib/ext2fs'
making all in e2fsck
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/e2fsck'
	CC unix.c
	CC e2fsck.c
	CC super.c
	CC pass1.c
	CC pass1b.c
	CC pass2.c
	CC pass3.c
	CC pass4.c
	CC pass5.c
	CC journal.c
	CC badblocks.c
	CC util.c
	CC dirinfo.c
	CC dx_dirinfo.c
	CC ehandler.c
	CC problem.c
	CC message.c
	CC quota.c
	CC recovery.c
	CC region.c
	CC revoke.c
	CC ea_refcount.c
	CC rehash.c
	CC logfile.c
	CC sigcatcher.c
	CC readahead.c
	CC extents.c
	CC encrypted_files.c
	LD e2fsck
	SUBST e2fsck.8
	SUBST e2fsck.conf.5
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/e2fsck'
making all in debugfs
make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/debugfs'
	MK_CMDS debug_cmds.c
	CC debug_cmds.c
	CC debugfs.c
	CC util.c
	CC ncheck.c
	CC icheck.c
	CC ls.c
	CC lsdel.c
	CC dump.c
	CC set_fields.c
	CC logdump.c
	CC htree.c
	CC unused.c
	CC e2freefrag.o
	CC filefrag.c
	MK_CMDS extent_cmds.c
	CC extent_cmds.c
	CC extent_inode.c
	CC zap.c
	CC create_inode.o
./../misc/create_inode.c: In function ‘copy_fs_verity_data’:
./../misc/create_inode.c:589:24: error: variable ‘arg’ has initializer but incomplete type
  589 |                 struct fsverity_read_metadata_arg arg = {
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
./../misc/create_inode.c:590:20: error: ‘struct fsverity_read_metadata_arg’ has no member named ‘metadata_type’
  590 |                   .metadata_type = metadata_type,
      |                    ^~~~~~~~~~~~~
./../misc/create_inode.c:590:36: warning: excess elements in struct initializer
  590 |                   .metadata_type = metadata_type,
      |                                    ^~~~~~~~~~~~~
./../misc/create_inode.c:590:36: note: (near initialization for ‘arg’)
./../misc/create_inode.c:594:20: error: ‘struct fsverity_read_metadata_arg’ has no member named ‘buf_ptr’
  594 |                   .buf_ptr = (uint64_t) buf,
      |                    ^~~~~~~
./../misc/create_inode.c:594:30: warning: excess elements in struct initializer
  594 |                   .buf_ptr = (uint64_t) buf,
      |                              ^
./../misc/create_inode.c:594:30: note: (near initialization for ‘arg’)
./../misc/create_inode.c:596:20: error: ‘struct fsverity_read_metadata_arg’ has no member named ‘length’
  596 |                   .length = sizeof(buf),
      |                    ^~~~~~
./../misc/create_inode.c:596:29: warning: excess elements in struct initializer
  596 |                   .length = sizeof(buf),
      |                             ^~~~~~
./../misc/create_inode.c:596:29: note: (near initialization for ‘arg’)
./../misc/create_inode.c:597:20: error: ‘struct fsverity_read_metadata_arg’ has no member named ‘offset’
  597 |                   .offset = *written,
      |                    ^~~~~~
./../misc/create_inode.c:597:29: warning: excess elements in struct initializer
  597 |                   .offset = *written,
      |                             ^
./../misc/create_inode.c:597:29: note: (near initialization for ‘arg’)
./../misc/create_inode.c:589:51: error: storage size of ‘arg’ isn’t known
  589 |                 struct fsverity_read_metadata_arg arg = {
      |                                                   ^~~
./../misc/create_inode.c:600:34: error: ‘FS_IOC_READ_VERITY_METADATA’ undeclared (first use in this function)
  600 |                 size = ioctl(fd, FS_IOC_READ_VERITY_METADATA, &arg);
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
./../misc/create_inode.c:600:34: note: each undeclared identifier is reported only once for each function it appears in
./../misc/create_inode.c:617:38: error: ‘FS_VERITY_METADATA_TYPE_DESCRIPTOR’ undeclared (first use in this function)
  617 |                 if (metadata_type == FS_VERITY_METADATA_TYPE_DESCRIPTOR) {
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../misc/create_inode.c:621:45: error: ‘FS_VERITY_METADATA_TYPE_SIGNATURE’ undeclared (first use in this function)
  621 |                         arg.metadata_type = FS_VERITY_METADATA_TYPE_SIGNATURE;
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../misc/create_inode.c:627:37: error: invalid use of undefined type ‘struct fsverity_descriptor’
  627 |                                 desc->__reserved_0x04 =
      |                                     ^~
./../misc/create_inode.c: In function ‘copy_fs_verity’:
./../misc/create_inode.c:671:35: error: ‘FS_VERITY_METADATA_TYPE_MERKLE_TREE’ undeclared (first use in this function)
  671 |                                   FS_VERITY_METADATA_TYPE_MERKLE_TREE,
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../misc/create_inode.c:688:35: error: ‘FS_VERITY_METADATA_TYPE_DESCRIPTOR’ undeclared (first use in this function)
  688 |                                   FS_VERITY_METADATA_TYPE_DESCRIPTOR,
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [Makefile:452: create_inode.o] Error 1
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/debugfs'
make[1]: *** [Makefile:445: all-progs-recursive] Error 1
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make: *** [Makefile:373: all] Error 2
There was a build error.
`CFLAGS="-O3 -pipe -ffat-lto-objects -fPIC -fuse-ld=mold  -flto=auto -flto=auto" CXXFLAGS="-O3 -pipe -ffat-lto-objects -fPIC -fuse-ld=mold  -flto=auto -flto=auto" FCFLAGS="-O3 -pipe -ffat-lto-objects -fPIC -fuse-ld=mold  -flto=auto -flto=auto" FFLAGS="-O3 -pipe -ffat-lto-objects -fPIC -fuse-ld=mold  -flto=auto -flto=auto" LDFLAGS="-flto=auto" CREW_PRELOAD_ENABLE_COMPILE_HACKS="1" CREW_PRELOAD_NO_MOLD="0" make` exited with 2
/usr/local/lib/crew/lib/package.rb:366:in 'Package.system': Command failed with exit 2: make
packages/e2fsprogs.rb build failed!
Error: Process completed with exit code 1.
      |                              ^
./../misc/create_inode.c:594:30: note: (near initialization for ‘arg’)
./../misc/create_inode.c:596:20: error: ‘struct fsverity_read_metadata_arg’ has no member named ‘length’
  596 |                   .length = sizeof(buf),
      |                    ^~~~~~
./../misc/create_inode.c:596:29: warning: excess elements in struct initializer
  596 |                   .length = sizeof(buf),
      |                             ^~~~~~
./../misc/create_inode.c:596:29: note: (near initialization for ‘arg’)
./../misc/create_inode.c:597:20: error: ‘struct fsverity_read_metadata_arg’ has no member named ‘offset’
  597 |                   .offset = *written,
      |                    ^~~~~~
./../misc/create_inode.c:597:29: warning: excess elements in struct initializer
  597 |                   .offset = *written,
      |                             ^
./../misc/create_inode.c:597:29: note: (near initialization for ‘arg’)
./../misc/create_inode.c:589:51: error: storage size of ‘arg’ isn’t known
  589 |                 struct fsverity_read_metadata_arg arg = {
      |                                                   ^~~
./../misc/create_inode.c:600:34: error: ‘FS_IOC_READ_VERITY_METADATA’ undeclared (first use in this function)
  600 |                 size = ioctl(fd, FS_IOC_READ_VERITY_METADATA, &arg);
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
./../misc/create_inode.c:600:34: note: each undeclared identifier is reported only once for each function it appears in
./../misc/create_inode.c:617:38: error: ‘FS_VERITY_METADATA_TYPE_DESCRIPTOR’ undeclared (first use in this function)
  617 |                 if (metadata_type == FS_VERITY_METADATA_TYPE_DESCRIPTOR) {
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../misc/create_inode.c:621:45: error: ‘FS_VERITY_METADATA_TYPE_SIGNATURE’ undeclared (first use in this function)
  621 |                         arg.metadata_type = FS_VERITY_METADATA_TYPE_SIGNATURE;
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../misc/create_inode.c:627:37: error: invalid use of undefined type ‘struct fsverity_descriptor’
  627 |                                 desc->__reserved_0x04 =
      |                                     ^~
./../misc/create_inode.c: In function ‘copy_fs_verity’:
./../misc/create_inode.c:671:35: error: ‘FS_VERITY_METADATA_TYPE_MERKLE_TREE’ undeclared (first use in this function)
  671 |                                   FS_VERITY_METADATA_TYPE_MERKLE_TREE,
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../misc/create_inode.c:688:35: error: ‘FS_VERITY_METADATA_TYPE_DESCRIPTOR’ undeclared (first use in this function)
  688 |                                   FS_VERITY_METADATA_TYPE_DESCRIPTOR,
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [Makefile:452: create_inode.o] Error 1
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3/debugfs'
make[1]: *** [Makefile:445: all-progs-recursive] Error 1
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916142138.dir/e2fsprogs-1.47.3'
make: *** [Makefile:373: all] Error 2

satmandu avatar Sep 16 '25 14:09 satmandu

Also when building without debugfs:

make[2]: Entering directory '/usr/local/tmp/crew/e2fsprogs.20250916143908.dir/e2fsprogs-1.47.3/misc'                                                                         
        CC mke2fs.c                                                                                                                                                          
        CC util.c                                                                                                                                                            
if test -f ./mke2fs.conf.custom.in ; then \                                                                                                                                  
        cp ./mke2fs.conf.custom.in mke2fs.conf; \                                                                                                                            
else \                                                                                                                                                                       
        cp ./mke2fs.conf.in mke2fs.conf; \                                                                                                                                   
fi                                                                                                                                                                           
        PROFILE_TO_C mke2fs.conf                                                                                                                                             
        CC default_profile.c                                                                                                                                                 
        CC mk_hugefiles.c                                                                                                                                                    
        CC create_inode.c                                                                                                                                                    
create_inode.c: In function ‘copy_fs_verity_data’:                                                                                                                           
create_inode.c:589:24: error: variable ‘arg’ has initializer but incomplete type                                                                                             
  589 |                 struct fsverity_read_metadata_arg arg = {                                                                                                            
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                    
create_inode.c:590:20: error: ‘struct fsverity_read_metadata_arg’ has no member named ‘metadata_type’                                                                        
  590 |                   .metadata_type = metadata_type,                                                                                                                    
      |                    ^~~~~~~~~~~~~                                                                                                                                     
create_inode.c:590:36: warning: excess elements in struct initializer                                                                                                        
  590 |                   .metadata_type = metadata_type,                                                                                                                    
      |                                    ^~~~~~~~~~~~~                                                                                                                     
create_inode.c:590:36: note: (near initialization for ‘arg’)                                                                                                                 
create_inode.c:594:20: error: ‘struct fsverity_read_metadata_arg’ has no member named ‘buf_ptr’                                                                              
  594 |                   .buf_ptr = (uint64_t) buf,                                                                                                                         
      |                    ^~~~~~~                                                                                                                                           
create_inode.c:594:30: warning: excess elements in struct initializer                                                                                                        
  594 |                   .buf_ptr = (uint64_t) buf,                                                                                                                         
      |                              ^                                                                                                                                       
create_inode.c:594:30: note: (near initialization for ‘arg’)                                                                                                                 
create_inode.c:596:20: error: ‘struct fsverity_read_metadata_arg’ has no member named ‘length’                                                                               
  596 |                   .length = sizeof(buf),                                                                                                                             
      |                    ^~~~~~                                                                                                                                            
create_inode.c:596:29: warning: excess elements in struct initializer                                                                                                        
  596 |                   .length = sizeof(buf),                                                                                                                             
      |                             ^~~~~~                                                                                                                                   
create_inode.c:596:29: note: (near initialization for ‘arg’)                                                                                                                 
create_inode.c:597:20: error: ‘struct fsverity_read_metadata_arg’ has no member named ‘offset’                                                                               
  597 |                   .offset = *written,                                                                                                                                
      |                    ^~~~~~                                                                                                                                            
create_inode.c:597:29: warning: excess elements in struct initializer                                                                                                        
  597 |                   .offset = *written,
      |                             ^
create_inode.c:597:29: note: (near initialization for ‘arg’)
create_inode.c:589:51: error: storage size of ‘arg’ isn’t known
  589 |                 struct fsverity_read_metadata_arg arg = {
      |                                                   ^~~
create_inode.c:600:34: error: ‘FS_IOC_READ_VERITY_METADATA’ undeclared (first use in this function)
  600 |                 size = ioctl(fd, FS_IOC_READ_VERITY_METADATA, &arg);
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
create_inode.c:600:34: note: each undeclared identifier is reported only once for each function it appears in
create_inode.c:617:38: error: ‘FS_VERITY_METADATA_TYPE_DESCRIPTOR’ undeclared (first use in this function)
  617 |                 if (metadata_type == FS_VERITY_METADATA_TYPE_DESCRIPTOR) {
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
create_inode.c:621:45: error: ‘FS_VERITY_METADATA_TYPE_SIGNATURE’ undeclared (first use in this function)
  621 |                         arg.metadata_type = FS_VERITY_METADATA_TYPE_SIGNATURE;
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
create_inode.c:627:37: error: invalid use of undefined type ‘struct fsverity_descriptor’
  627 |                                 desc->__reserved_0x04 =
      |                                     ^~
create_inode.c: In function ‘copy_fs_verity’:
create_inode.c:671:35: error: ‘FS_VERITY_METADATA_TYPE_MERKLE_TREE’ undeclared (first use in this function)
  671 |                                   FS_VERITY_METADATA_TYPE_MERKLE_TREE,
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
create_inode.c:688:35: error: ‘FS_VERITY_METADATA_TYPE_DESCRIPTOR’ undeclared (first use in this function)
  688 |                                   FS_VERITY_METADATA_TYPE_DESCRIPTOR,
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [Makefile:472: create_inode.o] Error 1
make[2]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916143908.dir/e2fsprogs-1.47.3/misc'
make[1]: *** [Makefile:445: all-progs-recursive] Error 1
make[1]: Leaving directory '/usr/local/tmp/crew/e2fsprogs.20250916143908.dir/e2fsprogs-1.47.3'
make: *** [Makefile:373: all] Error 2

satmandu avatar Sep 16 '25 14:09 satmandu

(We're just trying to support older kernels too...)

satmandu avatar Sep 16 '25 14:09 satmandu

The issue is an older version of /usr/include/linux/fsverity.h, which is a kernel header file which has been processed/modified/distributed by then C library:

% dpkg -S /usr/include/linux/fsverity.h linux-libc-dev: /usr/include/linux/fsverity.h

So it’s not something I’ve really worried about, because most modern distributions are building their C library with a kernel newer than 6 years ago. For example, the Ubuntu LTS that ran into this problem is already EOL.

If someone sends me a valid patch, I’d apply it.

tytso avatar Sep 17 '25 11:09 tytso

I assumed that it was as simple as that.

Is there a minimum kernel version for the required header file that could perhaps be documented?

satmandu avatar Sep 17 '25 12:09 satmandu