[pypy-commit] pypy nogil-unsafe-2: workaround for tests passing only because of rpython's platform-check cache

Raemi pypy.commits at gmail.com
Wed Mar 22 04:02:48 EDT 2017


Author: Remi Meier <remi.meier at gmail.com>
Branch: nogil-unsafe-2
Changeset: r90786:ad597a412706
Date: 2017-03-22 09:02 +0100
http://bitbucket.org/pypy/pypy/changeset/ad597a412706/

Log:	workaround for tests passing only because of rpython's platform-
	check cache

	apparently the initial platform check also tries to compile all C
	files mentioned in separate_module_files. Since thread.c currently
	does not compile without structdef.h & friends, the platform check
	actually fails. It only worked by chance since rpython apparently
	maintains a '_cache' folder with previous successful compilations.

	This commit prevents all C files to be compiled during said platform
	check. Unsure if this is OK or why it is done before...

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
@@ -65,7 +65,11 @@
         return result
 
     def _compile_o_files(self, cfiles, eci, standalone=True):
-        cfiles = self._all_cfiles(cfiles, eci)
+        # 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:


More information about the pypy-commit mailing list