]> granicus.if.org Git - python/commitdiff
Patch by Vladimir Marangozov, inspired by a bug report from Gary
authorGuido van Rossum <guido@python.org>
Tue, 16 Nov 1999 15:54:16 +0000 (15:54 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 16 Nov 1999 15:54:16 +0000 (15:54 +0000)
Duzan, for AIX, to support C++ objects with static initializers, when
using the genuine IBM C++ compiler (namely xlC/xlC_r).

See accompanying patches to configure.in and acconfig.h.

Python/importdl.c

index a40d0846b78050b5e43f11cbce539abb193a477e..3085d66b478980bd8a91bd527a85b129b508c53b 100644 (file)
@@ -181,6 +181,12 @@ typedef void (*dl_funcptr)();
 #include <sys/ldr.h>
 typedef void (*dl_funcptr)();
 #define _DL_FUNCPTR_DEFINED
+#ifdef AIX_GENUINE_CPLUSPLUS
+#include "/usr/lpp/xlC/include/load.h"
+#define aix_load loadAndInit
+#else
+#define aix_load load
+#endif
 static int  aix_getoldmodules(void **);
 static int  aix_bindnewmodule(void *, void *);
 static void aix_loaderror(char *);
@@ -473,7 +479,7 @@ _PyImport_LoadDynamicModule(name, pathname, fp)
                if (!staticmodlistptr)
                        if (aix_getoldmodules(&staticmodlistptr) == -1)
                                return NULL;
-               p = (dl_funcptr) load(pathname, L_NOAUTODEFER, 0);
+               p = (dl_funcptr) aix_load(pathname, L_NOAUTODEFER, 0);
                if (p == NULL) {
                        aix_loaderror(pathname);
                        return NULL;