All of lore.kernel.org
 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
* [PATCH v2] MinGW(-W64) cross-compilation
@ 2014-04-29  9:11 Marat Radchenko
  2014-04-29  9:12 ` [PATCH 07/12] MINGW: config.mak.uname: reorganize MINGW settings Marat Radchenko
  0 siblings, 1 reply; 55+ messages in thread
From: Marat Radchenko @ 2014-04-29  9:11 UTC (permalink / raw)
  To: GIT Mailing-list; +Cc: marat, Felipe Contreras, Erik Faye-Lund

Differences with v1:
 - Dropped "MINGW: compat/bswap.h: include stdint.h", it isn't needed after
   "MINGW: git-compat-util.h: use inttypes.h for printf macros"
 - Split "MINGW: config.mak.uname allow using CURL for non-msysGit builds"
   into "MINGW: config.mak.uname: allow using cURL for non-msysGit builds"
   and "MINGW: fix main() signature in http-fetch.c and remote-curl.c"
 - Reworded "MINGW: git-compat-util.h: use inttypes.h for printf macros"
 - Reworded "MINGW: config.mak.uname: reorganize MINGW settings"
 - Rewrote "MINGW: config.mak.uname: drop -DNOGDI" into
   "MINGW: compat/poll/poll.c: undef NOGDI"
 - Rewrote "MINGW: config.mak.uname: drop USE_NED_ALLOCATOR" into
   "compat/nedmalloc/malloc.c.h: fix compilation under MinGW-W64"
 - Reworded "Makefile: introduce CROSS_COMPILE variable"
 - Reordeder commits (1-5 are Acked by: Eric Faye-Lund <kusmabite@gmail.com>)

=====================================

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- 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- NO_OPENSSL=1 MINGW=1 CURLDIR=/usr/i686-w64-mingw32/usr

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

end of thread, other threads:[~2014-04-29  9:13 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-29  9:11 [PATCH v2] " Marat Radchenko
2014-04-29  9:12 ` [PATCH 07/12] MINGW: config.mak.uname: reorganize MINGW settings Marat Radchenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.