# HG changeset patch # User Steve Dower # Date 1417934278 28800 # Sat Dec 06 22:37:58 2014 -0800 # Branch Projects # Node ID 194c17115b82184ee580e3bbfbdc5b16fa86090d # Parent 93db016982a220793e129ed66939f985616283f4 #22980 Adds platform tags to .pyd files diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -691,10 +691,7 @@ """ from distutils.sysconfig import get_config_var ext_path = ext_name.split('.') - # extensions in debug_mode are named 'module_d.pyd' under windows ext_suffix = get_config_var('EXT_SUFFIX') - if os.name == 'nt' and self.debug: - return os.path.join(*ext_path) + '_d' + ext_suffix return os.path.join(*ext_path) + ext_suffix def get_export_symbols(self, ext): diff --git a/PC/pyconfig.h b/PC/pyconfig.h --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -145,9 +145,11 @@ #if defined(_M_IA64) #define COMPILER _Py_PASTE_VERSION("64 bit (Itanium)") #define MS_WINI64 +#define PYD_PLATFORM_TAG "win-ia64" #elif defined(_M_X64) || defined(_M_AMD64) #define COMPILER _Py_PASTE_VERSION("64 bit (AMD64)") #define MS_WINX64 +#define PYD_PLATFORM_TAG "win-amd64" #else #define COMPILER _Py_PASTE_VERSION("64 bit (Unknown)") #endif @@ -193,8 +195,10 @@ #if defined(MS_WIN32) && !defined(MS_WIN64) #if defined(_M_IX86) #define COMPILER _Py_PASTE_VERSION("32 bit (Intel)") +#define PYD_PLATFORM_TAG "win32" #elif defined(_M_ARM) #define COMPILER _Py_PASTE_VERSION("32 bit (ARM)") +#define PYD_PLATFORM_TAG "win-arm" #else #define COMPILER _Py_PASTE_VERSION("32 bit (Unknown)") #endif diff --git a/Python/dynload_win.c b/Python/dynload_win.c --- a/Python/dynload_win.c +++ b/Python/dynload_win.c @@ -19,8 +19,14 @@ const char *_PyImport_DynLoadFiletab[] = { #ifdef _DEBUG +#ifdef PYD_PLATFORM_TAG + "_d." PYD_PLATFORM_TAG ".pyd", +#endif "_d.pyd", #else +#ifdef PYD_PLATFORM_TAG + "." PYD_PLATFORM_TAG ".pyd", +#endif ".pyd", #endif NULL