From 670a6d300dd77f9a71a791b493831be2442b1bad Mon Sep 17 00:00:00 2001 From: Boris Pek Date: Wed, 27 Apr 2016 16:23:59 +0300 Subject: Add gcc6 plugin --- plugins/gcc6/gcc6-overlay.mk | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/gcc6/gcc6-overlay.mk diff --git a/plugins/gcc6/gcc6-overlay.mk b/plugins/gcc6/gcc6-overlay.mk new file mode 100644 index 0000000..5ca9207 --- /dev/null +++ b/plugins/gcc6/gcc6-overlay.mk @@ -0,0 +1,25 @@ +# This file is part of MXE. +# See index.html for further information. + +# override relevant cloog, isl, and gcc variables changed in: +# https://github.com/mxe/mxe/pull/965 +# +# simply expanded variables (*_SUBDIR, *_FILE, etc.) need to be set + +PKG := cloog +$(PKG)_TARGETS := $(MXE_TARGETS) + +PKG := isl +$(PKG)_VERSION := 0.16.1 +$(PKG)_CHECKSUM := 412538bb65c799ac98e17e8cfcdacbb257a57362acfaaff254b0fcae970126d2 +$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION) +$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2 +$(PKG)_URL := http://isl.gforge.inria.fr/$($(PKG)_FILE) +$(PKG)_URL_2 := ftp://gcc.gnu.org/pub/gcc/infrastructure/$($(PKG)_FILE) + +PKG := gcc +$(PKG)_VERSION := 6.1.0 +$(PKG)_CHECKSUM := 09c4c85cabebb971b1de732a0219609f93fc0af5f86f6e437fd8d7f832f1a351 +$(PKG)_SUBDIR := gcc-$($(PKG)_VERSION) +$(PKG)_FILE := gcc-$($(PKG)_VERSION).tar.bz2 +$(PKG)_URL := http://ftp.gnu.org/pub/gnu/gcc/gcc-$($(PKG)_VERSION)/$($(PKG)_FILE) -- cgit v0.12 From 0cbf0b5358084141c883a93f673d5e46c7497def Mon Sep 17 00:00:00 2001 From: Boris Pek Date: Wed, 27 Apr 2016 16:32:37 +0300 Subject: gcc5 plugin: add reserve url to isl sources --- plugins/gcc5/gcc5-overlay.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/gcc5/gcc5-overlay.mk b/plugins/gcc5/gcc5-overlay.mk index 3da3171..894952b 100644 --- a/plugins/gcc5/gcc5-overlay.mk +++ b/plugins/gcc5/gcc5-overlay.mk @@ -16,6 +16,7 @@ $(PKG)_CHECKSUM := 8ceebbf4d9a81afa2b4449113cee4b7cb14a687d7a549a963deb5e2a41458 $(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION) $(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2 $(PKG)_URL := http://isl.gforge.inria.fr/$($(PKG)_FILE) +$(PKG)_URL_2 := ftp://gcc.gnu.org/pub/gcc/infrastructure/$($(PKG)_FILE) PKG := gcc $(PKG)_VERSION := 5.3.0 -- cgit v0.12 From 282e6b7907c9bf0296c4a697b8b9a29c8353095e Mon Sep 17 00:00:00 2001 From: Boris Pek Date: Thu, 28 Apr 2016 15:25:01 +0300 Subject: gcc6 plugin: add README.md with notes about new GCC --- plugins/gcc6/README.md | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 plugins/gcc6/README.md diff --git a/plugins/gcc6/README.md b/plugins/gcc6/README.md new file mode 100644 index 0000000..128a374 --- /dev/null +++ b/plugins/gcc6/README.md @@ -0,0 +1,69 @@ +# Notes about GCC version 6.1.0 and later + +GCC 6.1 is released with a number of major changes +[[1](https://gcc.gnu.org/ml/gcc-announce/2016/msg00000.html)] +[[2](https://gcc.gnu.org/gcc-6/changes.html)] +. The most notable change is: +> The `C++` frontend now defaults to `C++14` standard instead of `C++98` it has +> been defaulting to previously, for compiling older `C++` code that might +> require either explicitly compiling with selected older `C++` standards, +> or might require some code adjustment, see +> [[3](http://gcc.gnu.org/gcc-6/porting_to.html)] +> for details. + +So it is expected that some of MXE packages will fails to build from source +(FTBFS) with default GCC 6.x options. As a workaround we may add `-std=gnu++11` +or `-std=gnu++98` into `CXXFLAGS` for building problematic packages. And this +will not affect the builds with older versions of GCC. + +For example, in autotools based projects: +``` +... +$(PKG)_CXXFLAGS := -std=gnu++11 +... + cd '$(1)' && \ + CXXFLAGS="$($(PKG)_CXXFLAGS)" \ + ./configure \ +... +``` + +Just after adding this plugin (gcc6) some packages were FTBFS: +* boost +* cgal +* dcmtk +* fdk-aac +* fdk-aac +* flann +* freeimage +* glib +* gtkimageview +* gtkmm2 +* gtkmm3 +* itk +* jsoncpp +* json_spirit +* libical +* librsvg +* libxml++ +* log4cxx +* opencv +* ossim +* qt +* qt3d +* sdl_sound +* smpeg2 +* ucl +* vtk +* vtk6 +* wxwidgets + +See logs +[[4](https://gist.github.com/starius/81e25169242155aa3ef6be1a733b9812)] +[[5](https://gist.github.com/c01ef084eeb85781bd1eb7f6b1e12192)] +for details. + +For now, these packages might be already fixed by upstream developers, by +additional patches or using above mentioned workaround. If some MXE packages +or your personal projects are still FTBFS you may look how other packages were +fixed and use similar approach. + -- cgit v0.12 From 58c2c96b967957a1a2df062f13dd4a5817aae792 Mon Sep 17 00:00:00 2001 From: Boris Pek Date: Thu, 28 Apr 2016 17:16:27 +0300 Subject: glib: update patch: fix build with GCC >= 6.x --- src/glib-1-fixes.patch | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/glib-1-fixes.patch b/src/glib-1-fixes.patch index d1cdbad..8709dad 100644 --- a/src/glib-1-fixes.patch +++ b/src/glib-1-fixes.patch @@ -580,3 +580,23 @@ index 1111111..2222222 100644 dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. + + +From: Boris Pek +Date: Thu, 28 Apr 2016 16:48:12 +0300 +Subject: [PATCH] fix build with GCC >= 6.x + +See plugins/gcc6/README.md + +diff --git a/gio/gregistrysettingsbackend.c b/gio/gregistrysettingsbackend.c +--- a/gio/gregistrysettingsbackend.c ++++ b/gio/gregistrysettingsbackend.c +@@ -228,7 +228,7 @@ + if (result_code == ERROR_KEY_DELETED) + trace ("(%s)", win32_message); + else +- g_message (win32_message); ++ g_message ("%s", win32_message); + }; + + -- cgit v0.12 From 0bc73f739d7a8f2bc4e5100da62a0d894cbc9e38 Mon Sep 17 00:00:00 2001 From: Boris Pek Date: Thu, 28 Apr 2016 17:45:42 +0300 Subject: jsoncpp: add workaround for builds with GCC >= 6.x --- src/jsoncpp.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/jsoncpp.mk b/src/jsoncpp.mk index c812fa1..532d20b 100644 --- a/src/jsoncpp.mk +++ b/src/jsoncpp.mk @@ -10,6 +10,9 @@ $(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz $(PKG)_URL := https://github.com/open-source-parsers/jsoncpp/archive/$($(PKG)_VERSION).tar.gz $(PKG)_DEPS := gcc +# workaround for builds with GCC >= 6.x +$(PKG)_CXXFLAGS := -Wno-error=conversion -Wno-error=shift-negative-value + define $(PKG)_UPDATE $(WGET) -q -O- 'https://github.com/open-source-parsers/jsoncpp/archive/' | \ $(SED) -n 's,.*/\([0-9][^"]*\)/"\.tar.*,\1,p' | \ @@ -22,6 +25,7 @@ define $(PKG)_BUILD cd '$(1)/build' && cmake .. \ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF \ + -DCMAKE_CXX_FLAGS="$($(PKG)_CXXFLAGS)" \ -DBUILD_STATIC_LIBS=$(if $(BUILD_STATIC),true,false) \ -DBUILD_SHARED_LIBS=$(if $(BUILD_STATIC),false,true) $(MAKE) -C '$(1)/build' -j '$(JOBS)' install -- cgit v0.12 From 7ca2bceedd41c0919a30f900b6b35393bc4d1507 Mon Sep 17 00:00:00 2001 From: Boris Pek Date: Fri, 29 Apr 2016 01:31:10 +0300 Subject: boost: add workaround for builds with GCC >= 6.x --- src/boost.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/src/boost.mk b/src/boost.mk index fcbc594..d73379e 100644 --- a/src/boost.mk +++ b/src/boost.mk @@ -46,6 +46,7 @@ define $(PKG)_BUILD threading=multi \ variant=release \ toolset=gcc-mxe \ + cxxflags=$(if $(findstring posix,$(MXE_GCC_THREADS)),-std=gnu++11,-std=gnu++98) \ --layout=tagged \ --disable-icu \ --without-mpi \ -- cgit v0.12 From 5aac1c3335c9c725e35337ff423d55f0d8f0fa56 Mon Sep 17 00:00:00 2001 From: Boris Pek Date: Fri, 29 Apr 2016 01:32:30 +0300 Subject: qt: add workaround for builds with GCC >= 6.x --- src/qt.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qt.mk b/src/qt.mk index 5bf3b08..14198e7 100644 --- a/src/qt.mk +++ b/src/qt.mk @@ -24,6 +24,7 @@ define $(PKG)_BUILD OPENSSL_LIBS="`'$(TARGET)-pkg-config' --libs-only-l openssl`" \ PSQL_LIBS="-lpq -lsecur32 `'$(TARGET)-pkg-config' --libs-only-l openssl` -lws2_32" \ SYBASE_LIBS="-lsybdb `'$(TARGET)-pkg-config' --libs-only-l gnutls` -liconv -lws2_32" \ + CXXFLAGS="-std=gnu++98" \ ./configure \ -opensource \ -confirm-license \ -- cgit v0.12 From 1a42cbc7522483ca8c1fc86b78a4618b9a59f47a Mon Sep 17 00:00:00 2001 From: Boris Pek Date: Fri, 29 Apr 2016 12:26:25 +0300 Subject: smpeg2: add workaround for builds with GCC >= 6.x --- src/smpeg2.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/smpeg2.mk b/src/smpeg2.mk index e711c28..4d085d9 100644 --- a/src/smpeg2.mk +++ b/src/smpeg2.mk @@ -27,7 +27,7 @@ define $(PKG)_BUILD --disable-sdltest \ --disable-gtk-player \ --disable-opengl-player \ - CFLAGS='-ffriend-injection' + CFLAGS='-ffriend-injection -Wno-narrowing' $(MAKE) -C '$(1)' -j '$(JOBS)' install $(MXE_DISABLE_CRUFT) '$(TARGET)-gcc' \ -- cgit v0.12 From 57cb6bb571d650feb5549e88cbbdf2c4dc18b878 Mon Sep 17 00:00:00 2001 From: Boris Pek Date: Fri, 29 Apr 2016 12:27:31 +0300 Subject: smpeg: add workaround for builds with GCC >= 6.x --- src/smpeg.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/smpeg.mk b/src/smpeg.mk index 852bd80..be276e7 100644 --- a/src/smpeg.mk +++ b/src/smpeg.mk @@ -29,7 +29,7 @@ define $(PKG)_BUILD --disable-sdltest \ --disable-gtk-player \ --disable-opengl-player \ - CFLAGS='-ffriend-injection' + CFLAGS='-ffriend-injection -Wno-narrowing' $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= '$(TARGET)-gcc' \ -- cgit v0.12 From 970fa1e6176bbfded601b5bd0d2716a233e49247 Mon Sep 17 00:00:00 2001 From: Boris Pek Date: Sun, 1 May 2016 03:09:29 +0300 Subject: gcc6 plugin: update README.md --- plugins/gcc6/README.md | 74 ++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/plugins/gcc6/README.md b/plugins/gcc6/README.md index 128a374..9cbd7cd 100644 --- a/plugins/gcc6/README.md +++ b/plugins/gcc6/README.md @@ -27,43 +27,41 @@ $(PKG)_CXXFLAGS := -std=gnu++11 ... ``` -Just after adding this plugin (gcc6) some packages were FTBFS: -* boost -* cgal -* dcmtk -* fdk-aac -* fdk-aac -* flann -* freeimage -* glib -* gtkimageview -* gtkmm2 -* gtkmm3 -* itk -* jsoncpp -* json_spirit -* libical -* librsvg -* libxml++ -* log4cxx -* opencv -* ossim -* qt -* qt3d -* sdl_sound -* smpeg2 -* ucl -* vtk -* vtk6 -* wxwidgets +Just after adding this plugin (gcc6) some packages were FTBFS. For now, these +packages might be already fixed by upstream developers, by additional patches +or using above mentioned workaround. See the table below for details. If some +MXE packages or your personal projects are still FTBFS you may look how other +packages were fixed and use similar approach. -See logs -[[4](https://gist.github.com/starius/81e25169242155aa3ef6be1a733b9812)] -[[5](https://gist.github.com/c01ef084eeb85781bd1eb7f6b1e12192)] -for details. - -For now, these packages might be already fixed by upstream developers, by -additional patches or using above mentioned workaround. If some MXE packages -or your personal projects are still FTBFS you may look how other packages were -fixed and use similar approach. +| package | target | fixed in commit | +| ------------------ | -------------------- | ---------------------------------------------------- | +| boost | all | [7ca2bce](https://github.com/mxe/mxe/commit/7ca2bce) | +| cgal | all | - | +| dcmtk | all | - | +| fdk-aac | all | - | +| flann | all | - | +| freeimage | all | - | +| glib | all | [58c2c96](https://github.com/mxe/mxe/commit/58c2c96) | +| gtkimageview | all | - | +| gtkmm2 | all | - | +| gtkmm3 | all | - | +| itk | all | - | +| jsoncpp | all | [0bc73f7](https://github.com/mxe/mxe/commit/0bc73f7) | +| json_spirit | all | - | +| libical | all | - | +| librsvg | all | - | +| libxml++ | all | - | +| log4cxx | all | - | +| opencv | all | - | +| ossim | all | - | +| qt | all | [5aac1c3](https://github.com/mxe/mxe/commit/5aac1c3) | +| qt3d | all | - | +| sdl_sound | all | - | +| smpeg | all | [57cb6bb](https://github.com/mxe/mxe/commit/57cb6bb) | +| smpeg2 | all | [1a42cbc](https://github.com/mxe/mxe/commit/1a42cbc) | +| ucl | all | - | +| vtk | all | - | +| vtk6 | all | - | +| wxwidgets | all | - | +| ... | ... | ... | -- cgit v0.12