diff options
author | Brian J. Cardiff <bcardiff@gmail.com> | 2023-01-19 19:21:13 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-19 23:21:13 +0100 |
commit | 4141729d9c97e3beab8ef95d9ad0420226e27401 (patch) | |
tree | 9994ca40f317e6dc2a042de74ffb02e222952640 /pkgs/development/compilers/souffle | |
parent | 90fb934fec1bde7c9ce998f12f89bd83f8e825ff (diff) |
souffle: add darwin support (#208373)
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Diffstat (limited to 'pkgs/development/compilers/souffle')
-rw-r--r-- | pkgs/development/compilers/souffle/default.nix | 14 | ||||
-rw-r--r-- | pkgs/development/compilers/souffle/threads.patch | 31 |
2 files changed, 43 insertions, 2 deletions
diff --git a/pkgs/development/compilers/souffle/default.nix b/pkgs/development/compilers/souffle/default.nix index 30c87ed997356..96d3b5f6fc422 100644 --- a/pkgs/development/compilers/souffle/default.nix +++ b/pkgs/development/compilers/souffle/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub +{ lib, stdenv, fetchFromGitHub, fetchpatch , bash-completion, perl, ncurses, zlib, sqlite, libffi , mcpp, cmake, bison, flex, doxygen, graphviz , makeWrapper @@ -19,6 +19,17 @@ stdenv.mkDerivation rec { sha256 = "sha256-wdTBSmyA2I+gaSV577NNKA2oY2fdVTGmvV7h15NY1tU="; }; + patches = [ + ./threads.patch + (fetchpatch { + name = "missing-override.patch"; + url = "https://github.com/souffle-lang/souffle/commit/da2d778f0cca94f206686546fa56b9ffc738ad75.patch"; + sha256 = "Oefm3vRRwOyom94oGSOK2w9m23gkbJ++9gcWrdLlkyk="; + }) + ]; + + hardeningDisable = lib.optionals stdenv.isDarwin [ "strictoverflow" ]; + nativeBuildInputs = [ bison cmake flex mcpp doxygen graphviz makeWrapper perl ]; buildInputs = [ bash-completion ncurses zlib sqlite libffi ]; # these propagated inputs are needed for the compiled Souffle mode to work, @@ -35,7 +46,6 @@ stdenv.mkDerivation rec { outputs = [ "out" ]; meta = with lib; { - broken = stdenv.isDarwin; description = "A translator of declarative Datalog programs into the C++ language"; homepage = "https://souffle-lang.github.io/"; platforms = platforms.unix; diff --git a/pkgs/development/compilers/souffle/threads.patch b/pkgs/development/compilers/souffle/threads.patch new file mode 100644 index 0000000000000..cf23baa1550d4 --- /dev/null +++ b/pkgs/development/compilers/souffle/threads.patch @@ -0,0 +1,31 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 73d5c3c84..e4b0dbfd1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -104,13 +104,6 @@ option(SOUFFLE_CUSTOM_GETOPTLONG "Enable/Disable custom getopt_long implementati + cmake_dependent_option(SOUFFLE_USE_LIBCPP "Link to libc++ instead of libstdc++" ON + "CMAKE_CXX_COMPILER_ID STREQUAL Clang" OFF) + +-# Using Clang? Likely want to use `lld` too. +-if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") +- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld") +- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld") +- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=lld") +-endif() +- + # Add aditional modules to CMake + set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) + +@@ -247,7 +240,11 @@ endif() + # pthreads + # -------------------------------------------------- + set(THREADS_PREFER_PTHREAD_FLAG ON) +-find_package(Threads REQUIRED) ++set(CMAKE_THREAD_LIBS_INIT "-lpthread") ++set(CMAKE_HAVE_THREADS_LIBRARY 1) ++set(CMAKE_USE_WIN32_THREADS_INIT 0) ++set(CMAKE_USE_PTHREADS_INIT 1) ++set(THREADS_PREFER_PTHREAD_FLAG ON) + + # -------------------------------------------------- + # OpenMP |