# [PATCH] MSVC: link dynamically to the CRT

6 messages from 2014-04-29 to 2014-05-03. Participants: Stepan Kasal, Junio C Hamano, Sebastian Schuberth, Marat Radchenko.
Thread: https://gitlist.dev/t/36538

## Stepan Kasal, 2014-04-29 10:25

Subject: [PATCH] MSVC: link dynamically to the CRT
Message-ID: <20140429102509.GA16706@camelia.ucw.cz>
URL: https://gitlist.dev/e/20140429102509.GA16706%40camelia.ucw.cz

```
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(-)

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, 2014-04-30 18:36

Subject: Re: [PATCH] MSVC: link dynamically to the CRT
Message-ID: <xmqqa9b2fyve.fsf@gitster.dls.corp.google.com>
URL: https://gitlist.dev/e/xmqqa9b2fyve.fsf%40gitster.dls.corp.google.com
In-Reply-To: <20140429102509.GA16706@camelia.ucw.cz>

```
Stepan Kasal <kasal@ucw.cz> writes:

> 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?

>  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, 2014-04-30 19:37

Subject: Re: [PATCH] MSVC: link dynamically to the CRT
Message-ID: <536150E8.20809@gmail.com>
URL: https://gitlist.dev/e/536150E8.20809%40gmail.com
In-Reply-To: <xmqqa9b2fyve.fsf@gitster.dls.corp.google.com>

```
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, 2014-04-30 19:54

Subject: Re: [PATCH] MSVC: link dynamically to the CRT
Message-ID: <xmqqha5aegpk.fsf@gitster.dls.corp.google.com>
URL: https://gitlist.dev/e/xmqqha5aegpk.fsf%40gitster.dls.corp.google.com
In-Reply-To: <536150E8.20809@gmail.com>

```
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.

```

## Stepan Kasal, 2014-04-30 20:17

Subject: Re: [PATCH] MSVC: link dynamically to the CRT
Message-ID: <20140430201733.GB21870@camelia.ucw.cz>
URL: https://gitlist.dev/e/20140430201733.GB21870%40camelia.ucw.cz
In-Reply-To: <xmqqa9b2fyve.fsf@gitster.dls.corp.google.com>

```
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

```

## Marat Radchenko, 2014-05-03 06:30

Subject: Re: [PATCH] MSVC: link dynamically to the CRT
Message-ID: <20140503063001.GA8433@seldon>
URL: https://gitlist.dev/e/20140503063001.GA8433%40seldon
In-Reply-To: <xmqqha5aegpk.fsf@gitster.dls.corp.google.com>

```
On Wed, Apr 30, 2014 at 12:54:15PM -0700, Junio C Hamano wrote:
> 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.

```
