fiasco: remove 'const' GCC attribute from some functions

Some functions in the kernel, which create a static object and return its
address, are declared with a GCC 'const' attribute, which can cause GCC
4.9 to optimize the function call out and use the static object's address
without calling the constructor.

Fixes #1509
This commit is contained in:
Christian Prochaska 2015-05-11 17:25:27 +02:00 committed by Christian Helmuth
parent 57c9f2aa43
commit 1207a4cecd
2 changed files with 40 additions and 1 deletions

View File

@ -0,0 +1,39 @@
diff --git fiasco/snapshot/kernel/fiasco/src/kern/kernel_console.cpp fiasco/snapshot/kernel/fiasco/src/kern/kernel_console.cpp
index ea632ce..4d88354 100644
--- fiasco/snapshot/kernel/fiasco/src/kern/kernel_console.cpp
+++ fiasco/snapshot/kernel/fiasco/src/kern/kernel_console.cpp
@@ -9,7 +9,7 @@ public:
int getchar( bool blocking = true );
void getchar_chance();
- static Mux_console *console() FIASCO_CONST;
+ static Mux_console *console();
private:
static bool initialized;
diff --git fiasco/snapshot/kernel/fiasco/src/kern/kernel_uart.cpp fiasco/snapshot/kernel/fiasco/src/kern/kernel_uart.cpp
index 42efe5c..0efb426 100644
--- fiasco/snapshot/kernel/fiasco/src/kern/kernel_uart.cpp
+++ fiasco/snapshot/kernel/fiasco/src/kern/kernel_uart.cpp
@@ -39,7 +39,7 @@ IMPLEMENTATION [serial]:
#include "config.h"
#include "panic.h"
-PUBLIC static FIASCO_CONST
+PUBLIC static
Uart *
Kernel_uart::uart()
{
diff --git fiasco/snapshot/kernel/fiasco/src/kern/map_util-mem.cpp fiasco/snapshot/kernel/fiasco/src/kern/map_util-mem.cpp
index 2363e65..43d9d8d 100644
--- fiasco/snapshot/kernel/fiasco/src/kern/map_util-mem.cpp
+++ fiasco/snapshot/kernel/fiasco/src/kern/map_util-mem.cpp
@@ -128,7 +128,7 @@ save_access_attribs (Mapdb* mapdb, const Mapdb::Frame& mapdb_frame,
// Mapdb instance for memory mappings
//
-Mapdb * mapdb_instance() FIASCO_CONST;
+Mapdb * mapdb_instance();
//---------------------------------------------------------------------------
IMPLEMENTATION[!64bit]:

View File

@ -1 +1 @@
ac9483f591c9b8dd4ed22b28e3a7e7ee382011bd
7df3c35beaecb0915782bb9d572e2ee973d572c6