summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Theodore <tonyt@logyst.com>2018-04-06 04:40:20 (GMT)
committerTony Theodore <tonyt@logyst.com>2018-04-08 02:19:02 (GMT)
commitab0b797479a9ac567dbb7fb0585750f158eff006 (patch)
tree714fd5f49be6e5a2ea69c270c744800652292330
parente9719b6c3dbdf14fbf5955c0ccabea5dcc913e3b (diff)
downloadmxe-ab0b797479a9ac567dbb7fb0585750f158eff006.zip
mxe-ab0b797479a9ac567dbb7fb0585750f158eff006.tar.gz
mxe-ab0b797479a9ac567dbb7fb0585750f158eff006.tar.bz2
gcc: update and re-enable coverage
see: http://lists.nongnu.org/archive/html/mingw-cross-env-list/2018-04/msg00003.html fixes #1665
-rw-r--r--src/gcc-1-fixes.patch309
-rw-r--r--src/gcc-test.c12
-rw-r--r--src/gcc.mk16
3 files changed, 55 insertions, 282 deletions
diff --git a/src/gcc-1-fixes.patch b/src/gcc-1-fixes.patch
index 292278f..9c14652 100644
--- a/src/gcc-1-fixes.patch
+++ b/src/gcc-1-fixes.patch
@@ -27,281 +27,34 @@ index 1111111..2222222 100644
struct cache_desc
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: iains <iains@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Mon, 25 Sep 2017 23:49:58 +0000
-Subject: [PATCH 2/2] Fix 81037 by adjutng headers
-
-taken from:
-https://github.com/gcc-mirror/gcc/commit/8e49ac832c6ef83afa52e59f0e7e0e6151f5bd3d
-
-2017-09-26 Iain Sandoe <iain@codesourcery.com>
- Ryan Mounce <ryan@mounce.com.au>
-
- PR bootstrap/81037
- Backport from mainline r235362
- 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * system.h (list, map, set, vector): Include conditionally.
- * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
- * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
- * ipa-icf.c (INCLUDE_LIST): Define.
- * ipa-icf-gimple.c (INCLUDE_LIST): Define.
- * config/sh/sh.c (INCLUDE_VECTOR): Define.
- * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
- (INCLUDE_LIST, INCLUDE_VECTOR): Define.
- * fortran/trans-common.c (INCLUDE_MAP): Define.
-
- Backport from mainline r235361
- 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * auto-profile.c: Remove <string.h> include.
- * diagnostic.c: Remove <new> include.
- * genmatch.c: Likewise.
- * pretty-print.c: Likewise.
- * toplev.c: Likewise
- * c/c-objc-common.c: Likewise.
- * cp/error.c: Likewise.
- * fortran/error.c: Likewise.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@253181 138bc75d-0d04-0410-961f-82ee72b054a4
-
-diff --git a/gcc/auto-profile.c b/gcc/auto-profile.c
-index 1111111..2222222 100644
---- a/gcc/auto-profile.c
-+++ b/gcc/auto-profile.c
-@@ -19,12 +19,10 @@ along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
- #include "config.h"
-+#define INCLUDE_MAP
-+#define INCLUDE_SET
- #include "system.h"
-
--#include <string.h>
--#include <map>
--#include <set>
--
- #include "coretypes.h"
- #include "hash-set.h"
- #include "machmode.h"
-diff --git a/gcc/c/c-objc-common.c b/gcc/c/c-objc-common.c
-index 1111111..2222222 100644
---- a/gcc/c/c-objc-common.c
-+++ b/gcc/c/c-objc-common.c
-@@ -38,8 +38,6 @@ along with GCC; see the file COPYING3. If not see
- #include "langhooks.h"
- #include "c-objc-common.h"
-
--#include <new> // For placement new.
--
- static bool c_tree_printer (pretty_printer *, text_info *, const char *,
- int, bool, bool, bool);
-
-diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
-index 1111111..2222222 100644
---- a/gcc/config/sh/sh.c
-+++ b/gcc/config/sh/sh.c
-@@ -20,9 +20,9 @@ along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
- #include <sstream>
--#include <vector>
-
- #include "config.h"
-+#define INCLUDE_VECTOR
- #include "system.h"
- #include "coretypes.h"
- #include "tm.h"
-diff --git a/gcc/config/sh/sh_treg_combine.cc b/gcc/config/sh/sh_treg_combine.cc
-index 1111111..2222222 100644
---- a/gcc/config/sh/sh_treg_combine.cc
-+++ b/gcc/config/sh/sh_treg_combine.cc
-@@ -19,6 +19,9 @@ along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
- #include "config.h"
-+#define INCLUDE_ALGORITHM
-+#define INCLUDE_LIST
-+#define INCLUDE_VECTOR
- #include "system.h"
- #include "coretypes.h"
- #include "machmode.h"
-@@ -65,10 +68,6 @@ along with GCC; see the file COPYING3. If not see
- #include "stmt.h"
- #include "expr.h"
-
--#include <algorithm>
--#include <list>
--#include <vector>
--
- /*
- This pass tries to optimize for example this:
- mov.l @(4,r4),r1
-diff --git a/gcc/cp/error.c b/gcc/cp/error.c
-index 1111111..2222222 100644
---- a/gcc/cp/error.c
-+++ b/gcc/cp/error.c
-@@ -44,8 +44,6 @@ along with GCC; see the file COPYING3. If not see
- #include "ubsan.h"
- #include "internal-fn.h"
-
--#include <new> // For placement-new.
--
- #define pp_separate_with_comma(PP) pp_cxx_separate_with (PP, ',')
- #define pp_separate_with_semicolon(PP) pp_cxx_separate_with (PP, ';')
-
-diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
-index 1111111..2222222 100644
---- a/gcc/diagnostic.c
-+++ b/gcc/diagnostic.c
-@@ -41,8 +41,6 @@ along with GCC; see the file COPYING3. If not see
- # include <sys/ioctl.h>
- #endif
-
--#include <new> // For placement new.
--
- #define pedantic_warning_kind(DC) \
- ((DC)->pedantic_errors ? DK_ERROR : DK_WARNING)
- #define permissive_error_kind(DC) ((DC)->permissive ? DK_WARNING : DK_ERROR)
-diff --git a/gcc/fortran/error.c b/gcc/fortran/error.c
-index 1111111..2222222 100644
---- a/gcc/fortran/error.c
-+++ b/gcc/fortran/error.c
-@@ -34,8 +34,6 @@ along with GCC; see the file COPYING3. If not see
- #include "diagnostic-color.h"
- #include "tree-diagnostic.h" /* tree_diagnostics_defaults */
-
--#include <new> /* For placement-new */
--
- static int suppress_errors = 0;
-
- static bool warnings_not_errors = false;
-diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c
-index 1111111..2222222 100644
---- a/gcc/fortran/trans-common.c
-+++ b/gcc/fortran/trans-common.c
-@@ -92,8 +92,8 @@ along with GCC; see the file COPYING3. If not see
- is examined for still-unused equivalence conditions. We create a
- block for each merged equivalence list. */
-
--#include <map>
- #include "config.h"
-+#define INCLUDE_MAP
- #include "system.h"
- #include "coretypes.h"
- #include "tm.h"
-diff --git a/gcc/genmatch.c b/gcc/genmatch.c
-index 1111111..2222222 100644
---- a/gcc/genmatch.c
-+++ b/gcc/genmatch.c
-@@ -22,7 +22,6 @@ along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
- #include "bconfig.h"
--#include <new>
- #include "system.h"
- #include "coretypes.h"
- #include "ggc.h"
-diff --git a/gcc/graphite-isl-ast-to-gimple.c b/gcc/graphite-isl-ast-to-gimple.c
-index 1111111..2222222 100644
---- a/gcc/graphite-isl-ast-to-gimple.c
-+++ b/gcc/graphite-isl-ast-to-gimple.c
-@@ -38,6 +38,7 @@ extern "C" {
- #endif
- #endif
-
-+#define INCLUDE_MAP
- #include "system.h"
- #include "coretypes.h"
- #include "hash-set.h"
-@@ -75,7 +76,6 @@ extern "C" {
- #include "tree-scalar-evolution.h"
- #include "gimple-ssa.h"
- #include "tree-into-ssa.h"
--#include <map>
-
- #ifdef HAVE_isl
- #include "graphite-poly.h"
-diff --git a/gcc/ipa-icf-gimple.c b/gcc/ipa-icf-gimple.c
-index 1111111..2222222 100644
---- a/gcc/ipa-icf-gimple.c
-+++ b/gcc/ipa-icf-gimple.c
-@@ -20,6 +20,7 @@ along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
- #include "config.h"
-+#define INCLUDE_LIST
- #include "system.h"
- #include "coretypes.h"
- #include "hash-set.h"
-@@ -74,7 +75,6 @@ along with GCC; see the file COPYING3. If not see
- #include "cgraph.h"
- #include "data-streamer.h"
- #include "ipa-utils.h"
--#include <list>
- #include "tree-ssanames.h"
- #include "tree-eh.h"
- #include "builtins.h"
-diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
-index 1111111..2222222 100644
---- a/gcc/ipa-icf.c
-+++ b/gcc/ipa-icf.c
-@@ -52,8 +52,8 @@ along with GCC; see the file COPYING3. If not see
- */
-
- #include "config.h"
-+#define INCLUDE_LIST
- #include "system.h"
--#include <list>
- #include "coretypes.h"
- #include "hash-set.h"
- #include "machmode.h"
-diff --git a/gcc/pretty-print.c b/gcc/pretty-print.c
-index 1111111..2222222 100644
---- a/gcc/pretty-print.c
-+++ b/gcc/pretty-print.c
-@@ -25,8 +25,6 @@ along with GCC; see the file COPYING3. If not see
- #include "pretty-print.h"
- #include "diagnostic-color.h"
-
--#include <new> // For placement-new.
--
- #if HAVE_ICONV
- #include <iconv.h>
- #endif
-diff --git a/gcc/system.h b/gcc/system.h
-index 1111111..2222222 100644
---- a/gcc/system.h
-+++ b/gcc/system.h
-@@ -215,6 +215,18 @@ extern int errno;
- #endif
-
- #ifdef __cplusplus
-+# ifdef INCLUDE_LIST
-+# include <list>
-+# endif
-+# ifdef INCLUDE_MAP
-+# include <map>
-+# endif
-+# ifdef INCLUDE_SET
-+# include <set>
-+# endif
-+# ifdef INCLUDE_VECTOR
-+# include <vector>
-+# endif
- # include <algorithm>
- # include <cstring>
- # include <utility>
-diff --git a/gcc/toplev.c b/gcc/toplev.c
-index 1111111..2222222 100644
---- a/gcc/toplev.c
-+++ b/gcc/toplev.c
-@@ -135,8 +135,6 @@ along with GCC; see the file COPYING3. If not see
- #define HAVE_prologue 0
- #endif
-
--#include <new>
--
- static void general_init (const char *, bool);
- static void do_compile ();
- static void process_options (void);
+From: Tony Theodore <tonyt@logyst.com>
+Date: Fri, 6 Apr 2018 13:40:22 +1000
+Subject: [PATCH 2/2] remove hard-coded mingw from include path
+
+
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index 1111111..2222222 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -1713,7 +1713,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
+ tmake_file="${tmake_file} i386/t-mingw-w32"
+ ;;
+ esac
+- native_system_header_dir=/mingw/include
++ native_system_header_dir=/include
+ target_gtfiles="\$(srcdir)/config/i386/winnt.c"
+ extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
+ case ${target} in
+diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h
+index 1111111..2222222 100644
+--- a/gcc/config/i386/mingw32.h
++++ b/gcc/config/i386/mingw32.h
+@@ -170,7 +170,7 @@ along with GCC; see the file COPYING3. If not see
+ /* For native mingw-version we need to take care that NATIVE_SYSTEM_HEADER_DIR
+ macro contains POSIX-style path. See bug 52947. */
+ #undef NATIVE_SYSTEM_HEADER_DIR
+-#define NATIVE_SYSTEM_HEADER_DIR "/mingw/include"
++#define NATIVE_SYSTEM_HEADER_DIR "/include"
+
+ /* Output STRING, a string representing a filename, to FILE.
+ We canonicalize it to be in Unix format (backslashes are replaced
diff --git a/src/gcc-test.c b/src/gcc-test.c
new file mode 100644
index 0000000..f1bc5d4
--- /dev/null
+++ b/src/gcc-test.c
@@ -0,0 +1,12 @@
+/*
+ * This file is part of MXE. See LICENSE.md for licensing information.
+ */
+
+#include <stdio.h>
+
+int main(int argc, char** argv) {
+ if (argc >= 2) {
+ printf("argv[1] = %s\n", argv[1]);
+ }
+ return 0;
+}
diff --git a/src/gcc.mk b/src/gcc.mk
index 1eb203a..97333c9 100644
--- a/src/gcc.mk
+++ b/src/gcc.mk
@@ -3,17 +3,18 @@
PKG := gcc
$(PKG)_WEBSITE := https://gcc.gnu.org/
$(PKG)_DESCR := GCC
-$(PKG)_IGNORE := 6%
-$(PKG)_VERSION := 5.4.0
-$(PKG)_CHECKSUM := 608df76dec2d34de6558249d8af4cbee21eceddbcb580d666f7a5a583ca3303a
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 5.5.0
+$(PKG)_CHECKSUM := 530cea139d82fe542b358961130c69cfde8b3d14556370b65823d2f91f0ced87
$(PKG)_SUBDIR := gcc-$($(PKG)_VERSION)
-$(PKG)_FILE := gcc-$($(PKG)_VERSION).tar.bz2
+$(PKG)_FILE := gcc-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := https://ftp.gnu.org/gnu/gcc/gcc-$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_URL_2 := https://www.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := binutils mingw-w64 $(addprefix $(BUILD)~,gmp isl mpc mpfr)
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://ftp.gnu.org/gnu/gcc/?C=M;O=D' | \
+ grep -v 'gcc-6\|gcc-7' | \
$(SED) -n 's,.*<a href="gcc-\([0-9][^"]*\)/".*,\1,p' | \
$(SORT) -V | \
tail -1
@@ -27,6 +28,7 @@ define $(PKG)_CONFIGURE
--build='$(BUILD)' \
--prefix='$(PREFIX)' \
--libdir='$(PREFIX)/lib' \
+ --with-sysroot='$(PREFIX)/$(TARGET)' \
--enable-languages='c,c++,objc,fortran' \
--enable-version-specific-runtime-libs \
--with-gcc \
@@ -118,6 +120,12 @@ define $(PKG)_POST_BUILD
# cc1libdir isn't passed to subdirs so install correctly and rm
$(MAKE) -C '$(BUILD_DIR)/libcc1' -j 1 install cc1libdir='$(PREFIX)/lib/gcc/$(TARGET)/$($(PKG)_VERSION)'
-rm -f '$(PREFIX)/lib/'libcc1*
+
+ # compile test
+ cd '$(PREFIX)/$(TARGET)/bin' && '$(TARGET)-gcc' \
+ -W -Wall -Werror -ansi -pedantic \
+ --coverage -fprofile-dir=. -v \
+ '$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe'
endef
$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst @gcc-crt-config-opts@,--disable-lib32,$($(PKG)_BUILD_mingw-w64))