From 274b7983c104d52c891da182af8d610875e51493 Mon Sep 17 00:00:00 2001 From: Christian Helmuth Date: Thu, 11 May 2017 13:21:04 +0200 Subject: [PATCH] pistachio: fix compilation with GCC 6 Issue #2372 --- repos/base-pistachio/patches/size_type.patch | 65 ++++++++++++++++++++ repos/base-pistachio/patches/warnings.patch | 46 ++++++++++++++ repos/base-pistachio/ports/pistachio.hash | 2 +- 3 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 repos/base-pistachio/patches/size_type.patch create mode 100644 repos/base-pistachio/patches/warnings.patch diff --git a/repos/base-pistachio/patches/size_type.patch b/repos/base-pistachio/patches/size_type.patch new file mode 100644 index 000000000..a9ef276f9 --- /dev/null +++ b/repos/base-pistachio/patches/size_type.patch @@ -0,0 +1,65 @@ ++++ a/kernel/src/arch/x86/pgent.h +@@ -320,11 +320,11 @@ public: + + void update_rights (space_t * s, pgsize_e pgsize, word_t rwx) + { +- if (rwx & 2) raw |= X86_PAGE_WRITABLE; sync(s, pgsize); ++ if (rwx & 2) raw |= X86_PAGE_WRITABLE; + #if defined(CONFIG_X86_NX) + if (rwx & 1) raw &= ~X86_PAGE_NX; + #endif +- ++ sync(s, pgsize); + } + + void set_rights (space_t * s, pgsize_e pgsize, word_t rwx) ++++ a/kernel/src/generic/mdb.h +@@ -217,7 +217,7 @@ class mdb_node_t + + public: + +- void * operator new (word_t size); ++ void * operator new (size_t size); + void operator delete (void * n); + mdb_node_t (void); + ++++ a/kernel/src/generic/types.h +@@ -47,7 +47,7 @@ + /** + * Size type. For use in new operator, etc. + */ +-typedef SIZE_T size_t; ++typedef __SIZE_TYPE__ size_t; + + + /** ++++ a/kernel/src/glue/v4-x86/vrt_io.cc +@@ -60,7 +60,7 @@ MDB_INIT_FUNCTION (1, init_vrt_io_sizes) + * + * @return new VRT for thread space + */ +-void * vrt_io_t::operator new (word_t size) ++void * vrt_io_t::operator new (size_t size) + { + vrt_io_t * vrt = (vrt_io_t *) mdb_alloc_buffer (size); + ++++ a/kernel/src/glue/v4-x86/vrt_io.h +@@ -57,7 +57,7 @@ public: + + // Space management methods + +- void * operator new (word_t size); ++ void * operator new (size_t size); + void operator delete (void * v); + void init (void); + void populate_sigma0 (void); ++++ a/user/include/l4/ia32/types.h +@@ -51,7 +51,7 @@ typedef signed char L4_SignedWord8_t; + + typedef signed long L4_SignedWord_t; + +-typedef unsigned int L4_Size_t; ++typedef __SIZE_TYPE__ L4_Size_t; + typedef L4_Word64_t L4_Paddr_t; + + #endif /* !__L4__X86__TYPES_H__ */ diff --git a/repos/base-pistachio/patches/warnings.patch b/repos/base-pistachio/patches/warnings.patch new file mode 100644 index 000000000..3fc10ede3 --- /dev/null +++ b/repos/base-pistachio/patches/warnings.patch @@ -0,0 +1,46 @@ ++++ a/kernel/Mk/Makeconf +@@ -172,14 +172,11 @@ CCFLAGS += -fno-rtti -fno-builtin -fomit-frame-pointer -fno-exceptions \ + -Wall -Wno-non-virtual-dtor -Wno-format \ + $(CFLAGS_$(ARCH)) $(CFLAGS_$(CPU)) $(CFLAGS_$(PLATFORM)) + +-ifeq ("$(CC_VERSION)", "4") + CCFLAGS += -Wno-conversion +-ifneq ("$(CC_SUBVERSION)", "0") ++CCFLAGS += -Wno-nonnull-compare ++CCFLAGS += -Wno-c++11-compat + CCFLAGS += -fno-stack-protector +-endif +-else +-CCFLAGS += -Wconversion +-endif ++CCFLAGS += -std=gnu++03 + + ifeq ("$(CONFIG_DEBUG_SYMBOLS)","y") + CCFLAGS += -g ++++ a/user/Mk/l4.base.mk +@@ -44,11 +44,9 @@ CFLAGS+= -O2 -g -Wall -Wshadow \ + $(CFLAGS_$(ARCH)) + LDFLAGS+= $(LDFLAGS_$(ARCH)) + +-ifeq ("$(CC_VERSION)", "4") +-CFLAGS += -Wno-conversion +-else +-CFLAGS += -Wconversion +-endif ++CFLAGS += -Wno-conversion ++CPPFLAGS += -Wno-c++11-compat ++CPPFLAGS += -std=gnu++03 + + + # Create early targets so that a make without args (implicit all) does ++++ a/user/configure.in +@@ -261,9 +261,7 @@ CXXFLAGS="-fno-exceptions $CXXFLAGS" + + CC_VERSION=`echo __GNUC__ | $CC -E - | grep -v "\#"` + CC_SUBVERSION=`echo __GNUC_MINOR__ | $CC -E - | grep -v "\#"` +-if test "$CC_VERSION" = "4" -a "$CC_SUBVERSION" -ge "1"; then + CFLAGS="-fno-stack-protector $CFLAGS" +-fi + + + dnl Architecture dependent settings. diff --git a/repos/base-pistachio/ports/pistachio.hash b/repos/base-pistachio/ports/pistachio.hash index fb963446d..c6687aa86 100644 --- a/repos/base-pistachio/ports/pistachio.hash +++ b/repos/base-pistachio/ports/pistachio.hash @@ -1 +1 @@ -72a9aff6c60b22d2c372c44fea6ff5846c077ad5 +6543a6d74a384ee61fca197fc04a343cc7a95661