diff --git a/src/ansi-c/CMakeLists.txt b/src/ansi-c/CMakeLists.txt index 8627bfaef4c..ae387958df9 100644 --- a/src/ansi-c/CMakeLists.txt +++ b/src/ansi-c/CMakeLists.txt @@ -40,7 +40,7 @@ list(REMOVE_ITEM library_check_sources ${platform_unavail}) add_custom_command( DEPENDS ${library_check_sources} - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/library_check.sh ${library_check_sources} + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/library_check.sh ${CMAKE_C_COMPILER} ${library_check_sources} COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/library-check.stamp OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/library-check.stamp WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/src/ansi-c/Makefile b/src/ansi-c/Makefile index 1cfc9b01385..53e8104aac1 100644 --- a/src/ansi-c/Makefile +++ b/src/ansi-c/Makefile @@ -92,7 +92,7 @@ else platform_unavail = library/java.io.c library/threads.c endif library_check: library/*.c - ./library_check.sh $(filter-out $(platform_unavail), $^) + ./library_check.sh $(CC) $(filter-out $(platform_unavail), $^) touch $@ cprover_library.inc: library/converter$(EXEEXT) library/*.c diff --git a/src/ansi-c/library_check.sh b/src/ansi-c/library_check.sh index c65dcd8919e..9da4ee6f633 100755 --- a/src/ansi-c/library_check.sh +++ b/src/ansi-c/library_check.sh @@ -1,13 +1,17 @@ #!/usr/bin/env bash +CC=$1 +shift + for f in "$@"; do echo "Checking ${f}" cp "${f}" __libcheck.c perl -p -i -e 's/(__builtin_[^v])/s$1/' __libcheck.c + perl -p -i -e 's/(_mm_.fence)/s$1/' __libcheck.c perl -p -i -e 's/(__sync_)/s$1/' __libcheck.c perl -p -i -e 's/(__noop)/s$1/' __libcheck.c - cc -std=gnu99 -E -include library/cprover.h -D__CPROVER_bool=_Bool -D__CPROVER_thread_local=__thread -DLIBRARY_CHECK -o __libcheck.i __libcheck.c - cc -S -Wall -Werror -pedantic -Wextra -std=gnu99 __libcheck.i -o __libcheck.s -Wno-unused-label + $CC -std=gnu99 -E -include library/cprover.h -D__CPROVER_bool=_Bool -D__CPROVER_thread_local=__thread -DLIBRARY_CHECK -o __libcheck.i __libcheck.c + $CC -S -Wall -Werror -pedantic -Wextra -std=gnu99 __libcheck.i -o __libcheck.s -Wno-unused-label ec="${?}" rm __libcheck.s __libcheck.i __libcheck.c [ "${ec}" -eq 0 ] || exit "${ec}"