summaryrefslogtreecommitdiffstats
path: root/setup.py
diff options
context:
space:
mode:
authorJason Tishler <jason@tishler.net>2002-05-22 16:46:15 (GMT)
committerJason Tishler <jason@tishler.net>2002-05-22 16:46:15 (GMT)
commit24cf7766bca616cd5d32e0c707dbcda8941d0a27 (patch)
tree11f20b468c32eb52c74d1cbbc4b56605f4cde410 /setup.py
parenta43b2c4e30ad008df6a7271890d02ee9f400af46 (diff)
downloadcpython-24cf7766bca616cd5d32e0c707dbcda8941d0a27.zip
cpython-24cf7766bca616cd5d32e0c707dbcda8941d0a27.tar.gz
cpython-24cf7766bca616cd5d32e0c707dbcda8941d0a27.tar.bz2
Patch #491107: Cygwin setup.py import workaround patch
mwh wrote: > Jason, feel free to complain if you think this isn't > the right thing to do. I guess that I would like to complain and reopen this issue. :,) I cannot build a Python 2.2.1 with threads under Cygwin without this patch even though I'm using Michael's static _socket workaround. This is due to the Cygwin fork() problem with DLL base address conflicts that are triggered by importing many modules during the setup.py run. Similar problems can also be caused by regrtest.py. Even after my rebase patch is accepted into Cygwin's setup.exe, I feel this patch will still be necessary. This is because during the build process, the shared extensions (i.e., DLLs) will not be rebased yet. Hence, the potential for DLL base address conflicts will exist. One way to obviate this patch is to push the rebase functionality into Cygwin's ld. Unfortunately, I don't think this is likely to happen. Another possible way, is to use the yet to be defined and implemented unload module functionality: http://mail.python.org/pipermail/python-dev/2001-December/019028.html
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/setup.py b/setup.py
index d557943..d2b3947 100644
--- a/setup.py
+++ b/setup.py
@@ -168,6 +168,12 @@ class PyBuildExt(build_ext):
'WARNING: skipping import check for Carbon-based "%s"' %
ext.name)
return
+ # Workaround for Cygwin: Cygwin currently has fork issues when many
+ # modules have been imported
+ if self.get_platform() == 'cygwin':
+ self.announce('WARNING: skipping import check for Cygwin-based "%s"'
+ % ext.name)
+ return
ext_filename = os.path.join(
self.build_lib,
self.get_ext_filename(self.get_ext_fullname(ext.name)))