Staging
v0.8.1
https://github.com/python/cpython
Revision 41769a7513dd47bf00d88e8ccb32aa3cacef0415 authored by Alexander Belopolsky on 02 January 2011, 23:26:12 UTC, committed by Alexander Belopolsky on 02 January 2011, 23:26:12 UTC
svn+ssh://pythondev@svn.python.org/python/branches/release27-maint

................
  r87663 | alexander.belopolsky | 2011-01-02 18:23:54 -0500 (Sun, 02 Jan 2011) | 13 lines

  Merged revisions 87648,87656 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/branches/py3k

  ........
    r87648 | alexander.belopolsky | 2011-01-02 15:48:22 -0500 (Sun, 02 Jan 2011) | 1 line

    Issue #8013: Fixed time.asctime segfault when OS's asctime fails
  ........
    r87656 | alexander.belopolsky | 2011-01-02 17:16:10 -0500 (Sun, 02 Jan 2011) | 1 line

    Issue #8013: Fixed test
  ........
................
1 parent 893c354
Raw File
Tip revision: 41769a7513dd47bf00d88e8ccb32aa3cacef0415 authored by Alexander Belopolsky on 02 January 2011, 23:26:12 UTC
Merged revisions 87663 via svnmerge from
Tip revision: 41769a7
dynload_atheos.c

/* Support for dynamic loading of extension modules */

#include <atheos/image.h>
#include <errno.h>

#include "Python.h"
#include "importdl.h"


const struct filedescr _PyImport_DynLoadFiletab[] = {
    {".so", "rb", C_EXTENSION},
    {"module.so", "rb", C_EXTENSION},
    {0, 0}
};

dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname,
                                    const char *pathname, FILE *fp)
{
    void *p;
    int lib;
    char funcname[258];

    if (Py_VerboseFlag)
        printf("load_library %s\n", pathname);

    lib = load_library(pathname, 0);
    if (lib < 0) {
        char buf[512];
        if (Py_VerboseFlag)
            perror(pathname);
        PyOS_snprintf(buf, sizeof(buf), "Failed to load %.200s: %.200s",
                      pathname, strerror(errno));
        PyErr_SetString(PyExc_ImportError, buf);
        return NULL;
    }
    PyOS_snprintf(funcname, sizeof(funcname), "init%.200s", shortname);
    if (Py_VerboseFlag)
        printf("get_symbol_address %s\n", funcname);
    if (get_symbol_address(lib, funcname, -1, &p) < 0) {
        p = NULL;
        if (Py_VerboseFlag)
            perror(funcname);
    }

    return (dl_funcptr) p;
}
back to top