mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: mingw-w64: Update to 6.0.0.
* gnu/packages/mingw.scm (mingw-w64): Update to 6.0.0. * gnu/packages/patches/mingw-w64-6.0.0-gcc.patch: New file. * gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch: Delete it. * gnu/local.mk (dist_patch_DATA): Add new patch. Delete old patch. * gnu/build/cross-toolchain.scm (set-cross-path/mingw): Add additional autoconf-like substitutions.
This commit is contained in:
parent
dd2031169a
commit
07d7175406
5 changed files with 74 additions and 223 deletions
|
@ -130,7 +130,11 @@ (define (unpacked-mingw-dir)
|
|||
|
||||
(substitute* (string-append mingw-headers "/crt/_mingw.h")
|
||||
(("@MINGW_HAS_SECURE_API@")
|
||||
"#define MINGW_HAS_SECURE_API 1"))
|
||||
"#define MINGW_HAS_SECURE_API 1")
|
||||
(("@DEFAULT_WIN32_WINNT@")
|
||||
"0x502")
|
||||
(("@DEFAULT_MSVCRT_VERSION@")
|
||||
"0x700"))
|
||||
|
||||
(let ((cpath (string-append mingw-headers "/include"
|
||||
":" mingw-headers "/crt"
|
||||
|
|
|
@ -1098,7 +1098,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/meson-for-build-rpath.patch \
|
||||
%D%/packages/patches/metabat-fix-compilation.patch \
|
||||
%D%/packages/patches/mhash-keygen-test-segfault.patch \
|
||||
%D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \
|
||||
%D%/packages/patches/mingw-w64-6.0.0-gcc.patch \
|
||||
%D%/packages/patches/mpc123-initialize-ao.patch \
|
||||
%D%/packages/patches/module-init-tools-moduledir.patch \
|
||||
%D%/packages/patches/monero-use-system-miniupnpc.patch \
|
||||
|
|
|
@ -36,15 +36,15 @@ (define-public (make-mingw-w64 machine)
|
|||
(let ((triplet (string-append machine "-" "w64-mingw32")))
|
||||
(package
|
||||
(name (string-append "mingw-w64" "-" machine))
|
||||
(version "5.0.4")
|
||||
(version "6.0.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://sourceforge.net/projects/mingw-w64/files/mingw-w64/"
|
||||
"mingw-w64-release/mingw-w64-v" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm"))
|
||||
(patches (search-patches "mingw-w64-5.0rc2-gcc-4.9.3.patch"))))
|
||||
(base32 "1w28mynv500y03h92nh87rgw3fnp82qwnjbxrrzqkmr63q812pl0"))
|
||||
(patches (search-patches "mingw-w64-6.0.0-gcc.patch"))))
|
||||
(native-inputs `(("xgcc-core" ,(cross-gcc triplet))
|
||||
("xbinutils" ,(cross-binutils triplet))))
|
||||
(build-system gnu-build-system)
|
||||
|
|
|
@ -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;
|
65
gnu/packages/patches/mingw-w64-6.0.0-gcc.patch
Normal file
65
gnu/packages/patches/mingw-w64-6.0.0-gcc.patch
Normal file
|
@ -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);
|
Loading…
Reference in a new issue