vmlemon / Orion

Next-generation, L4Ka::Pistachio-based operating system
7 stars 0 forks source link

Problems with IPC/TCB headers #5

Open vmlemon opened 5 years ago

vmlemon commented 5 years ago

With last night's modifications, to add support for building on RedHat/Fedora, we get a little further, however there are problems with ipc.h missing (unsure if I can recycle the PPC32 version, for PPC64), and if I substitute with a dummy file, we get problems with the macros that generate various header files:

[root@fedora28 rpb8]# make
make[1]: Entering directory '/home/fedora/Orion/kernel/rpb8'
===> src/glue/v4-powerpc64/asmsyms.cc
cd src/glue/v4-powerpc64/ &&  gcc  -nostdinc -I/home/fedora/Orion/kernel/rpb8/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/lib/gcc/ppc64-redhat-linux/8/include/ -Upowerpc64 -Upower4 -Uofpower4 -Uv4 -Urr -D__ARCH__=powerpc64 -D__CPU__=power4 -D__PLATFORM__=ofpower4 -D__API__=v4 -D__SCHED__=rr -imacros /home/fedora/Orion/kernel/rpb8/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 -mpowerpc64 -msoft-float -mno-minimal-toc  -mcpu=power4   -Wconversion  -c /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc
In file included from /root/Orion/kernel/src/api/v4/tcb.h:39,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/types.h: In static member function ‘static time_t time_t::period(u16_t, u16_t)’:
/root/Orion/kernel/src/api/v4/types.h:70:22: warning: conversion from ‘u16_t’ {aka ‘short unsigned int’} to ‘short unsigned int:10’ may change value [-Wconversion]
  ret.time.mantissa = mantissa;
                      ^~~~~~~~
/root/Orion/kernel/src/api/v4/types.h:71:22: warning: conversion from ‘u16_t’ {aka ‘short unsigned int’} to ‘unsigned char:5’ may change value [-Wconversion]
  ret.time.exponent = exponent;
                      ^~~~~~~~
/root/Orion/kernel/src/api/v4/types.h: In static member function ‘static time_t time_t::point(u16_t, u16_t)’:
/root/Orion/kernel/src/api/v4/types.h:79:22: warning: conversion from ‘u16_t’ {aka ‘short unsigned int’} to ‘short unsigned int:10’ may change value [-Wconversion]
  ret.time.mantissa = mantissa;
                      ^~~~~~~~
/root/Orion/kernel/src/api/v4/types.h:80:22: warning: conversion from ‘u16_t’ {aka ‘short unsigned int’} to ‘unsigned char:5’ may change value [-Wconversion]
  ret.time.exponent = exponent;
                      ^~~~~~~~
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/space.h:39,
                 from /root/Orion/kernel/src/api/v4/space.h:36,
                 from /root/Orion/kernel/src/api/v4/tcb.h:43,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/arch/powerpc64/pghash.h: In member function ‘void ppc64_sdr1_t::create(word_t, word_t)’:
/root/Orion/kernel/src/arch/powerpc64/pghash.h:223:28: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:46’ may change value [-Wconversion]
     this->x.htaborg = base >> POWERPC64_HTABORG_SHIFT;
                            ^
/root/Orion/kernel/src/arch/powerpc64/pghash.h:224:24: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:5’ may change value [-Wconversion]
     this->x.htabsize = size;
                        ^~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h: In member function ‘void ppc64_pte_t::create_4k(word_t, word_t, word_t, word_t)’:
/root/Orion/kernel/src/arch/powerpc64/pghash.h:249:20: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:52’ may change value [-Wconversion]
     this->x.vsid = vsid;
                    ^~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h:250:30: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:5’ may change value [-Wconversion]
     this->x.api = virt_to_api( virt );
                   ~~~~~~~~~~~^~~~~~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h:251:17: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
     this->x.h = second;
                 ^~~~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h: In member function ‘void ppc64_pte_t::create(word_t, word_t, word_t, word_t, word_t)’:
/root/Orion/kernel/src/arch/powerpc64/pghash.h:262:20: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:52’ may change value [-Wconversion]
     this->x.vsid = vsid;
                    ^~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h:265:36: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:5’ may change value [-Wconversion]
  this->x.api = virt_to_api( virt ) & (~(1ul));
                ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h:267:27: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:5’ may change value [-Wconversion]
  this->x.api = virt_to_api( virt );
                ~~~~~~~~~~~^~~~~~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h:269:17: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
     this->x.l = large;
                 ^~~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h:270:17: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
     this->x.h = second;
                 ^~~~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h: In member function ‘void ppc64_pte_t::create(word_t, word_t, word_t, word_t, word_t, word_t)’:
/root/Orion/kernel/src/arch/powerpc64/pghash.h:281:20: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:52’ may change value [-Wconversion]
     this->x.vsid = vsid;
                    ^~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h:284:36: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:5’ may change value [-Wconversion]
  this->x.api = virt_to_api( virt ) & (~(1ul));
                ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h:286:27: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:5’ may change value [-Wconversion]
  this->x.api = virt_to_api( virt );
                ~~~~~~~~~~~^~~~~~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h:288:22: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
     this->x.bolted = bolted;
                      ^~~~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h:289:17: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
     this->x.l = large;
                 ^~~~~
/root/Orion/kernel/src/arch/powerpc64/pghash.h:290:17: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:1’ may change value [-Wconversion]
     this->x.h = second;
                 ^~~~~~
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/space.h:41,
                 from /root/Orion/kernel/src/api/v4/space.h:36,
                 from /root/Orion/kernel/src/api/v4/tcb.h:43,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/fpage.h: In member function ‘void fpage_t::set(word_t, word_t, bool, bool, bool)’:
/root/Orion/kernel/src/api/v4/fpage.h:81:40: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:54’ may change value [-Wconversion]
   mem.x.base = (base & (~0UL << size)) >> 10;
                ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/root/Orion/kernel/src/api/v4/fpage.h:82:16: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:6’ may change value [-Wconversion]
   mem.x.size = size;
                ^~~~
In file included from /root/Orion/kernel/src/api/v4/kernelinterface.h:49,
                 from /root/Orion/kernel/src/api/v4/thread.h:36,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/space.h:42,
                 from /root/Orion/kernel/src/api/v4/space.h:36,
                 from /root/Orion/kernel/src/api/v4/tcb.h:43,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/memdesc.h: In member function ‘void memdesc_t::set(memdesc_t::type_e, word_t, bool, addr_t, addr_t)’:
/root/Orion/kernel/src/api/v4/memdesc.h:120:14: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
      _type = type;
              ^~~~
/root/Orion/kernel/src/api/v4/memdesc.h:121:14: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
      _t    = t;
              ^
/root/Orion/kernel/src/api/v4/memdesc.h:123:29: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:54’ may change value [-Wconversion]
      _low  = ((word_t) low) >> 10;
              ~~~~~~~~~~~~~~~^~~~~
/root/Orion/kernel/src/api/v4/memdesc.h:124:30: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:54’ may change value [-Wconversion]
      _high = ((word_t) high) >> 10;
              ~~~~~~~~~~~~~~~~^~~~~
In file included from /root/Orion/kernel/src/api/v4/thread.h:36,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/space.h:42,
                 from /root/Orion/kernel/src/api/v4/space.h:36,
                 from /root/Orion/kernel/src/api/v4/tcb.h:43,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/kernelinterface.h: In member function ‘void thread_info_t::set_user_base(word_t)’:
/root/Orion/kernel/src/api/v4/kernelinterface.h:173:52: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘short unsigned int:12’ may change value [-Wconversion]
     void set_user_base(word_t base)  { user_base = base; }
                                                    ^~~~
/root/Orion/kernel/src/api/v4/kernelinterface.h: In member function ‘void thread_info_t::set_system_base(word_t)’:
/root/Orion/kernel/src/api/v4/kernelinterface.h:174:56: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘short unsigned int:12’ may change value [-Wconversion]
     void set_system_base(word_t base)  { system_base = base; }
                                                        ^~~~
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/space.h:42,
                 from /root/Orion/kernel/src/api/v4/space.h:36,
                 from /root/Orion/kernel/src/api/v4/tcb.h:43,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/thread.h: In static member function ‘static threadid_t threadid_t::anylocalthread()’:
/root/Orion/kernel/src/api/v4/thread.h:58:32: warning: conversion from ‘long unsigned int’ to ‘unsigned char:6’ may change value [-Wconversion]
  tid.local.zero = tid.local.id = 0;
                   ~~~~~~~~~~~~~^~~
/root/Orion/kernel/src/api/v4/thread.h:59:15: warning: conversion from ‘long unsigned int’ to ‘long unsigned int:58’ may change value [-Wconversion]
  tid.local.id -= 1;
  ~~~~~~~~~~~~~^~~~
/root/Orion/kernel/src/api/v4/thread.h: In static member function ‘static threadid_t threadid_t::irqthread(word_t)’:
/root/Orion/kernel/src/api/v4/thread.h:74:24: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
  tid.global.threadno = irq;
                        ^~~
/root/Orion/kernel/src/api/v4/thread.h: In static member function ‘static threadid_t threadid_t::threadid(word_t, word_t)’:
/root/Orion/kernel/src/api/v4/thread.h:88:23: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
  tid.global.version = version;
                       ^~~~~~~
/root/Orion/kernel/src/api/v4/thread.h:89:24: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
  tid.global.threadno = threadno;
                        ^~~~~~~~
/root/Orion/kernel/src/api/v4/thread.h: In member function ‘void threadid_t::set_global_id(word_t, word_t)’:
/root/Orion/kernel/src/api/v4/thread.h:144:23: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
     global.threadno = threadno;
                       ^~~~~~~~
/root/Orion/kernel/src/api/v4/thread.h:145:22: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
     global.version = version;
                      ^~~~~~~
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/space.h:54,
                 from /root/Orion/kernel/src/api/v4/space.h:36,
                 from /root/Orion/kernel/src/api/v4/tcb.h:43,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/generic/mdb.h: In constructor ‘mdb_t::range_t::range_t(addr_t, word_t)’:
/root/Orion/kernel/src/generic/mdb.h:119:24: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:57’ may change value [-Wconversion]
       idx = (word_t) b >> s;
             ~~~~~~~~~~~^~~~
/root/Orion/kernel/src/generic/mdb.h:120:14: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:6’ may change value [-Wconversion]
       size = s;
              ^
/root/Orion/kernel/src/generic/mdb.h: In member function ‘void mdb_node_t::set_next(mdb_node_t*)’:
/root/Orion/kernel/src/generic/mdb.h:549:22: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:63’ may change value [-Wconversion]
  next = ((word_t) n) >> 1;
         ~~~~~~~~~~~~~^~~~
/root/Orion/kernel/src/generic/mdb.h: In member function ‘void mdb_node_t::set_table(mdb_table_t*)’:
/root/Orion/kernel/src/generic/mdb.h:562:25: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:63’ may change value [-Wconversion]
     next = ((word_t) t) >> 1;
            ~~~~~~~~~~~~~^~~~
/root/Orion/kernel/src/generic/mdb.h: In member function ‘void mdb_node_t::remove_table()’:
/root/Orion/kernel/src/generic/mdb.h:571:49: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:63’ may change value [-Wconversion]
     next = ((word_t) get_table ()->get_node ()) >> 1;
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/root/Orion/kernel/src/generic/mdb.h: In member function ‘void mdb_node_t::set_depth(word_t)’:
/root/Orion/kernel/src/generic/mdb.h:581:13: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:50’ may change value [-Wconversion]
     depth = d;
             ^
/root/Orion/kernel/src/generic/mdb.h: In member function ‘void mdb_node_t::set_objsize(word_t)’:
/root/Orion/kernel/src/generic/mdb.h:599:16: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:6’ may change value [-Wconversion]
     obj_size = s;
                ^
/root/Orion/kernel/src/generic/mdb.h: In member function ‘void mdb_node_t::set_inrights(word_t)’:
/root/Orion/kernel/src/generic/mdb.h:617:17: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
     in_rights = r;
                 ^
/root/Orion/kernel/src/generic/mdb.h: In member function ‘void mdb_node_t::set_outrights(word_t)’:
/root/Orion/kernel/src/generic/mdb.h:626:18: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
     out_rights = r;
                  ^
/root/Orion/kernel/src/generic/mdb.h: In member function ‘void mdb_tableent_t::set_table(mdb_table_t*)’:
/root/Orion/kernel/src/generic/mdb.h:692:24: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:63’ may change value [-Wconversion]
     ptr = ((word_t) t) >> 1;
           ~~~~~~~~~~~~~^~~~
