git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
@ 2014-04-19 13:35 Marat Radchenko
  2014-04-19 17:01 ` Thomas Braun
                   ` (3 more replies)
  0 siblings, 4 replies; 23+ messages in thread
From: Marat Radchenko @ 2014-04-19 13:35 UTC (permalink / raw)
  To: Heiko Voigt; +Cc: git, msysGit Mailinglist

> So the reason for this new package is that you need 64bit binaries?

That's the most important bit. Plus, weird ssh transfer speeds [1] caused by ansient openssh bundled in msysgit.

> I can see the need for a pure Windows solution (no msys tools at least for runtime).

Several Git scripts are written in perl, many in shell and a couple even in tcl/tk (oh, my). Until this is true, Git requires unix-like userland environment: all those sh, awk, coreutils, findutils and others.

> But this sounds to me that the only thing you changed is the compiler and 64bit?
That would be true *if* msysgit was really msys + mingw-built-git. 

But in practice, msysgit is:
 1) outdated msys that was patched in multiple ways without
  sending patches upstream
 2) heavily patched git, again not upstreamed

To be honest, msys isn't a great tool. After all, it's just outdated
and heavily patched cygwin. There exists msys2 project (much less outdated and much less patched cygwin).

So, msysgit is an (outdated patched)*2 cygwin + patched git.

> What is the reason of using a closed source compiler?

It happened to be already installed on my box. Switching to another one will require just minor tweaks to my build script. I don't have any strong reasons for using MSVC.

> Sorry if I am a little bit skeptic, but I am wondering whether it does make sense for you to join forces with msysgit instead of creating a fork?

1) It makes sense to purge msysgit and start over. See mingwGitDevEnv [2] (by msysgit developer).
2)  I only used msys due to my unawareness of msys2 at the time of  initial WinGit hacking. Due to massive Unicode-related msys troubles, ansient perl and svn, I plan to switch to msys2 soon.

> there are no 64 bit binaries shipped with msysgit is that nobody needed them

That's wrong. Google for 'windows x64 git' or 'msysgit x64'. People need it. There's even an issue [3] (stalled several years ago) in msysgit tracker.
After all, I needed it.

[1] https://github.com/msysgit/msysgit/issues/31
[2]: https://github.com/sschuberth/mingwGitDevEnv
[3]: http://code.google.com/p/msysgit/issues/detail?id=396

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-19 13:35 [ANNOUNCE] WinGit - native x86/x64 Git for Windows Marat Radchenko
@ 2014-04-19 17:01 ` Thomas Braun
  2014-04-19 17:37 ` Johannes Schindelin
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 23+ messages in thread
From: Thomas Braun @ 2014-04-19 17:01 UTC (permalink / raw)
  To: Marat Radchenko, Heiko Voigt; +Cc: git, msysGit Mailinglist

Am 19.04.2014 15:35, schrieb Marat Radchenko:

>> So the reason for this new package is that you need 64bit
>> binaries?
> 
> That's the most important bit. Plus, weird ssh transfer speeds [1]
> caused by ansient openssh bundled in msysgit.

Yes the msysgit openssh is ancient and slow. Openssh in mingGitDevEnv
has proper speeds, see [1].

> 1) outdated msys that was patched in multiple ways without sending patches upstream
> 2) heavily patched git, again not upstreamed

You do realize how much work it is to send something upstream?
And in the case of mingw patches have been sent upstream which are still
either being reviewed or are just in a (presumably *very* long) queue.

>> Sorry if I am a little bit skeptic, but I am wondering whether it
>> does make sense for you to join forces with msysgit instead of
>> creating a fork?
> 
> 1) It makes sense to purge msysgit and start over. See mingwGitDevEnv
> [2] (by msysgit developer).

I would be happy to see you contributing to the mingGitDevEnv project.

> 2)  I only used msys due to my
> unawareness of msys2 at the time of  initial WinGit hacking. Due to
> massive Unicode-related msys troubles, ansient perl and svn, I plan
> to switch to msys2 soon.
> 
>> there are no 64 bit binaries shipped with msysgit is that nobody
>> needed them
> 
> That's wrong. Google for 'windows x64 git' or 'msysgit x64'. People
> need it. There's even an issue [3] (stalled several years ago) in
> msysgit tracker. After all, I needed it.
> 
> [1] https://github.com/msysgit/msysgit/issues/31 [2]:
> https://github.com/sschuberth/mingwGitDevEnv [3]:
> http://code.google.com/p/msysgit/issues/detail?id=396

Actually I would need a 64bit git for windows too. The problem here is
that of course everyone likes to have it, but nobody so desperatley what
he/she will start to make the test suite pass.
And before the test suite passes I don't think it is a good idea to use
it in production.
So for my part I decided to first get mingwGitDevEnv going and then
start thinking about a 64bit version.

[1]:
https://github.com/sschuberth/mingwGitDevEnv/pull/5#issuecomment-15128748

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-19 13:35 [ANNOUNCE] WinGit - native x86/x64 Git for Windows Marat Radchenko
  2014-04-19 17:01 ` Thomas Braun
@ 2014-04-19 17:37 ` Johannes Schindelin
  2014-04-19 18:42 ` Heiko Voigt
  2014-04-19 20:56 ` Sebastian Schuberth
  3 siblings, 0 replies; 23+ messages in thread
From: Johannes Schindelin @ 2014-04-19 17:37 UTC (permalink / raw)
  To: Marat Radchenko; +Cc: Heiko Voigt, git, msysGit Mailinglist

Hi Marat,

On Sat, 19 Apr 2014, Marat Radchenko wrote:

> But in practice, msysgit is:
>  1) outdated msys that was patched in multiple ways without
>   sending patches upstream
>  2) heavily patched git, again not upstreamed

Again, this time explicitly: I wish you had done a little more research on
the matter, and I wish you had participated in the msysGit community
before going on to reinvent the wheel.

I have nothing per se against your effort, of course, you can spend your
time as you want, but please refrain from claiming things that are
provably incorrect.

Ciao,
Johannes

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-19 13:35 [ANNOUNCE] WinGit - native x86/x64 Git for Windows Marat Radchenko
  2014-04-19 17:01 ` Thomas Braun
  2014-04-19 17:37 ` Johannes Schindelin
@ 2014-04-19 18:42 ` Heiko Voigt
  2014-04-19 21:12   ` Sebastian Schuberth
  2014-04-20 22:10   ` [msysGit] " Johannes Schindelin
  2014-04-19 20:56 ` Sebastian Schuberth
  3 siblings, 2 replies; 23+ messages in thread
