Re: [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git

2014-04-22 Thread Felipe Contreras
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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git

2014-04-22 Thread Johannes Schindelin
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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [NOT_A_PATCH] A naive attempt to cross-build Linux->mingw64 Git

2014-04-21 Thread Felipe Contreras
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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html