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