This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cp.exe bug


----- 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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]