Hallo,
schon seit längerem (einschließlich der aktuellen Version) von Fiasco bekommen ich und andere beim Kompilieren (w/ gcc 3.3.6) (nur) zum Fiasco-UX Target immer nachfolgende Fehlermeldung, welche vermutlich an einer fehlenden inline Definition liegt. Zumindest müssen wir das ..build/auto/std_macros.h bei jedem UX-Build immer wie folgt patchen:
#ifndef noinline #define noinline noinline #endif
Gibt es da eine bessere Lösung oder machen wir etwas falsch?
Viele Grüße Marko
PS: Default Kernel-Config (+UX, +UX_CON, +UX_NET) im Anhang.
------------------------------------------------------------------------------
... Making kernel_thread.o /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:104: error: Syntaxfehler before `)' token /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:113: error: ISO C++ forbids declaration of `init_switch_time' with no type /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:113: error: prototype for `int Context::init_switch_time()' does not match any in class `Context' auto/context.h:1128: error: candidate is: void Context::init_switch_time() /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:113: error: ` int Context::init_switch_time()' and `void Context::init_switch_time()' cannot be overloaded /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:113: error: prototype for `int Context::init_switch_time()' does not match any in class `Context' auto/context.h:1128: error: candidate is: void Context::init_switch_time() /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:113: error: ` int Context::init_switch_time()' and `void Context::init_switch_time()' cannot be overloaded /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:113: error: declaration of `int Context::init_switch_time()' outside of class is not definition /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:117: error: ISO C++ forbids declaration of `init_workload' with no type /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:119: error: Syntaxfehler before `while' /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:122: error: ISO C++ forbids declaration of `puts' with no type /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:122: error: ` int puts' redeclared as different kind of symbol /usr/include/stdio.h:589: error: previous declaration of `int puts(const char*) ' /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:122: error: invalid conversion from `const char*' to `int' /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:127: error: ISO C++ forbids declaration of `ready_dequeue' with no type /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:128: error: ISO C++ forbids declaration of `sched' with no type /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp: In function `int sched()': /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:128: error: Syntaxfehler before `->' token /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:129: error: ISO C++ forbids declaration of `ready_enqueue' with no type /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:131: error: ISO C++ forbids declaration of `kill_all' with no type /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:133: error: ISO C++ forbids declaration of `threading_system_active' with no type /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:133: error: conflicting types for `int Helping_lock::threading_system_active' auto/helping_lock.h:24: error: previous declaration as `bool Helping_lock::threading_system_active' /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:135: error: ISO C++ forbids declaration of `exit' with no type /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:135: error: ` int exit' redeclared as different kind of symbol /usr/include/stdlib.h:640: error: previous declaration of `void exit(int)' /home/marko/code/drops/l4/kernel/fiasco/src/kern/kernel_thread.cpp:136: error: Syntaxfehler before `}' token make[2]: *** [kernel_thread.o] Fehler 1 make[2]: Verlasse Verzeichnis »/home/marko/code/drops/l4/kernel/fiasco/build« make[1]: *** [all] Fehler 2 make[1]: Verlasse Verzeichnis »/home/marko/code/drops/l4/kernel/fiasco/build« make: *** [all] Fehler 2
_______________________________________________ Emscb mailing list Emscb@lists.tc.internet-sicherheit.de http://lists.tc.internet-sicherheit.de/mailman/listinfo/emscb
Hi Marko,
On Monday 21 November 2005 15:50, Marko Wolf wrote:
schon seit längerem (einschließlich der aktuellen Version) von Fiasco bekommen ich und andere beim Kompilieren (w/ gcc 3.3.6) (nur) zum Fiasco-UX Target immer nachfolgende Fehlermeldung, welche vermutlich an einer fehlenden inline Definition liegt. Zumindest müssen wir das ..build/auto/std_macros.h bei jedem UX-Build immer wie folgt patchen:
#ifndef noinline #define noinline noinline #endif
Gibt es da eine bessere Lösung oder machen wir etwas falsch?
Thank you for the bug report. We have (hopefully) fixed the problem, the fix should be available in our remote CVS tomorrow. The problem was that a Linux header did a '#define noinline /* nothing*/'. We have changed the declaration of FIASCO_NOINLINE from
#define FIASCO_NOINLINE __attribute__ ((noinline))
into
#define FIASCO_NOINLINE __attribute__ ((__noinline__))
Cheers,
Frank
l4-hackers@os.inf.tu-dresden.de