{"thread":{"id":"36520","subject":"[PATCH 02/12] MINGW: compat/bswap.h: include stdint.h","startedAt":"2014-04-28T13:51:25Z","lastAt":"2014-04-29T07:59:19Z","messageCount":54,"participants":["Marat Radchenko","Erik Faye-Lund","Jonathan Nieder","Felipe Contreras","Philip Oakley","Torsten Bögershausen"],"isPatch":true,"patchVersion":1,"patchTotal":12},"messages":[{"id":"239933","messageId":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":null,"subject":"[RFC/PATCH v1] Towards MinGW(-W64) cross-compilation","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:25Z","receivedAt":"2014-04-28T13:51:25Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"This patch series fixes building on modern MinGW and (32bit only yet) MinGW-W64.\n\n*Compilation* tested on:\n - MSVC (via WinGit environment)\n - msysGit environment\n - Linux cross-toolchain i686-pc-mingw32 (4.8.2) with mingw-runtime-3.20.2\n - Linux cross-toolchain i686-w64-mingw32 (4.8.2) with mingw64-runtime-3.1.0\n\nStuff still required to make Git build with x86_64 MinGW-W64 toolchain:\n\n1. Drop -D_USE_32BIT_TIME_T that was added in fa93bb to config.mak.uname\nbecause time_t cannot be 32bit on x86_64. I haven't yet figured out what\nshould break if this define is removed (pointers are welcome) and why it was\nadded in the first place.\n\n2. Stop passing --large-address-aware to linker. I wonder if it does anything\nfor 32bit MinGW builds.\n\n3. Fix several places with mismatched pointer size casts.\n\nBuilding it from Gentoo Linux:\n\nMinGW:\n\n  crossdev -t i686-pc-mingw32\n  ARCH=x86 emerge-i686-pc-mingw32 -u dev-libs/libiconv sys-libs/zlib net-misc/curl sys-devel/gettext expat\n  cd <git>\n  make CROSS_COMPILE=i686-pc-mingw32- CC=i686-pc-mingw32-gcc NO_OPENSSL=1 MINGW=1 CURLDIR=/usr/i686-pc-mingw32/usr\n\nMinGW-W64 (32 bit):\n\n  crossdev -t i686-w64-mingw32\n  ARCH=x86 emerge-i686-w64-mingw32 -u dev-libs/libiconv sys-libs/zlib net-misc/curl sys-devel/gettext expat\n  cd <git>\n  make CROSS_COMPILE=i686-w64-mingw32- CC=i686-w64-mingw32-gcc NO_OPENSSL=1 MINGW=1 CURLDIR=/usr/i686-w64-mingw32/usr\n\nDebian/Ubuntu build instructions are WIP (xdeb is non-trivial at all).\n"},{"id":"239925","messageId":"1398693097-24651-2-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 01/12] MINGW: config.mak.uname: add explicit way to request MinGW-build","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:26Z","receivedAt":"2014-04-28T13:51:26Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"When crosscompiling, one cannot rely on `uname` from host system.\nThus, add an option to use `make MINGW=1` for building MinGW build\nfrom non-MinGW host (Linux, for example).\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n config.mak.uname | 5 +++++\n 1 file changed, 5 insertions(+)\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex 23a8803..5d301da 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -13,6 +13,11 @@ ifdef MSVC\n \tuname_O := Windows\n endif\n \n+ifdef MINGW\n+\tuname_S := MINGW\n+\tuname_O := MINGW\n+endif\n+\n # We choose to avoid \"if .. else if .. else .. endif endif\"\n # because maintaining the nesting to match is a pain.  If\n # we had \"elif\" things would have been much nicer...\n-- \n1.9.1\n"},{"id":"239923","messageId":"1398693097-24651-3-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 02/12] MINGW: compat/bswap.h: include stdint.h","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:27Z","receivedAt":"2014-04-28T13:51:27Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"bswap.h uses uint32_t type which might not be defined.\nThis patch adds direct include so bswap.h can be safely included.\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n compat/bswap.h | 2 ++\n 1 file changed, 2 insertions(+)\n\ndiff --git a/compat/bswap.h b/compat/bswap.h\nindex 120c6c1..d170447 100644\n--- a/compat/bswap.h\n+++ b/compat/bswap.h\n@@ -5,6 +5,8 @@\n  * operation.\n  */\n \n+#include <stdint.h>\n+\n /*\n  * Default version that the compiler ought to optimize properly with\n  * constant values.\n-- \n1.9.1\n"},{"id":"239931","messageId":"1398693097-24651-4-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 03/12] MINGW: compat/mingw.h: do not attempt to redefine lseek on mingw-w64","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:28Z","receivedAt":"2014-04-28T13:51:28Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"mingw-w64 has lseek defined in io.h.\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n compat/mingw.h | 2 ++\n 1 file changed, 2 insertions(+)\n\ndiff --git a/compat/mingw.h b/compat/mingw.h\nindex e033e72..262b300 100644\n--- a/compat/mingw.h\n+++ b/compat/mingw.h\n@@ -265,7 +265,9 @@ static inline int getrlimit(int resource, struct rlimit *rlp)\n  * Use mingw specific stat()/lstat()/fstat() implementations on Windows.\n  */\n #define off_t off64_t\n+#ifndef lseek\n #define lseek _lseeki64\n+#endif\n \n /* use struct stat with 64 bit st_size */\n #ifdef stat\n-- \n1.9.1\n"},{"id":"239930","messageId":"1398693097-24651-5-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 04/12] Makefile: introduce CROSS_COMPILE variable","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:29Z","receivedAt":"2014-04-28T13:51:29Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"To ease cross-compilation process, introduce a single variable\nwith the prefix to all compiler-related executables.\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n Makefile         | 13 +++++++++----\n config.mak.uname |  2 +-\n 2 files changed, 10 insertions(+), 5 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 74a929b..24befc2 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -350,6 +350,10 @@ all::\n #\n # Define GMTIME_UNRELIABLE_ERRORS if your gmtime() function does not\n # return NULL when it receives a bogus time_t.\n+#\n+# Define CROSS_COMPILE to specify the prefix used for all executables used\n+# during compilation. Only gcc and related bin-utils executables\n+# are prefixed with $(CROSS_COMPILE).\n \n GIT-VERSION-FILE: FORCE\n \t@$(SHELL_PATH) ./GIT-VERSION-GEN\n@@ -361,7 +365,6 @@ CFLAGS = -g -O2 -Wall\n LDFLAGS =\n ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)\n ALL_LDFLAGS = $(LDFLAGS)\n-STRIP ?= strip\n \n # Among the variables below, these:\n #   gitexecdir\n@@ -401,8 +404,11 @@ htmldir_relative = $(patsubst $(prefix)/%,%,$(htmldir))\n \n export prefix bindir sharedir sysconfdir gitwebdir localedir\n \n-CC = cc\n-AR = ar\n+AR = $(CROSS_COMPILE)ar\n+CC = $(CROSS_COMPILE)cc\n+GCOV = $(CROSS_COMPILE)gcov\n+STRIP = $(CROSS_COMPILE)strip\n+\n RM = rm -f\n DIFF = diff\n TAR = tar\n@@ -415,7 +421,6 @@ XGETTEXT = xgettext\n MSGFMT = msgfmt\n PTHREAD_LIBS = -lpthread\n PTHREAD_CFLAGS =\n-GCOV = gcov\n \n export TCL_PATH TCLTK_PATH\n \ndiff --git a/config.mak.uname b/config.mak.uname\nindex 5d301da..6c2e6df 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -511,7 +511,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))\n \tEXTLIBS += -lws2_32\n \tGITLIBS += git.res\n \tPTHREAD_LIBS =\n-\tRC = windres -O coff\n+\tRC = $(CROSS_COMPILE)windres -O coff\n \tNATIVE_CRLF = YesPlease\n \tX = .exe\n \tSPARSE_FLAGS = -Wno-one-bit-signed-bitfield\n-- \n1.9.1\n"},{"id":"239924","messageId":"1398693097-24651-6-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 05/12] MINGW: git-compat-util.h: use inttypes.h for printf macros.","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:30Z","receivedAt":"2014-04-28T13:51:30Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"Also, pass -D__USE_MINGW_ANSI_STDIO=0 to select MSVCRT-compatible\nmacro definitions.\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n compat/mingw.h    |  2 --\n compat/msvc.h     |  3 +++\n config.mak.uname  |  3 ++-\n git-compat-util.h | 11 ++++++-----\n 4 files changed, 11 insertions(+), 8 deletions(-)\n\ndiff --git a/compat/mingw.h b/compat/mingw.h\nindex 262b300..c502a22 100644\n--- a/compat/mingw.h\n+++ b/compat/mingw.h\n@@ -342,8 +342,6 @@ static inline char *mingw_find_last_dir_sep(const char *path)\n }\n #define find_last_dir_sep mingw_find_last_dir_sep\n #define PATH_SEP ';'\n-#define PRIuMAX \"I64u\"\n-#define PRId64 \"I64d\"\n \n void mingw_open_html(const char *path);\n #define open_html mingw_open_html\ndiff --git a/compat/msvc.h b/compat/msvc.h\nindex 580bb55..cb41ce3 100644\n--- a/compat/msvc.h\n+++ b/compat/msvc.h\n@@ -15,6 +15,9 @@\n #define strtoull     _strtoui64\n #define strtoll      _strtoi64\n \n+#define PRIuMAX \"I64u\"\n+#define PRId64 \"I64d\"\n+\n static __inline int strcasecmp (const char *s1, const char *s2)\n {\n \tint size1 = strlen(s1);\ndiff --git a/config.mak.uname b/config.mak.uname\nindex 6c2e6df..e5edae6 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -321,6 +321,7 @@ ifeq ($(uname_S),Windows)\n \tNO_PREAD = YesPlease\n \tNEEDS_CRYPTO_WITH_SSL = YesPlease\n \tNO_LIBGEN_H = YesPlease\n+\tNO_INTTYPES_H = UnfortunatelyYes\n \tNO_POLL = YesPlease\n \tNO_SYMLINK_HEAD = YesPlease\n \tNO_IPV6 = YesPlease\n@@ -502,7 +503,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))\n \tNO_INET_NTOP = YesPlease\n \tNO_POSIX_GOODIES = UnfortunatelyYes\n \tDEFAULT_HELP_FORMAT = html\n-\tCOMPAT_CFLAGS += -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32\n+\tCOMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0 -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32\n \tCOMPAT_CFLAGS += -DSTRIP_EXTENSION=\\\".exe\\\"\n \tCOMPAT_OBJS += compat/mingw.o compat/winansi.o \\\n \t\tcompat/win32/pthread.o compat/win32/syslog.o \\\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex f6d3a46..aa57a04 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -85,6 +85,12 @@\n #define _NETBSD_SOURCE 1\n #define _SGI_SOURCE 1\n \n+#ifndef NO_INTTYPES_H\n+#include <inttypes.h>\n+#else\n+#include <stdint.h>\n+#endif\n+\n #if defined(WIN32) && !defined(__CYGWIN__) /* Both MinGW and MSVC */\n # if defined (_MSC_VER) && !defined(_WIN32_WINNT)\n #  define _WIN32_WINNT 0x0502\n@@ -146,11 +152,6 @@\n #include <netdb.h>\n #include <pwd.h>\n #include <sys/un.h>\n-#ifndef NO_INTTYPES_H\n-#include <inttypes.h>\n-#else\n-#include <stdint.h>\n-#endif\n #ifdef NO_INTPTR_T\n /*\n  * On I16LP32, ILP32 and LP64 \"long\" is the save bet, however\n-- \n1.9.1\n"},{"id":"239928","messageId":"1398693097-24651-7-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 06/12] MSVC: config.mak.uname: drop -D__USE_MINGW_ACCESS from compile definitions","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:31Z","receivedAt":"2014-04-28T13:51:31Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"-D__USE_MINGW_ACCESS only affects MinGW and does nothing when\nMSVC is used.\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n config.mak.uname | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex e5edae6..dc87e21 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -363,7 +363,7 @@ ifeq ($(uname_S),Windows)\n \tCOMPAT_OBJS = compat/msvc.o compat/winansi.o \\\n \t\tcompat/win32/pthread.o compat/win32/syslog.o \\\n \t\tcompat/win32/dirent.o\n-\tCOMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n+\tCOMPAT_CFLAGS = -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n \tBASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib\n \tEXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib invalidcontinue.obj\n \tPTHREAD_LIBS =\n-- \n1.9.1\n"},{"id":"239929","messageId":"1398693097-24651-8-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 07/12] MINGW: config.mak.uname: reorganize MINGW settings","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:32Z","receivedAt":"2014-04-28T13:51:32Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"HAVE_LIBCHARSET_H and NO_R_TO_GCC_LINKER are not specific to\nmsysGit, they're general MinGW settings.\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n config.mak.uname | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex dc87e21..2f1939e 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -521,13 +521,13 @@ ifneq (,$(wildcard ../THIS_IS_MSYSGIT))\n \tprefix =\n \tINSTALL = /bin/install\n \tEXTLIBS += /mingw/lib/libz.a\n-\tNO_R_TO_GCC_LINKER = YesPlease\n \tINTERNAL_QSORT = YesPlease\n-\tHAVE_LIBCHARSET_H = YesPlease\n \tNO_GETTEXT = YesPlease\n else\n \tNO_CURL = YesPlease\n endif\n+\tHAVE_LIBCHARSET_H = YesPlease\n+\tNO_R_TO_GCC_LINKER = YesPlease\n endif\n ifeq ($(uname_S),QNX)\n \tCOMPAT_CFLAGS += -DSA_RESTART=0\n-- \n1.9.1\n"},{"id":"239926","messageId":"1398693097-24651-9-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 08/12] MINGW: config.mak.uname allow using CURL for non-msysGit builds","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:33Z","receivedAt":"2014-04-28T13:51:33Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"Also, fix `warning: passing argument 2 of 'mingw_main' from\nincompatible pointer type` in http-fetch.c and remote-curl.c.\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n config.mak.uname | 2 --\n http-fetch.c     | 5 +++--\n remote-curl.c    | 2 +-\n 3 files changed, 4 insertions(+), 5 deletions(-)\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex 2f1939e..a376b32 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -523,8 +523,6 @@ ifneq (,$(wildcard ../THIS_IS_MSYSGIT))\n \tEXTLIBS += /mingw/lib/libz.a\n \tINTERNAL_QSORT = YesPlease\n \tNO_GETTEXT = YesPlease\n-else\n-\tNO_CURL = YesPlease\n endif\n \tHAVE_LIBCHARSET_H = YesPlease\n \tNO_R_TO_GCC_LINKER = YesPlease\ndiff --git a/http-fetch.c b/http-fetch.c\nindex ba3ea10..a6a9a2f 100644\n--- a/http-fetch.c\n+++ b/http-fetch.c\n@@ -6,7 +6,7 @@\n static const char http_fetch_usage[] = \"git http-fetch \"\n \"[-c] [-t] [-a] [-v] [--recover] [-w ref] [--stdin] commit-id url\";\n \n-int main(int argc, const char **argv)\n+int main(int argc, char **argv)\n {\n \tstruct walker *walker;\n \tint commits_on_stdin = 0;\n@@ -38,7 +38,8 @@ int main(int argc, const char **argv)\n \t\t} else if (argv[arg][1] == 'v') {\n \t\t\tget_verbosely = 1;\n \t\t} else if (argv[arg][1] == 'w') {\n-\t\t\twrite_ref = &argv[arg + 1];\n+\t\t\tconst char *ref = argv[arg + 1];\n+\t\t\twrite_ref = &ref;\n \t\t\targ++;\n \t\t} else if (argv[arg][1] == 'h') {\n \t\t\tusage(http_fetch_usage);\ndiff --git a/remote-curl.c b/remote-curl.c\nindex 52c2d96..565b6c9 100644\n--- a/remote-curl.c\n+++ b/remote-curl.c\n@@ -938,7 +938,7 @@ static void parse_push(struct strbuf *buf)\n \tfree(specs);\n }\n \n-int main(int argc, const char **argv)\n+int main(int argc, char **argv)\n {\n \tstruct strbuf buf = STRBUF_INIT;\n \tint nongit;\n-- \n1.9.1\n"},{"id":"239927","messageId":"1398693097-24651-10-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 09/12] MINGW: config.mak.uname: drop -DNOGDI","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:34Z","receivedAt":"2014-04-28T13:51:34Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"On MinGW-W64, MsgWaitForMultipleObjects is guarded with #ifndef NOGDI.\n\nUnfortunately, including wingdi.h brings in #define ERROR 0 which\nconflicts with several Git internal enums. So, #undef ERROR.\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n config.mak.uname  | 4 ++--\n git-compat-util.h | 2 ++\n 2 files changed, 4 insertions(+), 2 deletions(-)\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex a376b32..4883fd5 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -363,7 +363,7 @@ ifeq ($(uname_S),Windows)\n \tCOMPAT_OBJS = compat/msvc.o compat/winansi.o \\\n \t\tcompat/win32/pthread.o compat/win32/syslog.o \\\n \t\tcompat/win32/dirent.o\n-\tCOMPAT_CFLAGS = -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n+\tCOMPAT_CFLAGS = -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n \tBASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib\n \tEXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib invalidcontinue.obj\n \tPTHREAD_LIBS =\n@@ -503,7 +503,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))\n \tNO_INET_NTOP = YesPlease\n \tNO_POSIX_GOODIES = UnfortunatelyYes\n \tDEFAULT_HELP_FORMAT = html\n-\tCOMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0 -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32\n+\tCOMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0 -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -Icompat -Icompat/win32\n \tCOMPAT_CFLAGS += -DSTRIP_EXTENSION=\\\".exe\\\"\n \tCOMPAT_OBJS += compat/mingw.o compat/winansi.o \\\n \t\tcompat/win32/pthread.o compat/win32/syslog.o \\\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex aa57a04..48bf0f7 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -98,6 +98,8 @@\n #define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n #include <winsock2.h>\n #include <windows.h>\n+/* wingdi.h defines ERROR=0, undef it to avoid conflicts */\n+#undef ERROR\n #define GIT_WINDOWS_NATIVE\n #endif\n \n-- \n1.9.1\n"},{"id":"239937","messageId":"1398693097-24651-11-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 10/12] MINGW: config.mak.uname: drop USE_NED_ALLOCATOR","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:35Z","receivedAt":"2014-04-28T13:51:35Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"nedalloc was initially added in f0ed82 to fix slowness of standard WinXP\nmemory allocator. Since WinXP is EOLed, this point is no longer valid.\n\nThe actual reason behind this commit is incompatibility of malloc.c.h\nwith MinGW-W64 headers. Alternative solution implies updating nedalloc\nto something newer.\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n config.mak.uname | 2 --\n 1 file changed, 2 deletions(-)\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex 4883fd5..3fea7a8 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -342,7 +342,6 @@ ifeq ($(uname_S),Windows)\n \tNO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease\n \tNO_NSEC = YesPlease\n \tUSE_WIN32_MMAP = YesPlease\n-\t# USE_NED_ALLOCATOR = YesPlease\n \tUNRELIABLE_FSTAT = UnfortunatelyYes\n \tOBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo\n \tNO_REGEX = YesPlease\n@@ -492,7 +491,6 @@ ifneq (,$(findstring MINGW,$(uname_S)))\n \tNO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease\n \tNO_NSEC = YesPlease\n \tUSE_WIN32_MMAP = YesPlease\n-\tUSE_NED_ALLOCATOR = YesPlease\n \tUNRELIABLE_FSTAT = UnfortunatelyYes\n \tOBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo\n \tNO_REGEX = YesPlease\n-- \n1.9.1\n"},{"id":"239935","messageId":"1398693097-24651-12-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 11/12] MINGW: do not fail at redefining pid_t on MinGW-W64","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:36Z","receivedAt":"2014-04-28T13:51:36Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"pid_t is available in sys/types.h on both MinGW and MinGW-W64\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n compat/mingw.h | 1 -\n compat/msvc.h  | 2 ++\n 2 files changed, 2 insertions(+), 1 deletion(-)\n\ndiff --git a/compat/mingw.h b/compat/mingw.h\nindex c502a22..8850109 100644\n--- a/compat/mingw.h\n+++ b/compat/mingw.h\n@@ -5,7 +5,6 @@\n  * things that are not available in header files\n  */\n \n-typedef int pid_t;\n typedef int uid_t;\n typedef int socklen_t;\n #define hstrerror strerror\ndiff --git a/compat/msvc.h b/compat/msvc.h\nindex cb41ce3..e2fda48 100644\n--- a/compat/msvc.h\n+++ b/compat/msvc.h\n@@ -18,6 +18,8 @@\n #define PRIuMAX \"I64u\"\n #define PRId64 \"I64d\"\n \n+typedef int pid_t;\n+\n static __inline int strcasecmp (const char *s1, const char *s2)\n {\n \tint size1 = strlen(s1);\n-- \n1.9.1\n"},{"id":"239936","messageId":"1398693097-24651-13-git-send-email-marat@slonopotamus.org","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"[PATCH 12/12] MINGW: compat/mingw.h: drop fork() definition","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T13:51:37Z","receivedAt":"2014-04-28T13:51:37Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"fork() is not used in MinGW builds but causes a compiler warning\non x86_64 MinGW-W64: conflicting types for built-in function 'fork'\n\nSigned-off-by: Marat Radchenko <marat@slonopotamus.org>\n---\n compat/mingw.h | 2 --\n 1 file changed, 2 deletions(-)\n\ndiff --git a/compat/mingw.h b/compat/mingw.h\nindex 8850109..2fbc8ea 100644\n--- a/compat/mingw.h\n+++ b/compat/mingw.h\n@@ -89,8 +89,6 @@ static inline int symlink(const char *oldpath, const char *newpath)\n { errno = ENOSYS; return -1; }\n static inline int fchmod(int fildes, mode_t mode)\n { errno = ENOSYS; return -1; }\n-static inline pid_t fork(void)\n-{ errno = ENOSYS; return -1; }\n static inline unsigned int alarm(unsigned int seconds)\n { return 0; }\n static inline int fsync(int fd)\n-- \n1.9.1\n"},{"id":"239939","messageId":"CABPQNSaE9ua_JM0bY8QNSThqSKHG3d7N_PV5hmnKRt93sZkVBQ@mail.gmail.com","threadId":"36520","inReplyTo":"1398693097-24651-3-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 02/12] MINGW: compat/bswap.h: include stdint.h","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T14:45:43Z","receivedAt":"2014-04-28T14:45:43Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> bswap.h uses uint32_t type which might not be defined.\n> This patch adds direct include so bswap.h can be safely included.\n>\n> Signed-off-by: Marat Radchenko <marat@slonopotamus.org>\n> ---\n>  compat/bswap.h | 2 ++\n>  1 file changed, 2 insertions(+)\n>\n> diff --git a/compat/bswap.h b/compat/bswap.h\n> index 120c6c1..d170447 100644\n> --- a/compat/bswap.h\n> +++ b/compat/bswap.h\n> @@ -5,6 +5,8 @@\n>   * operation.\n>   */\n>\n> +#include <stdint.h>\n> +\n>  /*\n>   * Default version that the compiler ought to optimize properly with\n>   * constant values.\n\nHmm, what's the symptom this fixes? From what I can tell, bswap.h is\nincluded after stdint.h from git-compat-util.h anyway...\n"},{"id":"239940","messageId":"20140428145234.GA18918@seldon","threadId":"36520","inReplyTo":"CABPQNSaE9ua_JM0bY8QNSThqSKHG3d7N_PV5hmnKRt93sZkVBQ@mail.gmail.com","subject":"Re: [PATCH 02/12] MINGW: compat/bswap.h: include stdint.h","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T14:52:35Z","receivedAt":"2014-04-28T14:52:35Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"On Mon, Apr 28, 2014 at 04:45:43PM +0200, Erik Faye-Lund wrote:\n> bswap.h is included after stdint.h from git-compat-util.h anyway...\n\nThat only becomes true after PATCH 05 when talking about MinGW.\n\nWill drop this one.\n"},{"id":"239941","messageId":"CABPQNSaP=q5Y4oKOM3zAMvhATZx2BDj_8s6ZO1EBFPGrtSj1Tw@mail.gmail.com","threadId":"36520","inReplyTo":"1398693097-24651-6-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 05/12] MINGW: git-compat-util.h: use inttypes.h for printf macros.","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T14:53:52Z","receivedAt":"2014-04-28T14:53:52Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> Also, pass -D__USE_MINGW_ANSI_STDIO=0 to select MSVCRT-compatible\n> macro definitions.\n>\n> Signed-off-by: Marat Radchenko <marat@slonopotamus.org>\n> ---\n>  compat/mingw.h    |  2 --\n>  compat/msvc.h     |  3 +++\n>  config.mak.uname  |  3 ++-\n>  git-compat-util.h | 11 ++++++-----\n>  4 files changed, 11 insertions(+), 8 deletions(-)\n>\n> diff --git a/compat/mingw.h b/compat/mingw.h\n> index 262b300..c502a22 100644\n> --- a/compat/mingw.h\n> +++ b/compat/mingw.h\n> @@ -342,8 +342,6 @@ static inline char *mingw_find_last_dir_sep(const char *path)\n>  }\n>  #define find_last_dir_sep mingw_find_last_dir_sep\n>  #define PATH_SEP ';'\n> -#define PRIuMAX \"I64u\"\n> -#define PRId64 \"I64d\"\n>\n>  void mingw_open_html(const char *path);\n>  #define open_html mingw_open_html\n> diff --git a/compat/msvc.h b/compat/msvc.h\n> index 580bb55..cb41ce3 100644\n> --- a/compat/msvc.h\n> +++ b/compat/msvc.h\n> @@ -15,6 +15,9 @@\n>  #define strtoull     _strtoui64\n>  #define strtoll      _strtoi64\n>\n> +#define PRIuMAX \"I64u\"\n> +#define PRId64 \"I64d\"\n> +\n>  static __inline int strcasecmp (const char *s1, const char *s2)\n>  {\n>         int size1 = strlen(s1);\n> diff --git a/config.mak.uname b/config.mak.uname\n> index 6c2e6df..e5edae6 100644\n> --- a/config.mak.uname\n> +++ b/config.mak.uname\n> @@ -321,6 +321,7 @@ ifeq ($(uname_S),Windows)\n>         NO_PREAD = YesPlease\n>         NEEDS_CRYPTO_WITH_SSL = YesPlease\n>         NO_LIBGEN_H = YesPlease\n> +       NO_INTTYPES_H = UnfortunatelyYes\n>         NO_POLL = YesPlease\n>         NO_SYMLINK_HEAD = YesPlease\n>         NO_IPV6 = YesPlease\n> @@ -502,7 +503,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))\n>         NO_INET_NTOP = YesPlease\n>         NO_POSIX_GOODIES = UnfortunatelyYes\n>         DEFAULT_HELP_FORMAT = html\n> -       COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32\n> +       COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0 -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32\n>         COMPAT_CFLAGS += -DSTRIP_EXTENSION=\\\".exe\\\"\n>         COMPAT_OBJS += compat/mingw.o compat/winansi.o \\\n>                 compat/win32/pthread.o compat/win32/syslog.o \\\n> diff --git a/git-compat-util.h b/git-compat-util.h\n> index f6d3a46..aa57a04 100644\n> --- a/git-compat-util.h\n> +++ b/git-compat-util.h\n> @@ -85,6 +85,12 @@\n>  #define _NETBSD_SOURCE 1\n>  #define _SGI_SOURCE 1\n>\n> +#ifndef NO_INTTYPES_H\n> +#include <inttypes.h>\n> +#else\n> +#include <stdint.h>\n> +#endif\n> +\n\nJust checking that I understand: Does this mean that we now require an\nMSVC-version that has stdint.h? If so, I'm not against such a case.\nIMO, the biggest benefit of using MSVC is not building on legacy\nsystems, but being able to use it's debugger. And for that purpose\nit's probably OK to increase the required version.\n"},{"id":"239942","messageId":"CABPQNSa7TEyGSDPHD8Yf0duJZyZ13ms0k4nPgCdomc2iPW3Acg@mail.gmail.com","threadId":"36520","inReplyTo":"20140428145234.GA18918@seldon","subject":"Re: [PATCH 02/12] MINGW: compat/bswap.h: include stdint.h","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T14:54:25Z","receivedAt":"2014-04-28T14:54:25Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 4:52 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> On Mon, Apr 28, 2014 at 04:45:43PM +0200, Erik Faye-Lund wrote:\n>> bswap.h is included after stdint.h from git-compat-util.h anyway...\n>\n> That only becomes true after PATCH 05 when talking about MinGW.\n>\n> Will drop this one.\n\nRight, thanks.\n"},{"id":"239943","messageId":"CABPQNSYdsCBXbp5GY_3WT5xvQ0wuAxS8b0auduqipsNkWJW=fA@mail.gmail.com","threadId":"36520","inReplyTo":"1398693097-24651-10-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 09/12] MINGW: config.mak.uname: drop -DNOGDI","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T14:56:45Z","receivedAt":"2014-04-28T14:56:45Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> On MinGW-W64, MsgWaitForMultipleObjects is guarded with #ifndef NOGDI.\n>\n> Unfortunately, including wingdi.h brings in #define ERROR 0 which\n> conflicts with several Git internal enums. So, #undef ERROR.\n>\n> Signed-off-by: Marat Radchenko <marat@slonopotamus.org>\n> ---\n>  config.mak.uname  | 4 ++--\n>  git-compat-util.h | 2 ++\n>  2 files changed, 4 insertions(+), 2 deletions(-)\n>\n> diff --git a/config.mak.uname b/config.mak.uname\n> index a376b32..4883fd5 100644\n> --- a/config.mak.uname\n> +++ b/config.mak.uname\n> @@ -363,7 +363,7 @@ ifeq ($(uname_S),Windows)\n>         COMPAT_OBJS = compat/msvc.o compat/winansi.o \\\n>                 compat/win32/pthread.o compat/win32/syslog.o \\\n>                 compat/win32/dirent.o\n> -       COMPAT_CFLAGS = -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n> +       COMPAT_CFLAGS = -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\\\".exe\\\"\n>         BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib\n>         EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib invalidcontinue.obj\n>         PTHREAD_LIBS =\n> @@ -503,7 +503,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))\n>         NO_INET_NTOP = YesPlease\n>         NO_POSIX_GOODIES = UnfortunatelyYes\n>         DEFAULT_HELP_FORMAT = html\n> -       COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0 -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32\n> +       COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0 -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -Icompat -Icompat/win32\n>         COMPAT_CFLAGS += -DSTRIP_EXTENSION=\\\".exe\\\"\n>         COMPAT_OBJS += compat/mingw.o compat/winansi.o \\\n>                 compat/win32/pthread.o compat/win32/syslog.o \\\n> diff --git a/git-compat-util.h b/git-compat-util.h\n> index aa57a04..48bf0f7 100644\n> --- a/git-compat-util.h\n> +++ b/git-compat-util.h\n> @@ -98,6 +98,8 @@\n>  #define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n>  #include <winsock2.h>\n>  #include <windows.h>\n> +/* wingdi.h defines ERROR=0, undef it to avoid conflicts */\n> +#undef ERROR\n>  #define GIT_WINDOWS_NATIVE\n>  #endif\n\nPerhaps it would be cleaner to just undef NOGDI in compat/poll/poll.c?\nThat way we don't end up pulling in all kinds of unrelated GUI-stuff\ninto places where they're not needed...?\n"},{"id":"239944","messageId":"CABPQNSb_+hrm-avwx4Y1749C_Ak4VN5KKvso3LeFcdDPcbqS5w@mail.gmail.com","threadId":"36520","inReplyTo":"1398693097-24651-8-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 07/12] MINGW: config.mak.uname: reorganize MINGW settings","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T14:58:11Z","receivedAt":"2014-04-28T14:58:11Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> HAVE_LIBCHARSET_H and NO_R_TO_GCC_LINKER are not specific to\n> msysGit, they're general MinGW settings.\n\nActually, HAVE_LIBCHARSET_H is. It's only present because we have\nlibiconv installed.\n"},{"id":"239945","messageId":"20140428150057.GA19002@seldon","threadId":"36520","inReplyTo":"CABPQNSaP=q5Y4oKOM3zAMvhATZx2BDj_8s6ZO1EBFPGrtSj1Tw@mail.gmail.com","subject":"Re: [PATCH 05/12] MINGW: git-compat-util.h: use inttypes.h for printf macros.","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T15:00:57Z","receivedAt":"2014-04-28T15:00:57Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"On Mon, Apr 28, 2014 at 04:53:52PM +0200, Erik Faye-Lund wrote:\n> Just checking that I understand: Does this mean that we now require an\n> MSVC-version that has stdint.h? If so, I'm not against such a case.\n> IMO, the biggest benefit of using MSVC is not building on legacy\n> systems, but being able to use it's debugger. And for that purpose\n> it's probably OK to increase the required version.\n\nOuch, that was not intentional. What minimal MSVC version is currently\nsupported and who decides if it is OK to increase required one?\n"},{"id":"239946","messageId":"CABPQNSYOy3k4-4p08wRcWyiVW-SPqp4Ax_oMc8eACRcTSSHvaA@mail.gmail.com","threadId":"36520","inReplyTo":"1398693097-24651-4-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 03/12] MINGW: compat/mingw.h: do not attempt to redefine lseek on mingw-w64","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T15:02:09Z","receivedAt":"2014-04-28T15:02:09Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> mingw-w64 has lseek defined in io.h.\n\nmsysGit has a declaration of it in io.h as well. But it's not a\npreprocessor-definition... Are you saying that it's a\npreprocessor-define in mingw-w64, that points to a 64-bit version? If\nso, looks good.\n"},{"id":"239947","messageId":"20140428150436.GB19002@seldon","threadId":"36520","inReplyTo":"CABPQNSb_+hrm-avwx4Y1749C_Ak4VN5KKvso3LeFcdDPcbqS5w@mail.gmail.com","subject":"Re: [PATCH 07/12] MINGW: config.mak.uname: reorganize MINGW settings","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T15:04:36Z","receivedAt":"2014-04-28T15:04:36Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"On Mon, Apr 28, 2014 at 04:58:11PM +0200, Erik Faye-Lund wrote:\n> On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> > HAVE_LIBCHARSET_H and NO_R_TO_GCC_LINKER are not specific to\n> > msysGit, they're general MinGW settings.\n> \n> Actually, HAVE_LIBCHARSET_H is. It's only present because we have\n> libiconv installed.\n\n1. What are other ways to provide iconv on MinGW?\n2. One can still completely disable iconv with NO_ICONV=1\n"},{"id":"239949","messageId":"CABPQNSawLpFQGuW-WV-e=v1U1OQ2BeZcatyBfbb4Xv6C3TvD_Q@mail.gmail.com","threadId":"36520","inReplyTo":"20140428150057.GA19002@seldon","subject":"Re: [PATCH 05/12] MINGW: git-compat-util.h: use inttypes.h for printf macros.","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T15:07:34Z","receivedAt":"2014-04-28T15:07:34Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 5:00 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> On Mon, Apr 28, 2014 at 04:53:52PM +0200, Erik Faye-Lund wrote:\n>> Just checking that I understand: Does this mean that we now require an\n>> MSVC-version that has stdint.h? If so, I'm not against such a case.\n>> IMO, the biggest benefit of using MSVC is not building on legacy\n>> systems, but being able to use it's debugger. And for that purpose\n>> it's probably OK to increase the required version.\n>\n> Ouch, that was not intentional. What minimal MSVC version is currently\n> supported and who decides if it is OK to increase required one?\n\nI don't know what the oldest one anyone have ever used, but I don't\nthink that matters. IMO, just noting it in the commit-message is good\nenough. Others might feel differently, though.\n\nstdint.h is available in VS10 and onwards.\ncontrib/buildsystems/Generators/Vcproj.pm generates project files for\nVS9.\n"},{"id":"239950","messageId":"20140428150924.GA19167@seldon","threadId":"36520","inReplyTo":"CABPQNSYOy3k4-4p08wRcWyiVW-SPqp4Ax_oMc8eACRcTSSHvaA@mail.gmail.com","subject":"Re: [PATCH 03/12] MINGW: compat/mingw.h: do not attempt to redefine lseek on mingw-w64","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T15:09:24Z","receivedAt":"2014-04-28T15:09:24Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"On Mon, Apr 28, 2014 at 05:02:09PM +0200, Erik Faye-Lund wrote:\n> msysGit has a declaration of it in io.h as well. But it's not a\n> preprocessor-definition... Are you saying that it's a\n> preprocessor-define in mingw-w64, that points to a 64-bit version? If\n> so, looks good.\n\nMinGW is x86 only.\n\nMinGW-W64, a separate project, provides both x86 and x86_64.\n\nAnd here's relevant part of io.h from MingW-W64:\nhttp://sourceforge.net/apps/trac/mingw-w64/browser/trunk/mingw-w64-headers/crt/io.h?rev=5437#L321\n"},{"id":"239952","messageId":"CABPQNSa7buDJFYsaW1a51XoRnqZiVUYGSgfS1t-UiF7TnuWX5g@mail.gmail.com","threadId":"36520","inReplyTo":"20140428150436.GB19002@seldon","subject":"Re: [PATCH 07/12] MINGW: config.mak.uname: reorganize MINGW settings","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T15:17:25Z","receivedAt":"2014-04-28T15:17:25Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 5:04 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> On Mon, Apr 28, 2014 at 04:58:11PM +0200, Erik Faye-Lund wrote:\n>> On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n>> > HAVE_LIBCHARSET_H and NO_R_TO_GCC_LINKER are not specific to\n>> > msysGit, they're general MinGW settings.\n>>\n>> Actually, HAVE_LIBCHARSET_H is. It's only present because we have\n>> libiconv installed.\n>\n> 1. What are other ways to provide iconv on MinGW?\n\nI'm not sure I understand. To set HAVE_LIBCHARSET_H, we need to have\nlibcharset.h. MinGW doesn't supply by default to my knowledge, so we\nget it from iconv. The THIS_IS_MSYSGIT file is there for us to be able\nto pick the right defaults for msysGit, and us having libcharset is\nindeed a msysGit-detail. Not all iconv-flavors supply libcharset.h, so\nthis tells a particularity about the one we have in msysGit.\n\n> 2. One can still completely disable iconv with NO_ICONV=1\n\nSure. And it does seem like the current setup assumes that anyone\nbuilding for MinGW has iconv. But perhaps that's a mistake?\n\nAll in all, I think maybe the line between MinGW and msysGit is a bit\nblurry at the moment. On the other hand, I don't know of anyone else\nthan Sebastian that builds outside of msysGit.\n\nTo be honest, I think the whole THIS_IS_MSYSGIT-block should have\nstayed downstream.\n"},{"id":"239954","messageId":"CABPQNSYLba_sn4FAvon7DP6fkKrhHXxX5cawuwBW3LGoKuW7rQ@mail.gmail.com","threadId":"36520","inReplyTo":"20140428150924.GA19167@seldon","subject":"Re: [PATCH 03/12] MINGW: compat/mingw.h: do not attempt to redefine lseek on mingw-w64","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T15:19:55Z","receivedAt":"2014-04-28T15:19:55Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 5:09 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> On Mon, Apr 28, 2014 at 05:02:09PM +0200, Erik Faye-Lund wrote:\n>> msysGit has a declaration of it in io.h as well. But it's not a\n>> preprocessor-definition... Are you saying that it's a\n>> preprocessor-define in mingw-w64, that points to a 64-bit version? If\n>> so, looks good.\n>\n> MinGW is x86 only.\n>\n> MinGW-W64, a separate project, provides both x86 and x86_64.\n>\n> And here's relevant part of io.h from MingW-W64:\n> http://sourceforge.net/apps/trac/mingw-w64/browser/trunk/mingw-w64-headers/crt/io.h?rev=5437#L321\n\nIt looks like Line 335 is the real goodie:\nhttps://sourceforge.net/apps/trac/mingw-w64/browser/trunk/mingw-w64-headers/crt/io.h?rev=5437#L335\n\n#define lseek lseek64\n\nSo yeah, looks good to me.\n"},{"id":"239955","messageId":"CABPQNSa6w7SM2q7wmfhq3uKN54Jxoh7r40id8RMNrYB+kbJV1g@mail.gmail.com","threadId":"36520","inReplyTo":"1398693097-24651-13-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 12/12] MINGW: compat/mingw.h: drop fork() definition","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T15:20:55Z","receivedAt":"2014-04-28T15:20:55Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> fork() is not used in MinGW builds but causes a compiler warning\n> on x86_64 MinGW-W64: conflicting types for built-in function 'fork'\n>\n> Signed-off-by: Marat Radchenko <marat@slonopotamus.org>\n> ---\n>  compat/mingw.h | 2 --\n>  1 file changed, 2 deletions(-)\n>\n> diff --git a/compat/mingw.h b/compat/mingw.h\n> index 8850109..2fbc8ea 100644\n> --- a/compat/mingw.h\n> +++ b/compat/mingw.h\n> @@ -89,8 +89,6 @@ static inline int symlink(const char *oldpath, const char *newpath)\n>  { errno = ENOSYS; return -1; }\n>  static inline int fchmod(int fildes, mode_t mode)\n>  { errno = ENOSYS; return -1; }\n> -static inline pid_t fork(void)\n> -{ errno = ENOSYS; return -1; }\n>  static inline unsigned int alarm(unsigned int seconds)\n>  { return 0; }\n>  static inline int fsync(int fd)\n\nI've been using a similar patch for a while, so:\n\nAcked-by: Erik Faye-Lund <kusmabite@gmail.com>\n"},{"id":"239956","messageId":"CABPQNSZD5jz1A8=zQvU4dYvNb-5M+TV50Uj+oVbWJs3YWBytHw@mail.gmail.com","threadId":"36520","inReplyTo":"1398693097-24651-11-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 10/12] MINGW: config.mak.uname: drop USE_NED_ALLOCATOR","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T15:23:25Z","receivedAt":"2014-04-28T15:23:25Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> nedalloc was initially added in f0ed82 to fix slowness of standard WinXP\n> memory allocator. Since WinXP is EOLed, this point is no longer valid.\n>\n> The actual reason behind this commit is incompatibility of malloc.c.h\n> with MinGW-W64 headers. Alternative solution implies updating nedalloc\n> to something newer.\n\nDid you measure that malloc on newer Windows-versions are actually\nfaster? AFAIK, malloc does a lot more inside the CRT than in the\nkernel...\n"},{"id":"239957","messageId":"CABPQNSZztq3icnPRmt2uR33FvEXDrmqKcOmLAgjxexTR7JWhaA@mail.gmail.com","threadId":"36520","inReplyTo":"1398693097-24651-12-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 11/12] MINGW: do not fail at redefining pid_t on MinGW-W64","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T15:24:51Z","receivedAt":"2014-04-28T15:24:51Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> pid_t is available in sys/types.h on both MinGW and MinGW-W64\n>\n> Signed-off-by: Marat Radchenko <marat@slonopotamus.org>\n> ---\n>  compat/mingw.h | 1 -\n>  compat/msvc.h  | 2 ++\n>  2 files changed, 2 insertions(+), 1 deletion(-)\n>\n> diff --git a/compat/mingw.h b/compat/mingw.h\n> index c502a22..8850109 100644\n> --- a/compat/mingw.h\n> +++ b/compat/mingw.h\n> @@ -5,7 +5,6 @@\n>   * things that are not available in header files\n>   */\n>\n> -typedef int pid_t;\n>  typedef int uid_t;\n>  typedef int socklen_t;\n>  #define hstrerror strerror\n> diff --git a/compat/msvc.h b/compat/msvc.h\n> index cb41ce3..e2fda48 100644\n> --- a/compat/msvc.h\n> +++ b/compat/msvc.h\n> @@ -18,6 +18,8 @@\n>  #define PRIuMAX \"I64u\"\n>  #define PRId64 \"I64d\"\n>\n> +typedef int pid_t;\n> +\n>  static __inline int strcasecmp (const char *s1, const char *s2)\n>  {\n>         int size1 = strlen(s1);\n\n\nLooks good!\n\nAcked-by: Erik Faye-Lund <kusmabite@gmail.com>\n"},{"id":"239959","messageId":"CABPQNSaywg_1pdixaEz0DALCO6pvhjdMhGW09aC+LALMzZAz1w@mail.gmail.com","threadId":"36520","inReplyTo":"1398693097-24651-9-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 08/12] MINGW: config.mak.uname allow using CURL for non-msysGit builds","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T15:26:38Z","receivedAt":"2014-04-28T15:26:38Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> Also, fix `warning: passing argument 2 of 'mingw_main' from\n> incompatible pointer type` in http-fetch.c and remote-curl.c.\n\nThese seems completely unrelated, perhaps it should be split in two?\n"},{"id":"239960","messageId":"CABPQNSZhMCPyyKVX0AhpttJbEJ3uF4gUPR9gpN=DUcLLxviwPA@mail.gmail.com","threadId":"36520","inReplyTo":"1398693097-24651-7-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 06/12] MSVC: config.mak.uname: drop -D__USE_MINGW_ACCESS from compile definitions","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T15:32:45Z","receivedAt":"2014-04-28T15:32:45Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> -D__USE_MINGW_ACCESS only affects MinGW and does nothing when\n> MSVC is used.\n\nSeems reasonable in itself.\n\nBut, doesn't this mean that our access are currently broken on MSVC?\nThe comment about __USE_MINGW_ACCESS is:\n\n/*  Old versions of MSVCRT access() just ignored X_OK, while the version\n    shipped with Vista, returns an error code.  This will restore the\n    old behaviour  */\n\nThis sounds like we should lift the access-fix up one abstraction, into Git.\n\nBut wait a minute. In Git for Windows, we already wrapped up access\nfor unicode-support (03a102ff - \"Win32: Unicode file name support\n(except dirent)\"), doing the exact same thing already. This patch\nisn't upstreamed yet, though.\n\nSounds like there's some cleaning up left to do on our behalf :)\n\nThis clean-up makes sense regardless, though.\n"},{"id":"239961","messageId":"CABPQNSZ3vxPg12HFXr4sP1b+4ifGj60fY1Z1N-x16hXgK-G0AA@mail.gmail.com","threadId":"36520","inReplyTo":"1398693097-24651-1-git-send-email-marat@slonopotamus.org","subject":"Re: [RFC/PATCH v1] Towards MinGW(-W64) cross-compilation","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T15:34:03Z","receivedAt":"2014-04-28T15:34:03Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> This patch series fixes building on modern MinGW and (32bit only yet) MinGW-W64.\n>\n> *Compilation* tested on:\n>  - MSVC (via WinGit environment)\n>  - msysGit environment\n>  - Linux cross-toolchain i686-pc-mingw32 (4.8.2) with mingw-runtime-3.20.2\n>  - Linux cross-toolchain i686-w64-mingw32 (4.8.2) with mingw64-runtime-3.1.0\n>\n> Stuff still required to make Git build with x86_64 MinGW-W64 toolchain:\n>\n> 1. Drop -D_USE_32BIT_TIME_T that was added in fa93bb to config.mak.uname\n> because time_t cannot be 32bit on x86_64. I haven't yet figured out what\n> should break if this define is removed (pointers are welcome) and why it was\n> added in the first place.\n>\n> 2. Stop passing --large-address-aware to linker. I wonder if it does anything\n> for 32bit MinGW builds.\n>\n> 3. Fix several places with mismatched pointer size casts.\n>\n> Building it from Gentoo Linux:\n>\n> MinGW:\n>\n>   crossdev -t i686-pc-mingw32\n>   ARCH=x86 emerge-i686-pc-mingw32 -u dev-libs/libiconv sys-libs/zlib net-misc/curl sys-devel/gettext expat\n>   cd <git>\n>   make CROSS_COMPILE=i686-pc-mingw32- CC=i686-pc-mingw32-gcc NO_OPENSSL=1 MINGW=1 CURLDIR=/usr/i686-pc-mingw32/usr\n>\n> MinGW-W64 (32 bit):\n>\n>   crossdev -t i686-w64-mingw32\n>   ARCH=x86 emerge-i686-w64-mingw32 -u dev-libs/libiconv sys-libs/zlib net-misc/curl sys-devel/gettext expat\n>   cd <git>\n>   make CROSS_COMPILE=i686-w64-mingw32- CC=i686-w64-mingw32-gcc NO_OPENSSL=1 MINGW=1 CURLDIR=/usr/i686-w64-mingw32/usr\n>\n> Debian/Ubuntu build instructions are WIP (xdeb is non-trivial at all).\n\nApart from some minor nits, this looks good to me. Thanks a lot for\nspending the time, and I look forward to a second iteration!\n"},{"id":"239966","messageId":"20140428161237.GA13002@google.com","threadId":"36520","inReplyTo":"1398693097-24651-2-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 01/12] MINGW: config.mak.uname: add explicit way to request MinGW-build","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2014-04-28T16:12:37Z","receivedAt":"2014-04-28T16:12:37Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\nMarat Radchenko wrote:\n\n> When crosscompiling, one cannot rely on `uname` from host system.\n> Thus, add an option to use `make MINGW=1` for building MinGW build\n> from non-MinGW host (Linux, for example).\n\nThe same also applies when cross-compiling for any other platform, no?\nThe consistent thing to do would be to add an ifdef block like this\nfor every other platform,version,cpuarch triplet we care about, which\ndoesn't seem like a great change.\n\nCan't the caller pass in uname_S=MINGW uname_M=x86_64 uname_O=MINGW\nuname_R= uname_P= uname_V= (or a single uname_A variable that the\nmakefile could decompose if that is more convenient)?\n\nOf course that is fussy.  It would be better to infer everything from\nCC, since the caller has to specify CC anyway.  Does the output from\n\"$(CC) -dumpmachine\" have the information you need?\n\nCurious,\nJonathan\n"},{"id":"239968","messageId":"20140428162332.GA19504@seldon","threadId":"36520","inReplyTo":"CABPQNSaywg_1pdixaEz0DALCO6pvhjdMhGW09aC+LALMzZAz1w@mail.gmail.com","subject":"Re: [PATCH 08/12] MINGW: config.mak.uname allow using CURL for non-msysGit builds","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T16:23:32Z","receivedAt":"2014-04-28T16:23:32Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"On Mon, Apr 28, 2014 at 05:26:38PM +0200, Erik Faye-Lund wrote:\n> On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> > Also, fix `warning: passing argument 2 of 'mingw_main' from\n> > incompatible pointer type` in http-fetch.c and remote-curl.c.\n> \n> These seems completely unrelated, perhaps it should be split in two?\n\nOkay, will split. Though there is a connection - until this patch,\nhttp-fetch.c and remote-curl.c never built for MinGW.\n"},{"id":"239970","messageId":"CABPQNSZvEgKqCLrbtgWxU=BM2vCmW=tiHLrx4aTcC-2aw-megA@mail.gmail.com","threadId":"36520","inReplyTo":"20140428162332.GA19504@seldon","subject":"Re: [PATCH 08/12] MINGW: config.mak.uname allow using CURL for non-msysGit builds","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T16:24:59Z","receivedAt":"2014-04-28T16:24:59Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 6:23 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> On Mon, Apr 28, 2014 at 05:26:38PM +0200, Erik Faye-Lund wrote:\n>> On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n>> > Also, fix `warning: passing argument 2 of 'mingw_main' from\n>> > incompatible pointer type` in http-fetch.c and remote-curl.c.\n>>\n>> These seems completely unrelated, perhaps it should be split in two?\n>\n> Okay, will split. Though there is a connection - until this patch,\n> http-fetch.c and remote-curl.c never built for MinGW.\n\nAhh, thanks for pointing that out. But yeah, I think splitting is\nstill the right option.\n"},{"id":"239971","messageId":"20140428162536.GB13002@google.com","threadId":"36520","inReplyTo":"1398693097-24651-5-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 04/12] Makefile: introduce CROSS_COMPILE variable","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2014-04-28T16:25:36Z","receivedAt":"2014-04-28T16:25:36Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\nMarat Radchenko wrote:\n\n> +# Define CROSS_COMPILE to specify the prefix used for all executables used\n> +# during compilation. Only gcc and related bin-utils executables\n> +# are prefixed with $(CROSS_COMPILE).\n\nPlease include an example.\n\n\t# Define CROSS_COMPILE=foo- if your compiler and binary utilities\n\t# are foo-cc, foo-ar, foo-strip, etc.  More specific variables\n\t# override this, so if you set CC=gcc CROSS_COMPILE=ia64-linux-gnu-\n\t# then the compiler will be 'gcc', not 'ia64-linux-gnu-gcc'.\n\nOtherwise unless I happen to know the convention from other packages I\nwould not know whether to include a trailing '-' in CROSS_COMPILE,\netc.\n\nDoes the effect of this setting depend on whether CC=gcc (i.e., is the\nMakefile checking the value of CC and ignoring CROSS_COMPILE when it\nis e.g. the Intel compiler)?\n\n[...]\n> -STRIP ?= strip\n> +STRIP = $(CROSS_COMPILE)strip\n\nBefore, STRIP from the environment took precedence over STRIP from the\nmakefile.  Switching to the more usual 'environment can't be trusted'\nconvention is a good change, but please mention it in the commit\nmessage.\n\nThe rest looks good from a quick look.\n\nThanks,\nJonathan\n"},{"id":"239973","messageId":"20140428163009.GC13002@google.com","threadId":"36520","inReplyTo":"CABPQNSZD5jz1A8=zQvU4dYvNb-5M+TV50Uj+oVbWJs3YWBytHw@mail.gmail.com","subject":"Re: [PATCH 10/12] MINGW: config.mak.uname: drop USE_NED_ALLOCATOR","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2014-04-28T16:30:09Z","receivedAt":"2014-04-28T16:30:09Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Erik Faye-Lund wrote:\n> On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n\n>> nedalloc was initially added in f0ed82 to fix slowness of standard WinXP\n>> memory allocator. Since WinXP is EOLed, this point is no longer valid.\n>>\n>> The actual reason behind this commit is incompatibility of malloc.c.h\n>> with MinGW-W64 headers. Alternative solution implies updating nedalloc\n>> to something newer.\n>\n> Did you measure that malloc on newer Windows-versions are actually\n> faster? AFAIK, malloc does a lot more inside the CRT than in the\n> kernel...\n\nIf it does turn out that nedalloc is not needed any more, please\nremove it from compat/, too. ;-)\n\nThanks for cleaning up.\n\nJonathan\n"},{"id":"239976","messageId":"20140428164202.GB19504@seldon","threadId":"36520","inReplyTo":"CABPQNSa7buDJFYsaW1a51XoRnqZiVUYGSgfS1t-UiF7TnuWX5g@mail.gmail.com","subject":"Re: [PATCH 07/12] MINGW: config.mak.uname: reorganize MINGW settings","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T16:42:02Z","receivedAt":"2014-04-28T16:42:02Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"On Mon, Apr 28, 2014 at 05:17:25PM +0200, Erik Faye-Lund wrote:\n> > 1. What are other ways to provide iconv on MinGW?\n> \n> I'm not sure I understand. To set HAVE_LIBCHARSET_H, we need to have\n> libcharset.h. MinGW doesn't supply by default to my knowledge, so we\n> get it from iconv. The THIS_IS_MSYSGIT file is there for us to be able\n> to pick the right defaults for msysGit, and us having libcharset is\n> indeed a msysGit-detail. Not all iconv-flavors supply libcharset.h, so\n> this tells a particularity about the one we have in msysGit.\n\n> > 2. One can still completely disable iconv with NO_ICONV=1\n> \n> Sure. And it does seem like the current setup assumes that anyone\n> building for MinGW has iconv. But perhaps that's a mistake?\n\nThis patch assumes that \"if user has iconv under MinGW, he has\nlibcharset.h\". Without it, we assume \"if user has iconv under MinGW,\nhe has langinfo.h\". If user doesn't have iconv, he needs to say this\nvia NO_ICONV=1 in both cases. Anyway, if it is a questionable change,\nI'll drop it and only keep NO_R_TO_GCC_LINKER change.\n\n> To be honest, I think the whole THIS_IS_MSYSGIT-block should have\n> stayed downstream.\n\nThat's a completely different story.\n"},{"id":"240013","messageId":"535e91317d381_45651483310d4@nysa.notmuch","threadId":"36520","inReplyTo":"20140428162536.GB13002@google.com","subject":"Re: [PATCH 04/12] Makefile: introduce CROSS_COMPILE variable","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-04-28T17:34:41Z","receivedAt":"2014-04-28T17:34:41Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Jonathan Nieder wrote:\n> Marat Radchenko wrote:\n\n> Does the effect of this setting depend on whether CC=gcc (i.e., is the\n> Makefile checking the value of CC and ignoring CROSS_COMPILE when it\n> is e.g. the Intel compiler)?\n\nIf the user is doing 'make CC=gcc', the CROSS_COMPILE setting shouldn't be\nappended.\n\n> [...]\n> > -STRIP ?= strip\n> > +STRIP = $(CROSS_COMPILE)strip\n> \n> Before, STRIP from the environment took precedence over STRIP from the\n> makefile.  Switching to the more usual 'environment can't be trusted'\n> convention is a good change, but please mention it in the commit\n> message.\n\nThat's only if you run make without -e. If somebody wants the environment to be\ntrusted, they should run 'make -e' in my opinion.\n\n-- \nFelipe Contreras\n"},{"id":"240014","messageId":"535e91e6c69eb_4565148331047@nysa.notmuch","threadId":"36520","inReplyTo":"1398693097-24651-5-git-send-email-marat@slonopotamus.org","subject":"RE: [PATCH 04/12] Makefile: introduce CROSS_COMPILE variable","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-04-28T17:37:42Z","receivedAt":"2014-04-28T17:37:42Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Marat Radchenko wrote:\n\n> diff --git a/Makefile b/Makefile\n> index 74a929b..24befc2 100644\n> --- a/Makefile\n> +++ b/Makefile\n\n> @@ -401,8 +404,11 @@ htmldir_relative = $(patsubst $(prefix)/%,%,$(htmldir))\n>  \n>  export prefix bindir sharedir sysconfdir gitwebdir localedir\n>  \n> -CC = cc\n> -AR = ar\n> +AR = $(CROSS_COMPILE)ar\n> +CC = $(CROSS_COMPILE)cc\n> +GCOV = $(CROSS_COMPILE)gcov\n> +STRIP = $(CROSS_COMPILE)strip\n\nNice.\n\n> diff --git a/config.mak.uname b/config.mak.uname\n> index 5d301da..6c2e6df 100644\n> --- a/config.mak.uname\n> +++ b/config.mak.uname\n> @@ -511,7 +511,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))\n>  \tEXTLIBS += -lws2_32\n>  \tGITLIBS += git.res\n>  \tPTHREAD_LIBS =\n> -\tRC = windres -O coff\n> +\tRC = $(CROSS_COMPILE)windres -O coff\n\nI don't think this is the best.\n\nWe should probably have this in the Makefile:\n\n  RC = $(CROSS_COMPILE)windres\n\nAnd then config.mak.uname should have\n\n  RCFLAGS += -O coff\n\n>  \tNATIVE_CRLF = YesPlease\n>  \tX = .exe\n>  \tSPARSE_FLAGS = -Wno-one-bit-signed-bitfield\n\n-- \nFelipe Contreras\n"},{"id":"240005","messageId":"535e923776b87_45651483310bf@nysa.notmuch","threadId":"36520","inReplyTo":"1398693097-24651-11-git-send-email-marat@slonopotamus.org","subject":"RE: [PATCH 10/12] MINGW: config.mak.uname: drop USE_NED_ALLOCATOR","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-04-28T17:39:03Z","receivedAt":"2014-04-28T17:39:03Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Marat Radchenko wrote:\n> nedalloc was initially added in f0ed82 to fix slowness of standard WinXP\n> memory allocator. Since WinXP is EOLed, this point is no longer valid.\n\nThe fact that WinXP is EOLed doesn't mean people are not using it any more =/\n\nI think it should be supported by Git at least for a while.\n\n-- \nFelipe Contreras\n"},{"id":"239987","messageId":"535e9976f1835_499f1069310db@nysa.notmuch","threadId":"36520","inReplyTo":"20140428181506.GA20059@seldon","subject":"Re: [PATCH 04/12] Makefile: introduce CROSS_COMPILE variable","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-04-28T18:09:58Z","receivedAt":"2014-04-28T18:09:58Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Marat Radchenko wrote:\n> On Mon, Apr 28, 2014 at 12:37:42PM -0500, Felipe Contreras wrote:\n> > > +CC = $(CROSS_COMPILE)cc\n> > \n> > Nice.\n> \n> Actually, not. You still have to override CC because it is\n> $(CROSS_COMPILE)*g*cc. Any thoughts how to handle this?\n\nTell mingw to fix this? My distribution (Arch Linux) provides a link\nx86_64-w64-mingw32-cc -> x86_64-w64-mingw32-gcc.\n\n-- \nFelipe Contreras\n"},{"id":"239989","messageId":"20140428181506.GA20059@seldon","threadId":"36520","inReplyTo":"535e91e6c69eb_4565148331047@nysa.notmuch","subject":"Re: [PATCH 04/12] Makefile: introduce CROSS_COMPILE variable","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T18:15:07Z","receivedAt":"2014-04-28T18:15:07Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"On Mon, Apr 28, 2014 at 12:37:42PM -0500, Felipe Contreras wrote:\n> > +CC = $(CROSS_COMPILE)cc\n> \n> Nice.\n\nActually, not. You still have to override CC because it is\n$(CROSS_COMPILE)*g*cc. Any thoughts how to handle this?\n\n> > -\tRC = windres -O coff\n> > +\tRC = $(CROSS_COMPILE)windres -O coff\n> \n> I don't think this is the best.\n> \n> We should probably have this in the Makefile:\n> \n>   RC = $(CROSS_COMPILE)windres\n> \n> And then config.mak.uname should have\n> \n>   RCFLAGS += -O coff\n\nOkay, will do in v2.\n"},{"id":"240018","messageId":"180E73BE75C845DFAE259E73AB6DC905@PhilipOakley","threadId":"36520","inReplyTo":"535e923776b87_45651483310bf@nysa.notmuch","subject":"Re: [PATCH 10/12] MINGW: config.mak.uname: drop USE_NED_ALLOCATOR","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2014-04-28T19:50:46Z","receivedAt":"2014-04-28T19:50:46Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"From: \"Felipe Contreras\" <felipe.contreras@gmail.com>\n> Marat Radchenko wrote:\n>> nedalloc was initially added in f0ed82 to fix slowness of standard \n>> WinXP\n>> memory allocator. Since WinXP is EOLed, this point is no longer \n>> valid.\n>\n> The fact that WinXP is EOLed doesn't mean people are not using it any \n> more =/\n>\n> I think it should be supported by Git at least for a while.\n>\n> -- \n> Felipe Contreras\n> --\nMy family and I have a number of XP machines [chooses frying pan vs \nfire..]\n\nI'd expect a lot of basic users who are more difficult to support to \nstill be on XP for a while.\nAt least until the next big zero day weakness openss up ;-)\n\nPhilip \n"},{"id":"240032","messageId":"535eb2f15505_3c9cdef2ec5@nysa.notmuch","threadId":"36520","inReplyTo":"535EB32B.4050209@web.de","subject":"Re: [PATCH 03/12] MINGW: compat/mingw.h: do not attempt to redefine lseek on mingw-w64","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-04-28T19:58:41Z","receivedAt":"2014-04-28T19:58:41Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Torsten Bögershausen wrote:\n> On 2014-04-28 15.51, Marat Radchenko wrote:\n> > mingw-w64 has lseek defined in io.h.\n> []\n> >  #define off_t off64_t\n> > +#ifndef lseek\n> >  #define lseek _lseeki64\n> > +#endif\n> Is the commit message in line with the code?\n> \n> I would have expected something in this style:\n> \n> #if defined(__x86_64__) && ! defined(lseek))\n> #include <io.h>\n> #endif \n\nmingw-w64 provides a 32-bit compiler as well, and it needs this fix as well\nIIRC.\n\n-- \nFelipe Contreras"},{"id":"240026","messageId":"535EB32B.4050209@web.de","threadId":"36520","inReplyTo":"1398693097-24651-4-git-send-email-marat@slonopotamus.org","subject":"Re: [PATCH 03/12] MINGW: compat/mingw.h: do not attempt to redefine lseek on mingw-w64","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2014-04-28T19:59:39Z","receivedAt":"2014-04-28T19:59:39Z","isPatch":true,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 2014-04-28 15.51, Marat Radchenko wrote:\n> mingw-w64 has lseek defined in io.h.\n[]\n>  #define off_t off64_t\n> +#ifndef lseek\n>  #define lseek _lseeki64\n> +#endif\nIs the commit message in line with the code?\n\nI would have expected something in this style:\n\n#if defined(__x86_64__) && ! defined(lseek))\n#include <io.h>\n#endif \n"},{"id":"240033","messageId":"CABPQNSZxk-cBCNhH4KwCGC2TGCQQ0TvMX=oOL31Eup=y6ZPm1A@mail.gmail.com","threadId":"36520","inReplyTo":"535EB32B.4050209@web.de","subject":"Re: [PATCH 03/12] MINGW: compat/mingw.h: do not attempt to redefine lseek on mingw-w64","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2014-04-28T20:13:17Z","receivedAt":"2014-04-28T20:13:17Z","isPatch":true,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Mon, Apr 28, 2014 at 9:59 PM, Torsten Bögershausen <tboegi@web.de> wrote:\n> On 2014-04-28 15.51, Marat Radchenko wrote:\n>> mingw-w64 has lseek defined in io.h.\n> []\n>>  #define off_t off64_t\n>> +#ifndef lseek\n>>  #define lseek _lseeki64\n>> +#endif\n> Is the commit message in line with the code?\n>\n> I would have expected something in this style:\n>\n> #if defined(__x86_64__) && ! defined(lseek))\n> #include <io.h>\n> #endif\n\nNo, we want 64-bit off_t either way, to support large files. So we\nneed the version that takes a 64-bit argument.\n"},{"id":"240035","messageId":"20140428204048.GA21365@seldon","threadId":"36520","inReplyTo":"20140428162536.GB13002@google.com","subject":"Re: [PATCH 04/12] Makefile: introduce CROSS_COMPILE variable","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T20:40:49Z","receivedAt":"2014-04-28T20:40:49Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"On Mon, Apr 28, 2014 at 09:25:36AM -0700, Jonathan Nieder wrote:\n> > -STRIP ?= strip\n> > +STRIP = $(CROSS_COMPILE)strip\n> \n> Before, STRIP from the environment took precedence over STRIP from the\n> makefile.  Switching to the more usual 'environment can't be trusted'\n> convention is a good change, but please mention it in the commit\n> message.\n\nTaken from [1]:\n\n> Simply expanded variables are defined by lines using ‘:=’ or ‘::=’ (see Setting Variables).\n> Both forms are equivalent in GNU make; however only the ‘::=’ form is described by the POSIX\n> standard (support for ‘::=’ was added to the POSIX standard in 2012, so older versions of make\n> won't accept this form either).\n>\n> The value of a simply expanded variable is scanned once and for all, expanding any references\n> to other variables and functions, when the variable is defined. The actual value of the simply\n> expanded variable is the result of expanding the text that you write. It does not contain any\n> references to other variables; it contains their values as of the time this variable was defined.\n> Therefore,\n>\n>    x := foo\n>    y := $(x) bar\n>    x := later\n> is equivalent to\n>\n>    y := foo bar\n>    x := later\n>\n> When a simply expanded variable is referenced, its value is substituted verbatim.\n\nI don't see how it relates to environment precedence. Could you please provide me an example of\na situation that changed due to my commit?\n\n[1]: http://www.gnu.org/software/make/manual/make.html#Flavors\n"},{"id":"240037","messageId":"20140428204504.GP9218@google.com","threadId":"36520","inReplyTo":"20140428204048.GA21365@seldon","subject":"Re: [PATCH 04/12] Makefile: introduce CROSS_COMPILE variable","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2014-04-28T20:45:04Z","receivedAt":"2014-04-28T20:45:04Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\nMarat Radchenko wrote:\n> On Mon, Apr 28, 2014 at 09:25:36AM -0700, Jonathan Nieder wrote:\n\n>>> -STRIP ?= strip\n>>> +STRIP = $(CROSS_COMPILE)strip\n>>\n>> Before, STRIP from the environment took precedence over STRIP from the\n>> makefile.  Switching to the more usual 'environment can't be trusted'\n>> convention is a good change, but please mention it in the commit\n>> message.\n>\n> Taken from [1]:\n>\n>> Simply expanded variables are defined by\n\nI'm not really sure what in particular you're pointing to in that\npage.  If you have a more specific question about what '?=' means,\ncould you say it?\n\nHope that helps,\nJonathan\n"},{"id":"240044","messageId":"20140428205414.GB21365@seldon","threadId":"36520","inReplyTo":"20140428204504.GP9218@google.com","subject":"Re: [PATCH 04/12] Makefile: introduce CROSS_COMPILE variable","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-28T20:54:15Z","receivedAt":"2014-04-28T20:54:15Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"On Mon, Apr 28, 2014 at 01:45:04PM -0700, Jonathan Nieder wrote:\n> I'm not really sure what in particular you're pointing to in that\n> page.  If you have a more specific question about what '?=' means,\n> could you say it?\n\nWoops. I guess I need some sleep. Confused '?=' with ':='.\n"},{"id":"240090","messageId":"20140428233806.GS9218@google.com","threadId":"36520","inReplyTo":"20140428181506.GA20059@seldon","subject":"Re: [PATCH 04/12] Makefile: introduce CROSS_COMPILE variable","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2014-04-28T23:38:06Z","receivedAt":"2014-04-28T23:38:06Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Marat Radchenko wrote:\n> On Mon, Apr 28, 2014 at 12:37:42PM -0500, Felipe Contreras wrote:\n\n>>> +CC = $(CROSS_COMPILE)cc\n>>\n>> Nice.\n>\n> Actually, not. You still have to override CC because it is\n> $(CROSS_COMPILE)*g*cc. Any thoughts how to handle this?\n\nOne possibility would be something like\n\n\tifdef CROSS_COMPILE\n\tCC = $(CROSS_COMPILE)gcc\n\telse\n\tCC = cc\n\tendif\n\nOr as Felipe says, you can try to lobby your distro to install the\nsymlink.\n\nThanks,\nJonathan\n"},{"id":"240094","messageId":"535eea307640d_5a07e812f050@nysa.notmuch","threadId":"36520","inReplyTo":"20140428233806.GS9218@google.com","subject":"Re: [PATCH 04/12] Makefile: introduce CROSS_COMPILE variable","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-04-28T23:54:24Z","receivedAt":"2014-04-28T23:54:24Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Jonathan Nieder wrote:\n> Marat Radchenko wrote:\n> > On Mon, Apr 28, 2014 at 12:37:42PM -0500, Felipe Contreras wrote:\n> \n> >>> +CC = $(CROSS_COMPILE)cc\n> >>\n> >> Nice.\n> >\n> > Actually, not. You still have to override CC because it is\n> > $(CROSS_COMPILE)*g*cc. Any thoughts how to handle this?\n> \n> One possibility would be something like\n> \n> \tifdef CROSS_COMPILE\n> \tCC = $(CROSS_COMPILE)gcc\n> \telse\n> \tCC = cc\n> \tendif\n\nOr just:\n\n  CC = $(CROSS_COMPILE)gcc\n\nWhich is what the Linux kernel does.\n\n> Or as Felipe says, you can try to lobby your distro to install the\n> symlink.\n\nHe can add the symlink into his ~/bin, or any $PATH.\n\n-- \nFelipe Contreras\n"},{"id":"240121","messageId":"20140429074814.GA23421@seldon","threadId":"36520","inReplyTo":"CABPQNSZD5jz1A8=zQvU4dYvNb-5M+TV50Uj+oVbWJs3YWBytHw@mail.gmail.com","subject":"Re: [PATCH 10/12] MINGW: config.mak.uname: drop USE_NED_ALLOCATOR","fromName":"Marat Radchenko","fromEmail":"marat@slonopotamus.org","sentAt":"2014-04-29T07:48:14Z","receivedAt":"2014-04-29T07:48:14Z","isPatch":true,"sender":{"key":"marat@slonopotamus.org","avatar":"https://avatars.githubusercontent.com/u/92637?v=4"},"body":"On Mon, Apr 28, 2014 at 05:23:25PM +0200, Erik Faye-Lund wrote:\n> On Mon, Apr 28, 2014 at 3:51 PM, Marat Radchenko <marat@slonopotamus.org> wrote:\n> > nedalloc was initially added in f0ed82 to fix slowness of standard WinXP\n> > memory allocator. Since WinXP is EOLed, this point is no longer valid.\n> >\n> > The actual reason behind this commit is incompatibility of malloc.c.h\n> > with MinGW-W64 headers. Alternative solution implies updating nedalloc\n> > to something newer.\n> \n> Did you measure that malloc on newer Windows-versions are actually\n> faster? AFAIK, malloc does a lot more inside the CRT than in the\n> kernel...\n\nWindows 8, msysGit.\n\ngit repack -adf on msysgit/git (best of 3 runs)\n\n+ nedalloc: 10.5s\n- nedalloc: 11s\n\ngit repack -adf on torvalds/linux (best of 3 runs)\n\n+ nedalloc: 3m 24s\n- nedalloc: 3m 47s\n\nWe need to make a decision: drop nedalloc, update nedalloc to later release,\npatch nedalloc to make it work under MinGW-W64 or disable nedalloc under\nMinGW-W64 (still leaving it enabled under MinGW).\n\nP.S. Waiting for \"Resolving deltas\" when cloning torvalds/linux is a pain,\nperhaps someone should run gprof on it.\n"},{"id":"240123","messageId":"535f5bd771034_45e485b30863@nysa.notmuch","threadId":"36520","inReplyTo":"20140429074814.GA23421@seldon","subject":"Re: [PATCH 10/12] MINGW: config.mak.uname: drop USE_NED_ALLOCATOR","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-04-29T07:59:19Z","receivedAt":"2014-04-29T07:59:19Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Marat Radchenko wrote:\n\n> We need to make a decision: drop nedalloc, update nedalloc to later release,\n> patch nedalloc to make it work under MinGW-W64 or disable nedalloc under\n> MinGW-W64 (still leaving it enabled under MinGW).\n\nI say go for the latter (disable for mingw-264). It can be fixed later, and in\nthe meantime nobody gets affected negatively.\n\n-- \nFelipe Contreras\n"}]}