# HG changeset patch # User Chad Mynhier # Date 1476296665 25200 # Node ID 6469e6424607be4c80e704bf4101cd19671881ba # Parent 61352b4e5af578ab4362137b52ec5dbb6c414f5b 24811276 Fix 64-bit Python builds so pstack(1) will work diff -r 61352b4e5af5 -r 6469e6424607 components/python/python27/Makefile --- 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 diff -r 61352b4e5af5 -r 6469e6424607 components/python/python27/patches/05-dtrace.patch --- 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; diff -r 61352b4e5af5 -r 6469e6424607 components/python/python34/patches/00-dtrace.patch --- 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. + diff -r 61352b4e5af5 -r 6469e6424607 components/python/python35/patches/00-dtrace.patch --- 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. +