Re: [NOT_A_PATCH] A naive attempt to cross-build Linux-mingw64 Git
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
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
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