Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <002601c40a06$eb7bb0d0$2cb80544@cx272325b> From: "Alan" To: "Cygwin" References: <001b01c409b0$4717c250$6400000a AT RossLap> Subject: Re: cp.exe bug Date: Sun, 14 Mar 2004 12:57:10 -0800 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit ----- Original Message ----- From: "Ross Boulet" To: "Cygwin" 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/