Commit 2bd17a60 authored by Tarek Ziadé's avatar Tarek Ziadé

fixed #6459: distutils.command.build_ext.get_export_symbols now uses 'PyInit'

parent c7cb2d86
...@@ -732,10 +732,10 @@ class build_ext(Command): ...@@ -732,10 +732,10 @@ class build_ext(Command):
def get_export_symbols(self, ext): def get_export_symbols(self, ext):
"""Return the list of symbols that a shared extension has to """Return the list of symbols that a shared extension has to
export. This either uses 'ext.export_symbols' or, if it's not export. This either uses 'ext.export_symbols' or, if it's not
provided, "init" + module_name. Only relevant on Windows, where provided, "PyInit_" + module_name. Only relevant on Windows, where
the .pyd file (DLL) must export the module "init" function. the .pyd file (DLL) must export the module "PyInit_" function.
""" """
initfunc_name = "init" + ext.name.split('.')[-1] initfunc_name = "PyInit_" + ext.name.split('.')[-1]
if initfunc_name not in ext.export_symbols: if initfunc_name not in ext.export_symbols:
ext.export_symbols.append(initfunc_name) ext.export_symbols.append(initfunc_name)
return ext.export_symbols return ext.export_symbols
......
...@@ -299,7 +299,7 @@ class BuildExtTestCase(support.TempdirManager, ...@@ -299,7 +299,7 @@ class BuildExtTestCase(support.TempdirManager,
def test_get_outputs(self): def test_get_outputs(self):
tmp_dir = self.mkdtemp() tmp_dir = self.mkdtemp()
c_file = os.path.join(tmp_dir, 'foo.c') c_file = os.path.join(tmp_dir, 'foo.c')
self.write_file(c_file, 'void initfoo(void) {};\n') self.write_file(c_file, 'void PyInit_foo(void) {};\n')
ext = Extension('foo', [c_file], optional=False) ext = Extension('foo', [c_file], optional=False)
dist = Distribution({'name': 'xx', dist = Distribution({'name': 'xx',
'ext_modules': [ext]}) 'ext_modules': [ext]})
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment