Author: Remi Meier <remi.me...@gmail.com>
Branch: nogil-unsafe-2
Changeset: r90787:856f0f42a1ee
Date: 2017-03-22 09:15 +0100
http://bitbucket.org/pypy/pypy/changeset/856f0f42a1ee/

Log:    do the previous workaround only in the problematic case

diff --git a/rpython/tool/gcc_cache.py b/rpython/tool/gcc_cache.py
--- a/rpython/tool/gcc_cache.py
+++ b/rpython/tool/gcc_cache.py
@@ -25,7 +25,8 @@
         try:
             if ignore_errors:
                 platform.log_errors = False
-            result = platform.execute(platform.compile(c_files, eci))
+            result = platform.execute(platform.compile(c_files, eci,
+                                                       all_modules=False))
             if result.err:
                 sys.stderr.write(result.err)
         finally:
diff --git a/rpython/translator/c/src/thread.h 
b/rpython/translator/c/src/thread.h
--- a/rpython/translator/c/src/thread.h
+++ b/rpython/translator/c/src/thread.h
@@ -38,7 +38,6 @@
 RPY_EXTERN void RPyGilLeaveMasterSection(void);
 RPY_EXTERN void RPyGilMasterRequestSafepoint(void);
 
-
 #define RPyGilAcquire _RPyGilAcquire
 #define RPyGilRelease _RPyGilRelease
 #define RPyFetchFastGil _RPyFetchFastGil
diff --git a/rpython/translator/platform/__init__.py 
b/rpython/translator/platform/__init__.py
--- a/rpython/translator/platform/__init__.py
+++ b/rpython/translator/platform/__init__.py
@@ -50,8 +50,9 @@
             raise TypeError("You should not instantiate Platform class 
directly")
         self.cc = cc
 
-    def compile(self, cfiles, eci, outputfilename=None, standalone=True):
-        ofiles = self._compile_o_files(cfiles, eci, standalone)
+    def compile(self, cfiles, eci, outputfilename=None, standalone=True,
+                all_modules=True):
+        ofiles = self._compile_o_files(cfiles, eci, standalone, all_modules)
         return self._finish_linking(ofiles, eci, outputfilename, standalone)
 
     def _all_cfiles(self, cfiles, eci):
@@ -64,12 +65,13 @@
                 result.append(cfile)
         return result
 
-    def _compile_o_files(self, cfiles, eci, standalone=True):
-        # XXX: why does platform-check add all known C files here?
-        # apparently it adds, e.g., thread.c if rthread is used. And then
-        # compiles them already. Is this necessary? (thread.c does currently
-        # not compile on its own...)
-        # cfiles = self._all_cfiles(cfiles, eci)
+    def _compile_o_files(self, cfiles, eci, standalone=True, all_modules=True):
+        if all_modules:
+            # XXX: why does platform-check add all known C files here?
+            # apparently it adds, e.g., thread.c if rthread is used. And then
+            # compiles them already. Is this necessary? (thread.c does 
currently
+            # not compile on its own...)
+            cfiles = self._all_cfiles(cfiles, eci)
         compile_args = self._compile_args_from_eci(eci, standalone)
         ofiles = []
         for cfile in cfiles:
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to