Mail Archives: cygwin/2000/06/26/22:29:55
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 -