[pypy-commit] pypy release-1.7.x: rstacklet.py builds ok, but crashes when run.

ctismer noreply at buildbot.pypy.org
Sun Nov 27 12:58:26 CET 2011


Author: Christian Tismer <tismer at stackless.com>
Branch: release-1.7.x
Changeset: r49856:930f0bc4125a
Date: 2011-11-27 07:02 +0100
http://bitbucket.org/pypy/pypy/changeset/930f0bc4125a/

Log:	rstacklet.py builds ok, but crashes when run. Checking in, anyway.
	Can somebody have a look? (transplanted from
	f1598797a877e03a21f4e9569268d4374ff75f36)

diff --git a/pypy/translator/c/genc.py b/pypy/translator/c/genc.py
--- a/pypy/translator/c/genc.py
+++ b/pypy/translator/c/genc.py
@@ -542,7 +542,7 @@
             mk.rule(*rule)
 
         if self.config.translation.gcrootfinder == 'asmgcc':
-            trackgcfiles = [cfile[:-2] for cfile in mk.cfiles]
+            trackgcfiles = [cfile[:cfile.rfind('.')] for cfile in mk.cfiles]
             if self.translator.platform.name == 'msvc':
                 trackgcfiles = [f for f in trackgcfiles
                                 if f.startswith(('implement', 'testing',
@@ -579,7 +579,7 @@
             if self.translator.platform.name == 'msvc':
                 lblofiles = []
                 for cfile in mk.cfiles:
-                    f = cfile[:-2]
+                    f = cfile[:cfile.rfind('.')]
                     if f in trackgcfiles:
                         ofile = '%s.lbl.obj' % (f,)
                     else:
diff --git a/pypy/translator/platform/windows.py b/pypy/translator/platform/windows.py
--- a/pypy/translator/platform/windows.py
+++ b/pypy/translator/platform/windows.py
@@ -172,7 +172,7 @@
         # The c compiler accepts any order of arguments, while
         # the assembler still has the old behavior that all options
         # must come first, and after the file name all options are ignored.
-        # So please be careful with the oder of parameters! ;-)
+        # So please be careful with the order of parameters! ;-)
         args = ['/nologo', '/c'] + compile_args + ['/Fo%s' % (oname,), str(cfile)]
         self._execute_c_compiler(cc, args, oname)
         return oname
@@ -258,7 +258,7 @@
                 return fpath
 
         rel_cfiles = [m.pathrel(cfile) for cfile in cfiles]
-        rel_ofiles = [rel_cfile[:-2]+'.obj' for rel_cfile in rel_cfiles]
+        rel_ofiles = [rel_cfile[:rel_cfile.rfind('.')]+'.obj' for rel_cfile in rel_cfiles]
         m.cfiles = rel_cfiles
 
         rel_includedirs = [pypyrel(incldir) for incldir in eci.include_dirs]
@@ -289,6 +289,7 @@
         rules = [
             ('all', '$(DEFAULT_TARGET)', []),
             ('.c.obj', '', '$(CC) /nologo $(CFLAGS) $(CFLAGSEXTRA) /Fo$@ /c $< $(INCLUDEDIRS)'),
+            ('.asm.obj', '', '$(MASM) /nologo /Fo$@ /c $< $(INCLUDEDIRS)'),
             ]
 
         for rule in rules:


More information about the pypy-commit mailing list