aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2019-08-29 17:19:18 -0400
committerMark H Weaver <mhw@netris.org>2019-08-29 17:19:18 -0400
commit0481289cbccba2646bf654f0ae49ac9c45602d5d (patch)
treecbe1351e2751e9d22c4c8add02991a3e6674f26a /gnu/packages/patches
parentc55fae452032aa4b1b63406983e9abdf70adc957 (diff)
parent9fbf4d2a52d4d3e01059f3432bb3f78182b5a822 (diff)
downloadguix-0481289cbccba2646bf654f0ae49ac9c45602d5d.tar
guix-0481289cbccba2646bf654f0ae49ac9c45602d5d.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/bash-4.4-linux-pgrp-pipe.patch30
-rw-r--r--gnu/packages/patches/enlightenment-fix-setuid-path.patch74
-rw-r--r--gnu/packages/patches/libextractor-exiv2.patch124
-rw-r--r--gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch218
-rw-r--r--gnu/packages/patches/mingw-w64-6.0.0-gcc.patch65
5 files changed, 282 insertions, 229 deletions
diff --git a/gnu/packages/patches/bash-4.4-linux-pgrp-pipe.patch b/gnu/packages/patches/bash-4.4-linux-pgrp-pipe.patch
new file mode 100644
index 0000000000..0d03d7ce37
--- /dev/null
+++ b/gnu/packages/patches/bash-4.4-linux-pgrp-pipe.patch
@@ -0,0 +1,30 @@
+Unconditionally enable PGRP_PIPE on Linux (the kernel), regardless of
+the kernel version in use on the build machine.
+
+--- configure.ac.orig 1969-12-31 19:00:00.000000000 -0500
++++ configure.ac 2019-08-11 22:28:26.038841961 -0400
+@@ -1092,9 +1092,7 @@
+ solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
+ lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
+- case "`uname -r`" in
+- 2.[[456789]]*|[[34]]*) AC_DEFINE(PGRP_PIPE) ;;
+- esac ;;
++ AC_DEFINE(PGRP_PIPE) ;;
+ *qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
+ *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
+ powerux*) LOCAL_LIBS="-lgen" ;;
+--- configure.orig 1969-12-31 19:00:00.000000000 -0500
++++ configure 2019-08-11 22:28:10.166763255 -0400
+@@ -16064,10 +16064,7 @@
+ solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
+ lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
+- case "`uname -r`" in
+- 2.[456789]*|[34]*) $as_echo "#define PGRP_PIPE 1" >>confdefs.h
+- ;;
+- esac ;;
++ $as_echo "#define PGRP_PIPE 1" >>confdefs.h ;;
+ *qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
+ *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
+ powerux*) LOCAL_LIBS="-lgen" ;;
diff --git a/gnu/packages/patches/enlightenment-fix-setuid-path.patch b/gnu/packages/patches/enlightenment-fix-setuid-path.patch
index 90e16d3e67..c48f18c8ec 100644
--- a/gnu/packages/patches/enlightenment-fix-setuid-path.patch
+++ b/gnu/packages/patches/enlightenment-fix-setuid-path.patch
@@ -28,7 +28,7 @@ index 2bced6766..208e583ba 100644
}
#endif // HAVE_EEZE || __FreeBSD_kernel__
diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c
-index b7d9e3eba..d8a9eb82c 100644
+index 0fcffa249..c1921121d 100644
--- a/src/bin/e_fm/e_fm_main_eeze.c
+++ b/src/bin/e_fm/e_fm_main_eeze.c
@@ -318,7 +318,7 @@ _e_fm_main_eeze_volume_eject(E_Volume *v)
@@ -59,10 +59,10 @@ index b7d9e3eba..d8a9eb82c 100644
}
v->guard = ecore_timer_loop_add(E_FM_MOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_mount_timeout, v);
diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c
-index 6781a9b5a..8cd140f1b 100644
+index 671fbcd9a..90ee04cf1 100644
--- a/src/bin/e_sys.c
+++ b/src/bin/e_sys.c
-@@ -653,20 +653,16 @@ _e_sys_cb_timer(void *data EINA_UNUSED)
+@@ -702,20 +702,16 @@ _e_sys_cb_timer(void *data EINA_UNUSED)
e_init_status_set(_("Checking System Permissions"));
snprintf(buf, sizeof(buf),
@@ -87,9 +87,9 @@ index 6781a9b5a..8cd140f1b 100644
_e_sys_hibernate_check_exe = ecore_exe_run(buf, NULL);
return ECORE_CALLBACK_CANCEL;
}
-@@ -1079,8 +1075,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
- /* shutdown -h now */
+@@ -1134,8 +1130,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
if (e_util_immortal_check()) return 0;
+ e_fm2_die();
snprintf(buf, sizeof(buf),
- "%s/enlightenment/utils/enlightenment_sys halt",
- e_prefix_lib_get());
@@ -97,9 +97,9 @@ index 6781a9b5a..8cd140f1b 100644
if (_e_sys_exe)
{
if ((ecore_time_get() - _e_sys_begin_time) > 2.0)
-@@ -1114,8 +1109,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
- /* shutdown -r now */
+@@ -1170,8 +1165,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
if (e_util_immortal_check()) return 0;
+ e_fm2_die();
snprintf(buf, sizeof(buf),
- "%s/enlightenment/utils/enlightenment_sys reboot",
- e_prefix_lib_get());
@@ -107,7 +107,7 @@ index 6781a9b5a..8cd140f1b 100644
if (_e_sys_exe)
{
if ((ecore_time_get() - _e_sys_begin_time) > 2.0)
-@@ -1148,8 +1142,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
+@@ -1204,8 +1198,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
case E_SYS_SUSPEND:
/* /etc/acpi/sleep.sh force */
snprintf(buf, sizeof(buf),
@@ -117,7 +117,7 @@ index 6781a9b5a..8cd140f1b 100644
if (_e_sys_exe)
{
if ((ecore_time_get() - _e_sys_begin_time) > 2.0)
-@@ -1208,8 +1201,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
+@@ -1265,8 +1258,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw)
case E_SYS_HIBERNATE:
/* /etc/acpi/hibernate.sh force */
snprintf(buf, sizeof(buf),
@@ -152,11 +152,26 @@ index 4b5148634..47d34b07f 100644
autolock_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL);
eina_strbuf_free(buf);
+diff --git a/src/modules/bluez5/e_mod_main.c b/src/modules/bluez5/e_mod_main.c
+index a581c466c..095d8f360 100644
+--- a/src/modules/bluez5/e_mod_main.c
++++ b/src/modules/bluez5/e_mod_main.c
+@@ -321,8 +321,8 @@ ebluez5_rfkill_unblock(const char *name)
+ if (buf)
+ {
+ eina_strbuf_append_printf
+- (buf, "%s/enlightenment/utils/enlightenment_sys rfkill-unblock %s",
+- e_prefix_lib_get(), name);
++ (buf, "/run/setuid-programs/enlightenment_sys rfkill-unblock %s",
++ name);
+ _rfkill_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL);
+ eina_strbuf_free(buf);
+ }
diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c
-index f4ba259b6..ae228bae3 100644
+index b66b365d8..bab0802cc 100644
--- a/src/modules/cpufreq/e_mod_main.c
+++ b/src/modules/cpufreq/e_mod_main.c
-@@ -1450,8 +1450,7 @@ e_modapi_init(E_Module *m)
+@@ -1452,8 +1452,7 @@ e_modapi_init(E_Module *m)
}
E_CONFIG_LIMIT(cpufreq_config->poll_interval, 1, 1024);
@@ -166,3 +181,40 @@ index f4ba259b6..ae228bae3 100644
cpufreq_config->set_exe_path = strdup(buf);
if (stat(buf, &st) < 0)
+diff --git a/src/modules/sysinfo/cpuclock/cpuclock.c b/src/modules/sysinfo/cpuclock/cpuclock.c
+index 938916e53..00d5067d0 100644
+--- a/src/modules/sysinfo/cpuclock/cpuclock.c
++++ b/src/modules/sysinfo/cpuclock/cpuclock.c
+@@ -80,8 +80,7 @@ _cpuclock_set_governor(const char *governor)
+ char buf[4096 + 100], exe[4096];
+ struct stat st;
+
+- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs",
+- e_module_dir_get(sysinfo_config->module), MODULE_ARCH);
++ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs");
+ if (stat(exe, &st) < 0) return;
+
+ snprintf(buf, sizeof(buf),
+@@ -108,8 +107,7 @@ _cpuclock_set_frequency(int frequency)
+ if (system(buf) != 0)
+ ERR("Error code from trying to run \"%s\"", buf);
+ #else
+- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs",
+- e_module_dir_get(sysinfo_config->module), MODULE_ARCH);
++ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs");
+ if (stat(exe, &st) < 0) return;
+ snprintf(buf, sizeof(buf),
+ "%s %s %i", exe, "frequency", frequency);
+@@ -127,8 +125,7 @@ _cpuclock_set_pstate(int min, int max, int turbo)
+ char buf[4096 + 100], exe[4096];
+ struct stat st;
+
+- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs",
+- e_module_dir_get(sysinfo_config->module), MODULE_ARCH);
++ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs");
+ if (stat(exe, &st) < 0) return;
+ snprintf(buf, sizeof(buf),
+ "%s %s %i %i %i", exe, "pstate", min, max, turbo);
+--
+2.23.0
+
diff --git a/gnu/packages/patches/libextractor-exiv2.patch b/gnu/packages/patches/libextractor-exiv2.patch
new file mode 100644
index 0000000000..b92fef3ca1
--- /dev/null
+++ b/gnu/packages/patches/libextractor-exiv2.patch
@@ -0,0 +1,124 @@
+This patch allows us to build libextractor against exiv2 0.27.x.
+Adapted from this upstream commit:
+
+ commit 1ecee9a47717e36cb8a3925d011d1a6de11d631c
+ Author: Christian Grothoff <christian@grothoff.org>
+ Date: Mon Jul 29 17:58:18 2019 +0200
+
+ importing patch from Gentoo/AS to address exiv2 build issue (#5820)
+
+diff --git a/src/plugins/exiv2_extractor.cc b/src/plugins/exiv2_extractor.cc
+index 8741d40..ef402a8 100644
+--- a/src/plugins/exiv2_extractor.cc
++++ b/src/plugins/exiv2_extractor.cc
+@@ -27,10 +27,7 @@
+ #include <cassert>
+ #include <cstring>
+ #include <math.h>
+-#include <exiv2/exif.hpp>
+-#include <exiv2/error.hpp>
+-#include <exiv2/image.hpp>
+-#include <exiv2/futils.hpp>
++#include <exiv2/exiv2.hpp>
+
+ /**
+ * Enable debugging to get error messages.
+@@ -180,7 +177,7 @@ public:
+ *
+ * @return -1 on error
+ */
+-#if EXIV2_VERSION >= EXIV2_MAKE_VERSION(0,26,0)
++#if EXIV2_TEST_VERSION(0,26,0)
+ virtual size_t size (void) const;
+ #else
+ virtual long int size (void) const;
+@@ -316,7 +313,11 @@ ExtractorIO::getb ()
+ const unsigned char *r;
+
+ if (1 != ec->read (ec->cls, &data, 1))
++#if EXIV2_TEST_VERSION(0,27,0)
++ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
++#else
+ throw Exiv2::BasicError<char> (42 /* error code */);
++#endif
+ r = (const unsigned char *) data;
+ return *r;
+ }
+@@ -371,7 +372,11 @@ ExtractorIO::putb (Exiv2::byte data)
+ void
+ ExtractorIO::transfer (Exiv2::BasicIo& src)
+ {
++#if EXIV2_TEST_VERSION(0,27,0)
++ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
++#else
+ throw Exiv2::BasicError<char> (42 /* error code */);
++#endif
+ }
+
+
+@@ -416,7 +421,11 @@ ExtractorIO::seek (long offset,
+ Exiv2::byte *
+ ExtractorIO::mmap (bool isWritable)
+ {
++#if EXIV2_TEST_VERSION(0,27,0)
++ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
++#else
+ throw Exiv2::BasicError<char> (42 /* error code */);
++#endif
+ }
+
+
+@@ -449,7 +458,7 @@ ExtractorIO::tell (void) const
+ *
+ * @return -1 on error
+ */
+-#if EXIV2_VERSION >= EXIV2_MAKE_VERSION(0,26,0)
++#if EXIV2_TEST_VERSION(0,26,0)
+ size_t
+ #else
+ long int
+@@ -504,7 +513,11 @@ ExtractorIO::eof () const
+ std::string
+ ExtractorIO::path () const
+ {
++#if EXIV2_TEST_VERSION(0,27,0)
++ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
++#else
+ throw Exiv2::BasicError<char> (42 /* error code */);
++#endif
+ }
+
+
+@@ -517,7 +530,11 @@ ExtractorIO::path () const
+ std::wstring
+ ExtractorIO::wpath () const
+ {
++#if EXIV2_TEST_VERSION(0,27,0)
++ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
++#else
+ throw Exiv2::BasicError<char> (42 /* error code */);
++#endif
+ }
+ #endif
+
+@@ -531,7 +548,11 @@ Exiv2::BasicIo::AutoPtr
+ ExtractorIO::temporary () const
+ {
+ fprintf (stderr, "throwing temporary error\n");
++#if EXIV2_TEST_VERSION(0,27,0)
++ throw Exiv2::BasicError<char> (Exiv2::kerDecodeLangAltQualifierFailed);
++#else
+ throw Exiv2::BasicError<char> (42 /* error code */);
++#endif
+ }
+
+
+@@ -697,7 +718,7 @@ EXTRACTOR_exiv2_extract_method (struct EXTRACTOR_ExtractContext *ec)
+ {
+ try
+ {
+-#if EXIV2_MAKE_VERSION(0,23,0) <= EXIV2_VERSION
++#if !EXIV2_TEST_VERSION(0,24,0)
+ Exiv2::LogMsg::setLevel (Exiv2::LogMsg::mute);
+ #endif
+ std::auto_ptr<Exiv2::BasicIo> eio(new ExtractorIO (ec));
diff --git a/gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch b/gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch
deleted file mode 100644
index e8f841c4fd..0000000000
--- a/gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-This patch includes
-
- * mingw-w64-headers/include/winnt.h: compile fixes for1 gcc-4.9.3
- * mingw-w64-headers/crt/math.h: Likewise
- * mingw-w64-headers/crt/float.h (FLT_EPSILON,DBL_EPSILON,LDBL_EPSILON): Add
- symbols.
- * mingw-w64-headers/crt/stat.h (S_ISLNK,S_ISSOCK,S_ISUID,S_ISGID,S_ISLINK):
- Add symbols.
- (lstat): Add function.
- * mingw-w64-headers/crt/_mingw_stat64.h: Likewise
- * mingw-w64-headers/crt/stdlib.h (realpath): Add function.
-
-Needed for building with gcc-4.9.3 and using with cross-libtool-2.4.6.
-
-Upstream status: not yet presented upstream.
-
-index 9c5cf87..74a8541 100644
---- a/mingw-w64-crt/misc/dirname.c
-+++ b/mingw-w64-crt/misc/dirname.c
-@@ -29,6 +29,12 @@
- #define __cdecl /* this may not be defined. */
- #endif
-
-+char *__cdecl
-+realpath(const char *name, char *resolved)
-+{
-+ return resolved ? strcpy (resolved, name) : strdup (name);
-+}
-+
- char * __cdecl
- dirname(char *path)
- {
-diff --git a/mingw-w64-headers/crt/_mingw_stat64.h b/mingw-w64-headers/crt/_mingw_stat64.h
-index 17e754c..7d2339b 100644
---- a/mingw-w64-headers/crt/_mingw_stat64.h
-+++ b/mingw-w64-headers/crt/_mingw_stat64.h
-@@ -2,13 +2,17 @@
-
- #ifdef _USE_32BIT_TIME_T
- #define _fstat32 _fstat
-+#define _lstat32 _lstat
- #define _stat32 _stat
- #define _wstat32 _wstat
- #define _fstat32i64 _fstati64
-+#define _lstat32i64 _lstati64
- #define _stat32i64 _stati64
- #define _wstat32i64 _wstati64
- #else
- #define _fstat _fstat64i32
-+#define _lstat _lstat64i32
-+#define _lstati64 _lstat64
- #define _fstati64 _fstat64
- #define _stat _stat64i32
- #define _stati64 _stat64
-diff --git a/mingw-w64-headers/crt/float.h b/mingw-w64-headers/crt/float.h
-index 5874f4e..bdf4ead 100644
---- a/mingw-w64-headers/crt/float.h
-+++ b/mingw-w64-headers/crt/float.h
-@@ -22,6 +22,15 @@
- #if (__GNUC__ < 4)
- #error Corrupt install of gcc-s internal headers, or search order was changed.
- #else
-+
-+ /* From gcc-4.9.3 float.h. */
-+ #undef FLT_EPSILON
-+ #undef DBL_EPSILON
-+ #undef LDBL_EPSILON
-+ #define FLT_EPSILON __FLT_EPSILON__
-+ #define DBL_EPSILON __DBL_EPSILON__
-+ #define LDBL_EPSILON __LDBL_EPSILON__
-+
- /* #include_next <float_ginclude.h> */
-
- /* Number of decimal digits, q, such that any floating-point number with q
-diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
-index 1e970f4..99a332f 100644
---- a/mingw-w64-headers/crt/math.h
-+++ b/mingw-w64-headers/crt/math.h
-@@ -216,6 +216,7 @@ extern "C" {
- #endif
- }
-
-+#if 0
- __CRT_INLINE long double __cdecl fabsl (long double x)
- {
- #ifdef __arm__
-@@ -226,6 +227,7 @@ extern "C" {
- return res;
- #endif
- }
-+#endif
-
- __CRT_INLINE double __cdecl fabs (double x)
- {
-@@ -905,7 +907,7 @@ __mingw_choose_expr ( \
- /* 7.12.7.3 */
- extern double __cdecl hypot (double, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005; /* in libmoldname.a */
- extern float __cdecl hypotf (float x, float y);
--#ifndef __CRT__NO_INLINE
-+#if 0 //ndef __CRT__NO_INLINE
- __CRT_INLINE float __cdecl hypotf (float x, float y) { return (float) hypot ((double)x, (double)y);}
- #endif
- extern long double __cdecl hypotl (long double, long double);
-diff --git a/mingw-w64-headers/crt/stdlib.h b/mingw-w64-headers/crt/stdlib.h
-index dfc5ae4..6f0fee3 100644
---- a/mingw-w64-headers/crt/stdlib.h
-+++ b/mingw-w64-headers/crt/stdlib.h
-@@ -8,6 +8,7 @@
-
- #include <crtdefs.h>
- #include <limits.h>
-+#include <string.h>
-
- #if defined (__USE_MINGW_ANSI_STDIO) && ((__USE_MINGW_ANSI_STDIO + 0) != 0) && !defined (__USE_MINGW_STRTOX)
- #define __USE_MINGW_STRTOX 1
-@@ -676,6 +677,8 @@ unsigned long __cdecl _lrotr(unsigned long,int);
-
- #endif /* !__NO_ISOCEXT */
-
-+char *__cdecl realpath (const char *name, char *resolved);
-+
- #ifdef __cplusplus
- }
- #endif
-diff --git a/mingw-w64-headers/crt/sys/stat.h b/mingw-w64-headers/crt/sys/stat.h
-index ed60219..d88b4f1 100644
---- a/mingw-w64-headers/crt/sys/stat.h
-+++ b/mingw-w64-headers/crt/sys/stat.h
-@@ -58,16 +58,21 @@ extern "C" {
- #include <_mingw_stat64.h>
-
- #define _S_IFMT 0xF000
-+#define _S_IFLNK 0xA000
-+#define _S_IFSOCK 0xC000
- #define _S_IFDIR 0x4000
- #define _S_IFCHR 0x2000
- #define _S_IFIFO 0x1000
- #define _S_IFREG 0x8000
-+#define _S_ISUID 0x0400
-+#define _S_ISGID 0x0200
- #define _S_IREAD 0x0100
- #define _S_IWRITE 0x0080
- #define _S_IEXEC 0x0040
-
- _CRTIMP int __cdecl _fstat32(int _FileDes,struct _stat32 *_Stat);
- _CRTIMP int __cdecl _stat32(const char *_Name,struct _stat32 *_Stat);
-+ static inline int __cdecl _lstat32(const char *_Name,struct _stat32 *_Stat) {return _stat32(_Name, _Stat);}
- _CRTIMP int __cdecl _fstat64(int _FileDes,struct _stat64 *_Stat);
- _CRTIMP int __cdecl _fstat32i64(int _FileDes,struct _stat32i64 *_Stat);
- int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat);
-@@ -97,6 +102,9 @@ extern "C" {
- _CRTIMP int __cdecl _stat64(const char *_Name,struct _stat64 *_Stat);
- _CRTIMP int __cdecl _stat32i64(const char *_Name,struct _stat32i64 *_Stat);
- int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat);
-+ static inline int __cdecl _lstat64(const char *_Name,struct _stat64 *_Stat) {return _stat64(_Name, _Stat);}
-+ static inline int __cdecl _lstat32i64(const char *_Name,struct _stat32i64 *_Stat) {return _stat32i64(_Name, _Stat);}
-+ static inline int __cdecl _lstat64i32(const char *_Name,struct _stat64i32 *_Stat) {return _stat64i32(_Name, _Stat);}
- #ifndef __CRT__NO_INLINE
- __CRT_INLINE int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat)
- {
-@@ -132,6 +140,8 @@ extern "C" {
- #ifndef NO_OLDNAMES
- #define _S_IFBLK 0x3000 /* Block: Is this ever set under w32? */
-
-+#define S_IFLNK _S_IFLNK
-+#define S_IFSOCK _S_IFSOCK
- #define S_IFMT _S_IFMT
- #define S_IFDIR _S_IFDIR
- #define S_IFCHR _S_IFCHR
-@@ -162,6 +172,11 @@ extern "C" {
- #define S_IXOTH (S_IXGRP >> 3)
- #define S_IRWXO (S_IRWXG >> 3)
-
-+#define S_ISUID _S_ISUID
-+#define S_ISGID _S_ISGID
-+
-+#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
-+#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
- #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
- #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
- #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
-@@ -174,6 +189,7 @@ extern "C" {
- int __cdecl stat(const char *_Filename,struct stat *_Stat);
- int __cdecl fstat(int _Desc,struct stat *_Stat);
- int __cdecl wstat(const wchar_t *_Filename,struct stat *_Stat);
-+static inline int __cdecl lstat(const char *_Filename,struct stat *_Stat){return stat(_Filename, _Stat);}
-
- #ifndef __CRT__NO_INLINE
- #ifdef _USE_32BIT_TIME_T
-@@ -262,9 +278,11 @@ __CRT_INLINE int __cdecl
-
- #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
- #ifdef _USE_32BIT_TIME_T
-+#define lstat _lstat32i64
- #define stat _stat32i64
- #define fstat _fstat32i64
- #else
-+#define lstat _lstat64
- #define stat _stat64
- #define fstat _fstat64
- #endif
-diff --git a/mingw-w64-headers/include/winnt.h b/mingw-w64-headers/include/winnt.h
-index 52af29b..8626396 100644
---- a/mingw-w64-headers/include/winnt.h
-+++ b/mingw-w64-headers/include/winnt.h
-@@ -6895,7 +6895,12 @@ __buildmemorybarrier()
- DWORD Reg : 3;
- DWORD R : 1;
- DWORD L : 1;
-+/* C is used as a const specifier */
-+#define save_C C
-+#undef C
- DWORD C : 1;
-+#define C save_C
-+#undef save_C
- DWORD StackAdjust : 10;
- } DUMMYSTRUCTNAME;
- } DUMMYUNIONNAME;
diff --git a/gnu/packages/patches/mingw-w64-6.0.0-gcc.patch b/gnu/packages/patches/mingw-w64-6.0.0-gcc.patch
new file mode 100644
index 0000000000..036cf79f91
--- /dev/null
+++ b/gnu/packages/patches/mingw-w64-6.0.0-gcc.patch
@@ -0,0 +1,65 @@
+This patch includes
+
+ * mingw-w64-headers/include/winnt.h: compile fixes for1 gcc-4.9.3
+ * mingw-w64-headers/crt/math.h: Likewise
+ * mingw-w64-headers/crt/float.h (FLT_EPSILON,DBL_EPSILON,LDBL_EPSILON): Add
+ symbols.
+ * mingw-w64-headers/crt/stat.h (S_ISLNK,S_ISSOCK,S_ISUID,S_ISGID,S_ISLINK):
+ Add symbols.
+ (lstat): Add function.
+ * mingw-w64-headers/crt/_mingw_stat64.h: Likewise
+ * mingw-w64-headers/crt/stdlib.h (realpath): Add function.
+
+Needed for building with gcc-4.9.3 and using with cross-libtool-2.4.6.
+
+Upstream status: not yet presented upstream.
+
+diff --git a/mingw-w64-headers/crt/float.h b/mingw-w64-headers/crt/float.h
+index 5874f4e..bdf4ead 100644
+--- a/mingw-w64-headers/crt/float.h
++++ b/mingw-w64-headers/crt/float.h
+@@ -22,6 +22,15 @@
+ #if (__GNUC__ < 4)
+ #error Corrupt install of gcc-s internal headers, or search order was changed.
+ #else
++
++ /* From gcc-4.9.3 float.h. */
++ #undef FLT_EPSILON
++ #undef DBL_EPSILON
++ #undef LDBL_EPSILON
++ #define FLT_EPSILON __FLT_EPSILON__
++ #define DBL_EPSILON __DBL_EPSILON__
++ #define LDBL_EPSILON __LDBL_EPSILON__
++
+ /* #include_next <float_ginclude.h> */
+
+ /* Number of decimal digits, q, such that any floating-point number with q
+diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
+index 1e970f4..99a332f 100644
+--- a/mingw-w64-headers/crt/math.h
++++ b/mingw-w64-headers/crt/math.h
+@@ -216,6 +216,7 @@ extern "C" {
+ #endif
+ }
+
++#if 0
+ __CRT_INLINE long double __cdecl fabsl (long double x)
+ {
+ #ifdef __arm__
+@@ -226,6 +227,7 @@ extern "C" {
+ return res;
+ #endif
+ }
++#endif
+
+ __CRT_INLINE double __cdecl fabs (double x)
+ {
+@@ -905,7 +907,7 @@ __mingw_choose_expr ( \
+ /* 7.12.7.3 */
+ extern double __cdecl hypot (double, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005; /* in libmoldname.a */
+ extern float __cdecl hypotf (float x, float y);
+-#ifndef __CRT__NO_INLINE
++#if 0 //ndef __CRT__NO_INLINE
+ __CRT_INLINE float __cdecl hypotf (float x, float y) { return (float) hypot ((double)x, (double)y);}
+ #endif
+ extern long double __cdecl hypotl (long double, long double);