summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zmick <david@dpzmick.com>2022-12-29 03:49:09 -0600
committerGitHub <noreply@github.com>2022-12-29 10:49:09 +0100
commitca6e1788909c62195740b75a7f71a4c6357cebd4 (patch)
tree2328145cd8eab064098138099bd1977d5c8c4fd5
parentb145085fff3c7301e7e231d6ccda4e2051b04b18 (diff)
downloadspack-ca6e1788909c62195740b75a7f71a4c6357cebd4.tar.gz
spack-ca6e1788909c62195740b75a7f71a4c6357cebd4.tar.bz2
spack-ca6e1788909c62195740b75a7f71a4c6357cebd4.tar.xz
spack-ca6e1788909c62195740b75a7f71a4c6357cebd4.zip
jq: set -D_REENTRANT for builds on darwin (#34691)
-rw-r--r--var/spack/repos/builtin/packages/jq/builtinc.patch48
-rw-r--r--var/spack/repos/builtin/packages/jq/package.py10
2 files changed, 7 insertions, 51 deletions
diff --git a/var/spack/repos/builtin/packages/jq/builtinc.patch b/var/spack/repos/builtin/packages/jq/builtinc.patch
deleted file mode 100644
index 943edbc9d2..0000000000
--- a/var/spack/repos/builtin/packages/jq/builtinc.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff --git a/src/builtin.c b/src/builtin.c
-old mode 100644
-new mode 100755
-index c6c8c2e..e336472
---- a/src/builtin.c
-+++ b/src/builtin.c
-@@ -185,7 +185,7 @@ static jv f_modf(jq_state *jq, jv input) {
- return jv_array_append(ret, jv_number(i));
- }
- #endif
--#ifdef HAVE_LGAMMA_R
-+#if defined(HAVE_LGAMMA_R) && !(defined(__APPLE__) && defined(__GNUC__) && !defined(_REENTRANT))
- static jv f_lgamma_r(jq_state *jq, jv input) {
- if (jv_get_kind(input) != JV_KIND_NUMBER) {
- return type_error(input, "number required");
-@@ -1581,7 +1581,7 @@ static const struct cfunction function_list[] = {
- #ifdef HAVE_MODF
- {(cfunction_ptr)f_modf,"modf", 1},
- #endif
--#ifdef HAVE_LGAMMA_R
-+#if defined(HAVE_LGAMMA_R) && !(defined(__APPLE__) && defined(__GNUC__) && !defined(_REENTRANT))
- {(cfunction_ptr)f_lgamma_r,"lgamma_r", 1},
- #endif
- {(cfunction_ptr)f_plus, "_plus", 3},
-diff --git a/src/builtin.c b/src/builtin.c
-old mode 100644
-new mode 100755
-index c6c8c2e..e336472
---- a/src/builtin.c
-+++ b/src/builtin.c
-@@ -185,7 +185,7 @@ static jv f_modf(jq_state *jq, jv input) {
- return jv_array_append(ret, jv_number(i));
- }
- #endif
--#ifdef HAVE_LGAMMA_R
-+#if defined(HAVE_LGAMMA_R) && !(defined(__APPLE__) && defined(__GNUC__) && !defined(_REENTRANT))
- static jv f_lgamma_r(jq_state *jq, jv input) {
- if (jv_get_kind(input) != JV_KIND_NUMBER) {
- return type_error(input, "number required");
-@@ -1581,7 +1581,7 @@ static const struct cfunction function_list[] = {
- #ifdef HAVE_MODF
- {(cfunction_ptr)f_modf,"modf", 1},
- #endif
--#ifdef HAVE_LGAMMA_R
-+#if defined(HAVE_LGAMMA_R) && !(defined(__APPLE__) && defined(__GNUC__) && !defined(_REENTRANT))
- {(cfunction_ptr)f_lgamma_r,"lgamma_r", 1},
- #endif
- {(cfunction_ptr)f_plus, "_plus", 3},
diff --git a/var/spack/repos/builtin/packages/jq/package.py b/var/spack/repos/builtin/packages/jq/package.py
index b24c74314f..4c9ea6518d 100644
--- a/var/spack/repos/builtin/packages/jq/package.py
+++ b/var/spack/repos/builtin/packages/jq/package.py
@@ -6,7 +6,6 @@
import os.path
import sys
-from spack.operating_systems.mac_os import macos_version
from spack.package import *
@@ -22,8 +21,13 @@ class Jq(AutotoolsPackage):
depends_on("oniguruma")
depends_on("bison@3.0:", type="build")
- if sys.platform == "darwin" and macos_version() >= Version("10.15"):
- patch("builtinc.patch", when="@1.5:")
+ def configure_args(self):
+ # on darwin, required math functions like lgammaf_r are gated behind
+ # explicit reentrant flag
+ if sys.platform == "darwin":
+ return ["CPPFLAGS=-D_REENTRANT"]
+ else:
+ return []
@run_after("install")
@on_package_attributes(run_tests=True)