diff options
author | Greg Ward <gward@python.net> | 2000-05-20 13:23:21 (GMT) |
---|---|---|
committer | Greg Ward <gward@python.net> | 2000-05-20 13:23:21 (GMT) |
commit | 5299b6afc568ac19917b93032295ad8bfbdfc711 (patch) | |
tree | 179b6618204f3c99b17e17d63aa3e01e9eebe0b1 /Lib | |
parent | 974f70d97b2bf0fd1828d5c08bc638e25e27aca5 (diff) | |
download | cpython-5299b6afc568ac19917b93032295ad8bfbdfc711.zip cpython-5299b6afc568ac19917b93032295ad8bfbdfc711.tar.gz cpython-5299b6afc568ac19917b93032295ad8bfbdfc711.tar.bz2 |
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.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/distutils/ccompiler.py | 10 | ||||
-rw-r--r-- | Lib/distutils/msvccompiler.py | 12 | ||||
-rw-r--r-- | Lib/distutils/unixccompiler.py | 3 |
3 files changed, 22 insertions, 3 deletions
diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py index ffad294..51f5ae0 100644 --- a/Lib/distutils/ccompiler.py +++ b/Lib/distutils/ccompiler.py @@ -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): diff --git a/Lib/distutils/msvccompiler.py b/Lib/distutils/msvccompiler.py index 3667afc..b6ff432 100644 --- a/Lib/distutils/msvccompiler.py +++ b/Lib/distutils/msvccompiler.py @@ -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 diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py index 5e1524c..40f564a 100644 --- a/Lib/distutils/unixccompiler.py +++ b/Lib/distutils/unixccompiler.py @@ -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): |