diff --git a/dtool/src/dtoolbase/dtoolsymbols.h b/dtool/src/dtoolbase/dtoolsymbols.h
index 5f972e776f..ebabe47515 100644
--- a/dtool/src/dtoolbase/dtoolsymbols.h
+++ b/dtool/src/dtoolbase/dtoolsymbols.h
@@ -125,16 +125,4 @@
#define EXPTP_MISC IMPORT_TEMPL
#endif /* BUILDING_MISC */
-
-/* These two are always defined empty, because pystub is statically
- built. But we leave the symbol around in case we change our minds
- to make pystub once again be a dynamic library. */
-#if __GNUC__ >= 4
-/* In GCC, though, we still need to mark the symbols as visible. */
-#define EXPCL_PYSTUB __attribute__((visibility("default")))
-#else
-#define EXPCL_PYSTUB
-#endif
-#define EXPTP_PYSTUB
-
#endif
diff --git a/dtool/src/pystub/pystub.cxx b/dtool/src/pystub/pystub.cxx
deleted file mode 100644
index 299da8fa0f..0000000000
--- a/dtool/src/pystub/pystub.cxx
+++ /dev/null
@@ -1,492 +0,0 @@
-/**
- * PANDA 3D SOFTWARE
- * Copyright (c) Carnegie Mellon University. All rights reserved.
- *
- * All use of this software is subject to the terms of the revised BSD
- * license. You should have received a copy of this license along
- * with this source code in a file named "LICENSE."
- *
- * @file pystub.cxx
- * @author drose
- * @date 2000-08-09
- */
-
-#include "pystub.h"
-
-extern "C" {
- EXPCL_PYSTUB int PyArg_Parse(...);
- EXPCL_PYSTUB int PyArg_ParseTuple(...);
- EXPCL_PYSTUB int PyArg_ParseTupleAndKeywords(...);
- EXPCL_PYSTUB int PyArg_UnpackTuple(...);
- EXPCL_PYSTUB int PyBool_FromLong(...);
- EXPCL_PYSTUB int PyBuffer_Release(...);
- EXPCL_PYSTUB int PyBytes_AsString(...);
- EXPCL_PYSTUB int PyBytes_AsStringAndSize(...);
- EXPCL_PYSTUB int PyBytes_FromStringAndSize(...);
- EXPCL_PYSTUB int PyBytes_Size(...);
- EXPCL_PYSTUB int PyCFunction_New(...);
- EXPCL_PYSTUB int PyCFunction_NewEx(...);
- EXPCL_PYSTUB int PyCallable_Check(...);
- EXPCL_PYSTUB int PyCapsule_GetPointer(...);
- EXPCL_PYSTUB int PyCapsule_New(...);
- EXPCL_PYSTUB int PyDict_DelItem(...);
- EXPCL_PYSTUB int PyDict_DelItemString(...);
- EXPCL_PYSTUB int PyDict_GetItem(...);
- EXPCL_PYSTUB int PyDict_GetItemString(...);
- EXPCL_PYSTUB int PyDict_New(...);
- EXPCL_PYSTUB int PyDict_Next(...);
- EXPCL_PYSTUB int PyDict_SetItem(...);
- EXPCL_PYSTUB int PyDict_SetItemString(...);
- EXPCL_PYSTUB int PyDict_Size(...);
- EXPCL_PYSTUB int PyErr_Clear(...);
- EXPCL_PYSTUB int PyErr_ExceptionMatches(...);
- EXPCL_PYSTUB int PyErr_Fetch(...);
- EXPCL_PYSTUB int PyErr_Format(...);
- EXPCL_PYSTUB int PyErr_NoMemory(...);
- EXPCL_PYSTUB int PyErr_Occurred(...);
- EXPCL_PYSTUB int PyErr_Print(...);
- EXPCL_PYSTUB int PyErr_Restore(...);
- EXPCL_PYSTUB int PyErr_SetString(...);
- EXPCL_PYSTUB int PyErr_Warn(...);
- EXPCL_PYSTUB int PyErr_WarnEx(...);
- EXPCL_PYSTUB int PyEval_CallFunction(...);
- EXPCL_PYSTUB int PyEval_CallObjectWithKeywords(...);
- EXPCL_PYSTUB int PyEval_RestoreThread(...);
- EXPCL_PYSTUB int PyEval_SaveThread(...);
- EXPCL_PYSTUB int PyFloat_AsDouble(...);
- EXPCL_PYSTUB int PyFloat_FromDouble(...);
- EXPCL_PYSTUB int PyGen_Check(...);
- EXPCL_PYSTUB int PyGILState_Ensure(...);
- EXPCL_PYSTUB int PyGILState_Release(...);
- EXPCL_PYSTUB int PyImport_GetModuleDict(...);
- EXPCL_PYSTUB int PyImport_ImportModule(...);
- EXPCL_PYSTUB int PyInt_AsLong(...);
- EXPCL_PYSTUB int PyInt_AsSsize_t(...);
- EXPCL_PYSTUB int PyInt_FromLong(...);
- EXPCL_PYSTUB int PyInt_FromSize_t(...);
- EXPCL_PYSTUB int PyIter_Next(...);
- EXPCL_PYSTUB int PyList_Append(...);
- EXPCL_PYSTUB int PyList_AsTuple(...);
- EXPCL_PYSTUB int PyList_GetItem(...);
- EXPCL_PYSTUB int PyList_New(...);
- EXPCL_PYSTUB int PyList_SetItem(...);
- EXPCL_PYSTUB int PyLong_AsLong(...);
- EXPCL_PYSTUB int PyLong_AsLongLong(...);
- EXPCL_PYSTUB int PyLong_AsSsize_t(...);
- EXPCL_PYSTUB int PyLong_AsUnsignedLong(...);
- EXPCL_PYSTUB int PyLong_AsUnsignedLongLong(...);
- EXPCL_PYSTUB int PyLong_FromLong(...);
- EXPCL_PYSTUB int PyLong_FromLongLong(...);
- EXPCL_PYSTUB int PyLong_FromSize_t(...);
- EXPCL_PYSTUB int PyLong_FromUnsignedLong(...);
- EXPCL_PYSTUB int PyLong_FromUnsignedLongLong(...);
- EXPCL_PYSTUB int PyMapping_GetItemString(...);
- EXPCL_PYSTUB int PyMem_Free(...);
- EXPCL_PYSTUB int PyMemoryView_FromObject(...);
- EXPCL_PYSTUB int PyModule_AddIntConstant(...);
- EXPCL_PYSTUB int PyModule_AddObject(...);
- EXPCL_PYSTUB int PyModule_AddStringConstant(...);
- EXPCL_PYSTUB int PyModule_Create2(...);
- EXPCL_PYSTUB int PyModule_Create2TraceRefs(...);
- EXPCL_PYSTUB int PyModule_GetDict(...);
- EXPCL_PYSTUB int PyNumber_AsSsize_t(...);
- EXPCL_PYSTUB int PyNumber_Check(...);
- EXPCL_PYSTUB int PyNumber_Float(...);
- EXPCL_PYSTUB int PyNumber_Int(...);
- EXPCL_PYSTUB int PyNumber_Long(...);
- EXPCL_PYSTUB int PyObject_ASCII(...);
- EXPCL_PYSTUB int PyObject_Call(...);
- EXPCL_PYSTUB int PyObject_CallFunction(...);
- EXPCL_PYSTUB int PyObject_CallFunctionObjArgs(...);
- EXPCL_PYSTUB int PyObject_CallMethod(...);
- EXPCL_PYSTUB int PyObject_CallMethodObjArgs(...);
- EXPCL_PYSTUB int PyObject_CallObject(...);
- EXPCL_PYSTUB int PyObject_Cmp(...);
- EXPCL_PYSTUB int PyObject_Compare(...);
- EXPCL_PYSTUB int PyObject_Free(...);
- EXPCL_PYSTUB int PyObject_GC_Del(...);
- EXPCL_PYSTUB int PyObject_GenericGetAttr(...);
- EXPCL_PYSTUB int PyObject_GenericSetAttr(...);
- EXPCL_PYSTUB int PyObject_GetAttrString(...);
- EXPCL_PYSTUB int PyObject_GetBuffer(...);
- EXPCL_PYSTUB int PyObject_GetIter(...);
- EXPCL_PYSTUB int PyObject_HasAttrString(...);
- EXPCL_PYSTUB int PyObject_IsInstance(...);
- EXPCL_PYSTUB int PyObject_IsTrue(...);
- EXPCL_PYSTUB int PyObject_Malloc(...);
- EXPCL_PYSTUB int PyObject_Repr(...);
- EXPCL_PYSTUB int PyObject_RichCompareBool(...);
- EXPCL_PYSTUB int PyObject_SelfIter(...);
- EXPCL_PYSTUB int PyObject_SetAttr(...);
- EXPCL_PYSTUB int PyObject_SetAttrString(...);
- EXPCL_PYSTUB int PyObject_Str(...);
- EXPCL_PYSTUB int PySeqIter_New(...);
- EXPCL_PYSTUB int PySequence_Check(...);
- EXPCL_PYSTUB int PySequence_Fast(...);
- EXPCL_PYSTUB int PySequence_GetItem(...);
- EXPCL_PYSTUB int PySequence_Size(...);
- EXPCL_PYSTUB int PySequence_Tuple(...);
- EXPCL_PYSTUB int PyString_AsString(...);
- EXPCL_PYSTUB int PyString_AsStringAndSize(...);
- EXPCL_PYSTUB int PyString_FromFormat(...);
- EXPCL_PYSTUB int PyString_FromString(...);
- EXPCL_PYSTUB int PyString_FromStringAndSize(...);
- EXPCL_PYSTUB int PyString_InternFromString(...);
- EXPCL_PYSTUB int PyString_InternInPlace(...);
- EXPCL_PYSTUB int PyString_Size(...);
- EXPCL_PYSTUB int PySys_GetObject(...);
- EXPCL_PYSTUB int PySys_SetObject(...);
- EXPCL_PYSTUB int PyThreadState_Clear(...);
- EXPCL_PYSTUB int PyThreadState_Delete(...);
- EXPCL_PYSTUB int PyThreadState_Get(...);
- EXPCL_PYSTUB int PyThreadState_New(...);
- EXPCL_PYSTUB int PyThreadState_Swap(...);
- EXPCL_PYSTUB int PyTuple_GetItem(...);
- EXPCL_PYSTUB int PyTuple_New(...);
- EXPCL_PYSTUB int PyTuple_Pack(...);
- EXPCL_PYSTUB int PyTuple_Size(...);
- EXPCL_PYSTUB int PyType_GenericAlloc(...);
- EXPCL_PYSTUB int PyType_IsSubtype(...);
- EXPCL_PYSTUB int PyType_Ready(...);
- EXPCL_PYSTUB int PyUnicodeUCS2_AsWideChar(...);
- EXPCL_PYSTUB int PyUnicodeUCS2_AsWideCharString(...);
- EXPCL_PYSTUB int PyUnicodeUCS2_CompareWithASCIIString(...);
- EXPCL_PYSTUB int PyUnicodeUCS2_FromFormat(...);
- EXPCL_PYSTUB int PyUnicodeUCS2_FromString(...);
- EXPCL_PYSTUB int PyUnicodeUCS2_FromStringAndSize(...);
- EXPCL_PYSTUB int PyUnicodeUCS2_FromWideChar(...);
- EXPCL_PYSTUB int PyUnicodeUCS2_GetSize(...);
- EXPCL_PYSTUB int PyUnicodeUCS4_AsWideChar(...);
- EXPCL_PYSTUB int PyUnicodeUCS4_AsWideCharString(...);
- EXPCL_PYSTUB int PyUnicodeUCS4_CompareWithASCIIString(...);
- EXPCL_PYSTUB int PyUnicodeUCS4_FromFormat(...);
- EXPCL_PYSTUB int PyUnicodeUCS4_FromString(...);
- EXPCL_PYSTUB int PyUnicodeUCS4_FromStringAndSize(...);
- EXPCL_PYSTUB int PyUnicodeUCS4_FromWideChar(...);
- EXPCL_PYSTUB int PyUnicodeUCS4_GetSize(...);
- EXPCL_PYSTUB int PyUnicode_AsUTF8(...);
- EXPCL_PYSTUB int PyUnicode_AsUTF8AndSize(...);
- EXPCL_PYSTUB int PyUnicode_AsWideChar(...);
- EXPCL_PYSTUB int PyUnicode_AsWideCharString(...);
- EXPCL_PYSTUB int PyUnicode_CompareWithASCIIString(...);
- EXPCL_PYSTUB int PyUnicode_FromFormat(...);
- EXPCL_PYSTUB int PyUnicode_FromString(...);
- EXPCL_PYSTUB int PyUnicode_FromStringAndSize(...);
- EXPCL_PYSTUB int PyUnicode_FromWideChar(...);
- EXPCL_PYSTUB int PyUnicode_GetSize(...);
- EXPCL_PYSTUB int PyUnicode_InternFromString(...);
- EXPCL_PYSTUB int PyUnicode_InternInPlace(...);
- EXPCL_PYSTUB int Py_BuildValue(...);
- EXPCL_PYSTUB int Py_GetVersion(...);
- EXPCL_PYSTUB int Py_InitModule4(...);
- EXPCL_PYSTUB int Py_InitModule4_64(...);
- EXPCL_PYSTUB int Py_InitModule4TraceRefs(...);
- EXPCL_PYSTUB int Py_InitModule4TraceRefs_64(...);
- EXPCL_PYSTUB int _PyArg_ParseTuple_SizeT(...);
- EXPCL_PYSTUB int _PyArg_ParseTupleAndKeywords_SizeT(...);
- EXPCL_PYSTUB int _PyArg_Parse_SizeT(...);
- EXPCL_PYSTUB int _PyErr_BadInternalCall(...);
- EXPCL_PYSTUB int _PyLong_AsByteArray(...);
- EXPCL_PYSTUB int _PyLong_Sign(...);
- EXPCL_PYSTUB int _PyObject_CallFunction_SizeT(...);
- EXPCL_PYSTUB int _PyObject_CallMethod_SizeT(...);
- EXPCL_PYSTUB int _PyObject_DebugFree(...);
- EXPCL_PYSTUB int _PyObject_Del(...);
- EXPCL_PYSTUB int _PyObject_FastCallDict(...);
- EXPCL_PYSTUB int _PyUnicode_AsString(...);
- EXPCL_PYSTUB int _PyUnicode_AsStringAndSize(...);
- EXPCL_PYSTUB int _PyUnicode_EqualToASCIIString(...);
- EXPCL_PYSTUB int _Py_AddToAllObjects(...);
- EXPCL_PYSTUB int _Py_BuildValue_SizeT(...);
- EXPCL_PYSTUB int _Py_Dealloc(...);
- EXPCL_PYSTUB int _Py_ForgetReference(...);
- EXPCL_PYSTUB int _Py_NegativeRefcount(...);
- EXPCL_PYSTUB int _Py_NewReference(...);
- EXPCL_PYSTUB int _Py_PrintReferenceAddresses(...);
- EXPCL_PYSTUB int _Py_PrintReferences(...);
- EXPCL_PYSTUB int _Py_RefTotal(...);
-
- EXPCL_PYSTUB void Py_Initialize();
- EXPCL_PYSTUB int Py_IsInitialized();
- EXPCL_PYSTUB void PyEval_InitThreads();
-
- EXPCL_PYSTUB extern void *PyExc_AssertionError;
- EXPCL_PYSTUB extern void *PyExc_AttributeError;
- EXPCL_PYSTUB extern void *PyExc_BufferError;
- EXPCL_PYSTUB extern void *PyExc_ConnectionError;
- EXPCL_PYSTUB extern void *PyExc_Exception;
- EXPCL_PYSTUB extern void *PyExc_FutureWarning;
- EXPCL_PYSTUB extern void *PyExc_ImportError;
- EXPCL_PYSTUB extern void *PyExc_IndexError;
- EXPCL_PYSTUB extern void *PyExc_KeyError;
- EXPCL_PYSTUB extern void *PyExc_NameError;
- EXPCL_PYSTUB extern void *PyExc_OSError;
- EXPCL_PYSTUB extern void *PyExc_OverflowError;
- EXPCL_PYSTUB extern void *PyExc_RuntimeError;
- EXPCL_PYSTUB extern void *PyExc_StandardError;
- EXPCL_PYSTUB extern void *PyExc_StopIteration;
- EXPCL_PYSTUB extern void *PyExc_SystemExit;
- EXPCL_PYSTUB extern void *PyExc_TypeError;
- EXPCL_PYSTUB extern void *PyExc_ValueError;
- EXPCL_PYSTUB extern void *PyDict_Type;
- EXPCL_PYSTUB extern void *PyFloat_Type;
- EXPCL_PYSTUB extern void *PyGen_Type;
- EXPCL_PYSTUB extern void *PyInt_Type;
- EXPCL_PYSTUB extern void *PyList_Type;
- EXPCL_PYSTUB extern void *PyLong_Type;
- EXPCL_PYSTUB extern void *PyObject_Type;
- EXPCL_PYSTUB extern void *PyString_Type;
- EXPCL_PYSTUB extern void *PyTuple_Type;
- EXPCL_PYSTUB extern void *PyType_Type;
- EXPCL_PYSTUB extern void *PyUnicode_Type;
- EXPCL_PYSTUB extern void *_PyThreadState_Current;
- EXPCL_PYSTUB extern void *_Py_FalseStruct;
- EXPCL_PYSTUB extern void *_Py_NoneStruct;
- EXPCL_PYSTUB extern void *_Py_NotImplementedStruct;
- EXPCL_PYSTUB extern void *_Py_TrueStruct;
- EXPCL_PYSTUB extern void *_Py_ZeroStruct;
-};
-
-
-int PyArg_Parse(...) { return 0; };
-int PyArg_ParseTuple(...) { return 0; }
-int PyArg_ParseTupleAndKeywords(...) { return 0; }
-int PyArg_UnpackTuple(...) { return 0; };
-int PyBool_FromLong(...) { return 0; }
-int PyBuffer_Release(...) { return 0; }
-int PyBytes_AsString(...) { return 0; }
-int PyBytes_AsStringAndSize(...) { return 0; }
-int PyBytes_FromStringAndSize(...) { return 0; }
-int PyBytes_Size(...) { return 0; }
-int PyCFunction_New(...) { return 0; };
-int PyCFunction_NewEx(...) { return 0; };
-int PyCallable_Check(...) { return 0; }
-int PyCapsule_GetPointer(...) { return 0; }
-int PyCapsule_New(...) { return 0; }
-int PyDict_DelItem(...) { return 0; }
-int PyDict_DelItemString(...) { return 0; }
-int PyDict_GetItem(...) { return 0; }
-int PyDict_GetItemString(...) { return 0; }
-int PyDict_New(...) { return 0; };
-int PyDict_Next(...) { return 0; };
-int PyDict_SetItem(...) { return 0; };
-int PyDict_SetItemString(...) { return 0; };
-int PyDict_Size(...){ return 0; }
-int PyErr_Clear(...) { return 0; };
-int PyErr_ExceptionMatches(...) { return 0; };
-int PyErr_Fetch(...) { return 0; }
-int PyErr_Format(...) { return 0; };
-int PyErr_NoMemory(...) { return 0; }
-int PyErr_Occurred(...) { return 0; }
-int PyErr_Print(...) { return 0; }
-int PyErr_Restore(...) { return 0; }
-int PyErr_SetString(...) { return 0; }
-int PyErr_Warn(...) { return 0; }
-int PyErr_WarnEx(...) { return 0; }
-int PyEval_CallFunction(...) { return 0; }
-int PyEval_CallObjectWithKeywords(...) { return 0; }
-int PyEval_InitThreads(...) { return 0; }
-int PyEval_RestoreThread(...) { return 0; }
-int PyEval_SaveThread(...) { return 0; }
-int PyFloat_AsDouble(...) { return 0; }
-int PyFloat_FromDouble(...) { return 0; }
-int PyGen_Check(...) { return 0; }
-int PyGILState_Ensure(...) { return 0; }
-int PyGILState_Release(...) { return 0; }
-int PyImport_GetModuleDict(...) { return 0; }
-int PyImport_ImportModule(...) { return 0; }
-int PyInt_AsLong(...) { return 0; }
-int PyInt_AsSsize_t(...) { return 0; }
-int PyInt_FromLong(...) { return 0; }
-int PyInt_FromSize_t(...) { return 0; }
-int PyIter_Next(...) { return 0; }
-int PyList_Append(...) { return 0; }
-int PyList_AsTuple(...) { return 0; }
-int PyList_GetItem(...) { return 0; }
-int PyList_New(...) { return 0; }
-int PyList_SetItem(...) { return 0; }
-int PyLong_AsLong(...) { return 0; }
-int PyLong_AsLongLong(...) { return 0; }
-int PyLong_AsSsize_t(...) { return 0; }
-int PyLong_AsUnsignedLong(...) { return 0; }
-int PyLong_AsUnsignedLongLong(...) { return 0; }
-int PyLong_FromLong(...) { return 0; }
-int PyLong_FromLongLong(...) { return 0; }
-int PyLong_FromSize_t(...) { return 0; }
-int PyLong_FromUnsignedLong(...) { return 0; }
-int PyLong_FromUnsignedLongLong(...) { return 0; }
-int PyMapping_GetItemString(...) { return 0; }
-int PyMem_Free(...) { return 0; }
-int PyMemoryView_FromObject(...) { return 0; }
-int PyModule_AddIntConstant(...) { return 0; };
-int PyModule_AddObject(...) { return 0; };
-int PyModule_AddStringConstant(...) { return 0; };
-int PyModule_Create2(...) { return 0; };
-int PyModule_Create2TraceRefs(...) { return 0; };
-int PyModule_GetDict(...) { return 0; };
-int PyNumber_AsSsize_t(...) { return 0; }
-int PyNumber_Check(...) { return 0; }
-int PyNumber_Float(...) { return 0; }
-int PyNumber_Int(...) { return 0; }
-int PyNumber_Long(...) { return 0; }
-int PyObject_ASCII(...) { return 0; }
-int PyObject_Call(...) { return 0; }
-int PyObject_CallFunction(...) { return 0; }
-int PyObject_CallFunctionObjArgs(...) { return 0; }
-int PyObject_CallMethod(...) { return 0; }
-int PyObject_CallMethodObjArgs(...) { return 0; }
-int PyObject_CallObject(...) { return 0; }
-int PyObject_Cmp(...) { return 0; }
-int PyObject_Compare(...) { return 0; }
-int PyObject_Free(...) { return 0; }
-int PyObject_GC_Del(...) { return 0; }
-int PyObject_GenericGetAttr(...) { return 0; };
-int PyObject_GenericSetAttr(...) { return 0; };
-int PyObject_GetAttrString(...) { return 0; }
-int PyObject_GetBuffer(...) { return 0; }
-int PyObject_GetIter(...) { return 0; }
-int PyObject_HasAttrString(...) { return 0; }
-int PyObject_IsInstance(...) { return 0; }
-int PyObject_IsTrue(...) { return 0; }
-int PyObject_Malloc(...) { return 0; }
-int PyObject_Repr(...) { return 0; }
-int PyObject_RichCompareBool(...) { return 0; }
-int PyObject_SelfIter(...) { return 0; }
-int PyObject_SetAttr(...) { return 0; }
-int PyObject_SetAttrString(...) { return 0; }
-int PyObject_Str(...) { return 0; }
-int PySeqIter_New(...) { return 0; }
-int PySequence_Check(...) { return 0; }
-int PySequence_Fast(...) { return 0; }
-int PySequence_GetItem(...) { return 0; }
-int PySequence_Size(...) { return 0; }
-int PySequence_Tuple(...) { return 0; }
-int PyString_AsString(...) { return 0; }
-int PyString_AsStringAndSize(...) { return 0; }
-int PyString_FromFormat(...) { return 0; }
-int PyString_FromString(...) { return 0; }
-int PyString_FromStringAndSize(...) { return 0; }
-int PyString_InternFromString(...) { return 0; }
-int PyString_InternInPlace(...) { return 0; }
-int PySys_GetObject(...) { return 0; }
-int PySys_SetObject(...) { return 0; }
-int PyThreadState_Clear(...) { return 0; }
-int PyThreadState_Delete(...) { return 0; }
-int PyThreadState_Get(...) { return 0; }
-int PyThreadState_New(...) { return 0; }
-int PyThreadState_Swap(...) { return 0; }
-int PyTuple_GetItem(...) { return 0; }
-int PyTuple_New(...) { return 0; }
-int PyTuple_Pack(...) { return 0; }
-int PyTuple_Size(...) { return 0; };
-int PyType_GenericAlloc(...) { return 0; };
-int PyType_IsSubtype(...) { return 0; }
-int PyType_Ready(...) { return 0; };
-int PyUnicodeUCS2_AsWideChar(...) { return 0; }
-int PyUnicodeUCS2_AsWideCharString(...) { return 0; }
-int PyUnicodeUCS2_CompareWithASCIIString(...) { return 0; }
-int PyUnicodeUCS2_FromFormat(...) { return 0; }
-int PyUnicodeUCS2_FromString(...) { return 0; }
-int PyUnicodeUCS2_FromStringAndSize(...) { return 0; }
-int PyUnicodeUCS2_FromWideChar(...) { return 0; }
-int PyUnicodeUCS2_GetSize(...) { return 0; }
-int PyUnicodeUCS4_AsWideChar(...) { return 0; }
-int PyUnicodeUCS4_AsWideCharString(...) { return 0; }
-int PyUnicodeUCS4_CompareWithASCIIString(...) { return 0; }
-int PyUnicodeUCS4_FromFormat(...) { return 0; }
-int PyUnicodeUCS4_FromString(...) { return 0; }
-int PyUnicodeUCS4_FromStringAndSize(...) { return 0; }
-int PyUnicodeUCS4_FromWideChar(...) { return 0; }
-int PyUnicodeUCS4_GetSize(...) { return 0; }
-int PyUnicode_AsUTF8(...) { return 0; }
-int PyUnicode_AsUTF8AndSize(...) { return 0; }
-int PyUnicode_AsWideChar(...) { return 0; }
-int PyUnicode_AsWideCharString(...) { return 0; }
-int PyUnicode_CompareWithASCIIString(...) { return 0; }
-int PyUnicode_FromFormat(...) { return 0; }
-int PyUnicode_FromString(...) { return 0; }
-int PyUnicode_FromStringAndSize(...) { return 0; }
-int PyUnicode_FromWideChar(...) { return 0; }
-int PyUnicode_GetSize(...) { return 0; }
-int PyUnicode_InternFromString(...) { return 0; }
-int PyUnicode_InternInPlace(...) { return 0; }
-int Py_GetVersion(...) { return 0; }
-int Py_BuildValue(...) { return 0; }
-int Py_InitModule4(...) { return 0; }
-int Py_InitModule4_64(...) { return 0; }
-int Py_InitModule4TraceRefs(...) { return 0; };
-int Py_InitModule4TraceRefs_64(...) { return 0; };
-int _PyArg_ParseTuple_SizeT(...) { return 0; };
-int _PyArg_ParseTupleAndKeywords_SizeT(...) { return 0; };
-int _PyArg_Parse_SizeT(...) { return 0; };
-int _PyErr_BadInternalCall(...) { return 0; };
-int _PyLong_AsByteArray(...) { return 0; };
-int _PyLong_Sign(...) { return 0; };
-int _PyObject_CallFunction_SizeT(...) { return 0; };
-int _PyObject_CallMethod_SizeT(...) { return 0; };
-int _PyObject_DebugFree(...) { return 0; };
-int _PyObject_Del(...) { return 0; };
-int _PyObject_FastCallDict(...) { return 0; };
-int _PyUnicode_AsString(...) { return 0; };
-int _PyUnicode_AsStringAndSize(...) { return 0; };
-int _PyUnicode_EqualToASCIIString(...) { return 0; };
-int _Py_AddToAllObjects(...) { return 0; };
-int _Py_BuildValue_SizeT(...) { return 0; };
-int _Py_Dealloc(...) { return 0; };
-int _Py_ForgetReference(...) { return 0; };
-int _Py_NegativeRefcount(...) { return 0; };
-int _Py_NewReference(...) { return 0; };
-int _Py_PrintReferenceAddresses(...) { return 0; };
-int _Py_PrintReferences(...) { return 0; };
-int _Py_RefTotal(...) { return 0; };
-
-// We actually might call this one.
-void Py_Initialize() {
-}
-int Py_IsInitialized() {
- return 0;
-}
-void PyEval_InitThreads() {
-}
-
-
-void *PyExc_AssertionError = nullptr;
-void *PyExc_AttributeError = nullptr;
-void *PyExc_BufferError = nullptr;
-void *PyExc_ConnectionError = nullptr;
-void *PyExc_Exception = nullptr;
-void *PyExc_FutureWarning = nullptr;
-void *PyExc_ImportError = nullptr;
-void *PyExc_IndexError = nullptr;
-void *PyExc_KeyError = nullptr;
-void *PyExc_NameError = nullptr;
-void *PyExc_OSError = nullptr;
-void *PyExc_OverflowError = nullptr;
-void *PyExc_RuntimeError = nullptr;
-void *PyExc_StandardError = nullptr;
-void *PyExc_StopIteration = nullptr;
-void *PyExc_SystemExit = nullptr;
-void *PyExc_TypeError = nullptr;
-void *PyExc_ValueError = nullptr;
-void *PyDict_Type = nullptr;
-void *PyFloat_Type = nullptr;
-void *PyGen_Type = nullptr;
-void *PyInt_Type = nullptr;
-void *PyList_Type = nullptr;
-void *PyLong_Type = nullptr;
-void *PyObject_Type = nullptr;
-void *PyString_Type = nullptr;
-void *PyTuple_Type = nullptr;
-void *PyType_Type = nullptr;
-void *PyUnicode_Type = nullptr;
-void *_PyThreadState_Current = nullptr;
-void *_Py_FalseStruct = nullptr;
-void *_Py_NoneStruct = nullptr;
-void *_Py_NotImplementedStruct = nullptr;
-void *_Py_TrueStruct = nullptr;
-void *_Py_ZeroStruct = nullptr;
-
-
-void
-pystub() {
-}
diff --git a/dtool/src/pystub/pystub.h b/dtool/src/pystub/pystub.h
deleted file mode 100644
index d812a98148..0000000000
--- a/dtool/src/pystub/pystub.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * PANDA 3D SOFTWARE
- * Copyright (c) Carnegie Mellon University. All rights reserved.
- *
- * All use of this software is subject to the terms of the revised BSD
- * license. You should have received a copy of this license along
- * with this source code in a file named "LICENSE."
- *
- * @file pystub.h
- * @author drose
- * @date 2000-08-08
- */
-
-#ifndef PYSTUB_H
-#define PYSTUB_H
-
-#include "dtoolbase.h"
-
-// The sole purpose of this header file is to allow a program other than
-// Python to load in a module that includes Python wrappers.
-
-// We need this if we build the Panda libraries with Python wrappers, but want
-// to run a standalone program with those libraries.
-
-// This header file just stubs out the Python functions that these wrappers
-// will call. You should include this header file in exactly one .C file in
-// your project, preferably in the .C file that defines main(), and then link
-// with -lpystub. Do not include this header file in a .C or .h file that
-// will become part of an .so that might eventually link with Python.
-
-
-// You might need to call this function in main() or somewhere to force the
-// .so to be linked in--some OS'es try to be smart about not pulling in shared
-// libraries whose symbols aren't referenced anywhere.
-EXPCL_PYSTUB void pystub();
-
-
-#endif
diff --git a/makepanda/installpanda.py b/makepanda/installpanda.py
index dcb18a72bf..a143f2cf61 100644
--- a/makepanda/installpanda.py
+++ b/makepanda/installpanda.py
@@ -226,7 +226,7 @@ def InstallPanda(destdir="", prefix="/usr", outputdir="built", libdir=GetLibDir(
oscmd("echo '"+libdir+"/panda3d'> "+destdir+"/etc/ld.so.conf.d/panda3d.conf")
for base in os.listdir(outputdir+"/lib"):
- if (not base.endswith(".a")) or base == "libp3pystub.a":
+ if not base.endswith(".a"):
# We really need to specify -R in order not to follow symlinks on non-GNU
oscmd("cp -R -P "+outputdir+"/lib/"+base+" "+destdir+libdir+"/panda3d/"+base)
diff --git a/makepanda/makepackage.py b/makepanda/makepackage.py
index 6c9d01cfff..b23260ab5a 100755
--- a/makepanda/makepackage.py
+++ b/makepanda/makepackage.py
@@ -584,8 +584,6 @@ def MakeInstallerOSX(version, runtime=False, python_versions=[], **kwargs):
oscmd("mkdir -p dstroot/headers/Developer/Panda3D/lib")
oscmd("cp -R %s/include dstroot/headers/Developer/Panda3D/include" % outputdir)
- if os.path.isfile(outputdir + "/lib/libp3pystub.a"):
- oscmd("cp -R -P %s/lib/libp3pystub.a dstroot/headers/Developer/Panda3D/lib/" % outputdir)
if os.path.isdir("samples"):
oscmd("mkdir -p dstroot/samples/Developer/Examples/Panda3D")
diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py
index 75d312160d..0eaf1cf8da 100755
--- a/makepanda/makepanda.py
+++ b/makepanda/makepanda.py
@@ -1720,12 +1720,6 @@ def CompileLink(dll, obj, opts):
else:
cmd += ' /NOD:{}.lib'.format(pythonv)
- # Yes, we know we are importing "locally defined symbols".
- for x in obj:
- if x.endswith('libp3pystub.lib'):
- cmd += ' /ignore:4049,4217'
- break
-
# Set the subsystem. Specify that we want to target Windows XP.
subsystem = GetValueOption(opts, "SUBSYSTEM:") or "CONSOLE"
cmd += " /SUBSYSTEM:" + subsystem
@@ -3278,7 +3272,6 @@ CopyAllHeaders('dtool/src/prc', skip=["prc_parameters.h"])
CopyAllHeaders('dtool/src/dconfig')
CopyAllHeaders('dtool/src/interrogatedb')
CopyAllHeaders('dtool/metalibs/dtoolconfig')
-CopyAllHeaders('dtool/src/pystub')
CopyAllHeaders('dtool/src/interrogate')
CopyAllHeaders('dtool/src/test_interrogate')
CopyAllHeaders('panda/src/putil')
@@ -3583,17 +3576,6 @@ PyTargetAdd('interrogatedb.pyd', input='libp3dtool.dll')
PyTargetAdd('interrogatedb.pyd', input='libp3dtoolconfig.dll')
PyTargetAdd('interrogatedb.pyd', input='libp3interrogatedb.dll')
-#
-# DIRECTORY: dtool/src/pystub/
-#
-
-if not RUNTIME and not RTDIST:
- OPTS=['DIR:dtool/src/pystub']
- TargetAdd('p3pystub_pystub.obj', opts=OPTS, input='pystub.cxx')
- TargetAdd('libp3pystub.lib', input='p3pystub_pystub.obj')
- #TargetAdd('libp3pystub.lib', input='libp3dtool.dll')
- TargetAdd('libp3pystub.lib', opts=['ADVAPI'])
-
#
# DIRECTORY: dtool/src/interrogate/
#
@@ -5603,7 +5585,6 @@ if (RUNTIME):
TargetAdd('panda3d.exe', input='libpandaexpress.dll')
TargetAdd('panda3d.exe', input='libp3dtoolconfig.dll')
TargetAdd('panda3d.exe', input='libp3dtool.dll')
- #TargetAdd('panda3d.exe', input='libp3pystub.lib')
TargetAdd('panda3d.exe', input='libp3tinyxml.ilb')
TargetAdd('panda3d.exe', opts=['NOICON', 'OPENSSL', 'ZLIB', 'WINGDI', 'WINUSER', 'WINSHELL', 'ADVAPI', 'WINSOCK2', 'WINOLE', 'CARBON'])
@@ -5617,7 +5598,6 @@ if (RUNTIME):
TargetAdd('Panda3D.app', input='libpandaexpress.dll')
TargetAdd('Panda3D.app', input='libp3dtoolconfig.dll')
TargetAdd('Panda3D.app', input='libp3dtool.dll')
- #TargetAdd('Panda3D.app', input='libp3pystub.lib')
TargetAdd('Panda3D.app', input='libp3tinyxml.ilb')
TargetAdd('Panda3D.app', input='panda3d_mac.plist', ipath=OPTS)
TargetAdd('Panda3D.app', input='models/plugin_images/panda3d.icns')
@@ -5632,18 +5612,16 @@ if (RUNTIME):
TargetAdd('panda3dw.exe', input='libpandaexpress.dll')
TargetAdd('panda3dw.exe', input='libp3dtoolconfig.dll')
TargetAdd('panda3dw.exe', input='libp3dtool.dll')
- #TargetAdd('panda3dw.exe', input='libp3pystub.lib')
TargetAdd('panda3dw.exe', input='libp3tinyxml.ilb')
TargetAdd('panda3dw.exe', opts=['SUBSYSTEM:WINDOWS', 'OPENSSL', 'ZLIB', 'WINGDI', 'WINUSER', 'WINSHELL', 'ADVAPI', 'WINSOCK2', 'WINOLE', 'CARBON'])
if (RTDIST):
- OPTS=['BUILDING:P3D_PLUGIN', 'DIR:direct/src/plugin_standalone', 'DIR:direct/src/plugin', 'DIR:dtool/src/dtoolbase', 'DIR:dtool/src/dtoolutil', 'DIR:dtool/src/pystub', 'DIR:dtool/src/prc', 'DIR:dtool/src/dconfig', 'DIR:panda/src/express', 'DIR:panda/src/downloader', 'RUNTIME', 'P3DEMBED', 'OPENSSL', 'ZLIB']
+ OPTS=['BUILDING:P3D_PLUGIN', 'DIR:direct/src/plugin_standalone', 'DIR:direct/src/plugin', 'DIR:dtool/src/dtoolbase', 'DIR:dtool/src/dtoolutil', 'DIR:dtool/src/prc', 'DIR:dtool/src/dconfig', 'DIR:panda/src/express', 'DIR:panda/src/downloader', 'RUNTIME', 'P3DEMBED', 'OPENSSL', 'ZLIB']
# This is arguably a big fat ugly hack, but doing it otherwise would complicate the build process considerably.
DefSymbol("P3DEMBED", "LINK_ALL_STATIC", "")
TargetAdd('plugin_standalone_panda3dBase.obj', opts=OPTS, input='panda3dBase.cxx')
TargetAdd('plugin_standalone_p3dEmbedMain.obj', opts=OPTS, input='p3dEmbedMain.cxx')
TargetAdd('plugin_standalone_p3dEmbed.obj', opts=OPTS, input='p3dEmbed.cxx')
- #TargetAdd('plugin_standalone_pystub.obj', opts=OPTS, input='pystub.cxx')
TargetAdd('plugin_standalone_dtoolbase_composite1.obj', opts=OPTS, input='p3dtoolbase_composite1.cxx')
TargetAdd('plugin_standalone_dtoolbase_composite2.obj', opts=OPTS, input='p3dtoolbase_composite2.cxx')
TargetAdd('plugin_standalone_lookup3.obj', opts=OPTS, input='lookup3.c')
@@ -5661,7 +5639,6 @@ if (RTDIST):
TargetAdd('p3dembed.exe', input='plugin_standalone_panda3dBase.obj')
TargetAdd('p3dembed.exe', input='plugin_standalone_p3dEmbedMain.obj')
TargetAdd('p3dembed.exe', input='plugin_standalone_p3dEmbed.obj')
- #TargetAdd('p3dembed.exe', input='plugin_standalone_pystub.obj')
TargetAdd('p3dembed.exe', input='plugin_standalone_dtoolbase_composite1.obj')
TargetAdd('p3dembed.exe', input='plugin_standalone_dtoolbase_composite2.obj')
TargetAdd('p3dembed.exe', input='plugin_standalone_lookup3.obj')
@@ -5691,7 +5668,6 @@ if (RTDIST):
TargetAdd('p3dembedw.exe', input='plugin_standalone_panda3dBase.obj')
TargetAdd('p3dembedw.exe', input='plugin_standalone_p3dEmbedWinMain.obj')
TargetAdd('p3dembedw.exe', input='plugin_standalone_p3dEmbed.obj')
- #TargetAdd('p3dembedw.exe', input='plugin_standalone_pystub.obj')
TargetAdd('p3dembedw.exe', input='plugin_standalone_dtoolbase_composite1.obj')
TargetAdd('p3dembedw.exe', input='plugin_standalone_dtoolbase_composite2.obj')
TargetAdd('p3dembedw.exe', input='plugin_standalone_lookup3.obj')
@@ -6446,8 +6422,6 @@ for VER in MAYAVERSIONS:
TargetAdd('mayaeggimport'+VNUM+'.mll', input='mayaeggimport'+VNUM+'_mayaeggimport.obj')
TargetAdd('mayaeggimport'+VNUM+'.mll', input='libpandaegg.dll')
TargetAdd('mayaeggimport'+VNUM+'.mll', input=COMMON_PANDA_LIBS)
- #if GetTarget() == 'windows':
- # TargetAdd('mayaeggimport'+VNUM+'.mll', input='libp3pystub.lib')
TargetAdd('mayaeggimport'+VNUM+'.mll', opts=['ADVAPI', VER])
TargetAdd('mayaloader'+VNUM+'_config_mayaloader.obj', opts=OPTS, input='config_mayaloader.cxx')
diff --git a/makepanda/makepanda.vcproj b/makepanda/makepanda.vcproj
index a1b720bfde..c2db8fa662 100644
--- a/makepanda/makepanda.vcproj
+++ b/makepanda/makepanda.vcproj
@@ -361,10 +361,6 @@
-
-
-
-