/root/Orion/kernel/src/generic/mdb.h: In member function ‘void mdb_tableent_t::set_node(mdb_node_t*)’:
/root/Orion/kernel/src/generic/mdb.h:705:21: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:63’ may change value [-Wconversion]
  ptr = ((word_t) n) >> 1;
        ~~~~~~~~~~~~~^~~~
/root/Orion/kernel/src/generic/mdb.h: In member function ‘void mdb_table_t::remove_table(word_t)’:
/root/Orion/kernel/src/generic/mdb.h:838:27: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:63’ may change value [-Wconversion]
     e->ptr = ((word_t) n) >> 1;
              ~~~~~~~~~~~~~^~~~
/root/Orion/kernel/src/generic/mdb.h: In member function ‘void mdb_table_t::set_objsize(word_t)’:
/root/Orion/kernel/src/generic/mdb.h:901:15: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:6’ may change value [-Wconversion]
     objsize = s;
               ^
In file included from /root/Orion/kernel/src/api/v4/space.h:36,
                 from /root/Orion/kernel/src/api/v4/tcb.h:43,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/glue/v4-powerpc64/space.h: At global scope:
/root/Orion/kernel/src/glue/v4-powerpc64/space.h:125:12: error: extra qualification ‘space_t::’ on member ‘space_control’ [-fpermissive]
     word_t space_t::space_control (word_t ctrl, fpage_t kip_area, fpage_t utcb_area, threadid_t redirector_tid) { return 0; }
            ^~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/space.h:179:10: error: extra qualification ‘space_t::’ on member ‘add_mapping’ [-fpermissive]
     void space_t::add_mapping( addr_t vaddr, addr_t paddr,
          ^~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/space.h:311:13: error: no declaration matches ‘void space_t::add_tcb(tcb_t*, cpuid_t)’
 INLINE void space_t::add_tcb(tcb_t * tcb, cpuid_t cpu)
             ^~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/space.h:121:10: note: candidate is: ‘void space_t::add_tcb(tcb_t*)’
     void add_tcb(tcb_t * tcb);
          ^~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/space.h:67:7: note: ‘class space_t’ defined here
 class space_t
       ^~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/space.h:321:13: error: no declaration matches ‘bool space_t::remove_tcb(tcb_t*, cpuid_t)’
 INLINE bool space_t::remove_tcb(tcb_t * tcb, cpuid_t cpu)
             ^~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/space.h:122:10: note: candidate is: ‘bool space_t::remove_tcb(tcb_t*)’
     bool remove_tcb(tcb_t * tcb);
          ^~~~~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/space.h:67:7: note: ‘class space_t’ defined here
 class space_t
       ^~~~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:48,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/ipc.h: In member function ‘void msg_tag_t::set(word_t, word_t, word_t)’:
/root/Orion/kernel/src/api/v4/ipc.h:89:22: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:6’ may change value [-Wconversion]
      this->x.typed = typed;
                      ^~~~~
/root/Orion/kernel/src/api/v4/ipc.h:90:24: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:6’ may change value [-Wconversion]
      this->x.untyped = untyped;
                        ^~~~~~~
/root/Orion/kernel/src/api/v4/ipc.h:91:22: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:48’ may change value [-Wconversion]
      this->x.label = label;
                      ^~~~~
/root/Orion/kernel/src/api/v4/ipc.h: In member function ‘void acceptor_t::set_rcv_window(fpage_t)’:
/root/Orion/kernel/src/api/v4/ipc.h:258:30: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:60’ may change value [-Wconversion]
  { x.rcv_window = (fpage.raw >> 4); };
                   ~~~~~~~~~~~^~~~~
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:34:
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc: At global scope:
/root/Orion/kernel/src/generic/mkasmsym.h:40:55: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_sign_t { char x[32*((value) < 0 ? 1 : 2)]; };  \
                                                       ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:42:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b0_t { char x[32*((__ABSVALUE(value) >> 0) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:44:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b1_t { char x[32*((__ABSVALUE(value) >> 8) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:46:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b2_t { char x[32*((__ABSVALUE(value) >> 16) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:48:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b3_t { char x[32*((__ABSVALUE(value) >> 24) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:50:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b4_t { char x[32*((__ABSVALUE(value) >> 32) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:52:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b5_t { char x[32*((__ABSVALUE(value) >> 40) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:54:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b6_t { char x[32*((__ABSVALUE(value) >> 48) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:56:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b7_t { char x[32*((__ABSVALUE(value) >> 56) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:40:55: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_sign_t { char x[32*((value) < 0 ? 1 : 2)]; };  \
                                                       ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:42:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b0_t { char x[32*((__ABSVALUE(value) >> 0) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:44:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b1_t { char x[32*((__ABSVALUE(value) >> 8) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:46:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b2_t { char x[32*((__ABSVALUE(value) >> 16) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:48:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b3_t { char x[32*((__ABSVALUE(value) >> 24) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:50:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b4_t { char x[32*((__ABSVALUE(value) >> 32) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:52:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b5_t { char x[32*((__ABSVALUE(value) >> 40) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:54:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b6_t { char x[32*((__ABSVALUE(value) >> 48) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:56:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b7_t { char x[32*((__ABSVALUE(value) >> 56) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:40:55: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_sign_t { char x[32*((value) < 0 ? 1 : 2)]; };  \
                                                       ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:42:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b0_t { char x[32*((__ABSVALUE(value) >> 0) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:44:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b1_t { char x[32*((__ABSVALUE(value) >> 8) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:46:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b2_t { char x[32*((__ABSVALUE(value) >> 16) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:48:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b3_t { char x[32*((__ABSVALUE(value) >> 24) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:50:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b4_t { char x[32*((__ABSVALUE(value) >> 32) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:52:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b5_t { char x[32*((__ABSVALUE(value) >> 40) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:54:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b6_t { char x[32*((__ABSVALUE(value) >> 48) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:56:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b7_t { char x[32*((__ABSVALUE(value) >> 56) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/space.h:44,
                 from /root/Orion/kernel/src/api/v4/space.h:36,
                 from /root/Orion/kernel/src/api/v4/tcb.h:43,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/glue/v4-powerpc64/pgent.h:196:22: warning: inline function ‘pgent_t* pgent_t::next(space_t*, pgent_t::pgsize_e, word_t)’ used but never defined
     inline pgent_t * next( space_t * s, pgsize_e pgsize, word_t num );
                      ^~~~
make[1]: *** No rule to make target 'src/glue/v4-powerpc64/asmsyms.o', needed by '/home/fedora/Orion/kernel/rpb8/include/asmsyms.h'.  Stop.
make[1]: Leaving directory '/home/fedora/Orion/kernel/rpb8'
make: *** [Makefile:38: all] Error 2
vmlemon commented 5 years ago

With GCC 3.4.x, and the changes made in support of https://github.com/vmlemon/Orion/issues/9, and https://github.com/vmlemon/Orion/issues/1, we now generate the asmsyms.h, tcb_layout.h, and asmsyms.o, but there are some issues with building xics.cc, thanks to more issues with space.h.

vmlemon commented 5 years ago

After enabling the tracebuffer, in the kernel settings:

===> src/generic/kmemory.cc
cd src/generic/ &&  gcc  -nostdinc -I/root/Orion/kernel/rpb8/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/lib/gcc/ppc64-redhat-linux/8/include/ -Upowerpc64 -Upower4 -Uofpower4 -Uv4 -Urr -D__ARCH__=powerpc64 -D__CPU__=power4 -D__PLATFORM__=ofpower4 -D__API__=v4 -D__SCHED__=rr -imacros /root/Orion/kernel/rpb8/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 -mpowerpc64 -msoft-float -mno-minimal-toc  -mcpu=power4   -Wconversion -g  -c /root/Orion/kernel/src/generic/kmemory.cc
In file included from <command-line>:
/root/Orion/kernel/src/generic/macros.h:55:33: fatal error: arch/powerpc64/atomic.h: No such file or directory
 #define INC_ARCH(x)             <arch/__ARCH__/x>
vmlemon commented 5 years ago

Seems to be nothing to do with macros.h, since we have two identical copies?

[root@fedora28 rpb8]# md5sum ../../kernel/src/include/macros.h ../../kernel/src/macros.h 
81494aa74febd50876dc573eb2a061a2  ../../kernel/src/include/macros.h
81494aa74febd50876dc573eb2a061a2  ../../kernel/src/macros.h
vmlemon commented 5 years ago

For some reason, we have kernel/src/arch/x86/atomic.h, but not kernel/src/arch/powerpc64/atomic.h.

vmlemon commented 5 years ago

With the NICTA space.h:

[root@fedora28 rpb8]# make tcb_layout.h
make[1]: Entering directory '/root/Orion/kernel/rpb8'
===> Building dependencies
===> Generating include/tcb_layout.h
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:41,
                 from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/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);
                                                ^
/root/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);
                                        ^
In file included from /root/Orion/kernel/src/api/v4/tcb.h:42,
                 from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/api/v4/space.h:41:1: error: ‘space_t’ does not name a type; did you mean ‘size_t’?
 space_t * allocate_space();
 ^~~~~~~
 size_t
/root/Orion/kernel/src/api/v4/space.h:42:17: error: variable or field ‘free_space’ declared void
 void free_space(space_t * space);
                 ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:42:17: error: ‘space_t’ was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:42:17: note: suggested alternative: ‘size_t’
 void free_space(space_t * space);
                 ^~~~~~~
                 size_t
/root/Orion/kernel/src/api/v4/space.h:42:27: error: ‘space’ was not declared in this scope
 void free_space(space_t * space);
                           ^~~~~
/root/Orion/kernel/src/api/v4/space.h:44:8: error: ‘space_t’ does not name a type; did you mean ‘size_t’?
 extern space_t * sigma0_space;
        ^~~~~~~
        size_t
/root/Orion/kernel/src/api/v4/space.h:45:8: error: ‘space_t’ does not name a type; did you mean ‘size_t’?
 extern space_t * sigma1_space;
        ^~~~~~~
        size_t
/root/Orion/kernel/src/api/v4/space.h:46:8: error: ‘space_t’ does not name a type; did you mean ‘size_t’?
 extern space_t * roottask_space;
        ^~~~~~~
        size_t
/root/Orion/kernel/src/api/v4/space.h:48:29: error: ‘space_t’ was not declared in this scope
 INLINE bool is_sigma0_space(space_t * space)
                             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:48:29: note: suggested alternative: ‘size_t’
 INLINE bool is_sigma0_space(space_t * space)
                             ^~~~~~~
                             size_t
/root/Orion/kernel/src/api/v4/space.h:48:39: error: ‘space’ was not declared in this scope
 INLINE bool is_sigma0_space(space_t * space)
                                       ^~~~~
/root/Orion/kernel/src/api/v4/space.h:53:29: error: ‘space_t’ was not declared in this scope
 INLINE bool is_sigma1_space(space_t * space)
                             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:53:29: note: suggested alternative: ‘size_t’
 INLINE bool is_sigma1_space(space_t * space)
                             ^~~~~~~
                             size_t
/root/Orion/kernel/src/api/v4/space.h:53:39: error: ‘space’ was not declared in this scope
 INLINE bool is_sigma1_space(space_t * space)
                                       ^~~~~
/root/Orion/kernel/src/api/v4/space.h:58:31: error: ‘space_t’ was not declared in this scope
 INLINE bool is_roottask_space(space_t * space)
                               ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:58:31: note: suggested alternative: ‘size_t’
 INLINE bool is_roottask_space(space_t * space)
                               ^~~~~~~
                               size_t
/root/Orion/kernel/src/api/v4/space.h:58:41: error: ‘space’ was not declared in this scope
 INLINE bool is_roottask_space(space_t * space)
                                         ^~~~~
/root/Orion/kernel/src/api/v4/space.h:63:33: error: ‘space_t’ was not declared in this scope
 INLINE bool is_privileged_space(space_t * space)
                                 ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:63:33: note: suggested alternative: ‘size_t’
 INLINE bool is_privileged_space(space_t * space)
                                 ^~~~~~~
                                 size_t
/root/Orion/kernel/src/api/v4/space.h:63:43: error: ‘space’ was not declared in this scope
 INLINE bool is_privileged_space(space_t * space)
                                           ^~~~~
/root/Orion/kernel/src/api/v4/space.h:71:13: error: ‘space_t’ has not been declared
 INLINE bool space_t::is_mappable(addr_t addr)
             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h: In function ‘bool is_mappable(addr_t)’:
/root/Orion/kernel/src/api/v4/space.h:74:13: error: ‘is_user_area’ was not declared in this scope
     return (is_user_area(addr) &&
             ^~~~~~~~~~~~
/root/Orion/kernel/src/api/v4/space.h:75:4: error: ‘get_kip_page_area’ was not declared in this scope
  (!get_kip_page_area().is_addr_in_fpage(addr)) &&
    ^~~~~~~~~~~~~~~~~
/root/Orion/kernel/src/api/v4/space.h:76:4: error: ‘get_utcb_page_area’ was not declared in this scope
  (!get_utcb_page_area().is_addr_in_fpage(addr)));
    ^~~~~~~~~~~~~~~~~~
/root/Orion/kernel/src/api/v4/space.h: At global scope:
/root/Orion/kernel/src/api/v4/space.h:82:13: error: ‘space_t’ has not been declared
 INLINE bool space_t::is_mappable(fpage_t fpage)
             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:82:34: error: ‘bool is_mappable’ redeclared as different kind of symbol
 INLINE bool space_t::is_mappable(fpage_t fpage)
                                  ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:71:13: note: previous declaration ‘bool is_mappable(addr_t)’
 INLINE bool space_t::is_mappable(addr_t addr)
             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:82:34: error: ‘fpage_t’ was not declared in this scope
 INLINE bool space_t::is_mappable(fpage_t fpage)
                                  ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:93:13: error: ‘space_t’ has not been declared
 INLINE bool space_t::is_user_area(fpage_t fpage)
             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:93:35: error: ‘fpage_t’ was not declared in this scope
 INLINE bool space_t::is_user_area(fpage_t fpage)
                                   ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:100:13: error: ‘space_t’ has not been declared
 INLINE bool space_t::is_initialized()
             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h: In function ‘bool is_initialized()’:
/root/Orion/kernel/src/api/v4/space.h:102:13: error: ‘get_kip_page_area’ was not declared in this scope
     return !get_kip_page_area().is_nil_fpage();
             ^~~~~~~~~~~~~~~~~
In file included from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/api/v4/tcb.h: At global scope:
/root/Orion/kernel/src/api/v4/tcb.h:131:62: error: ‘space_t::access_e’ has not been declared
     void send_pagefault_ipc(addr_t addr, addr_t ip, space_t::access_e access);
                                                              ^~~~~~~~
/root/Orion/kernel/src/api/v4/tcb.h: In member function ‘tcb_t* tcb_t::get_partner_tcb()’:
/root/Orion/kernel/src/api/v4/tcb.h:425:29: error: invalid use of incomplete type ‘class space_t’
     return this->get_space()->get_tcb(partner);
                             ^~
/root/Orion/kernel/src/api/v4/tcb.h:54:7: note: forward declaration of ‘class space_t’
 class space_t;
       ^~~~~~~
/root/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::clear_notify_bits()’:
/root/Orion/kernel/src/api/v4/tcb.h:570:14: error: ‘class utcb_t’ has no member named ‘notify_bits’; did you mean ‘notify_mask’?
  get_utcb()->notify_bits = 0;
              ^~~~~~~~~~~
              notify_mask
/root/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::add_notify_bits(word_t)’:
/root/Orion/kernel/src/api/v4/tcb.h:578:14: error: ‘class utcb_t’ has no member named ‘notify_bits’; did you mean ‘notify_mask’?
  get_utcb()->notify_bits |= bits;
              ^~~~~~~~~~~
              notify_mask
/root/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::sub_notify_bits(word_t)’:
/root/Orion/kernel/src/api/v4/tcb.h:586:14: error: ‘class utcb_t’ has no member named ‘notify_bits’; did you mean ‘notify_mask’?
  get_utcb()->notify_bits &= ~(bits);
              ^~~~~~~~~~~
              notify_mask
/root/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_bits()’:
/root/Orion/kernel/src/api/v4/tcb.h:594:24: error: ‘class utcb_t’ has no member named ‘notify_bits’; did you mean ‘notify_mask’?
     return get_utcb()->notify_bits;
                        ^~~~~~~~~~~
                        notify_mask
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:41,
                 from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/root/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);
 ^~~~~~~
/root/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,
 ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:112:13: error: no declaration matches ‘void tcb_t::allocate()’
 INLINE void tcb_t::allocate()
             ^~~~~
In file included from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/api/v4/tcb.h:216:10: note: candidate is: ‘bool tcb_t::allocate()’
     bool allocate();
          ^~~~~~~~
/root/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
 class tcb_t
       ^~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In function ‘void initial_switch_to(tcb_t*)’:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:224:18: error: ‘get_kernel_space’ was not declared in this scope
     word_t asr = get_kernel_space()->get_vsid_asid();
                  ^~~~~~~~~~~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In member function ‘void tcb_t::switch_to(tcb_t*)’:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:271:10: error: ‘get_kernel_space’ was not declared in this scope
  space = get_kernel_space();
          ^~~~~~~~~~~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:271:10: note: suggested alternative: ‘kernel_stack’
  space = get_kernel_space();
          ^~~~~~~~~~~~~~~~
          kernel_stack
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:273:14: error: ‘get_kernel_space’ was not declared in this scope
  currspace = get_kernel_space();
              ^~~~~~~~~~~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:273:14: note: suggested alternative: ‘kernel_stack’
  currspace = get_kernel_space();
              ^~~~~~~~~~~~~~~~
              kernel_stack
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:277:23: error: invalid use of incomplete type ‘class space_t’
     word_t asr = space->get_vsid_asid();
                       ^~
In file included from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/api/v4/tcb.h:54:7: note: forward declaration of ‘class space_t’
 class space_t;
       ^~~~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: At global scope:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:569:13: error: no declaration matches ‘void tcb_t::copy_saved_regs(tcb_t*)’
 INLINE void tcb_t::copy_saved_regs(tcb_t *src)
             ^~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:569:13: note: no functions named ‘void tcb_t::copy_saved_regs(tcb_t*)’
In file included from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
 class tcb_t
       ^~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:601:13: error: no declaration matches ‘void tcb_t::copy_volatile_regs(tcb_t*)’
 INLINE void tcb_t::copy_volatile_regs(tcb_t *src)
             ^~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:601:13: note: no functions named ‘void tcb_t::copy_volatile_regs(tcb_t*)’
In file included from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
 class tcb_t
       ^~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:735:33: error: ‘timeout_t’ has not been declared
                                 timeout_t timeout)
                                 ^~~~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:734:18: error: no declaration matches ‘msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t, int)’
 INLINE msg_tag_t tcb_t::do_ipc (threadid_t to_tid, threadid_t from_tid,
                  ^~~~~
In file included from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/api/v4/tcb.h:130:15: note: candidate is: ‘msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t)’
     msg_tag_t do_ipc(threadid_t to_tid, threadid_t from_tid);
               ^~~~~~
/root/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
 class tcb_t
       ^~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:748:41: error: invalid use of incomplete type ‘class space_t’
 INLINE void space_t::add_tcb(tcb_t * tcb)
                                         ^
In file included from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/api/v4/tcb.h:54:7: note: forward declaration of ‘class space_t’
 class space_t;
       ^~~~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:763:44: error: invalid use of incomplete type ‘class space_t’
 INLINE bool space_t::remove_tcb(tcb_t * tcb)
                                            ^
In file included from /root/Orion/kernel/rpb8/_1568059116_123.c:2:
/root/Orion/kernel/src/api/v4/tcb.h:54:7: note: forward declaration of ‘class space_t’
 class space_t;
       ^~~~~~~
/root/Orion/kernel/rpb8/_1568059116_123.c: In function ‘void make_offsets()’:
/root/Orion/kernel/rpb8/_1568059116_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));
                                                   ^~~~~~~~~~~
/root/Orion/kernel/rpb8/_1568059116_123.c:12:84: note: in definition of macro ‘O’
 #define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
                                                                                    ^~~~~
/root/Orion/kernel/rpb8/_1568059116_123.c:51:36: note: in expansion of macro ‘offsetof’
    O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
                                    ^~~~~~~~
make[1]: *** [/root/Orion/kernel/Mk/Makefile.voodoo:69: /root/Orion/kernel/rpb8/include/tcb_layout.h] Error 255
make[1]: Leaving directory '/root/Orion/kernel/rpb8'
make: *** [Makefile:38: tcb_layout.h] Error 2
[root@fedora28 rpb8]# 
vmlemon commented 5 years ago

If we copy the 32-bit PPC version:

[root@fedora28 rpb8]# CC=gcc34 make
make[1]: Entering directory '/root/Orion/kernel/rpb8'
===> Building dependencies
===> src/generic/lib.cc
cd src/generic/ && gcc34 -nostdinc -I/root/Orion/kernel/rpb8/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/lib/gcc/ppc64-redhat-linux/3.4.6/include/ -Upowerpc64 -Upower4 -Uofpower4 -Uv4 -Urr -D__ARCH__=powerpc64 -D__CPU__=power4 -D__PLATFORM__=ofpower4 -D__API__=v4 -D__SCHED__=rr -imacros /root/Orion/kernel/rpb8/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 -mpowerpc64 -msoft-float -mno-minimal-toc  -mcpu=power4   -Wconversion -g  -c /root/Orion/kernel/src/generic/lib.cc
make[1]: *** No rule to make target 'arch/powerpc64/tracebuffer.h', needed by 'src/generic/kmemory.o'.  Stop.
make[1]: Leaving directory '/root/Orion/kernel/rpb8'
make: *** [Makefile:38: all] Error 2
[root@fedora28 rpb8]# CC=gcc34 make
make[1]: Entering directory '/root/Orion/kernel/rpb8'
make[1]: *** No rule to make target 'arch/powerpc64/tracebuffer.h', needed by 'src/generic/kmemory.o'.  Stop.
make[1]: Leaving directory '/root/Orion/kernel/rpb8'
make: *** [Makefile:38: all] Error 2
vmlemon commented 5 years ago

With the new compiler:

[root@fedora28 rpb8]# make asmsyms.h
make[1]: Entering directory '/root/Orion/kernel/rpb8'
===> src/glue/v4-powerpc64/asmsyms.cc
cd src/glue/v4-powerpc64/ &&  gcc  -nostdinc -I/root/Orion/kernel/rpb8/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/lib/gcc/ppc64-redhat-linux/8/include/ -Upowerpc64 -Upower4 -Uofpower4 -Uv4 -Urr -D__ARCH__=powerpc64 -D__CPU__=power4 -D__PLATFORM__=ofpower4 -D__API__=v4 -D__SCHED__=rr -imacros /root/Orion/kernel/rpb8/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 -mpowerpc64 -msoft-float -mno-minimal-toc  -mcpu=power4   -Wconversion -g  -c /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:41,
                 from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/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);
                                                ^
/root/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);
                                        ^
In file included from /root/Orion/kernel/src/api/v4/tcb.h:42,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/space.h:41:1: error: ‘space_t’ does not name a type; did you mean ‘size_t’?
 space_t * allocate_space();
 ^~~~~~~
 size_t
/root/Orion/kernel/src/api/v4/space.h:42:17: error: variable or field ‘free_space’ declared void
 void free_space(space_t * space);
                 ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:42:17: error: ‘space_t’ was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:42:17: note: suggested alternative: ‘size_t’
 void free_space(space_t * space);
                 ^~~~~~~
                 size_t
/root/Orion/kernel/src/api/v4/space.h:42:27: error: ‘space’ was not declared in this scope
 void free_space(space_t * space);
                           ^~~~~
/root/Orion/kernel/src/api/v4/space.h:44:8: error: ‘space_t’ does not name a type; did you mean ‘size_t’?
 extern space_t * sigma0_space;
        ^~~~~~~
        size_t
/root/Orion/kernel/src/api/v4/space.h:45:8: error: ‘space_t’ does not name a type; did you mean ‘size_t’?
 extern space_t * sigma1_space;
        ^~~~~~~
        size_t
/root/Orion/kernel/src/api/v4/space.h:46:8: error: ‘space_t’ does not name a type; did you mean ‘size_t’?
 extern space_t * roottask_space;
        ^~~~~~~
        size_t
/root/Orion/kernel/src/api/v4/space.h:48:29: warning: inline variables are only available with -std=c++17 or -std=gnu++17
 INLINE bool is_sigma0_space(space_t * space)
                             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:48:29: warning: ‘is_sigma0_space’ initialized and declared ‘extern’
/root/Orion/kernel/src/api/v4/space.h:48:29: error: ‘space_t’ was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:48:29: note: suggested alternative: ‘size_t’
 INLINE bool is_sigma0_space(space_t * space)
                             ^~~~~~~
                             size_t
/root/Orion/kernel/src/api/v4/space.h:48:39: error: ‘space’ was not declared in this scope
 INLINE bool is_sigma0_space(space_t * space)
                                       ^~~~~
/root/Orion/kernel/src/api/v4/space.h:53:29: warning: inline variables are only available with -std=c++17 or -std=gnu++17
 INLINE bool is_sigma1_space(space_t * space)
                             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:53:29: warning: ‘is_sigma1_space’ initialized and declared ‘extern’
/root/Orion/kernel/src/api/v4/space.h:53:29: error: ‘space_t’ was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:53:29: note: suggested alternative: ‘size_t’
 INLINE bool is_sigma1_space(space_t * space)
                             ^~~~~~~
                             size_t
/root/Orion/kernel/src/api/v4/space.h:53:39: error: ‘space’ was not declared in this scope
 INLINE bool is_sigma1_space(space_t * space)
                                       ^~~~~
/root/Orion/kernel/src/api/v4/space.h:58:31: warning: inline variables are only available with -std=c++17 or -std=gnu++17
 INLINE bool is_roottask_space(space_t * space)
                               ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:58:31: warning: ‘is_roottask_space’ initialized and declared ‘extern’
/root/Orion/kernel/src/api/v4/space.h:58:31: error: ‘space_t’ was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:58:31: note: suggested alternative: ‘size_t’
 INLINE bool is_roottask_space(space_t * space)
                               ^~~~~~~
                               size_t
/root/Orion/kernel/src/api/v4/space.h:58:41: error: ‘space’ was not declared in this scope
 INLINE bool is_roottask_space(space_t * space)
                                         ^~~~~
/root/Orion/kernel/src/api/v4/space.h:63:33: warning: inline variables are only available with -std=c++17 or -std=gnu++17
 INLINE bool is_privileged_space(space_t * space)
                                 ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:63:33: warning: ‘is_privileged_space’ initialized and declared ‘extern’
/root/Orion/kernel/src/api/v4/space.h:63:33: error: ‘space_t’ was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:63:33: note: suggested alternative: ‘size_t’
 INLINE bool is_privileged_space(space_t * space)
                                 ^~~~~~~
                                 size_t
/root/Orion/kernel/src/api/v4/space.h:63:43: error: ‘space’ was not declared in this scope
 INLINE bool is_privileged_space(space_t * space)
                                           ^~~~~
/root/Orion/kernel/src/api/v4/space.h:71:13: error: ‘space_t’ has not been declared
 INLINE bool space_t::is_mappable(addr_t addr)
             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h: In function ‘bool is_mappable(addr_t)’:
/root/Orion/kernel/src/api/v4/space.h:74:13: error: ‘is_user_area’ was not declared in this scope
     return (is_user_area(addr) &&
             ^~~~~~~~~~~~
/root/Orion/kernel/src/api/v4/space.h:75:4: error: ‘get_kip_page_area’ was not declared in this scope
  (!get_kip_page_area().is_addr_in_fpage(addr)) &&
    ^~~~~~~~~~~~~~~~~
/root/Orion/kernel/src/api/v4/space.h:76:4: error: ‘get_utcb_page_area’ was not declared in this scope
  (!get_utcb_page_area().is_addr_in_fpage(addr)));
    ^~~~~~~~~~~~~~~~~~
/root/Orion/kernel/src/api/v4/space.h: At global scope:
/root/Orion/kernel/src/api/v4/space.h:82:13: error: ‘space_t’ has not been declared
 INLINE bool space_t::is_mappable(fpage_t fpage)
             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:82:34: warning: inline variables are only available with -std=c++17 or -std=gnu++17
 INLINE bool space_t::is_mappable(fpage_t fpage)
                                  ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:82:34: warning: ‘is_mappable’ initialized and declared ‘extern’
/root/Orion/kernel/src/api/v4/space.h:82:34: error: ‘bool is_mappable’ redeclared as different kind of symbol
/root/Orion/kernel/src/api/v4/space.h:71:13: note: previous declaration ‘bool is_mappable(addr_t)’
 INLINE bool space_t::is_mappable(addr_t addr)
             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:82:34: error: ‘fpage_t’ was not declared in this scope
 INLINE bool space_t::is_mappable(fpage_t fpage)
                                  ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:93:13: error: ‘space_t’ has not been declared
 INLINE bool space_t::is_user_area(fpage_t fpage)
             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:93:35: warning: inline variables are only available with -std=c++17 or -std=gnu++17
 INLINE bool space_t::is_user_area(fpage_t fpage)
                                   ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h:93:35: warning: ‘is_user_area’ initialized and declared ‘extern’
/root/Orion/kernel/src/api/v4/space.h:93:35: error: ‘fpage_t’ was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:100:13: error: ‘space_t’ has not been declared
 INLINE bool space_t::is_initialized()
             ^~~~~~~
/root/Orion/kernel/src/api/v4/space.h: In function ‘bool is_initialized()’:
/root/Orion/kernel/src/api/v4/space.h:102:13: error: ‘get_kip_page_area’ was not declared in this scope
     return !get_kip_page_area().is_nil_fpage();
             ^~~~~~~~~~~~~~~~~
In file included from /root/Orion/kernel/src/api/v4/kernelinterface.h:37,
                 from /root/Orion/kernel/src/api/v4/thread.h:37,
                 from /root/Orion/kernel/src/api/v4/tcb.h:44,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/memdesc.h: In member function ‘void memdesc_t::set(memdesc_t::type_e, word_t, bool, addr_t, addr_t)’:
/root/Orion/kernel/src/api/v4/memdesc.h:118:14: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
      _type = type;
              ^~~~
/root/Orion/kernel/src/api/v4/memdesc.h:119:14: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:4’ may change value [-Wconversion]
      _t    = t;
              ^
/root/Orion/kernel/src/api/v4/memdesc.h:121:29: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:54’ may change value [-Wconversion]
      _low  = ((word_t) low) >> 10;
              ~~~~~~~~~~~~~~~^~~~~
/root/Orion/kernel/src/api/v4/memdesc.h:122:30: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:54’ may change value [-Wconversion]
      _high = ((word_t) high) >> 10;
              ~~~~~~~~~~~~~~~~^~~~~
In file included from /root/Orion/kernel/src/api/v4/thread.h:37,
                 from /root/Orion/kernel/src/api/v4/tcb.h:44,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/kernelinterface.h: In member function ‘void thread_info_t::set_user_base(word_t)’:
/root/Orion/kernel/src/api/v4/kernelinterface.h:169:52: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘short unsigned int:12’ may change value [-Wconversion]
     void set_user_base(word_t base)  { user_base = base; }
                                                    ^~~~
/root/Orion/kernel/src/api/v4/kernelinterface.h: In member function ‘void thread_info_t::set_system_base(word_t)’:
/root/Orion/kernel/src/api/v4/kernelinterface.h:170:56: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘short unsigned int:12’ may change value [-Wconversion]
     void set_system_base(word_t base)  { system_base = base; }
                                                        ^~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:44,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/thread.h: In static member function ‘static threadid_t threadid_t::irqthread(word_t)’:
/root/Orion/kernel/src/api/v4/thread.h:71:28: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
      tid.global.threadno = irq;
                            ^~~
/root/Orion/kernel/src/api/v4/thread.h: In static member function ‘static threadid_t threadid_t::threadid(word_t, word_t)’:
/root/Orion/kernel/src/api/v4/thread.h:78:27: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
      tid.global.version = version;
                           ^~~~~~~
/root/Orion/kernel/src/api/v4/thread.h:79:28: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
      tid.global.threadno = threadno;
                            ^~~~~~~~
/root/Orion/kernel/src/api/v4/thread.h: In member function ‘void threadid_t::set_global_id(word_t, word_t)’:
/root/Orion/kernel/src/api/v4/thread.h:126:23: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
     global.threadno = threadno;
                       ^~~~~~~~
/root/Orion/kernel/src/api/v4/thread.h:127:22: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
     global.version = version;
                      ^~~~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:46,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/fpage.h: In member function ‘void fpage_t::set(word_t, word_t, bool, bool, bool)’:
/root/Orion/kernel/src/api/v4/fpage.h:69:60: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:54’ may change value [-Wconversion]
      x.base = (base & (~0 >> (L4_FPAGE_BASE_BITS - size))) >> 10;
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/root/Orion/kernel/src/api/v4/fpage.h:70:15: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:6’ may change value [-Wconversion]
      x.size = size;
               ^~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:47,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/ipc.h: In member function ‘void msg_tag_t::set(word_t, word_t, word_t, bool, bool)’:
/root/Orion/kernel/src/api/v4/ipc.h:82:25: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:6’ may change value [-Wconversion]
      this->send.typed = typed;
                         ^~~~~
/root/Orion/kernel/src/api/v4/ipc.h:83:27: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘unsigned char:6’ may change value [-Wconversion]
      this->send.untyped = untyped;
                           ^~~~~~~
/root/Orion/kernel/src/api/v4/ipc.h:84:25: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:48’ may change value [-Wconversion]
      this->send.label = label;
                         ^~~~~
/root/Orion/kernel/src/api/v4/ipc.h: In member function ‘void acceptor_t::set_rcv_window(fpage_t)’:
/root/Orion/kernel/src/api/v4/ipc.h:232:30: warning: conversion from ‘word_t’ {aka ‘long unsigned int’} to ‘long unsigned int:60’ may change value [-Wconversion]
  { x.rcv_window = (fpage.raw >> 4); };
                   ~~~~~~~~~~~^~~~~
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/tcb.h: At global scope:
/root/Orion/kernel/src/api/v4/tcb.h:131:62: error: ‘space_t::access_e’ has not been declared
     void send_pagefault_ipc(addr_t addr, addr_t ip, space_t::access_e access);
                                                              ^~~~~~~~
/root/Orion/kernel/src/api/v4/tcb.h: In member function ‘tcb_t* tcb_t::get_partner_tcb()’:
/root/Orion/kernel/src/api/v4/tcb.h:425:29: error: invalid use of incomplete type ‘class space_t’
     return this->get_space()->get_tcb(partner);
                             ^~
/root/Orion/kernel/src/api/v4/tcb.h:54:7: note: forward declaration of ‘class space_t’
 class space_t;
       ^~~~~~~
/root/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::clear_notify_bits()’:
/root/Orion/kernel/src/api/v4/tcb.h:570:14: error: ‘class utcb_t’ has no member named ‘notify_bits’; did you mean ‘notify_mask’?
  get_utcb()->notify_bits = 0;
              ^~~~~~~~~~~
              notify_mask
/root/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::add_notify_bits(word_t)’:
/root/Orion/kernel/src/api/v4/tcb.h:578:14: error: ‘class utcb_t’ has no member named ‘notify_bits’; did you mean ‘notify_mask’?
  get_utcb()->notify_bits |= bits;
              ^~~~~~~~~~~
              notify_mask
/root/Orion/kernel/src/api/v4/tcb.h: In member function ‘void tcb_t::sub_notify_bits(word_t)’:
/root/Orion/kernel/src/api/v4/tcb.h:586:14: error: ‘class utcb_t’ has no member named ‘notify_bits’; did you mean ‘notify_mask’?
  get_utcb()->notify_bits &= ~(bits);
              ^~~~~~~~~~~
              notify_mask
/root/Orion/kernel/src/api/v4/tcb.h: In member function ‘word_t tcb_t::get_notify_bits()’:
/root/Orion/kernel/src/api/v4/tcb.h:594:24: error: ‘class utcb_t’ has no member named ‘notify_bits’; did you mean ‘notify_mask’?
     return get_utcb()->notify_bits;
                        ^~~~~~~~~~~
                        notify_mask
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:41,
                 from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/root/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);
 ^~~~~~~
/root/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,
 ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:112:13: error: no declaration matches ‘void tcb_t::allocate()’
 INLINE void tcb_t::allocate()
             ^~~~~
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/tcb.h:216:10: note: candidate is: ‘bool tcb_t::allocate()’
     bool allocate();
          ^~~~~~~~
/root/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
 class tcb_t
       ^~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In function ‘void initial_switch_to(tcb_t*)’:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:224:18: error: ‘get_kernel_space’ was not declared in this scope
     word_t asr = get_kernel_space()->get_vsid_asid();
                  ^~~~~~~~~~~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In member function ‘void tcb_t::switch_to(tcb_t*)’:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:271:10: error: ‘get_kernel_space’ was not declared in this scope
  space = get_kernel_space();
          ^~~~~~~~~~~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:271:10: note: suggested alternative: ‘kernel_stack’
  space = get_kernel_space();
          ^~~~~~~~~~~~~~~~
          kernel_stack
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:273:14: error: ‘get_kernel_space’ was not declared in this scope
  currspace = get_kernel_space();
              ^~~~~~~~~~~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:273:14: note: suggested alternative: ‘kernel_stack’
  currspace = get_kernel_space();
              ^~~~~~~~~~~~~~~~
              kernel_stack
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:277:23: error: invalid use of incomplete type ‘class space_t’
     word_t asr = space->get_vsid_asid();
                       ^~
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/tcb.h:54:7: note: forward declaration of ‘class space_t’
 class space_t;
       ^~~~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: At global scope:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:569:13: error: no declaration matches ‘void tcb_t::copy_saved_regs(tcb_t*)’
 INLINE void tcb_t::copy_saved_regs(tcb_t *src)
             ^~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:569:13: note: no functions named ‘void tcb_t::copy_saved_regs(tcb_t*)’
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
 class tcb_t
       ^~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:601:13: error: no declaration matches ‘void tcb_t::copy_volatile_regs(tcb_t*)’
 INLINE void tcb_t::copy_volatile_regs(tcb_t *src)
             ^~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:601:13: note: no functions named ‘void tcb_t::copy_volatile_regs(tcb_t*)’
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
 class tcb_t
       ^~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:735:33: error: ‘timeout_t’ has not been declared
                                 timeout_t timeout)
                                 ^~~~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:734:18: error: no declaration matches ‘msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t, int)’
 INLINE msg_tag_t tcb_t::do_ipc (threadid_t to_tid, threadid_t from_tid,
                  ^~~~~
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/tcb.h:130:15: note: candidate is: ‘msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t)’
     msg_tag_t do_ipc(threadid_t to_tid, threadid_t from_tid);
               ^~~~~~
/root/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
 class tcb_t
       ^~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:748:41: error: invalid use of incomplete type ‘class space_t’
 inline void space_t::add_tcb(tcb_t * tcb)
                                         ^
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/tcb.h:54:7: note: forward declaration of ‘class space_t’
 class space_t;
       ^~~~~~~
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:763:44: error: invalid use of incomplete type ‘class space_t’
 inline bool space_t::remove_tcb(tcb_t * tcb)
                                            ^
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/tcb.h:54:7: note: forward declaration of ‘class space_t’
 class space_t;
       ^~~~~~~
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:34:
/root/Orion/kernel/src/generic/mkasmsym.h:40:55: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_sign_t { char x[32*((value) < 0 ? 1 : 2)]; };  \
                                                       ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:42:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b0_t { char x[32*((__ABSVALUE(value) >> 0) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:44:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b1_t { char x[32*((__ABSVALUE(value) >> 8) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:46:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b2_t { char x[32*((__ABSVALUE(value) >> 16) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:48:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b3_t { char x[32*((__ABSVALUE(value) >> 24) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:50:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b4_t { char x[32*((__ABSVALUE(value) >> 32) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:52:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b5_t { char x[32*((__ABSVALUE(value) >> 40) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:54:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b6_t { char x[32*((__ABSVALUE(value) >> 48) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:56:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b7_t { char x[32*((__ABSVALUE(value) >> 56) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:50:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MR, (((word_t) &UTCB->mr[0]) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:40:55: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_sign_t { char x[32*((value) < 0 ? 1 : 2)]; };  \
                                                       ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:42:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b0_t { char x[32*((__ABSVALUE(value) >> 0) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:44:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b1_t { char x[32*((__ABSVALUE(value) >> 8) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:46:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b2_t { char x[32*((__ABSVALUE(value) >> 16) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:48:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b3_t { char x[32*((__ABSVALUE(value) >> 24) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:50:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b4_t { char x[32*((__ABSVALUE(value) >> 32) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:52:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b5_t { char x[32*((__ABSVALUE(value) >> 40) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:54:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b6_t { char x[32*((__ABSVALUE(value) >> 48) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:56:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b7_t { char x[32*((__ABSVALUE(value) >> 56) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:51:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_EXCEPTION_HANDLER, (((word_t) &UTCB->exception_handler) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:40:55: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_sign_t { char x[32*((value) < 0 ? 1 : 2)]; };  \
                                                       ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:42:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b0_t { char x[32*((__ABSVALUE(value) >> 0) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:44:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b1_t { char x[32*((__ABSVALUE(value) >> 8) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:46:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b2_t { char x[32*((__ABSVALUE(value) >> 16) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:48:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b3_t { char x[32*((__ABSVALUE(value) >> 24) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:50:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b4_t { char x[32*((__ABSVALUE(value) >> 32) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:52:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b5_t { char x[32*((__ABSVALUE(value) >> 40) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:54:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b6_t { char x[32*((__ABSVALUE(value) >> 48) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:56:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b7_t { char x[32*((__ABSVALUE(value) >> 56) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:52:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( OFS_UTCB_MY_GLOBAL_ID, (((word_t) &UTCB->my_global_id) - ((word_t) UTCB)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:40:55: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_sign_t { char x[32*((value) < 0 ? 1 : 2)]; };  \
                                                       ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:58:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_ENTRY, (((word_t) &RTAS->entry) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:42:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b0_t { char x[32*((__ABSVALUE(value) >> 0) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:58:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_ENTRY, (((word_t) &RTAS->entry) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:44:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b1_t { char x[32*((__ABSVALUE(value) >> 8) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:58:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_ENTRY, (((word_t) &RTAS->entry) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:46:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b2_t { char x[32*((__ABSVALUE(value) >> 16) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:58:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_ENTRY, (((word_t) &RTAS->entry) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:48:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b3_t { char x[32*((__ABSVALUE(value) >> 24) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:58:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_ENTRY, (((word_t) &RTAS->entry) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:50:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b4_t { char x[32*((__ABSVALUE(value) >> 32) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:58:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_ENTRY, (((word_t) &RTAS->entry) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:52:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b5_t { char x[32*((__ABSVALUE(value) >> 40) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:58:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_ENTRY, (((word_t) &RTAS->entry) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:54:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b6_t { char x[32*((__ABSVALUE(value) >> 48) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:58:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_ENTRY, (((word_t) &RTAS->entry) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:56:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b7_t { char x[32*((__ABSVALUE(value) >> 56) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:58:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_ENTRY, (((word_t) &RTAS->entry) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:40:55: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_sign_t { char x[32*((value) < 0 ? 1 : 2)]; };  \
                                                       ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:59:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_BASE, (((word_t) &RTAS->base) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:42:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b0_t { char x[32*((__ABSVALUE(value) >> 0) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:59:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_BASE, (((word_t) &RTAS->base) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:44:65: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b1_t { char x[32*((__ABSVALUE(value) >> 8) & 0xff)]; }; \
                                                                 ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:59:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_BASE, (((word_t) &RTAS->base) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:46:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b2_t { char x[32*((__ABSVALUE(value) >> 16) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:59:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_BASE, (((word_t) &RTAS->base) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:48:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b3_t { char x[32*((__ABSVALUE(value) >> 24) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:59:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_BASE, (((word_t) &RTAS->base) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:50:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b4_t { char x[32*((__ABSVALUE(value) >> 32) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:59:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_BASE, (((word_t) &RTAS->base) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:52:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b5_t { char x[32*((__ABSVALUE(value) >> 40) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:59:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_BASE, (((word_t) &RTAS->base) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:54:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b6_t { char x[32*((__ABSVALUE(value) >> 48) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:59:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_BASE, (((word_t) &RTAS->base) - ((word_t) RTAS)));
 ^~~~~~~~
/root/Orion/kernel/src/generic/mkasmsym.h:56:66: error: array bound is not an integer constant before ‘]’ token
 struct sym ##_b7_t { char x[32*((__ABSVALUE(value) >> 56) & 0xff)]; }; \
                                                                  ^
/root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:59:1: note: in expansion of macro ‘MKASMSYM’
 MKASMSYM( RTAS_BASE, (((word_t) &RTAS->base) - ((word_t) RTAS)));
 ^~~~~~~~
make[1]: *** No rule to make target 'src/glue/v4-powerpc64/asmsyms.o', needed by '/root/Orion/kernel/rpb8/include/asmsyms.h'.  Stop.
make[1]: Leaving directory '/root/Orion/kernel/rpb8'
make: *** [Makefile:38: asmsyms.h] Error 2
[root@fedora28 rpb8]# 
vmlemon commented 5 years ago

Old/new/old compiler switching:

[root@fedora28 rpb8]# CC=gcc34 make
make[1]: Entering directory '/root/Orion/kernel/rpb8'
===> Building dependencies
===> src/glue/v4-powerpc64/asmsyms.cc
cd src/glue/v4-powerpc64/ && gcc34 -nostdinc -I/root/Orion/kernel/rpb8/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/lib/gcc/ppc64-redhat-linux/3.4.6/include/ -Upowerpc64 -Upower4 -Uofpower4 -Uv4 -Urr -D__ARCH__=powerpc64 -D__CPU__=power4 -D__PLATFORM__=ofpower4 -D__API__=v4 -D__SCHED__=rr -imacros /root/Orion/kernel/rpb8/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 -mpowerpc64 -msoft-float -mno-minimal-toc  -mcpu=power4   -Wconversion -g  -c /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc
In file included from /root/Orion/kernel/src/api/v4/tcb.h:42,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/space.h:41: error: expected constructor, destructor, or type conversion before '*' token
/root/Orion/kernel/src/api/v4/space.h:42: error: variable or field `free_space' declared void
/root/Orion/kernel/src/api/v4/space.h:42: error: `space_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:42: error: `space' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:44: error: expected initializer before '*' token
/root/Orion/kernel/src/api/v4/space.h:45: error: expected initializer before '*' token
/root/Orion/kernel/src/api/v4/space.h:46: error: expected initializer before '*' token
/root/Orion/kernel/src/api/v4/space.h:48: warning: `is_sigma0_space' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:48: error: `is_sigma0_space' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:48: error: `space_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:48: error: `space' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:49: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:53: warning: `is_sigma1_space' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:53: error: `is_sigma1_space' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:53: error: `space_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:53: error: `space' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:54: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:58: warning: `is_roottask_space' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:58: error: `is_roottask_space' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:58: error: `space_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:58: error: `space' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:59: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:63: warning: `is_privileged_space' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:63: error: `is_privileged_space' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:63: error: `space_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:63: error: `space' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:64: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:71: error: `space_t' has not been declared
/root/Orion/kernel/src/api/v4/space.h: In function `bool is_mappable(void*)':
/root/Orion/kernel/src/api/v4/space.h:74: error: `is_user_area' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:75: error: `get_kip_page_area' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:76: error: `get_utcb_page_area' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:74: warning: unused variable 'is_user_area'
/root/Orion/kernel/src/api/v4/space.h:75: warning: unused variable 'get_kip_page_area'
/root/Orion/kernel/src/api/v4/space.h:76: warning: unused variable 'get_utcb_page_area'
/root/Orion/kernel/src/api/v4/space.h: At global scope:
/root/Orion/kernel/src/api/v4/space.h:82: error: `space_t' has not been declared
/root/Orion/kernel/src/api/v4/space.h:82: warning: `is_mappable' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:82: error: `is_mappable' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:82: error: `bool is_mappable' redeclared as different kind of symbol
/root/Orion/kernel/src/api/v4/space.h:72: error: previous declaration of `bool is_mappable(void*)'
/root/Orion/kernel/src/api/v4/space.h:82: error: declaration of `bool is_mappable'
/root/Orion/kernel/src/api/v4/space.h:72: error: conflicts with previous declaration `bool is_mappable(void*)'
/root/Orion/kernel/src/api/v4/space.h:82: error: `fpage_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:83: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:93: error: `space_t' has not been declared
/root/Orion/kernel/src/api/v4/space.h:93: warning: `is_user_area' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:93: error: `is_user_area' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:93: error: `fpage_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:94: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:100: error: `space_t' has not been declared
/root/Orion/kernel/src/api/v4/space.h: In function `bool is_initialized()':
/root/Orion/kernel/src/api/v4/space.h:102: error: `get_kip_page_area' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:102: warning: unused variable 'get_kip_page_area'
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/tcb.h: At global scope:
/root/Orion/kernel/src/api/v4/tcb.h:131: error: `struct space_t::access_e' has not been declared
/root/Orion/kernel/src/api/v4/tcb.h:131: error: ISO C++ forbids declaration of `access' with no type
/root/Orion/kernel/src/api/v4/tcb.h: In member function `tcb_t* tcb_t::get_partner_tcb()':
/root/Orion/kernel/src/api/v4/tcb.h:425: error: invalid use of undefined type `struct space_t'
/root/Orion/kernel/src/api/v4/tcb.h:54: error: forward declaration of `struct space_t'
/root/Orion/kernel/src/api/v4/tcb.h: In member function `void tcb_t::clear_notify_bits()':
/root/Orion/kernel/src/api/v4/tcb.h:570: error: 'class utcb_t' has no member named 'notify_bits'
/root/Orion/kernel/src/api/v4/tcb.h: In member function `void tcb_t::add_notify_bits(word_t)':
/root/Orion/kernel/src/api/v4/tcb.h:578: error: 'class utcb_t' has no member named 'notify_bits'
/root/Orion/kernel/src/api/v4/tcb.h: In member function `void tcb_t::sub_notify_bits(word_t)':
/root/Orion/kernel/src/api/v4/tcb.h:586: error: 'class utcb_t' has no member named 'notify_bits'
/root/Orion/kernel/src/api/v4/tcb.h: In member function `word_t tcb_t::get_notify_bits()':
/root/Orion/kernel/src/api/v4/tcb.h:594: error: 'class utcb_t' has no member named 'notify_bits'
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:41,
                 from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/syscalls.h:53:48: macro "SYS_IPC" requires 3 arguments, but only 2 given
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:41,
                 from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/root/Orion/kernel/src/api/v4/syscalls.h:53: error: expected constructor, destructor, or type conversion before ';' token
/root/Orion/kernel/src/api/v4/syscalls.h:90:40: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
/root/Orion/kernel/src/api/v4/syscalls.h:88: error: expected constructor, destructor, or type conversion before ';' token
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/glue/v4-powerpc64/asmsyms.cc:37:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:113: error: prototype for `void tcb_t::allocate()' does not match any in class `tcb_t'
/root/Orion/kernel/src/api/v4/tcb.h:216: error: candidate is: bool tcb_t::allocate()
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:113: error: `void tcb_t::allocate()' and `bool tcb_t::allocate()' cannot be overloaded
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In function `void initial_switch_to(tcb_t*)':
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:224: error: `get_kernel_space' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:224: warning: unused variable 'get_kernel_space'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In member function `void tcb_t::switch_to(tcb_t*)':
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:271: error: `get_kernel_space' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:271: warning: unused variable 'get_kernel_space'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:273: error: `get_kernel_space' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:273: warning: unused variable 'get_kernel_space'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:277: error: invalid use of undefined type `struct space_t'
/root/Orion/kernel/src/api/v4/tcb.h:54: error: forward declaration of `struct space_t'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: At global scope:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:570: error: no `void tcb_t::copy_saved_regs(tcb_t*)' member function declared in class `tcb_t'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:602: error: no `void tcb_t::copy_volatile_regs(tcb_t*)' member function declared in class `tcb_t'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:735: error: `timeout_t' has not been declared
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:736: error: ISO C++ forbids declaration of `timeout' with no type
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:736: error: prototype for `msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t, int)' does not match any in class `tcb_t'
/root/Orion/kernel/src/api/v4/tcb.h:130: error: candidate is: msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t)
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In member function `msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t, int)':
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:738: error: `sys_ipc' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:738: warning: unused variable 'sys_ipc'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: At global scope:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:749: error: invalid use of undefined type `struct space_t'
/root/Orion/kernel/src/api/v4/tcb.h:54: error: forward declaration of `struct space_t'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In member function `void space_t::add_tcb(tcb_t*)':
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:750: error: `x' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:752: error: `spaces_list_lock' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: At global scope:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:764: error: invalid use of undefined type `struct space_t'
/root/Orion/kernel/src/api/v4/tcb.h:54: error: forward declaration of `struct space_t'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In member function `bool space_t::remove_tcb(tcb_t*)':
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:765: error: `x' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:765: warning: unused variable 'x'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:766: error: `x' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:768: error: `spaces_list_lock' was not declared in this scope
===> src/generic/lib.cc
cd src/generic/ && gcc34 -nostdinc -I/root/Orion/kernel/rpb8/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/lib/gcc/ppc64-redhat-linux/3.4.6/include/ -Upowerpc64 -Upower4 -Uofpower4 -Uv4 -Urr -D__ARCH__=powerpc64 -D__CPU__=power4 -D__PLATFORM__=ofpower4 -D__API__=v4 -D__SCHED__=rr -imacros /root/Orion/kernel/rpb8/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 -mpowerpc64 -msoft-float -mno-minimal-toc  -mcpu=power4   -Wconversion -g  -c /root/Orion/kernel/src/generic/lib.cc
===> src/generic/kmemory.cc
cd src/generic/ && gcc34 -nostdinc -I/root/Orion/kernel/rpb8/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/lib/gcc/ppc64-redhat-linux/3.4.6/include/ -Upowerpc64 -Upower4 -Uofpower4 -Uv4 -Urr -D__ARCH__=powerpc64 -D__CPU__=power4 -D__PLATFORM__=ofpower4 -D__API__=v4 -D__SCHED__=rr -imacros /root/Orion/kernel/rpb8/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 -mpowerpc64 -msoft-float -mno-minimal-toc  -mcpu=power4   -Wconversion -g  -c /root/Orion/kernel/src/generic/kmemory.cc
===> src/generic/traceids.cc
cd src/generic/ && gcc34 -nostdinc -I/root/Orion/kernel/rpb8/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/lib/gcc/ppc64-redhat-linux/3.4.6/include/ -Upowerpc64 -Upower4 -Uofpower4 -Uv4 -Urr -D__ARCH__=powerpc64 -D__CPU__=power4 -D__PLATFORM__=ofpower4 -D__API__=v4 -D__SCHED__=rr -imacros /root/Orion/kernel/rpb8/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 -mpowerpc64 -msoft-float -mno-minimal-toc  -mcpu=power4   -Wconversion -g  -c /root/Orion/kernel/src/generic/traceids.cc
===> src/generic/tracebuffer.cc
cd src/generic/ && gcc34 -nostdinc -I/root/Orion/kernel/rpb8/include -I/root/Orion/kernel/src -I/root/Orion/kernel/src/generic -I/usr/lib/gcc/ppc64-redhat-linux/3.4.6/include/ -Upowerpc64 -Upower4 -Uofpower4 -Uv4 -Urr -D__ARCH__=powerpc64 -D__CPU__=power4 -D__PLATFORM__=ofpower4 -D__API__=v4 -D__SCHED__=rr -imacros /root/Orion/kernel/rpb8/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 -mpowerpc64 -msoft-float -mno-minimal-toc  -mcpu=power4   -Wconversion -g  -c /root/Orion/kernel/src/generic/tracebuffer.cc
In file included from /root/Orion/kernel/src/api/v4/tcb.h:42,
                 from /root/Orion/kernel/src/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/root/Orion/kernel/src/api/v4/space.h:41: error: expected constructor, destructor, or type conversion before '*' token
/root/Orion/kernel/src/api/v4/space.h:42: error: variable or field `free_space' declared void
/root/Orion/kernel/src/api/v4/space.h:42: error: `space_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:42: error: `space' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:44: error: expected initializer before '*' token
/root/Orion/kernel/src/api/v4/space.h:45: error: expected initializer before '*' token
/root/Orion/kernel/src/api/v4/space.h:46: error: expected initializer before '*' token
/root/Orion/kernel/src/api/v4/space.h:48: warning: `is_sigma0_space' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:48: error: `is_sigma0_space' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:48: error: `space_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:48: error: `space' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:49: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:53: warning: `is_sigma1_space' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:53: error: `is_sigma1_space' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:53: error: `space_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:53: error: `space' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:54: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:58: warning: `is_roottask_space' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:58: error: `is_roottask_space' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:58: error: `space_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:58: error: `space' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:59: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:63: warning: `is_privileged_space' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:63: error: `is_privileged_space' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:63: error: `space_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:63: error: `space' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:64: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:71: error: `space_t' has not been declared
/root/Orion/kernel/src/api/v4/space.h: In function `bool is_mappable(void*)':
/root/Orion/kernel/src/api/v4/space.h:74: error: `is_user_area' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:75: error: `get_kip_page_area' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:76: error: `get_utcb_page_area' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:74: warning: unused variable 'is_user_area'
/root/Orion/kernel/src/api/v4/space.h:75: warning: unused variable 'get_kip_page_area'
/root/Orion/kernel/src/api/v4/space.h:76: warning: unused variable 'get_utcb_page_area'
/root/Orion/kernel/src/api/v4/space.h: At global scope:
/root/Orion/kernel/src/api/v4/space.h:82: error: `space_t' has not been declared
/root/Orion/kernel/src/api/v4/space.h:82: warning: `is_mappable' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:82: error: `is_mappable' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:82: error: `bool is_mappable' redeclared as different kind of symbol
/root/Orion/kernel/src/api/v4/space.h:72: error: previous declaration of `bool is_mappable(void*)'
/root/Orion/kernel/src/api/v4/space.h:82: error: declaration of `bool is_mappable'
/root/Orion/kernel/src/api/v4/space.h:72: error: conflicts with previous declaration `bool is_mappable(void*)'
/root/Orion/kernel/src/api/v4/space.h:82: error: `fpage_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:83: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:93: error: `space_t' has not been declared
/root/Orion/kernel/src/api/v4/space.h:93: warning: `is_user_area' initialized and declared `extern'
/root/Orion/kernel/src/api/v4/space.h:93: error: `is_user_area' declared as an `inline' variable
/root/Orion/kernel/src/api/v4/space.h:93: error: `fpage_t' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:94: error: expected `,' or `;' before '{' token
/root/Orion/kernel/src/api/v4/space.h:100: error: `space_t' has not been declared
/root/Orion/kernel/src/api/v4/space.h: In function `bool is_initialized()':
/root/Orion/kernel/src/api/v4/space.h:102: error: `get_kip_page_area' was not declared in this scope
/root/Orion/kernel/src/api/v4/space.h:102: warning: unused variable 'get_kip_page_area'
In file included from /root/Orion/kernel/src/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/root/Orion/kernel/src/api/v4/tcb.h: At global scope:
/root/Orion/kernel/src/api/v4/tcb.h:131: error: `struct space_t::access_e' has not been declared
/root/Orion/kernel/src/api/v4/tcb.h:131: error: ISO C++ forbids declaration of `access' with no type
/root/Orion/kernel/src/api/v4/tcb.h: In member function `tcb_t* tcb_t::get_partner_tcb()':
/root/Orion/kernel/src/api/v4/tcb.h:425: error: invalid use of undefined type `struct space_t'
/root/Orion/kernel/src/api/v4/tcb.h:54: error: forward declaration of `struct space_t'
/root/Orion/kernel/src/api/v4/tcb.h: In member function `void tcb_t::clear_notify_bits()':
/root/Orion/kernel/src/api/v4/tcb.h:570: error: 'class utcb_t' has no member named 'notify_bits'
/root/Orion/kernel/src/api/v4/tcb.h: In member function `void tcb_t::add_notify_bits(word_t)':
/root/Orion/kernel/src/api/v4/tcb.h:578: error: 'class utcb_t' has no member named 'notify_bits'
/root/Orion/kernel/src/api/v4/tcb.h: In member function `void tcb_t::sub_notify_bits(word_t)':
/root/Orion/kernel/src/api/v4/tcb.h:586: error: 'class utcb_t' has no member named 'notify_bits'
/root/Orion/kernel/src/api/v4/tcb.h: In member function `word_t tcb_t::get_notify_bits()':
/root/Orion/kernel/src/api/v4/tcb.h:594: error: 'class utcb_t' has no member named 'notify_bits'
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:41,
                 from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/root/Orion/kernel/src/api/v4/syscalls.h:53:48: macro "SYS_IPC" requires 3 arguments, but only 2 given
In file included from /root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:41,
                 from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/root/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/root/Orion/kernel/src/api/v4/syscalls.h:53: error: expected constructor, destructor, or type conversion before ';' token
/root/Orion/kernel/src/api/v4/syscalls.h:90:40: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
/root/Orion/kernel/src/api/v4/syscalls.h:88: error: expected constructor, destructor, or type conversion before ';' token
In file included from /root/Orion/kernel/src/api/v4/tcb.h:707,
                 from /root/Orion/kernel/src/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:113: error: prototype for `void tcb_t::allocate()' does not match any in class `tcb_t'
/root/Orion/kernel/src/api/v4/tcb.h:216: error: candidate is: bool tcb_t::allocate()
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:113: error: `void tcb_t::allocate()' and `bool tcb_t::allocate()' cannot be overloaded
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In function `void initial_switch_to(tcb_t*)':
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:224: error: `get_kernel_space' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:224: warning: unused variable 'get_kernel_space'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In member function `void tcb_t::switch_to(tcb_t*)':
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:271: error: `get_kernel_space' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:271: warning: unused variable 'get_kernel_space'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:273: error: `get_kernel_space' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:273: warning: unused variable 'get_kernel_space'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:277: error: invalid use of undefined type `struct space_t'
/root/Orion/kernel/src/api/v4/tcb.h:54: error: forward declaration of `struct space_t'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: At global scope:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:570: error: no `void tcb_t::copy_saved_regs(tcb_t*)' member function declared in class `tcb_t'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:602: error: no `void tcb_t::copy_volatile_regs(tcb_t*)' member function declared in class `tcb_t'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:735: error: `timeout_t' has not been declared
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:736: error: ISO C++ forbids declaration of `timeout' with no type
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:736: error: prototype for `msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t, int)' does not match any in class `tcb_t'
/root/Orion/kernel/src/api/v4/tcb.h:130: error: candidate is: msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t)
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In member function `msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t, int)':
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:738: error: `sys_ipc' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:738: warning: unused variable 'sys_ipc'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: At global scope:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:749: error: invalid use of undefined type `struct space_t'
/root/Orion/kernel/src/api/v4/tcb.h:54: error: forward declaration of `struct space_t'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In member function `void space_t::add_tcb(tcb_t*)':
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:750: error: `x' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:752: error: `spaces_list_lock' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: At global scope:
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:764: error: invalid use of undefined type `struct space_t'
/root/Orion/kernel/src/api/v4/tcb.h:54: error: forward declaration of `struct space_t'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h: In member function `bool space_t::remove_tcb(tcb_t*)':
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:765: error: `x' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:765: warning: unused variable 'x'
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:766: error: `x' was not declared in this scope
/root/Orion/kernel/src/glue/v4-powerpc64/tcb.h:768: error: `spaces_list_lock' was not declared in this scope
In file included from /root/Orion/kernel/src/kdb/tracebuffer.h:37,
                 from /root/Orion/kernel/src/kdb/tracepoints.h:37,
                 from /root/Orion/kernel/src/api/v4/schedule.h:39,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/root/Orion/kernel/src/api/v4/cpu.h: In function `cpuid_t get_current_cpu()':
/root/Orion/kernel/src/api/v4/cpu.h:70: error: redefinition of `cpuid_t get_current_cpu()'
/root/Orion/kernel/src/api/v4/tcb.h:723: error: `cpuid_t get_current_cpu()' previously defined here
/root/Orion/kernel/src/generic/tracebuffer.cc: In function `void init_tracebuffer()':
/root/Orion/kernel/src/generic/tracebuffer.cc:108: error: `TBUFF_SIZE' was not declared in this scope
/root/Orion/kernel/src/generic/tracebuffer.cc: In function `void tb_log_event(word_t)':
/root/Orion/kernel/src/generic/tracebuffer.cc:247: error: `EVENT' was not declared in this scope
/root/Orion/kernel/src/generic/tracebuffer.cc:251: error: `EVENT_major' was not declared in this scope
/root/Orion/kernel/src/generic/tracebuffer.cc:247: warning: unused variable 'EVENT'
/root/Orion/kernel/src/generic/tracebuffer.cc:251: warning: unused variable 'EVENT_major'
make[1]: *** [/root/Orion/kernel/Mk/Makeconf:208: src/generic/tracebuffer.o] Error 1
make[1]: Leaving directory '/root/Orion/kernel/rpb8'
make: *** [Makefile:38: all] Error 2
[root@fedora28 rpb8]# 
vmlemon commented 5 years ago

Seems that some API changes were made (addition/removal of a "timeout" parameter, according to https://github.com/vmlemon/Orion/search?q=SYS_IPC+%28threadid_t+to_tid%2C+threadid_t+from_tid%29&unscoped_q=SYS_IPC+%28threadid_t+to_tid%2C+threadid_t+from_tid%29, and some other stuff).

GCC-6 on x64 gives us:

tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ibd$ CC=gcc-6 make
make[1]: Entering directory '/home/tyson/Orion/kernel/ibd'
===> Building dependencies
===> Generating include/tcb_layout.h
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20:0,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ibd/_1568332768_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:0,
                 from /home/tyson/Orion/kernel/ibd/_1568332768_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:0,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
                 from /home/tyson/Orion/kernel/ibd/_1568332768_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/_1568332768_123.c:2:0:
/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);
                               ^~~~~~~
/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;
                        ^~~~~~~~~~~
/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;
                 ^~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/syscalls.h:16:0,
                 from /home/tyson/Orion/kernel/src/api/v4/syscalls.h:42,
                 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/_1568332768_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:50: error: ‘timeout_t’ was not declared in this scope
 SYS_IPC (threadid_t to_tid, threadid_t from_tid, timeout_t timeout);
                                                  ^
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/syscalls.h:62:11: note: in definition of macro ‘SYS_IPC’
  sys_ipc (timeout, to, from)
           ^~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:21: error: expected primary-expression before ‘to_tid’
 SYS_IPC (threadid_t to_tid, threadid_t from_tid, timeout_t timeout);
                     ^
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/syscalls.h:62:20: note: in definition of macro ‘SYS_IPC’
  sys_ipc (timeout, to, from)
                    ^~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:40: error: expected primary-expression before ‘from_tid’
 SYS_IPC (threadid_t to_tid, threadid_t from_tid, timeout_t timeout);
                                        ^
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/syscalls.h:62:24: note: in definition of macro ‘SYS_IPC’
  sys_ipc (timeout, to, from)
                        ^~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20:0,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ibd/_1568332768_123.c:2:
/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:0,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ibd/_1568332768_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:80: error: no ‘void tcb_t::arch_init_root_server(space_t*, word_t, word_t)’ member function declared in class ‘tcb_t’
 INLINE void tcb_t::arch_init_root_server (space_t * space, word_t ip, word_t sp)
                                                                                ^
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707:0,
                 from /home/tyson/Orion/kernel/ibd/_1568332768_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: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: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:41: error: no ‘word_t tcb_t::get_br(word_t)’ member function declared in class ‘tcb_t’
 INLINE word_t tcb_t::get_br(word_t index)
                                         ^
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:53: error: no ‘void tcb_t::set_br(word_t, word_t)’ member function declared in class ‘tcb_t’
 INLINE void tcb_t::set_br(word_t index, word_t value)
                                                     ^
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:210:37: error: no ‘void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)’ member function declared in class ‘tcb_t’
       addr_t * saddr, addr_t * daddr)
                                     ^
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:43: error: no ‘void tcb_t::release_copy_area()’ member function declared in class ‘tcb_t’
 INLINE void tcb_t::release_copy_area (void)
                                           ^
In file included from /home/tyson/Orion/kernel/ibd/_1568332768_123.c:2:0:
/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:29: error: ‘get_current_cpu’ was not declared in this scope
     return (get_current_cpu() == get_cpu());
                             ^
/home/tyson/Orion/kernel/ibd/_1568332768_123.c: In function ‘void make_offsets()’:
/home/tyson/Orion/kernel/ibd/_1568332768_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/_1568332768_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/_1568332768_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/_1568332768_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/_1568332768_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/_1568332768_123.c:54:18: note: in expansion of macro ‘offsetof’
    O(OFS_UTCB_BR,offsetof(utcb_t,br));
                  ^~~~~~~~
/home/tyson/Orion/kernel/ibd/_1568332768_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/_1568332768_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/_1568332768_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/_1568332768_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/_1568332768_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/_1568332768_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-6 -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/6/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:0:
/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 to ‘word_t {aka unsigned int}’ from ‘u64_t {aka long long unsigned int}’ may alter its 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 to ‘word_t {aka unsigned int}’ from ‘u64_t {aka long long unsigned int}’ may alter its value [-Wconversion]
     word_t efer = x86_rdmsr(X86_MSR_EFER);
                   ~~~~~~~~~^~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/arch/x86/segdesc.h:20:0,
                 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 to ‘unsigned char:4’ from ‘u64_t {aka long long unsigned int}’ may alter its value [-Wconversion]
      x.d.type = type;
                 ^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:81:17: warning: conversion to ‘unsigned char:1’ from ‘u64_t {aka long long unsigned int}’ may alter its value [-Wconversion]
      x.d.l    = mode;
                 ^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:82:17: warning: conversion to ‘unsigned char:2’ from ‘u64_t {aka long long unsigned int}’ may alter its 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 to ‘unsigned char’ from ‘u64_t {aka long long unsigned int}’ may alter its value [-Wconversion]
      x.d.base_high  = (base >> 24) & 0xFF;
                       ~~~~~~~~~~~~~^~~~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:101:17: warning: conversion to ‘unsigned char:4’ from ‘u64_t {aka long long unsigned int}’ may alter its value [-Wconversion]
      x.d.type = type;
                 ^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:102:17: warning: conversion to ‘unsigned char:1’ from ‘u64_t {aka long long unsigned int}’ may alter its value [-Wconversion]
      x.d.l    = mode;
                 ^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:103:16: warning: conversion to ‘unsigned char:2’ from ‘u64_t {aka long long unsigned int}’ may alter its 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-6 -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/6/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 to ‘u8_t {aka unsigned char}’ from ‘u32_t {aka unsigned int}’ may alter its value [-Wconversion]
  apic_id = ((ebx >> 24) & 0xFF);
            ~~~~~~~~~~~~~^~~~~~~
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
vmlemon commented 5 years ago

For x86, a lot has changed, between the IA32 (NICTA), and x86-32 (L4Ka) versions of utcb.h:

tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/src/glue$ diff -u v4-x86/utcb.h v4-ia32/utcb.h 
--- v4-x86/utcb.h   2019-09-08 02:57:25.824186915 +0100
+++ v4-ia32/utcb.h  2019-09-22 23:39:31.868721591 +0100
@@ -1,8 +1,8 @@
 /*********************************************************************
  *                
- * Copyright (C) 2002-2003, 2006-2007,  Karlsruhe University
+ * Copyright (C) 2002-2003,  Karlsruhe University
  *                
- * File path:     glue/v4-x86/utcb.h
+ * File path:     glue/v4-ia32/utcb.h
  * Description:   UTCB for IA32
  *                
  * Redistribution and use in source and binary forms, with or without
@@ -26,72 +26,39 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *                
- * $Id: utcb.h,v 1.15 2006/10/20 16:30:13 reichelt Exp $
+ * $Id: utcb.h,v 1.13 2003/09/24 19:04:36 skoglund Exp $
  *                
  ********************************************************************/
-#ifndef __GLUE__V4_X86__UTCB_H__
-#define __GLUE__V4_X86__UTCB_H__
-
-#include INC_API(types.h)
-#include INC_API(thread.h)
-
-#if defined(CONFIG_X86_COMPATIBILITY_MODE)
-namespace x64 {
-#endif
+#ifndef __GLUE__V4_IA32__UTCB_H__
+#define __GLUE__V4_IA32__UTCB_H__

 class utcb_t
 {
 public:
     /* do not delete this TCB_START_MARKER */

-    word_t              compatibility_mode;     /* -256         */
-    word_t     padding0[15];       /* -254 .. -200 */
-    word_t     br[IPC_NUM_BR];     /* -196 .. -64  */
-    threadid_t     my_global_id;       /* -60      */
-    word_t     processor_no;       /* -56      */
-    word_t     user_defined_handle;    /* -52      */
-    threadid_t     pager;          /* -48      */
-    threadid_t     exception_handler;  /* -44      */
-    u8_t       preempt_flags;      /* -40      */
+    word_t     padding0[16];       /* -256 .. -196 */
+    word_t     padding1[32];       /* -192 .. -68  */
+    threadid_t     my_global_id;       /* -64      */
+    word_t     notify_mask;        /* -60      */
+    word_t     notify_bits;        /* -56      */
+    acceptor_t     acceptor;       /* -52      */
+    word_t     processor_no;       /* -48      */
+    word_t     user_defined_handle;    /* -44      */
+    threadid_t     pager;          /* -40      */
+    threadid_t     exception_handler;  /* -36      */
+    u8_t       preempt_flags;      /* -32      */
     u8_t       cop_flags;
-    u16_t      reserved0[sizeof(word_t)/2-1];
-    word_t     error_code;     /* -36      */
-    timeout_t      xfer_timeout;       /* -32      */
-    threadid_t     intended_receiver;  /* -28      */
-    threadid_t     virtual_sender;     /* -24      */
-    word_t     reserved1[4];       /* -20 .. -4    */
-    word_t              word_size_mask;         /* - 4 ..  0 */
+    u16_t      reserved0;
+    word_t     error_code;     /* -28      */
+    threadid_t     intended_receiver;  /* -24      */
+    threadid_t     virtual_sender;     /* -20      */
+    word_t     preempt_callback_ip;    /* -16      */
+    word_t     preempted_ip;       /* -12      */
+    word_t     reserved1[2];       /* -8 .. -4 */
     word_t     mr[IPC_NUM_MR];     /* 0 .. 252 */

-    
     /* do not delete this TCB_END_MARKER */
+};

-public:
-    void set_my_global_id(threadid_t tid);
-    word_t get_user_defined_handle();
-    void set_user_defined_handle(word_t handle);
-    threadid_t get_pager();
-    void set_pager(threadid_t tid);
-    threadid_t get_exception_handler();
-    void set_exception_handler(threadid_t tid);
-    u8_t get_preempt_flags();
-    void set_preempt_flags(u8_t flags);
-    u8_t get_cop_flags();
-    word_t get_error_code();
-    void set_error_code(word_t err);
-    timeout_t get_xfer_timeout();
-    threadid_t get_intended_receiver();
-    threadid_t get_virtual_sender();
-    void set_virtual_sender(threadid_t tid);
-
-} __attribute__((packed));
-
-#include INC_API(generic-utcb.h)
-
-#if defined(CONFIG_X86_COMPATIBILITY_MODE)
-}
-#include INC_GLUE_SA(x32comp/utcb.h)
-#endif
-
-
-#endif /* !__GLUE__V4_X86__UTCB_H__ */
+#endif /* !__GLUE__V4_IA32__UTCB_H__ */
vmlemon commented 5 years ago

To bring things into focus, it seems that the L4KA version is actually newer, but some functions were added/moved, and a lot of definitions changed, compared to the NICTA version:

tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/src/glue$ diff -u v4-ia32/utcb.h v4-x86/utcb.h 
--- v4-ia32/utcb.h  2019-09-22 23:39:31.868721591 +0100
+++ v4-x86/utcb.h   2019-09-08 02:57:25.824186915 +0100
@@ -1,8 +1,8 @@
 /*********************************************************************
  *                
- * Copyright (C) 2002-2003,  Karlsruhe University
+ * Copyright (C) 2002-2003, 2006-2007,  Karlsruhe University
  *                
- * File path:     glue/v4-ia32/utcb.h
+ * File path:     glue/v4-x86/utcb.h
  * Description:   UTCB for IA32
  *                
  * Redistribution and use in source and binary forms, with or without
@@ -26,39 +26,72 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *                
- * $Id: utcb.h,v 1.13 2003/09/24 19:04:36 skoglund Exp $
+ * $Id: utcb.h,v 1.15 2006/10/20 16:30:13 reichelt Exp $
  *                
  ********************************************************************/
-#ifndef __GLUE__V4_IA32__UTCB_H__
-#define __GLUE__V4_IA32__UTCB_H__
+#ifndef __GLUE__V4_X86__UTCB_H__
+#define __GLUE__V4_X86__UTCB_H__
+
+#include INC_API(types.h)
+#include INC_API(thread.h)
+
+#if defined(CONFIG_X86_COMPATIBILITY_MODE)
+namespace x64 {
+#endif

 class utcb_t
 {
 public:
     /* do not delete this TCB_START_MARKER */

-    word_t     padding0[16];       /* -256 .. -196 */
-    word_t     padding1[32];       /* -192 .. -68  */
-    threadid_t     my_global_id;       /* -64      */
-    word_t     notify_mask;        /* -60      */
-    word_t     notify_bits;        /* -56      */
-    acceptor_t     acceptor;       /* -52      */
-    word_t     processor_no;       /* -48      */
-    word_t     user_defined_handle;    /* -44      */
-    threadid_t     pager;          /* -40      */
-    threadid_t     exception_handler;  /* -36      */
-    u8_t       preempt_flags;      /* -32      */
+    word_t              compatibility_mode;     /* -256         */
+    word_t     padding0[15];       /* -254 .. -200 */
+    word_t     br[IPC_NUM_BR];     /* -196 .. -64  */
+    threadid_t     my_global_id;       /* -60      */
+    word_t     processor_no;       /* -56      */
+    word_t     user_defined_handle;    /* -52      */
+    threadid_t     pager;          /* -48      */
+    threadid_t     exception_handler;  /* -44      */
+    u8_t       preempt_flags;      /* -40      */
     u8_t       cop_flags;
-    u16_t      reserved0;
-    word_t     error_code;     /* -28      */
-    threadid_t     intended_receiver;  /* -24      */
-    threadid_t     virtual_sender;     /* -20      */
-    word_t     preempt_callback_ip;    /* -16      */
-    word_t     preempted_ip;       /* -12      */
-    word_t     reserved1[2];       /* -8 .. -4 */
+    u16_t      reserved0[sizeof(word_t)/2-1];
+    word_t     error_code;     /* -36      */
+    timeout_t      xfer_timeout;       /* -32      */
+    threadid_t     intended_receiver;  /* -28      */
+    threadid_t     virtual_sender;     /* -24      */
+    word_t     reserved1[4];       /* -20 .. -4    */
+    word_t              word_size_mask;         /* - 4 ..  0 */
     word_t     mr[IPC_NUM_MR];     /* 0 .. 252 */

+    
     /* do not delete this TCB_END_MARKER */
-};

-#endif /* !__GLUE__V4_IA32__UTCB_H__ */
+public:
+    void set_my_global_id(threadid_t tid);
+    word_t get_user_defined_handle();
+    void set_user_defined_handle(word_t handle);
+    threadid_t get_pager();
+    void set_pager(threadid_t tid);
+    threadid_t get_exception_handler();
+    void set_exception_handler(threadid_t tid);
+    u8_t get_preempt_flags();
+    void set_preempt_flags(u8_t flags);
+    u8_t get_cop_flags();
+    word_t get_error_code();
+    void set_error_code(word_t err);
+    timeout_t get_xfer_timeout();
+    threadid_t get_intended_receiver();
+    threadid_t get_virtual_sender();
+    void set_virtual_sender(threadid_t tid);
+
+} __attribute__((packed));
+
+#include INC_API(generic-utcb.h)
+
+#if defined(CONFIG_X86_COMPATIBILITY_MODE)
+}
+#include INC_GLUE_SA(x32comp/utcb.h)
+#endif
+
+
+#endif /* !__GLUE__V4_X86__UTCB_H__ */
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/src/glue$ 
vmlemon commented 5 years ago

With the Enryo kernel, everything builds, but there's now some regressions, with the converged Orion one...

vmlemon commented 5 years ago

After some weird regressions, and files disappearing, randomly, I've found some workarounds for the syscalls.h issues, which gets things as far as:

tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/xtest$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/xtest'
===> src/generic/tracebuffer.cc
cd src/generic/ &&  gcc  -nostdinc -I/home/tyson/Orion/kernel/xtest/include -I/home/tyson/Orion/kernel/src -I/home/tyson/Orion/kernel/src/generic -I/usr/lib/gcc/x86_64-linux-gnu/8/include/ -Uamd64 -Uopteron -Uefi -Uv4 -Urr -D__ARCH__=amd64 -D__CPU__=opteron -D__PLATFORM__=efi -D__API__=v4 -D__SCHED__=rr -imacros /home/tyson/Orion/kernel/xtest/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/generic/tracebuffer.cc
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/src/api/v4/schedule.h:37,
                 from /home/tyson/Orion/kernel/src/generic/tracebuffer.cc:87:
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h:221: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:209: src/generic/tracebuffer.o] Error 1
make[1]: Leaving directory '/home/tyson/Orion/kernel/xtest'
make: *** [Makefile:7: all] Error 2
vmlemon commented 5 years ago

I feel a sense of deja-vu, with this:

tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/xtest$ make tcb_layout.h 
make[1]: Entering directory '/home/tyson/Orion/kernel/xtest'
===> Generating include/tcb_layout.h
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:40,
                 from /home/tyson/Orion/kernel/xtest/_1571879626_123.c:4:
/home/tyson/Orion/kernel/src/api/v4/queueing.h:82:26: error: redefinition of ‘class ringlist_t<T>’
 template <class T> class ringlist_t
                          ^~~~~~~~~~
In file included from <command-line>:
/home/tyson/Orion/kernel/src/generic/types.h:148:26: note: previous definition of ‘class ringlist_t<T>’
 template <class T> class ringlist_t
                          ^~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
                 from /home/tyson/Orion/kernel/xtest/_1571879626_123.c:4:
/home/tyson/Orion/kernel/src/glue/v4-amd64/utcb.h:39:28: error: ‘IPC_NUM_BR’ was not declared in this scope
     word_t              br[IPC_NUM_BR];         /* -384 .. -121  */
                            ^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-amd64/utcb.h:39:28: note: suggested alternative: ‘IPC_NUM_MR’
     word_t              br[IPC_NUM_BR];         /* -384 .. -121  */
                            ^~~~~~~~~~
                            IPC_NUM_MR
/home/tyson/Orion/kernel/src/glue/v4-amd64/utcb.h:49:5: error: ‘timeout_t’ does not name a type
     timeout_t           xfer_timeout;           /* - 64           */
     ^~~~~~~~~
In file included from /home/tyson/Orion/kernel/xtest/_1571879626_123.c:4:
/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’
     return get_utcb()->notify_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’
     get_utcb()->notify_mask = mask;
                 ^~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/syscalls.h:42,
                 from /home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h:40,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/xtest/_1571879626_123.c:4:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:50: error: ‘timeout_t’ has not been declared
 SYS_IPC (threadid_t to_tid, threadid_t from_tid, timeout_t timeout);
                                                  ^~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-amd64/syscalls.h:51:25: note: in definition of macro ‘SYS_IPC’
       word_t amd64_rcx, timeout)
                         ^~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-amd64/syscalls.h:66:82: error: expected identifier before ‘)’ token
    amd64_sysret_t sys_thread_control (dest, space, scheduler, pager, utcb_address)
                                                                                  ^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:80:1: note: in expansion of macro ‘SYS_THREAD_CONTROL’
 SYS_THREAD_CONTROL (threadid_t dest_tid, threadid_t space_tid,
 ^~~~~~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/xtest/_1571879626_123.c:4:
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h: In member function ‘void tcb_t::set_cpu(cpuid_t)’:
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h:63:11: error: ‘class tcb_t’ has no member named ‘cpu’
     this->cpu = cpu;
           ^~~
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h:121: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-amd64/tcb.h:121:15: note: no functions named ‘word_t tcb_t::get_br(word_t)’
In file included from /home/tyson/Orion/kernel/xtest/_1571879626_123.c:4:
/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/xtest/_1571879626_123.c:4:
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h:132: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-amd64/tcb.h:132:13: note: no functions named ‘void tcb_t::set_br(word_t, word_t)’
In file included from /home/tyson/Orion/kernel/xtest/_1571879626_123.c:4:
/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/xtest/_1571879626_123.c:4:
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h:142:13: error: no declaration matches ‘void tcb_t::allocate()’
 INLINE void tcb_t::allocate()
             ^~~~~
In file included from /home/tyson/Orion/kernel/xtest/_1571879626_123.c:4:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:216:10: note: candidate is: ‘bool tcb_t::allocate()’
     bool allocate();
          ^~~~~~~~
/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/xtest/_1571879626_123.c:4:
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h: In member function ‘void tcb_t::return_from_ipc()’:
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h:185:39: error: ‘get_local_id’ was not declared in this scope
     register word_t utcb asm("r12") = get_local_id ().get_raw ();
                                       ^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h:185:39: note: suggested alternative: ‘get_global_id’
     register word_t utcb asm("r12") = get_local_id ().get_raw ();
                                       ^~~~~~~~~~~~
                                       get_global_id
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h:495:33: error: ‘timeout_t’ has not been declared
                                 timeout_t timeout)
                                 ^~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-amd64/tcb.h:494:18: error: no declaration matches ‘msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t, int)’
 INLINE msg_tag_t tcb_t::do_ipc (threadid_t to_tid, threadid_t from_tid,
                  ^~~~~
In file included from /home/tyson/Orion/kernel/xtest/_1571879626_123.c:4:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:130:15: note: candidate is: ‘msg_tag_t tcb_t::do_ipc(threadid_t, threadid_t)’
     msg_tag_t do_ipc(threadid_t to_tid, threadid_t from_tid);
               ^~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: ‘class tcb_t’ defined here
 class tcb_t
       ^~~~~
/home/tyson/Orion/kernel/xtest/_1571879626_123.c: In function ‘void make_offsets()’:
/home/tyson/Orion/kernel/xtest/_1571879626_123.c:54:11: error: ‘class utcb_t’ has no member named ‘br’; did you mean ‘mr’?
    O(utcb,br),
           ^~
/home/tyson/Orion/kernel/xtest/_1571879626_123.c:14:35: note: in definition of macro ‘O’
 #define O(w,x) (u32_t)((char*) &w.x - (char*)(&w))
                                   ^
/home/tyson/Orion/kernel/xtest/_1571879626_123.c:64:11: error: ‘class utcb_t’ has no member named ‘xfer_timeout’
    O(utcb,xfer_timeout),
           ^~~~~~~~~~~~
/home/tyson/Orion/kernel/xtest/_1571879626_123.c:14:35: note: in definition of macro ‘O’
 #define O(w,x) (u32_t)((char*) &w.x - (char*)(&w))
                                   ^
make[1]: *** [/home/tyson/Orion/kernel/Mk/Makefile.voodoo:55: /home/tyson/Orion/kernel/xtest/include/tcb_layout.h] Error 255
make[1]: Leaving directory '/home/tyson/Orion/kernel/xtest'
make: *** [Makefile:7: tcb_layout.h] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/xtest$ 
vmlemon commented 5 years ago

Indeed, the IPC_NUM_BR issue is common to issue #3, #5, and #15, so I should really see how the Enryo version differs, since that actually builds, somehow.