add patch for gcc@8 for python 2.7.14 (#8990)
* add gcc8 patch for python 2.7.14 Change-Id: I48cb5e717577d8158d1f7f1fe270156a01940d8a * add explaining comment Change-Id: Ia46168e2269d7de47d7ec8d0bf9e3b7696ea8e31 * remove unnecessary part of the patch Change-Id: Iee763effe2439f0f160c1547640eca4bb9451a68
This commit is contained in:
parent
5be5c486ac
commit
ead9363bee
35
var/spack/repos/builtin/packages/python/gcc-8-2.7.14.patch
Normal file
35
var/spack/repos/builtin/packages/python/gcc-8-2.7.14.patch
Normal file
@ -0,0 +1,35 @@
|
||||
diff --git a/Include/objimpl.h b/Include/objimpl.h
|
||||
index 5f2868332955..cbf6bc3f8763 100644
|
||||
--- a/Include/objimpl.h
|
||||
+++ b/Include/objimpl.h
|
||||
@@ -248,6 +248,20 @@ PyAPI_FUNC(PyVarObject *) _PyObject_GC_Resize(PyVarObject *, Py_ssize_t);
|
||||
/* for source compatibility with 2.2 */
|
||||
#define _PyObject_GC_Del PyObject_GC_Del
|
||||
|
||||
+/*
|
||||
+ * Former over-aligned definition of PyGC_Head, used to compute the size of the
|
||||
+ * padding for the new version below.
|
||||
+ */
|
||||
+union _gc_head;
|
||||
+union _gc_head_old {
|
||||
+ struct {
|
||||
+ union _gc_head_old *gc_next;
|
||||
+ union _gc_head_old *gc_prev;
|
||||
+ Py_ssize_t gc_refs;
|
||||
+ } gc;
|
||||
+ long double dummy;
|
||||
+};
|
||||
+
|
||||
/* GC information is stored BEFORE the object structure. */
|
||||
typedef union _gc_head {
|
||||
struct {
|
||||
@@ -255,7 +269,8 @@ typedef union _gc_head {
|
||||
union _gc_head *gc_prev;
|
||||
Py_ssize_t gc_refs;
|
||||
} gc;
|
||||
- long double dummy; /* force worst-case alignment */
|
||||
+ double dummy; /* Force at least 8-byte alignment. */
|
||||
+ char dummy_padding[sizeof(union _gc_head_old)];
|
||||
} PyGC_Head;
|
||||
|
||||
extern PyGC_Head *_PyGC_generation0;
|
@ -118,6 +118,10 @@ class Python(AutotoolsPackage):
|
||||
patch('cray-rpath-2.3.patch', when="@2.3:3.0.1 platform=cray")
|
||||
patch('cray-rpath-3.1.patch', when="@3.1:3.99 platform=cray")
|
||||
|
||||
# Fixes an alignment problem with more aggressive optimization in gcc8
|
||||
# https://github.com/python/cpython/commit/0b91f8a668201fc58fa732b8acc496caedfdbae0
|
||||
patch('gcc-8-2.7.14.patch', when="@2.7.14 %gcc@8:")
|
||||
|
||||
# For more information refer to this bug report:
|
||||
# https://bugs.python.org/issue29712
|
||||
conflicts(
|
||||
|
Loading…
Reference in New Issue
Block a user