summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch
blob: 514073d94e43daa0d4090382ad7f5152514a07fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
From 061a8ae1d1d000892d6dba89a444922e7a28804b Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Fri, 29 Sep 2023 22:53:24 +0100
Subject: [PATCH] This regex decides whether to use O3 opimisation on numpy or
 not.

It includes "od", which happens to be a substring of "reproducible"
but not "qemux86-world".

The regex will run against all compiler options including things like:

-fmacro-prefix-map=/XXX/build/tmp/work/core2-64-poky-linux/python3-numpy/1.26.0/numpy-1.26.0=/usr/src/debug/python3-numpy/1.26.0-r0

i.e. including build paths.

Reduce the regex to something deterministic for our builds, assuming
nobody builds in /home/debug:full/

The autobuilder race depended upon whether qemux86-world or the
reproducible target ran first and won the race to populate sstate.

Upstream-Status: Inappropriate [upstream have dropped distutils and switched to meson]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 numpy/distutils/ccompiler_opt.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/numpy/distutils/ccompiler_opt.py b/numpy/distutils/ccompiler_opt.py
index b1a6fa3..7b0302b 100644
--- a/numpy/distutils/ccompiler_opt.py
+++ b/numpy/distutils/ccompiler_opt.py
@@ -991,7 +991,7 @@ def __init__(self):
             ("cc_is_nocc",     "", ""),
         )
         detect_args = (
-           ("cc_has_debug",  ".*(O0|Od|ggdb|coverage|debug:full).*", ""),
+           ("cc_has_debug",  ".*debug:full.*", ""),
            ("cc_has_native",
                 ".*(-march=native|-xHost|/QxHost|-mcpu=a64fx).*", ""),
            # in case if the class run with -DNPY_DISABLE_OPTIMIZATION