I'm getting random syntax errors in shell scripts (configure and libtool) used in the build of GCC when /home is mounted via a network drive.
I recently checked out the released gcc 3.2.2 (tag gcc_3_2_2_release) and tried to build it. I had problems building it because of random shell syntax errors in the libstdc++-v3 configure script and sometimes in libtool in the libstdc++-v3 directory. Some typical error messages were: checking for string.h... yes checking for stdlib.h... yes /home/mhcox/projects/work/gcc_3_2_2_release/gcc/libstdc++-v3/configure: line 7712: syntax error: unexpected end of file make[1]: *** [configure-target-libstdc++-v3] Error 1 make[1]: Leaving directory `/home/mhcox/projects/build/gcc_3_2_2_release' make: *** [bootstrap] Error 2 checking for string.h... yes checking for stdlib.h... yes /home/mhcox/projects/work/gcc_3_2_2_release/gcc/libstdc++-v3/configure: line 6079: unexpected EOF while looking for matching `"' /home/mhcox/projects/work/gcc_3_2_2_release/gcc/libstdc++-v3/configure: line 6080: syntax error: unexpected end of file make[1]: *** [configure-target-libstdc++-v3] Error 1 make[1]: Leaving directory `/home/mhcox/projects/build/gcc_3_2_2_release' make: *** [bootstrap] Error 2 make[4]: Entering directory `/home/mhcox/projects/build/gcc_3_2_2_release/i686-pc-cygwin/libstdc++-v3/li bmath' /bin/sh ../libtool --tag CC --mode=compile /home/mhcox/projects/build/gcc_3_2_2_release/gcc/xgcc -B/home/mhcox/projects /build/gcc_3_2_2_release/gcc/ -B/opt/gcc-3.2.2/i686-pc-cygwin/bin/ -B/opt/gc c-3.2.2/i686-pc-cygwin/lib/ -isystem /opt/gcc-3.2.2/i686-pc-cygwin/include -DHAVE_CONFIG_H -I. -I../../../../../w ork/gcc_3_2_2_release/gcc/libstdc++-v3/libmath -I.. -O2 -g -O2 -c ../../../../../work/gcc_3_2_2_release/gcc/libstdc++-v3/libmath/stubs.c ../libtool: line 2069: syntax error: unexpected end of file make[4]: *** [stubs.lo] Error 2 make[4]: Leaving directory `/home/mhcox/projects/build/gcc_3_2_2_release/i686-pc-cygwin/libstdc++-v3/li bmath' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/mhcox/projects/build/gcc_3_2_2_release/i686-pc-cygwin/libstdc++-v3' make[2]: *** [all-recursive-am] Error 2 make[2]: Leaving directory `/home/mhcox/projects/build/gcc_3_2_2_release/i686-pc-cygwin/libstdc++-v3' make[1]: *** [all-target-libstdc++-v3] Error 2 make[1]: Leaving directory `/home/mhcox/projects/build/gcc_3_2_2_release' make: *** [bootstrap] Error 2 These and other builds I ran seemed to find syntax/EOF errors at random line numbers in the libstdc++-v3/configure script and sometimes would get through that script but then have similar problems in the libtool script. I even had one failure running the top-level configure script, but that usually works. So the bottom line is that shell scripts in the GCC build seem to randomly think they've reached EOF for no good reason. Thinking there might be something wrong with the 3.2.2 release I tried it on the gcc 3.3 branch. Same problem. I noticed that my /home directory under cygwin was mounted via a network share (Z:). The Z: drive has the home directories used by members of the Win2K domain. The Z: drive is a share on the Win2K domain server. Since I was running the build on that domain server, I unmounted that win32 pathname and mounted "C:\home", the local drive on the server shared as Z:. All my shell EOF build problems went away. Attached are to cygcheck outputs: cygcheck1.out is with the Z: drive mounted as /home and cygcheck2.out is with C:\home mounted as /home. I did a Google search of cygwin.com for "mount network drive" and got a few hits regarding problems with ssh, telnet, and crons, but nothing regarding shell scripts failing on networked drives. Also, found some problems regarding binmode vs. textmode, but the mounts of /home where both binmode. Mike
cygcheck1.out
Description: Binary data
cygcheck2.out
Description: Binary data
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/