From: Antoine Pitrou Date: Tue, 30 Sep 2014 12:58:22 +0000 (+0200) Subject: Remove pointless "vile hack" that can cause the build step to fail when some extensio... X-Git-Tag: v3.5.0a1~815 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=afa3153b27c160ddd533d5716644bf38fb41fff1;p=python Remove pointless "vile hack" that can cause the build step to fail when some extension modules can't be imported. See issue #5309 for the build failures, issue #458343 for the original motivation. --- diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index 08449e1a51..2ffab18162 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -545,15 +545,8 @@ class build_ext(Command): extra_postargs=extra_args, depends=ext.depends) - # XXX -- this is a Vile HACK! - # - # The setup.py script for Python on Unix needs to be able to - # get this list so it can perform all the clean up needed to - # avoid keeping object files around when cleaning out a failed - # build of an extension module. Since Distutils does not - # track dependencies, we have to get rid of intermediates to - # ensure all the intermediates will be properly re-built. - # + # XXX outdated variable, kept here in case third-part code + # needs it. self._built_objects = objects[:] # Now link the object files together into a "shared object" -- diff --git a/setup.py b/setup.py index a0a22a5f9d..ffc7741a05 100644 --- a/setup.py +++ b/setup.py @@ -381,17 +381,6 @@ class PyBuildExt(build_ext): os.remove(newname) os.rename(ext_filename, newname) - # XXX -- This relies on a Vile HACK in - # distutils.command.build_ext.build_extension(). The - # _built_objects attribute is stored there strictly for - # use here. - # If there is a failure, _built_objects may not be there, - # so catch the AttributeError and move on. - try: - for filename in self._built_objects: - os.remove(filename) - except AttributeError: - self.announce('unable to remove files (ignored)') except: exc_type, why, tb = sys.exc_info() self.announce('*** WARNING: importing extension "%s" '