summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/src/Python/dynload_shlib.c
diff options
context:
space:
mode:
authorAlexSm <[email protected]>2024-03-05 10:40:59 +0100
committerGitHub <[email protected]>2024-03-05 12:40:59 +0300
commit1ac13c847b5358faba44dbb638a828e24369467b (patch)
tree07672b4dd3604ad3dee540a02c6494cb7d10dc3d /contrib/tools/python3/src/Python/dynload_shlib.c
parentffcca3e7f7958ddc6487b91d3df8c01054bd0638 (diff)
Library import 16 (#2433)
Co-authored-by: robot-piglet <[email protected]> Co-authored-by: deshevoy <[email protected]> Co-authored-by: robot-contrib <[email protected]> Co-authored-by: thegeorg <[email protected]> Co-authored-by: robot-ya-builder <[email protected]> Co-authored-by: svidyuk <[email protected]> Co-authored-by: shadchin <[email protected]> Co-authored-by: robot-ratatosk <[email protected]> Co-authored-by: innokentii <[email protected]> Co-authored-by: arkady-e1ppa <[email protected]> Co-authored-by: snermolaev <[email protected]> Co-authored-by: dimdim11 <[email protected]> Co-authored-by: kickbutt <[email protected]> Co-authored-by: abdullinsaid <[email protected]> Co-authored-by: korsunandrei <[email protected]> Co-authored-by: petrk <[email protected]> Co-authored-by: miroslav2 <[email protected]> Co-authored-by: serjflint <[email protected]> Co-authored-by: akhropov <[email protected]> Co-authored-by: prettyboy <[email protected]> Co-authored-by: ilikepugs <[email protected]> Co-authored-by: hiddenpath <[email protected]> Co-authored-by: mikhnenko <[email protected]> Co-authored-by: spreis <[email protected]> Co-authored-by: andreyshspb <[email protected]> Co-authored-by: dimaandreev <[email protected]> Co-authored-by: rashid <[email protected]> Co-authored-by: robot-ydb-importer <[email protected]> Co-authored-by: r-vetrov <[email protected]> Co-authored-by: ypodlesov <[email protected]> Co-authored-by: zaverden <[email protected]> Co-authored-by: vpozdyayev <[email protected]> Co-authored-by: robot-cozmo <[email protected]> Co-authored-by: v-korovin <[email protected]> Co-authored-by: arikon <[email protected]> Co-authored-by: khoden <[email protected]> Co-authored-by: psydmm <[email protected]> Co-authored-by: robot-javacom <[email protected]> Co-authored-by: dtorilov <[email protected]> Co-authored-by: sennikovmv <[email protected]> Co-authored-by: hcpp <[email protected]>
Diffstat (limited to 'contrib/tools/python3/src/Python/dynload_shlib.c')
-rw-r--r--contrib/tools/python3/src/Python/dynload_shlib.c111
1 files changed, 0 insertions, 111 deletions
diff --git a/contrib/tools/python3/src/Python/dynload_shlib.c b/contrib/tools/python3/src/Python/dynload_shlib.c
deleted file mode 100644
index 6761bba4579..00000000000
--- a/contrib/tools/python3/src/Python/dynload_shlib.c
+++ /dev/null
@@ -1,111 +0,0 @@
-
-/* Support for dynamic loading of extension modules */
-
-#include "Python.h"
-#include "pycore_interp.h" // _PyInterpreterState.dlopenflags
-#include "pycore_pystate.h" // _PyInterpreterState_GET()
-#include "importdl.h"
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#if defined(__NetBSD__)
-#include <sys/param.h>
-#if (NetBSD < 199712)
-#include <nlist.h>
-#include <link.h>
-#define dlerror() "error in dynamic linking"
-#endif
-#endif /* NetBSD */
-
-#ifdef HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#if (defined(__OpenBSD__) || defined(__NetBSD__)) && !defined(__ELF__)
-#define LEAD_UNDERSCORE "_"
-#else
-#define LEAD_UNDERSCORE ""
-#endif
-
-/* The .so extension module ABI tag, supplied by the Makefile via
- Makefile.pre.in and configure. This is used to discriminate between
- incompatible .so files so that extensions for different Python builds can
- live in the same directory. E.g. foomodule.cpython-32.so
-*/
-
-const char *_PyImport_DynLoadFiletab[] = {
-#ifdef __CYGWIN__
- ".dll",
-#else /* !__CYGWIN__ */
- "." SOABI ".so",
-#ifdef ALT_SOABI
- "." ALT_SOABI ".so",
-#endif
- ".abi" PYTHON_ABI_STRING ".so",
- ".so",
-#endif /* __CYGWIN__ */
- NULL,
-};
-
-
-dl_funcptr
-_PyImport_FindSharedFuncptr(const char *prefix,
- const char *shortname,
- const char *pathname, FILE *fp)
-{
- dl_funcptr p;
- void *handle;
- char funcname[258];
- char pathbuf[260];
- int dlopenflags=0;
-
- if (strchr(pathname, '/') == NULL) {
- /* Prefix bare filename with "./" */
- PyOS_snprintf(pathbuf, sizeof(pathbuf), "./%-.255s", pathname);
- pathname = pathbuf;
- }
-
- PyOS_snprintf(funcname, sizeof(funcname),
- LEAD_UNDERSCORE "%.20s_%.200s", prefix, shortname);
-
- if (fp != NULL) {
- struct _Py_stat_struct status;
- if (_Py_fstat(fileno(fp), &status) == -1)
- return NULL;
- }
-
- dlopenflags = _PyImport_GetDLOpenFlags(_PyInterpreterState_GET());
-
- handle = dlopen(pathname, dlopenflags);
-
- if (handle == NULL) {
- PyObject *mod_name;
- PyObject *path;
- PyObject *error_ob;
- const char *error = dlerror();
- if (error == NULL)
- error = "unknown dlopen() error";
- error_ob = PyUnicode_DecodeLocale(error, "surrogateescape");
- if (error_ob == NULL)
- return NULL;
- mod_name = PyUnicode_FromString(shortname);
- if (mod_name == NULL) {
- Py_DECREF(error_ob);
- return NULL;
- }
- path = PyUnicode_DecodeFSDefault(pathname);
- if (path == NULL) {
- Py_DECREF(error_ob);
- Py_DECREF(mod_name);
- return NULL;
- }
- PyErr_SetImportError(error_ob, mod_name, path);
- Py_DECREF(error_ob);
- Py_DECREF(mod_name);
- Py_DECREF(path);
- return NULL;
- }
- p = (dl_funcptr) dlsym(handle, funcname);
- return p;
-}