Patch to MSVCCompiler: 'export_symbols'
OK, all your Windows experts: tell me if I got this right. Here's a patch to msvccompiler.py to add support for the 'export_symbol' keyword argument to 'link_shared_lib()' and 'link_shared_object()'. Right now it turns a list of ['foo', 'bar', 'baz'] into additional arguments to the linker: /EXPORT:foo /EXPORT:bar /EXPORT:baz Is this the correct and/or optimal way to do it? Here's the patch... diff -c -r1.27 msvccompiler.py *** msvccompiler.py 2000/04/19 02:16:49 1.27 --- msvccompiler.py 2000/05/20 12:59:04 *************** *** 304,309 **** --- 304,310 ---- libraries=None, library_dirs=None, runtime_library_dirs=None, + export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None): *************** *** 313,318 **** --- 314,321 ---- 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,330 **** --- 328,334 ---- libraries=None, library_dirs=None, runtime_library_dirs=None, + export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None): *************** *** 350,357 **** else: ldflags = self.ldflags_shared ! ld_args = ldflags + lib_opts + \ ! objects + ['/OUT:' + output_filename] if extra_preargs: ld_args[:0] = extra_preargs --- 354,365 ---- else: ldflags = self.ldflags_shared ! 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 -- Greg Ward - Unix bigot gward@python.net http://starship.python.net/~gward/ Disclaimer: All rights reserved. Void where prohibited. Limit 1 per customer.
participants (1)
-
Greg Ward