mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
Added support for the 'export_symbols' parameter to 'link_shared_object()'
and 'link_shared_lib()'. In MSVCCompiler, this is meaningful: it adds /EXPORT: options to the linker command line. In UnixCCompiler, it is ignored.
This commit is contained in:
parent
974f70d97b
commit
5299b6afc5
3 changed files with 22 additions and 3 deletions
|
|
@ -493,6 +493,7 @@ class CCompiler:
|
|||
libraries=None,
|
||||
library_dirs=None,
|
||||
runtime_library_dirs=None,
|
||||
export_symbols=None,
|
||||
debug=0,
|
||||
extra_preargs=None,
|
||||
extra_postargs=None):
|
||||
|
|
@ -515,7 +516,13 @@ class CCompiler:
|
|||
search for libraries that were specified as bare library names
|
||||
(ie. no directory component). These are on top of the system
|
||||
default and those supplied to 'add_library_dir()' and/or
|
||||
'set_library_dirs()'.
|
||||
'set_library_dirs()'. 'runtime_library_dirs' is a list of
|
||||
directories that will be embedded into the shared library and
|
||||
used to search for other shared libraries that *it* depends on
|
||||
at run-time. (This may only be relevant on Unix.)
|
||||
|
||||
'export_symbols' is a list of symbols that the shared library
|
||||
will export. (This appears to be relevant only on Windows.)
|
||||
|
||||
'debug' is as for 'compile()' and 'create_static_lib()', with the
|
||||
slight distinction that it actually matters on most platforms
|
||||
|
|
@ -536,6 +543,7 @@ class CCompiler:
|
|||
libraries=None,
|
||||
library_dirs=None,
|
||||
runtime_library_dirs=None,
|
||||
export_symbols=None,
|
||||
debug=0,
|
||||
extra_preargs=None,
|
||||
extra_postargs=None):
|
||||
|
|
|
|||
|
|
@ -304,6 +304,7 @@ class MSVCCompiler (CCompiler) :
|
|||
libraries=None,
|
||||
library_dirs=None,
|
||||
runtime_library_dirs=None,
|
||||
export_symbols=None,
|
||||
debug=0,
|
||||
extra_preargs=None,
|
||||
extra_postargs=None):
|
||||
|
|
@ -313,6 +314,8 @@ class MSVCCompiler (CCompiler) :
|
|||
output_dir=output_dir,
|
||||
libraries=libraries,
|
||||
library_dirs=library_dirs,
|
||||
runtime_library_dirs=runtime_library_dirs,
|
||||
export_symbols=export_symbols,
|
||||
debug=debug,
|
||||
extra_preargs=extra_preargs,
|
||||
extra_postargs=extra_postargs)
|
||||
|
|
@ -325,6 +328,7 @@ class MSVCCompiler (CCompiler) :
|
|||
libraries=None,
|
||||
library_dirs=None,
|
||||
runtime_library_dirs=None,
|
||||
export_symbols=None,
|
||||
debug=0,
|
||||
extra_preargs=None,
|
||||
extra_postargs=None):
|
||||
|
|
@ -350,8 +354,12 @@ class MSVCCompiler (CCompiler) :
|
|||
else:
|
||||
ldflags = self.ldflags_shared
|
||||
|
||||
ld_args = ldflags + lib_opts + \
|
||||
objects + ['/OUT:' + output_filename]
|
||||
export_opts = []
|
||||
for sym in (export_symbols or []):
|
||||
export_opts.append("/EXPORT:" + sym)
|
||||
|
||||
ld_args = (ldflags + lib_opts + export_opts +
|
||||
objects + ['/OUT:' + output_filename])
|
||||
|
||||
if extra_preargs:
|
||||
ld_args[:0] = extra_preargs
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ class UnixCCompiler (CCompiler):
|
|||
libraries=None,
|
||||
library_dirs=None,
|
||||
runtime_library_dirs=None,
|
||||
export_symbols=None,
|
||||
debug=0,
|
||||
extra_preargs=None,
|
||||
extra_postargs=None):
|
||||
|
|
@ -188,6 +189,7 @@ class UnixCCompiler (CCompiler):
|
|||
libraries,
|
||||
library_dirs,
|
||||
runtime_library_dirs,
|
||||
export_symbols,
|
||||
debug,
|
||||
extra_preargs,
|
||||
extra_postargs)
|
||||
|
|
@ -200,6 +202,7 @@ class UnixCCompiler (CCompiler):
|
|||
libraries=None,
|
||||
library_dirs=None,
|
||||
runtime_library_dirs=None,
|
||||
export_symbols=None,
|
||||
debug=0,
|
||||
extra_preargs=None,
|
||||
extra_postargs=None):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue