Kaydet (Commit) ac6bd46d authored tarafından Anthony Baxter's avatar Anthony Baxter

spread the extern "C" { } magic pixie dust around. Python itself builds now

using a C++ compiler. Still lots and lots of errors in the modules built by
setup.py, and a bunch of warnings from g++ in the core.
üst 28c5f1fa
...@@ -91,6 +91,11 @@ ...@@ -91,6 +91,11 @@
* process to find the installed Python tree. * process to find the installed Python tree.
*/ */
#ifdef __cplusplus
extern "C" {
#endif
#ifndef VERSION #ifndef VERSION
#if defined(__VMS) #if defined(__VMS)
#define VERSION "2_1" #define VERSION "2_1"
...@@ -681,3 +686,9 @@ Py_GetProgramFullPath(void) ...@@ -681,3 +686,9 @@ Py_GetProgramFullPath(void)
calculate_path(); calculate_path();
return progpath; return progpath;
} }
#ifdef __cplusplus
}
#endif
...@@ -29,6 +29,10 @@ ...@@ -29,6 +29,10 @@
"Type \"help\", \"copyright\", \"credits\" or \"license\" " \ "Type \"help\", \"copyright\", \"credits\" or \"license\" " \
"for more information." "for more information."
#ifdef __cplusplus
extern "C" {
#endif
/* For Py_GetArgcArgv(); set by main() */ /* For Py_GetArgcArgv(); set by main() */
static char **orig_argv; static char **orig_argv;
static int orig_argc; static int orig_argc;
...@@ -540,3 +544,8 @@ Py_GetArgcArgv(int *argc, char ***argv) ...@@ -540,3 +544,8 @@ Py_GetArgcArgv(int *argc, char ***argv)
*argc = orig_argc; *argc = orig_argc;
*argv = orig_argv; *argv = orig_argv;
} }
#ifdef __cplusplus
}
#endif
...@@ -22,6 +22,10 @@ ...@@ -22,6 +22,10 @@
# include <unixio.h> # include <unixio.h>
#endif /* defined(__VMS) */ #endif /* defined(__VMS) */
#ifdef __cplusplus
extern "C" {
#endif
PyDoc_STRVAR(posix__doc__, PyDoc_STRVAR(posix__doc__,
"This module provides access to operating system functionality that is\n\ "This module provides access to operating system functionality that is\n\
standardized by the C Standard and the POSIX standard (a thinly\n\ standardized by the C Standard and the POSIX standard (a thinly\n\
...@@ -8253,3 +8257,8 @@ INITFUNC(void) ...@@ -8253,3 +8257,8 @@ INITFUNC(void)
PyModule_AddObject(m, "statvfs_result", PyModule_AddObject(m, "statvfs_result",
(PyObject*) &StatVFSResultType); (PyObject*) &StatVFSResultType);
} }
#ifdef __cplusplus
}
#endif
...@@ -48,6 +48,10 @@ ...@@ -48,6 +48,10 @@
#define NEWLINE_LF 2 /* \n newline seen */ #define NEWLINE_LF 2 /* \n newline seen */
#define NEWLINE_CRLF 4 /* \r\n newline seen */ #define NEWLINE_CRLF 4 /* \r\n newline seen */
#ifdef __cplusplus
extern "C" {
#endif
FILE * FILE *
PyFile_AsFile(PyObject *f) PyFile_AsFile(PyObject *f)
{ {
...@@ -2441,3 +2445,8 @@ Py_UniversalNewlineFread(char *buf, size_t n, ...@@ -2441,3 +2445,8 @@ Py_UniversalNewlineFread(char *buf, size_t n,
f->f_skipnextlf = skipnextlf; f->f_skipnextlf = skipnextlf;
return dst - buf; return dst - buf;
} }
#ifdef __cplusplus
}
#endif
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
#include "Python.h" #include "Python.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifdef Py_REF_DEBUG #ifdef Py_REF_DEBUG
Py_ssize_t _Py_RefTotal; Py_ssize_t _Py_RefTotal;
...@@ -2112,3 +2116,8 @@ _PyTrash_destroy_chain(void) ...@@ -2112,3 +2116,8 @@ _PyTrash_destroy_chain(void)
--_PyTrash_delete_nesting; --_PyTrash_delete_nesting;
} }
} }
#ifdef __cplusplus
}
#endif
...@@ -83,6 +83,11 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -83,6 +83,11 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/ */
#ifdef __cplusplus
extern "C" {
#endif
/* Free list for Unicode objects */ /* Free list for Unicode objects */
static PyUnicodeObject *unicode_freelist; static PyUnicodeObject *unicode_freelist;
static int unicode_freelist_size; static int unicode_freelist_size;
...@@ -7418,6 +7423,11 @@ _PyUnicode_Fini(void) ...@@ -7418,6 +7423,11 @@ _PyUnicode_Fini(void)
unicode_freelist_size = 0; unicode_freelist_size = 0;
} }
#ifdef __cplusplus
}
#endif
/* /*
Local variables: Local variables:
c-basic-offset: 4 c-basic-offset: 4
......
...@@ -16,6 +16,11 @@ extern char *strerror(int); ...@@ -16,6 +16,11 @@ extern char *strerror(int);
#include <ctype.h> #include <ctype.h>
#ifdef __cplusplus
extern "C" {
#endif
void void
PyErr_Restore(PyObject *type, PyObject *value, PyObject *traceback) PyErr_Restore(PyObject *type, PyObject *value, PyObject *traceback)
{ {
...@@ -786,3 +791,8 @@ PyErr_ProgramText(const char *filename, int lineno) ...@@ -786,3 +791,8 @@ PyErr_ProgramText(const char *filename, int lineno)
} }
return NULL; return NULL;
} }
#ifdef __cplusplus
}
#endif
...@@ -6,6 +6,10 @@ ...@@ -6,6 +6,10 @@
#include "Python.h" #include "Python.h"
#include "pyconfig.h" #include "pyconfig.h"
#ifdef __cplusplus
extern "C" {
#endif
time_t time_t
PyOS_GetLastModificationTime(char *path, FILE *fp) PyOS_GetLastModificationTime(char *path, FILE *fp)
{ {
...@@ -15,3 +19,8 @@ PyOS_GetLastModificationTime(char *path, FILE *fp) ...@@ -15,3 +19,8 @@ PyOS_GetLastModificationTime(char *path, FILE *fp)
else else
return st.st_mtime; return st.st_mtime;
} }
#ifdef __cplusplus
}
#endif
...@@ -27,6 +27,10 @@ ...@@ -27,6 +27,10 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#ifdef __cplusplus
extern "C" {
#endif
int _PyOS_opterr = 1; /* generate error messages */ int _PyOS_opterr = 1; /* generate error messages */
int _PyOS_optind = 1; /* index into argv array */ int _PyOS_optind = 1; /* index into argv array */
char *_PyOS_optarg = NULL; /* optional argument */ char *_PyOS_optarg = NULL; /* optional argument */
...@@ -81,3 +85,8 @@ int _PyOS_GetOpt(int argc, char **argv, char *optstring) ...@@ -81,3 +85,8 @@ int _PyOS_GetOpt(int argc, char **argv, char *optstring)
return option; return option;
} }
#ifdef __cplusplus
}
#endif
...@@ -17,6 +17,9 @@ ...@@ -17,6 +17,9 @@
#ifdef HAVE_FCNTL_H #ifdef HAVE_FCNTL_H
#include <fcntl.h> #include <fcntl.h>
#endif #endif
#ifdef __cplusplus
extern "C" {
#endif
extern time_t PyOS_GetLastModificationTime(char *, FILE *); extern time_t PyOS_GetLastModificationTime(char *, FILE *);
/* In getmtime.c */ /* In getmtime.c */
...@@ -2947,3 +2950,7 @@ PyImport_AppendInittab(char *name, void (*initfunc)(void)) ...@@ -2947,3 +2950,7 @@ PyImport_AppendInittab(char *name, void (*initfunc)(void))
return PyImport_ExtendInittab(newtab); return PyImport_ExtendInittab(newtab);
} }
#ifdef __cplusplus
}
#endif
...@@ -37,6 +37,10 @@ static PyThread_type_lock head_mutex = NULL; /* Protects interp->tstate_head */ ...@@ -37,6 +37,10 @@ static PyThread_type_lock head_mutex = NULL; /* Protects interp->tstate_head */
#define HEAD_LOCK() PyThread_acquire_lock(head_mutex, WAIT_LOCK) #define HEAD_LOCK() PyThread_acquire_lock(head_mutex, WAIT_LOCK)
#define HEAD_UNLOCK() PyThread_release_lock(head_mutex) #define HEAD_UNLOCK() PyThread_release_lock(head_mutex)
#ifdef __cplusplus
extern "C" {
#endif
/* The single PyInterpreterState used by this process' /* The single PyInterpreterState used by this process'
GILState implementation GILState implementation
*/ */
...@@ -552,4 +556,11 @@ PyGILState_Release(PyGILState_STATE oldstate) ...@@ -552,4 +556,11 @@ PyGILState_Release(PyGILState_STATE oldstate)
else if (oldstate == PyGILState_UNLOCKED) else if (oldstate == PyGILState_UNLOCKED)
PyEval_SaveThread(); PyEval_SaveThread();
} }
#ifdef __cplusplus
}
#endif
#endif /* WITH_THREAD */ #endif /* WITH_THREAD */
...@@ -37,6 +37,10 @@ ...@@ -37,6 +37,10 @@
_Py_GetRefTotal()) _Py_GetRefTotal())
#endif #endif
#ifdef __cplusplus
extern "C" {
#endif
extern char *Py_GetPath(void); extern char *Py_GetPath(void);
extern grammar _PyParser_Grammar; /* From graminit.c */ extern grammar _PyParser_Grammar; /* From graminit.c */
...@@ -1692,3 +1696,8 @@ PyParser_SimpleParseString(const char *str, int start) ...@@ -1692,3 +1696,8 @@ PyParser_SimpleParseString(const char *str, int start)
{ {
return PyParser_SimpleParseStringFlags(str, start, 0); return PyParser_SimpleParseStringFlags(str, start, 0);
} }
#ifdef __cplusplus
}
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment