mirror of
https://github.com/python/cpython.git
synced 2025-08-27 20:25:18 +00:00
os2 patch by Jeff Rush
This commit is contained in:
parent
c0b93191e6
commit
8e9ebfd337
12 changed files with 459 additions and 28 deletions
|
@ -47,6 +47,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|||
_AIX -- AIX style dynamic linking
|
||||
MS_WIN32 -- Windows NT style dynamic linking (using DLLs)
|
||||
MS_WIN16 -- Windows 16-bit dynamic linking (using DLLs)
|
||||
PYOS_OS2 -- IBM OS/2 dynamic linking (using DLLs)
|
||||
_DL_FUNCPTR_DEFINED -- if the typedef dl_funcptr has been defined
|
||||
USE_MAC_DYNAMIC_LOADING -- Mac CFM shared libraries
|
||||
SHORT_EXT -- short extension for dynamic module, e.g. ".so"
|
||||
|
@ -76,6 +77,17 @@ typedef void (*dl_funcptr)();
|
|||
#define LONG_EXT "module.sl"
|
||||
#endif
|
||||
|
||||
#if defined(PYOS_OS2)
|
||||
#define DYNAMIC_LINK
|
||||
#define INCL_DOSERRORS
|
||||
#define INCL_DOSMODULEMGR
|
||||
#include <os2.h>
|
||||
typedef int (* APIENTRY dl_funcptr)();
|
||||
#define _DL_FUNCPTR_DEFINED 1
|
||||
#define SHORT_EXT ".pyd"
|
||||
#define LONG_EXT ".dll"
|
||||
#endif
|
||||
|
||||
#if defined(__NetBSD__)
|
||||
#define DYNAMIC_LINK
|
||||
#define USE_SHLIB
|
||||
|
@ -458,6 +470,32 @@ _PyImport_LoadDynamicModule(name, pathname, fp)
|
|||
p = GetProcAddress(hDLL, funcname);
|
||||
}
|
||||
#endif /* MS_WIN16 */
|
||||
|
||||
#if defined(PYOS_OS2)
|
||||
{
|
||||
APIRET rc;
|
||||
HMODULE hDLL;
|
||||
char failreason[256];
|
||||
|
||||
rc = DosLoadModule(failreason,
|
||||
sizeof(failreason),
|
||||
pathname,
|
||||
&hDLL);
|
||||
|
||||
if (rc != NO_ERROR) {
|
||||
char errBuf[256];
|
||||
sprintf(errBuf,
|
||||
"DLL load failed, rc = %d, problem '%s': %s", rc, failreason);
|
||||
PyErr_SetString(PyExc_ImportError, errBuf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
rc = DosQueryProcAddr(hDLL, 0L, funcname, &p);
|
||||
if (rc != NO_ERROR)
|
||||
p = NULL; /* Signify Failure to Acquire Entrypoint */
|
||||
}
|
||||
#endif /* PYOS_OS2 */
|
||||
|
||||
#ifdef USE_DL
|
||||
p = dl_loadmod(Py_GetProgramName(), pathname, funcname);
|
||||
#endif /* USE_DL */
|
||||
|
|
|
@ -149,6 +149,10 @@ void init_thread _P0()
|
|||
#include "thread_nt.h"
|
||||
#endif
|
||||
|
||||
#ifdef OS2_THREADS
|
||||
#include "thread_os2.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
#ifdef FOOBAR_THREADS
|
||||
#include "thread_foobar.h"
|
||||
|
|
|
@ -56,7 +56,7 @@ int start_new_thread(void (*func)(void *), void *arg)
|
|||
int aThread;
|
||||
int success = 1;
|
||||
|
||||
aThread = _beginthread(func,4096,arg);
|
||||
aThread = _beginthread(func,NULL,65536,arg);
|
||||
|
||||
if( aThread == -1 ) {
|
||||
success = 0;
|
||||
|
@ -210,7 +210,7 @@ void free_sema(type_sema aSemaphore)
|
|||
|
||||
}
|
||||
|
||||
void down_sema(type_sema aSemaphore, int waitflag)
|
||||
int down_sema(type_sema aSemaphore, int waitflag)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue