Author: Matti Picus <matti.pi...@gmail.com> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit