git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC/PATCH v1] Towards MinGW(-W64) cross-compilation
@ 2014-04-28 13:51 Marat Radchenko
  2014-04-28 13:51 ` [PATCH 01/12] MINGW: config.mak.uname: add explicit way to request MinGW-build Marat Radchenko
                   ` (12 more replies)
  0 siblings, 13 replies; 55+ messages in thread
From: Marat Radchenko @ 2014-04-28 13:51 UTC (permalink / raw)
  To: GIT Mailing-list; +Cc: marat, Felipe Contreras

This patch series fixes building on modern MinGW and (32bit only yet) MinGW-W64.

*Compilation* tested on:
 - MSVC (via WinGit environment)
 - msysGit environment
 - Linux cross-toolchain i686-pc-mingw32 (4.8.2) with mingw-runtime-3.20.2
 - Linux cross-toolchain i686-w64-mingw32 (4.8.2) with mingw64-runtime-3.1.0

Stuff still required to make Git build with x86_64 MinGW-W64 toolchain:

1. Drop -D_USE_32BIT_TIME_T that was added in fa93bb to config.mak.uname
because time_t cannot be 32bit on x86_64. I haven't yet figured out what
should break if this define is removed (pointers are welcome) and why it was
added in the first place.

2. Stop passing --large-address-aware to linker. I wonder if it does anything
for 32bit MinGW builds.

3. Fix several places with mismatched pointer size casts.

Building it from Gentoo Linux:

MinGW:

  crossdev -t i686-pc-mingw32
  ARCH=x86 emerge-i686-pc-mingw32 -u dev-libs/libiconv sys-libs/zlib net-misc/curl sys-devel/gettext expat
  cd <git>
  make CROSS_COMPILE=i686-pc-mingw32- CC=i686-pc-mingw32-gcc NO_OPENSSL=1 MINGW=1 CURLDIR=/usr/i686-pc-mingw32/usr

MinGW-W64 (32 bit):

  crossdev -t i686-w64-mingw32
  ARCH=x86 emerge-i686-w64-mingw32 -u dev-libs/libiconv sys-libs/zlib net-misc/curl sys-devel/gettext expat
  cd <git>
  make CROSS_COMPILE=i686-w64-mingw32- CC=i686-w64-mingw32-gcc NO_OPENSSL=1 MINGW=1 CURLDIR=/usr/i686-w64-mingw32/usr

Debian/Ubuntu build instructions are WIP (xdeb is non-trivial at all).

^ permalink raw reply	[flat|nested] 55+ messages in thread
* Re: [PATCH 10/12] MINGW: config.mak.uname: drop USE_NED_ALLOCATOR
@ 2014-04-28 16:11 Marat Radchenko
  0 siblings, 0 replies; 55+ messages in thread
From: Marat Radchenko @ 2014-04-28 16:11 UTC (permalink / raw)
  To: kusmabite; +Cc: GIT Mailing-list, Felipe Contreras

> Did you measure that malloc on newer Windows-versions are actually faster?

No, I didn't. As I said, real reason for this patch is that Git version of nedalloc fails to compile under MinGW-W64. If we still want to use nedalloc under MinGW, this patch should be replaced with:

 a) Updating nedalloc to newer release that succeeds to compile under MinGW-W64 (I'd prefer this option). As a bonus point, we can drop most (if not all) fixes that Git currently has on top of nedallox.

 OR

 b) Patching specific problems that prevent compilation.

 OR

 c) Introducing separate MinGW/MinGW-W64 behavior to compat.mak.uname, least preferred option.

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

end of thread, other threads:[~2014-04-29  8:10 UTC | newest]

Thread overview: 55+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-28 13:51 [RFC/PATCH v1] Towards MinGW(-W64) cross-compilation Marat Radchenko
2014-04-28 13:51 ` [PATCH 01/12] MINGW: config.mak.uname: add explicit way to request MinGW-build Marat Radchenko
2014-04-28 16:12   ` Jonathan Nieder
2014-04-28 13:51 ` [PATCH 02/12] MINGW: compat/bswap.h: include stdint.h Marat Radchenko
2014-04-28 14:45   ` Erik Faye-Lund
2014-04-28 14:52     ` Marat Radchenko
2014-04-28 14:54       ` Erik Faye-Lund
2014-04-28 13:51 ` [PATCH 03/12] MINGW: compat/mingw.h: do not attempt to redefine lseek on mingw-w64 Marat Radchenko
2014-04-28 15:02   ` Erik Faye-Lund
2014-04-28 15:09     ` Marat Radchenko
2014-04-28 15:19       ` Erik Faye-Lund
2014-04-28 19:59   ` Torsten Bögershausen
2014-04-28 19:58     ` Felipe Contreras
2014-04-28 20:13     ` Erik Faye-Lund
2014-04-28 13:51 ` [PATCH 04/12] Makefile: introduce CROSS_COMPILE variable Marat Radchenko
2014-04-28 16:25   ` Jonathan Nieder
2014-04-28 17:34     ` Felipe Contreras
2014-04-28 20:40     ` Marat Radchenko
2014-04-28 20:45       ` Jonathan Nieder
2014-04-28 20:54         ` Marat Radchenko
2014-04-28 17:37   ` Felipe Contreras
2014-04-28 18:15     ` Marat Radchenko
2014-04-28 18:09       ` Felipe Contreras
2014-04-28 23:38       ` Jonathan Nieder
2014-04-28 23:54         ` Felipe Contreras
2014-04-28 13:51 ` [PATCH 05/12] MINGW: git-compat-util.h: use inttypes.h for printf macros Marat Radchenko
2014-04-28 14:53   ` Erik Faye-Lund
2014-04-28 15:00     ` Marat Radchenko
2014-04-28 15:07       ` Erik Faye-Lund
2014-04-28 13:51 ` [PATCH 06/12] MSVC: config.mak.uname: drop -D__USE_MINGW_ACCESS from compile definitions Marat Radchenko
2014-04-28 15:32   ` Erik Faye-Lund
2014-04-28 13:51 ` [PATCH 07/12] MINGW: config.mak.uname: reorganize MINGW settings Marat Radchenko
2014-04-28 14:58   ` Erik Faye-Lund
2014-04-28 15:04     ` Marat Radchenko
2014-04-28 15:17       ` Erik Faye-Lund
2014-04-28 16:42         ` Marat Radchenko
2014-04-28 13:51 ` [PATCH 08/12] MINGW: config.mak.uname allow using CURL for non-msysGit builds Marat Radchenko
2014-04-28 15:26   ` Erik Faye-Lund
2014-04-28 16:23     ` Marat Radchenko
2014-04-28 16:24       ` Erik Faye-Lund
2014-04-28 13:51 ` [PATCH 09/12] MINGW: config.mak.uname: drop -DNOGDI Marat Radchenko
2014-04-28 14:56   ` Erik Faye-Lund
2014-04-28 13:51 ` [PATCH 10/12] MINGW: config.mak.uname: drop USE_NED_ALLOCATOR Marat Radchenko
2014-04-28 15:23   ` Erik Faye-Lund
2014-04-28 16:30     ` Jonathan Nieder
2014-04-29  7:48     ` Marat Radchenko
2014-04-29  7:59       ` Felipe Contreras
2014-04-28 17:39   ` Felipe Contreras
2014-04-28 19:50     ` Philip Oakley
2014-04-28 13:51 ` [PATCH 11/12] MINGW: do not fail at redefining pid_t on MinGW-W64 Marat Radchenko
2014-04-28 15:24   ` Erik Faye-Lund
2014-04-28 13:51 ` [PATCH 12/12] MINGW: compat/mingw.h: drop fork() definition Marat Radchenko
2014-04-28 15:20   ` Erik Faye-Lund
2014-04-28 15:34 ` [RFC/PATCH v1] Towards MinGW(-W64) cross-compilation Erik Faye-Lund
  -- strict thread matches above, loose matches on Subject: below --
2014-04-28 16:11 [PATCH 10/12] MINGW: config.mak.uname: drop USE_NED_ALLOCATOR 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).