From: Heiko Voigt @ 2014-04-19 18:42 UTC (permalink / raw)
  To: Marat Radchenko; +Cc: git, msysGit Mailinglist, Sebastian Schuberth

On Sat, Apr 19, 2014 at 05:35:07PM +0400, Marat Radchenko wrote:
> > there are no 64 bit binaries shipped with msysgit is that nobody
> > needed them
> 
> That's wrong. Google for 'windows x64 git' or 'msysgit x64'. People
> need it. There's even an issue [3] (stalled several years ago) in
> msysgit tracker.  After all, I needed it.

Do not get me wrong. I was saying until now nobody "needed" it in a way
that he/she would do something about it. Of course there are many people
requesting it, but I just do not count those people anymore. You are
clearly doing something about it and thats great, I like it.

What I am trying to achieve here is that you join the msysgit community.
There already is just a very small amount of developers on the windows
side (compared to upstream). We should try to all work together. I think
it will greatly add to confusion if we have another installer of Git for
Windows. I think the msysgit community is quite open for changes like
the ones you are trying to achieve.

Regarding mingwGitDevEnv[2]: That is a project started by Sebastian who
also contributes to msysgit (and Git for Windows). It eventually can
(and probably should) be a successor of the current situation where we
always manually patch, build and commit our binaries into a git
repository. A proper package management system would greatly help here.
But AFAIK its not ready for production use yet. I guess Sebastian would
not mind contributions.

Cheers Heiko

> [1] https://github.com/msysgit/msysgit/issues/31
> [2]: https://github.com/sschuberth/mingwGitDevEnv
> [3]: http://code.google.com/p/msysgit/issues/detail?id=396

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-19 13:35 [ANNOUNCE] WinGit - native x86/x64 Git for Windows Marat Radchenko
                   ` (2 preceding siblings ...)
  2014-04-19 18:42 ` Heiko Voigt
@ 2014-04-19 20:56 ` Sebastian Schuberth
  3 siblings, 0 replies; 23+ messages in thread
From: Sebastian Schuberth @ 2014-04-19 20:56 UTC (permalink / raw)
  To: git; +Cc: msysgit

On 19.04.2014 15:35, Marat Radchenko wrote:

> But in practice, msysgit is:
>   1) outdated msys that was patched in multiple ways without
>    sending patches upstream

It's not true that we are not sending patches upstream to MSYS, see [1]. 
It's just that most of them don't get included due to a lack of time 
from the MSYS maintainers, see e.g. [2].

>   2) heavily patched git, again not upstreamed

"Heavily" is relative, in fact it's not that much that I would give up 
hope on getting everything upstream. We once had put large efforts in 
bringing our stuff to upstream Git, just to over and over again being 
pulled into fussy discussions, costing way more time than developing the 
patches themselves. So at some time most of us just decided to spend 
their time more efficiently by bringing Git for Windows forward.

> To be honest, msys isn't a great tool. After all, it's just outdated
> and heavily patched cygwin. There exists msys2 project (much less outdated and much less patched cygwin).

I agree that MSYS is not at all that great (anymore). It simply does not 
seem to be well maintained. But neither do I trust MSYS2 (yet), which 
looks to me like a spare time project by one or two guys, both newcomers 
not part of the original MSYS team. However, if MSYS2 turns out to be 
maintained better than MSYS in the future, I'm open to base 
mingwGitDevEnv on MSYS2.

> 1) It makes sense to purge msysgit and start over. See mingwGitDevEnv [2] (by msysgit developer).

You would have been very welcomed to contribute 64-bit support to 
mingwGitDevEnv (which I'm the maintainer of). I saddens me that we blow 
out our energy on forks (without even getting in touch first) instead of 
pulling together.

[1] http://sourceforge.net/p/mingw/bugs/search/?q=msysgit
[2] http://sourceforge.net/p/mingw/bugs/1823/

-- 
Sebastian Schuberth

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-19 18:42 ` Heiko Voigt
@ 2014-04-19 21:12   ` Sebastian Schuberth
  2014-04-20 22:10   ` [msysGit] " Johannes Schindelin
  1 sibling, 0 replies; 23+ messages in thread
From: Sebastian Schuberth @ 2014-04-19 21:12 UTC (permalink / raw)
  To: Heiko Voigt; +Cc: Marat Radchenko, Git Mailing List, msysGit Mailinglist

On Sat, Apr 19, 2014 at 8:42 PM, Heiko Voigt <hvoigt@hvoigt.net> wrote:

> But AFAIK its not ready for production use yet. I guess Sebastian would
> not mind contributions.

Not at all!

-- 
Sebastian Schuberth

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [msysGit] Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-19 18:42 ` Heiko Voigt
  2014-04-19 21:12   ` Sebastian Schuberth
@ 2014-04-20 22:10   ` Johannes Schindelin
  2014-04-20 22:12     ` Johannes Schindelin
  2014-04-21 18:37     ` Sebastian Schuberth
  1 sibling, 2 replies; 23+ messages in thread
From: Johannes Schindelin @ 2014-04-20 22:10 UTC (permalink / raw)
  To: Heiko Voigt
  Cc: Marat Radchenko, git, msysGit Mailinglist, Sebastian Schuberth

Hi Heiko,

On Sat, 19 Apr 2014, Heiko Voigt wrote:

> Regarding mingwGitDevEnv[2]: That is a project started by Sebastian who
> also contributes to msysgit (and Git for Windows).

In fact, Sebastian is not only a contributor. He is co-maintainer of Git
for Windows.

> It eventually can (and probably should) be a successor of the current
> situation [...]

Sebastian hinted at it in many a discussion on the msysgit mailing list
(where those people who are serious about Git for Windows development hang
out, hint, hint, hint) that mingwGitDevEnv was born out of the needs
identified while maintaining Git for Windows.

Our tentative plan is to switch with Git 2.0 (unless the timing turns out
to be unfortunate). We have to put some more effort into mingwGitDevEnv
first, though: due to the differences between the old MSys committed into
msysgit.git repository on the one hand, and the MSys environment
initialized and updated by mingwGitDevEnv on the other hand, some of the
tests do not pass yet. (I also would like to look into getting the
performance improvement Hannes Sixt achieved by his patch [*1*] into
mingwGitDevEnv's Git installation, too.)

Despite the common lack of time and of developers willing to spend time to
contribute to the Git for Windows effort, I think we are well on track,
and it will be pretty exciting when we switch to mingwGitDevEnv-based
development of Git for Windows!

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-20 22:10   ` [msysGit] " Johannes Schindelin
@ 2014-04-20 22:12     ` Johannes Schindelin
  2014-04-21 18:37     ` Sebastian Schuberth
  1 sibling, 0 replies; 23+ messages in thread
