From 0309fd7e8b657946ee349a8764831aab3b20c793 Mon Sep 17 00:00:00 2001 From: Charles Harris Date: Sat, 4 Feb 2023 09:17:56 -0700 Subject: [PATCH] Revert "Merge pull request #22972 from charris/backport-22939" This reverts commit 30535f40816306858841b14dced7ef092bccfad8, reversing changes made to 9b015239827d44bceb7a71b7d032bc971c649a50. --- numpy/core/include/numpy/npy_math.h | 14 ++++++++++---- numpy/core/setup.py | 8 ++++---- numpy/core/src/npymath/arm64_exports.c | 9 +-------- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/numpy/core/include/numpy/npy_math.h b/numpy/core/include/numpy/npy_math.h index 900508662e47..3089f302abe3 100644 --- a/numpy/core/include/numpy/npy_math.h +++ b/numpy/core/include/numpy/npy_math.h @@ -184,23 +184,29 @@ NPY_INPLACE double npy_atan2(double x, double y); #define npy_fmod fmod #define npy_floor floor #define npy_expm1 expm1 -#define npy_log1p log1p #define npy_acosh acosh -#define npy_asinh asinh #define npy_atanh atanh #define npy_rint rint #define npy_trunc trunc #define npy_exp2 exp2 #define npy_frexp frexp #define npy_ldexp ldexp -#define npy_copysign copysign #define npy_exp exp #define npy_sqrt sqrt #define npy_pow pow #define npy_modf modf +#if defined(__arm64__) && defined(__APPLE__) +/* due to a build problem with scipy, export these as functions */ +NPY_INPLACE double npy_asinh(double x); +NPY_INPLACE double npy_copysign(double y, double x); +NPY_INPLACE double npy_log1p(double x); +#else +#define npy_asinh asinh +#define npy_copysign copysign +#define npy_log1p log1p +#endif double npy_nextafter(double x, double y); - double npy_spacing(double x); /* diff --git a/numpy/core/setup.py b/numpy/core/setup.py index 927defa0625d..1a7b8ea706a7 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -771,6 +771,10 @@ def get_mathlib_info(*args): join('src', 'npymath', 'ieee754.c.src'), join('src', 'npymath', 'npy_math_complex.c.src'), join('src', 'npymath', 'halffloat.c'), + # Remove this once scipy macos arm64 build correctly + # links to the arm64 npymath library, + # see gh-22673 + join('src', 'npymath', 'arm64_exports.c'), ] config.add_installed_library('npymath', @@ -1002,10 +1006,6 @@ def get_mathlib_info(*args): join('src', 'multiarray', 'textreading', 'stream_pyobject.c'), join('src', 'multiarray', 'textreading', 'str_to_int.c'), join('src', 'multiarray', 'textreading', 'tokenize.cpp'), - # Remove this once scipy macos arm64 build correctly - # links to the arm64 npymath library, - # see gh-22673 - join('src', 'npymath', 'arm64_exports.c'), ] ####################################################################### diff --git a/numpy/core/src/npymath/arm64_exports.c b/numpy/core/src/npymath/arm64_exports.c index dfa8054d7e9d..d65bb4f6d3e2 100644 --- a/numpy/core/src/npymath/arm64_exports.c +++ b/numpy/core/src/npymath/arm64_exports.c @@ -1,14 +1,12 @@ #if defined(__arm64__) && defined(__APPLE__) #include -/* +/* * Export these for scipy, since the SciPy build for macos arm64 * downloads the macos x86_64 NumPy, and does not error when the * linker fails to use npymathlib.a. Importing numpy will expose * these external functions * See https://github.com/numpy/numpy/issues/22673#issuecomment-1327520055 - * - * This file is actually compiled as part of the main module. */ double npy_asinh(double x) { @@ -22,9 +20,4 @@ double npy_copysign(double y, double x) { double npy_log1p(double x) { return log1p(x); } - -double npy_nextafter(double x, double y) { - return nextafter(x, y); -} - #endif