summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/python/gcc-8-2.7.14.patch
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/python/gcc-8-2.7.14.patch')
-rw-r--r--var/spack/repos/builtin/packages/python/gcc-8-2.7.14.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/python/gcc-8-2.7.14.patch b/var/spack/repos/builtin/packages/python/gcc-8-2.7.14.patch
new file mode 100644
index 0000000000..72c879cdea
--- /dev/null
+++ b/var/spack/repos/builtin/packages/python/gcc-8-2.7.14.patch
@@ -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;