Mail Archives: cygwin-developers/2000/04/10/08:05:02
Hi all.
I have been having some fun testing the new net release
of cygwin on a win 95 box, and I have run into some
problems that I thought I would share.
Right off the bat, I ran into trouble because cygwin
does not seem to include autoconf in the default install.
Personally, I think it would be a mistake to release
cygwin without autoconf and cvs as part of the "core tools".
At any rate, I decided to install autoconf from the source
tar ball from the sourceware site.
Unfortunately, I found that tar does not seem to like the -z option.
BASH.EXE-2.03$ tar -xzvf autoconf-2.13.tar.gz
tar (child): Cannot exec gzip: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error exit delayed from previous errors
What is strange about this is that gzip can be run by itself.
BASH.EXE-2.03$ gzip -d autoconf-2.13.tar.gz
BASH.EXE-2.03$ ls
TCL8.3 TK8.3 autoconf-2.13.tar
So I configured and installed autoconf and I thought I was
ready to rock. Unfortunatly, I soon discovered that the
default install directory /usr/local/bin was NOT in the
default PATH (from the cygwin installer).
I have to go set the PATH again by hand which is a real
pain because I need to edit autoexec.bat and reboot to
change the PATH (Still waiting on Ron's env space solution!).
At the very least the following dirs need to be on the PATH
created by the installer. (assuming that C:\Cygwin is mounted / )
C:\Cygwin\bin
C:\Cygwin\usr\bin
C:\Cygwin\usr\local\bin
Now on to the fun stuff.
When I try to run gcc it core dumps.
BASH.EXE-2.03$ gcc
C:\CYGWIN\USR\BIN\GCC.EXE: *** conflicting versions of cygwin1.dll
detected.
Use only the most recent version.
0 [unknown (0xFFF13285)] ? 0 lpfu: void pinfo::record_death
(int):374 having problems getting lock
12544 [unknown (0xFFF13285)] ? 0 lpfu: *** , rc -1, Win32 error 6
16895 [unknown (0xFFF13285)] ? 0 unlock_pinfo: ReleaseMutext
(pinfo_mutex<0x0>) failed, Win32 error 6
These seem to be the only cygwin1.dll files on the system.
/bin/cygwin1.dll
/usr/bin/cygwin1.dll
BASH.EXE-2.03$ ls -la /bin/cygwin1.dll
-rw-r--r-- 1 administ unknown 804728 Sep 13 1999 /bin/cygwin1.dll
BASH.EXE-2.03$ ls -la /usr/bin/cygwin1.dll
-rw-r--r-- 1 administ unknown 600576 Feb 29 22:23
/usr/bin/cygwin1.dll
The /usr/bin/cygwin1.dll dll seems to be newer so I moved /bin/cygwin1.dll
to C:\Temp to see if that fixed the gcc crash. It did.
BASH.EXE-2.03$ gcc
gcc: No input files
Why does the default install include that old dll? Did it slip in with
some old package, I installed all the packages on the web site if that
helps.
So now to do a quick sanity check on gcc.
BASH.EXE-2.03$ echo "#include <stdio.h>
int main() {
fprintf(stdout,\"hello world\n\");
}" > hello.c
BASH.EXE-2.03$ gcc -o hello hello.c
BASH.EXE-2.03$ ./hello
hello world
That works just fine, but if I try to put this same
sequence of commands into a Makefile and run it with
make, it fails. Here are the makefile contents and
the output I get when I run it at the command line.
all:
gcc -o hello hello.c
BASH.EXE-2.03$ make
gcc -o hello hello.c
make: gcc: Command not found
make: *** [all] Error 127
What's the deal? Why does a makefile refuse to run?
I tried hacking around this by adding a SHELL var
and that seemed to work, but why should I
need to do this? I would expect existing makefiles
to run without special hacking.
SHELL=/bin/sh
all:
gcc -o hello hello.c
BASH.EXE-2.03$ make
gcc -o hello hello.c
BASH.EXE-2.03$ ./hello.exe
hello world
So the results were fairly good, but there still seem
to be some gotchas that will have new users throwing
up their hands in disgust.
I hope that helps
Mo Dejong
Red Hat Inc.
- Raw text -