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: <50028CAE26D1D3118C7F00A0CC50D6252D1DBC@EMWARESERVER> From: Scott Carter To: "'cygwin AT sourceware DOT cygnus DOT com'" Subject: make win32 doesn't correctly handle canned sequences. Date: Mon, 26 Jun 2000 20:25:38 -0600 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id WAA27635 make --win32 does not correctly handle canned sequences (AKA multi-line, recursively-expanded variables, which are created with the "define/endef" directive). It appears that perhaps the memory which holds the canned sequence is being overwritten/corrupted. The problem occurs with the Cygwin port of gnu make, versions 3.77, 3.79, and 3.79-2 (maybe others), but only in win32 mode (i.e., make --win32 ... OR set MAKE_MODE=win32 ...). 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 PS - Let me say thanks for your quick response on the last problem I reported (make win32 chokes on lone tab; 23Jun2000). I never expected to have the problem fixed literally overnight. Great job! I downloaded make 3.79-2 and it seems to have solved the lone tab problem (on WinNT and Win98). And, I'm sorry I didn't get this one in sooner -- it might have saved you a release. --------------------- Transcript --------------------------- [ For this demonstration, I removed sh.exe from my path (renamed it). ] D:\testmake>type makefile # --- Filename: makefile .PHONY : all define MULTILINE_DEFINE echo This is line 1 of MULTILINE_DEFINE echo This is line 2 of MULTILINE_DEFINE echo This is line 3 of MULTILINE_DEFINE endef all: $(MULTILINE_DEFINE) # 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 Windows 98 -- had similar (not identical) problem. ] D:\testmake>echo %MAKE_MODE% %MAKE_MODE% [ i.e., MAKE_MODE is not in the environment. ] D:\testmake>make_3792c --win32 echo This is line 1 of MULTILINE_DEFINE echo This is line 2 of MULTILINE_DEFINE echo This is line 3 of MULTILINE_DEFINE This is line 1 of MULTILINE_DEFINE ¶=B?;MaêÖ? make_3792c: vE@: Command not found make_3792c: *** [all] Error 127 [ Some of the characters displayed have hex values greater than 0x7f, and therefore the display representation will differ from display to display. ] D:\testmake>make_3792c echo This is line 1 of MULTILINE_DEFINE This is line 1 of MULTILINE_DEFINE echo This is line 2 of MULTILINE_DEFINE This is line 2 of MULTILINE_DEFINE echo This is line 3 of MULTILINE_DEFINE This is line 3 of MULTILINE_DEFINE D:\testmake>make_379c --win32 echo This is line 1 of MULTILINE_DEFINE echo This is line 2 of MULTILINE_DEFINE echo This is line 3 of MULTILINE_DEFINE This is line 1 of MULTILINE_DEFINE IVE=C: make_379c: IVE=C:: Command not found make_379c: *** [all] Error 127 D:\testmake>make_379c echo This is line 1 of MULTILINE_DEFINE This is line 1 of MULTILINE_DEFINE echo This is line 2 of MULTILINE_DEFINE This is line 2 of MULTILINE_DEFINE echo This is line 3 of MULTILINE_DEFINE This is line 3 of MULTILINE_DEFINE D:\testmake>make_377c --win32 echo This is line 1 of MULTILINE_DEFINE echo This is line 2 of MULTILINE_DEFINE echo This is line 3 of MULTILINE_DEFINE This is line 1 of MULTILINE_DEFINE IVE=C: make_377c: IVE=C:: Command not found make_377c: *** [all] Error 127 D:\testmake>make_377c echo This is line 1 of MULTILINE_DEFINE This is line 1 of MULTILINE_DEFINE echo This is line 2 of MULTILINE_DEFINE This is line 2 of MULTILINE_DEFINE echo This is line 3 of MULTILINE_DEFINE This is line 3 of MULTILINE_DEFINE 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_377g echo This is line 1 of MULTILINE_DEFINE This is line 1 of MULTILINE_DEFINE echo This is line 2 of MULTILINE_DEFINE This is line 2 of MULTILINE_DEFINE echo This is line 3 of MULTILINE_DEFINE This is line 3 of MULTILINE_DEFINE D:\testmake>make_3792c --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. [...] [ This is the cygwin make v3.79-2, released 6/23/2000. ] 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