-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dave Murphy wrote: > > I'm totally at a loss to explain the problems Ranjit was experiencing in > this mail then. > > http://gcc.gnu.org/ml/gcc/2006-04/msg00247.html > > the part where he says " when run from within the MSYS environment, > everything was hunky-dory but when run from the Windows command prompt, > it used to give a "_spawnvp: No such file or directory" error when one > tried to compile something."
The difference is that MSYS automatically adds the "bin" folder of MinGW to the PATH. On the Windows command prompt, I was trying to execute "gcc" directly without having its "bin" folder in the PATH - if I add that folder to the PATH, things work fine again. In the problematic case, GCC is able to find "cc1" but not "as": - --------------------------- 8< --------------------------- E:\src\tmp>d:\MiscAppz\MinGW\bin\gcc -v hello.c Using built-in specs. Target: i686-pc-mingw32 Configured with: ../gcc-4.1.0/configure --prefix=/mingw \ - --target=i686-pc-mingw32 --enable-languages=c,c++ \ - --disable-nls --disable-debug --enable-__cxa_atexit \ - --enable-threads=win32 --disable-win32-registry \ - --with-ld=/mingw/bin/ld.exe --with-as=/mingw/bin/as.exe Thread model: win32 gcc version 4.1.0 d:/miscappz/mingw/bin/../libexec/gcc/i686-pc-mingw32/4.1.0/cc1.exe \ - -quiet -v -iprefix d:\miscappz\mingw\bin\../lib/gcc/i686-pc-mingw32/4.1.0/ \ hello.c -quiet -dumpbase hello.c -mtune=pentiumpro -auxbase hello \ - -version -o D:\TEMP/ccWCaaaa.s ignoring nonexistent directory "/mingw/include" ignoring nonexistent directory "d:/MiscAppz/MinGW/i686-pc-mingw32/include" ignoring nonexistent directory "/mingw/include" #include "..." search starts here: #include <...> search starts here: d:/miscappz/mingw/bin/../lib/gcc/i686-pc-mingw32/4.1.0/include d:/MiscAppz/MinGW/include d:/MiscAppz/MinGW/lib/gcc/i686-pc-mingw32/4.1.0/include End of search list. GNU C version 4.1.0 (i686-pc-mingw32) compiled by GNU C version 4.1.0. GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=65462 Compiler executable checksum: ee311961bfecdede449f181caa4cf975 as -o D:\TEMP/ccI5aaaa.o D:\TEMP/ccWCaaaa.s gcc: _spawnvp: No such file or directory - --------------------------- 8< --------------------------- (Long lines broken up manually.) Note that I *had* specified "--with-as", but I was using UNIX-y paths which are *not* translated by MSYS for shell scripts (unlike "regular" programmes): - --------------------------- 8< --------------------------- /e/src/tmp > cat hello.c #include <stdio.h> int main( int argc, char *argv[]) { if(argc > 1) printf( "argv[1]: %s\n", argv[1]); return 0; } /e/src/tmp > gcc hello.c /e/src/tmp > ./a.exe /mingw argv[1]: d:/MiscAppz/MinGW /e/src/tmp > cat scr.sh #!/bin/sh echo $* /e/src/tmp > ./scr.sh /mingw /mingw - --------------------------- 8< --------------------------- Note also that GCC's programme search path does not include its own location for some reason: - --------------------------- 8< --------------------------- d:/miscappz/mingw/bin/../libexec/gcc/i686-pc-mingw32/4.1.0/ d:/miscappz/mingw/bin/../libexec/gcc/ d:/MiscAppz/MinGW/libexec/gcc/i686-pc-mingw32/4.1.0/ d:/MiscAppz/MinGW/libexec/gcc/i686-pc-mingw32/4.1.0/ d:/MiscAppz/MinGW/libexec/gcc/i686-pc-mingw32/ d:/MiscAppz/MinGW/lib/gcc/i686-pc-mingw32/4.1.0/ d:/MiscAppz/MinGW/lib/gcc/i686-pc-mingw32/ /usr/libexec/gcc/i686-pc-mingw32/4.1.0/ /usr/libexec/gcc/i686-pc-mingw32/ /usr/lib/gcc/i686-pc-mingw32/4.1.0/ /usr/lib/gcc/i686-pc-mingw32/ d:/miscappz/mingw/bin/../lib/gcc/i686-pc-mingw32/4.1.0/../../../../i686-pc-mingw 32/bin/i686-pc-mingw32/4.1.0/ d:/miscappz/mingw/bin/../lib/gcc/i686-pc-mingw32/4.1.0/../../../../i686-pc-mingw 32/bin/ d:/MiscAppz/MinGW/lib/gcc/i686-pc-mingw32/4.1.0/../../../../i686-pc-mingw32/bin/ i686-pc-mingw32/4.1.0/ d:/MiscAppz/MinGW/lib/gcc/i686-pc-mingw32/4.1.0/../../../../i686-pc-mingw32/bin/ - --------------------------- 8< --------------------------- This is the more readable version of the "programs" section of the output of "D:\MiscAppz\MinGW\bin\gcc -print-search-dirs". See also PR bootstrap/22259: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22259 The curious thing is that I could not find the message in gcc-patches corresponding to CGF's patch and I cannot find out who defines USE_MINGW_MSYS. In any case, all this has been overridden in mainline by a series of patches from Jim Blandy and Mark Mitchell, though I haven't bootstrapped GCC mainline on MSYS. Thanks, Ranjit. - -- Ranjit Mathew Email: rmathew AT gmail DOT com Bangalore, INDIA. Web: http://rmathew.com/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFETdPEYb1hx2wRS48RAtDvAJwIFIHe8LQUsFWD8BJ5H4HWlk6i/gCfQbnM S872RVKUETmoMikS+ymG+30= =7rQb -----END PGP SIGNATURE-----