www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/06/26/22:29:55

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sourceware DOT cygnus DOT com>
List-Help: <mailto:cygwin-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs>
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 <scarter AT emware DOT com>
To: "'cygwin AT sourceware DOT cygnus DOT com'" <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)
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019