Comments (33)
Ideally, we'd upgrade the toolchain to something shiny, and modern, and fix everything, in a big bang, but given the age of the code, it might be best if we gradually work through generations of toolchain, to see how things break - although that would delay implementing more interesting stuff, and take a very long time.
We can still take that approach, but one way to extract ourselves from having to maintain ancient Docker images, and VMs would be to implement the Linux ABI itself (see issue #7), to a point where we can just unpack DEBs/RPMs, and run the toolchain on Orion, without having to rebuild it, and implement perfect source/feature compatibility with everything, immediately.
Since the goal is to eventually become self-hosting, and make a usable system, this could also help with fleshing out a design for things like memory management, and file system APIs, by giving a baseline feature set to work towards.
from orion.
The changes to port over the NICTA enhancements (in #9) break things, even more, it seems.
from orion.
Presently, the master branch (which doesn't include all of the NICTA changes) gets fairly far, with the standard Ubuntu 8.3.0 compiler:
/home/tyson/Orion/kernel/src/glue/v4-x86/debug.cc: In member function ‘void cpu_kdb_t::do_enter_kdebug(x86_exceptionframe_t*, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/debug.cc:102:31: error: ‘get_kdebug_tcb’ was not declared in this scope
if (get_current_tcb() == get_kdebug_tcb())
^~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/debug.cc:102:31: note: suggested alternative: ‘get_kdb_tcb’
if (get_current_tcb() == get_kdebug_tcb())
^~~~~~~~~~~~~~
get_kdb_tcb
make[1]: *** [/home/tyson/Orion/kernel/Mk/Makeconf:208: src/glue/v4-x86/debug.o] Error 1
make[1]: Leaving directory '/home/tyson/Orion/kernel/ibd'
make: *** [Makefile:38: all] Error 2
from orion.
Added some build logs, to the master branch, using the following x86 compilers:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ibd$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 8.3.0-6ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 8.3.0 (Ubuntu 8.3.0-6ubuntu1)
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ibd$ gcc-6 -v
Using built-in specs.
COLLECT_GCC=gcc-6
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.5.0-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-as=/usr/bin/x86_64-linux-gnu-as --with-ld=/usr/bin/x86_64-linux-gnu-ld --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 6.5.0 20181026 (Ubuntu 6.5.0-2ubuntu1)
from orion.
The NICTA_Pistachio_Mainline_FCL branch is in horrible shape, right now:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$ cat FreshLog.txt
make[1]: Entering directory '/home/tyson/Orion/kernel/ubd'
===> Building dependencies
make[1]: *** No rule to make target 'arch/x86/debug.h', needed by 'src/glue/v4-x86/x32/init.o'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/ubd'
make: *** [Makefile:38: all] Error 2
from orion.
Presently, the master branch (which doesn't include all of the NICTA changes) gets fairly far, with the standard Ubuntu 8.3.0 compiler:
/home/tyson/Orion/kernel/src/glue/v4-x86/debug.cc: In member function ‘void cpu_kdb_t::do_enter_kdebug(x86_exceptionframe_t*, word_t)’: /home/tyson/Orion/kernel/src/glue/v4-x86/debug.cc:102:31: error: ‘get_kdebug_tcb’ was not declared in this scope if (get_current_tcb() == get_kdebug_tcb()) ^~~~~~~~~~~~~~ /home/tyson/Orion/kernel/src/glue/v4-x86/debug.cc:102:31: note: suggested alternative: ‘get_kdb_tcb’ if (get_current_tcb() == get_kdebug_tcb()) ^~~~~~~~~~~~~~ get_kdb_tcb make[1]: *** [/home/tyson/Orion/kernel/Mk/Makeconf:208: src/glue/v4-x86/debug.o] Error 1 make[1]: Leaving directory '/home/tyson/Orion/kernel/ibd' make: *** [Makefile:38: all] Error 2
With the preprocessor patch, in 1a1ab9b, things get a little further, but it's not a reliable fix.
from orion.
The NICTA_Pistachio_Mainline_FCL branch is in horrible shape, right now:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$ cat FreshLog.txt make[1]: Entering directory '/home/tyson/Orion/kernel/ubd' ===> Building dependencies make[1]: *** No rule to make target 'arch/x86/debug.h', needed by 'src/glue/v4-x86/x32/init.o'. Stop. make[1]: Leaving directory '/home/tyson/Orion/kernel/ubd' make: *** [Makefile:38: all] Error 2
If we move the debug.h, from include/arch/ia32, we get:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/ubd'
===> Building dependencies
===> Generating include/tcb_layout.h
In file included from /home/tyson/Orion/kernel/src/api/v4/space.h:37,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:42,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:199:37: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:247:29: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (is_copy_area (addr));
^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:292:36: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (data.thread_count != 0);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:309:37: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:39,
from /home/tyson/Orion/kernel/src/glue/v4-x86/ktcb.h:16,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:50,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:64:29: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(quantum.is_period());
^
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:103:34: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(timeslice.is_period());
^
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:104:17: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(this);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:48: error: macro "SYS_IPC" requires 3 arguments, but only 2 given
SYS_IPC (threadid_t to_tid, threadid_t from_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
threadid_t recv_redirector_tid, word_t utcb_location);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
word_t uhandle, threadid_t pager_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
fpage_t utcb_area);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:21,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:27:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (n < COPY_AREA_COUNT);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:42:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (n < COPY_AREA_COUNT);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:48:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (pdir_idx[n][i] != ~0UL);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:63:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (n < COPY_AREA_COUNT);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:64:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (p < COPY_AREA_PDIRS);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:113:33: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (n <= COPY_AREA_COUNT);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:58:39: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(start + count <= IPC_NUM_MR);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:59:21: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(count > 0);
^
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:58:25: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(this->pdir_cache);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:94:30: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(index < IPC_NUM_MR);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:105:30: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(index < IPC_NUM_MR);
^
In file included from /home/tyson/Orion/kernel/src/api/v4/space.h:37,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:42,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function ‘x86_space_t::top_pdir_t* space_t::get_top_pdir(cpuid_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:199:5: error: ‘ASSERT’ was not declared in this scope
ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function ‘word_t space_t::get_copy_limit(addr_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:247:2: error: ‘ASSERT’ was not declared in this scope
ASSERT (is_copy_area (addr));
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function ‘bool space_t::remove_tcb(tcb_t*, cpuid_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:292:5: error: ‘ASSERT’ was not declared in this scope
ASSERT (data.thread_count != 0);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function ‘pgent_t* space_t::pgent(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:309:5: error: ‘ASSERT’ was not declared in this scope
ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
^~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:39,
from /home/tyson/Orion/kernel/src/glue/v4-x86/ktcb.h:16,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:50,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h: At global scope:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:57:29: error: ‘time_t’ has not been declared
void init_total_quantum(time_t quantum)
^~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:101:25: error: ‘time_t’ has not been declared
void init_timeslice(time_t timeslice)
^~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h: In member function ‘void rr_sched_ktcb_t::init_total_quantum(int)’:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:59:18: error: request for member ‘is_never’ in ‘quantum’, which is of non-class type ‘int’
if (quantum.is_never())
^~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:64:3: error: ‘ASSERT’ was not declared in this scope
ASSERT(quantum.is_period());
^~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:65:27: error: request for member ‘get_microseconds’ in ‘quantum’, which is of non-class type ‘int’
total_quantum = quantum.get_microseconds();
^~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h: In member function ‘void rr_sched_ktcb_t::init_timeslice(int)’:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:103:6: error: ‘ASSERT’ was not declared in this scope
ASSERT(timeslice.is_period());
^~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:105:55: error: request for member ‘get_microseconds’ in ‘timeslice’, which is of non-class type ‘int’
current_timeslice = timeslice_length = timeslice.get_microseconds();
^~~~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/ktcb.h:16,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:50,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:57:9: error: ‘bitmask_t’ is not a template
typedef bitmask_t<u32_t> ctrlxfer_mask_t;
^~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:49:16: error: ‘IPC_NUM_BR’ was not declared in this scope
word_t br[IPC_NUM_BR]; /* -196 .. -64 */
^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:59:5: error: ‘timeout_t’ does not name a type
timeout_t xfer_timeout; /* -32 */
^~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:64:16: error: ‘IPC_NUM_MR’ was not declared in this scope
word_t mr[IPC_NUM_MR]; /* 0 .. 252 */
^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:82:5: error: ‘timeout_t’ does not name a type
timeout_t get_xfer_timeout();
^~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:89,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/generic-utcb.h:96:8: error: ‘timeout_t’ does not name a type
INLINE timeout_t utcb_t::get_xfer_timeout()
^~~~~~~~~
In file included from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:53:13: error: conflicting declaration ‘typedef int prio_t’
typedef int prio_t;
^~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:39,
from /home/tyson/Orion/kernel/src/glue/v4-x86/ktcb.h:16,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:50,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:28:14: note: previous declaration as ‘typedef u8_t prio_t’
typedef u8_t prio_t;
^~~~~~
In file included from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘tcb_t* tcb_t::get_partner_tcb()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:425:31: error: ‘class space_t’ has no member named ‘get_tcb’; did you mean ‘add_tcb’?
return this->get_space()->get_tcb(partner);
^~~~~~~
add_tcb
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::clear_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:570:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits = 0;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::add_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:578:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits |= bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::sub_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:586:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits &= ~(bits);
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:594:24: error: ‘class utcb_t’ has no member named ‘notify_bits’
return get_utcb()->notify_bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_mask()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:602:24: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
return get_utcb()->notify_mask;
^~~~~~~~~~~
word_size_mask
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::set_notify_mask(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:611:17: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
get_utcb()->notify_mask = mask;
^~~~~~~~~~~
word_size_mask
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:1: error: ‘SYS_IPC’ does not name a type
SYS_IPC (threadid_t to_tid, threadid_t from_tid);
^~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:73:1: error: ‘SYS_THREAD_CONTROL’ does not name a type
SYS_THREAD_CONTROL (threadid_t dest_tid, threadid_t space_tid,
^~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:88:1: error: ‘SYS_EXCHANGE_REGISTERS’ does not name a type
SYS_EXCHANGE_REGISTERS (threadid_t dest_tid, word_t control,
^~~~~~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:124:1: error: ‘SYS_SPACE_CONTROL’ does not name a type
SYS_SPACE_CONTROL (threadid_t space_tid, word_t control, fpage_t kip_area,
^~~~~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:21,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function ‘void* thread_resources_t::copy_area_address(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:27:5: error: ‘ASSERT’ was not declared in this scope
ASSERT (n < COPY_AREA_COUNT);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function ‘void* thread_resources_t::copy_area_real_address(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:42:5: error: ‘ASSERT’ was not declared in this scope
ASSERT (n < COPY_AREA_COUNT);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function ‘word_t thread_resources_t::copy_area_pdir_idx(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:63:5: error: ‘ASSERT’ was not declared in this scope
ASSERT (n < COPY_AREA_COUNT);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function ‘void thread_resources_t::enable_copy_area(tcb_t*, void**, tcb_t*, void**)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:113:5: error: ‘ASSERT’ was not declared in this scope
ASSERT (n <= COPY_AREA_COUNT);
^~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h: In member function ‘void tcb_t::copy_mrs(tcb_t*, word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:58:5: error: ‘ASSERT’ was not declared in this scope
ASSERT(start + count <= IPC_NUM_MR);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:73:31: error: ‘class utcb_t’ has no member named ‘mr’
"c"(count), "S"(&get_utcb()->mr[start]),
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:74:25: error: ‘class utcb_t’ has no member named ‘mr’
"D"(&dest->get_utcb()->mr[start]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:534:13: error: no declaration matches ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
INLINE void tcb_t::arch_init_root_server (space_t * space, word_t ip, word_t sp)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:534:13: note: no functions named ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_cpu(cpuid_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:58:2: error: ‘ASSERT’ was not declared in this scope
ASSERT(this->pdir_cache);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:65:11: error: ‘class tcb_t’ has no member named ‘cpu’
this->cpu = cpu;
^~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_utcb_location(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: error: ‘myself_local’ was not declared in this scope
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: note: suggested alternative: ‘myself_global’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:60: error: ‘class utcb_t’ has no member named ‘mr’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_utcb_location()’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: error: ‘myself_local’ was not declared in this scope
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: note: suggested alternative: ‘myself_global’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:54: error: ‘class utcb_t’ has no member named ‘mr’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_mr(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:94:5: error: ‘ASSERT’ was not declared in this scope
ASSERT(index < IPC_NUM_MR);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:95:24: error: ‘class utcb_t’ has no member named ‘mr’
return get_utcb()->mr[index];
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_mr(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:105:5: error: ‘ASSERT’ was not declared in this scope
ASSERT(index < IPC_NUM_MR);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:106:17: error: ‘class utcb_t’ has no member named ‘mr’
get_utcb()->mr[index] = value;
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: error: no declaration matches ‘word_t tcb_t::get_br(word_t)’
INLINE word_t tcb_t::get_br(word_t index)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: note: no functions named ‘word_t tcb_t::get_br(word_t)’
In file included from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: error: no declaration matches ‘void tcb_t::set_br(word_t, word_t)’
INLINE void tcb_t::set_br(word_t index, word_t value)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: note: no functions named ‘void tcb_t::set_br(word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: error: no declaration matches ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
INLINE void tcb_t::adjust_for_copy_area (tcb_t * dst,
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: note: no functions named ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
In file included from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: error: no declaration matches ‘void tcb_t::release_copy_area()’
INLINE void tcb_t::release_copy_area (void)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: note: no functions named ‘void tcb_t::release_copy_area()’
In file included from /home/tyson/Orion/kernel/ubd/_1568031479_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c: In function ‘void make_offsets()’:
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:51:51: error: ‘class tcb_t’ has no member named ‘sched_state’; did you mean ‘saved_state’?
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:51:36: note: in expansion of macro ‘offsetof’
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:54:34: error: ‘class utcb_t’ has no member named ‘br’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:54:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:64:44: error: ‘class utcb_t’ has no member named ‘xfer_timeout’
O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
^~~~~~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:64:28: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:69:34: error: ‘class utcb_t’ has no member named ‘mr’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568031479_123.c:69:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~~~~~~~
make[1]: *** No rule to make target '/home/tyson/Orion/kernel/ubd/include/tcb_layout.h', needed by 'tcb_layout.h'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/ubd'
make: *** [Makefile:38: all] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$
from orion.
Moved over the remaining ia32 files, into their own directory, for comparison...
from orion.
64-bit support is different, again:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/ubd'
===> Building dependencies
===> Generating include/tcb_layout.h
In file included from /home/tyson/Orion/kernel/src/api/v4/space.h:37,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:42,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:199:37: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:247:29: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (is_copy_area (addr));
^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:292:36: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (data.thread_count != 0);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:309:37: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:48: error: macro "SYS_IPC" requires 3 arguments, but only 2 given
SYS_IPC (threadid_t to_tid, threadid_t from_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
threadid_t recv_redirector_tid, word_t utcb_location);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
word_t uhandle, threadid_t pager_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
fpage_t utcb_area);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:21,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:27:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (n < COPY_AREA_COUNT);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:42:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (n < COPY_AREA_COUNT);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:48:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (pdir_idx[n][i] != ~0UL);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:63:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (n < COPY_AREA_COUNT);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:64:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (p < COPY_AREA_PDIRS);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:113:33: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT (n <= COPY_AREA_COUNT);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:52:39: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(start + count <= IPC_NUM_MR);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:53:21: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(count > 0);
^
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:58:25: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(this->pdir_cache);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:94:30: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(index < IPC_NUM_MR);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:105:30: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(index < IPC_NUM_MR);
^
In file included from /home/tyson/Orion/kernel/src/api/v4/space.h:37,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:42,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function ‘x86_space_t::top_pdir_t* space_t::get_top_pdir(cpuid_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:199:5: error: ‘ASSERT’ was not declared in this scope
ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function ‘word_t space_t::get_copy_limit(addr_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:247:2: error: ‘ASSERT’ was not declared in this scope
ASSERT (is_copy_area (addr));
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function ‘bool space_t::remove_tcb(tcb_t*, cpuid_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:292:5: error: ‘ASSERT’ was not declared in this scope
ASSERT (data.thread_count != 0);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function ‘pgent_t* space_t::pgent(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:309:5: error: ‘ASSERT’ was not declared in this scope
ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
^~~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:49:16: error: ‘IPC_NUM_BR’ was not declared in this scope
word_t br[IPC_NUM_BR]; /* -196 .. -64 */
^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:59:5: error: ‘timeout_t’ does not name a type
timeout_t xfer_timeout; /* -32 */
^~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:64:16: error: ‘IPC_NUM_MR’ was not declared in this scope
word_t mr[IPC_NUM_MR]; /* 0 .. 252 */
^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:82:5: error: ‘timeout_t’ does not name a type
timeout_t get_xfer_timeout();
^~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:89,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/generic-utcb.h:96:8: error: ‘timeout_t’ does not name a type
INLINE timeout_t utcb_t::get_xfer_timeout()
^~~~~~~~~
In file included from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘tcb_t* tcb_t::get_partner_tcb()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:425:31: error: ‘class space_t’ has no member named ‘get_tcb’; did you mean ‘add_tcb’?
return this->get_space()->get_tcb(partner);
^~~~~~~
add_tcb
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::clear_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:570:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits = 0;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::add_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:578:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits |= bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::sub_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:586:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits &= ~(bits);
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:594:24: error: ‘class utcb_t’ has no member named ‘notify_bits’
return get_utcb()->notify_bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_mask()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:602:24: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
return get_utcb()->notify_mask;
^~~~~~~~~~~
word_size_mask
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::set_notify_mask(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:611:17: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
get_utcb()->notify_mask = mask;
^~~~~~~~~~~
word_size_mask
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:1: error: ‘SYS_IPC’ does not name a type
SYS_IPC (threadid_t to_tid, threadid_t from_tid);
^~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:73:1: error: ‘SYS_THREAD_CONTROL’ does not name a type
SYS_THREAD_CONTROL (threadid_t dest_tid, threadid_t space_tid,
^~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:88:1: error: ‘SYS_EXCHANGE_REGISTERS’ does not name a type
SYS_EXCHANGE_REGISTERS (threadid_t dest_tid, word_t control,
^~~~~~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:124:1: error: ‘SYS_SPACE_CONTROL’ does not name a type
SYS_SPACE_CONTROL (threadid_t space_tid, word_t control, fpage_t kip_area,
^~~~~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:21,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function ‘void* thread_resources_t::copy_area_address(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:27:5: error: ‘ASSERT’ was not declared in this scope
ASSERT (n < COPY_AREA_COUNT);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function ‘void* thread_resources_t::copy_area_real_address(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:42:5: error: ‘ASSERT’ was not declared in this scope
ASSERT (n < COPY_AREA_COUNT);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function ‘word_t thread_resources_t::copy_area_pdir_idx(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:63:5: error: ‘ASSERT’ was not declared in this scope
ASSERT (n < COPY_AREA_COUNT);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function ‘void thread_resources_t::enable_copy_area(tcb_t*, void**, tcb_t*, void**)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:113:5: error: ‘ASSERT’ was not declared in this scope
ASSERT (n <= COPY_AREA_COUNT);
^~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h: In member function ‘void tcb_t::copy_mrs(tcb_t*, word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:52:5: error: ‘ASSERT’ was not declared in this scope
ASSERT(start + count <= IPC_NUM_MR);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:64:31: error: ‘class utcb_t’ has no member named ‘mr’
"c"(count), "S"(&get_utcb()->mr[start]),
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:65:25: error: ‘class utcb_t’ has no member named ‘mr’
"D"(&dest->get_utcb()->mr[start]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:364:13: error: no declaration matches ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
INLINE void tcb_t::arch_init_root_server (space_t * space, word_t ip, word_t sp)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:364:13: note: no functions named ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_cpu(cpuid_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:58:2: error: ‘ASSERT’ was not declared in this scope
ASSERT(this->pdir_cache);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:65:11: error: ‘class tcb_t’ has no member named ‘cpu’
this->cpu = cpu;
^~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_utcb_location(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: error: ‘myself_local’ was not declared in this scope
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: note: suggested alternative: ‘myself_global’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:60: error: ‘class utcb_t’ has no member named ‘mr’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_utcb_location()’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: error: ‘myself_local’ was not declared in this scope
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: note: suggested alternative: ‘myself_global’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:54: error: ‘class utcb_t’ has no member named ‘mr’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_mr(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:94:5: error: ‘ASSERT’ was not declared in this scope
ASSERT(index < IPC_NUM_MR);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:95:24: error: ‘class utcb_t’ has no member named ‘mr’
return get_utcb()->mr[index];
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_mr(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:105:5: error: ‘ASSERT’ was not declared in this scope
ASSERT(index < IPC_NUM_MR);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:106:17: error: ‘class utcb_t’ has no member named ‘mr’
get_utcb()->mr[index] = value;
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: error: no declaration matches ‘word_t tcb_t::get_br(word_t)’
INLINE word_t tcb_t::get_br(word_t index)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: note: no functions named ‘word_t tcb_t::get_br(word_t)’
In file included from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: error: no declaration matches ‘void tcb_t::set_br(word_t, word_t)’
INLINE void tcb_t::set_br(word_t index, word_t value)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: note: no functions named ‘void tcb_t::set_br(word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: error: no declaration matches ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
INLINE void tcb_t::adjust_for_copy_area (tcb_t * dst,
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: note: no functions named ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
In file included from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: error: no declaration matches ‘void tcb_t::release_copy_area()’
INLINE void tcb_t::release_copy_area (void)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: note: no functions named ‘void tcb_t::release_copy_area()’
In file included from /home/tyson/Orion/kernel/ubd/_1568032413_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c: In function ‘void make_offsets()’:
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:51:51: error: ‘class tcb_t’ has no member named ‘sched_state’; did you mean ‘saved_state’?
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:51:36: note: in expansion of macro ‘offsetof’
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:54:34: error: ‘class utcb_t’ has no member named ‘br’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:54:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:64:44: error: ‘class utcb_t’ has no member named ‘xfer_timeout’
O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
^~~~~~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:64:28: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:69:34: error: ‘class utcb_t’ has no member named ‘mr’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568032413_123.c:69:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~~~~~~~
===> src/arch/x86/x64/init32.cc
cd src/arch/x86/x64/ && gcc -nostdinc -I/home/tyson/Orion/kernel/ubd/include -I/home/tyson/Orion/kernel/src -I/home/tyson/Orion/kernel/src/generic -I/usr/lib/gcc/x86_64-linux-gnu/8/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /home/tyson/Orion/kernel/ubd/config/config.h -imacros /home/tyson/Orion/kernel/src/generic/macros.h -include /home/tyson/Orion/kernel/src/generic/config.h -include /home/tyson/Orion/kernel/src/generic/types.h -DX64_32BIT_CODE -fno-rtti -fno-builtin -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2 -m32 -mno-red-zone -fno-pie -fno-stack-protector -lssp -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -Wconversion -x c++ -c /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc -o init32.o
In file included from /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc:40:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h: In static member function ‘static void x86_mmu_t::enable_long_mode()’:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h:170:28: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘word_t’ {aka ‘unsigned int’} may change value [-Wconversion]
word_t efer = x86_rdmsr(X86_MSR_EFER);
~~~~~~~~~^~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/arch/x86/mmu.h: In static member function ‘static bool x86_mmu_t::long_mode_active()’:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h:182:28: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘word_t’ {aka ‘unsigned int’} may change value [-Wconversion]
word_t efer = x86_rdmsr(X86_MSR_EFER);
~~~~~~~~~^~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/arch/x86/segdesc.h:20,
from /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc:41:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h: In member function ‘void x86_segdesc_t::set_seg(u64_t, x86_segdesc_t::segtype_e, int, x86_segdesc_t::mode_e, x86_segdesc_t::msr_e)’:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:80:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
x.d.type = type;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:81:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
x.d.l = mode;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:82:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:2’ may change value [-Wconversion]
x.d.dpl = dpl;
^~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h: In member function ‘void x86_segdesc_t::set_seg(u32_t, x86_segdesc_t::segtype_e, int, x86_segdesc_t::mode_e)’:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:99:36: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char’ may change value [-Wconversion]
x.d.base_high = (base >> 24) & 0xFF;
~~~~~~~~~~~~~^~~~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:101:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
x.d.type = type;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:102:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
x.d.l = mode;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:103:16: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:2’ may change value [-Wconversion]
x.d.dpl = dpl;
^~~
cd src/arch/x86/x64/ && objcopy -g -O elf64-x86-64 init32.o init32.o
===> src/arch/x86/x64/cpu.cc
cd src/arch/x86/x64/ && gcc -nostdinc -I/home/tyson/Orion/kernel/ubd/include -I/home/tyson/Orion/kernel/src -I/home/tyson/Orion/kernel/src/generic -I/usr/lib/gcc/x86_64-linux-gnu/8/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /home/tyson/Orion/kernel/ubd/config/config.h -imacros /home/tyson/Orion/kernel/src/generic/macros.h -include /home/tyson/Orion/kernel/src/generic/config.h -include /home/tyson/Orion/kernel/src/generic/types.h -fno-rtti -fno-builtin -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2 -m64 -mcmodel=kernel -mno-red-zone -fno-pie -fno-stack-protector -lssp -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -Wconversion -c /home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc
/home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc: In constructor ‘x86_x64_cpu_features_t::x86_x64_cpu_features_t()’:
/home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc:66:25: warning: conversion from ‘u32_t’ {aka ‘unsigned int’} to ‘u8_t’ {aka ‘unsigned char’} may change value [-Wconversion]
apic_id = ((ebx >> 24) & 0xFF);
~~~~~~~~~~~~~^~~~~~~
make[1]: *** No rule to make target '/home/tyson/Orion/kernel/ubd/include/tcb_layout.h', needed by 'tcb_layout.h'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/ubd'
make: *** [Makefile:38: all] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$
from orion.
Current status is - much of the userland builds OK for x86-64, at the moment, but building the kernel on the latest master bails for x86-32, with:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/ubd'
===> Building dependencies
===> Generating include/tcb_layout.h
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:39,
from /home/tyson/Orion/kernel/src/glue/v4-x86/ktcb.h:16,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:50,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:64:29: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(quantum.is_period());
^
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:103:34: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(timeslice.is_period());
^
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:104:17: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(this);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:48: error: macro "SYS_IPC" requires 3 arguments, but only 2 given
SYS_IPC (threadid_t to_tid, threadid_t from_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
threadid_t recv_redirector_tid, word_t utcb_location);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
word_t uhandle, threadid_t pager_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
fpage_t utcb_area);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:58:39: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(start + count <= IPC_NUM_MR);
^
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:59:21: error: macro "ASSERT" requires 2 arguments, but only 1 given
ASSERT(count > 0);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:39,
from /home/tyson/Orion/kernel/src/glue/v4-x86/ktcb.h:16,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:50,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:57:29: error: ‘time_t’ has not been declared
void init_total_quantum(time_t quantum)
^~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:101:25: error: ‘time_t’ has not been declared
void init_timeslice(time_t timeslice)
^~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h: In member function ‘void rr_sched_ktcb_t::init_total_quantum(int)’:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:59:18: error: request for member ‘is_never’ in ‘quantum’, which is of non-class type ‘int’
if (quantum.is_never())
^~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:64:3: error: ‘ASSERT’ was not declared in this scope
ASSERT(quantum.is_period());
^~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:65:27: error: request for member ‘get_microseconds’ in ‘quantum’, which is of non-class type ‘int’
total_quantum = quantum.get_microseconds();
^~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h: In member function ‘void rr_sched_ktcb_t::init_timeslice(int)’:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:103:6: error: ‘ASSERT’ was not declared in this scope
ASSERT(timeslice.is_period());
^~~~~~
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:105:55: error: request for member ‘get_microseconds’ in ‘timeslice’, which is of non-class type ‘int’
current_timeslice = timeslice_length = timeslice.get_microseconds();
^~~~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/ktcb.h:16,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:50,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:57:9: error: ‘bitmask_t’ is not a template
typedef bitmask_t<u32_t> ctrlxfer_mask_t;
^~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:49:16: error: ‘IPC_NUM_BR’ was not declared in this scope
word_t br[IPC_NUM_BR]; /* -196 .. -64 */
^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:59:5: error: ‘timeout_t’ does not name a type
timeout_t xfer_timeout; /* -32 */
^~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:64:16: error: ‘IPC_NUM_MR’ was not declared in this scope
word_t mr[IPC_NUM_MR]; /* 0 .. 252 */
^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:82:5: error: ‘timeout_t’ does not name a type
timeout_t get_xfer_timeout();
^~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:89,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/generic-utcb.h:96:8: error: ‘timeout_t’ does not name a type
INLINE timeout_t utcb_t::get_xfer_timeout()
^~~~~~~~~
In file included from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:53:13: error: conflicting declaration ‘typedef int prio_t’
typedef int prio_t;
^~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:39,
from /home/tyson/Orion/kernel/src/glue/v4-x86/ktcb.h:16,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:50,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:28:14: note: previous declaration as ‘typedef u8_t prio_t’
typedef u8_t prio_t;
^~~~~~
In file included from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘tcb_t* tcb_t::get_partner_tcb()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:425:31: error: ‘class space_t’ has no member named ‘get_tcb’; did you mean ‘add_tcb’?
return this->get_space()->get_tcb(partner);
^~~~~~~
add_tcb
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::clear_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:570:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits = 0;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::add_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:578:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits |= bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::sub_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:586:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits &= ~(bits);
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:594:24: error: ‘class utcb_t’ has no member named ‘notify_bits’
return get_utcb()->notify_bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_mask()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:602:24: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
return get_utcb()->notify_mask;
^~~~~~~~~~~
word_size_mask
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::set_notify_mask(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:611:17: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
get_utcb()->notify_mask = mask;
^~~~~~~~~~~
word_size_mask
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:1: error: ‘SYS_IPC’ does not name a type
SYS_IPC (threadid_t to_tid, threadid_t from_tid);
^~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:73:1: error: ‘SYS_THREAD_CONTROL’ does not name a type
SYS_THREAD_CONTROL (threadid_t dest_tid, threadid_t space_tid,
^~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:88:1: error: ‘SYS_EXCHANGE_REGISTERS’ does not name a type
SYS_EXCHANGE_REGISTERS (threadid_t dest_tid, word_t control,
^~~~~~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:124:1: error: ‘SYS_SPACE_CONTROL’ does not name a type
SYS_SPACE_CONTROL (threadid_t space_tid, word_t control, fpage_t kip_area,
^~~~~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h: In member function ‘void tcb_t::copy_mrs(tcb_t*, word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:58:5: error: ‘ASSERT’ was not declared in this scope
ASSERT(start + count <= IPC_NUM_MR);
^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:73:31: error: ‘class utcb_t’ has no member named ‘mr’
"c"(count), "S"(&get_utcb()->mr[start]),
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:74:25: error: ‘class utcb_t’ has no member named ‘mr’
"D"(&dest->get_utcb()->mr[start]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:534:13: error: no declaration matches ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
INLINE void tcb_t::arch_init_root_server (space_t * space, word_t ip, word_t sp)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:534:13: note: no functions named ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_cpu(cpuid_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:65:11: error: ‘class tcb_t’ has no member named ‘cpu’
this->cpu = cpu;
^~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_utcb_location(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: error: ‘myself_local’ was not declared in this scope
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: note: suggested alternative: ‘myself_global’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:60: error: ‘class utcb_t’ has no member named ‘mr’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_utcb_location()’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: error: ‘myself_local’ was not declared in this scope
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: note: suggested alternative: ‘myself_global’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:54: error: ‘class utcb_t’ has no member named ‘mr’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_mr(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:95:24: error: ‘class utcb_t’ has no member named ‘mr’
return get_utcb()->mr[index];
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_mr(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:106:17: error: ‘class utcb_t’ has no member named ‘mr’
get_utcb()->mr[index] = value;
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: error: no declaration matches ‘word_t tcb_t::get_br(word_t)’
INLINE word_t tcb_t::get_br(word_t index)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: note: no functions named ‘word_t tcb_t::get_br(word_t)’
In file included from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: error: no declaration matches ‘void tcb_t::set_br(word_t, word_t)’
INLINE void tcb_t::set_br(word_t index, word_t value)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: note: no functions named ‘void tcb_t::set_br(word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: error: no declaration matches ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
INLINE void tcb_t::adjust_for_copy_area (tcb_t * dst,
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: note: no functions named ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
In file included from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: error: no declaration matches ‘void tcb_t::release_copy_area()’
INLINE void tcb_t::release_copy_area (void)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: note: no functions named ‘void tcb_t::release_copy_area()’
In file included from /home/tyson/Orion/kernel/ubd/_1568056610_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c: In function ‘void make_offsets()’:
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:51:51: error: ‘class tcb_t’ has no member named ‘sched_state’; did you mean ‘saved_state’?
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:51:36: note: in expansion of macro ‘offsetof’
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:54:34: error: ‘class utcb_t’ has no member named ‘br’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:54:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:64:44: error: ‘class utcb_t’ has no member named ‘xfer_timeout’
O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
^~~~~~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:64:28: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:69:34: error: ‘class utcb_t’ has no member named ‘mr’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ubd/_1568056610_123.c:69:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~~~~~~~
make[1]: *** No rule to make target '/home/tyson/Orion/kernel/ubd/include/tcb_layout.h', needed by 'tcb_layout.h'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/ubd'
make: *** [Makefile:38: all] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$
from orion.
The 32-bit port currently does this:
make[1]: Entering directory '/home/tyson/Orion/kernel/ibd'
===> Building dependencies
===> Generating include/tcb_layout.h
In file included from <command-line>:
/home/tyson/Orion/kernel/src/generic/macros.h:55:33: fatal error: arch/x86/traceids.h: No such file or directory
#define INC_ARCH(x) <arch/__ARCH__/x>
^
compilation terminated.
make[1]: *** No rule to make target '/home/tyson/Orion/kernel/ibd/include/tcb_layout.h', needed by 'tcb_layout.h'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/ibd'
make: *** [Makefile:38: all] Error 2
Seems like a regression.
from orion.
64-bit one:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ibd$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/ibd'
===> Building dependencies
===> Generating include/tcb_layout.h
In file included from <command-line>:
/home/tyson/Orion/kernel/src/generic/macros.h:55:33: fatal error: arch/x86/traceids.h: No such file or directory
#define INC_ARCH(x) <arch/__ARCH__/x>
^
compilation terminated.
make[1]: *** No rule to make target '/home/tyson/Orion/kernel/ibd/include/tcb_layout.h', needed by 'tcb_layout.h'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/ibd'
make: *** [Makefile:38: all] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ibd$ make menuconfig
make[1]: Entering directory '/home/tyson/Orion/kernel/ibd'
make[2]: Entering directory '/home/tyson/Orion/kernel/ibd/config'
Rewriting Makeconf.local ...
make[2]: Leaving directory '/home/tyson/Orion/kernel/ibd/config'
make[1]: Leaving directory '/home/tyson/Orion/kernel/ibd'
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ibd$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/ibd'
===> Generating include/tcb_layout.h
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:48: error: macro "SYS_IPC" requires 3 arguments, but only 2 given
SYS_IPC (threadid_t to_tid, threadid_t from_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
threadid_t recv_redirector_tid, word_t utcb_location);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
word_t uhandle, threadid_t pager_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
fpage_t utcb_area);
^
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:49:16: error: ‘IPC_NUM_BR’ was not declared in this scope
word_t br[IPC_NUM_BR]; /* -196 .. -64 */
^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:59:5: error: ‘timeout_t’ does not name a type
timeout_t xfer_timeout; /* -32 */
^~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:64:16: error: ‘IPC_NUM_MR’ was not declared in this scope
word_t mr[IPC_NUM_MR]; /* 0 .. 252 */
^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:82:5: error: ‘timeout_t’ does not name a type
timeout_t get_xfer_timeout();
^~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:89,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/generic-utcb.h:96:8: error: ‘timeout_t’ does not name a type
INLINE timeout_t utcb_t::get_xfer_timeout()
^~~~~~~~~
In file included from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘tcb_t* tcb_t::get_partner_tcb()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:425:31: error: ‘class space_t’ has no member named ‘get_tcb’; did you mean ‘add_tcb’?
return this->get_space()->get_tcb(partner);
^~~~~~~
add_tcb
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::clear_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:570:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits = 0;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::add_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:578:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits |= bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::sub_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:586:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits &= ~(bits);
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:594:24: error: ‘class utcb_t’ has no member named ‘notify_bits’
return get_utcb()->notify_bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_mask()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:602:24: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
return get_utcb()->notify_mask;
^~~~~~~~~~~
word_size_mask
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::set_notify_mask(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:611:17: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
get_utcb()->notify_mask = mask;
^~~~~~~~~~~
word_size_mask
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:1: error: ‘SYS_IPC’ does not name a type
SYS_IPC (threadid_t to_tid, threadid_t from_tid);
^~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:73:1: error: ‘SYS_THREAD_CONTROL’ does not name a type
SYS_THREAD_CONTROL (threadid_t dest_tid, threadid_t space_tid,
^~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:88:1: error: ‘SYS_EXCHANGE_REGISTERS’ does not name a type
SYS_EXCHANGE_REGISTERS (threadid_t dest_tid, word_t control,
^~~~~~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:124:1: error: ‘SYS_SPACE_CONTROL’ does not name a type
SYS_SPACE_CONTROL (threadid_t space_tid, word_t control, fpage_t kip_area,
^~~~~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h: In member function ‘void tcb_t::copy_mrs(tcb_t*, word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:64:31: error: ‘class utcb_t’ has no member named ‘mr’
"c"(count), "S"(&get_utcb()->mr[start]),
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:65:25: error: ‘class utcb_t’ has no member named ‘mr’
"D"(&dest->get_utcb()->mr[start]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:364:13: error: no declaration matches ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
INLINE void tcb_t::arch_init_root_server (space_t * space, word_t ip, word_t sp)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:364:13: note: no functions named ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_cpu(cpuid_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:65:11: error: ‘class tcb_t’ has no member named ‘cpu’
this->cpu = cpu;
^~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_utcb_location(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: error: ‘myself_local’ was not declared in this scope
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: note: suggested alternative: ‘myself_global’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:60: error: ‘class utcb_t’ has no member named ‘mr’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_utcb_location()’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: error: ‘myself_local’ was not declared in this scope
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: note: suggested alternative: ‘myself_global’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:54: error: ‘class utcb_t’ has no member named ‘mr’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_mr(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:95:24: error: ‘class utcb_t’ has no member named ‘mr’
return get_utcb()->mr[index];
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_mr(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:106:17: error: ‘class utcb_t’ has no member named ‘mr’
get_utcb()->mr[index] = value;
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: error: no declaration matches ‘word_t tcb_t::get_br(word_t)’
INLINE word_t tcb_t::get_br(word_t index)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: note: no functions named ‘word_t tcb_t::get_br(word_t)’
In file included from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: error: no declaration matches ‘void tcb_t::set_br(word_t, word_t)’
INLINE void tcb_t::set_br(word_t index, word_t value)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: note: no functions named ‘void tcb_t::set_br(word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: error: no declaration matches ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
INLINE void tcb_t::adjust_for_copy_area (tcb_t * dst,
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: note: no functions named ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
In file included from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: error: no declaration matches ‘void tcb_t::release_copy_area()’
INLINE void tcb_t::release_copy_area (void)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: note: no functions named ‘void tcb_t::release_copy_area()’
In file included from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/ibd/_1568079795_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘bool tcb_t::is_local_cpu()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:739:13: error: ‘get_current_cpu’ was not declared in this scope
return (get_current_cpu() == get_cpu());
^~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h:739:13: note: suggested alternative: ‘get_current_tcb’
return (get_current_cpu() == get_cpu());
^~~~~~~~~~~~~~~
get_current_tcb
/home/tyson/Orion/kernel/ibd/_1568079795_123.c: In function ‘void make_offsets()’:
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:51:51: error: ‘class tcb_t’ has no member named ‘sched_state’; did you mean ‘saved_state’?
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~~~~
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:51:36: note: in expansion of macro ‘offsetof’
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:54:34: error: ‘class utcb_t’ has no member named ‘br’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:54:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~~~~~~~
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:64:44: error: ‘class utcb_t’ has no member named ‘xfer_timeout’
O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
^~~~~~~~~~~~
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:64:28: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
^~~~~~~~
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:69:34: error: ‘class utcb_t’ has no member named ‘mr’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ibd/_1568079795_123.c:69:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~~~~~~~
===> src/arch/x86/x64/init32.cc
cd src/arch/x86/x64/ && gcc -nostdinc -I/home/tyson/Orion/kernel/ibd/include -I/home/tyson/Orion/kernel/src -I/home/tyson/Orion/kernel/src/generic -I/usr/lib/gcc/x86_64-linux-gnu/8/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /home/tyson/Orion/kernel/ibd/config/config.h -imacros /home/tyson/Orion/kernel/src/generic/macros.h -include /home/tyson/Orion/kernel/src/generic/config.h -include /home/tyson/Orion/kernel/src/generic/types.h -DX64_32BIT_CODE -fno-rtti -fno-builtin -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2 -m32 -mno-red-zone -fno-pie -fno-stack-protector -lssp -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -Wconversion -x c++ -c /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc -o init32.o
In file included from /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc:40:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h: In static member function ‘static void x86_mmu_t::enable_long_mode()’:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h:170:28: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘word_t’ {aka ‘unsigned int’} may change value [-Wconversion]
word_t efer = x86_rdmsr(X86_MSR_EFER);
~~~~~~~~~^~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/arch/x86/mmu.h: In static member function ‘static bool x86_mmu_t::long_mode_active()’:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h:182:28: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘word_t’ {aka ‘unsigned int’} may change value [-Wconversion]
word_t efer = x86_rdmsr(X86_MSR_EFER);
~~~~~~~~~^~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/arch/x86/segdesc.h:20,
from /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc:41:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h: In member function ‘void x86_segdesc_t::set_seg(u64_t, x86_segdesc_t::segtype_e, int, x86_segdesc_t::mode_e, x86_segdesc_t::msr_e)’:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:80:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
x.d.type = type;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:81:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
x.d.l = mode;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:82:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:2’ may change value [-Wconversion]
x.d.dpl = dpl;
^~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h: In member function ‘void x86_segdesc_t::set_seg(u32_t, x86_segdesc_t::segtype_e, int, x86_segdesc_t::mode_e)’:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:99:36: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char’ may change value [-Wconversion]
x.d.base_high = (base >> 24) & 0xFF;
~~~~~~~~~~~~~^~~~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:101:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
x.d.type = type;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:102:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
x.d.l = mode;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:103:16: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:2’ may change value [-Wconversion]
x.d.dpl = dpl;
^~~
cd src/arch/x86/x64/ && objcopy -g -O elf64-x86-64 init32.o init32.o
===> src/arch/x86/x64/cpu.cc
cd src/arch/x86/x64/ && gcc -nostdinc -I/home/tyson/Orion/kernel/ibd/include -I/home/tyson/Orion/kernel/src -I/home/tyson/Orion/kernel/src/generic -I/usr/lib/gcc/x86_64-linux-gnu/8/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /home/tyson/Orion/kernel/ibd/config/config.h -imacros /home/tyson/Orion/kernel/src/generic/macros.h -include /home/tyson/Orion/kernel/src/generic/config.h -include /home/tyson/Orion/kernel/src/generic/types.h -fno-rtti -fno-builtin -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2 -m64 -mcmodel=kernel -mno-red-zone -fno-pie -fno-stack-protector -lssp -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -Wconversion -c /home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc
/home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc: In constructor ‘x86_x64_cpu_features_t::x86_x64_cpu_features_t()’:
/home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc:66:25: warning: conversion from ‘u32_t’ {aka ‘unsigned int’} to ‘u8_t’ {aka ‘unsigned char’} may change value [-Wconversion]
apic_id = ((ebx >> 24) & 0xFF);
~~~~~~~~~~~~~^~~~~~~
===> src/glue/v4-x86/x64/space.cc
cd src/glue/v4-x86/x64/ && gcc -nostdinc -I/home/tyson/Orion/kernel/ibd/include -I/home/tyson/Orion/kernel/src -I/home/tyson/Orion/kernel/src/generic -I/usr/lib/gcc/x86_64-linux-gnu/8/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /home/tyson/Orion/kernel/ibd/config/config.h -imacros /home/tyson/Orion/kernel/src/generic/macros.h -include /home/tyson/Orion/kernel/src/generic/config.h -include /home/tyson/Orion/kernel/src/generic/types.h -fno-rtti -fno-builtin -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2 -m64 -mcmodel=kernel -mno-red-zone -fno-pie -fno-stack-protector -lssp -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -Wconversion -c /home/tyson/Orion/kernel/src/glue/v4-x86/x64/space.cc
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/src/glue/v4-x86/x64/space.cc:38:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:48: error: macro "SYS_IPC" requires 3 arguments, but only 2 given
SYS_IPC (threadid_t to_tid, threadid_t from_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
threadid_t recv_redirector_tid, word_t utcb_location);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
word_t uhandle, threadid_t pager_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
fpage_t utcb_area);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/src/glue/v4-x86/x64/space.cc:38:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:81:10: fatal error: tcb_layout.h: No such file or directory
#include <tcb_layout.h>
^~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [/home/tyson/Orion/kernel/Mk/Makeconf:208: src/glue/v4-x86/x64/space.o] Error 1
make[1]: Leaving directory '/home/tyson/Orion/kernel/ibd'
make: *** [Makefile:38: all] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ibd$
from orion.
Unsure if it's a happy accident, or a glitch, but with GCC-6, on x86-64, I could seemingly build most of userland:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user$ make
make[1]: Entering directory '/home/tyson/Orion/user/lib'
make[2]: Entering directory '/home/tyson/Orion/user/lib/l4'
===> Making dependencies in .
===> debug.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c debug.cc -o debug.o
===> amd64.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c amd64.cc -o amd64.o
===> Linking ./libl4.a
ar cru libl4.a debug.o amd64.o
ar: `u' modifier ignored since `D' is the default (see `U')
ranlib libl4.a
cp libl4.a ../../lib/libl4.a
make[2]: Leaving directory '/home/tyson/Orion/user/lib/l4'
make[2]: Entering directory '/home/tyson/Orion/user/lib/io'
===> Making dependencies in .
===> get_hex.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c get_hex.cc -o get_hex.o
===> print.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c print.cc -o print.o
print.cc: In function ‘int __l4_vsnprintf(char*, L4_Size_t, const char*, __va_list_tag*)’:
print.cc:111:25: warning: variable ‘uval2’ set but not used [-Wunused-but-set-variable]
unsigned long uval, uval2;
^~~~~
In file included from print.cc:35:0:
lib.h: At global scope:
lib.h:112:1: warning: ‘char* strchr(const char*, int)’ defined but not used [-Wunused-function]
strchr(const char *p, int ch)
^~~~~~
lib.h:93:1: warning: ‘char* strstr(const char*, const char*)’ defined but not used [-Wunused-function]
strstr(const char *s, const char *find)
^~~~~~
lib.h:67:1: warning: ‘int strcmp(const char*, const char*)’ defined but not used [-Wunused-function]
strcmp(const char *s1, const char *s2)
^~~~~~
lib.h:44:13: warning: ‘void strcpy(char*, const char*)’ defined but not used [-Wunused-function]
static void strcpy( char *dst, const char *src )
^~~~~~
===> amd64.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c amd64.cc -o amd64.o
===> Linking ./libio.a
ar cru libio.a get_hex.o print.o amd64.o
ar: `u' modifier ignored since `D' is the default (see `U')
ranlib libio.a
cp libio.a ../../lib/libio.a
make[2]: Leaving directory '/home/tyson/Orion/user/lib/io'
make[1]: Leaving directory '/home/tyson/Orion/user/lib'
make[1]: Entering directory '/home/tyson/Orion/user/serv'
make[2]: Entering directory '/home/tyson/Orion/user/serv/sigma0'
===> Making dependencies in .
===> crt0-amd64.S
gcc-6 -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -c crt0-amd64.S -o crt0-amd64.o
===> sigma0_io.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c sigma0_io.cc -o sigma0_io.o
===> sigma0.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c sigma0.cc -o sigma0.o
===> sigma0_mem.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c sigma0_mem.cc -o sigma0_mem.o
===> region.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c region.cc -o region.o
===> Linking ./sigma0
ld -e_start -N -L../../lib -L/usr/lib/gcc/x86_64-linux-gnu/6 -nostdlib -melf_x86_64 -Ttext=00f00000 crt0-amd64.o sigma0_io.o sigma0.o sigma0_mem.o region.o -ll4 -lio -lgcc -o sigma0
make[2]: Leaving directory '/home/tyson/Orion/user/serv/sigma0'
make[1]: Leaving directory '/home/tyson/Orion/user/serv'
make[1]: Entering directory '/home/tyson/Orion/user/apps'
make[2]: Entering directory '/home/tyson/Orion/user/apps/bench'
make[3]: Entering directory '/home/tyson/Orion/user/apps/bench/pingpong'
===> Making dependencies in .
===> crt0-amd64.S
gcc-6 -I../../../include -I../../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -c crt0-amd64.S -o crt0-amd64.o
===> pingpong.cc
gcc-6 -x c++ -I../../../include -I../../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c pingpong.cc -o pingpong.o
pingpong.cc: In function ‘void ping_thread()’:
pingpong.cc:218:19: warning: variable ‘pong_ltid’ set but not used [-Wunused-but-set-variable]
L4_ThreadId_t pong_ltid = L4_LocalId (pong_tid);
^~~~~~~~~
pingpong.cc: In function ‘int main()’:
pingpong.cc:416:21: warning: variable ‘q’ set but not used [-Wunused-but-set-variable]
volatile L4_Word_t q;
^
pingpong.cc:452:54: warning: variable ‘result’ set but not used [-Wunused-but-set-variable]
L4_Word_t sched_control = 0, old_sched_control = 0, result = 0;
^~~~~~
In file included from ../../../include/l4/kip.h:36:0,
from pingpong.cc:34:
../../../include/l4/amd64/syscalls.h: In function ‘L4_Clock_t L4_SystemClock()’:
../../../include/l4/amd64/syscalls.h:197:19: warning: ‘ret.L4_Clock_t::raw’ is used uninitialized in this function [-Wuninitialized]
[dest] "0" (ret.raw) /* %1 RAX */
~~~~^~~
../../../include/l4/amd64/syscalls.h: In function ‘void ping_thread()’:
../../../include/l4/amd64/syscalls.h:201:3: warning: ‘ret.L4_Clock_t::raw’ is used uninitialized in this function [-Wuninitialized]
);
^
../../../include/l4/amd64/syscalls.h:187:16: note: ‘ret.L4_Clock_t::raw’ was declared here
L4_Clock_t ret;
^~~
../../../include/l4/amd64/syscalls.h:201:3: warning: ‘ret.L4_Clock_t::raw’ is used uninitialized in this function [-Wuninitialized]
);
^
../../../include/l4/amd64/syscalls.h:187:16: note: ‘ret.L4_Clock_t::raw’ was declared here
L4_Clock_t ret;
^~~
gcc-6 -I../../../include -I../../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -m32 -fno-exceptions -fno-stack-protector -lssp -fno-stack-protector -lssp -x c++ -c pingpong-amd64-32.cc -o pingpong-amd64-32.o
objcopy -g -O elf64-x86-64 pingpong-amd64-32.o pingpong-amd64-32.o
===> Linking ./pingpong
ld -e_start -N -L../../../lib -L/usr/lib/gcc/x86_64-linux-gnu/6 -nostdlib -melf_x86_64 -Ttext=01000000 -fno-stack-protector -lssp crt0-amd64.o pingpong.o pingpong-amd64-32.o -ll4 -lio -lgcc -o pingpong
ld: -f may not be used without -shared
make[3]: *** [../../../Mk/l4.prog.mk:54: pingpong] Error 1
make[3]: Leaving directory '/home/tyson/Orion/user/apps/bench/pingpong'
make[2]: *** [../../Mk/l4.subdir.mk:41: subdirs-all] Error 2
make[2]: Leaving directory '/home/tyson/Orion/user/apps/bench'
make[1]: *** [../Mk/l4.subdir.mk:41: subdirs-all] Error 2
make[1]: Leaving directory '/home/tyson/Orion/user/apps'
make: *** [Mk/l4.subdir.mk:41: subdirs-all] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user$ git add ~/Orion/
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user$ git commit -am "Rebuild userland"
[master 282f28a] Rebuild userland
1 file changed, 10 insertions(+), 10 deletions(-)
rewrite user/lib/l4/.depend (78%)
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user$
from orion.
With liblinux, but no malloc:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user$ make
make[1]: Entering directory '/home/tyson/Orion/user/lib'
make[2]: Entering directory '/home/tyson/Orion/user/lib/l4'
===> Making dependencies in .
===> debug.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c debug.cc -o debug.o
===> amd64.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c amd64.cc -o amd64.o
===> Linking ./libl4.a
ar cru libl4.a debug.o amd64.o
ar: `u' modifier ignored since `D' is the default (see `U')
ranlib libl4.a
cp libl4.a ../../lib/libl4.a
make[2]: Leaving directory '/home/tyson/Orion/user/lib/l4'
make[2]: Entering directory '/home/tyson/Orion/user/lib/io'
===> Making dependencies in .
===> get_hex.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c get_hex.cc -o get_hex.o
===> print.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c print.cc -o print.o
print.cc: In function ‘int __l4_vsnprintf(char*, L4_Size_t, const char*, __va_list_tag*)’:
print.cc:111:25: warning: variable ‘uval2’ set but not used [-Wunused-but-set-variable]
unsigned long uval, uval2;
^~~~~
In file included from print.cc:35:0:
lib.h: At global scope:
lib.h:112:1: warning: ‘char* strchr(const char*, int)’ defined but not used [-Wunused-function]
strchr(const char *p, int ch)
^~~~~~
lib.h:93:1: warning: ‘char* strstr(const char*, const char*)’ defined but not used [-Wunused-function]
strstr(const char *s, const char *find)
^~~~~~
lib.h:67:1: warning: ‘int strcmp(const char*, const char*)’ defined but not used [-Wunused-function]
strcmp(const char *s1, const char *s2)
^~~~~~
lib.h:44:13: warning: ‘void strcpy(char*, const char*)’ defined but not used [-Wunused-function]
static void strcpy( char *dst, const char *src )
^~~~~~
===> amd64.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c amd64.cc -o amd64.o
===> Linking ./libio.a
ar cru libio.a get_hex.o print.o amd64.o
ar: `u' modifier ignored since `D' is the default (see `U')
ranlib libio.a
cp libio.a ../../lib/libio.a
make[2]: Leaving directory '/home/tyson/Orion/user/lib/io'
make[2]: Entering directory '/home/tyson/Orion/user/lib/linux'
===> Linking ./liblinux.a
ar cru liblinux.a
ar: `u' modifier ignored since `D' is the default (see `U')
ranlib liblinux.a
cp liblinux.a ../../lib/liblinux.a
make[2]: Leaving directory '/home/tyson/Orion/user/lib/linux'
make[1]: Leaving directory '/home/tyson/Orion/user/lib'
make[1]: Entering directory '/home/tyson/Orion/user/serv'
make[2]: Entering directory '/home/tyson/Orion/user/serv/sigma0'
===> Making dependencies in .
===> crt0-amd64.S
gcc-6 -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -c crt0-amd64.S -o crt0-amd64.o
===> sigma0_io.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c sigma0_io.cc -o sigma0_io.o
===> sigma0.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c sigma0.cc -o sigma0.o
===> sigma0_mem.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c sigma0_mem.cc -o sigma0_mem.o
===> region.cc
gcc-6 -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c region.cc -o region.o
===> Linking ./sigma0
ld -e_start -N -L../../lib -L/usr/lib/gcc/x86_64-linux-gnu/6 -nostdlib -melf_x86_64 -Ttext=00f00000 crt0-amd64.o sigma0_io.o sigma0.o sigma0_mem.o region.o -ll4 -lio -lgcc -o sigma0
make[2]: Leaving directory '/home/tyson/Orion/user/serv/sigma0'
make[1]: Leaving directory '/home/tyson/Orion/user/serv'
make[1]: Entering directory '/home/tyson/Orion/user/apps'
make[2]: Entering directory '/home/tyson/Orion/user/apps/bench'
make[3]: Entering directory '/home/tyson/Orion/user/apps/bench/pingpong'
===> Making dependencies in .
===> crt0-amd64.S
gcc-6 -I../../../include -I../../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -c crt0-amd64.S -o crt0-amd64.o
===> pingpong.cc
gcc-6 -x c++ -I../../../include -I../../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c pingpong.cc -o pingpong.o
pingpong.cc: In function ‘void ping_thread()’:
pingpong.cc:218:19: warning: variable ‘pong_ltid’ set but not used [-Wunused-but-set-variable]
L4_ThreadId_t pong_ltid = L4_LocalId (pong_tid);
^~~~~~~~~
pingpong.cc: In function ‘int main()’:
pingpong.cc:416:21: warning: variable ‘q’ set but not used [-Wunused-but-set-variable]
volatile L4_Word_t q;
^
pingpong.cc:452:54: warning: variable ‘result’ set but not used [-Wunused-but-set-variable]
L4_Word_t sched_control = 0, old_sched_control = 0, result = 0;
^~~~~~
In file included from ../../../include/l4/kip.h:36:0,
from pingpong.cc:34:
../../../include/l4/amd64/syscalls.h: In function ‘L4_Clock_t L4_SystemClock()’:
../../../include/l4/amd64/syscalls.h:197:19: warning: ‘ret.L4_Clock_t::raw’ is used uninitialized in this function [-Wuninitialized]
[dest] "0" (ret.raw) /* %1 RAX */
~~~~^~~
../../../include/l4/amd64/syscalls.h: In function ‘void ping_thread()’:
../../../include/l4/amd64/syscalls.h:201:3: warning: ‘ret.L4_Clock_t::raw’ is used uninitialized in this function [-Wuninitialized]
);
^
../../../include/l4/amd64/syscalls.h:187:16: note: ‘ret.L4_Clock_t::raw’ was declared here
L4_Clock_t ret;
^~~
../../../include/l4/amd64/syscalls.h:201:3: warning: ‘ret.L4_Clock_t::raw’ is used uninitialized in this function [-Wuninitialized]
);
^
../../../include/l4/amd64/syscalls.h:187:16: note: ‘ret.L4_Clock_t::raw’ was declared here
L4_Clock_t ret;
^~~
gcc-6 -I../../../include -I../../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include -m32 -fno-exceptions -fno-stack-protector -lssp -fno-stack-protector -lssp -x c++ -c pingpong-amd64-32.cc -o pingpong-amd64-32.o
objcopy -g -O elf64-x86-64 pingpong-amd64-32.o pingpong-amd64-32.o
===> Linking ./pingpong
ld -e_start -N -L../../../lib -L/usr/lib/gcc/x86_64-linux-gnu/6 -nostdlib -melf_x86_64 -Ttext=01000000 -fno-stack-protector -lssp crt0-amd64.o pingpong.o pingpong-amd64-32.o -ll4 -lio -lgcc -o pingpong
ld: -f may not be used without -shared
make[3]: *** [../../../Mk/l4.prog.mk:54: pingpong] Error 1
make[3]: Leaving directory '/home/tyson/Orion/user/apps/bench/pingpong'
make[2]: *** [../../Mk/l4.subdir.mk:41: subdirs-all] Error 2
make[2]: Leaving directory '/home/tyson/Orion/user/apps/bench'
make[1]: *** [../Mk/l4.subdir.mk:41: subdirs-all] Error 2
make[1]: Leaving directory '/home/tyson/Orion/user/apps'
make: *** [Mk/l4.subdir.mk:41: subdirs-all] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user$
from orion.
As a side-effect of other work, quite a lot of the x86-64 stuff seems to build, at the moment, and as part of #22, I moved over some of the NICTA x86 stuff, for later examination.
from orion.
Some problem, right now, with the x86-32 build:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/ubd'
===> Building dependencies
===> Generating include/tcb_layout.h
In file included from <command-line>:
/home/tyson/Orion/kernel/src/generic/macros.h:55:33: fatal error: arch/x86/traceids.h: No such file or directory
#define INC_ARCH(x) <arch/__ARCH__/x>
^
compilation terminated.
make[1]: *** No rule to make target '/home/tyson/Orion/kernel/ubd/include/tcb_layout.h', needed by 'tcb_layout.h'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/ubd'
make: *** [Makefile:38: all] Error 2
from orion.
After moving the NICTA version of traceids.h, we get to:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$ cat B1e
/home/tyson/Orion/kernel/src/arch/x86/pgent.h:87:19: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:64:29: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:103:34: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:104:17: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:58:39: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:59:21: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/arch/x86/pgent.h:87:6: error: ‘ASSERT’ was not declared in this scope
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:64:3: error: ‘ASSERT’ was not declared in this scope
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:103:6: error: ‘ASSERT’ was not declared in this scope
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:57:9: error: ‘bitmask_t’ is not a template
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:49:16: error: ‘IPC_NUM_BR’ was not declared in this scope
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:64:16: error: ‘IPC_NUM_MR’ was not declared in this scope
/home/tyson/Orion/kernel/src/api/v4/tcb.h:53:13: error: conflicting declaration ‘typedef int prio_t’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:425:31: error: ‘class space_t’ has no member named ‘get_tcb’; did you mean ‘add_tcb’?
/home/tyson/Orion/kernel/src/api/v4/tcb.h:570:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:578:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:586:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:594:24: error: ‘class utcb_t’ has no member named ‘notify_bits’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:602:24: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
/home/tyson/Orion/kernel/src/api/v4/tcb.h:611:17: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:73:1: error: ‘SYS_THREAD_CONTROL’ does not name a type
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:88:1: error: ‘SYS_EXCHANGE_REGISTERS’ does not name a type
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:124:1: error: ‘SYS_SPACE_CONTROL’ does not name a type
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:58:5: error: ‘ASSERT’ was not declared in this scope
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:73:31: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:74:25: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:534:13: error: no declaration matches ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: error: ‘myself_local’ was not declared in this scope
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:60: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: error: ‘myself_local’ was not declared in this scope
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:54: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:95:24: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:106:17: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: error: no declaration matches ‘word_t tcb_t::get_br(word_t)’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: error: no declaration matches ‘void tcb_t::set_br(word_t, word_t)’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: error: no declaration matches ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: error: no declaration matches ‘void tcb_t::release_copy_area()’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:739:13: error: ‘get_current_cpu’ was not declared in this scope
/home/tyson/Orion/kernel/ubd/_1569794966_123.c:55:51: error: ‘class tcb_t’ has no member named ‘sched_state’; did you mean ‘saved_state’?
/home/tyson/Orion/kernel/ubd/_1569794966_123.c:58:34: error: ‘class utcb_t’ has no member named ‘br’
/home/tyson/Orion/kernel/ubd/_1569794966_123.c:73:34: error: ‘class utcb_t’ has no member named ‘mr’
from orion.
State of x86-64 build:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$ cat B2e
/home/tyson/Orion/kernel/src/arch/x86/pgent.h:87:19: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:64:29: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:103:34: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:104:17: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:58:39: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:59:21: error: macro "ASSERT" requires 2 arguments, but only 1 given
/home/tyson/Orion/kernel/src/arch/x86/pgent.h:87:6: error: ‘ASSERT’ was not declared in this scope
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:64:3: error: ‘ASSERT’ was not declared in this scope
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:103:6: error: ‘ASSERT’ was not declared in this scope
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:57:9: error: ‘bitmask_t’ is not a template
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:49:16: error: ‘IPC_NUM_BR’ was not declared in this scope
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:64:16: error: ‘IPC_NUM_MR’ was not declared in this scope
/home/tyson/Orion/kernel/src/api/v4/tcb.h:53:13: error: conflicting declaration ‘typedef int prio_t’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:425:31: error: ‘class space_t’ has no member named ‘get_tcb’; did you mean ‘add_tcb’?
/home/tyson/Orion/kernel/src/api/v4/tcb.h:570:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:578:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:586:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:594:24: error: ‘class utcb_t’ has no member named ‘notify_bits’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:602:24: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
/home/tyson/Orion/kernel/src/api/v4/tcb.h:611:17: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:73:1: error: ‘SYS_THREAD_CONTROL’ does not name a type
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:88:1: error: ‘SYS_EXCHANGE_REGISTERS’ does not name a type
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:124:1: error: ‘SYS_SPACE_CONTROL’ does not name a type
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:58:5: error: ‘ASSERT’ was not declared in this scope
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:73:31: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:74:25: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:534:13: error: no declaration matches ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: error: ‘myself_local’ was not declared in this scope
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:60: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: error: ‘myself_local’ was not declared in this scope
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:54: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:95:24: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:106:17: error: ‘class utcb_t’ has no member named ‘mr’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: error: no declaration matches ‘word_t tcb_t::get_br(word_t)’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: error: no declaration matches ‘void tcb_t::set_br(word_t, word_t)’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: error: no declaration matches ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: error: no declaration matches ‘void tcb_t::release_copy_area()’
/home/tyson/Orion/kernel/src/api/v4/tcb.h:739:13: error: ‘get_current_cpu’ was not declared in this scope
/home/tyson/Orion/kernel/ubd/_1569794966_123.c:55:51: error: ‘class tcb_t’ has no member named ‘sched_state’; did you mean ‘saved_state’?
/home/tyson/Orion/kernel/ubd/_1569794966_123.c:58:34: error: ‘class utcb_t’ has no member named ‘br’
/home/tyson/Orion/kernel/ubd/_1569794966_123.c:73:34: error: ‘class utcb_t’ has no member named ‘mr’
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$
from orion.
With a little force, I was able to build the userland, for x86-64, mostly.
from orion.
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user/apps/system$ make
===> Making dependencies in .
===> crt0-amd64.S
gcc -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/8/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -c crt0-amd64.S -o crt0-amd64.o
===> syslaunch.cc
gcc -x c++ -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/8/include -nostdinc -g -O2 -m64 -mno-red-zone -fno-stack-protector -lssp -O2 -g -Wall -Wshadow -fno-stack-protector -Wconversion -fno-exceptions -c syslaunch.cc -o syslaunch.o
In file included from syslaunch.h:7,
from syslaunch.cc:1:
../../include/l4io.h:46:6: warning: declaration of ‘void putc(int)’ conflicts with built-in declaration ‘int putc(int, void*)’ [-Wbuiltin-declaration-mismatch]
void putc(int c);
^~~~
syslaunch.cc: In function ‘int main()’:
syslaunch.cc:98:12: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘L4_Word64_t’ {aka ‘long unsigned int’} [-Wformat=]
printf("The clock says: %d\n", L4_SystemClock().raw);
^~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
In file included from ../../include/l4/kip.h:36,
from ../../include/l4/sigma0.h:36,
from syslaunch.h:8,
from syslaunch.cc:1:
../../include/l4/amd64/syscalls.h: In function ‘L4_Clock_t L4_SystemClock()’:
../../include/l4/amd64/syscalls.h:197:19: warning: ‘ret.L4_Clock_t::raw’ is used uninitialized in this function [-Wuninitialized]
[dest] "0" (ret.raw) /* %1 RAX */
~~~~^~~
../../include/l4/amd64/syscalls.h: In function ‘int main()’:
../../include/l4/amd64/syscalls.h:201:3: warning: ‘ret.L4_Clock_t::raw’ is used uninitialized in this function [-Wuninitialized]
);
^
../../include/l4/amd64/syscalls.h:187:16: note: ‘ret.L4_Clock_t::raw’ was declared here
L4_Clock_t ret;
^~~
===> Linking ./syslaunch
ld -e_start -N -L../../lib -L/usr/lib/gcc/x86_64-linux-gnu/8 -nostdlib -melf_x86_64 -Ttext=01000000 crt0-amd64.o syslaunch.o -ll4 -lio -llinux -lgcc -o syslaunch
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user/apps/system$
from orion.
Fixed the ASSERT
API calls, so now we get to :
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ib2$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/ib2'
===> Building dependencies
===> Generating include/tcb_layout.h
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
threadid_t recv_redirector_tid, word_t utcb_location);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
word_t uhandle, threadid_t pager_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
fpage_t utcb_area);
^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/ktcb.h:16,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:50,
from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:57:9: error: ‘bitmask_t’ is not a template
typedef bitmask_t<u32_t> ctrlxfer_mask_t;
^~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:49:16: error: ‘IPC_NUM_BR’ was not declared in this scope
word_t br[IPC_NUM_BR]; /* -196 .. -64 */
^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:64:16: error: ‘IPC_NUM_MR’ was not declared in this scope
word_t mr[IPC_NUM_MR]; /* 0 .. 252 */
^~~~~~~~~~
In file included from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:53:13: error: conflicting declaration ‘typedef int prio_t’
typedef int prio_t;
^~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/x32/ktcb.h:39,
from /home/tyson/Orion/kernel/src/glue/v4-x86/ktcb.h:16,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:50,
from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/sched-rr/ktcb.h:28:14: note: previous declaration as ‘typedef u8_t prio_t’
typedef u8_t prio_t;
^~~~~~
In file included from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘tcb_t* tcb_t::get_partner_tcb()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:425:31: error: ‘class space_t’ has no member named ‘get_tcb’; did you mean ‘add_tcb’?
return this->get_space()->get_tcb(partner);
^~~~~~~
add_tcb
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::clear_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:570:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits = 0;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::add_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:578:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits |= bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::sub_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:586:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits &= ~(bits);
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:594:24: error: ‘class utcb_t’ has no member named ‘notify_bits’
return get_utcb()->notify_bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_mask()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:602:24: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
return get_utcb()->notify_mask;
^~~~~~~~~~~
word_size_mask
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::set_notify_mask(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:611:17: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
get_utcb()->notify_mask = mask;
^~~~~~~~~~~
word_size_mask
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:73:1: error: ‘SYS_THREAD_CONTROL’ does not name a type
SYS_THREAD_CONTROL (threadid_t dest_tid, threadid_t space_tid,
^~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:88:1: error: ‘SYS_EXCHANGE_REGISTERS’ does not name a type
SYS_EXCHANGE_REGISTERS (threadid_t dest_tid, word_t control,
^~~~~~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:124:1: error: ‘SYS_SPACE_CONTROL’ does not name a type
SYS_SPACE_CONTROL (threadid_t space_tid, word_t control, fpage_t kip_area,
^~~~~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h: In member function ‘void tcb_t::copy_mrs(tcb_t*, word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:73:31: error: ‘class utcb_t’ has no member named ‘mr’
"c"(count), "S"(&get_utcb()->mr[start]),
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:74:25: error: ‘class utcb_t’ has no member named ‘mr’
"D"(&dest->get_utcb()->mr[start]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:534:13: error: no declaration matches ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
INLINE void tcb_t::arch_init_root_server (space_t * space, word_t ip, word_t sp)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x32/tcb.h:534:13: note: no functions named ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_cpu(cpuid_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:65:11: error: ‘class tcb_t’ has no member named ‘cpu’
this->cpu = cpu;
^~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_utcb_location(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: error: ‘myself_local’ was not declared in this scope
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: note: suggested alternative: ‘myself_global’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:60: error: ‘class utcb_t’ has no member named ‘mr’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_utcb_location()’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: error: ‘myself_local’ was not declared in this scope
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: note: suggested alternative: ‘myself_global’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:54: error: ‘class utcb_t’ has no member named ‘mr’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_mr(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:95:24: error: ‘class utcb_t’ has no member named ‘mr’
return get_utcb()->mr[index];
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_mr(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:106:17: error: ‘class utcb_t’ has no member named ‘mr’
get_utcb()->mr[index] = value;
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: error: no declaration matches ‘word_t tcb_t::get_br(word_t)’
INLINE word_t tcb_t::get_br(word_t index)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: note: no functions named ‘word_t tcb_t::get_br(word_t)’
In file included from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: error: no declaration matches ‘void tcb_t::set_br(word_t, word_t)’
INLINE void tcb_t::set_br(word_t index, word_t value)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: note: no functions named ‘void tcb_t::set_br(word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: error: no declaration matches ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
INLINE void tcb_t::adjust_for_copy_area (tcb_t * dst,
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: note: no functions named ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
In file included from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: error: no declaration matches ‘void tcb_t::release_copy_area()’
INLINE void tcb_t::release_copy_area (void)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: note: no functions named ‘void tcb_t::release_copy_area()’
In file included from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/ib2/_1570613166_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘bool tcb_t::is_local_cpu()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:739:13: error: ‘get_current_cpu’ was not declared in this scope
return (get_current_cpu() == get_cpu());
^~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h:739:13: note: suggested alternative: ‘get_current_tcb’
return (get_current_cpu() == get_cpu());
^~~~~~~~~~~~~~~
get_current_tcb
/home/tyson/Orion/kernel/ib2/_1570613166_123.c: In function ‘void make_offsets()’:
/home/tyson/Orion/kernel/ib2/_1570613166_123.c:51:51: error: ‘class tcb_t’ has no member named ‘sched_state’; did you mean ‘saved_state’?
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~~~~
/home/tyson/Orion/kernel/ib2/_1570613166_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ib2/_1570613166_123.c:51:36: note: in expansion of macro ‘offsetof’
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~
/home/tyson/Orion/kernel/ib2/_1570613166_123.c:54:34: error: ‘class utcb_t’ has no member named ‘br’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~
/home/tyson/Orion/kernel/ib2/_1570613166_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ib2/_1570613166_123.c:54:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~~~~~~~
/home/tyson/Orion/kernel/ib2/_1570613166_123.c:69:34: error: ‘class utcb_t’ has no member named ‘mr’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~
/home/tyson/Orion/kernel/ib2/_1570613166_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ib2/_1570613166_123.c:69:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~~~~~~~
make[1]: *** No rule to make target '/home/tyson/Orion/kernel/ib2/include/tcb_layout.h', needed by 'tcb_layout.h'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/ib2'
make: *** [Makefile:38: all] Error 2
from orion.
Since enabling support for building on FreeBSD/x86-64, and fixing more ASSERT
s, we get:
3297,3335c3297,3387
< ===> src/arch/x86/x64/init32.cc
< cd src/arch/x86/x64/ && gcc -nostdinc -I/root/Orion/kernel/fbuild/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/local/lib/gcc9/gcc/x86_64-portbld-freebsd12.0/9.2.0/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /root/Orion/kernel/fbuild/config/config.h -imacros /root/Orion/kernel/src/generic/macros.h -include /root/Orion/kernel/src/generic/config.h -include /root/Orion/kernel/src/generic/types.h -DX64_32BIT_CODE -fno-rtti -fno-builtin -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2 -m32 -mno-red-zone -fno-pie -fno-stack-protector -lssp -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -Wconversion -x c++ -c /root/Orion/kernel/src/arch/x86/x64/init32.cc -o init32.o
< In file included from /root/Orion/kernel/src/arch/x86/x64/init32.cc:41:
< /root/Orion/kernel/src/arch/x86/mmu.h: In static member function 'static void x86_mmu_t::enable_long_mode()':
< /root/Orion/kernel/src/arch/x86/mmu.h:170:28: warning: conversion from 'u64_t' {aka 'long long unsigned int'} to 'word_t' {aka 'unsigned int'} may change value [-Wconversion]
< 170 | word_t efer = x86_rdmsr(X86_MSR_EFER);
< | ~~~~~~~~~^~~~~~~~~~~~~~
< /root/Orion/kernel/src/arch/x86/mmu.h: In static member function 'static bool x86_mmu_t::long_mode_active()':
< /root/Orion/kernel/src/arch/x86/mmu.h:182:28: warning: conversion from 'u64_t' {aka 'long long unsigned int'} to 'word_t' {aka 'unsigned int'} may change value [-Wconversion]
< 182 | word_t efer = x86_rdmsr(X86_MSR_EFER);
< | ~~~~~~~~~^~~~~~~~~~~~~~
< In file included from /root/Orion/kernel/src/arch/x86/segdesc.h:20,
< from /root/Orion/kernel/src/arch/x86/x64/init32.cc:42:
< /root/Orion/kernel/src/arch/x86/x64/segdesc.h: In member function 'void x86_segdesc_t::set_seg(u64_t, x86_segdesc_t::segtype_e, int, x86_segdesc_t::mode_e, x86_segdesc_t::msr_e)':
< /root/Orion/kernel/src/arch/x86/x64/segdesc.h:80:17: warning: conversion from 'u64_t' {aka 'long long unsigned int'} to 'unsigned char:4' may change value [-Wconversion]
< 80 | x.d.type = type;
< | ^~~~
< /root/Orion/kernel/src/arch/x86/x64/segdesc.h:81:17: warning: conversion from 'u64_t' {aka 'long long unsigned int'} to 'unsigned char:1' may change value [-Wconversion]
< 81 | x.d.l = mode;
< | ^~~~
< /root/Orion/kernel/src/arch/x86/x64/segdesc.h:82:17: warning: conversion from 'u64_t' {aka 'long long unsigned int'} to 'unsigned char:2' may change value [-Wconversion]
< 82 | x.d.dpl = dpl;
< | ^~~
< /root/Orion/kernel/src/arch/x86/x64/segdesc.h: In member function 'void x86_segdesc_t::set_seg(u32_t, x86_segdesc_t::segtype_e, int, x86_segdesc_t::mode_e)':
< /root/Orion/kernel/src/arch/x86/x64/segdesc.h:99:36: warning: conversion from 'u64_t' {aka 'long long unsigned int'} to 'unsigned char' may change value [-Wconversion]
< 99 | x.d.base_high = (base >> 24) & 0xFF;
< | ~~~~~~~~~~~~~^~~~~~
< /root/Orion/kernel/src/arch/x86/x64/segdesc.h:101:17: warning: conversion from 'u64_t' {aka 'long long unsigned int'} to 'unsigned char:4' may change value [-Wconversion]
< 101 | x.d.type = type;
< | ^~~~
< /root/Orion/kernel/src/arch/x86/x64/segdesc.h:102:17: warning: conversion from 'u64_t' {aka 'long long unsigned int'} to 'unsigned char:1' may change value [-Wconversion]
< 102 | x.d.l = mode;
< | ^~~~
< /root/Orion/kernel/src/arch/x86/x64/segdesc.h:103:16: warning: conversion from 'u64_t' {aka 'long long unsigned int'} to 'unsigned char:2' may change value [-Wconversion]
< 103 | x.d.dpl = dpl;
< | ^~~
< cd src/arch/x86/x64/ && objcopy -g -O elf64-x86-64 init32.o init32.o
< objcopy: gelf_get##REL failed: Invalid argument
< gmake[1]: *** [/root/Orion/kernel/src/arch/x86/x64/Makeconf:43: src/arch/x86/x64/init32.o] Error 1
---
> ===> src/arch/x86/x64/cpu.cc
> cd src/arch/x86/x64/ && gcc -nostdinc -I/root/Orion/kernel/fbuild/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/local/lib/gcc9/gcc/x86_64-portbld-freebsd12.0/9.2.0/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /root/Orion/kernel/fbuild/config/config.h -imacros /root/Orion/kernel/src/generic/macros.h -include /root/Orion/kernel/src/generic/config.h -include /root/Orion/kernel/src/generic/types.h -fno-rtti -fno-builtin -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2 -m64 -mcmodel=kernel -mno-red-zone -fno-pie -fno-stack-protector -lssp -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -Wconversion -c /root/Orion/kernel/src/arch/x86/x64/cpu.cc
> /root/Orion/kernel/src/arch/x86/x64/cpu.cc: In constructor 'x86_x64_cpu_features_t::x86_x64_cpu_features_t()':
> /root/Orion/kernel/src/arch/x86/x64/cpu.cc:66:25: warning: conversion from 'u32_t' {aka 'unsigned int'} to 'u8_t' {aka 'unsigned char'} may change value [-Wconversion]
> 66 | apic_id = ((ebx >> 24) & 0xFF);
> | ~~~~~~~~~~~~~^~~~~~~
> ===> src/glue/v4-x86/x64/space.cc
> cd src/glue/v4-x86/x64/ && gcc -nostdinc -I/root/Orion/kernel/fbuild/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/local/lib/gcc9/gcc/x86_64-portbld-freebsd12.0/9.2.0/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /root/Orion/kernel/fbuild/config/config.h -imacros /root/Orion/kernel/src/generic/macros.h -include /root/Orion/kernel/src/generic/config.h -include /root/Orion/kernel/src/generic/types.h -fno-rtti -fno-builtin -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2 -m64 -mcmodel=kernel -mno-red-zone -fno-pie -fno-stack-protector -lssp -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -Wconversion -c /root/Orion/kernel/src/glue/v4-x86/x64/space.cc
> In file included from /root/Orion/kernel/src/glue/v4-x86/tcb.h:21,
> from /root/Orion/kernel/src/api/v4/tcb.h:707,
> from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:39:
> /root/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
> 76 | threadid_t recv_redirector_tid, word_t utcb_location);
> | ^
> In file included from /root/Orion/kernel/src/glue/v4-x86/syscalls.h:16,
> from /root/Orion/kernel/src/api/v4/syscalls.h:43,
> from /root/Orion/kernel/src/glue/v4-x86/tcb.h:21,
> from /root/Orion/kernel/src/api/v4/tcb.h:707,
> from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:39:
> /root/Orion/kernel/src/glue/v4-x86/x64/syscalls.h:78: note: macro "SYS_THREAD_CONTROL" defined here
> 78 | #define SYS_THREAD_CONTROL(dest, space, scheduler, pager, utcb_location) \
> |
> In file included from /root/Orion/kernel/src/glue/v4-x86/tcb.h:21,
> from /root/Orion/kernel/src/api/v4/tcb.h:707,
> from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:39:
> /root/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
> 90 | word_t uhandle, threadid_t pager_tid);
> | ^
> In file included from /root/Orion/kernel/src/glue/v4-x86/syscalls.h:16,
> from /root/Orion/kernel/src/api/v4/syscalls.h:43,
> from /root/Orion/kernel/src/glue/v4-x86/tcb.h:21,
> from /root/Orion/kernel/src/api/v4/tcb.h:707,
> from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:39:
> /root/Orion/kernel/src/glue/v4-x86/x64/syscalls.h:131: note: macro "SYS_EXCHANGE_REGISTERS" defined here
> 131 | #define SYS_EXCHANGE_REGISTERS(dest, control, usp, uip, \
> |
> In file included from /root/Orion/kernel/src/glue/v4-x86/tcb.h:21,
> from /root/Orion/kernel/src/api/v4/tcb.h:707,
> from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:39:
> /root/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
> 125 | fpage_t utcb_area);
> | ^
> In file included from /root/Orion/kernel/src/glue/v4-x86/syscalls.h:16,
> from /root/Orion/kernel/src/api/v4/syscalls.h:43,
> from /root/Orion/kernel/src/glue/v4-x86/tcb.h:21,
> from /root/Orion/kernel/src/api/v4/tcb.h:707,
> from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:39:
> /root/Orion/kernel/src/glue/v4-x86/x64/syscalls.h:94: note: macro "SYS_SPACE_CONTROL" defined here
> 94 | #define SYS_SPACE_CONTROL(space, control, kip_area, utcb_area, \
> |
> In file included from /root/Orion/kernel/src/glue/v4-x86/x64/tcb.h:40,
> from /root/Orion/kernel/src/glue/v4-x86/tcb.h:22,
> from /root/Orion/kernel/src/api/v4/tcb.h:707,
> from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:39:
> /root/Orion/kernel/src/glue/v4-x86/x64/x32comp/tcb.h:74:25: error: macro "ASSERT" requires 2 arguments, but only 1 given
> 74 | ASSERT(this->pdir_cache);
> | ^
> In file included from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:33:
> /root/Orion/kernel/src/debug.h:89: note: macro "ASSERT" defined here
> 89 | # define ASSERT(level, x) \
> |
> In file included from /root/Orion/kernel/src/glue/v4-x86/x64/tcb.h:40,
> from /root/Orion/kernel/src/glue/v4-x86/tcb.h:22,
> from /root/Orion/kernel/src/api/v4/tcb.h:707,
> from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:39:
> /root/Orion/kernel/src/glue/v4-x86/x64/x32comp/tcb.h:155:39: error: macro "ASSERT" requires 2 arguments, but only 1 given
> 155 | ASSERT(start + count <= IPC_NUM_MR);
> | ^
> In file included from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:33:
> /root/Orion/kernel/src/debug.h:89: note: macro "ASSERT" defined here
> 89 | # define ASSERT(level, x) \
> |
> In file included from /root/Orion/kernel/src/glue/v4-x86/x64/tcb.h:40,
> from /root/Orion/kernel/src/glue/v4-x86/tcb.h:22,
> from /root/Orion/kernel/src/api/v4/tcb.h:707,
> from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:39:
> /root/Orion/kernel/src/glue/v4-x86/x64/x32comp/tcb.h:156:21: error: macro "ASSERT" requires 2 arguments, but only 1 given
> 156 | ASSERT(count > 0);
> | ^
> In file included from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:33:
> /root/Orion/kernel/src/debug.h:89: note: macro "ASSERT" defined here
> 89 | # define ASSERT(level, x) \
> |
> In file included from /root/Orion/kernel/src/glue/v4-x86/tcb.h:22,
> from /root/Orion/kernel/src/api/v4/tcb.h:707,
> from /root/Orion/kernel/src/glue/v4-x86/x64/space.cc:39:
> /root/Orion/kernel/src/glue/v4-x86/x64/tcb.h:81:10: fatal error: tcb_layout.h: No such file or directory
> 81 | #include <tcb_layout.h>
> | ^~~~~~~~~~~~~~
> compilation terminated.
> gmake[1]: *** [/root/Orion/kernel/Mk/Makeconf:208: src/glue/v4-x86/x64/space.o] Error 1
from orion.
On Linux:
yson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ibd$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/ibd'
===> Generating include/tcb_layout.h
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
threadid_t recv_redirector_tid, word_t utcb_location);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
word_t uhandle, threadid_t pager_tid);
^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
fpage_t utcb_area);
^
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:49:16: error: ‘IPC_NUM_BR’ was not declared in this scope
word_t br[IPC_NUM_BR]; /* -196 .. -64 */
^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:64:16: error: ‘IPC_NUM_MR’ was not declared in this scope
word_t mr[IPC_NUM_MR]; /* 0 .. 252 */
^~~~~~~~~~
In file included from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘tcb_t* tcb_t::get_partner_tcb()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:425:31: error: ‘class space_t’ has no member named ‘get_tcb’; did you mean ‘add_tcb’?
return this->get_space()->get_tcb(partner);
^~~~~~~
add_tcb
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::clear_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:570:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits = 0;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::add_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:578:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits |= bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::sub_notify_bits(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:586:14: error: ‘class utcb_t’ has no member named ‘notify_bits’
get_utcb()->notify_bits &= ~(bits);
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_bits()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:594:24: error: ‘class utcb_t’ has no member named ‘notify_bits’
return get_utcb()->notify_bits;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_mask()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:602:24: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
return get_utcb()->notify_mask;
^~~~~~~~~~~
word_size_mask
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::set_notify_mask(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:611:17: error: ‘class utcb_t’ has no member named ‘notify_mask’; did you mean ‘word_size_mask’?
get_utcb()->notify_mask = mask;
^~~~~~~~~~~
word_size_mask
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:73:1: error: ‘SYS_THREAD_CONTROL’ does not name a type
SYS_THREAD_CONTROL (threadid_t dest_tid, threadid_t space_tid,
^~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:88:1: error: ‘SYS_EXCHANGE_REGISTERS’ does not name a type
SYS_EXCHANGE_REGISTERS (threadid_t dest_tid, word_t control,
^~~~~~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:124:1: error: ‘SYS_SPACE_CONTROL’ does not name a type
SYS_SPACE_CONTROL (threadid_t space_tid, word_t control, fpage_t kip_area,
^~~~~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h: In member function ‘void tcb_t::copy_mrs(tcb_t*, word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:64:31: error: ‘class utcb_t’ has no member named ‘mr’
"c"(count), "S"(&get_utcb()->mr[start]),
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:65:25: error: ‘class utcb_t’ has no member named ‘mr’
"D"(&dest->get_utcb()->mr[start]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:364:13: error: no declaration matches ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
INLINE void tcb_t::arch_init_root_server (space_t * space, word_t ip, word_t sp)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:364:13: note: no functions named ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_cpu(cpuid_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:65:11: error: ‘class tcb_t’ has no member named ‘cpu’
this->cpu = cpu;
^~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_utcb_location(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: error: ‘myself_local’ was not declared in this scope
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: note: suggested alternative: ‘myself_global’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:60: error: ‘class utcb_t’ has no member named ‘mr’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_utcb_location()’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: error: ‘myself_local’ was not declared in this scope
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: note: suggested alternative: ‘myself_global’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~~~~~~~~~~~
myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:54: error: ‘class utcb_t’ has no member named ‘mr’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_mr(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:95:24: error: ‘class utcb_t’ has no member named ‘mr’
return get_utcb()->mr[index];
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_mr(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:106:17: error: ‘class utcb_t’ has no member named ‘mr’
get_utcb()->mr[index] = value;
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: error: no declaration matches ‘word_t tcb_t::get_br(word_t)’
INLINE word_t tcb_t::get_br(word_t index)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: note: no functions named ‘word_t tcb_t::get_br(word_t)’
In file included from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: error: no declaration matches ‘void tcb_t::set_br(word_t, word_t)’
INLINE void tcb_t::set_br(word_t index, word_t value)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: note: no functions named ‘void tcb_t::set_br(word_t, word_t)’
In file included from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: error: no declaration matches ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
INLINE void tcb_t::adjust_for_copy_area (tcb_t * dst,
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: note: no functions named ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’
In file included from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: error: no declaration matches ‘void tcb_t::release_copy_area()’
INLINE void tcb_t::release_copy_area (void)
^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: note: no functions named ‘void tcb_t::release_copy_area()’
In file included from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
class tcb_t
^~~~~
In file included from /home/tyson/Orion/kernel/ibd/_1571001308_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘bool tcb_t::is_local_cpu()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:739:13: error: ‘get_current_cpu’ was not declared in this scope
return (get_current_cpu() == get_cpu());
^~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h:739:13: note: suggested alternative: ‘get_current_tcb’
return (get_current_cpu() == get_cpu());
^~~~~~~~~~~~~~~
get_current_tcb
/home/tyson/Orion/kernel/ibd/_1571001308_123.c: In function ‘void make_offsets()’:
/home/tyson/Orion/kernel/ibd/_1571001308_123.c:49:51: error: ‘class tcb_t’ has no member named ‘sched_state’; did you mean ‘saved_state’?
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~~~~
/home/tyson/Orion/kernel/ibd/_1571001308_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ibd/_1571001308_123.c:49:36: note: in expansion of macro ‘offsetof’
O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
^~~~~~~~
/home/tyson/Orion/kernel/ibd/_1571001308_123.c:52:34: error: ‘class utcb_t’ has no member named ‘br’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~
/home/tyson/Orion/kernel/ibd/_1571001308_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ibd/_1571001308_123.c:52:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~~~~~~~
/home/tyson/Orion/kernel/ibd/_1571001308_123.c:67:34: error: ‘class utcb_t’ has no member named ‘mr’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~
/home/tyson/Orion/kernel/ibd/_1571001308_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/ibd/_1571001308_123.c:67:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~~~~~~~
make[1]: *** No rule to make target '/home/tyson/Orion/kernel/ibd/include/tcb_layout.h', needed by 'tcb_layout.h'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/ibd'
make: *** [Makefile:38: all] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ibd$
from orion.
Quietly, on a fork (https://github.com/nullpo-head/pistachio) of the https://github.com/l4ka/pistachio repository, there were some changes, towards getting a working x86-64 kernel building/booting, under Linux, so I've ported them across to Orion, and Enryo, although they're mostly-untested, as of writing.
They mostly change the Makefiles, KickStart ELF loader, KIP headers, fix some definitions, and define some new data structures, and tweak things for GCC 7/Ubuntu 18.04, but are fairly non-evasive, and don't seem to break things any more, than they already are.
from orion.
The API of SYS_THREAD_CONTROL
changed, from taking different numbers of arguments, depending on platform. We need to investigate this, since things break...
from orion.
Not actively-maintained as a project, but I merged all of the stray forks that I could find, into https://github.com/vmlemon/pistachio, and it seems to successfully-build an x86-64 kernel (curiously, the EFI option also lights up, somehow), so it might be worth seeing the headers, and some other files, to get things working, here.
from orion.
As an experiment, I looked into transplanting some of the Enryo headers, to Orion, on the vmlemon-patch-1
branch, which gets things to:
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/tbd$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/tbd'
===> Building dependencies
===> Generating include/tcb_layout.h
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:61,
from /home/tyson/Orion/kernel/tbd/_1571129822_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:49:16: error: ‘IPC_NUM_BR’ was not declared in this scope
word_t br[IPC_NUM_BR]; /* -196 .. -64 */
^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:64:16: error: ‘IPC_NUM_MR’ was not declared in this scope
word_t mr[IPC_NUM_MR]; /* 0 .. 252 */
^~~~~~~~~~
In file included from /home/tyson/Orion/kernel/tbd/_1571129822_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:268:14: error: ‘IPC_NUM_SAVED_MRS’ was not declared in this scope
word_t mr[IPC_NUM_SAVED_MRS];
^~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h:274:20: error: ‘IPC_NESTING_LEVEL’ was not declared in this scope
} saved_state[IPC_NESTING_LEVEL];
^~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h:347:5: error: ‘bitmask_t’ is not a template
bitmask_t<word_t> flags;
^~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::init_saved_state()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:507:25: error: ‘IPC_NESTING_LEVEL’ was not declared in this scope
for (int l = 0; l < IPC_NESTING_LEVEL; l++)
^~~~~~~~~~~~~~~~~
In file included from <command-line>:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘threadid_t tcb_t::get_saved_partner(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:516:28: error: ‘IPC_NESTING_LEVEL’ was not declared in this scope
ASSERT(NORMAL, level < IPC_NESTING_LEVEL);
^~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/generic/macros.h:104:44: note: in definition of macro ‘EXPECT_FALSE’
#define EXPECT_FALSE(x) __builtin_expect((x), false)
^
/home/tyson/Orion/kernel/src/api/v4/tcb.h:516:5: note: in expansion of macro ‘ASSERT’
ASSERT(NORMAL, level < IPC_NESTING_LEVEL);
^~~~~~
In file included from /home/tyson/Orion/kernel/tbd/_1571129822_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:517:17: error: ‘union tcb_t::misc_tcb_t’ has no member named ‘saved_state’
return misc.saved_state[level].partner;
^~~~~~~~~~~
In file included from <command-line>:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::set_saved_partner(threadid_t, word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:522:28: error: ‘IPC_NESTING_LEVEL’ was not declared in this scope
ASSERT(NORMAL, level < IPC_NESTING_LEVEL);
^~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/generic/macros.h:104:44: note: in definition of macro ‘EXPECT_FALSE’
#define EXPECT_FALSE(x) __builtin_expect((x), false)
^
/home/tyson/Orion/kernel/src/api/v4/tcb.h:522:5: note: in expansion of macro ‘ASSERT’
ASSERT(NORMAL, level < IPC_NESTING_LEVEL);
^~~~~~
In file included from /home/tyson/Orion/kernel/tbd/_1571129822_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:523:10: error: ‘union tcb_t::misc_tcb_t’ has no member named ‘saved_state’
misc.saved_state[level].partner = t;
^~~~~~~~~~~
In file included from <command-line>:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘thread_state_t tcb_t::get_saved_state(word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:528:28: error: ‘IPC_NESTING_LEVEL’ was not declared in this scope
ASSERT(NORMAL, level < IPC_NESTING_LEVEL);
^~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/generic/macros.h:104:44: note: in definition of macro ‘EXPECT_FALSE’
#define EXPECT_FALSE(x) __builtin_expect((x), false)
^
/home/tyson/Orion/kernel/src/api/v4/tcb.h:528:5: note: in expansion of macro ‘ASSERT’
ASSERT(NORMAL, level < IPC_NESTING_LEVEL);
^~~~~~
In file included from /home/tyson/Orion/kernel/tbd/_1571129822_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:529:34: error: ‘union tcb_t::misc_tcb_t’ has no member named ‘saved_state’
return (thread_state_t) misc.saved_state[level].state;
^~~~~~~~~~~
In file included from <command-line>:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::set_saved_state(thread_state_t, word_t)’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:534:28: error: ‘IPC_NESTING_LEVEL’ was not declared in this scope
ASSERT(NORMAL, level < IPC_NESTING_LEVEL);
^~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/generic/macros.h:104:44: note: in definition of macro ‘EXPECT_FALSE’
#define EXPECT_FALSE(x) __builtin_expect((x), false)
^
/home/tyson/Orion/kernel/src/api/v4/tcb.h:534:5: note: in expansion of macro ‘ASSERT’
ASSERT(NORMAL, level < IPC_NESTING_LEVEL);
^~~~~~
In file included from /home/tyson/Orion/kernel/tbd/_1571129822_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:535:10: error: ‘union tcb_t::misc_tcb_t’ has no member named ‘saved_state’
misc.saved_state[level].state = s;
^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function ‘msg_tag_t tcb_t::get_tag()’:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:673:27: error: conversion from ‘word_t’ {aka ‘long unsigned int’} to non-scalar type ‘msg_tag_t’ requested
msg_tag_t tag = get_mr(0);
~~~~~~^~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
from /home/tyson/Orion/kernel/src/api/v4/tcb.h:780,
from /home/tyson/Orion/kernel/tbd/_1571129822_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h: In member function ‘void tcb_t::copy_mrs(tcb_t*, word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:64:31: error: ‘class utcb_t’ has no member named ‘mr’
"c"(count), "S"(&get_utcb()->mr[start]),
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:65:25: error: ‘class utcb_t’ has no member named ‘mr’
"D"(&dest->get_utcb()->mr[start]));
^~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:780,
from /home/tyson/Orion/kernel/tbd/_1571129822_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_utcb_location(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:60: error: ‘class utcb_t’ has no member named ‘mr’
myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_utcb_location()’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:54: error: ‘class utcb_t’ has no member named ‘mr’
return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_mr(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:95:24: error: ‘class utcb_t’ has no member named ‘mr’
return get_utcb()->mr[index];
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_mr(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:106:17: error: ‘class utcb_t’ has no member named ‘mr’
get_utcb()->mr[index] = value;
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘word_t tcb_t::get_br(word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:117:24: error: ‘class utcb_t’ has no member named ‘br’
return get_utcb()->br[32U-index];
^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function ‘void tcb_t::set_br(word_t, word_t)’:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:128:17: error: ‘class utcb_t’ has no member named ‘br’
get_utcb()->br[32U-index] = value;
^~
/home/tyson/Orion/kernel/tbd/_1571129822_123.c: In function ‘void make_offsets()’:
/home/tyson/Orion/kernel/tbd/_1571129822_123.c:47:34: error: ‘class utcb_t’ has no member named ‘br’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~
/home/tyson/Orion/kernel/tbd/_1571129822_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/tbd/_1571129822_123.c:47:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_BR,offsetof(utcb_t,br));
^~~~~~~~
/home/tyson/Orion/kernel/tbd/_1571129822_123.c:62:34: error: ‘class utcb_t’ has no member named ‘mr’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~
/home/tyson/Orion/kernel/tbd/_1571129822_123.c:12:84: note: in definition of macro ‘O’
#define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
^~~~~
/home/tyson/Orion/kernel/tbd/_1571129822_123.c:62:18: note: in expansion of macro ‘offsetof’
O(OFS_UTCB_MR,offsetof(utcb_t,mr));
^~~~~~~~
===> src/arch/x86/x64/init32.cc
cd src/arch/x86/x64/ && gcc -nostdinc -I/home/tyson/Orion/kernel/tbd/include -I/home/tyson/Orion/kernel/src -I/home/tyson/Orion/kernel/src/generic -I/usr/lib/gcc/x86_64-linux-gnu/8/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /home/tyson/Orion/kernel/tbd/config/config.h -imacros /home/tyson/Orion/kernel/src/generic/macros.h -include /home/tyson/Orion/kernel/src/generic/config.h -include /home/tyson/Orion/kernel/src/generic/types.h -DX64_32BIT_CODE -fno-rtti -fno-builtin -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2 -m32 -mno-red-zone -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -fno-pie -no-pie -Wno-narrowing -fno-stack-protector -Wconversion -x c++ -c /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc -o init32.o
In file included from /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc:40:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h: In static member function ‘static void x86_mmu_t::enable_long_mode()’:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h:170:28: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘word_t’ {aka ‘unsigned int’} may change value [-Wconversion]
word_t efer = x86_rdmsr(X86_MSR_EFER);
~~~~~~~~~^~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/arch/x86/mmu.h: In static member function ‘static bool x86_mmu_t::long_mode_active()’:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h:182:28: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘word_t’ {aka ‘unsigned int’} may change value [-Wconversion]
word_t efer = x86_rdmsr(X86_MSR_EFER);
~~~~~~~~~^~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/arch/x86/segdesc.h:20,
from /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc:41:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h: In member function ‘void x86_segdesc_t::set_seg(u64_t, x86_segdesc_t::segtype_e, int, x86_segdesc_t::mode_e, x86_segdesc_t::msr_e)’:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:80:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
x.d.type = type;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:81:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
x.d.l = mode;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:82:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:2’ may change value [-Wconversion]
x.d.dpl = dpl;
^~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h: In member function ‘void x86_segdesc_t::set_seg(u32_t, x86_segdesc_t::segtype_e, int, x86_segdesc_t::mode_e)’:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:99:36: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char’ may change value [-Wconversion]
x.d.base_high = (base >> 24) & 0xFF;
~~~~~~~~~~~~~^~~~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:101:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
x.d.type = type;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:102:17: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
x.d.l = mode;
^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:103:16: warning: conversion from ‘u64_t’ {aka ‘long long unsigned int’} to ‘unsigned char:2’ may change value [-Wconversion]
x.d.dpl = dpl;
^~~
cd src/arch/x86/x64/ && objcopy -g -O elf64-x86-64 init32.o init32.o
===> src/arch/x86/x64/cpu.cc
cd src/arch/x86/x64/ && gcc -nostdinc -I/home/tyson/Orion/kernel/tbd/include -I/home/tyson/Orion/kernel/src -I/home/tyson/Orion/kernel/src/generic -I/usr/lib/gcc/x86_64-linux-gnu/8/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /home/tyson/Orion/kernel/tbd/config/config.h -imacros /home/tyson/Orion/kernel/src/generic/macros.h -include /home/tyson/Orion/kernel/src/generic/config.h -include /home/tyson/Orion/kernel/src/generic/types.h -fno-rtti -fno-builtin -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2 -m64 -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -fno-pie -no-pie -Wno-narrowing -fno-stack-protector -Wconversion -c /home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc
/home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc: In constructor ‘x86_x64_cpu_features_t::x86_x64_cpu_features_t()’:
/home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc:66:25: warning: conversion from ‘u32_t’ {aka ‘unsigned int’} to ‘u8_t’ {aka ‘unsigned char’} may change value [-Wconversion]
apic_id = ((ebx >> 24) & 0xFF);
~~~~~~~~~~~~~^~~~~~~
make[1]: *** No rule to make target '/home/tyson/Orion/kernel/tbd/include/tcb_layout.h', needed by 'tcb_layout.h'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/tbd'
make: *** [Makefile:38: all] Error 2
from orion.
Out of curiosity, I tried to build that codebase, on POWER8/Fedora, and it bails out, with vmlemon/pistachio#5.
Seems that we've got a lot of work ahead, to make things whole...
from orion.
As an experiment, I'm working on backporting some of the Orion fixes (without pulling in the NICTA stuff, wholesale), and various community patches, as well as the Orion userland, to Enryo, to create an interim Orion/E product, in the old repository, at https://github.com/vmlemon/pistachio.
from orion.
The status of Orion/E, is that the kernel, and userland all build, for x86-64, but not for POWER. Still trying to diagnose why, but it appears that even without the NICTA enhancements, a lot was always broken, in what we inherited, from upstream Pistachio.
from orion.
Pulled in the branches from the other repository, to play with, later.
from orion.
Merged the master
, and enryo-pistachio-master
branches, down into a new Orion-E_0_MCL
branch.
We'll work backwards, and see what NICTA changes are useful, for improving the architecture support, without dragnetting everything in, like before...
from orion.
Everything is now in master
, so one codebase can be used to build either the Enryo, or Orion kernel, or userland.
In time, I'll start looking at migrating the NICTA enhancements, and platform ports, appropriately. We also still need to fix the POWER port, but having fixed-up x68 gives us a baseline to work from, and it provides the most complete genealogy of Pistachio-based projects, publicly-available, so far.
As mentioned, both the x86 Orion userland, and Enryo kernel build, without issues, on Ubuntu, and the kernel starts building, on FreeBSD, with some objdump
issues.
from orion.
Related Issues (20)
- PlayStation 3 drivers, and Cell enlightenments HOT 12
- Support for Apple Partition Maps
- Regressions in space.h HOT 7
- GCCisms, and AT&T Assembly choke CLang
- Nintendo Wii drivers, and enlightenments HOT 10
- ELF Loader Implementation HOT 15
- POSIX Threads/Semaphores implementation HOT 3
- Malloc implementation HOT 1
- POWER4 clean build regression? HOT 8
- POWER 64-bit common codebase HOT 14
- POWER8/QEMU Enlightenments HOT 8
- POWER9/QEMU (Little Endian) Enlightenments HOT 1
- Porting ALAC/ValidateMP4 HOT 3
- Problems with R3 access, in userland, on POWER8 HOT 2
- Support for Apple iBook G4 HOT 8
- Problems with IPC/TCB headers HOT 15
- Missing tracebuffer.h? HOT 18
- Linux ABI Compatibility? HOT 57
- Support for UNIX Fast File System v2 HOT 1
- NICTA Technology Integration HOT 42
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from orion.