Package: src:pypy
Version: 2.4.0+dfsg-2
Severity: serious
Tags: patch
Justification: fails to build from source (but built successfully in the past)

==============================================================================
gcc -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused -Wformat 
-Werror=format-s
ecurity -DPy_BUILD_CORE -DPYPY_USE_ASMGCC -DPYPY_CPU_HAS_STANDARD_PRECISION 
-DPy_
BUILD_CORE -frandom-seed=implement_6.c -o implement_6.s -S implement_6.c 
-I"/«BUI
LDDIR»/pypy-2.4.0+dfsg/rpython"/translator/c 
-I/«BUILDDIR»/pypy-2.4.0+dfsg/pypy/m
odule/cpyext/include -I.. 
-I/«BUILDDIR»/pypy-2.4.0+dfsg/pypy/module/_multibytecod
ec -I/«BUILDDIR»/pypy-2.4.0+dfsg/pypy/module/operator -I/usr/include/ncursesw
python "/«BUILDDIR»/pypy-2.4.0+dfsg/rpython"/translator/c/gcc/trackgcroot.py -t 
i
mplement_6.s > implement_6.gctmp
Traceback (most recent call last):
  File "/«BUILDDIR»/pypy-2.4.0+dfsg/rpython/translator/c/gcc/trackgcroot.py", 
lin
e 2088, in <module>
    tracker.process(f, g, filename=fn)
  File "/«BUILDDIR»/pypy-2.4.0+dfsg/rpython/translator/c/gcc/trackgcroot.py", 
lin
e 1981, in process
    tracker = parser.process_function(lines, filename)
  File "/«BUILDDIR»/pypy-2.4.0+dfsg/rpython/translator/c/gcc/trackgcroot.py", 
lin
e 1496, in process_function
    table = tracker.computegcmaptable(self.verbose)
  File "/«BUILDDIR»/pypy-2.4.0+dfsg/rpython/translator/c/gcc/trackgcroot.py", 
lin
e 53, in computegcmaptable
    self.parse_instructions()
  File "/«BUILDDIR»/pypy-2.4.0+dfsg/rpython/translator/c/gcc/trackgcroot.py", 
lin
e 215, in parse_instructions
    self.find_missing_visit_method(opname)
  File "/«BUILDDIR»/pypy-2.4.0+dfsg/rpython/translator/c/gcc/trackgcroot.py", 
lin
e 245, in find_missing_visit_method
    raise UnrecognizedOperation(opname)
__main__.UnrecognizedOperation: cmovnb
make[2]: *** [implement_6.gcmap] Error 1
==============================================================================

Looks like gcc has started emitting instructions that it hadn't in the
past, and trackgcroot.py got confused.

It was easy enough to add support for the missing instructions.

--- a/rpython/translator/c/gcc/trackgcroot.py
+++ b/rpython/translator/c/gcc/trackgcroot.py
@@ -590,7 +590,7 @@
 
     # The various cmov* operations
     for name in '''
-        e ne g ge l le a ae b be p np s ns o no
+        e ne g ge l le a ae b be nb p np s ns o no
         '''.split():
         locals()['visit_cmov' + name] = binary_insn
         locals()['visit_cmov' + name + 'l'] = binary_insn
@@ -837,6 +837,7 @@
     visit_jb = conditional_jump
     visit_jbe = conditional_jump
     visit_jp = conditional_jump
+    visit_jnb = conditional_jump
     visit_jnp = conditional_jump
     visit_js = conditional_jump
     visit_jns = conditional_jump


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to