FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cpython/Python/dynload_hpux.c at main · python/cpython · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
python
/
cpython
Public
Uh oh!
There was an error while loading.
Please reload this page
.
Notifications
You must be signed in to change notification settings
Fork
35.3k
Star
74.9k
Code
Issues
5k+
Pull requests
2.5k
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
cpython
/
Python
/
dynload_hpux.c
Copy path
More file actions
More file actions
Latest commit
History
History
History
76 lines (67 loc) · 2.13 KB
Breadcrumbs
cpython
/
Python
/
dynload_hpux.c
Copy path
File metadata and controls
76 lines (67 loc) · 2.13 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/* Support for dynamic loading of extension modules */
#include
"dl.h"
#include
<errno.h>
#include
"Python.h"
#include
"pycore_importdl.h"
#if
defined(
__hp9000s300
)
#define
FUNCNAME_PATTERN
"_%.20s_%.200s"
#else
#define
FUNCNAME_PATTERN
"%.20s_%.200s"
#endif
const
char
*
_PyImport_DynLoadFiletab
[]
=
{
SHLIB_EXT
,
".sl"
,
NULL
};
dl_funcptr
_PyImport_FindSharedFuncptr
(
const
char
*
prefix
,
const
char
*
shortname
,
const
char
*
pathname
,
FILE
*
fp
)
{
int
flags
=
BIND_FIRST
|
BIND_DEFERRED
;
int
verbose
=
_Py_GetConfig
()
->
verbose
;
if
(
verbose
) {
flags
=
BIND_FIRST
|
BIND_IMMEDIATE
|
BIND_NONFATAL
|
BIND_VERBOSE
;
printf
(
"shl_load %s\n"
,
pathname
);
}
shl_t
lib
=
shl_load
(
pathname
,
flags
,
0
);
/* XXX Chuck Blake once wrote that 0 should be BIND_NOSTART? */
if
(
lib
==
NULL
) {
if
(
verbose
) {
perror
(
pathname
);
}
char
buf
[
256
];
PyOS_snprintf
(
buf
,
sizeof
(
buf
),
"Failed to load %.200s"
,
pathname
);
PyObject
*
buf_ob
=
PyUnicode_DecodeFSDefault
(
buf
);
if
(
buf_ob
==
NULL
)
return
NULL
;
PyObject
*
shortname_ob
=
PyUnicode_FromString
(
shortname
);
if
(
shortname_ob
==
NULL
) {
Py_DECREF
(
buf_ob
);
return
NULL
;
}
PyObject
*
pathname_ob
=
PyUnicode_DecodeFSDefault
(
pathname
);
if
(
pathname_ob
==
NULL
) {
Py_DECREF
(
buf_ob
);
Py_DECREF
(
shortname_ob
);
return
NULL
;
}
PyErr_SetImportError
(
buf_ob
,
shortname_ob
,
pathname_ob
);
Py_DECREF
(
buf_ob
);
Py_DECREF
(
shortname_ob
);
Py_DECREF
(
pathname_ob
);
return
NULL
;
}
char
funcname
[
258
];
PyOS_snprintf
(
funcname
,
sizeof
(
funcname
),
FUNCNAME_PATTERN
,
prefix
,
shortname
);
if
(
verbose
) {
printf
(
"shl_findsym %s\n"
,
funcname
);
}
dl_funcptr
p
;
if
(
shl_findsym
(
&
lib
,
funcname
,
TYPE_UNDEFINED
, (
void
*
)
&
p
)
==
-1
) {
shl_unload
(
lib
);
p
=
NULL
;
}
if
(
p
==
NULL
&&
verbose
) {
perror
(
funcname
);
}
return
p
;
}
Back
|
FazBrowse Home
|
New Git URL