Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Message-ID: <50028CAE26D1D3118C7F00A0CC50D6252D1DB6@EMWARESERVER> From: Scott Carter To: "'cygwin-support AT cygnus DOT com'" , "'cygwin AT sourceware DOT cygnus DOT com'" Subject: make win32 chokes on lone tab Date: Fri, 23 Jun 2000 17:01:39 -0600 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" We were having some real frustrating problems with make, but eventually (by chance) tracked the problem down to this: If the final (or any) command in a rule is an "empty command" (as it's referred to in the documentation)(that is, the line begins with a tab, but is otherwise empty -- which, in most editors, looks like a blank line), make will terminate with a STATUS_ACCESS_VIOLATION error. The problem occurs with the Cygwin port of gnu make, versions 3.77 and 3.79 (maybe others), but only in win32 mode (i.e., make --win32 ... OR set MAKE_MODE=win32 ...). The obvious reply to this problem is "Well, silly -- get rid of the empty command lines!" That's exactly what we've done. But, since it doesn't cause a problem in --unix mode, it seems this might be a bug with --win32 mode. And, since the documentation (Writing the Commands in Rules) says that "Blank lines and lines of just comments may appear among the command lines", AND since this can be a really difficult problem to diagnose (since the error gives no clue what the problem is, and a lone tab is hard to see), it might be worth fixing. I've written a simple makefile (see below) which demonstrates the problem. Also below is a transcript of a session which shows the problem, and provides info on versions, etc. Regards- Scott Carter --------------------- Transcript ---------------------- [ For this demonstration, I removed sh.exe from my path (renamed it). ] D:\testmake>type makefile # --- Filename: makefile .PHONY : all all: @echo The next rule command line is only a tab. # --- The line above this one contains a single tab character. @echo The preceding rule command line is only a tab. # EOF D:\testmake>uname -a CYGWIN_NT-4.0 SCARTER 1.1.2(0.21/3/2) 2000-06-06 22:20 i686 unknown [ OS: Windows NT 4.0 SP 5. ] [ I also tested on Window 98 -- had same problem. ] D:\testmake>echo %MAKE_MODE% %MAKE_MODE% [ i.e., MAKE_MODE is not in the environment. ] D:\testmake>make_379c The next rule command line is only a tab. The preceding rule command line is only a tab. D:\testmake>make_379c --win32 The next rule command line is only a tab. 0 [main] make_379c 1000 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION 18428 [main] make_379c 1000 stackdump: Dumping stack trace to make_379c.exe.stackdump D:\testmake>make_377c The next rule command line is only a tab. The preceding rule command line is only a tab. D:\testmake>make_377c --win32 The next rule command line is only a tab. 0 [main] make_377c 1000 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION 18937 [main] make_377c 1000 stackdump: Dumping stack trace to make_377c.exe.stackdump D:\testmake>make_377g The next rule command line is only a tab. The preceding rule command line is only a tab. D:\testmake>make_377g --win32 make_377g: unrecognized option `--win32' [ This make appears NOT to be a Cygwin port -- it doesn't recognize --win32. ] D:\testmake>make_379c --version GNU Make version 3.79, by Richard Stallman and Roland McGrath. Built for i686-pc-cygwin Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc. [...] D:\testmake>make_377c --version GNU Make version 3.77, by Richard Stallman and Roland McGrath. Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc. [...] D:\testmake>make_377g --version GNU Make version 3.77, by Richard Stallman and Roland McGrath. Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc. [...] [ This one appears NOT to be a Cygwin port. I don't know its origin. ] -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com