[Libguestfs] Missing hivex.h error when compiling on macOS 10.14 (Mojave)

Tim Perfitt tperfitt at twocanoes.com
Sun Jul 21 16:31:58 UTC 2019


I am attempting to compile Hivex (v1.3.18) and am getting a "handle.c:47:10: fatal error: 'hivex.h' file not found" error. I see that hivex.h is not included in the source and I suspect it is created during the configure phase. Full build log below. Any ideas of how this file is created and why it wasn't created? I was able to compile it before on earlier versions of macOS but it seems that something has changed (it has been over a year since I last compiled it).

mdscentral-6:hivex tperfitt$ CPPFLAGS=-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libxml2 ./configure --disable-perl --disable-python --disable-ruby --without-readline

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
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 we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for Minix Amsterdam compiler... no
checking for ar... ar
checking for ranlib... ranlib
checking build system type... x86_64-apple-darwin18.6.0
checking host system type... x86_64-apple-darwin18.6.0
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for ld used by gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking for shared library run path origin... done
checking 32-bit host C ABI... no
checking for the common suffixes of directories in the library search path... lib,lib
checking whether imported symbols can be declared weak... no
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for pthread_kill in -lpthread... yes
checking for multithread API to use... posix
checking for pthread_rwlock_t... yes
checking whether pthread_rwlock_rdlock prefers a writer to a reader... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for _set_invalid_parameter_handler... no
checking for fcntl... yes
checking for symlink... yes
checking for getdtablesize... yes
checking for getprogname... yes
checking for getexecname... no
checking for mprotect... yes
checking for strerror_r... yes
checking for __xpg_strerror_r... no
checking for strndup... yes
checking for vasnprintf... no
checking for snprintf... yes
checking for ftruncate... yes
checking for gettimeofday... yes
checking for isblank... yes
checking for lstat... yes
checking for pipe... yes
checking for pthread_sigmask... yes
checking for setenv... yes
checking for sigaction... yes
checking for sigaltstack... yes
checking for siginterrupt... yes
checking for sleep... yes
checking for catgets... yes
checking for shutdown... yes
checking for usleep... yes
checking for sys/socket.h... yes
checking for unistd.h... (cached) yes
checking for getopt.h... yes
checking for sys/cdefs.h... yes
checking for limits.h... yes
checking for wchar.h... yes
checking for stdint.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for sys/mman.h... yes
checking for features.h... no
checking for crtdefs.h... no
checking for arpa/inet.h... yes
checking for sys/stat.h... (cached) yes
checking for sys/time.h... yes
checking for netdb.h... yes
checking for netinet/in.h... yes
checking for semaphore.h... yes
checking for sys/select.h... yes
checking for sys/param.h... yes
checking for sys/wait.h... yes
checking for sys/ioctl.h... yes
checking for sys/uio.h... yes
checking whether // is distinct from /... no
checking whether the preprocessor supports include_next... yes
checking whether system header files limit the line length... no
checking for complete errno.h... yes
checking whether strerror_r is declared... yes
checking for strerror_r... (cached) yes
checking whether strerror_r returns char *... no
checking for working fcntl.h... no (bad O_NOATIME)
checking for pid_t... yes
checking for mode_t... yes
checking whether getdtablesize is declared... yes
checking for getopt.h... (cached) yes
checking for getopt_long_only... yes
checking whether getopt is POSIX compatible... no
checking for iconv... yes
checking for working iconv... yes
checking how to link with libiconv... -liconv
checking for iconv declaration... 
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.... no
checking for wint_t... yes
checking whether wint_t is too small... no
checking for unsigned long long int... yes
checking for long long int... yes
checking whether stdint.h conforms to C99... yes
checking whether stdint.h predates C++11... no
checking whether stdint.h has UINTMAX_WIDTH etc.... no
checking for inttypes.h... (cached) yes
checking whether the inttypes.h PRIxNN macros are broken... no
checking for a sed that does not truncate output... /usr/bin/sed
checking whether malloc, realloc, calloc are POSIX compliant... yes
checking for mmap... yes
checking for MAP_ANONYMOUS... yes
checking whether memchr works... yes
checking for sigset_t... yes
checking for ssize_t... yes
checking for uid_t in sys/types.h... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for wchar_t... yes
checking whether strerror(0) succeeds... no
checking for C/C++ restrict keyword... __restrict
checking whether strndup is declared... yes
checking whether strnlen is declared... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for intmax_t... yes
checking where to find the exponent in a 'double'... word 1 bit 20
checking whether snprintf returns a byte count as in C99... yes
checking for snprintf... (cached) yes
checking for strnlen... yes
checking for wcslen... yes
checking for wcsnlen... yes
checking for mbrtowc... yes
checking for wcrtomb... yes
checking whether _snprintf is declared... no
checking whether <wchar.h> uses 'inline' correctly... yes
checking whether <sys/socket.h> is self-contained... yes
checking for shutdown... (cached) yes
checking whether <sys/socket.h> defines the SHUT_* macros... yes
checking for struct sockaddr_storage... yes
checking for sa_family_t... yes
checking for struct sockaddr_storage.ss_family... yes
checking if environ is properly declared... no
checking whether stat file-mode macros are broken... no
checking for nlink_t... yes
checking whether getcwd (NULL, 0) allocates memory for result... yes
checking for getcwd with POSIX signature... yes
checking for struct timeval... yes
checking for wide-enough struct timeval.tv_sec member... yes
checking for IPv4 sockets... yes
checking for IPv6 sockets... yes
checking whether lstat correctly handles trailing slash... no
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking whether <sys/select.h> is self-contained... yes
checking for inline... inline
checking for library containing setsockopt... none needed
checking whether select supports a 0 argument... yes
checking whether select detects invalid fds... yes
checking whether alarm is declared... yes
checking for O_CLOEXEC... yes
checking for promoted mode_t type... int
checking whether strerror_r is declared... (cached) yes
checking whether setenv is declared... yes
checking search.h usability... yes
checking search.h presence... yes
checking for search.h... yes
checking for tsearch... yes
checking for struct timespec in <time.h>... yes
checking whether unsetenv is declared... yes
checking for alloca as a compiler built-in... yes
checking byteswap.h usability... no
checking byteswap.h presence... no
checking for byteswap.h... no
checking whether // is distinct from /... (cached) no
checking whether dup2 works... yes
checking for error_at_line... no
checking whether fcntl handles F_DUPFD correctly... yes
checking whether fcntl understands F_DUPFD_CLOEXEC... yes
checking whether conversion from 'int' to 'long double' works... yes
checking whether getdtablesize works... yes
checking whether program_invocation_name is declared... no
checking whether program_invocation_short_name is declared... no
checking whether __argv is declared... no
checking whether __progname is defined in default libraries... yes
checking whether INT32_MAX < INTMAX_MAX... yes
checking whether INT64_MAX == LONG_MAX... yes
checking whether UINT32_MAX < UINTMAX_MAX... yes
checking whether UINT64_MAX == ULONG_MAX... yes
checking for pthread_rwlock_t... (cached) yes
checking whether pthread_rwlock_rdlock prefers a writer to a reader... (cached) yes
checking whether program_invocation_name is declared... (cached) no
checking whether program_invocation_short_name is declared... (cached) no
checking for raise... yes
checking for sigprocmask... yes
checking for volatile sig_atomic_t... yes
checking for sighandler_t... no
checking for stdint.h... (cached) yes
checking for SIZE_MAX... yes
checking for ssize_t... (cached) yes
checking for good max_align_t... yes
checking whether NULL can be used in arbitrary expressions... yes
checking which flavor of printf attribute matches inttypes macros... system
checking for working strndup... yes
checking for working strnlen... yes
checking for strtoll... yes
checking for strtoull... yes
checking for ptrdiff_t... yes
checking for vasprintf... yes
checking for stdint.h... (cached) yes
checking for long long int... (cached) yes
checking whether fdopen sets errno... yes
checking for getpagesize... yes
checking whether getpagesize is declared... yes
checking whether gettimeofday clobbers localtime buffer... no
checking for gettimeofday with POSIX signature... yes
checking for library containing inet_pton... none required
checking whether inet_pton is declared... yes
checking whether byte ordering is bigendian... no
checking for ioctl... yes
checking for ioctl with POSIX signature... no
checking for mmap... (cached) yes
checking for MAP_ANONYMOUS... yes
checking for library containing nanosleep... none required
checking for working nanosleep... no (mishandles large arguments)
checking whether <netinet/in.h> is self-contained... yes
checking whether open recognizes a trailing slash... no
checking whether perror matches strerror... yes
checking whether pthread_sigmask works without -lpthread... yes
checking whether pthread_sigmask returns error numbers... yes
checking whether pthread_sigmask unblocks signals correctly... guessing yes
checking for putenv compatible with GNU and SVID... no
checking whether _putenv is declared... no
checking whether select supports a 0 argument... (cached) yes
checking whether select detects invalid fds... (cached) yes
checking whether setenv validates arguments... yes
checking for struct sigaction.sa_sigaction... yes
checking for sigprocmask... (cached) yes
checking whether sleep is declared... yes
checking for working sleep... yes
checking for socklen_t... yes
checking whether stat handles trailing slashes on files... no
checking for struct stat.st_atim.tv_nsec... no
checking for struct stat.st_atimespec.tv_nsec... yes
checking for struct stat.st_birthtimespec.tv_nsec... yes
checking for working stdalign.h... yes
checking for mmap... (cached) yes
checking for MAP_ANONYMOUS... yes
checking whether symlink handles trailing slash correctly... no
checking whether <sys/ioctl.h> declares ioctl... yes
checking for nlink_t... (cached) yes
checking for pthread_atfork... yes
checking for unsetenv... yes
checking for unsetenv() return type... int
checking whether unsetenv obeys POSIX... yes
checking for useconds_t... yes
checking whether usleep allows large arguments... yes
checking for sched_yield in -lrt... no
checking for sched_yield in -lposix4... no
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking how to convert x86_64-apple-darwin18.6.0 file names to x86_64-apple-darwin18.6.0 format... func_convert_file_noop
checking how to convert x86_64-apple-darwin18.6.0 file names to toolchain format... func_convert_file_noop
checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... (cached) ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for dsymutil... dsymutil
checking for nmedit... nmedit
checking for lipo... lipo
checking for otool... otool
checking for otool64... no
checking for -single_module linker flag... yes
checking for -exported_symbols_list linker flag... yes
checking for -force_load linker flag... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... yes
checking for gcc option to produce PIC... -fno-common -DPIC
checking if gcc PIC flag -fno-common -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin18.6.0 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for gcc option to accept ISO C99... none needed
checking for gcc option to accept ISO Standard C... (cached) none needed
checking how to run the C preprocessor... gcc -E
checking for function prototypes... yes
checking for special C compiler options needed for large files... (cached) no
checking for _FILE_OFFSET_BITS value needed for large files... (cached) no
checking size of long... 8
checking for byteswap.h... (cached) no
checking endian.h usability... no
checking endian.h presence... no
checking for endian.h... no
checking libintl.h usability... no
checking libintl.h presence... no
checking for libintl.h... no
checking for mmap... (cached) yes
checking for bindtextdomain... no
checking for pod2man... pod2man
checking for pod2text... pod2text
checking whether NLS is requested... yes
checking for msgfmt... /usr/local/opt/gettext/bin/msgfmt
checking for gmsgfmt... /usr/local/opt/gettext/bin/msgfmt
checking for xgettext... /usr/local/opt/gettext/bin/xgettext
checking for msgmerge... /usr/local/opt/gettext/bin/msgmerge
checking for CFPreferencesCopyAppValue... yes
checking for CFLocaleCopyCurrent... yes
checking for GNU gettext in libc... no
checking for iconv... (cached) yes
checking for working iconv... (cached) yes
checking how to link with libiconv... -liconv
checking for GNU gettext in libintl... no
checking whether to use NLS... no
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for libxml-2.0... yes
checking for open_memstream... yes
checking for ocamlc... ocamlc
OCaml version is 4.07.0
OCaml library path is /usr/local/lib/ocaml
checking for ocamlopt... ocamlopt
checking for ocamlc.opt... ocamlc.opt
checking for ocamlopt.opt... ocamlopt.opt
checking for ocamldep... ocamldep
checking for ocamlmktop... ocamlmktop
checking for ocamlmklib... ocamlmklib
checking for ocamldoc... ocamldoc
checking for ocamlbuild... no
checking for ocamlfind... no
checking for perl... perl
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating extra-tests/Makefile
config.status: creating generator/Makefile
config.status: creating gnulib/lib/Makefile
config.status: creating gnulib/tests/Makefile
config.status: creating hivex.pc
config.status: creating images/Makefile
config.status: creating lib/Makefile
config.status: creating lib/tools/Makefile
config.status: creating ocaml/Makefile
config.status: creating ocaml/META
config.status: creating perl/Makefile
config.status: creating perl/Makefile.PL
config.status: creating python/Makefile
config.status: creating po/Makefile.in
config.status: creating regedit/Makefile
config.status: creating ruby/Makefile
config.status: creating ruby/Rakefile
config.status: creating sh/Makefile
config.status: creating xml/Makefile
config.status: creating python/run-python-tests
config.status: creating ruby/run-ruby-tests
config.status: creating run
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile


