pistachio: fix compilation with GCC 6

Issue #2372
This commit is contained in:
Christian Helmuth 2017-05-11 13:21:04 +02:00
parent 433fc6a7f1
commit 274b7983c1
3 changed files with 112 additions and 1 deletions

View File

@ -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__ */

View File

@ -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.

View File

@ -1 +1 @@
72a9aff6c60b22d2c372c44fea6ff5846c077ad5
6543a6d74a384ee61fca197fc04a343cc7a95661