threads / patch / 21159

patchFix MSVC build on cygwin

Subject: [PATCH] Fix MSVC build on cygwin

## tl;dr

5 messages between Oct 8, 2009 and Oct 9, 2009. Diffs are folded; open one to read it.

replies: 4people: 4as markdown or json

Ramsay Jones· Oct 8, 2009, 15:21 UTC · lore

In the MSVC section of the Makefile, BASIC_CFLAGS is set to a value which contains the string "-DWIN32-D_CONSOLE". This results in a (single) malformed -Define being passed to the compiler. At least on my cygwin installation, the msvc compiler seems to ignore this parameter, without issuing an error or warning, and results in the WIN32 and _CONSOLE macros being undefined. This breaks the build.

In order to fix the build, we simply insert a space between the two -Define parameters, "-DWIN32" and "-D_CONSOLE", as originally intended.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
---
Hi *,

The original version of this patch used line-continuation to wrap the over-long lines in the MSVC section. (the lines that set up BASIC_CFLAGS, COMPAT_CFLAGS and BASIC_LDFLAGS.) However, that somewhat obscured the important change in this patch (and some people don't find line-continuation easier to read anyway ;-).

ATB, Ramsay Jones

 Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to Makefile +1 −1
diff --git a/Makefile b/Makefile
index 12defd4..ae9bb03 100644
--- a/Makefile
+++ b/Makefile
@@ -914,7 +914,7 @@ ifdef MSVC
 	CC = compat/vcbuild/scripts/clink.pl
 	AR = compat/vcbuild/scripts/lib.pl
 	CFLAGS =
-	BASIC_CFLAGS = -nologo -I. -I../zlib -Icompat/vcbuild -Icompat/vcbuild/include -DWIN32-D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE
+	BASIC_CFLAGS = -nologo -I. -I../zlib -Icompat/vcbuild -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE
 	COMPAT_OBJS = compat/msvc.o compat/fnmatch/fnmatch.o compat/winansi.o
 	COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/fnmatch -Icompat/regex -Icompat/fnmatch -DSTRIP_EXTENSION=\".exe\"
 	BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
-- 
1.6.4
Sverre Rabbelier· Oct 8, 2009, 18:50 UTC · re: Johannes Schindelin · lore

Re: [PATCH] Fix MSVC build on cygwin

Heya,

On Thu, Oct 8, 2009 at 20:40, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:

> I thought we only used shell patterns for filenames, and regexes for
> everything else?
Maybe he's enacting a long silence after his Hi? "Hi                       "?
-- 
Cheers,

Sverre Rabbelier
Junio C Hamano· Oct 9, 2009, 06:48 UTC · re: Ramsay Jones · lore

Re: [PATCH] Fix MSVC build on cygwin

Ramsay Jones <ramsay@ramsay1.demon.co.uk> writes:
Show 13 quoted lines
> In the MSVC section of the Makefile, BASIC_CFLAGS is set to a
> value which contains the string "-DWIN32-D_CONSOLE". This results
> in a (single) malformed -Define being passed to the compiler.
> At least on my cygwin installation, the msvc compiler seems to
> ignore this parameter, without issuing an error or warning, and
> results in the WIN32 and _CONSOLE macros being undefined. This
> breaks the build.
>
> In order to fix the build, we simply insert a space between the
> two -Define parameters, "-DWIN32" and "-D_CONSOLE", as originally
> intended.
>
> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>

Thanks; that's quite a detailed description to explain why -DFOO-DBAR is bad when -DFOO -DBAR was wanted ;-)

Ramsay Jones· Oct 9, 2009, 21:53 UTC · re: Junio C Hamano · lore

Re: [PATCH] Fix MSVC build on cygwin

Junio C Hamano wrote:
> Thanks; that's quite a detailed description to explain why -DFOO-DBAR is
> bad when -DFOO -DBAR was wanted ;-)

Heh, yeah I usually have the opposite problem; often I can't spare any words past the one-line summary...

I suspect the unusual verbosity won't last... ;-)

ATB, Ramsay Jones

← back to recent threads