We've seen reproducibility failures where it appears an extra -O3 compiler flag ends
up in the multiarray library compilation. This can only really have come through
extra_info since it only affects just this library. Rather than try and track
down exactly where this came from in a rabbit warren of code, just disable
this since we don't have any of the dependencies.

Upstream-Status: Inappropriate [OE specific config hack]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Index: numpy-1.25.2/numpy/core/setup.py
===================================================================
--- numpy-1.25.2.orig/numpy/core/setup.py
+++ numpy-1.25.2/numpy/core/setup.py
@@ -755,22 +755,7 @@ def configuration(parent_package='',top_
             join('src', 'common', 'npy_cpu_features.c'),
             ]
 
-    if os.environ.get('NPY_USE_BLAS_ILP64', "0") != "0":
-        blas_info = get_info('blas_ilp64_opt', 2)
-    else:
-        blas_info = get_info('blas_opt', 0)
-
-    have_blas = blas_info and ('HAVE_CBLAS', None) in blas_info.get('define_macros', [])
-
-    if have_blas:
-        extra_info = blas_info
-        # These files are also in MANIFEST.in so that they are always in
-        # the source distribution independently of HAVE_CBLAS.
-        common_src.extend([join('src', 'common', 'cblasfuncs.c'),
-                           join('src', 'common', 'python_xerbla.c'),
-                          ])
-    else:
-        extra_info = {}
+    extra_info = {}
 
     #######################################################################
     #             _multiarray_umath module - multiarray part              #
