diff -ur misc/Python-2.7.18/setup.py misc/build/Python-2.7.18/setup.py --- misc/Python-2.7.18/setup.py 2016-06-25 16:49:32.000000000 -0500 +++ misc/build/Python-2.7.18/setup.py 2016-09-02 17:09:20.687419000 -0500 @@ -126,39 +126,41 @@ # system, but with only header files and libraries. sysroot = macosx_sdk_root() - # Check the standard locations - for dir in std_dirs: + # Check the standard directories + for dir in paths: f = os.path.join(dir, filename) if host_platform == 'darwin' and is_macosx_sdk_path(dir): f = os.path.join(sysroot, dir[1:], filename) - if os.path.exists(f): return [] + if os.path.exists(f): + return [dir] - # Check the additional directories - for dir in paths: + # Check the standard locations + for dir in std_dirs: f = os.path.join(dir, filename) if host_platform == 'darwin' and is_macosx_sdk_path(dir): f = os.path.join(sysroot, dir[1:], filename) if os.path.exists(f): - return [dir] + return [] # Not found anywhere return None def find_library_file(compiler, libname, std_dirs, paths): - result = compiler.find_library_file(std_dirs + paths, libname) + result = compiler.find_library_file(paths+std_dirs, libname) if result is None: return None if host_platform == 'darwin': sysroot = macosx_sdk_root() - # Check whether the found file is in one of the standard directories dirname = os.path.dirname(result) - for p in std_dirs: + # Otherwise, it must have been in one of the additional directories, + # so we have to figure out which one. + for p in paths: # Ensure path doesn't end with path separator p = p.rstrip(os.sep) @@ -180,23 +180,22 @@ # vs # /usr/lib/libedit.dylib if os.path.join(sysroot, p[1:]) == dirname: - return [ ] + return [ p ] if p == dirname: - return [ ] + return [ p ] - # Otherwise, it must have been in one of the additional directories, - # so we have to figure out which one. - for p in paths: + # Check whether the found file is in one of the standard directories + for p in std_dirs: # Ensure path doesn't end with path separator p = p.rstrip(os.sep) if host_platform == 'darwin' and is_macosx_sdk_path(p): if os.path.join(sysroot, p[1:]) == dirname: - return [ p ] + return [ ] if p == dirname: - return [p] + return [ ] else: assert False, "Internal error: Path not found in std_dirs or paths" @@ -891,6 +892,7 @@ exts.append( Extension('_ssl', ['_ssl.c'], include_dirs = ssl_incs, library_dirs = ssl_libs, + extra_link_args = ['-Wl,--exclude-libs,ALL'], libraries = ['ssl', 'crypto'], depends = ['socketmodule.h']), ) else: @@ -930,6 +931,7 @@ exts.append( Extension('_hashlib', ['_hashopenssl.c'], include_dirs = ssl_incs, library_dirs = ssl_libs, + extra_link_args = ['-Wl,--exclude-libs,ALL'], libraries = ['ssl', 'crypto']) ) else: print ("warning: openssl 0x%08x is too old for _hashlib" %