------------------------------------------------------------
Thank you for downloading hivex 1.3.18

This is how we have configured the optional components for you today:

-n OCaml bindings ...................... 
no
-n Perl bindings ....................... 
no
-n Python bindings ..................... 
no
-n Ruby bindings ....................... 
no

If any optional component is configured 'no' when you expected 'yes'
then you should check the preceeding messages.

Please report bugs back to the mailing list:
http://www.redhat.com/mailman/listinfo/libguestfs

Next you should type 'make' to build the package,
then 'make check' to run the tests.
------------------------------------------------------------
mdscentral-6:hivex tperfitt$ make
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in gnulib/lib
  GEN      alloca.h
  GEN      byteswap.h
  GEN      fcntl.h
  GEN      getopt.h
  GEN      getopt-cdefs.h
  GEN      inttypes.h
  GEN      limits.h
  GEN      signal.h
  GEN      stdint.h
  GEN      stdio.h
  GEN      stdlib.h
  GEN      string.h
  GEN      sys/types.h
  GEN      unistd.h
  GEN      wchar.h
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
  CC       c-ctype.lo
  CC       dirname-lgpl.lo
  CC       basename-lgpl.lo
  CC       stripslash.lo
  CC       exitfail.lo
  CC       fd-hook.lo
  CC       full-read.lo
  CC       full-write.lo
  CC       getprogname.lo
  CC       glthread/lock.lo
  CC       progname.lo
  CC       safe-read.lo
  CC       safe-write.lo
  CC       glthread/threadlib.lo
  CC       unistd.lo
  CC       xsize.lo
  CC       xstrtol.lo
  CC       xstrtoul.lo
  CC       xstrtol-error.lo
  CC       asnprintf.lo
  CC       error.lo
  CC       getopt.lo
  CC       getopt1.lo
  CC       printf-args.lo
  CC       printf-parse.lo
  CC       strerror.lo
  CC       strerror-override.lo
  CC       vasnprintf.lo
  CC       xstrtoll.lo
  CC       xstrtoull.lo
  CCLD     libgnu.la
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(c-ctype.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(fd-hook.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(getprogname.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(threadlib.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(unistd.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(xsize.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(c-ctype.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(fd-hook.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(getprogname.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(threadlib.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(unistd.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgnu.a(xsize.o) has no symbols
Making all in generator
make[2]: Nothing to be done for `all'.
Making all in lib
Making all in tools
make[3]: Nothing to be done for `all'.
  CC       libhivex_la-handle.lo
handle.c:47:10: fatal error: 'hivex.h' file not found
#include "hivex.h"
         ^~~~~~~~~
1 error generated.
make[3]: *** [libhivex_la-handle.lo] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
mdscentral-6:hivex tperfitt$ git branch
* (HEAD detached at v1.3.18)
  master
mdscentral-6:hivex tperfitt$ auto
mdscentral-6:hivex tperfitt$ ./auto
autogen.sh      autom4te.cache/ 
mdscentral-6:hivex tperfitt$ ./autogen.sh 

# Ensure that whenever we pull in a gnulib update or otherwise change to a
# different version (i.e., when switching branches), we also rerun ./bootstrap.
curr_status=.git-module-status
t=$(git submodule status)
git submodule status
if test "$t" = "$(cat $curr_status 2>/dev/null)"; then
    : # good, it's up to date
else
    echo running bootstrap...
    ./bootstrap && echo "$t" > $curr_status
fi
cat $curr_status 2>/dev/null

CONFIGUREDIR=.

# Run configure in BUILDDIR if it's set
if [ ! -z "$BUILDDIR" ]; then
    mkdir -p $BUILDDIR
    cd $BUILDDIR

    CONFIGUREDIR=..
fi

# Rerun the generator (requires OCaml interpreter).  This is *not* for
# anything that is required at configure-time when configure is run
# from a distribution tarball.  From those, nothing ocaml-related is
# required.
mkdir -p perl/lib/Win
./generator/generator.ml
File "compiler internals", line 1:
Error: Unbound module Stdlib
mdscentral-6:hivex tperfitt$ 









More information about the Libguestfs mailing list