Author: Matti Picus <[email protected]>
Branch:
Changeset: r70433:3af6adc2c895
Date: 2014-04-04 13:53 +0300
http://bitbucket.org/pypy/pypy/changeset/3af6adc2c895/
Log: disallow asmgcc on msvc only
diff --git a/rpython/config/test/test_translationoption.py
b/rpython/config/test/test_translationoption.py
--- a/rpython/config/test/test_translationoption.py
+++ b/rpython/config/test/test_translationoption.py
@@ -1,7 +1,7 @@
import py
from rpython.config.translationoption import get_combined_translation_config
from rpython.config.translationoption import set_opt_level
-from rpython.config.config import ConflictConfigError
+from rpython.config.config import ConflictConfigError, ConfigError
from rpython.translator.platform import platform as compiler
@@ -13,5 +13,5 @@
if compiler.name == 'msvc':
def test_no_asmgcrot_on_msvc():
config = get_combined_translation_config()
- config.translation.setoption('gcrootfinder', 'asmgcc', 'required')
- py.test.raises(ConflictConfigError, set_opt_level, config, 'jit')
+ py.test.raises(ConfigError, config.translation.setoption,
+ 'gcrootfinder', 'asmgcc', 'user')
diff --git a/rpython/config/translationoption.py
b/rpython/config/translationoption.py
--- a/rpython/config/translationoption.py
+++ b/rpython/config/translationoption.py
@@ -4,6 +4,7 @@
from rpython.config.config import ChoiceOption, StrOption, Config,
ConflictConfigError
from rpython.config.config import ConfigError
from rpython.config.support import detect_number_of_processors
+from rpython.translator.platform import platform as compiler
DEFL_INLINE_THRESHOLD = 32.4 # just enough to inline add__Int_Int()
# and just small enough to prevend inlining of some rlist functions.
@@ -16,8 +17,13 @@
if sys.platform.startswith("linux"):
DEFL_ROOTFINDER_WITHJIT = "asmgcc"
+ ROOTFINDERS = ["n/a", "shadowstack", "asmgcc"]
+elif compiler.name == 'msvc':
+ DEFL_ROOTFINDER_WITHJIT = "shadowstack"
+ ROOTFINDERS = ["n/a", "shadowstack"]
else:
DEFL_ROOTFINDER_WITHJIT = "shadowstack"
+ ROOTFINDERS = ["n/a", "shadowstack", "asmgcc"]
IS_64_BITS = sys.maxint > 2147483647
@@ -85,7 +91,7 @@
default=IS_64_BITS, cmdline="--gcremovetypeptr"),
ChoiceOption("gcrootfinder",
"Strategy for finding GC Roots (framework GCs only)",
- ["n/a", "shadowstack", "asmgcc"],
+ ROOTFINDERS,
"shadowstack",
cmdline="--gcrootfinder",
requires={
@@ -366,11 +372,9 @@
# if we have specified strange inconsistent settings.
config.translation.gc = config.translation.gc
- # disallow asmgcc on OS/X and windows
+ # disallow asmgcc on OS/X
if config.translation.gcrootfinder == "asmgcc":
assert sys.platform != "darwin"
- if (sys.platform == 'win32'):
- raise ConflictConfigError("asmgcc unusable on win32")
# ----------------------------------------------------------------
diff --git a/rpython/jit/backend/x86/test/test_zrpy_gcasmgcc.py
b/rpython/jit/backend/x86/test/test_zrpy_gcasmgcc.py
--- a/rpython/jit/backend/x86/test/test_zrpy_gcasmgcc.py
+++ b/rpython/jit/backend/x86/test/test_zrpy_gcasmgcc.py
@@ -1,4 +1,9 @@
+import py
from rpython.jit.backend.llsupport.test.zrpy_gc_test import
CompileFrameworkTests
+from rpython.translator.platform import platform as compiler
+
+if compiler.name == 'msvc':
+ py.test.skip('asmgcc buggy on msvc')
class TestAsmGcc(CompileFrameworkTests):
gcrootfinder = "asmgcc"
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit