24811276 Fix 64-bit Python builds so pstack(1) will work
authorChad Mynhier <chad.mynhier@oracle.com>
Wed, 12 Oct 2016 11:24:25 -0700
changeset 7095 6469e6424607
parent 7094 61352b4e5af5
child 7096 c97796f93f28
24811276 Fix 64-bit Python builds so pstack(1) will work
components/python/python27/Makefile
components/python/python27/patches/05-dtrace.patch
components/python/python34/patches/00-dtrace.patch
components/python/python35/patches/00-dtrace.patch
--- a/components/python/python27/Makefile	Wed Oct 12 14:01:13 2016 -0600
+++ b/components/python/python27/Makefile	Wed Oct 12 11:24:25 2016 -0700
@@ -71,6 +71,10 @@
 # build pic
 CFLAGS +=	$(CC_PIC)
 
+# for DWARF
+CFLAGS.i386 =	-preserve_argvalues=complete
+CFLAGS +=	$(CFLAGS.$(MACH))
+
 # The python build is profile-guided for studio; to see the benefits of that,
 # Python must be compiled with -xO5 and a different build target must be used.
 # Use of xprofile requires that the same options be used during compilation and
--- a/components/python/python27/patches/05-dtrace.patch	Wed Oct 12 14:01:13 2016 -0600
+++ b/components/python/python27/patches/05-dtrace.patch	Wed Oct 12 11:24:25 2016 -0700
@@ -430,3 +430,13 @@
          # function
          def func(): pass
          check(func, size('9P'))
+--- Python-2.7.12/Include/ceval.h.~1~	2016-06-25 14:49:30.000000000 -0700
++++ Python-2.7.12/Include/ceval.h	2016-10-12 07:33:22.132802000 -0700
+@@ -64,6 +64,7 @@
+ PyAPI_FUNC(PyObject *) PyEval_GetCallStats(PyObject *);
+ PyAPI_FUNC(PyObject *) PyEval_EvalFrame(struct _frame *);
+ PyAPI_FUNC(PyObject *) PyEval_EvalFrameEx(struct _frame *f, int exc);
++#pragma	no_inline(PyEval_EvalFrameEx)
+ 
+ /* this used to be handled on a per-thread basis - now just two globals */
+ PyAPI_DATA(volatile int) _Py_Ticker;
--- a/components/python/python34/patches/00-dtrace.patch	Wed Oct 12 14:01:13 2016 -0600
+++ b/components/python/python34/patches/00-dtrace.patch	Wed Oct 12 11:24:25 2016 -0700
@@ -2034,3 +2034,13 @@
          #
          # Here ends the simple stuff.  From here on, modules need certain
          # libraries, are platform-specific, or present other surprises.
+--- Python-3.4.5/Include/ceval.h.~1~	2016-06-25 14:52:29.000000000 -0700
++++ Python-3.4.5/Include/ceval.h	2016-10-10 07:44:22.446433750 -0700
+@@ -111,6 +111,7 @@
+ PyAPI_FUNC(PyObject *) PyEval_GetCallStats(PyObject *);
+ PyAPI_FUNC(PyObject *) PyEval_EvalFrame(struct _frame *);
+ PyAPI_FUNC(PyObject *) PyEval_EvalFrameEx(struct _frame *f, int exc);
++#pragma	no_inline(PyEval_EvalFrameEx)
+ 
+ /* Interface for threads.
+ 
--- a/components/python/python35/patches/00-dtrace.patch	Wed Oct 12 14:01:13 2016 -0600
+++ b/components/python/python35/patches/00-dtrace.patch	Wed Oct 12 11:24:25 2016 -0700
@@ -2034,3 +2034,13 @@
          #
          # Here ends the simple stuff.  From here on, modules need certain
          # libraries, are platform-specific, or present other surprises.
+--- Python-3.5.2/Include/ceval.h.~1~	2016-06-25 14:38:35.000000000 -0700
++++ Python-3.5.2/Include/ceval.h	2016-10-07 12:37:48.230782391 -0700
+@@ -119,6 +119,7 @@
+ PyAPI_FUNC(PyObject *) PyEval_GetCallStats(PyObject *);
+ PyAPI_FUNC(PyObject *) PyEval_EvalFrame(struct _frame *);
+ PyAPI_FUNC(PyObject *) PyEval_EvalFrameEx(struct _frame *f, int exc);
++#pragma	no_inline(PyEval_EvalFrameEx)
+ 
+ /* Interface for threads.
+