Hi All,
there is a error when compling fiasco-1.2 on my pc. I do it following the course "Microkernel Construction Exercises":
1)Download and extract the Fiasco kernel from here http://os.inf.tu-dresden.de/fiasco/download/fiasco-1.2.tar.gz. 2)Switch to the directory *fiasco-1.2/l4/kernel/fiasco/* and create a build directory using *make BUILDDIR=build_ux**. 3)Run *make config* in this build directory and select UX as target platform (in 'Target System Options'). Leave the configuration menu with 'x'. 4)Build the kernel using *make*.
The error as following: ........ ........ ... Making thread-msg-ux.o ... Making thread-log.o ... Making thread-debug.o ... Making kernel_thread.o /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:104: error: parse error before `)' token /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:113: error: ISO C++ forbids declaration of `init_switch_time' with no type /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/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:1039: error: candidate is: void Context::init_switch_time() /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/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/ljian/L4/Fiasco/curses/practise/fiasco-1.2/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:1039: error: candidate is: void Context::init_switch_time() /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/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/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:113: error: declaration of `int Context::init_switch_time()' outside of class is not definition /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:117: error: ISO C++ forbids declaration of `init_workload' with no type /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:119: error: parse error before `while' /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:122: error: ISO C++ forbids declaration of `puts' with no type /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/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/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:122: error: invalid conversion from `const char*' to `int' /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:127: error: ISO C++ forbids declaration of `ready_dequeue' with no type /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:128: error: ISO C++ forbids declaration of `sched' with no type /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp: In function `int sched()': /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:128: error: parse error before `->' token /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:129: error: ISO C++ forbids declaration of `ready_enqueue' with no type /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:131: error: ISO C++ forbids declaration of `kill_all' with no type /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:133: error: ISO C++ forbids declaration of `threading_system_active' with no type /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/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/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:135: error: ISO C++ forbids declaration of `exit' with no type /home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/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/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/src/kern/kernel_thread.cpp:136: error: parse error before `}' token make[3]: *** [kernel_thread.o] Error 1 make[3]: Leaving directory `/home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/build' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/build' make[1]: *** [all] Error 2 make[1]: Leaving directory `/home/ljian/L4/Fiasco/curses/practise/fiasco-1.2/l4/kernel/fiasco/build' make: *** [build] Error 2
btw: I use gentoo
Cheers:)
Liu Jian
Hi Liu Jian,
--- Liu Jian ljian@ios.ac.cn wrote:
2)Switch to the directory *fiasco-1.2/l4/kernel/fiasco/* and create a build directory using *make BUILDDIR=build_ux**.
I entered into l4/kernel/fiasco directory.
3)Run *make config* in this build directory and select UX as target
I used:
make config .
platform (in 'Target System Options'). Leave the configuration menu with 'x'.
Yes done. Selected UX.
4)Build the kernel using *make*.
It compiles fine with make. My documentation is at:
http://shakthimaan.com/installs/fiasco-x86.html
Regards,
SK
-- Shakthi Kannan, MS Software Engineer, Hexaware Technologies [E]: shakthimaan@yahoo.com [M]: (91) 98407-87007 [W]: http://www.shakthimaan.com [L]: Chennai, India
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Hi,
On Wed Jan 18, 2006 at 02:26:36 +0800, Liu Jian wrote:
there is a error when compling fiasco-1.2 on my pc. I do it following the course "Microkernel Construction Exercises":
1)Download and extract the Fiasco kernel from here http://os.inf.tu-dresden.de/fiasco/download/fiasco-1.2.tar.gz. 2)Switch to the directory *fiasco-1.2/l4/kernel/fiasco/* and create a build directory using *make BUILDDIR=build_ux**. 3)Run *make config* in this build directory and select UX as target platform (in 'Target System Options'). Leave the configuration menu with 'x'. 4)Build the kernel using *make*.
Looks somewhat familiar, try this:
--- src/lib/libk/std_macros.cpp 21 Jul 2005 14:50:37 -0000 1.12 +++ src/lib/libk/std_macros.cpp 21 Nov 2005 15:35:46 -0000 1.13 @@ -18,10 +18,10 @@ // must _not_ be declared `const'. Likewise, a function that calls a // non-`const' function usually must not be `const'. It does not make // sense for a `const' function to return `void'. -#define FIASCO_CONST __attribute__ ((const)) +#define FIASCO_CONST __attribute__ ((__const__))
#ifdef __i386__ -#define FIASCO_FASTCALL __attribute__ ((regparm(3))) +#define FIASCO_FASTCALL __attribute__ ((__regparm__(3))) #else #define FIASCO_FASTCALL #endif @@ -31,12 +31,12 @@ # define ALWAYS_INLINE /* empty */ # define FIASCO_NOINLINE #else -# define MARK_AS_DEPRECATED __attribute__ ((deprecated)) -# define ALWAYS_INLINE __attribute__ ((always_inline)) -# define FIASCO_NOINLINE __attribute__ ((noinline)) +# define MARK_AS_DEPRECATED __attribute__ ((__deprecated__)) +# define ALWAYS_INLINE __attribute__ ((__always_inline__)) +# define FIASCO_NOINLINE __attribute__ ((__noinline__)) #endif
-#define FIASCO_NORETURN __attribute__ ((noreturn)) +#define FIASCO_NORETURN __attribute__ ((__noreturn__))
IMPLEMENTATION: //-
HTH, Adam
l4-hackers@os.inf.tu-dresden.de