threads / patch / 36538

patchMSVC: link dynamically to the CRT

Subject: [PATCH] MSVC: link dynamically to the CRT

## tl;dr

6 messages between Apr 29, 2014 and May 3, 2014. Diffs are folded; open one to read it.

replies: 5people: 4as markdown or json

Stepan Kasal· Apr 29, 2014, 10:25 UTC · lore
From: Karsten Blees <blees@dcon.de>
Date: Fri, 7 Jan 2011 17:20:21 +0100

Dynamic linking is generally preferred over static linking, and MSVCRT.dll has been integral part of Windows for a long time.

This also fixes linker warnings for _malloc and _free in zlib.lib, which seems to be compiled for MSVCRT.dll already.

The DLL version also exports some of the CRT initialization functions, which are hidden in the static libcmt.lib (e.g. __wgetmainargs, required by subsequent Unicode patches).

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Stepan Kasal <kasal@ucw.cz>
---
Another patch from msysgit.
Cheers,
  Stepan
 config.mak.uname | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Show changes to config.mak.uname +3 −3
diff --git a/config.mak.uname b/config.mak.uname
index efaed94..eebc847 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -365,16 +365,16 @@ ifeq ($(uname_S),Windows)
 		compat/win32/pthread.o compat/win32/syslog.o \
 		compat/win32/dirent.o
 	COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
-	BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
+	BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE
 	EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib
 	PTHREAD_LIBS =
 	lib =
 ifndef DEBUG
-	BASIC_CFLAGS += -GL -Os -MT
+	BASIC_CFLAGS += -GL -Os -MD
 	BASIC_LDFLAGS += -LTCG
 	AR += -LTCG
 else
-	BASIC_CFLAGS += -Zi -MTd
+	BASIC_CFLAGS += -Zi -MDd
 endif
 	X = .exe
 endif
-- 
1.9.2.msysgit.0.158.g6070cee
Junio C Hamano· Apr 30, 2014, 18:36 UTC · re: Stepan Kasal · lore

Re: [PATCH] MSVC: link dynamically to the CRT

Stepan Kasal <kasal@ucw.cz> writes:
Show 20 quoted lines
> From: Karsten Blees <blees@dcon.de>
> Date: Fri, 7 Jan 2011 17:20:21 +0100
>
> Dynamic linking is generally preferred over static linking, and MSVCRT.dll
> has been integral part of Windows for a long time.
>
> This also fixes linker warnings for _malloc and _free in zlib.lib, which
> seems to be compiled for MSVCRT.dll already.
>
> The DLL version also exports some of the CRT initialization functions,
> which are hidden in the static libcmt.lib (e.g. __wgetmainargs, required by
> subsequent Unicode patches).
>
> Signed-off-by: Karsten Blees <blees@dcon.de>
> Signed-off-by: Stepan Kasal <kasal@ucw.cz>
> ---
>
> Another patch from msysgit.
> Cheers,
>   Stepan
Thanks.

I am not intimate with the msysgit developer community, and I do not know if it is appropriate for me to respond with a

	Does this look OK with msysgit folks?

cc'ed to the usual suspects (Erik Faye-Lund, Dscho and J6t). Just like I do not have to ask "does this look ok?" question when seeing a patch from Erik or J6t, is it unnecessary for me to do so for a patch from you?

Show 27 quoted lines
>  config.mak.uname | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/config.mak.uname b/config.mak.uname
> index efaed94..eebc847 100644
> --- a/config.mak.uname
> +++ b/config.mak.uname
> @@ -365,16 +365,16 @@ ifeq ($(uname_S),Windows)
>  		compat/win32/pthread.o compat/win32/syslog.o \
>  		compat/win32/dirent.o
>  	COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
> -	BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
> +	BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE
>  	EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib
>  	PTHREAD_LIBS =
>  	lib =
>  ifndef DEBUG
> -	BASIC_CFLAGS += -GL -Os -MT
> +	BASIC_CFLAGS += -GL -Os -MD
>  	BASIC_LDFLAGS += -LTCG
>  	AR += -LTCG
>  else
> -	BASIC_CFLAGS += -Zi -MTd
> +	BASIC_CFLAGS += -Zi -MDd
>  endif
>  	X = .exe
>  endif
Sebastian Schuberth· Apr 30, 2014, 19:37 UTC · re: Junio C Hamano · lore

