[Python-Dev] Cygwin: Problem detecting subprocess termination after _spawn_posix in distutils?

Steve Holden steve at holdenweb.com
Mon Jul 30 20:59:02 CEST 2007


I've been trying to install PIL 1.1.6 for several days now under Cygwin. 
I have tried the Cygwin, Image and distutils lists with nary a pointer, 
so I wondered whether python-dev might lead me to an answer (other than 
"Stop using Cygwin" ;-)

Here's the output from a failed setup run with a couple of debug prints 
inserted which should report how sub-process termination occurred - it 
hangs after this output.

$ python setup.py build
running build
running build_py
running build_ext
building '_imaging' extension
SPAWN: ['gcc', '-fno-strict-aliasing', '-DNDEBUG', '-g', '-O3', '-Wall', 
'-Wstrict-prototypes', '-DHAVE_LIBZ', '-IlibImaging', '-I/usr/include', 
'-I/usr/include/python2.5', '-c', 'libImaging/Chops.c', '-o', 
'build/temp.cygwin-1.5.24-i686-2.5/libImaging/Chops.o'] PATH? 1 V: 0 D:0
gcc -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
-DHAVE_LIBZ -IlibImaging -I/usr/include -I/usr/include/python2.5 -c 
libImaging/Chops.c -o build/temp.cygwin-1.5.24-i686-2.5/libImaging/Chops.o
Are we done yet? Waiting on pid 3280

I have to kill a python.exe process that's left running in the 
background if I CTRL/C the build. Otherwise it will spend all night in a 
tight loop. The compilation is finished when I kill the process, and the 
next compile will begin if I repeat the command.

I extracted the _spawn_all function from distutils/spawn.py, hacked some 
exceptions and ran it under command line control.

That worked fine with other subtasks, so I wondered whether this was a 
failure specific to gcc, which would seem kind of unlikely. I ran the 
same compile using my test function standing alone, seeing success:

sholden at bigboy ~/Imaging-1.1.6
$ python ~/Projects/Python/spawntest.py gcc -fno-strict-aliasing 
-DNDEBUG -g -O3 -Wall -Wstrict-prototypes -DHAVE_LIBZ -IlibImaging 
-I/usr/include -I/usr/include/python2.5 -c libImaging/Chops.c -o 
build/temp.cygwin-1.5.24-i686-2.5/libImaging/Chops.o
Are we done yet? Waiting on pid 3244
Got pid, status 3244 0
Got WIFEXITED 0

So it appears unlikely to be gcc-specific, leaving me wondering what 
exactly is the difference between the build environment and my tests.

It would be really nice if test_distutils showed any failures, but it 
doesn't so any assistance would be welcome. At this point I can't even 
replicate the failure in a simpler test :-(

regards
  Steve
-- 
Steve Holden        +1 571 484 6266   +1 800 494 3119
Holden Web LLC/Ltd           http://www.holdenweb.com
Skype: holdenweb      http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------



More information about the Python-Dev mailing list