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.
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 @@
                          libraries=None,
                          library_dirs=None,
                          runtime_library_dirs=None,
+                         export_symbols=None,
                          debug=0,
                          extra_preargs=None,
                          extra_postargs=None):
@@ -515,7 +516,13 @@
            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 @@
                             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 @@
                          libraries=None,
                          library_dirs=None,
                          runtime_library_dirs=None,
+                         export_symbols=None,
                          debug=0,
                          extra_preargs=None,
                          extra_postargs=None):
@@ -313,6 +314,8 @@
                                  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 @@
                             libraries=None,
                             library_dirs=None,
                             runtime_library_dirs=None,
+                            export_symbols=None,
                             debug=0,
                             extra_preargs=None,
                             extra_postargs=None):
@@ -350,8 +354,12 @@
             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 @@
                          libraries=None,
                          library_dirs=None,
                          runtime_library_dirs=None,
+                         export_symbols=None,
                          debug=0,
                          extra_preargs=None,
                          extra_postargs=None):
@@ -188,6 +189,7 @@
             libraries,
             library_dirs,
             runtime_library_dirs,
+            export_symbols,
             debug,
             extra_preargs,
             extra_postargs)
@@ -200,6 +202,7 @@
                             libraries=None,
                             library_dirs=None,
                             runtime_library_dirs=None,
+                            export_symbols=None,
                             debug=0,
                             extra_preargs=None,
                             extra_postargs=None):