Skip to content

CMake build failure on macOS: __libcheck.c:4:10: fatal error: 'err.h' file not found #4956

@karkhaz

Description

@karkhaz

[Edit] Current status: the workaround to this bug is to set the absolute path to the compiler when configuring CBMC, like this:

> cmake -DCMAKE_C_COMPILER=/usr/bin/clang ...

original bug report follows


CBMC fails to build with CMake on macOS. For some reason, building using the Makefile in the src directory works.

I've been unable to find a commit that broke this, and I also recently updated my system (both macOS itself and also the command-line tools). So I'm wondering if that was to blame. I haven't been able to find any information online about moved headers, though. err.h still exists:

> find /Library/Developer -name err.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/err.h

but I don't have an older system to compare against.

Command:

> rm -rf build/*
> cmake -H. -Bbuild -GNinja -DWITH_JBMC=0 -DCMAKE_CXX_FLAGS="-fcolor-diagnostics"
> cmake --build build
# ...
[18/803] Generating library-check.stamp
FAILED: src/ansi-c/library-check.stamp
cd /Users/karkhaz/cbmc/src/ansi-c && /Users/karkhaz/cbmc/src/ansi-c/library_check.sh /Library/Developer/CommandLineTools/usr/bin/clang /Users/karkhaz/cbmc/src/ansi-c/library/cegis.c /Users/karkhaz/cbmc/src/ansi-c/library/ctype.c /Users/karkhaz/cbmc/src/ansi-c/library/err.c /Users/karkhaz/cbmc/src/ansi-c/library/errno.c /Users/karkhaz/cbmc/src/ansi-c/library/fcntl.c /Users/karkhaz/cbmc/src/ansi-c/library/fenv.c /Users/karkhaz/cbmc/src/ansi-c/library/float.c /Users/karkhaz/cbmc/src/ansi-c/library/gcc.c /Users/karkhaz/cbmc/src/ansi-c/library/getopt.c /Users/karkhaz/cbmc/src/ansi-c/library/inet.c /Users/karkhaz/cbmc/src/ansi-c/library/intrin.c /Users/karkhaz/cbmc/src/ansi-c/library/locale.c /Users/karkhaz/cbmc/src/ansi-c/library/math.c /Users/karkhaz/cbmc/src/ansi-c/library/netdb.c /Users/karkhaz/cbmc/src/ansi-c/library/noop.c /Users/karkhaz/cbmc/src/ansi-c/library/process.c /Users/karkhaz/cbmc/src/ansi-c/library/pthread_lib.c /Users/karkhaz/cbmc/src/ansi-c/library/semaphore.c /Users/karkhaz/cbmc/src/ansi-c/library/setjmp.c /Users/karkhaz/cbmc/src/ansi-c/library/signal.c /Users/karkhaz/cbmc/src/ansi-c/library/stdio.c /Users/karkhaz/cbmc/src/ansi-c/library/stdlib.c /Users/karkhaz/cbmc/src/ansi-c/library/string.c /Users/karkhaz/cbmc/src/ansi-c/library/strings.c /Users/karkhaz/cbmc/src/ansi-c/library/syslog.c /Users/karkhaz/cbmc/src/ansi-c/library/time.c /Users/karkhaz/cbmc/src/ansi-c/library/unistd.c /Users/karkhaz/cbmc/src/ansi-c/library/windows.c /Users/karkhaz/cbmc/src/ansi-c/library/x86_assembler.c && /usr/local/Cellar/cmake/3.15.0/bin/cmake -E touch /Users/karkhaz/cbmc/build/src/ansi-c/library-check.stamp
Checking /Users/karkhaz/cbmc/src/ansi-c/library/cegis.c
Checking /Users/karkhaz/cbmc/src/ansi-c/library/ctype.c
Checking /Users/karkhaz/cbmc/src/ansi-c/library/err.c
__libcheck.c:4:10: fatal error: 'err.h' file not found
#include <err.h>
         ^~~~~~~
1 error generated.
clang: error: no such file or directory: '__libcheck.i'
clang: error: no input files
rm: __libcheck.s: No such file or directory
rm: __libcheck.i: No such file or directory
[21/803] Building CXX object src/util/CMakeFiles/util.dir/nondet.cpp.o
ninja: build stopped: subcommand failed.

My command-line tools:

> pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
package-id: com.apple.pkg.CLTools_Executables
version: 10.3.0.0.1.1562985497
volume: /
location: /
install-time: 1564051272
groups: com.apple.FindSystemFiles.pkg-group

Operating system is macOS 10.14.6. Commit is 306697d6, but I've tried starting a bisect waaaaay in the past (d201bad22) and this still shows up even then, so I'm guessing it's an OS issue.

Metadata

Metadata

Labels

awsBugs or features of importance to AWS CBMC users

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions