diff --git a/pkgs/by-name/lc/lcalc/libcxx-compat.patch b/pkgs/by-name/lc/lcalc/libcxx-compat.patch new file mode 100644 index 000000000000..882dc2549475 --- /dev/null +++ b/pkgs/by-name/lc/lcalc/libcxx-compat.patch @@ -0,0 +1,30 @@ +diff --git a/src/libLfunction/Lcomplex.h b/src/libLfunction/Lcomplex.h +index 363bbf4..ffecd70 100644 +--- a/src/libLfunction/Lcomplex.h ++++ b/src/libLfunction/Lcomplex.h +@@ -56,8 +56,11 @@ + #include + #include + +-namespace std +-{ ++#ifdef _LIBCPP_VERSION ++_LIBCPP_BEGIN_NAMESPACE_STD ++#else ++namespace std { ++#endif + // Forward declarations + template class complex; + template<> class complex; +@@ -1193,6 +1196,10 @@ namespace std + inline + complex::complex(const complex& __z) + : _M_value(_ComplexT(__z._M_value)) { } +-} // namespace std ++#ifdef _LIBCPP_VERSION ++_LIBCPP_END_NAMESPACE_STD ++#else ++} ++#endif + + #endif /* _CPP_COMPLEX */ diff --git a/pkgs/by-name/lc/lcalc/package.nix b/pkgs/by-name/lc/lcalc/package.nix index 22f326219a47..f8fbf97b7483 100644 --- a/pkgs/by-name/lc/lcalc/package.nix +++ b/pkgs/by-name/lc/lcalc/package.nix @@ -19,13 +19,9 @@ stdenv.mkDerivation rec { hash = "sha256-RxWZ7T0I9zV7jUVnL6jV/PxEoU32KY7Q1UsOL5Lonuc="; }; - # workaround for vendored GCC 3.5 + # workaround for vendored GCC on libc++ # https://gitlab.com/sagemath/lcalc/-/issues/16 - env.NIX_CFLAGS_COMPILE = toString [ - "-D_GLIBCXX_COMPLEX" - "-D_LIBCPP_COMPLEX" - "-D_LIBCPP___FWD_COMPLEX_H" - ]; + patches = [ ./libcxx-compat.patch ]; nativeBuildInputs = [ autoreconfHook