From: Johannes Schindelin @ 2014-04-20 22:12 UTC (permalink / raw)
  To: Heiko Voigt
  Cc: Marat Radchenko, git, msysGit Mailinglist, Sebastian Schuberth

On Mon, 21 Apr 2014, Johannes Schindelin wrote:

> (I also would like to look into getting the performance improvement
> Hannes Sixt achieved by his patch [*1*] into mingwGitDevEnv's Git
> installation, too.)

Whoops. Footnote *1*: https://github.com/msysgit/msysgit/commit/a0f5d4f

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-20 22:10   ` [msysGit] " Johannes Schindelin
  2014-04-20 22:12     ` Johannes Schindelin
@ 2014-04-21 18:37     ` Sebastian Schuberth
  2014-04-21 18:56       ` Johannes Schindelin
  1 sibling, 1 reply; 23+ messages in thread
From: Sebastian Schuberth @ 2014-04-21 18:37 UTC (permalink / raw)
  To: Johannes Schindelin, Heiko Voigt
  Cc: Marat Radchenko, git, msysGit Mailinglist

On 21.04.2014 00:10, Johannes Schindelin wrote:

> tests do not pass yet. (I also would like to look into getting the
> performance improvement Hannes Sixt achieved by his patch [*1*] into
> mingwGitDevEnv's Git installation, too.)
>
> Whoops. Footnote *1*: https://github.com/msysgit/msysgit/commit/a0f5d4f

Dscho, this patch of Hannes is already in, see [1]. Also see the other 
files in that directory for the other MSYS patches being applied. In 
fact, mingwGitDevEnv has all MSYS patches that msysgit has except [2], 
[3] and [4] (because they mess up Bash for me and break many tests).

[1] 
https://github.com/sschuberth/mingwGitDevEnv-packages/blob/master/msys-core/0008-Do-not-start-the-fstab-observer-thread.patch
[2] 
https://github.com/msysgit/msysgit/blob/msys/src/rt/patches/0014-msys.dll-support-Unicode-console-input.patch
[3] 
https://github.com/msysgit/msysgit/blob/msys/src/rt/patches/0015-msys.dll-support-ALT-NUMPAD-console-input.patch
[4] 
https://github.com/msysgit/msysgit/blob/msys/src/rt/patches/0016-msys.dll-backport-multibyte-support-functions-from-n.patch

-- 
Sebastian Schuberth

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-21 18:37     ` Sebastian Schuberth
@ 2014-04-21 18:56       ` Johannes Schindelin
  2014-04-21 18:56         ` Felipe Contreras
  0 siblings, 1 reply; 23+ messages in thread
From: Johannes Schindelin @ 2014-04-21 18:56 UTC (permalink / raw)
  To: Sebastian Schuberth
  Cc: Heiko Voigt, Marat Radchenko, git, msysGit Mailinglist

Hi Sebastian,

On Mon, 21 Apr 2014, Sebastian Schuberth wrote:

> On 21.04.2014 00:10, Johannes Schindelin wrote:
> 
> > tests do not pass yet. (I also would like to look into getting the
> > performance improvement Hannes Sixt achieved by his patch [*1*] into
> > mingwGitDevEnv's Git installation, too.)
> >
> > Whoops. Footnote *1*: https://github.com/msysgit/msysgit/commit/a0f5d4f
> 
> Dscho, this patch of Hannes is already in, see [1].

Ah, I missed that. That's very good news!

Marat, you see that the patches *are* sent upstream.

Now, clearly you have all the motivation that is needed to get 64-bit
builds of Git for Windows going, and all the motivation required to make
sure that the MSVC support of the msysGit project works.

How about joining forces?

Ciao,
Johannes

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-21 18:56       ` Johannes Schindelin
@ 2014-04-21 18:56         ` Felipe Contreras
  2014-04-21 22:14           ` [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git Marat Radchenko
  2014-04-22 13:14           ` Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows Johannes Schindelin
  0 siblings, 2 replies; 23+ messages in thread
From: Felipe Contreras @ 2014-04-21 18:56 UTC (permalink / raw)
  To: Johannes Schindelin, Sebastian Schuberth
  Cc: Heiko Voigt, Marat Radchenko, git, msysGit Mailinglist

Johannes Schindelin wrote:
> Now, clearly you have all the motivation that is needed to get 64-bit
> builds of Git for Windows going, and all the motivation required to make
> sure that the MSVC support of the msysGit project works.

s/msysGit/Git/

Personally I don't see why ideally I shouldn't be able to build upstream Git
for Windows with mingw without leaving my Linux system.

-- 
Felipe Contreras

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git
  2014-04-21 18:56         ` Felipe Contreras
@ 2014-04-21 22:14           ` Marat Radchenko
  2014-04-21 23:59             ` Felipe Contreras
  2014-04-22 13:36             ` Johannes Schindelin
  2014-04-22 13:14           ` Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows Johannes Schindelin
  1 sibling, 2 replies; 23+ messages in thread
From: Marat Radchenko @ 2014-04-21 22:14 UTC (permalink / raw)
  To: Felipe Contreras
  Cc: Marat Radchenko, Johannes Schindelin, Sebastian Schuberth,
	Heiko Voigt, git, msysGit Mailinglist

config.mak.uname: provide a way to explicitely request MinGW build.
This is required to perform Linux->MinGW crosscompilation.
---

> Personally I don't see why ideally I shouldn't be able to build upstream Git
> for Windows with mingw without leaving my Linux system.

One day you might be able, but as of today...

1. Obtain x86_64-w64-mingw32 compiler for your *nix distro
 * [Gentoo] emerge crossdev && crossdev -t x86_64-w64-mingw32
 * [Debian/Ubuntu] apt-get install mingw-w64
2. Apply patch from this email to Git sources (git/git or msysgit/git - doesn't matter)
3. `make CC=x86_64-w64-mingw32-gcc MINGW=1`
4. Observe errors [1]

I would be happy to find out I'm doing something wrong -- Johannes says building
mingw64 Git is dirt-easy.

[1]:
In file included from /usr/x86_64-w64-mingw32/usr/include/windows.h:9:0,
                 from /usr/x86_64-w64-mingw32/usr/include/winsock2.h:23,
                 from git-compat-util.h:93,
                 from cache.h:4,
                 from credential-store.c:1:
/usr/x86_64-w64-mingw32/usr/include/_mingw.h:456:2: error: #error You cannot use 32-bit time_t (_USE_32BIT_TIME_T) with _WIN64
 #error You cannot use 32-bit time_t (_USE_32BIT_TIME_T) with _WIN64
  ^
In file included from git-compat-util.h:134:0,
                 from cache.h:4,
                 from credential-store.c:1:
compat/mingw.h:8:13: error: conflicting types for 'pid_t'
 typedef int pid_t;
             ^
In file included from /usr/x86_64-w64-mingw32/usr/include/process.h:12:0,
                 from /usr/x86_64-w64-mingw32/usr/include/unistd.h:11,
                 from git-compat-util.h:98,
                 from cache.h:4,
                 from credential-store.c:1:
/usr/x86_64-w64-mingw32/usr/include/sys/types.h:68:16: note: previous declaration of 'pid_t' was here
 typedef _pid_t pid_t;
                ^

 config.mak.uname | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/config.mak.uname b/config.mak.uname
index 82b8dff..4f4d84f 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -13,6 +13,11 @@ ifdef MSVC
 	uname_O := Windows
 endif
 
+ifdef MINGW
+	uname_S := MINGW
+	uname_O := MINGW
+endif
+
 # We choose to avoid "if .. else if .. else .. endif endif"
 # because maintaining the nesting to match is a pain.  If
 # we had "elif" things would have been much nicer...
-- 
1.8.3.2

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* RE: [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git
  2014-04-21 22:14           ` [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git Marat Radchenko
@ 2014-04-21 23:59             ` Felipe Contreras
  2014-04-22  0:06               ` Felipe Contreras
  2014-04-22 13:36             ` Johannes Schindelin
  1 sibling, 1 reply; 23+ messages in thread
From: Felipe Contreras @ 2014-04-21 23:59 UTC (permalink / raw)
  To: Marat Radchenko, Felipe Contreras
  Cc: Marat Radchenko, Johannes Schindelin, Sebastian Schuberth,
	Heiko Voigt, git, msysGit Mailinglist

Marat Radchenko wrote:
> config.mak.uname: provide a way to explicitely request MinGW build.
> This is required to perform Linux->MinGW crosscompilation.
> ---
> 
> > Personally I don't see why ideally I shouldn't be able to build upstream Git
> > for Windows with mingw without leaving my Linux system.
> 
> One day you might be able, but as of today...
> 
> 1. Obtain x86_64-w64-mingw32 compiler for your *nix distro
>  * [Gentoo] emerge crossdev && crossdev -t x86_64-w64-mingw32
>  * [Debian/Ubuntu] apt-get install mingw-w64

Note that I didn't say 64-bit. Baby steps, first the tried-and-true 32-bit compiler.

> 2. Apply patch from this email to Git sources (git/git or msysgit/git - doesn't matter)

Funny I came with almost exactly the same patch.

> 3. `make CC=x86_64-w64-mingw32-gcc MINGW=1`

I did:

% make CC=i486-mingw32-gcc NO_OPENSSL=1 NO_GETTEXT=1

But ideally it should be:

% make CROSS_COMPILE=i486-mingw32-

(or whatever the name of the suite)

> 4. Observe errors [1]

I see those errors with a 64-bit compiler, but not with the old 32-bit one.

> I would be happy to find out I'm doing something wrong -- Johannes says building
> mingw64 Git is dirt-easy.

I get the same error. I've been cross-compiling since basically all my
professional life, so I don't think you are doing something wrong, it just
doesn't work.

-- 
Felipe Contreras

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* RE: [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git
  2014-04-21 23:59             ` Felipe Contreras
@ 2014-04-22  0:06               ` Felipe Contreras
  2014-04-22 13:36                 ` Marat Radchenko
  0 siblings, 1 reply; 23+ messages in thread
From: Felipe Contreras @ 2014-04-22  0:06 UTC (permalink / raw)
  To: Felipe Contreras, Marat Radchenko, Felipe Contreras
  Cc: Marat Radchenko, Johannes Schindelin, Sebastian Schuberth,
	Heiko Voigt, git, msysGit Mailinglist

Felipe Contreras wrote:
> Marat Radchenko wrote:
> > 4. Observe errors [1]
> 
> I see those errors with a 64-bit compiler, but not with the old 32-bit one.
> 
> > I would be happy to find out I'm doing something wrong -- Johannes says building
> > mingw64 Git is dirt-easy.
> 
> I get the same error. I've been cross-compiling since basically all my
> professional life, so I don't think you are doing something wrong, it just
> doesn't work.

I managed to fix all the errors, some apply to newer mingw, regardless of 32 or
64, others are specific to 64-bit. It's all hacky and I haven't checked if it
runs, but at least it compiles (mostly).

diff --git a/compat/bswap.h b/compat/bswap.h
index 5061214..285d89c 100644
--- a/compat/bswap.h
+++ b/compat/bswap.h
@@ -5,6 +5,8 @@
  * operation.
  */
 
+#include <stdint.h>
+
 /*
  * Default version that the compiler ought to optimize properly with
  * constant values.
diff --git a/compat/mingw.h b/compat/mingw.h
index e033e72..9274b64 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -5,7 +5,6 @@
  * things that are not available in header files
  */
 
-typedef int pid_t;
 typedef int uid_t;
 typedef int socklen_t;
 #define hstrerror strerror
@@ -90,8 +89,6 @@ static inline int symlink(const char *oldpath, const char *newpath)
 { errno = ENOSYS; return -1; }
 static inline int fchmod(int fildes, mode_t mode)
 { errno = ENOSYS; return -1; }
-static inline pid_t fork(void)
-{ errno = ENOSYS; return -1; }
 static inline unsigned int alarm(unsigned int seconds)
 { return 0; }
 static inline int fsync(int fd)
@@ -261,12 +258,6 @@ static inline int getrlimit(int resource, struct rlimit *rlp)
 	return 0;
 }
 
-/*
- * Use mingw specific stat()/lstat()/fstat() implementations on Windows.
- */
-#define off_t off64_t
-#define lseek _lseeki64
-
 /* use struct stat with 64 bit st_size */
 #ifdef stat
 #undef stat
diff --git a/compat/nedmalloc/malloc.c.h b/compat/nedmalloc/malloc.c.h
index f216a2a..3e4affd 100644
--- a/compat/nedmalloc/malloc.c.h
+++ b/compat/nedmalloc/malloc.c.h
@@ -720,6 +720,7 @@ struct mallinfo {
   inlining are defined as macros, so these aren't used for them.
 */
 
+#undef FORCEINLINE
 #ifndef FORCEINLINE
   #if defined(__GNUC__)
 #define FORCEINLINE __inline __attribute__ ((always_inline))
@@ -1352,58 +1353,6 @@ LONG __cdecl _InterlockedExchange(LONG volatile *Target, LONG Value);
 #ifndef __MINGW32__
 #pragma intrinsic (_InterlockedCompareExchange)
 #pragma intrinsic (_InterlockedExchange)
-#else
-  /* --[ start GCC compatibility ]----------------------------------------------
-   * Compatibility <intrin_x86.h> header for GCC -- GCC equivalents of intrinsic
-   * Microsoft Visual C++ functions. Originally developed for the ReactOS
-   * (<http://www.reactos.org/>) and TinyKrnl (<http://www.tinykrnl.org/>)
-   * projects.
-   *
-   * Copyright (c) 2006 KJK::Hyperion <hackbunny@reactos.com>
-   *
-   * Permission is hereby granted, free of charge, to any person obtaining a
-   * copy of this software and associated documentation files (the "Software"),
-   * to deal in the Software without restriction, including without limitation
-   * the rights to use, copy, modify, merge, publish, distribute, sublicense,
-   * and/or sell copies of the Software, and to permit persons to whom the
-   * Software is furnished to do so, subject to the following conditions:
-   *
-   * The above copyright notice and this permission notice shall be included in
-   * all copies or substantial portions of the Software.
-   *
-   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-   * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-   * DEALINGS IN THE SOFTWARE.
-   */
-
-  /*** Atomic operations ***/
-  #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40100
-    #define _ReadWriteBarrier() __sync_synchronize()
-  #else
-    static __inline__ __attribute__((always_inline)) long __sync_lock_test_and_set(volatile long * const Target, const long Value)
-    {
-      long res;
-      __asm__ __volatile__("xchg%z0 %2, %0" : "=g" (*(Target)), "=r" (res) : "1" (Value));
-      return res;
-    }
-    static void __inline__ __attribute__((always_inline)) _MemoryBarrier(void)
-    {
-      __asm__ __volatile__("" : : : "memory");
-    }
-    #define _ReadWriteBarrier() _MemoryBarrier()
-  #endif
-  /* BUGBUG: GCC only supports full barriers */
-  static __inline__ __attribute__((always_inline)) long _InterlockedExchange(volatile long * const Target, const long Value)
-  {
-    /* NOTE: __sync_lock_test_and_set would be an acquire barrier, so we force a full barrier */
-    _ReadWriteBarrier();
-    return __sync_lock_test_and_set(Target, Value);
-  }
-  /* --[ end GCC compatibility ]---------------------------------------------- */
 #endif
 #define interlockedcompareexchange _InterlockedCompareExchange
 #define interlockedexchange _InterlockedExchange
diff --git a/config.mak.uname b/config.mak.uname
index efaed94..01acd54 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -13,6 +13,11 @@ ifdef MSVC
 	uname_O := Windows
 endif
 
+ifdef MINGW
+	uname_S := MINGW
+	uname_O := MINGW
+endif
+
 # We choose to avoid "if .. else if .. else .. endif endif"
 # because maintaining the nesting to match is a pain.  If
 # we had "elif" things would have been much nicer...
@@ -508,7 +513,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))
 	NO_INET_NTOP = YesPlease
 	NO_POSIX_GOODIES = UnfortunatelyYes
 	DEFAULT_HELP_FORMAT = html
-	COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32
+	COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -Icompat -Icompat/win32
 	COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
 	COMPAT_OBJS += compat/mingw.o compat/winansi.o \
 		compat/win32/pthread.o compat/win32/syslog.o \

-- 
Felipe Contreras

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-21 18:56         ` Felipe Contreras
  2014-04-21 22:14           ` [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git Marat Radchenko
@ 2014-04-22 13:14           ` Johannes Schindelin
  2014-04-22 14:17             ` David Kastrup
  2014-04-22 16:00             ` Re: " Felipe Contreras
  1 sibling, 2 replies; 23+ messages in thread
From: Johannes Schindelin @ 2014-04-22 13:14 UTC (permalink / raw)
  To: Felipe Contreras
  Cc: Sebastian Schuberth, Heiko Voigt, Marat Radchenko, git,
	msysGit Mailinglist

Hi,

On Mon, 21 Apr 2014, Felipe Contreras wrote:

> Johannes Schindelin wrote:
> > Now, clearly you have all the motivation that is needed to get 64-bit
> > builds of Git for Windows going, and all the motivation required to make
> > sure that the MSVC support of the msysGit project works.
> 
> s/msysGit/Git/

No. I meant the msysGit project; the project that maintains the current
development environment for Git for Windows. Please do not try to
reinterpret what I am saying.

> Personally I don't see why ideally I shouldn't be able to build upstream
> Git for Windows with mingw without leaving my Linux system.

Maybe because you could not even test it properly, let alone run the test
suite? And maybe because according to the famous "scratch your own itch"
credo, it is actually the duty of Windows users -- i.e. users who do not
even have your Linux system -- to fix the bugs that would never be
encountered anywhere but Windows?

Hth,
Johannes

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git
  2014-04-21 22:14           ` [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git Marat Radchenko
  2014-04-21 23:59             ` Felipe Contreras
@ 2014-04-22 13:36             ` Johannes Schindelin
  1 sibling, 0 replies; 23+ messages in thread
From: Johannes Schindelin @ 2014-04-22 13:36 UTC (permalink / raw)
  To: Marat Radchenko
  Cc: Felipe Contreras, Sebastian Schuberth, Heiko Voigt, git,
	msysGit Mailinglist

Hi Marat,

On Tue, 22 Apr 2014, Marat Radchenko wrote:

> Johannes says building mingw64 Git is dirt-easy.

Marat, please let's stop misquoting me, okay?

What I said was more along the lines that there had been some start of a
work on getting things to compile for 64-bit Windows, but that the test
suite did not pass.

Even cutting out the part about the test suite from quoting me leaves out
the main point of what I said.

And for the record: I just had a look; the beginnings of W64 support are
in https://github.com/msysgit/git/compare/7f37564...work/w64.

And again for the record: at least from my side, there is more than just
willingness to cooperate. We'd just need to start a conversation in the
second person (as opposed to the third person).

Ciao,
Johannes

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git
  2014-04-22  0:06               ` Felipe Contreras
@ 2014-04-22 13:36                 ` Marat Radchenko
  2014-04-22 16:08                   ` Felipe Contreras
  0 siblings, 1 reply; 23+ messages in thread
From: Marat Radchenko @ 2014-04-22 13:36 UTC (permalink / raw)
  To: Felipe Contreras
  Cc: Johannes Schindelin, Sebastian Schuberth, Heiko Voigt, git,
	msysGit Mailinglist

On Mon, Apr 21, 2014 at 07:06:24PM -0500, Felipe Contreras wrote:
> I managed to fix all the errors, some apply to newer mingw, regardless of 32 or
> 64, others are specific to 64-bit. It's all hacky and I haven't checked if it
> runs, but at least it compiles (mostly).

Do you plan to evolve it into something mergeable?

> diff --git a/compat/nedmalloc/malloc.c.h b/compat/nedmalloc/malloc.c.h
> index f216a2a..3e4affd 100644
> --- a/compat/nedmalloc/malloc.c.h
> +++ b/compat/nedmalloc/malloc.c.h
> @@ -720,6 +720,7 @@ struct mallinfo {
>    inlining are defined as macros, so these aren't used for them.
>  */
>  
> +#undef FORCEINLINE
>  #ifndef FORCEINLINE
>    #if defined(__GNUC__)
>  #define FORCEINLINE __inline __attribute__ ((always_inline))
> @@ -1352,58 +1353,6 @@ LONG __cdecl _InterlockedExchange(LONG volatile *Target, LONG Value);
>  #ifndef __MINGW32__
>  #pragma intrinsic (_InterlockedCompareExchange)
>  #pragma intrinsic (_InterlockedExchange)
> -#else
> -  /* --[ start GCC compatibility ]----------------------------------------------
> -   * Compatibility <intrin_x86.h> header for GCC -- GCC equivalents of intrinsic
> -   * Microsoft Visual C++ functions. Originally developed for the ReactOS
> -   * (<http://www.reactos.org/>) and TinyKrnl (<http://www.tinykrnl.org/>)
> -   * projects.
> -   *
> -   * Copyright (c) 2006 KJK::Hyperion <hackbunny@reactos.com>
> -   *
> -   * Permission is hereby granted, free of charge, to any person obtaining a
> -   * copy of this software and associated documentation files (the "Software"),
> -   * to deal in the Software without restriction, including without limitation
> -   * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> -   * and/or sell copies of the Software, and to permit persons to whom the
> -   * Software is furnished to do so, subject to the following conditions:
> -   *
> -   * The above copyright notice and this permission notice shall be included in
> -   * all copies or substantial portions of the Software.
> -   *
> -   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> -   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> -   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> -   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> -   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> -   * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> -   * DEALINGS IN THE SOFTWARE.
> -   */
> -
> -  /*** Atomic operations ***/
> -  #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40100
> -    #define _ReadWriteBarrier() __sync_synchronize()
> -  #else
> -    static __inline__ __attribute__((always_inline)) long __sync_lock_test_and_set(volatile long * const Target, const long Value)
> -    {
> -      long res;
> -      __asm__ __volatile__("xchg%z0 %2, %0" : "=g" (*(Target)), "=r" (res) : "1" (Value));
> -      return res;
> -    }
> -    static void __inline__ __attribute__((always_inline)) _MemoryBarrier(void)
> -    {
> -      __asm__ __volatile__("" : : : "memory");
> -    }
> -    #define _ReadWriteBarrier() _MemoryBarrier()
> -  #endif
> -  /* BUGBUG: GCC only supports full barriers */
> -  static __inline__ __attribute__((always_inline)) long _InterlockedExchange(volatile long * const Target, const long Value)
> -  {
> -    /* NOTE: __sync_lock_test_and_set would be an acquire barrier, so we force a full barrier */
> -    _ReadWriteBarrier();
> -    return __sync_lock_test_and_set(Target, Value);
> -  }
> -  /* --[ end GCC compatibility ]---------------------------------------------- */
>  #endif
>  #define interlockedcompareexchange _InterlockedCompareExchange
>  #define interlockedexchange _InterlockedExchange

Git doesn't link without this for me, fails to find _InterlockedExchange.

> diff --git a/config.mak.uname b/config.mak.uname
> index efaed94..01acd54 100644
> --- a/config.mak.uname
> +++ b/config.mak.uname
> -	COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32
> +	COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -Icompat -Icompat/win32

builtin/fast-export.c still failed for me with:

builtin/fast-export.c: At top level:
builtin/fast-export.c:28:15: error: expected identifier before numeric constant
 static enum { ERROR, DROP, REWRITE } tag_of_filtered_mode = ERROR;
               ^

ERROR is defined in <mingw>/usr/include/wingdi.h and you dropped -DNOGDI what lead to wingdi.h inclusion,
perhaps you shouldn't.

For the reference: mingw64-runtime-3.1.0, x86_64-w64-mingw32-gcc 4.8.2

P.S. besides CC/LD, I also had to define AR and fix `windres` executable name in `config.mak.uname`.

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-22 13:14           ` Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows Johannes Schindelin
@ 2014-04-22 14:17             ` David Kastrup
  2014-04-22 16:00             ` Re: " Felipe Contreras
  1 sibling, 0 replies; 23+ messages in thread
From: David Kastrup @ 2014-04-22 14:17 UTC (permalink / raw)
  To: Johannes Schindelin
  Cc: Felipe Contreras, Sebastian Schuberth, Heiko Voigt,
	Marat Radchenko, git, msysGit Mailinglist

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> On Mon, 21 Apr 2014, Felipe Contreras wrote:
>
>> Johannes Schindelin wrote:
>> > Now, clearly you have all the motivation that is needed to get 64-bit
>> > builds of Git for Windows going, and all the motivation required to make
>> > sure that the MSVC support of the msysGit project works.
>> 
>> s/msysGit/Git/
>
> No. I meant the msysGit project; the project that maintains the current
> development environment for Git for Windows. Please do not try to
> reinterpret what I am saying.
>
>> Personally I don't see why ideally I shouldn't be able to build upstream
>> Git for Windows with mingw without leaving my Linux system.
>
> Maybe because you could not even test it properly, let alone run the test
> suite? And maybe because according to the famous "scratch your own itch"
> credo, it is actually the duty of Windows users -- i.e. users who do not
> even have your Linux system -- to fix the bugs that would never be
> encountered anywhere but Windows?

<URL:http://www.lilypond.org/gub>

The LilyPond project uses this to do automated builds for Windows,
MacOSX, FreeBSD, GNU/Linux on several CPUs.  The installation includes a
Python interpreter, GUILE, bash, and some other run-time necessary stuff
for executing scripts of various kinds.

LilyPond contains quite a few dependencies: efforts to do this natively
under the "everything that should be necessary is available somewhere"
assumptions led to bugs and time lags not dissimilar to what plagues
msysGit.

"duty of Windows users" sounds like a theory expounded by non-Windows
users.  Maintaining ports requires highly skilled programmers, and
highly skilled programmers tend to scratch a _lot_ of itches by not
using Windows in the first place.

It's been a long time since I had a grasp of the Windows/Git situation,
but my impression was that much of the msysGit stuff was done by you
yourself to scratch your personal itch of stopping people to say "Git is
not useful for large projects since it does not run under Windows" while
not actually being a Windows user yourself.

So if my memory does not do me a disfavor, you have kicked the "duty of
Windows users" theory in the curb yourself.

The developer demographic of LilyPond is similar: we actually have a
predominance of Windows users on the user mailing list.  But power users
and compile farm providers (all the cross-compiling is taking a serious
toll, even though most is in compiling the embedded example images in
the various manuals and their translations) use GNU/Linux, and where
their native system is Windows, in the form of a Ubuntu VM ("LilyDev")
put together for that purpose.

As a consequence, the bug tracker contains comparatively few and often
minor operating system specific bug reports (cf
<URL:http://code.google.com/p/lilypond/issues/list?can=1&q=OpSys%3DWindows>).
Many of them are catered for by programmers not even having a system
available for testing.  Stuff that is really only reproducible on
Windows tends to take longer to fix.  That involves things like
Font handling, PDF handling, filename issues, memory allocation handling
and others, often in the form of performance regressions that also
happen on GNU/Linux but are much less noticeable because the respective
facilities are much more efficient and thus mask unnecessarily repeated
operations much better.

While the user demographic of Git is likely leaning less towards Windows
than that of LilyPond, I expect some similar tendencies.  As a result of
the GUB crosscompiling environment, LilyPond offers a high quality
up-to-date Windows distribution with a somewhat typical installer
(though with acceptability problems that would not be dissimilar for
Git, cf
<URL:http://download.cnet.com/LilyPond/9241-2141_4-10995890.html?messageID=10589553&tag=uo;uo>).

In a way, using such a cross-building environment is a copout regarding
the defensible "duty of end users" line of thought.  But it's not like
the msysGit history supports that theory all that convincingly anyway.

-- 
David Kastrup

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-22 13:14           ` Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows Johannes Schindelin
  2014-04-22 14:17             ` David Kastrup
@ 2014-04-22 16:00             ` Felipe Contreras
  2014-04-22 16:14               ` Johannes Schindelin
  1 sibling, 1 reply; 23+ messages in thread
From: Felipe Contreras @ 2014-04-22 16:00 UTC (permalink / raw)
  To: Johannes Schindelin, Felipe Contreras
  Cc: Sebastian Schuberth, Heiko Voigt, Marat Radchenko, git,
	msysGit Mailinglist

Johannes Schindelin wrote:
> On Mon, 21 Apr 2014, Felipe Contreras wrote:
> > Johannes Schindelin wrote:
> > > Now, clearly you have all the motivation that is needed to get 64-bit
> > > builds of Git for Windows going, and all the motivation required to make
> > > sure that the MSVC support of the msysGit project works.
> > 
> > s/msysGit/Git/
> 
> No. I meant the msysGit project; the project that maintains the current
> development environment for Git for Windows. Please do not try to
> reinterpret what I am saying.

I don't care what you are saying, what I'm saying is that he has the motivation
to do it for the Git project. Why on Earth would he do it for the msysGit
project, when he can do it for the Git project (which would then percolate to
the msysGit project as well)?

> > Personally I don't see why ideally I shouldn't be able to build upstream
> > Git for Windows with mingw without leaving my Linux system.
> 
> Maybe because you could not even test it properly, let alone run the test
> suite?

Ideally you could.

> And maybe because according to the famous "scratch your own itch"
> credo, it is actually the duty of Windows users -- i.e. users who do not
> even have your Linux system -- to fix the bugs that would never be
> encountered anywhere but Windows?

That is your conclusion. If somebody reasonable sends reasonable patches that
make WinGit work in a way that doesn't impact negatively non-Windows users, I
don't see why they wouldn't be picked.

-- 
Felipe Contreras

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git
  2014-04-22 13:36                 ` Marat Radchenko
@ 2014-04-22 16:08                   ` Felipe Contreras
  0 siblings, 0 replies; 23+ messages in thread
From: Felipe Contreras @ 2014-04-22 16:08 UTC (permalink / raw)
  To: Marat Radchenko, Felipe Contreras
  Cc: Johannes Schindelin, Sebastian Schuberth, Heiko Voigt, git,
	msysGit Mailinglist

Marat Radchenko wrote:
> On Mon, Apr 21, 2014 at 07:06:24PM -0500, Felipe Contreras wrote:
> > I managed to fix all the errors, some apply to newer mingw, regardless of 32 or
> > 64, others are specific to 64-bit. It's all hacky and I haven't checked if it
> > runs, but at least it compiles (mostly).
> 
> Do you plan to evolve it into something mergeable?

I might, but that would requiere a lot of effort to investigate the changes in
mingw, and I'm not sure if there's enough interest on this.

After fixing all the issues so that we can cross-compile, I would like to see a
real effort to move away from shell and perl scripts, so that we not only could
run the important commands, but properly test Git without bash, otherwise I
feel Windows will always be a second class citizen.

> P.S. besides CC/LD, I also had to define AR and fix `windres` executable name in `config.mak.uname`.

That's why we should have a CROSS_COMPILE variable which is standard in other projects.

This is what the Linux kernel has:

  AS		= $(CROSS_COMPILE)as
  LD		= $(CROSS_COMPILE)ld
  CC		= $(CROSS_COMPILE)gcc
  AR		= $(CROSS_COMPILE)ar
  NM		= $(CROSS_COMPILE)nm
  STRIP		= $(CROSS_COMPILE)strip
  OBJCOPY	= $(CROSS_COMPILE)objcopy
  OBJDUMP	= $(CROSS_COMPILE)objdump

I had patches for this, but I gave them up =/

-- 
Felipe Contreras

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-22 16:00             ` Re: " Felipe Contreras
@ 2014-04-22 16:14               ` Johannes Schindelin
  0 siblings, 0 replies; 23+ messages in thread
From: Johannes Schindelin @ 2014-04-22 16:14 UTC (permalink / raw)
  To: Felipe Contreras
  Cc: Sebastian Schuberth, Heiko Voigt, Marat Radchenko, git,
	msysGit Mailinglist

Hi Felipe,

On Tue, 22 Apr 2014, Felipe Contreras wrote:

> Johannes Schindelin wrote:
> > On Mon, 21 Apr 2014, Felipe Contreras wrote:
> > > Johannes Schindelin wrote:
> > > > Now, clearly you have all the motivation that is needed to get 64-bit
> > > > builds of Git for Windows going, and all the motivation required to make
> > > > sure that the MSVC support of the msysGit project works.
> > > 
> > > s/msysGit/Git/
> > 
> > No. I meant the msysGit project; the project that maintains the current
> > development environment for Git for Windows. Please do not try to
> > reinterpret what I am saying.
> 
> I don't care what you are saying,

That is quite obvious and did not need clarifying.

Nevertheless, by stating that "substitute" command, you corrected me.
Except that you did not, I intended to say something different, and your
correction was quite misplaced.

Ciao,
Johannes

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-19 15:24   ` Johannes Schindelin
@ 2014-04-19 16:58     ` Marat Radchenko
  0 siblings, 0 replies; 23+ messages in thread
From: Marat Radchenko @ 2014-04-19 16:58 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Heiko Voigt, git, msysGit Mailinglist

On Sat, Apr 19, 2014 at 05:24:33PM +0200, Johannes Schindelin wrote:
> Marat, please do not add to the confusion. "msysGit" is the name of the
> *development environment* for developing Git for Windows.

This confusion comes from the fact that major part of msysGit is packaged
with Git for Windows to be used at runtime.

If you insist on msysGit-is-a-development-environment, you have to admit
that msysGit is technically a fork of msys.

My approach undoes this fork step and uses upstream runtime environment
as-is, be it msys, msys2, Cygwin or even SUA [1]. I could even make it a
noop and say "dear user, I don't care how, but please put sh/awk/find/etc
on PATH to make Git work, like things normally happen in *nix world".

Actually, even if Git was pure C, things like `git filter-branch` would
be almost useless without coreutils & friends.

> After all, there is no reason for yet another fork.

If there wasn't, mingwGitDevEnv would not be started.

I'd say I am doing a 'rebase' instead of 'fork' by using codebase of
Git for Windows (upstream Git sources with Windows-specific patches)
but replacing msysGit-provided runtime environment with another one.

[1]: http://en.wikipedia.org/wiki/Windows_Services_for_UNIX

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows
  2014-04-19  6:31 ` Heiko Voigt
@ 2014-04-19 15:24   ` Johannes Schindelin
  2014-04-19 16:58     ` Marat Radchenko
  0 siblings, 1 reply; 23+ messages in thread
From: Johannes Schindelin @ 2014-04-19 15:24 UTC (permalink / raw)
  To: Heiko Voigt; +Cc: marat, git, msysGit Mailinglist

Hi,

On Sat, 19 Apr 2014, Heiko Voigt wrote:

> On Thu, Apr 03, 2014 at 05:18:50PM +0400, marat@slonopotamus.org wrote:
> > I'm proud to announce WinGit:
> > an attempt to bring Git powers to 64-bit Windows.
> 
> So the reason for this new package is that you need 64bit binaries?
> 
> > Relationship with msysgit
> > =========================
> > 
> > Unlike msysgit, WinGit is a pure-Windows binary build with MSVC.

Marat, please do not add to the confusion. "msysGit" is the name of the
*development environment* for developing Git for Windows. It also brings
facilities to use MSVC instead of GCC.

So do not compare WinGit to msysgit (that would be like comparing Git to
GCC). Compare WinGit to Git for Windows (and clarify that you mean a
different WinGit than the old name of Git for Windows).

> > Like msysgit, WinGit also uses msys environment (sh/perl/etc) both
> > during build-time and runtime.

So it is not purely 64-bit, because MSys is not.

> I can see the need for a pure Windows solution (no msys tools at least for
> runtime). But this sounds to me that the only thing you changed is the
> compiler and 64bit? The git binaries in msysgit are already pure Windows
> binaries with no need of msys.dll. The only reason why so many other
> tools are shipped with msysgit is to run scripted commands (e.g. like
> gitk or rebase).
> 
> What is the reason of using a closed source compiler? Why not use the
> 64bit mingw that is already used to build the 64bit explorer extension
> to package 64bit binaries along with the 32bit ones in the installer?
> 
> Sorry if I am a little bit skeptic, but I am wondering whether it does
> make sense for you to join forces with msysgit instead of creating a
> fork? I think the main reason why there are no 64 bit binaries shipped
> with msysgit is that nobody needed them and the need to ship both (at
> least for some time).

We do have a facility to build 64-bit binaries with msysGit. It is even
dirt-easy: just run the two release scripts in /src/mingw-w64/, and then
build Git with "make W64=1".

The real reason why Git for Windows does not ship 64-bit binaries is that
they did not pass the test suite last time I tried.

And for the record: I would have welcome contributions to the Git for
Windows project. I still will. After all, there is no reason for yet
another fork.

Ciao,
Johannes

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2014-04-22 16:19 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-19 13:35 [ANNOUNCE] WinGit - native x86/x64 Git for Windows Marat Radchenko
2014-04-19 17:01 ` Thomas Braun
2014-04-19 17:37 ` Johannes Schindelin
2014-04-19 18:42 ` Heiko Voigt
2014-04-19 21:12   ` Sebastian Schuberth
2014-04-20 22:10   ` [msysGit] " Johannes Schindelin
2014-04-20 22:12     ` Johannes Schindelin
2014-04-21 18:37     ` Sebastian Schuberth
2014-04-21 18:56       ` Johannes Schindelin
2014-04-21 18:56         ` Felipe Contreras
2014-04-21 22:14           ` [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git Marat Radchenko
2014-04-21 23:59             ` Felipe Contreras
2014-04-22  0:06               ` Felipe Contreras
2014-04-22 13:36                 ` Marat Radchenko
2014-04-22 16:08                   ` Felipe Contreras
2014-04-22 13:36             ` Johannes Schindelin
2014-04-22 13:14           ` Re: Re: [ANNOUNCE] WinGit - native x86/x64 Git for Windows Johannes Schindelin
2014-04-22 14:17             ` David Kastrup
2014-04-22 16:00             ` Re: " Felipe Contreras
2014-04-22 16:14               ` Johannes Schindelin
2014-04-19 20:56 ` Sebastian Schuberth
  -- strict thread matches above, loose matches on Subject: below --
2014-04-03 13:18 marat
2014-04-19  6:31 ` Heiko Voigt
2014-04-19 15:24   ` Johannes Schindelin
2014-04-19 16:58     ` Marat Radchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).