Re: [PATCH] MSVC: link dynamically to the CRT

On 30.04.2014 20:36, Junio C Hamano wrote:
> I am not intimate with the msysgit developer community, and I do not
> know if it is appropriate for me to respond with a
>
> 	Does this look OK with msysgit folks?

This patch has been carried in the msysgit tree since more than 3 years, although strictly speaking it does not affect the msysgit build but only the MSVC build. Stefan is just bringing Karsten's patch upstream with this patch.

So yes, this is fine.
> cc'ed to the usual suspects (Erik Faye-Lund, Dscho and J6t).  Just
> like I do not have to ask "does this look ok?" question when seeing
> a patch from Erik or J6t, is it unnecessary for me to do so for a
> patch from you?

I'm putting Marat in CC who has been recently active in building Git with MSVC.

-- 
Sebastian Schuberth
Junio C Hamano· Apr 30, 2014, 19:54 UTC · re: Sebastian Schuberth · lore

Re: [PATCH] MSVC: link dynamically to the CRT

Sebastian Schuberth <sschuberth@gmail.com> writes:
Show 21 quoted lines
> On 30.04.2014 20:36, Junio C Hamano wrote:
>
>> I am not intimate with the msysgit developer community, and I do not
>> know if it is appropriate for me to respond with a
>>
>> 	Does this look OK with msysgit folks?
>
> This patch has been carried in the msysgit tree since more than 3
> years, although strictly speaking it does not affect the msysgit build
> but only the MSVC build. Stefan is just bringing Karsten's patch
> upstream with this patch.
>
> So yes, this is fine.
>
>> cc'ed to the usual suspects (Erik Faye-Lund, Dscho and J6t).  Just
>> like I do not have to ask "does this look ok?" question when seeing
>> a patch from Erik or J6t, is it unnecessary for me to do so for a
>> patch from you?
>
> I'm putting Marat in CC who has been recently active in building Git
> with MSVC.
Thanks, very much appreciated.
Marat Radchenko· May 3, 2014, 06:30 UTC · re: Junio C Hamano · lore

Re: [PATCH] MSVC: link dynamically to the CRT

On Wed, Apr 30, 2014 at 12:54:15PM -0700, Junio C Hamano wrote:
Show 25 quoted lines
> Sebastian Schuberth <sschuberth@gmail.com> writes:
> 
> > On 30.04.2014 20:36, Junio C Hamano wrote:
> >
> >> I am not intimate with the msysgit developer community, and I do not
> >> know if it is appropriate for me to respond with a
> >>
> >> 	Does this look OK with msysgit folks?
> >
> > This patch has been carried in the msysgit tree since more than 3
> > years, although strictly speaking it does not affect the msysgit build
> > but only the MSVC build. Stefan is just bringing Karsten's patch
> > upstream with this patch.
> >
> > So yes, this is fine.
> >
> >> cc'ed to the usual suspects (Erik Faye-Lund, Dscho and J6t).  Just
> >> like I do not have to ask "does this look ok?" question when seeing
> >> a patch from Erik or J6t, is it unnecessary for me to do so for a
> >> patch from you?
> >
> > I'm putting Marat in CC who has been recently active in building Git
> > with MSVC.
> 
> Thanks, very much appreciated.
Ack from me, sorry for delay.
Stepan Kasal· Apr 30, 2014, 20:17 UTC · re: Junio C Hamano · lore

Re: [PATCH] MSVC: link dynamically to the CRT

Hello Junio,
On Wed, Apr 30, 2014 at 11:36:37AM -0700, Junio C Hamano wrote:
> like I do not have to ask "does this look ok?" question when seeing
> a patch from Erik or J6t, is it unnecessary for me to do so for a
> patch from you?

it _is_ necessary to ask, as I'm just a newcomer who has (fortunately) almost no experience with Windows.

But I will try to point out iif it "has been in msysgit for x years". That fact can be taken as an implicite ack from msysgit community.

Stepan

← back to recent threads