[pypy-dev] Build pypy 1.6 on Windows XP with MinGW: can't find ffi.h

Caleb Hattingh caleb.hattingh at gmail.com
Fri Aug 19 14:48:36 CEST 2011


Hi

This is a really silly thing, but I am hoping someone who has done
this before can just give me the one-liner answer.

I am trying to build pypy 1.6 on Windows XP using MinGW (in an MSYS
environment).   The build gets started, and I see a bit of Mandelbrot,
but when the time comes for JIT, I get an error which I will reproduce
below.  I am following the too-terse instructions at the bottom of
this page:

http://codespeak.net/pypy/dist/pypy/doc/windows.html

I have made sure that my newly-built libffi-5.dll is on the system
path, but I doubt that matters for translation.   The instruction that
I run is

$ pypy.exe translate.py -Ojit --cc=mingw32

(Note that the help page only uses a single hyphen as in
"-cc=mingw32", which doesn't work, that should be fixed on the page).
The error that I see is the following:

================================================================================
...
[rtyper] specializing: 156100 / 156162 blocks   (99%)
[rtyper] -=- specialized 2519 more blocks -=-
[rtyper] -=- specialized 0 more blocks -=-
#%%
[rtyper] -=- specialized 10 more blocks -=-
[translation:info] JIT compiler generation...
[platform:execute] gcc -c -O3
c:\docume~1\admini~1\locals~1\temp\usession-default-6\platcheck_54.c
-o c:\docum
e~1\admini~1\locals~1\temp\usession-default-6\platcheck_54.o
[Timer] Timings:
[Timer] annotate                       ---  639.2 s
[Timer] rtype_lltype                   ---  388.4 s
[Timer] pyjitpl_lltype                 ---    2.7 s
[Timer] ===========================================
[Timer] Total:                         --- 1030.2 s
[translation:ERROR] Error:
[translation:ERROR]  Traceback (most recent call last):
[translation:ERROR]    File "translate.py", line 308, in main
[translation:ERROR]     drv.proceed(goals)
[translation:ERROR]    File "j:\tools\pypy\pypy\translator\driver.py",
line 810, in proceed
[translation:ERROR]     return self._execute(goals, task_skip =
self._maybe_skip())
[translation:ERROR]    File
"j:\tools\pypy\pypy\translator\tool\taskengine.py", line 116, in
_execute
[translation:ERROR]     res = self._do(goal, taskcallable, *args, **kwds)
[translation:ERROR]    File "j:\tools\pypy\pypy\translator\driver.py",
line 286, in _do
[translation:ERROR]     res = func()
[translation:ERROR]    File "j:\tools\pypy\pypy\translator\driver.py",
line 395, in task_pyjitpl_lltype
[translation:ERROR]     from pypy.jit.metainterp.warmspot import apply_jit
[translation:ERROR]    File
"j:\tools\pypy\pypy\jit\metainterp\warmspot.py", line 17, in <module>
[translation:ERROR]     from pypy.jit.metainterp import history,
pyjitpl, gc, memmgr
[translation:ERROR]    File
"j:\tools\pypy\pypy\jit\metainterp\pyjitpl.py", line 23, in <module>
[translation:ERROR]     from pypy.jit.metainterp.optimizeopt.util
import args_dict_box
[translation:ERROR]    File
"j:\tools\pypy\pypy\jit\metainterp\optimizeopt\__init__.py", line 8,
in <module>
[translation:ERROR]     from pypy.jit.metainterp.optimizeopt.fficall
import OptFfiCall
[translation:ERROR]    File
"j:\tools\pypy\pypy\jit\metainterp\optimizeopt\fficall.py", line 3, in
<module>
[translation:ERROR]     from pypy.rlib.libffi import Func
[translation:ERROR]    File "j:\tools\pypy\pypy\rlib\libffi.py", line
7, in <module>
[translation:ERROR]     from pypy.rlib import clibffi
[translation:ERROR]    File "j:\tools\pypy\pypy\rlib\clibffi.py", line
115, in <module>
[translation:ERROR]     include_dir='include', library_dir='.libs'),
[translation:ERROR]    File
"j:\tools\pypy\pypy\rpython\tool\rffi_platform.py", line 778, in
configure_externa
l_library
[translation:ERROR]     raise last_error
[translation:ERROR]  CompilationError: CompilationError(out="""
[translation:ERROR]     CompilationError(err="""
[translation:ERROR]
c:\docume~1\admini~1\locals~1\temp\usession-default-6\platcheck_54.c:20:17:
fa
tal error: ffi.h: No such file or directory
[translation:ERROR]             compilation terminated.
[translation:ERROR]             """)""")
[translation] start debugger...
> j:\tools\pypy\pypy\rpython\tool\rffi_platform.py(778)configure_external_library()
-> raise last_error
(Pdb+)
...
================================================================================

I have tried placing ffi.h (and ffi_common.h and ffitarget.h) in
various strategic places, but to no avail.   I could figure it out on
my own eventually, but perhaps someone could save me a little time?
In exchange, I would be happy to write a more detailed doc section for
building pypy on windows from source using mingw.

kind regards
Caleb Hattingh


More information about the pypy-dev mailing list