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