This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: cp.exe bug
- From: "Alan" <alanw at cox dot net>
- To: "Cygwin" <cygwin at cygwin dot com>
- Date: Sun, 14 Mar 2004 12:57:10 -0800
- Subject: Re: cp.exe bug
- References: <001b01c409b0$4717c250$6400000a@RossLap>
----- Original Message -----
From: "Ross Boulet" <ross@rossb.com>
To: "Cygwin" <cygwin@cygwin.com>
Sent: Sunday, March 14, 2004 2:36 AM
Subject: RE: cp.exe bug
> > Problem:
> > fileutils version 4.1-2, specifically: cp.exe does not work properly.
> >
> > System Info:
> > Windows 2000, Cygwin DLL version 1.5.7
> >
> > Reproducing from prompt:
> > prompt> cp some_file ./bin/
> >
> > Output:
> > cp: `some_file' and `./bin/some_file' are the same file
> >
> >
> > Reproducing from within Makefile:
> > cp ./some_dir/some_file ./bin/;
> >
> > Make output:
> > cp: `./some_dir/some_file' and `./bin/some_file' are the same file
> > make: *** [install] Error 1
> >
> >
> > Workaround:
> > Reinstall fileutils 4.1-1
> >
>
> WFM under XP with fileutils 4.1-2 and any one of cygwin dll 1.5.7 and the
> last two snapshots (20040306 and 20040312).
>
> I can re-create the error if I create a hard link in ./bin as shown in the
> second example below:
>
> $ echo aaa >foo
> $ mkdir bar
> $ cp foo ./bar/
>
> The above works fine, but the following fails with your same error:
>
> $ echo aaa >foo2
> $ mkdir bar2
> $ ln foo2 ./bar2/foo2
> $ cp foo2 ./bar2/
> cp: `foo2' and `./bar2/foo2' are the same file
>
> You might check to ensure there is not a link in ./bin pointing to the
same
> file in the parent directory.
>
> Ross
>
>
I've narrowed it down to running `make' on my linux Makefiles, simple
example follows:
####### Simple Makefile Example
CC= gcc
OBJ= foo.o
FILE= foo.c
BIN= foo
all: $(BIN) install
$(BIN): $(OBJ)
$(CC) -o $(BIN) $(OBJ)
$(OBJ):
$(CC) -c $(FILE) -o $(OBJ)
install:
mkdir -p ./bin/;
cp $(BIN) ./bin/;
####### End Makefile
>From prompt:
$ make
mkdir -p ./bin/;
cp foo ./bin/;
cp: `foo' and `./bin/foo' are the same file
make: *** [install] Error 1
The problem I believe is that `Make' outputs the binary `foo' as `foo.exe'
which causes `cp.exe' to fail. This had previously worked fine with the
version of `cp.exe' included with `fileutils 4.1-1'
Workaround:
Modify all existing Makefiles by adding the proper file extension to the
binary.
Example:
BIN= foo
Should be changed to:
BIN= foo.exe
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/