Giter Club home page Giter Club logo

orion's Introduction

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

L4Ka::Pistachio is the latest L4 microkernel developed by the System
Architecture Group at the University of Karlsruhe in collaboration
with the DiSy group at the University of New South Wales,
Australia. It is the first available kernel implementation of the L4
Version 4 kernel API (currently code-named Version X.2), which is
fully 32 and 64 bit clean, provides multiprocessor support, and
super-fast local IPC.

orion's People

Contributors

jkehne avatar jstoess avatar ksandstr avatar nullpo-head avatar ssumpf avatar vmlemon avatar voidus avatar vvlevchenko avatar xyzwvut avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

orion's Issues

Porting ALAC/ValidateMP4

To help firm up the compatibility of JUEL, for multimedia applications, it may be interesting to port Apple's ALAC, and ValidateMP4 projects to Orion.

This enhancement is just to track the expansion of our UNIX/POSIX API surface, and doesn't necessarily block the progress of #7.

So far, these projects don't fully-build, since we still lack some functionality in liblinux, but we now have atoi(), and some new headers (e.g. cstring, and xlocale/*), which should improve compatibility, in other areas:

===> Linking ./syslaunch
ld -e_start -N -L../../lib -L/usr/lib/gcc/x86_64-linux-gnu/8 -nostdlib  -melf_x86_64  -Ttext=01000000 crt0-amd64.o syslaunch.o ValidateMP4/src/ValidateAtomList.o ValidateMP4/src/ValidateMP4.o ValidateMP4/src/ValidateHints.o ValidateMP4/src/ValidateBits.o ValidateMP4/src/ValidateAtoms.o ValidateMP4/src/ValidateFileIO.o ValidateMP4/src/ValidateBitStreams.o    -ll4 -lio  -llinux  -lgcc -o syslaunch
ld: ValidateMP4/src/ValidateMP4.o: in function `main':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:93: multiple definition of `main'; syslaunch.o:/home/tyson/Orion/user/apps/system/syslaunch.cc:95: first defined here
ld: ValidateMP4/src/ValidateHints.o: in function `Chars_To_Num':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1997: undefined reference to `sscanf'
ld: ValidateMP4/src/ValidateHints.o: in function `compare_nocase':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2107: undefined reference to `tolower'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2107: undefined reference to `tolower'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_Hint_Track':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:306: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:389: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:368: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateHints.o: in function `get_track_sample':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2236: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_Data_Entry':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:717: undefined reference to `free'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_Hint_Track':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:380: undefined reference to `free'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_Data_Entry':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:717: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:717: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:717: undefined reference to `free'
ld: ValidateMP4/src/ValidateHints.o:/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:717: more undefined references to `free' follow
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_SDP_Attribute_Line':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1365: undefined reference to `strchr'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_rtpmap_attribute':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1656: undefined reference to `strchr'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1674: undefined reference to `strchr'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_fmtp_attribute':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1409: undefined reference to `strchr'
ld: ValidateMP4/src/ValidateHints.o: in function `get_next_fmtp_param':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2144: undefined reference to `strchr'
ld: ValidateMP4/src/ValidateHints.o:/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2149: more undefined references to `strchr' follow
ld: ValidateMP4/src/ValidateHints.o: in function `get_next_fmtp_param':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2158: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2164: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_fmtp_attribute':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1539: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1543: undefined reference to `free'
ld: ValidateMP4/src/ValidateHints.o: in function `get_next_fmtp_param':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2158: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_isma_attribute':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1754: undefined reference to `sscanf'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_fmtp_attribute':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1452: undefined reference to `strcpy'
ld: ValidateMP4/src/ValidateHints.o: in function `get_next_fmtp_param':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2177: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2151: undefined reference to `strlen'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2146: undefined reference to `strlen'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2168: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_iod_attribute':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1712: undefined reference to `strlen'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1734: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_rtpmap_attribute':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1676: undefined reference to `strlen'
ld: ValidateMP4/src/ValidateHints.o: in function `Chars_To_hexNum':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:2029: undefined reference to `sscanf'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_fmtp_attribute':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1500: undefined reference to `strlen'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1506: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1516: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1498: undefined reference to `strchr'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1631: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1635: undefined reference to `free'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_Track_SDP':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1227: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_SDP_Media_Line':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1294: undefined reference to `strchr'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1303: undefined reference to `strchr'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1323: undefined reference to `strchr'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1335: undefined reference to `strlen'
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_hnti_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1146: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1169: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1190: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1193: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1190: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1190: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1190: undefined reference to `free'
ld: ValidateMP4/src/ValidateHints.o:/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1190: more undefined references to `free' follow
ld: ValidateMP4/src/ValidateHints.o: in function `Validate_Movie_SDP':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateHints.c:1052: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateMP4.o: in function `keymatch':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:57: undefined reference to `isupper'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:58: undefined reference to `tolower'
ld: ValidateMP4/src/ValidateMP4.o: in function `atomprintnotab':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:387: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:387: undefined reference to `vfprintf'
ld: ValidateMP4/src/ValidateMP4.o: in function `atomprint':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:401: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:401: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:403: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:403: undefined reference to `vfprintf'
ld: ValidateMP4/src/ValidateMP4.o: in function `atomprintdetailed':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:445: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:445: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:447: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:447: undefined reference to `vfprintf'
ld: ValidateMP4/src/ValidateMP4.o: in function `sampleprint':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:461: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:461: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:463: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:463: undefined reference to `vfprintf'
ld: ValidateMP4/src/ValidateMP4.o: in function `sampleprintnotab':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:475: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:475: undefined reference to `vfprintf'
ld: ValidateMP4/src/ValidateMP4.o: in function `sampleprinthexandasciidata':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:528: undefined reference to `isprint'
ld: ValidateMP4/src/ValidateMP4.o: in function `warnprint':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:574: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:574: undefined reference to `vfprintf'
ld: ValidateMP4/src/ValidateMP4.o: in function `errprint':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:585: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:585: undefined reference to `fprintf'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:586: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:586: undefined reference to `vfprintf'
ld: ValidateMP4/src/ValidateMP4.o: in function `my_stricmp':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:593: undefined reference to `tolower'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:593: undefined reference to `tolower'
ld: ValidateMP4/src/ValidateMP4.o: in function `int64toxstr':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:635: undefined reference to `sprintf'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:637: undefined reference to `sprintf'
ld: ValidateMP4/src/ValidateMP4.o: in function `int64toxstr_r':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:649: undefined reference to `sprintf'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:651: undefined reference to `sprintf'
ld: ValidateMP4/src/ValidateMP4.o: in function `int64todstr':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:661: undefined reference to `sprintf'
ld: ValidateMP4/src/ValidateMP4.o:/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:668: more undefined references to `sprintf' follow
ld: ValidateMP4/src/ValidateMP4.o: in function `addEscapedChar':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:821: undefined reference to `strcat'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:821: undefined reference to `strcat'
ld: ValidateMP4/src/ValidateMP4.o: in function `addAtomToPath':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:826: undefined reference to `strcpy'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:833: undefined reference to `strlen'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:828: undefined reference to `strlen'
ld: ValidateMP4/src/ValidateMP4.o: in function `ValidateElementaryVideoStream':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:887: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:870: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:870: undefined reference to `fwrite'
ld: ValidateMP4/src/ValidateMP4.o: in function `addAtomToPath':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:834: undefined reference to `sprintf'
ld: ValidateMP4/src/ValidateMP4.o: in function `restoreAtomPath':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:839: undefined reference to `strcpy'
ld: ValidateMP4/src/ValidateMP4.o: in function `main':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:144: undefined reference to `strcpy'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:152: undefined reference to `strrchr'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:265: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:265: undefined reference to `fprintf'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:269: undefined reference to `fseek'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:271: undefined reference to `ftell'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:289: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:289: undefined reference to `fprintf'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:324: undefined reference to `fclose'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:170: undefined reference to `strcpy'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:172: undefined reference to `strcpy'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:176: undefined reference to `strcpy'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:254: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:254: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:297: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:297: undefined reference to `fprintf'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:299: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:299: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:300: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:300: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:301: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:301: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:302: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:302: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:303: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:303: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:304: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:304: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:305: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:305: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:306: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:306: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:307: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:307: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:308: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:308: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:309: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:309: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:310: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:310: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:311: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:311: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:312: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:312: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:313: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:313: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:314: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:314: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:315: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:315: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:317: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:317: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:174: undefined reference to `strcpy'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:140: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:140: undefined reference to `fprintf'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:178: undefined reference to `strcpy'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:220: undefined reference to `strcpy'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:221: undefined reference to `strtok'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:239: undefined reference to `strtok'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:209: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:209: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:199: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:199: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:170: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:170: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:170: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:170: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:172: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:172: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:172: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:172: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:174: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:174: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:174: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:174: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:178: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:178: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:236: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:236: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:176: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:176: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:176: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:176: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:183: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:183: undefined reference to `fprintf'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:178: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:178: undefined reference to `fwrite'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:261: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateMP4.c:261: undefined reference to `fprintf'
ld: ValidateMP4/src/ValidateAtomList.o: in function `Validate_rtp_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:1483: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:1496: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtomList.o: in function `FindAtomOffsets':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:54: undefined reference to `calloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:92: undefined reference to `realloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:100: undefined reference to `free'
ld: ValidateMP4/src/ValidateAtomList.o: in function `ValidateAtomOfType':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:881: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:881: undefined reference to `fprintf'
ld: ValidateMP4/src/ValidateAtomList.o: in function `Validate_trak_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:580: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:586: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:611: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:617: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:672: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:678: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:642: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:648: undefined reference to `free'
ld: ValidateMP4/src/ValidateAtomList.o: in function `Validate_moov_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:1033: undefined reference to `calloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:1190: undefined reference to `calloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:1179: undefined reference to `calloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:1190: undefined reference to `calloc'
ld: ValidateMP4/src/ValidateAtomList.o: in function `dispose_mir':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:1337: undefined reference to `free'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtomList.c:1337: undefined reference to `free'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_iods_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:92: undefined reference to `free'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_mdia_hdlr_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:499: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:499: undefined reference to `fprintf'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_hdlr_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:553: undefined reference to `__stdoutp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:553: undefined reference to `fprintf'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_stts_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:958: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_ctts_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1043: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_stsz_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1106: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_stz2_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1166: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_stsc_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1246: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtoms.o:/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1309: more undefined references to `malloc' follow
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_stco_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1344: undefined reference to `free'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_co64_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1371: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_stss_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1428: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_stsh_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1482: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_stdp_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1546: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_sdtp_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1619: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtoms.o:/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1677: more undefined references to `malloc' follow
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_ESDAtom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:2463: undefined reference to `free'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_avcC_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:2585: undefined reference to `calloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:2593: undefined reference to `free'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_m4ds_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:2669: undefined reference to `free'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_stsd_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1927: undefined reference to `calloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1928: undefined reference to `calloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:1965: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_cprt_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:2707: undefined reference to `calloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:2739: undefined reference to `calloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:2752: undefined reference to `free'
ld: ValidateMP4/src/ValidateAtoms.o: in function `Validate_loci_Atom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateAtoms.c:2804: undefined reference to `calloc'
ld: ValidateMP4/src/ValidateFileIO.o: in function `GetFileData':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:38: undefined reference to `fseek'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:41: undefined reference to `fread'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:33: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:33: undefined reference to `fwrite'
ld: ValidateMP4/src/ValidateFileIO.o: in function `GetFileCString':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:112: undefined reference to `malloc'
ld: ValidateMP4/src/ValidateFileIO.o: in function `GetFileBitStreamDataToEndOfAtom':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:187: undefined reference to `calloc'
ld: ValidateMP4/src/ValidateFileIO.o: in function `GetFileStartCode':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:315: undefined reference to `fseek'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:318: undefined reference to `fgetc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:320: undefined reference to `fgetc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:322: undefined reference to `fgetc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:324: undefined reference to `fgetc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:328: undefined reference to `fgetc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:310: undefined reference to `__stderrp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateFileIO.c:310: undefined reference to `fwrite'
ld: ValidateMP4/src/ValidateBitStreams.o: in function `CheckValuesInContext':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateBitStreams.c:2920: undefined reference to `sprintf'
ld: ValidateMP4/src/ValidateBitStreams.o: in function `Validate_ES_Descriptor':
/home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateBitStreams.c:496: undefined reference to `strncmp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateBitStreams.c:500: undefined reference to `strlen'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateBitStreams.c:504: undefined reference to `malloc'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateBitStreams.c:514: undefined reference to `strncmp'
ld: /home/tyson/Orion/user/apps/system/ValidateMP4/src/ValidateBitStreams.c:520: undefined reference to `free'
ld: ../../lib/liblinux.a(atoi.o): in function `atoi':
/home/tyson/Orion/user/lib/linux/atoi.c:49: undefined reference to `strtol'
ld: ../../lib/liblinux.a(atoi.o): in function `atoi_l':
/home/tyson/Orion/user/lib/linux/atoi.c:55: undefined reference to `strtol_l'
ld: ../../lib/liblinux.a(fopen.o): in function `fopen':
/home/tyson/Orion/user/lib/linux/fopen.c:62: undefined reference to `__sfp'
ld: /home/tyson/Orion/user/lib/linux/fopen.c:64: undefined reference to `_open'
ld: /home/tyson/Orion/user/lib/linux/fopen.c:77: undefined reference to `_close'
ld: /home/tyson/Orion/user/lib/linux/fopen.c:78: undefined reference to `__error'
ld: ../../lib/liblinux.a(flags.o): in function `__sflags':
/home/tyson/Orion/user/lib/linux/flags.c:113: undefined reference to `__error'
make: *** [../../Mk/l4.prog.mk:54: syslaunch] Error 1

NICTA Technology Integration

Several years ago, NICTA released a fork of L4Ka::Pistachio (see https://web.archive.org/web/20130521002051/http://www.ertos.nicta.com.au/software/unsupported/), that added support for several architectures (Alpha, ARM, Itanium, MIPS64, and SPARC64), as well as a suite of components (Iguana, Wombat, Kenge, and Darbat, amongst other things), that could be interesting to stripmine for code, and ideas.

Since they originated the PowerPC 64-bit port, it could help us track down some of the missing code, that's plaguing current attempts at complation...

Sadly, ERTOS (the department of NICTA responsible for L4 R&D) appears to have disbanded, and suddenly replaced by "Data61" (apparently, a division of Australia's CSIRO), and all of their excellent work has mostly vanished from the Web, although Archive.org have bits of it. :(

Presently, the code on GitHub, at https://github.com/l4ka/pistachio was last touched in 2014, before the developers seemingly abandoned it, whilst the NICTA code seems to date from around 2005-2007, and completely replaces much of the build system, so we can't just drop it in, as a direct "engine swap".

So that it doesn't disappear again, I'm attaching it to this bug report, and I'll probably unpack it into a branch, later on...

pistachio--devel--1.1--version-0.tar.gz

I also have the 55.1MB iguana-project--devel--1.1--version-0.tar.gz archive, which is too large to attach to this report.

We also used parts of it in i9, and Enryo, although I believe that there were some bugs, and shortcomings, due to it being designed for use in embedded systems, and parts of it being cribbed from BSD code, in an idiosyncratic fashion.

ELF Loader Implementation

In order to implement #7, and the JUEL vision, we need to have a robust implementation of ELF, as well as support for things like execv(), and fork(), in either Sigma0, a userland library, KickStart, or the root task, where everything can easily access it.

It would also be useful to support dynamic linking, ABI branding, switchable syscall tables, and advanced functionality exposed by the ELF specification, and executables.

Conveniently, inside /user/contrib/elf-loader, we have some kind of ELF implementation, which when I tried to compile under PPC64, resulted in:

common  include  Makefile  Makefile.in  platform
[root@fedora28 elf-loader]# make
===> Rebuilding ./Makefile
config.status: creating ./Makefile
config.status: creating config.h
config.status: config.h is unchanged
/bin/bash: clangobjdump: command not found
===> Making dependencies in .
clang-6.0: warning: -lssp: 'linker' input unused [-Wunused-command-line-argument]
clang-6.0: warning: argument unused during compilation: '-mno-red-zone' [-Wunused-command-line-argument]
make[1]: Entering directory '/root/Orion/user/serv/sigma0'
===> Rebuilding ./Makefile
config.status: creating ./Makefile
config.status: creating config.h
config.status: config.h is unchanged
===> Making dependencies in .
clang-6.0: warning: -lssp: 'linker' input unused [-Wunused-command-line-argument]
clang-6.0: warning: argument unused during compilation: '-mno-red-zone' [-Wunused-command-line-argument]
===> Rebuilding ./Makefile
config.status: creating ./Makefile
config.status: creating config.h
config.status: config.h is unchanged
make[2]: Entering directory '/root/Orion/user/lib/l4'
===> Rebuilding ./Makefile
config.status: creating ./Makefile
config.status: creating config.h
config.status: config.h is unchanged
===> debug.cc
clang -x c++ -I../../include -I../.. -I/usr/bin/../lib/gcc/x86_64-linux-gnu/8/include   -fno-stack-protector -nostdinc -g -O2 -m64 -mno-red-zone   -fno-stack-protector -lssp -O2 -g -Wall -Wshadow   -fno-stack-protector  -Wno-conversion -fno-exceptions -c debug.cc -o debug.o
clang-6.0: warning: -lssp: 'linker' input unused [-Wunused-command-line-argument]
clang-6.0: warning: argument unused during compilation: '-mno-red-zone' [-Wunused-command-line-argument]
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:35:
../../include/l4/types.h:379:27: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw + r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:384:27: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw + r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:389:27: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw + r.raw };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:394:27: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw - r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:399:27: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw - r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:404:27: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw - r.raw };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:410:27: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : c.raw + r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:415:27: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : c.raw - r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:521:13: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
            return L4_Never;
                   ^
../../include/l4/types.h:493:33: note: expanded from macro 'L4_Never'
#define L4_Never        ((L4_Time_t) { raw : 0UL })
                                       ^
../../include/l4/types.h:532:13: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
            return L4_Never;
                   ^
../../include/l4/types.h:493:33: note: expanded from macro 'L4_Never'
#define L4_Never        ((L4_Time_t) { raw : 0UL })
                                       ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
In file included from ../../include/l4/message.h:37:
../../include/l4/powerpc64/vregs.h:41:12: warning: variable 'utcb' is
      uninitialized when used here [-Wuninitialized]
    return utcb;
           ^~~~
../../include/l4/powerpc64/vregs.h:39:29: note: initialize the variable 'utcb'
      to silence this warning
    register L4_Word_t *utcb asm("r13");
                            ^
                             = nullptr
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:727:15: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
    for (reg+=__L4_Lsb(mask); mask!=0; mask>>=__L4_Lsb(mask)+1,reg+=__L4...
              ^~~~~~~~
              __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:727:47: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
    for (reg+=__L4_Lsb(mask); mask!=0; mask>>=__L4_Lsb(mask)+1,reg+=__L4...
                                              ^~~~~~~~
                                              __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:727:69: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
    for (reg+=__L4_Lsb(mask); mask!=0; mask>>=__L4_Lsb(mask)+1,reg+=__L4_Lsb(mas...
                                                                    ^~~~~~~~
                                                                    __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:746:20: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
    for (fault_id+=__L4_Lsb(fault_id_mask_low); fault_id_mask_low != 0;  
                   ^~~~~~~~
                   __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:747:23: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
         fault_id_mask_low>>=__L4_Lsb(fault_id_mask_low)+1,fault_id+=__L...
                             ^~~~~~~~
                             __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:747:63: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
  ...fault_id_mask_low>>=__L4_Lsb(fault_id_mask_low)+1,fault_id+=__L4_Lsb(fau...
                                                                 ^~~~~~~~
                                                                 __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:755:20: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
    for (fault_id+=__L4_Lsb(fault_id_mask_high); fault_id_mask_high != 0;  
                   ^~~~~~~~
                   __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:756:24: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
         fault_id_mask_high>>=__L4_Lsb(fault_id_mask_high)+1,fault_id+=_...
                              ^~~~~~~~
                              __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:756:65: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
  ...fault_id_mask_high>>=__L4_Lsb(fault_id_mask_high)+1,fault_id+=__L4_Lsb(f...
                                                                   ^~~~~~~~
                                                                   __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:808:15: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
    for (reg+=__L4_Lsb(mask); mask!=0; mask>>=__L4_Lsb(mask)+1,reg+=__L4...
              ^~~~~~~~
              __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:808:47: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
    for (reg+=__L4_Lsb(mask); mask!=0; mask>>=__L4_Lsb(mask)+1,reg+=__L4...
                                              ^~~~~~~~
                                              __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:808:69: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
    for (reg+=__L4_Lsb(mask); mask!=0; mask>>=__L4_Lsb(mask)+1,reg+=__L4_Lsb(mas...
                                                                    ^~~~~~~~
                                                                    __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:862:15: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
    for (reg+=__L4_Lsb(mask); mask!=0; mask>>=__L4_Lsb(mask)+1,reg+=__L4...
              ^~~~~~~~
              __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:862:47: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
    for (reg+=__L4_Lsb(mask); mask!=0; mask>>=__L4_Lsb(mask)+1,reg+=__L4...
                                              ^~~~~~~~
                                              __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/powerpc64/syscalls.h:36:
../../include/l4/message.h:862:69: error: use of undeclared identifier
      '__L4_Lsb'; did you mean '__L4_Msb'?
    for (reg+=__L4_Lsb(mask); mask!=0; mask>>=__L4_Lsb(mask)+1,reg+=__L4_Lsb(mas...
                                                                    ^~~~~~~~
                                                                    __L4_Msb
../../include/l4/powerpc64/specials.h:37:15: note: '__L4_Msb' declared here
L4_INLINE int __L4_Msb( L4_Word_t w )
              ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
../../include/l4/powerpc64/syscalls.h:125:29: warning: use of GNU old-style
      field designator extension [-Wgnu-designator]
    return (L4_ThreadId_t) {raw: r3};
                            ^~~~
                            .raw = 
../../include/l4/powerpc64/syscalls.h:320:27: warning: use of GNU old-style
      field designator extension [-Wgnu-designator]
    return (L4_MsgTag_t){ raw: mr0 };   /* mr0 */
                          ^~~~
                          .raw = 
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:260:49: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
        return L4_ExchangeRegisters (t, 0, 0, 0, 0, 0, L4_nilthread,
                                                       ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:285:49: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
        return L4_ExchangeRegisters (t, 0, 0, 0, 0, 0, L4_nilthread,
                                                       ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:304:59: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    (void) L4_ExchangeRegisters (t, (1 << 9), 0, 0, 0, 0, L4_nilthread,
                                                          ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:316:64: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    (void) L4_ExchangeRegisters (t, (1 << 6), 0, 0, 0, handle, L4_nilthread,
                                                               ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:338:59: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    (void) L4_ExchangeRegisters (t, (1 << 9), 0, 0, 0, 0, L4_nilthread,
                                                          ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:372:63: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
    (void) L4_ExchangeRegisters (t, (1 << 8) + 6, 0, 0, 0, 0, L4_nilthread,
                                                              ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:383:6: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                                 L4_nilthread,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:396:6: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                                 L4_nilthread,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:422:6: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, &dummy, &dummy,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:438:6: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, sp, ip, flags,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:459:6: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, &dummy, &dummy,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:476:6: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, sp, ip, flags,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:499:6: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, &dummy, &dummy,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:517:6: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, sp, ip, flags,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:540:6: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, &dummy, &dummy,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:556:6: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, sp, ip, flags,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:582:9: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                             L4_nilthread, HandlerThread, (void *) -1);
                             ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:588:9: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
                             L4_nilthread, InterruptThread, (void *) -1);
                             ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:595:76: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
  ...(dest, L4_EXREGS_CTRLXFER_CONF_FLAG, 0, 0 , 0, 0, L4_nilthread,
                                                       ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:604:76: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
  ...(dest, L4_EXREGS_CTRLXFER_READ_FLAG, 0, 0 , 0, 0, L4_nilthread,
                                                       ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:613:77: warning: use of GNU old-style field designator
      extension [-Wgnu-designator]
  ...(dest, L4_EXREGS_CTRLXFER_WRITE_FLAG, 0, 0 , 0, 0, L4_nilthread,
                                                        ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
34 warnings and 15 errors generated.
make[2]: *** [../../Mk/l4.build.mk:58: debug.o] Error 1
make[2]: Leaving directory '/root/Orion/user/lib/l4'
make[1]: *** [../../Mk/l4.prog.mk:57: ../../lib/l4/libl4.a] Error 2
make[1]: Leaving directory '/root/Orion/user/serv/sigma0'
make: *** [../../Mk/l4.prog.mk:57: ../../serv/sigma0/sigma0] Error 2
[root@fedora28 elf-loader]# 

I'd need to see what functionality it provides, the APIs exposed, and if it can be extended, without breaking it for the pre-boot environment, before we can try to exploit it.

Problems with R3 access, in userland, on POWER8

Not sure if it's a regression, but trying to build libl4 on POWER8 bails out, with the following, after playing with how we consume/serve R3, in L4_SystemClock():

[root@fedora28 user]# make
make[1]: Entering directory '/root/Orion/user/lib'
make[2]: Entering directory '/root/Orion/user/lib/l4'
===> debug.cc
gcc -x c++ -I../../include -I../.. -I/usr/lib/gcc/ppc64-redhat-linux/8/include   -nostdinc -g -O2 -msoft-float -mminimal-toc   -fno-stack-protector -lssp -O2 -g -Wall -Wshadow   -fno-stack-protector  -Wconversion -fno-exceptions -c debug.cc -o debug.o
In file included from ../../include/l4/kip.h:36,
                 from debug.cc:31:
../../include/l4/powerpc64/syscalls.h: In function โ€˜L4_Clock_t L4_SystemClock()โ€™:
../../include/l4/powerpc64/syscalls.h:165:39: error: โ€˜destโ€™ was not declared in this scope
     register L4_Word_t r3 asm("r3") = dest.raw;
                                       ^~~~
../../include/l4/powerpc64/syscalls.h:172:12: error: request for member โ€˜rawโ€™ in โ€˜r3โ€™, which is of non-class type โ€˜L4_Word_tโ€™ {aka โ€˜long unsigned intโ€™}
   "=r" (r3.raw)
            ^~~
../../include/l4/powerpc64/syscalls.h:182:13: error: address of explicit register variable โ€˜r3โ€™ requested
     return  r3 ;
             ^~
../../include/l4/powerpc64/syscalls.h:182:13: error: could not convert โ€˜r3โ€™ from โ€˜L4_Word_tโ€™ {aka โ€˜long unsigned intโ€™} to โ€˜L4_Clock_tโ€™
make[2]: *** [../../Mk/l4.build.mk:58: debug.o] Error 1
make[2]: Leaving directory '/root/Orion/user/lib/l4'
make[1]: *** [../Mk/l4.subdir.mk:41: subdirs-all] Error 2
make[1]: Leaving directory '/root/Orion/user/lib'
make: *** [Mk/l4.subdir.mk:41: subdirs-all] Error 2
[root@fedora28 user]# git pull --all
Fetching origin
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 7 (delta 6), reused 7 (delta 6), pack-reused 0
Unpacking objects: 100% (7/7), done.
From https://github.com/vmlemon/Orion
   cb0da7e..e3b6d6a  master     -> origin/master
Updating cb0da7e..e3b6d6a
Fast-forward
 user/include/l4/powerpc64/syscalls.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
[root@fedora28 user]# make
make[1]: Entering directory '/root/Orion/user/lib'
make[2]: Entering directory '/root/Orion/user/lib/l4'
===> debug.cc
gcc -x c++ -I../../include -I../.. -I/usr/lib/gcc/ppc64-redhat-linux/8/include   -nostdinc -g -O2 -msoft-float -mminimal-toc   -fno-stack-protector -lssp -O2 -g -Wall -Wshadow   -fno-stack-protector  -Wconversion -fno-exceptions -c debug.cc -o debug.o
In file included from ../../include/l4/kip.h:36,
                 from debug.cc:31:
../../include/l4/powerpc64/syscalls.h: In function โ€˜L4_Clock_t L4_SystemClock()โ€™:
../../include/l4/powerpc64/syscalls.h:172:12: error: request for member โ€˜rawโ€™ in โ€˜r3โ€™, which is of non-class type โ€˜L4_Word_tโ€™ {aka โ€˜long unsigned intโ€™}
   "=r" (r3.raw)
            ^~~
../../include/l4/powerpc64/syscalls.h:182:13: error: address of explicit register variable โ€˜r3โ€™ requested
     return  r3 ;
             ^~
../../include/l4/powerpc64/syscalls.h:182:13: error: could not convert โ€˜r3โ€™ from โ€˜L4_Word_tโ€™ {aka โ€˜long unsigned intโ€™} to โ€˜L4_Clock_tโ€™
make[2]: *** [../../Mk/l4.build.mk:58: debug.o] Error 1
make[2]: Leaving directory '/root/Orion/user/lib/l4'
make[1]: *** [../Mk/l4.subdir.mk:41: subdirs-all] Error 2
make[1]: Leaving directory '/root/Orion/user/lib'
make: *** [Mk/l4.subdir.mk:41: subdirs-all] Error 2
[root@fedora28 user]# 

POSIX Threads/Semaphores implementation

In order to implement POSIX compatibility, for #7, to port things like SQLite, MojoELF, nedmalloc, and V2Lin, we need to implement pthreads, and semaphores, it seems.

For instance, the unbuildable surface required by V2Lin looks like:

tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user/apps/system$ make
===> v2lin_v02/lib/lwdLib.c
gcc-6 -I../../include -I../.. -I/usr/lib/gcc/x86_64-linux-gnu/6/include   -nostdinc -g -O2 -m64 -mno-red-zone   -fno-stack-protector -lssp -O2 -g -Wall -Wshadow   -fno-stack-protector  -Wconversion -std=c99 -c v2lin_v02/lib/lwdLib.c -o v2lin_v02/lib/lwdLib.o
In file included from v2lin_v02/lib/lwdLib.c:28:0:
../../include/stdio.h: In function โ€˜__sputcโ€™:
../../include/stdio.h:460:23: warning: conversion to โ€˜unsigned charโ€™ from โ€˜intโ€™ may alter its value [-Wconversion]
   return (*_p->_p++ = _c);
                       ^~
In file included from ../../include/signal.h:43:0,
                 from v2lin_v02/lib/lwdLib.c:30:
../../include/sys/_ucontext.h: At top level:
../../include/sys/_ucontext.h:46:2: error: unknown type name โ€˜mcontext_tโ€™
  mcontext_t uc_mcontext;
  ^~~~~~~~~~
In file included from v2lin_v02/lib/internal.h:29:0,
                 from v2lin_v02/lib/lwdLib.c:33:
v2lin_v02/lib/v2lpthread.h:68:2: error: unknown type name โ€˜pthread_attr_tโ€™
  pthread_attr_t attr;
  ^~~~~~~~~~~~~~
v2lin_v02/lib/v2lpthread.h:69:21: error: field โ€˜prv_priorityโ€™ has incomplete type
  struct sched_param prv_priority;
                     ^~~~~~~~~~~~
v2lin_v02/lib/v2lpthread.h:80:2: error: unknown type name โ€˜pthread_mutex_tโ€™
  pthread_mutex_t tdelete_lock;
  ^~~~~~~~~~~~~~~
v2lin_v02/lib/v2lpthread.h:81:2: error: unknown type name โ€˜pthread_cond_tโ€™
  pthread_cond_t t_deletable;
  ^~~~~~~~~~~~~~
v2lin_v02/lib/v2lpthread.h:84:2: error: unknown type name โ€˜pthread_mutex_tโ€™
  pthread_mutex_t dbcst_lock;
  ^~~~~~~~~~~~~~~
v2lin_v02/lib/v2lpthread.h:85:2: error: unknown type name โ€˜pthread_cond_tโ€™
  pthread_cond_t delete_bcplt;
  ^~~~~~~~~~~~~~
v2lin_v02/lib/v2lpthread.h:95:2: error: unknown type name โ€˜pthread_mutex_tโ€™
  pthread_mutex_t *waiting_m;
  ^~~~~~~~~~~~~~~
In file included from v2lin_v02/lib/vxw_hdrs.h:28:0,
                 from v2lin_v02/lib/internal.h:31,
                 from v2lin_v02/lib/lwdLib.c:33:
../../include/sys/types.h: In function โ€˜__bitcount16โ€™:
../../include/sys/types.h:327:7: warning: conversion to โ€˜__uint16_t {aka short unsigned int}โ€™ from โ€˜intโ€™ may alter its value [-Wconversion]
  _x = (_x & 0x5555) + ((_x & 0xaaaa) >> 1);
       ^
../../include/sys/types.h:328:7: warning: conversion to โ€˜__uint16_t {aka short unsigned int}โ€™ from โ€˜intโ€™ may alter its value [-Wconversion]
  _x = (_x & 0x3333) + ((_x & 0xcccc) >> 2);
       ^
In file included from ../../include/sys/types.h:376:0,
                 from v2lin_v02/lib/vxw_hdrs.h:28,
                 from v2lin_v02/lib/internal.h:31,
                 from v2lin_v02/lib/lwdLib.c:33:
../../include/sys/select.h: At top level:
../../include/sys/select.h:105:54: warning: โ€˜struct timevalโ€™ declared inside parameter list will not be visible outside of this definition or declaration
 int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
                                                      ^~~~~~~
In file included from v2lin_v02/lib/vxw_hdrs.h:28:0,
                 from v2lin_v02/lib/internal.h:31,
                 from v2lin_v02/lib/lwdLib.c:33:
../../include/sys/types.h: In function โ€˜__majorโ€™:
../../include/sys/types.h:393:36: warning: conversion to โ€˜intโ€™ from โ€˜dev_t {aka long unsigned int}โ€™ may alter its value [-Wconversion]
  return (((_d >> 32) & 0xffffff00) | ((_d >> 8) & 0xff));
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
../../include/sys/types.h: In function โ€˜__minorโ€™:
../../include/sys/types.h:399:32: warning: conversion to โ€˜intโ€™ from โ€˜dev_t {aka long unsigned int}โ€™ may alter its value [-Wconversion]
  return (((_d >> 24) & 0xff00) | (_d & 0xffff00ff));
         ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
../../include/sys/types.h: In function โ€˜__makedevโ€™:
../../include/sys/types.h:405:26: warning: conversion to โ€˜unsigned intโ€™ from โ€˜intโ€™ may change the sign of the result [-Wsign-conversion]
  return (((dev_t)(_Major & 0xffffff00) << 32) | ((_Major & 0xff) << 8) |
                          ^
../../include/sys/types.h:405:47: warning: conversion to โ€˜long unsigned intโ€™ from โ€˜intโ€™ may change the sign of the result [-Wsign-conversion]
  return (((dev_t)(_Major & 0xffffff00) << 32) | ((_Major & 0xff) << 8) |
                                               ^
../../include/sys/types.h:406:49: warning: conversion to โ€˜unsigned intโ€™ from โ€˜intโ€™ may change the sign of the result [-Wsign-conversion]
      ((dev_t)(_Minor & 0xff00) << 24) | (_Minor & 0xffff00ff));
                                                 ^
In file included from v2lin_v02/lib/lwdLib.c:33:0:
v2lin_v02/lib/internal.h: At top level:
v2lin_v02/lib/internal.h:37:2: error: unknown type name โ€˜pthread_mutex_tโ€™
  pthread_mutex_t wdog_lock;
  ^~~~~~~~~~~~~~~
v2lin_v02/lib/internal.h:47:2: error: unknown type name โ€˜pthread_mutex_tโ€™
  pthread_mutex_t sem_lock;
  ^~~~~~~~~~~~~~~
v2lin_v02/lib/internal.h:48:2: error: unknown type name โ€˜pthread_cond_tโ€™
  pthread_cond_t sem_send;
  ^~~~~~~~~~~~~~
v2lin_v02/lib/internal.h:52:2: error: unknown type name โ€˜pthread_mutex_tโ€™
  pthread_mutex_t smdel_lock;
  ^~~~~~~~~~~~~~~
v2lin_v02/lib/internal.h:53:2: error: unknown type name โ€˜pthread_cond_tโ€™
  pthread_cond_t smdel_cplt;
  ^~~~~~~~~~~~~~
v2lin_v02/lib/internal.h:83:8: error: unknown type name โ€˜pthread_mutex_tโ€™
 extern pthread_mutex_t task_list_lock;
        ^~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c:43:8: error: unknown type name โ€˜pthread_mutex_tโ€™
 static pthread_mutex_t wdog_list_lock = PTHREAD_MUTEX_INITIALIZER;
        ^~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c:43:41: error: โ€˜PTHREAD_MUTEX_INITIALIZERโ€™ undeclared here (not in a function)
 static pthread_mutex_t wdog_list_lock = PTHREAD_MUTEX_INITIALIZER;
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c: In function โ€˜wdog_validโ€™:
v2lin_v02/lib/lwdLib.c:60:2: warning: implicit declaration of function โ€˜pthread_cleanup_pushโ€™ [-Wimplicit-function-declaration]
  pthread_cleanup_push((void (*)(void *)) pthread_mutex_unlock, (void *) &wdog_list_lock);
  ^~~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c:60:42: error: โ€˜pthread_mutex_unlockโ€™ undeclared (first use in this function)
  pthread_cleanup_push((void (*)(void *)) pthread_mutex_unlock, (void *) &wdog_list_lock);
                                          ^~~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c:60:42: note: each undeclared identifier is reported only once for each function it appears in
v2lin_v02/lib/lwdLib.c:61:2: warning: implicit declaration of function โ€˜pthread_mutex_lockโ€™ [-Wimplicit-function-declaration]
  pthread_mutex_lock(&wdog_list_lock);
  ^~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c:81:2: warning: implicit declaration of function โ€˜pthread_cleanup_popโ€™ [-Wimplicit-function-declaration]
  pthread_cleanup_pop(1);
  ^~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c: In function โ€˜link_wdogโ€™:
v2lin_v02/lib/lwdLib.c:93:42: error: โ€˜pthread_mutex_unlockโ€™ undeclared (first use in this function)
  pthread_cleanup_push((void (*)(void *)) pthread_mutex_unlock, (void *) &wdog_list_lock);
                                          ^~~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c: In function โ€˜unlink_wdogโ€™:
v2lin_v02/lib/lwdLib.c:132:42: error: โ€˜pthread_mutex_unlockโ€™ undeclared (first use in this function)
  pthread_cleanup_push((void (*)(void *)) pthread_mutex_unlock, (void *) &wdog_list_lock);
                                          ^~~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c: In function โ€˜process_tick_forโ€™:
v2lin_v02/lib/lwdLib.c:215:42: error: โ€˜pthread_mutex_unlockโ€™ undeclared (first use in this function)
  pthread_cleanup_push((void (*)(void *)) pthread_mutex_unlock, &wdId->wdog_lock);
                                          ^~~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c:229:5: warning: implicit declaration of function โ€˜pthread_mutex_unlockโ€™ [-Wimplicit-function-declaration]
     pthread_mutex_unlock(&wdId->wdog_lock);
     ^~~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c:229:5: warning: declaration of โ€˜pthread_mutex_unlockโ€™ shadows previous non-variable [-Wshadow]
v2lin_v02/lib/lwdLib.c: In function โ€˜wdCancelโ€™:
v2lin_v02/lib/lwdLib.c:271:42: error: โ€˜pthread_mutex_unlockโ€™ undeclared (first use in this function)
  pthread_cleanup_push((void (*)(void *)) pthread_mutex_unlock, &wdId->wdog_lock);
                                          ^~~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c: In function โ€˜wdCreateโ€™:
v2lin_v02/lib/lwdLib.c:296:3: warning: implicit declaration of function โ€˜pthread_mutex_initโ€™ [-Wimplicit-function-declaration]
   pthread_mutex_init(&(new_wdog->wdog_lock), (pthread_mutexattr_t *) NULL);
   ^~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c:296:47: error: โ€˜pthread_mutexattr_tโ€™ undeclared (first use in this function)
   pthread_mutex_init(&(new_wdog->wdog_lock), (pthread_mutexattr_t *) NULL);
                                               ^~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c:296:68: error: expected expression before โ€˜)โ€™ token
   pthread_mutex_init(&(new_wdog->wdog_lock), (pthread_mutexattr_t *) NULL);
                                                                    ^
v2lin_v02/lib/lwdLib.c: In function โ€˜wdDeleteโ€™:
v2lin_v02/lib/lwdLib.c:313:42: error: โ€˜pthread_mutex_unlockโ€™ undeclared (first use in this function)
  pthread_cleanup_push((void (*)(void *)) pthread_mutex_unlock, (void *) &(wdId->wdog_lock));
                                          ^~~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c: In function โ€˜wdStartโ€™:
v2lin_v02/lib/lwdLib.c:335:42: error: โ€˜pthread_mutex_unlockโ€™ undeclared (first use in this function)
  pthread_cleanup_push((void (*)(void *)) pthread_mutex_unlock, &wdId->wdog_lock);
                                          ^~~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c: In function โ€˜self_starterโ€™:
v2lin_v02/lib/lwdLib.c:384:3: warning: implicit declaration of function โ€˜pthread_createโ€™ [-Wimplicit-function-declaration]
   pthread_create(&(task->pthrid), &(task->attr), task_wrapper, (void *) task);
   ^~~~~~~~~~~~~~
In file included from v2lin_v02/lib/lwdLib.c:33:0:
v2lin_v02/lib/lwdLib.c: In function โ€˜wdogShowโ€™:
v2lin_v02/lib/internal.h:92:42: error: โ€˜pthread_mutex_unlockโ€™ undeclared (first use in this function)
  pthread_cleanup_push((void (*)(void *)) pthread_mutex_unlock, m); \
                                          ^
v2lin_v02/lib/lwdLib.c:413:2: note: in expansion of macro โ€˜pthread_mutex_clean_lockโ€™
  pthread_mutex_clean_lock(&wdog_list_lock);
  ^~~~~~~~~~~~~~~~~~~~~~~~
v2lin_v02/lib/lwdLib.c:415:17: warning: format โ€˜%xโ€™ expects argument of type โ€˜unsigned intโ€™, but argument 3 has type โ€˜void (*)(int)โ€™ [-Wformat=]
   fprintf(out,"%x %i %i\n", wd->timeout_func, wd->ticks_remaining, wd->timeout_parm);
                 ^
make: *** [../../Mk/l4.build.mk:62: v2lin_v02/lib/lwdLib.o] Error 1

For NEDMalloc:

tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user/lib/linux$ cat NMB1 | grep error
malloc.c.h:2055:3: error: unknown type name โ€˜pthread_tโ€™
malloc.c.h:2069:3: error: unknown type name โ€˜pthread_tโ€™
malloc.c.h:2117:3: error: unknown type name โ€˜pthread_tโ€™
nedmalloc.c:299:28: error: โ€˜mallocโ€™ undeclared here (not in a function)
nedmalloc.c:300:36: error: โ€˜callocโ€™ undeclared here (not in a function)
nedmalloc.c:301:37: error: โ€˜reallocโ€™ undeclared here (not in a function)
nedmalloc.c:302:25: error: โ€˜freeโ€™ undeclared here (not in a function)
nedmalloc.c:252:19: error: unknown type name โ€˜pthread_key_tโ€™

POWER9/QEMU (Little Endian) Enlightenments

For our POWER9 VM, we get this, from dmesg:

[fedora@p9-test ~]$ dmesg
[    0.000000] radix-mmu: Page sizes from device-tree:
[    0.000000] radix-mmu: Page size shift = 12 AP=0x0
[    0.000000] radix-mmu: Page size shift = 16 AP=0x5
[    0.000000] radix-mmu: Page size shift = 21 AP=0x1
[    0.000000] radix-mmu: Page size shift = 30 AP=0x2
[    0.000000] lpar: Using radix MMU under hypervisor
[    0.000000] radix-mmu: Mapped 0x0000000000000000-0x0000000040000000 with 1.00 GiB pages (exec)
[    0.000000] radix-mmu: Process table (____ptrval____) and radix root for kernel: (____ptrval____)
[    0.000000] Linux version 5.1.0-1.fc31.ppc64le ([email protected]) (gcc version 9.1.1 20190503 (Red Hat 9.1.1-1) (GCC)) #1 SMP Mon May 6 14:18:01 UTC 2019
[    0.000000] Found initrd at 0xc000000003a00000:0xc00000000517d35c
[    0.000000] Using pSeries machine description
[    0.000000] Partition configured for 1 cpus.
[    0.000000] CPU maps initialized for 1 thread per core
[    0.000000]  (thread shift is 0)
[    0.000000] Allocated 4616 bytes for 1 pacas
[    0.000000] -----------------------------------------------------
[    0.000000] ppc64_pft_size    = 0x0
[    0.000000] phys_mem_size     = 0x40000000
[    0.000000] dcache_bsize      = 0x80
[    0.000000] icache_bsize      = 0x80
[    0.000000] cpu_features      = 0x0000c07f8f4f91a7
[    0.000000]   possible        = 0x0000fbffcf5fb1a7
[    0.000000]   always          = 0x00000003800081a1
[    0.000000] cpu_user_features = 0xdc0065c2 0xefe00000
[    0.000000] mmu_features      = 0x3c006041
[    0.000000] firmware_features = 0x00000001415a445f
[    0.000000] -----------------------------------------------------
[    0.000000] numa:   NODE_DATA [mem 0x3ffe3000-0x3ffe7fff]
[    0.000000] rfi-flush: fallback displacement flush available
[    0.000000] rfi-flush: patched 9 locations (fallback displacement flush)
[    0.000000] count-cache-flush: software flush disabled.
[    0.000000] stf-barrier: eieio barrier available
[    0.000000] stf-barrier: patched 61 entry locations (eieio barrier)
[    0.000000] stf-barrier: patched 9 exit locations (eieio barrier)
[    0.000000] PCI host bridge /pci@800000020000000  ranges:
[    0.000000]   IO 0x0000200000000000..0x000020000000ffff -> 0x0000000000000000
[    0.000000]  MEM 0x0000200080000000..0x00002000ffffffff -> 0x0000000080000000 
[    0.000000]  MEM 0x0000210000000000..0x000021ffffffffff -> 0x0000210000000000 
[    0.000000] PPC64 nvram contains 65536 bytes
[    0.000000] barrier-nospec: using ORI speculation barrier
[    0.000000] barrier-nospec: patched 526 locations
[    0.000000] Top of RAM: 0x40000000, Total RAM: 0x40000000
[    0.000000] Memory hole size: 0MB
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] On node 0 totalpages: 16384
[    0.000000]   Normal zone: 16 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 16384 pages, LIFO batch:3
[    0.000000] random: get_random_u64 called from start_kernel+0xb4/0x68c with crng_init=0
[    0.000000] percpu: Embedded 3 pages/cpu s158104 r0 d38504 u196608
[    0.000000] pcpu-alloc: s158104 r0 d38504 u196608 alloc=3*65536
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16368
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.1.0-1.fc31.ppc64le root=UUID=4cfeaafb-a0ee-4fc4-b761-e08aa11a64de ro no_timer_check net.ifnames=0 console=tty1 console=ttyS0,115200n8
[    0.000000] Memory: 988672K/1048576K available (12736K kernel code, 1728K rwdata, 3584K rodata, 4672K init, 2504K bss, 59904K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=128, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] ftrace: allocating 32647 entries in 12 pages
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=1024 to nr_cpu_ids=1.
[    0.000000] 	Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 512, nr_irqs: 512, preallocated irqs: 16
[    0.000000] pic: no ISA interrupt controller
[    0.000000] time_init: decrementer frequency = 512.000000 MHz
[    0.000000] time_init: processor frequency   = 2250.000000 MHz
[    0.000001] time_init: 32 bit decrementer (max: 7fffffff)
[    0.000002] clocksource: timebase: mask: 0xffffffffffffffff max_cycles: 0x761537d007, max_idle_ns: 440795202126 ns
[    0.000004] clocksource: timebase mult[1f40000] shift[24] registered
[    0.000007] clockevent: decrementer mult[83126e98] shift[32] cpu[0]
[    0.000023] Console: colour dummy device 80x25
[    0.000085] printk: console [tty1] enabled
[    0.000104] pid_max: default: 32768 minimum: 301
[    0.000164] LSM: Security Framework initializing
[    0.000202] Yama: becoming mindful.
[    0.000212] SELinux:  Initializing.
[    0.000283] *** VALIDATE SELinux ***
[    0.000367] Dentry cache hash table entries: 131072 (order: 4, 1048576 bytes)
[    0.000404] Inode-cache hash table entries: 65536 (order: 3, 524288 bytes)
[    0.000415] Mount-cache hash table entries: 8192 (order: 0, 65536 bytes)
[    0.000422] Mountpoint-cache hash table entries: 8192 (order: 0, 65536 bytes)
[    0.000573] *** VALIDATE proc ***
[    0.000606] *** VALIDATE cgroup1 ***
[    0.000608] *** VALIDATE cgroup2 ***
[    0.000756] EEH: pSeries platform initialized
[    0.000759] POWER9 performance monitor hardware support registered
[    0.000776] rcu: Hierarchical SRCU implementation.
[    0.001089] smp: Bringing up secondary CPUs ...
[    0.001091] smp: Brought up 1 node, 1 CPU
[    0.001111] VPHN is not supported. Disabling polling...
[    0.001113] numa: Stopping topology update
[    0.001115] numa: Node 0 CPUs: 0
[    0.001117] Using standard scheduler topology
[    0.001872] devtmpfs: initialized
[    0.002286] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.002290] futex hash table entries: 256 (order: -1, 32768 bytes)
[    0.002432] NET: Registered protocol family 16
[    0.002535] audit: initializing netlink subsys (disabled)
[    0.002605] cpuidle: using governor menu
[    0.002639] RTAS daemon started
[    0.002700] pstore: Registered nvram as persistent store backend
[    0.003210] PCI: Probing PCI hardware
[    0.003236] PCI host bridge to bus 0000:00
[    0.003239] pci_bus 0000:00: root bus resource [io  0x10000-0x1ffff] (bus address [0x0000-0xffff])
[    0.003243] pci_bus 0000:00: root bus resource [mem 0x200080000000-0x2000ffffffff] (bus address [0x80000000-0xffffffff])
[    0.003246] pci_bus 0000:00: root bus resource [mem 0x210000000000-0x21ffffffffff]
[    0.003249] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.003373] pci 0000:00:01.0: No hypervisor support for SR-IOV on this device, IOV BARs disabled.
[    0.003860] pci 0000:00:02.0: No hypervisor support for SR-IOV on this device, IOV BARs disabled.
[    0.004162] pci 0000:00:03.0: No hypervisor support for SR-IOV on this device, IOV BARs disabled.
[    0.004682] pci 0000:00:04.0: No hypervisor support for SR-IOV on this device, IOV BARs disabled.
[    0.005089] pci 0000:00:05.0: No hypervisor support for SR-IOV on this device, IOV BARs disabled.
[    0.008714] IOMMU table initialized, virtual merging enabled
[    0.008723] pci 0000:00:01.0: Adding to iommu group 0
[    0.008760] pci 0000:00:02.0: Adding to iommu group 0
[    0.008790] pci 0000:00:03.0: Adding to iommu group 0
[    0.008820] pci 0000:00:04.0: Adding to iommu group 0
[    0.008838] pci 0000:00:05.0: Adding to iommu group 0
[    0.011062] EEH: No capable adapters found
[    0.011070] PCI: Probing PCI hardware done
[    0.011074] audit: type=2000 audit(1568460712.000:1): state=initialized audit_enabled=0 res=1
[    0.012176] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.012179] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.012325] fbcon: Taking over console
[    0.012362] pci 0000:00:05.0: vgaarb: VGA device added: decodes=io+mem,owns=mem,locks=none
[    0.012365] pci 0000:00:05.0: vgaarb: bridge control possible
[    0.012375] pci 0000:00:05.0: vgaarb: setting as boot device (VGA legacy resources not available)
[    0.012377] vgaarb: loaded
[    0.012432] SCSI subsystem initialized
[    0.012453] libata version 3.00 loaded.
[    0.012480] usbcore: registered new interface driver usbfs
[    0.012487] usbcore: registered new interface driver hub
[    0.012493] usbcore: registered new device driver usb
[    0.012513] pps_core: LinuxPPS API ver. 1 registered
[    0.012515] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[    0.012519] PTP clock support registered
[    0.012539] EDAC MC: Ver: 3.0.0
[    0.012730] NetLabel: Initializing
[    0.012731] NetLabel:  domain hash size = 128
[    0.012733] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    0.012744] NetLabel:  unlabeled traffic allowed by default
[    0.012799] clocksource: Switched to clocksource timebase
[    0.024700] VFS: Disk quotas dquot_6.6.0
[    0.024721] VFS: Dquot-cache hash table entries: 8192 (order 0, 65536 bytes)
[    0.024739] *** VALIDATE hugetlbfs ***
[    0.025682] NET: Registered protocol family 2
[    0.025772] tcp_listen_portaddr_hash hash table entries: 4096 (order: 0, 65536 bytes)
[    0.025781] TCP established hash table entries: 8192 (order: 0, 65536 bytes)
[    0.025794] TCP bind hash table entries: 8192 (order: 1, 131072 bytes)
[    0.025807] TCP: Hash tables configured (established 8192 bind 8192)
[    0.025819] UDP hash table entries: 2048 (order: 0, 65536 bytes)
[    0.025827] UDP-Lite hash table entries: 2048 (order: 0, 65536 bytes)
[    0.025858] NET: Registered protocol family 1
[    0.025863] NET: Registered protocol family 44
[    0.026109] PCI: CLS 0 bytes, default 128
[    0.026135] Unpacking initramfs...
[    0.300210] Freeing initrd memory: 24000K
[    0.300318] rtas_flash: no firmware flash support
[    0.300333] numa: Starting topology update
[    0.300984] Initialise system trusted keyrings
[    0.300992] Key type blacklist registered
[    0.301023] workingset: timestamp_bits=38 max_order=14 bucket_order=0
[    0.302160] zbud: loaded
[    0.439968] alg: No test for lzo-rle (lzo-rle-generic)
[    0.440629] alg: No test for lzo-rle (lzo-rle-scomp)
[    0.441262] alg: No test for 842 (842-generic)
[    0.441895] alg: No test for 842 (842-scomp)
[    0.463291] NET: Registered protocol family 38
[    0.463297] Key type asymmetric registered
[    0.463299] Asymmetric key parser 'x509' registered
[    0.463312] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    0.463334] io scheduler mq-deadline registered
[    0.463374] atomic64_test: passed
[    0.463428] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[    0.463506] Using unsupported 800x600 (null) at 200081000000, depth=32, pitch=3200
[    0.463577] Console: switching to colour frame buffer device 100x37
[    0.464508] fb0: Open Firmware frame buffer device on /pci@800000020000000/vga@5
[    0.464547] virtio-pci 0000:00:01.0: enabling device (0100 -> 0103)
[    0.465294] virtio-pci 0000:00:01.0: ibm,query-pe-dma-windows(2026) 800 8000000 20000000 returned 0
[    0.465607] virtio-pci 0000:00:01.0: ibm,create-pe-dma-window(2027) 800 8000000 20000000 10 1e returned 0 (liobn = 0x80000001 starting addr = 8000000 0)
[    0.466976] virtio-pci 0000:00:03.0: enabling device (0100 -> 0103)
[    0.468232] virtio-pci 0000:00:04.0: enabling device (0100 -> 0103)
[    0.469649] libphy: Fixed MDIO Bus: probed
[    0.469715] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.469737] ehci-pci: EHCI PCI platform driver
[    0.469754] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.470140] ohci-pci: OHCI PCI platform driver
[    0.470531] uhci_hcd: USB Universal Host Controller Interface driver
[    0.471090] xhci_hcd 0000:00:02.0: xHCI Host Controller
[    0.471522] xhci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1
[    0.472272] xhci_hcd 0000:00:02.0: hcc params 0x00087001 hci version 0x100 quirks 0x0000000000000010
[    0.473744] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.01
[    0.474181] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.474602] usb usb1: Product: xHCI Host Controller
[    0.475017] usb usb1: Manufacturer: Linux 5.1.0-1.fc31.ppc64le xhci-hcd
[    0.475447] usb usb1: SerialNumber: 0000:00:02.0
[    0.475945] hub 1-0:1.0: USB hub found
[    0.476398] hub 1-0:1.0: 4 ports detected
[    0.477056] xhci_hcd 0000:00:02.0: xHCI Host Controller
[    0.477508] xhci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 2
[    0.477949] xhci_hcd 0000:00:02.0: Host supports USB 3.0  SuperSpeed
[    0.478424] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    0.478885] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.01
[    0.479326] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.479772] usb usb2: Product: xHCI Host Controller
[    0.480211] usb usb2: Manufacturer: Linux 5.1.0-1.fc31.ppc64le xhci-hcd
[    0.480652] usb usb2: SerialNumber: 0000:00:02.0
[    0.481143] hub 2-0:1.0: USB hub found
[    0.481594] hub 2-0:1.0: 4 ports detected
[    0.482229] usbcore: registered new interface driver usbserial_generic
[    0.482656] usbserial: USB Serial support registered for generic
[    0.483133] mousedev: PS/2 mouse device common for all mice
[    0.483619] rtc-generic rtc-generic: registered as rtc0
[    0.484058] device-mapper: uevent: version 1.0.3
[    0.484492] device-mapper: ioctl: 4.40.0-ioctl (2019-01-18) initialised: [email protected]
[    0.484922] pseries_idle_driver registered
[    0.484931] hidraw: raw HID events driver (C) Jiri Kosina
[    0.485347] usbcore: registered new interface driver usbhid
[    0.485753] usbhid: USB HID core driver
[    0.486194] drop_monitor: Initializing network drop monitor service
[    0.486650] Initializing XFRM netlink socket
[    0.487124] NET: Registered protocol family 10
[    0.489845] Segment Routing with IPv6
[    0.490261] mip6: Mobile IPv6
[    0.490650] NET: Registered protocol family 17
[    0.491091] drmem: No dynamic reconfiguration memory found
[    0.491495] Running MSI bitmap self-tests ...
[    0.491654] registered taskstats version 1
[    0.492061] Loading compiled-in X.509 certificates
[    0.523152] Loaded X.509 cert 'Fedora kernel signing key: 274ad37c49656dca2fbf8e5ae977ae4af4638ceb'
[    0.523932] zswap: loaded using pool lzo/zbud
[    0.524353] pstore: Using crash dump compression: deflate
[    0.527289] Key type big_key registered
[    0.529720] Key type encrypted registered
[    0.530239] rtc-generic rtc-generic: setting system clock to 2019-09-14T11:31:53 UTC (1568460713)
[    0.531860] Freeing unused kernel memory: 4672K
[    0.532256] This architecture does not have kernel memory protection.
[    0.532660] Run /init as init process
[    0.546296] systemd[1]: systemd v242-3.git7a6d834.fc31 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid)
[    0.547588] systemd[1]: Detected virtualization kvm.
[    0.548012] systemd[1]: Detected architecture ppc64-le.
[    0.548425] systemd[1]: Running in initial RAM disk.
[    0.558401] systemd[1]: No hostname configured.
[    0.558828] systemd[1]: Set hostname to <localhost>.
[    0.559270] random: systemd: uninitialized urandom read (16 bytes read)
[    0.559708] systemd[1]: Initializing machine ID from random generator.
[    0.620125] random: systemd: uninitialized urandom read (16 bytes read)
[    0.620655] systemd[1]: Listening on Journal Socket (/dev/log).
[    0.621691] random: systemd: uninitialized urandom read (16 bytes read)
[    0.622173] systemd[1]: Listening on Journal Audit Socket.
[    0.623186] systemd[1]: Reached target Slices.
[    0.842805] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    1.023178] usb 1-1: New USB device found, idVendor=0627, idProduct=0001, bcdDevice= 0.00
[    1.023679] usb 1-1: New USB device strings: Mfr=1, Product=3, SerialNumber=5
[    1.024055] usb 1-1: Product: QEMU USB Tablet
[    1.024425] usb 1-1: Manufacturer: QEMU
[    1.024787] usb 1-1: SerialNumber: 42
[    1.025803] input: QEMU QEMU USB Tablet as /devices/pci0000:00/0000:00:02.0/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input0
[    1.032872] hid-generic 0003:0627:0001.0001: input,hidraw0: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:02.0-1/input0
[    1.054643] audit: type=1130 audit(1568460714.020:2): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=systemd-journald comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[    1.067008] audit: type=1130 audit(1568460714.030:3): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=systemd-tmpfiles-setup comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[    1.127249] audit: type=1130 audit(1568460714.090:4): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=systemd-udevd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[    1.182811] usb 1-2: new high-speed USB device number 3 using xhci_hcd
[    1.195778] synth uevent: /devices/vio: failed to send uevent
[    1.196265] vio vio: uevent: failed to send synthetic uevent
[    1.209456] audit: type=1130 audit(1568460714.170:5): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=systemd-udev-trigger comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[    1.258629] virtio_blk virtio1: [vda] 41943040 512-byte logical blocks (21.5 GB/20.0 GiB)
[    1.283036] crypto_register_alg 'aes' = 0
[    1.291654]  vda: vda1 vda2
[    1.295470] crypto_register_alg 'cbc(aes)' = 0
[    1.312339] alg: skcipher: p8_aes_ctr encryption test failed (wrong result) on test vector 3, cfg="uneven misaligned splits, may sleep"
[    1.317486] crypto_register_alg 'ctr(aes)' = 0
[    1.355792] crypto_register_alg 'xts(aes)' = 0
[    1.363226] usb 1-2: New USB device found, idVendor=0627, idProduct=0001, bcdDevice= 0.00
[    1.363749] usb 1-2: New USB device strings: Mfr=1, Product=4, SerialNumber=5
[    1.364241] usb 1-2: Product: QEMU USB Keyboard
[    1.364729] usb 1-2: Manufacturer: QEMU
[    1.365210] usb 1-2: SerialNumber: 42
[    1.367917] input: QEMU QEMU USB Keyboard as /devices/pci0000:00/0000:00:02.0/usb1/1-2/1-2:1.0/0003:0627:0001.0002/input/input1
[    1.433276] hid-generic 0003:0627:0001.0002: input,hidraw1: USB HID v1.11 Keyboard [QEMU QEMU USB Keyboard] on usb-0000:00:02.0-2/input0
[    1.582820] usb 1-3: new high-speed USB device number 4 using xhci_hcd
[    1.763510] usb 1-3: New USB device found, idVendor=0627, idProduct=0001, bcdDevice= 0.00
[    1.764118] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[    1.764607] usb 1-3: Product: QEMU USB Mouse
[    1.765073] usb 1-3: Manufacturer: QEMU
[    1.765526] usb 1-3: SerialNumber: 42
[    1.766840] input: QEMU QEMU USB Mouse as /devices/pci0000:00/0000:00:02.0/usb1/1-3/1-3:1.0/0003:0627:0001.0003/input/input2
[    1.767979] hid-generic 0003:0627:0001.0003: input,hidraw2: USB HID v0.01 Mouse [QEMU QEMU USB Mouse] on usb-0000:00:02.0-3/input0
[    1.825187] audit: type=1130 audit(1568460714.790:6): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=dracut-initqueue comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[    1.910757] audit: type=1130 audit(1568460714.870:7): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=systemd-fsck-root comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[    1.938246] EXT4-fs (vda2): mounted filesystem with ordered data mode. Opts: (null)
[    2.092745] audit: type=1130 audit(1568460715.050:8): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=initrd-parse-etc comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[    2.094471] audit: type=1131 audit(1568460715.060:9): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=initrd-parse-etc comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[    2.110916] audit: type=1131 audit(1568460715.070:10): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=dracut-cmdline comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[    2.333950] systemd-journald[194]: Received SIGTERM from PID 1 (systemd).
[    2.366143] printk: systemd: 27 output lines suppressed due to ratelimiting
[    2.500105] random: fast init done
[    2.896652] SELinux:  policy capability network_peer_controls=1
[    2.897098] SELinux:  policy capability open_perms=1
[    2.897418] SELinux:  policy capability extended_socket_class=1
[    2.897727] SELinux:  policy capability always_check_network=0
[    2.898021] SELinux:  policy capability cgroup_seclabel=1
[    2.898302] SELinux:  policy capability nnp_nosuid_transition=1
[    2.911446] systemd[1]: Successfully loaded SELinux policy in 367.701ms.
[    2.990601] systemd[1]: Relabelled /dev, /dev/shm, /run, /sys/fs/cgroup in 28.500ms.
[    2.996876] systemd[1]: systemd v242-3.git7a6d834.fc31 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid)
[    2.997877] systemd[1]: Detected virtualization kvm.
[    2.998213] systemd[1]: Detected architecture ppc64-le.
[    3.005167] systemd[1]: Set hostname to <localhost.localdomain>.
[    3.200958] systemd[1]: /usr/lib/systemd/system/sssd.service:11: PIDFile= references a path below legacy directory /var/run/, updating /var/run/sssd.pid โ†’ /run/sssd.pid; please update the unit file accordingly.
[    3.225728] systemd[1]: /usr/lib/systemd/system/chronyd.service:9: PIDFile= references a path below legacy directory /var/run/, updating /var/run/chrony/chronyd.pid โ†’ /run/chrony/chronyd.pid; please update the unit file accordingly.
[    3.251694] systemd[1]: /usr/lib/systemd/system/sssd-kcm.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/.heim_org.h5l.kcm-socket โ†’ /run/.heim_org.h5l.kcm-socket; please update the unit file accordingly.
[    3.278395] systemd[1]: initrd-switch-root.service: Succeeded.
[    3.279331] systemd[1]: Stopped Switch Root.
[    3.280573] systemd[1]: systemd-journald.service: Service has no hold-off time (RestartSec=0), scheduling restart.
[    3.352812] EXT4-fs (vda2): re-mounted. Opts: (null)
[    3.511753] synth uevent: /devices/vio: failed to send uevent
[    3.512105] vio vio: uevent: failed to send synthetic uevent
[    3.808911] systemd-journald[377]: Received request to flush runtime journal from PID 1
[    5.380016] checking generic (200081000000 1d4c00) vs hw (200081000000 1000000)
[    5.380018] fb0: switching to bochsdrmfb from OFfb vga
[    5.380514] Console: switching to colour dummy device 80x25
[    5.390377] bochs-drm 0000:00:05.0: vgaarb: deactivate vga console
[    5.390455] [drm] Found bochs VGA, ID 0xb0c5.
[    5.390458] [drm] Framebuffer size 16384 kB @ 0x200081000000, mmio @ 0x200082000000.
[    5.422826] [TTM] Zone  kernel: Available graphics memory: 509152 kiB
[    5.422830] [TTM] Initializing pool allocator
[    5.423069] [drm] Initialized bochs-drm 1.0.0 20130925 for 0000:00:05.0 on minor 0
[    5.486435] Console: switching to colour frame buffer device 128x48
[    5.495919] bochs-drm 0000:00:05.0: fb0: DRM emulated frame buffer device
[ 1654.752252] random: crng init done
[ 1654.752314] random: 7 urandom warning(s) missed due to ratelimiting
[ 1667.345607] EXT4-fs (vda2): resizing filesystem from 1047296 to 5241584 blocks
[ 1668.086153] EXT4-fs (vda2): resized filesystem to 5241584
[fedora@p9-test ~]$ 

[fedora@p9-test ~]$ uname -a
Linux p9-test.novalocal 5.1.0-1.fc31.ppc64le #1 SMP Mon May 6 14:18:01 UTC 2019 ppc64le ppc64le ppc64le GNU/Linux
[root@p9-test fedora]# cat /proc/cpuinfo 
processor	: 0
cpu		: POWER9 (architected), altivec supported
clock		: 2250.000000MHz
revision	: 2.2 (pvr 004e 1202)

timebase	: 512000000
platform	: pSeries
model		: IBM pSeries (emulated by qemu)
machine		: CHRP IBM pSeries (emulated by qemu)
MMU		: Radix

POWER 64-bit common codebase

As part of the upstream Pistachio release, and the NICTA code drop (#9), we inherited a large, fragmented codebase, in terms of the POWER/PPC64 port, with differently split headers, missing definitions, and redundant versions of common functions, which is rapidly becoming a maintenance nightmare, since we're constantly fixing-and-refixing stuff, and having to identify which layer is responsible for what.

The result of #9 was bemusing, in that backporting from the NICTA archive both fixed, and broke a lot of stuff, and trampled some of our existing fixes. :(

It could be useful to identify what is shared between the POWER3, and POWER4, and G5 implementations, and refactor them into a common files directory.

The PowerPC 32-bit port seems to be a completely-separate, unrelated codebase, with its own problems, but we'll deal with that, later, once we properly get around into adding Wii support (#17).

This effort would probably go a long way towards fixing #5, #6, #15, and #21, with one stone...

Problems with IPC/TCB headers

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

Regressions in space.h

Since bringing the bulk of the work for #9 to a close, we now seem to have introduced regressions in space.h, or the infrastructure responsible for generating it:

tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/ubd'
===> Building dependencies
===> Generating include/tcb_layout.h
In file included from /home/tyson/Orion/kernel/src/api/v4/space.h:37,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:42,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:199:37: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
                                     ^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:247:29: error: macro "ASSERT" requires 2 arguments, but only 1 given
  ASSERT (is_copy_area (addr));
                             ^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:292:36: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (data.thread_count !=  0);
                                    ^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:309:37: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
                                     ^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:48: error: macro "SYS_IPC" requires 3 arguments, but only 2 given
 SYS_IPC (threadid_t to_tid, threadid_t from_tid);
                                                ^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
       threadid_t recv_redirector_tid, word_t utcb_location);
                                                           ^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
    word_t uhandle, threadid_t pager_tid);
                                        ^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
      fpage_t utcb_area);
                       ^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:21,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:27:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (n < COPY_AREA_COUNT);
                                ^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:42:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (n < COPY_AREA_COUNT);
                                ^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:48:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
  ASSERT (pdir_idx[n][i] != ~0UL);
                                ^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:63:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (n < COPY_AREA_COUNT);
                                ^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:64:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (p < COPY_AREA_PDIRS);
                                ^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:113:33: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (n <= COPY_AREA_COUNT);
                                 ^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:52:39: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(start + count <= IPC_NUM_MR);
                                       ^
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:53:21: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(count > 0);
                     ^
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:58:25: error: macro "ASSERT" requires 2 arguments, but only 1 given
  ASSERT(this->pdir_cache);
                         ^
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:94:30: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(index < IPC_NUM_MR);
                              ^
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:105:30: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(index < IPC_NUM_MR);
                              ^
In file included from /home/tyson/Orion/kernel/src/api/v4/space.h:37,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:42,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function โ€˜x86_space_t::top_pdir_t* space_t::get_top_pdir(cpuid_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:199:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function โ€˜word_t space_t::get_copy_limit(addr_t, word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:247:2: error: โ€˜ASSERTโ€™ was not declared in this scope
  ASSERT (is_copy_area (addr));
  ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function โ€˜bool space_t::remove_tcb(tcb_t*, cpuid_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:292:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT (data.thread_count !=  0);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function โ€˜pgent_t* space_t::pgent(word_t, word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:309:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
     ^~~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:49:16: error: โ€˜IPC_NUM_BRโ€™ was not declared in this scope
     word_t  br[IPC_NUM_BR];  /* -196 .. -64 */
                ^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:59:5: error: โ€˜timeout_tโ€™ does not name a type
     timeout_t  xfer_timeout;  /* -32  */
     ^~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:64:16: error: โ€˜IPC_NUM_MRโ€™ was not declared in this scope
     word_t  mr[IPC_NUM_MR];  /* 0 .. 252 */
                ^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:82:5: error: โ€˜timeout_tโ€™ does not name a type
     timeout_t get_xfer_timeout();
     ^~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:89,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/generic-utcb.h:96:8: error: โ€˜timeout_tโ€™ does not name a type
 INLINE timeout_t utcb_t::get_xfer_timeout()
        ^~~~~~~~~
In file included from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜tcb_t* tcb_t::get_partner_tcb()โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:425:31: error: โ€˜class space_tโ€™ has no member named โ€˜get_tcbโ€™; did you mean โ€˜add_tcbโ€™?
     return this->get_space()->get_tcb(partner);
                               ^~~~~~~
                               add_tcb
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜void tcb_t::clear_notify_bits()โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:570:14: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_bitsโ€™
  get_utcb()->notify_bits = 0;
              ^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜void tcb_t::add_notify_bits(word_t)โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:578:14: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_bitsโ€™
  get_utcb()->notify_bits |= bits;
              ^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜void tcb_t::sub_notify_bits(word_t)โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:586:14: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_bitsโ€™
  get_utcb()->notify_bits &= ~(bits);
              ^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜word_t tcb_t::get_notify_bits()โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:594:24: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_bitsโ€™
     return get_utcb()->notify_bits;
                        ^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜word_t tcb_t::get_notify_mask()โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:602:24: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_maskโ€™; did you mean โ€˜word_size_maskโ€™?
     return get_utcb()->notify_mask;
                        ^~~~~~~~~~~
                        word_size_mask
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜void tcb_t::set_notify_mask(word_t)โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:611:17: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_maskโ€™; did you mean โ€˜word_size_maskโ€™?
     get_utcb()->notify_mask = mask;
                 ^~~~~~~~~~~
                 word_size_mask
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:1: error: โ€˜SYS_IPCโ€™ does not name a type
 SYS_IPC (threadid_t to_tid, threadid_t from_tid);
 ^~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:73:1: error: โ€˜SYS_THREAD_CONTROLโ€™ does not name a type
 SYS_THREAD_CONTROL (threadid_t dest_tid, threadid_t space_tid,
 ^~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:88:1: error: โ€˜SYS_EXCHANGE_REGISTERSโ€™ does not name a type
 SYS_EXCHANGE_REGISTERS (threadid_t dest_tid, word_t control,
 ^~~~~~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:124:1: error: โ€˜SYS_SPACE_CONTROLโ€™ does not name a type
 SYS_SPACE_CONTROL (threadid_t space_tid, word_t control, fpage_t kip_area,
 ^~~~~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:21,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function โ€˜void* thread_resources_t::copy_area_address(word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:27:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT (n < COPY_AREA_COUNT);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function โ€˜void* thread_resources_t::copy_area_real_address(word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:42:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT (n < COPY_AREA_COUNT);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function โ€˜word_t thread_resources_t::copy_area_pdir_idx(word_t, word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:63:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT (n < COPY_AREA_COUNT);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function โ€˜void thread_resources_t::enable_copy_area(tcb_t*, void**, tcb_t*, void**)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:113:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT (n <= COPY_AREA_COUNT);
     ^~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h: In member function โ€˜void tcb_t::copy_mrs(tcb_t*, word_t, word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:52:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT(start + count <= IPC_NUM_MR);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:64:31: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
  "c"(count), "S"(&get_utcb()->mr[start]),
                               ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:65:25: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
  "D"(&dest->get_utcb()->mr[start]));
                         ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:364:13: error: no declaration matches โ€˜void tcb_t::arch_init_root_server(space_t*, word_t, word_t)โ€™
 INLINE void tcb_t::arch_init_root_server (space_t * space, word_t ip, word_t sp)
             ^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:364:13: note: no functions named โ€˜void tcb_t::arch_init_root_server(space_t*, word_t, word_t)โ€™
In file included from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: โ€˜class tcb_tโ€™ defined here
 class tcb_t
       ^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function โ€˜void tcb_t::set_cpu(cpuid_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:58:2: error: โ€˜ASSERTโ€™ was not declared in this scope
  ASSERT(this->pdir_cache);
  ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:65:11: error: โ€˜class tcb_tโ€™ has no member named โ€˜cpuโ€™
     this->cpu = cpu;
           ^~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function โ€˜void tcb_t::set_utcb_location(word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: error: โ€˜myself_localโ€™ was not declared in this scope
     myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
     ^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: note: suggested alternative: โ€˜myself_globalโ€™
     myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
     ^~~~~~~~~~~~
     myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:60: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
     myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
                                                            ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function โ€˜word_t tcb_t::get_utcb_location()โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: error: โ€˜myself_localโ€™ was not declared in this scope
     return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
            ^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: note: suggested alternative: โ€˜myself_globalโ€™
     return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
            ^~~~~~~~~~~~
            myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:54: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
     return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
                                                      ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function โ€˜word_t tcb_t::get_mr(word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:94:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT(index < IPC_NUM_MR);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:95:24: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
     return get_utcb()->mr[index];
                        ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function โ€˜void tcb_t::set_mr(word_t, word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:105:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT(index < IPC_NUM_MR);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:106:17: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
     get_utcb()->mr[index] = value;
                 ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: error: no declaration matches โ€˜word_t tcb_t::get_br(word_t)โ€™
 INLINE word_t tcb_t::get_br(word_t index)
               ^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: note: no functions named โ€˜word_t tcb_t::get_br(word_t)โ€™
In file included from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: โ€˜class tcb_tโ€™ defined here
 class tcb_t
       ^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: error: no declaration matches โ€˜void tcb_t::set_br(word_t, word_t)โ€™
 INLINE void tcb_t::set_br(word_t index, word_t value)
             ^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: note: no functions named โ€˜void tcb_t::set_br(word_t, word_t)โ€™
In file included from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: โ€˜class tcb_tโ€™ defined here
 class tcb_t
       ^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: error: no declaration matches โ€˜void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)โ€™
 INLINE void tcb_t::adjust_for_copy_area (tcb_t * dst,
             ^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: note: no functions named โ€˜void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)โ€™
In file included from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: โ€˜class tcb_tโ€™ defined here
 class tcb_t
       ^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: error: no declaration matches โ€˜void tcb_t::release_copy_area()โ€™
 INLINE void tcb_t::release_copy_area (void)
             ^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: note: no functions named โ€˜void tcb_t::release_copy_area()โ€™
In file included from /home/tyson/Orion/kernel/ubd/_1568046587_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: โ€˜class tcb_tโ€™ defined here
 class tcb_t
       ^~~~~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c: In function โ€˜void make_offsets()โ€™:
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:51:51: error: โ€˜class tcb_tโ€™ has no member named โ€˜sched_stateโ€™; did you mean โ€˜saved_stateโ€™?
    O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
                                                   ^~~~~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:12:84: note: in definition of macro โ€˜Oโ€™
 #define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
                                                                                    ^~~~~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:51:36: note: in expansion of macro โ€˜offsetofโ€™
    O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
                                    ^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:54:34: error: โ€˜class utcb_tโ€™ has no member named โ€˜brโ€™
    O(OFS_UTCB_BR,offsetof(utcb_t,br));
                                  ^~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:12:84: note: in definition of macro โ€˜Oโ€™
 #define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
                                                                                    ^~~~~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:54:18: note: in expansion of macro โ€˜offsetofโ€™
    O(OFS_UTCB_BR,offsetof(utcb_t,br));
                  ^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:64:44: error: โ€˜class utcb_tโ€™ has no member named โ€˜xfer_timeoutโ€™
    O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
                                            ^~~~~~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:12:84: note: in definition of macro โ€˜Oโ€™
 #define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
                                                                                    ^~~~~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:64:28: note: in expansion of macro โ€˜offsetofโ€™
    O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
                            ^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:69:34: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
    O(OFS_UTCB_MR,offsetof(utcb_t,mr));
                                  ^~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:12:84: note: in definition of macro โ€˜Oโ€™
 #define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
                                                                                    ^~~~~
/home/tyson/Orion/kernel/ubd/_1568046587_123.c:69:18: note: in expansion of macro โ€˜offsetofโ€™
    O(OFS_UTCB_MR,offsetof(utcb_t,mr));
                  ^~~~~~~~
===> src/arch/x86/x64/init32.cc
cd src/arch/x86/x64/ &&  gcc  -nostdinc -I/home/tyson/Orion/kernel/ubd/include -I/home/tyson/Orion/kernel/src -I/home/tyson/Orion/kernel/src/generic -I/usr/lib/gcc/x86_64-linux-gnu/8/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /home/tyson/Orion/kernel/ubd/config/config.h -imacros /home/tyson/Orion/kernel/src/generic/macros.h -include /home/tyson/Orion/kernel/src/generic/config.h  -include /home/tyson/Orion/kernel/src/generic/types.h -DX64_32BIT_CODE   -fno-rtti -fno-builtin  -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2  -m32   -mno-red-zone -fno-pie  -fno-stack-protector -lssp  -mno-mmx -mno-sse -mno-sse2 -mno-sse3    -Wconversion -x c++ -c /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc -o init32.o
In file included from /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc:40:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h: In static member function โ€˜static void x86_mmu_t::enable_long_mode()โ€™:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h:170:28: warning: conversion from โ€˜u64_tโ€™ {aka โ€˜long long unsigned intโ€™} to โ€˜word_tโ€™ {aka โ€˜unsigned intโ€™} may change value [-Wconversion]
     word_t efer = x86_rdmsr(X86_MSR_EFER);
                   ~~~~~~~~~^~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/arch/x86/mmu.h: In static member function โ€˜static bool x86_mmu_t::long_mode_active()โ€™:
/home/tyson/Orion/kernel/src/arch/x86/mmu.h:182:28: warning: conversion from โ€˜u64_tโ€™ {aka โ€˜long long unsigned intโ€™} to โ€˜word_tโ€™ {aka โ€˜unsigned intโ€™} may change value [-Wconversion]
     word_t efer = x86_rdmsr(X86_MSR_EFER);
                   ~~~~~~~~~^~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/arch/x86/segdesc.h:20,
                 from /home/tyson/Orion/kernel/src/arch/x86/x64/init32.cc:41:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h: In member function โ€˜void x86_segdesc_t::set_seg(u64_t, x86_segdesc_t::segtype_e, int, x86_segdesc_t::mode_e, x86_segdesc_t::msr_e)โ€™:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:80:17: warning: conversion from โ€˜u64_tโ€™ {aka โ€˜long long unsigned intโ€™} to โ€˜unsigned char:4โ€™ may change value [-Wconversion]
      x.d.type = type;
                 ^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:81:17: warning: conversion from โ€˜u64_tโ€™ {aka โ€˜long long unsigned intโ€™} to โ€˜unsigned char:1โ€™ may change value [-Wconversion]
      x.d.l    = mode;
                 ^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:82:17: warning: conversion from โ€˜u64_tโ€™ {aka โ€˜long long unsigned intโ€™} to โ€˜unsigned char:2โ€™ may change value [-Wconversion]
      x.d.dpl  = dpl;
                 ^~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h: In member function โ€˜void x86_segdesc_t::set_seg(u32_t, x86_segdesc_t::segtype_e, int, x86_segdesc_t::mode_e)โ€™:
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:99:36: warning: conversion from โ€˜u64_tโ€™ {aka โ€˜long long unsigned intโ€™} to โ€˜unsigned charโ€™ may change value [-Wconversion]
      x.d.base_high  = (base >> 24) & 0xFF;
                       ~~~~~~~~~~~~~^~~~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:101:17: warning: conversion from โ€˜u64_tโ€™ {aka โ€˜long long unsigned intโ€™} to โ€˜unsigned char:4โ€™ may change value [-Wconversion]
      x.d.type = type;
                 ^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:102:17: warning: conversion from โ€˜u64_tโ€™ {aka โ€˜long long unsigned intโ€™} to โ€˜unsigned char:1โ€™ may change value [-Wconversion]
      x.d.l    = mode;
                 ^~~~
/home/tyson/Orion/kernel/src/arch/x86/x64/segdesc.h:103:16: warning: conversion from โ€˜u64_tโ€™ {aka โ€˜long long unsigned intโ€™} to โ€˜unsigned char:2โ€™ may change value [-Wconversion]
      x.d.dpl = dpl;
                ^~~
cd src/arch/x86/x64/ && objcopy -g -O elf64-x86-64  init32.o init32.o
===> src/arch/x86/x64/cpu.cc
cd src/arch/x86/x64/ &&  gcc  -nostdinc -I/home/tyson/Orion/kernel/ubd/include -I/home/tyson/Orion/kernel/src -I/home/tyson/Orion/kernel/src/generic -I/usr/lib/gcc/x86_64-linux-gnu/8/include/ -Ux64 -Ux86 -Up4 -Upc99 -Uv4 -Urr -D__SUBARCH__=x64 -D__ARCH__=x86 -D__CPU__=p4 -D__PLATFORM__=pc99 -D__API__=v4 -D__SCHED__=rr -imacros /home/tyson/Orion/kernel/ubd/config/config.h -imacros /home/tyson/Orion/kernel/src/generic/macros.h -include /home/tyson/Orion/kernel/src/generic/config.h  -include /home/tyson/Orion/kernel/src/generic/types.h -fno-rtti -fno-builtin  -fomit-frame-pointer -fno-exceptions -Wall -Wno-non-virtual-dtor -Wno-format -O2 -m64 -mcmodel=kernel -mno-red-zone -fno-pie  -fno-stack-protector -lssp  -mno-mmx -mno-sse -mno-sse2 -mno-sse3    -Wconversion  -c /home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc
/home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc: In constructor โ€˜x86_x64_cpu_features_t::x86_x64_cpu_features_t()โ€™:
/home/tyson/Orion/kernel/src/arch/x86/x64/cpu.cc:66:25: warning: conversion from โ€˜u32_tโ€™ {aka โ€˜unsigned intโ€™} to โ€˜u8_tโ€™ {aka โ€˜unsigned charโ€™} may change value [-Wconversion]
  apic_id = ((ebx >> 24) & 0xFF);
            ~~~~~~~~~~~~~^~~~~~~
make[1]: *** No rule to make target '/home/tyson/Orion/kernel/ubd/include/tcb_layout.h', needed by 'tcb_layout.h'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/ubd'
make: *** [Makefile:38: all] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$ make
make[1]: Entering directory '/home/tyson/Orion/kernel/ubd'
===> Generating include/tcb_layout.h
In file included from /home/tyson/Orion/kernel/src/api/v4/space.h:37,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:42,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:199:37: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
                                     ^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:247:29: error: macro "ASSERT" requires 2 arguments, but only 1 given
  ASSERT (is_copy_area (addr));
                             ^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:292:36: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (data.thread_count !=  0);
                                    ^
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:309:37: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
                                     ^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:48: error: macro "SYS_IPC" requires 3 arguments, but only 2 given
 SYS_IPC (threadid_t to_tid, threadid_t from_tid);
                                                ^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:76:59: error: macro "SYS_THREAD_CONTROL" passed 7 arguments, but takes just 5
       threadid_t recv_redirector_tid, word_t utcb_location);
                                                           ^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:90:40: error: macro "SYS_EXCHANGE_REGISTERS" requires 8 arguments, but only 7 given
    word_t uhandle, threadid_t pager_tid);
                                        ^
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:125:23: error: macro "SYS_SPACE_CONTROL" requires 5 arguments, but only 4 given
      fpage_t utcb_area);
                       ^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:21,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:27:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (n < COPY_AREA_COUNT);
                                ^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:42:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (n < COPY_AREA_COUNT);
                                ^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:48:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
  ASSERT (pdir_idx[n][i] != ~0UL);
                                ^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:63:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (n < COPY_AREA_COUNT);
                                ^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:64:32: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (p < COPY_AREA_PDIRS);
                                ^
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:113:33: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT (n <= COPY_AREA_COUNT);
                                 ^
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:52:39: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(start + count <= IPC_NUM_MR);
                                       ^
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:53:21: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(count > 0);
                     ^
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:58:25: error: macro "ASSERT" requires 2 arguments, but only 1 given
  ASSERT(this->pdir_cache);
                         ^
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:94:30: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(index < IPC_NUM_MR);
                              ^
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:105:30: error: macro "ASSERT" requires 2 arguments, but only 1 given
     ASSERT(index < IPC_NUM_MR);
                              ^
In file included from /home/tyson/Orion/kernel/src/api/v4/space.h:37,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:42,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function โ€˜x86_space_t::top_pdir_t* space_t::get_top_pdir(cpuid_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:199:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function โ€˜word_t space_t::get_copy_limit(addr_t, word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:247:2: error: โ€˜ASSERTโ€™ was not declared in this scope
  ASSERT (is_copy_area (addr));
  ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function โ€˜bool space_t::remove_tcb(tcb_t*, cpuid_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:292:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT (data.thread_count !=  0);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h: In member function โ€˜pgent_t* space_t::pgent(word_t, word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/space.h:309:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT(cpu < CONFIG_SMP_MAX_CPUS);
     ^~~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:49:16: error: โ€˜IPC_NUM_BRโ€™ was not declared in this scope
     word_t  br[IPC_NUM_BR];  /* -196 .. -64 */
                ^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:59:5: error: โ€˜timeout_tโ€™ does not name a type
     timeout_t  xfer_timeout;  /* -32  */
     ^~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:64:16: error: โ€˜IPC_NUM_MRโ€™ was not declared in this scope
     word_t  mr[IPC_NUM_MR];  /* 0 .. 252 */
                ^~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:82:5: error: โ€˜timeout_tโ€™ does not name a type
     timeout_t get_xfer_timeout();
     ^~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/utcb.h:89,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:51,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/generic-utcb.h:96:8: error: โ€˜timeout_tโ€™ does not name a type
 INLINE timeout_t utcb_t::get_xfer_timeout()
        ^~~~~~~~~
In file included from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜tcb_t* tcb_t::get_partner_tcb()โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:425:31: error: โ€˜class space_tโ€™ has no member named โ€˜get_tcbโ€™; did you mean โ€˜add_tcbโ€™?
     return this->get_space()->get_tcb(partner);
                               ^~~~~~~
                               add_tcb
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜void tcb_t::clear_notify_bits()โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:570:14: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_bitsโ€™
  get_utcb()->notify_bits = 0;
              ^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜void tcb_t::add_notify_bits(word_t)โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:578:14: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_bitsโ€™
  get_utcb()->notify_bits |= bits;
              ^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜void tcb_t::sub_notify_bits(word_t)โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:586:14: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_bitsโ€™
  get_utcb()->notify_bits &= ~(bits);
              ^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜word_t tcb_t::get_notify_bits()โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:594:24: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_bitsโ€™
     return get_utcb()->notify_bits;
                        ^~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜word_t tcb_t::get_notify_mask()โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:602:24: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_maskโ€™; did you mean โ€˜word_size_maskโ€™?
     return get_utcb()->notify_mask;
                        ^~~~~~~~~~~
                        word_size_mask
/home/tyson/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜void tcb_t::set_notify_mask(word_t)โ€™:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:611:17: error: โ€˜class utcb_tโ€™ has no member named โ€˜notify_maskโ€™; did you mean โ€˜word_size_maskโ€™?
     get_utcb()->notify_mask = mask;
                 ^~~~~~~~~~~
                 word_size_mask
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:20,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:53:1: error: โ€˜SYS_IPCโ€™ does not name a type
 SYS_IPC (threadid_t to_tid, threadid_t from_tid);
 ^~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:73:1: error: โ€˜SYS_THREAD_CONTROLโ€™ does not name a type
 SYS_THREAD_CONTROL (threadid_t dest_tid, threadid_t space_tid,
 ^~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:88:1: error: โ€˜SYS_EXCHANGE_REGISTERSโ€™ does not name a type
 SYS_EXCHANGE_REGISTERS (threadid_t dest_tid, word_t control,
 ^~~~~~~~~~~~~~~~~~~~~~
/home/tyson/Orion/kernel/src/api/v4/syscalls.h:124:1: error: โ€˜SYS_SPACE_CONTROLโ€™ does not name a type
 SYS_SPACE_CONTROL (threadid_t space_tid, word_t control, fpage_t kip_area,
 ^~~~~~~~~~~~~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:21,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function โ€˜void* thread_resources_t::copy_area_address(word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:27:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT (n < COPY_AREA_COUNT);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function โ€˜void* thread_resources_t::copy_area_real_address(word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:42:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT (n < COPY_AREA_COUNT);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function โ€˜word_t thread_resources_t::copy_area_pdir_idx(word_t, word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:63:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT (n < COPY_AREA_COUNT);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h: In member function โ€˜void thread_resources_t::enable_copy_area(tcb_t*, void**, tcb_t*, void**)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/resource_functions.h:113:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT (n <= COPY_AREA_COUNT);
     ^~~~~~
In file included from /home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:22,
                 from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h: In member function โ€˜void tcb_t::copy_mrs(tcb_t*, word_t, word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:52:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT(start + count <= IPC_NUM_MR);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:64:31: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
  "c"(count), "S"(&get_utcb()->mr[start]),
                               ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:65:25: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
  "D"(&dest->get_utcb()->mr[start]));
                         ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:364:13: error: no declaration matches โ€˜void tcb_t::arch_init_root_server(space_t*, word_t, word_t)โ€™
 INLINE void tcb_t::arch_init_root_server (space_t * space, word_t ip, word_t sp)
             ^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/x64/tcb.h:364:13: note: no functions named โ€˜void tcb_t::arch_init_root_server(space_t*, word_t, word_t)โ€™
In file included from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: โ€˜class tcb_tโ€™ defined here
 class tcb_t
       ^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function โ€˜void tcb_t::set_cpu(cpuid_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:58:2: error: โ€˜ASSERTโ€™ was not declared in this scope
  ASSERT(this->pdir_cache);
  ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:65:11: error: โ€˜class tcb_tโ€™ has no member named โ€˜cpuโ€™
     this->cpu = cpu;
           ^~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function โ€˜void tcb_t::set_utcb_location(word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: error: โ€˜myself_localโ€™ was not declared in this scope
     myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
     ^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:5: note: suggested alternative: โ€˜myself_globalโ€™
     myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
     ^~~~~~~~~~~~
     myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:78:60: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
     myself_local.set_raw (utcb_location + ((word_t)&dummy->mr[0]));
                                                            ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function โ€˜word_t tcb_t::get_utcb_location()โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: error: โ€˜myself_localโ€™ was not declared in this scope
     return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
            ^~~~~~~~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:12: note: suggested alternative: โ€˜myself_globalโ€™
     return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
            ^~~~~~~~~~~~
            myself_global
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:84:54: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
     return myself_local.get_raw() - ((word_t)&dummy->mr[0]);
                                                      ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function โ€˜word_t tcb_t::get_mr(word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:94:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT(index < IPC_NUM_MR);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:95:24: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
     return get_utcb()->mr[index];
                        ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: In member function โ€˜void tcb_t::set_mr(word_t, word_t)โ€™:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:105:5: error: โ€˜ASSERTโ€™ was not declared in this scope
     ASSERT(index < IPC_NUM_MR);
     ^~~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:106:17: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
     get_utcb()->mr[index] = value;
                 ^~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h: At global scope:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: error: no declaration matches โ€˜word_t tcb_t::get_br(word_t)โ€™
 INLINE word_t tcb_t::get_br(word_t index)
               ^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:115:15: note: no functions named โ€˜word_t tcb_t::get_br(word_t)โ€™
In file included from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: โ€˜class tcb_tโ€™ defined here
 class tcb_t
       ^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: error: no declaration matches โ€˜void tcb_t::set_br(word_t, word_t)โ€™
 INLINE void tcb_t::set_br(word_t index, word_t value)
             ^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:126:13: note: no functions named โ€˜void tcb_t::set_br(word_t, word_t)โ€™
In file included from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: โ€˜class tcb_tโ€™ defined here
 class tcb_t
       ^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: error: no declaration matches โ€˜void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)โ€™
 INLINE void tcb_t::adjust_for_copy_area (tcb_t * dst,
             ^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:209:13: note: no functions named โ€˜void tcb_t::adjust_for_copy_area(tcb_t*, void**, void**)โ€™
In file included from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: โ€˜class tcb_tโ€™ defined here
 class tcb_t
       ^~~~~
In file included from /home/tyson/Orion/kernel/src/api/v4/tcb.h:707,
                 from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: error: no declaration matches โ€˜void tcb_t::release_copy_area()โ€™
 INLINE void tcb_t::release_copy_area (void)
             ^~~~~
/home/tyson/Orion/kernel/src/glue/v4-x86/tcb.h:219:13: note: no functions named โ€˜void tcb_t::release_copy_area()โ€™
In file included from /home/tyson/Orion/kernel/ubd/_1568046679_123.c:2:
/home/tyson/Orion/kernel/src/api/v4/tcb.h:60:7: note: โ€˜class tcb_tโ€™ defined here
 class tcb_t
       ^~~~~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c: In function โ€˜void make_offsets()โ€™:
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:51:51: error: โ€˜class tcb_tโ€™ has no member named โ€˜sched_stateโ€™; did you mean โ€˜saved_stateโ€™?
    O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
                                                   ^~~~~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:12:84: note: in definition of macro โ€˜Oโ€™
 #define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
                                                                                    ^~~~~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:51:36: note: in expansion of macro โ€˜offsetofโ€™
    O(OFS_TCB_SCHED_STATE_SCHEDULER,offsetof(tcb_t,sched_state.scheduler));
                                    ^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:54:34: error: โ€˜class utcb_tโ€™ has no member named โ€˜brโ€™
    O(OFS_UTCB_BR,offsetof(utcb_t,br));
                                  ^~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:12:84: note: in definition of macro โ€˜Oโ€™
 #define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
                                                                                    ^~~~~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:54:18: note: in expansion of macro โ€˜offsetofโ€™
    O(OFS_UTCB_BR,offsetof(utcb_t,br));
                  ^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:64:44: error: โ€˜class utcb_tโ€™ has no member named โ€˜xfer_timeoutโ€™
    O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
                                            ^~~~~~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:12:84: note: in definition of macro โ€˜Oโ€™
 #define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
                                                                                    ^~~~~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:64:28: note: in expansion of macro โ€˜offsetofโ€™
    O(OFS_UTCB_XFER_TIMEOUT,offsetof(utcb_t,xfer_timeout));
                            ^~~~~~~~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:69:34: error: โ€˜class utcb_tโ€™ has no member named โ€˜mrโ€™
    O(OFS_UTCB_MR,offsetof(utcb_t,mr));
                                  ^~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:12:84: note: in definition of macro โ€˜Oโ€™
 #define O(sym,value) __asm__ __volatile__ ("\n#define " MKSTR(sym) " %0 " : : "i" (value));
                                                                                    ^~~~~
/home/tyson/Orion/kernel/ubd/_1568046679_123.c:69:18: note: in expansion of macro โ€˜offsetofโ€™
    O(OFS_UTCB_MR,offsetof(utcb_t,mr));
                  ^~~~~~~~
make[1]: *** No rule to make target '/home/tyson/Orion/kernel/ubd/include/tcb_layout.h', needed by 'tcb_layout.h'. Stop.
make[1]: Leaving directory '/home/tyson/Orion/kernel/ubd'
make: *** [Makefile:38: all] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/kernel/ubd$ 

This breaks the build, on both x86-64, and PowerPC.

Linux ABI Compatibility?

Although we're a long way off having a buildable, usable system, it could be useful for us to implement compatibility with the Linux ABI (similar to FreeBSD/NetBSD, LynxOS, and Windows Subsystem for Linux), so that we can run PowerPC, and x86 Linux binaries, like the old kernel toolchain, to avoid having to maintain public VMs of ancient Linux versions, just so that we can rebuild our own kernel, and userland.

In the liblinux branch, I started reverse-engineering the system calls made by a few dynamically-linked binaries (git, ls, and gcc), to see what kind of functionality we'd need to provide, and dropped in a stub version of sys/vfs.h, with a shell for statfs().

Since we need to implement a VFS layer, anyway, it would make sense to have some level of UNIX/Linux/POSIX compatibility, for this project.

Reusing a VGA monitor, with the PS3?

[Not really a "bug, but it's something that consumers ask for, and I wanted for myself]

In order to make it easier to develop Orion, for, and on the PS3, I need an affordable way of being able to connect my existing VGA monitor to the PS3, without adding too much clutter, or having to buy yet another LCD.

The monitor itself is pretty old, seemingly only supports 576p@4:3, and is a generic product, produced by "Neijiang Direction Liquid Crystal Display Co. Ltd.", as the L-151/L5AK5 model, and defaults to an automatically-set colour temperature, which lends an orange hue, to graphics. (We can change this to 6500K, for nicer results).

POWER4 clean build regression?

[root@fedora28 kernel]# make BUILDDIR=/root/Orion/kernel/p2

Setting up build directory /root/Orion/kernel/p2 ...
done.

[root@fedora28 kernel]# cd p2/
[root@fedora28 p2]# ls
config  include  Makeconf.local  Makefile
[root@fedora28 p2]# make menuconfig
make[1]: Entering directory '/root/Orion/kernel/p2'
make[2]: Entering directory '/root/Orion/kernel/p2/config'
Compiling rules, please wait......(0.07 sec) Done.
Rewriting Makeconf.local ...
make[2]: Leaving directory '/root/Orion/kernel/p2/config'
make[1]: Leaving directory '/root/Orion/kernel/p2'
[root@fedora28 p2]# make
make[1]: Entering directory '/root/Orion/kernel/p2'
===> Building dependencies
===> src/glue/v4-powerpc64/asmsyms.cc
cd src/glue/v4-powerpc64/ &&  gcc  -nostdinc -I/root/Orion/kernel/p2/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/p2/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/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: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/arch/powerpc64/debug.h:36,
                 from /root/Orion/kernel/src/debug.h:75,
                 from /root/Orion/kernel/src/api/v4/tcb.h:36,
                 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:50: error: โ€˜timeout_tโ€™ has not been declared
 SYS_IPC (threadid_t to_tid, threadid_t from_tid, timeout_t timeout);
                                                  ^~~~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/syscalls.h:75:21: note: in definition of macro โ€˜SYS_IPCโ€™
  sys_ipc (to, from, timeout)
                     ^~~~~~~
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: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:37:
/root/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜bool tcb_t::is_local_cpu()โ€™:
/root/Orion/kernel/src/api/v4/tcb.h:739:13: error: โ€˜get_current_cpuโ€™ was not declared in this scope
     return (get_current_cpu() == get_cpu());
             ^~~~~~~~~~~~~~~
/root/Orion/kernel/src/api/v4/tcb.h:739:13: note: suggested alternative: โ€˜get_current_tcbโ€™
     return (get_current_cpu() == get_cpu());
             ^~~~~~~~~~~~~~~
             get_current_tcb
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)));
 ^~~~~~~~
/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)));
 ^~~~~~~~
===> src/generic/lib.cc
cd src/generic/ &&  gcc  -nostdinc -I/root/Orion/kernel/p2/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/p2/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/generic/lib.cc
/root/Orion/kernel/src/generic/lib.cc: In function โ€˜void* memset(void*, unsigned int, unsigned int)โ€™:
/root/Orion/kernel/src/generic/lib.cc:56:9: warning: conversion from โ€˜unsigned intโ€™ to โ€˜u8_tโ€™ {aka โ€˜unsigned charโ€™} may change value [-Wconversion]
  *s++ = c;
         ^
===> src/generic/kmemory.cc
cd src/generic/ &&  gcc  -nostdinc -I/root/Orion/kernel/p2/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/p2/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/generic/kmemory.cc
===> src/generic/traceids.cc
cd src/generic/ &&  gcc  -nostdinc -I/root/Orion/kernel/p2/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/p2/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/generic/traceids.cc
===> src/generic/tracebuffer.cc
cd src/generic/ &&  gcc  -nostdinc -I/root/Orion/kernel/p2/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/p2/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/generic/tracebuffer.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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/kernelinterface.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:86:
/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/generic/tracebuffer.cc:86:
/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: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: At global scope:
/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/tcb.h:44,
                 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/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/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: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/arch/powerpc64/debug.h:36,
                 from /root/Orion/kernel/src/debug.h:75,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:84:
/root/Orion/kernel/src/api/v4/syscalls.h: At global scope:
/root/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);
                                                  ^~~~~~~~~
/root/Orion/kernel/src/glue/v4-powerpc64/syscalls.h:75:21: note: in definition of macro โ€˜SYS_IPCโ€™
  sys_ipc (to, from, timeout)
                     ^~~~~~~
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: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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/api/v4/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/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/schedule.h:37,
                 from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/root/Orion/kernel/src/api/v4/tcb.h: In member function โ€˜bool tcb_t::is_local_cpu()โ€™:
/root/Orion/kernel/src/api/v4/tcb.h:739:13: error: โ€˜get_current_cpuโ€™ was not declared in this scope
     return (get_current_cpu() == get_cpu());
             ^~~~~~~~~~~~~~~
/root/Orion/kernel/src/api/v4/tcb.h:739:13: note: suggested alternative: โ€˜get_current_tcbโ€™
     return (get_current_cpu() == get_cpu());
             ^~~~~~~~~~~~~~~
             get_current_tcb
In file included from /root/Orion/kernel/src/generic/tracebuffer.cc:87:
/root/Orion/kernel/src/api/v4/schedule.h: At global scope:
/root/Orion/kernel/src/api/v4/schedule.h:198:10: error: extra qualification โ€˜scheduler_t::โ€™ on member โ€˜switch_highestโ€™ [-fpermissive]
     void scheduler_t::switch_highest(tcb_t *current, tcb_t * tcb);
          ^~~~~~~~~~~
make[1]: *** [/root/Orion/kernel/Mk/Makeconf:208: src/generic/tracebuffer.o] Error 1
make[1]: Leaving directory '/root/Orion/kernel/p2'
make: *** [Makefile:38: all] Error 2
[root@fedora28 p2]# 

PlayStation 3 drivers, and Cell enlightenments

At some stage, once we've got a big-endian PowerPC build working properly, we should start implementing drivers for the PS3 hypercalls, and hardware, and updating the POWER code, to recognise a Cell BBE.

Ideally, a lot of this stuff would be implemented in the main userland OS server, but to begin with, we can probably copy the approach taken with XICS (the IBM RTC), and leach off of the kernel's Open Firmware support.

FreeBSD has the repository at https://github.com/freebsd/freebsd/tree/master/sys/powerpc/ps3, which seems to be fairly clean code, and there's supposed to be details of a NetBSD port, at https://www.psdevwiki.com/ps3/NetBSD_on_PS3.

There's also Sony's official Linux drivers, but since they're GPL'd, we could probably only use them as either high-level documentation, or as a userland component, under a Linux compatibility shim.

Support for Apple Partition Maps

It may be useful to support Apple's legacy Macintosh partition map format, so that we can access Mac OS Classic/Mac OS X disks, and potentially support booting on Apple machines, in the future.

Support on NetBSD, FreeBSD, A/UX, Mac OS X, Mac OS 9 (and older), Linux, ProDOS, and several other OSes exists, the format is well-documented, and TiVo DVRs, and HDD-based iPods also used the APM partitioning scheme.

A typical, small Mac OS 9 disk tends to contain the following partitions:

tyson@tyson-Lenovo-ideapad-120S-14IAP:~$ file MacOS9.img 
MacOS9.img: Apple Driver Map, blocksize 512, blockcount 4194303, devtype 0, devid 0, driver count 2, contains[@0x200]: Apple Partition Map, map block count 7, start block 1, block count 63, name Apple, type Apple_partition_map, contains[@0x400]: Apple Partition Map, map block count 7, start block 64, block count 54, name Macintosh, type Apple_Driver_ATA, processor 68000, boot arguments ptDR, valid, allocated, in use, has boot info, readable, writable, pic boot code, real driver, chain driver, contains[@0x600]: Apple Partition Map, map block count 7, start block 118, block count 74, name Macintosh, type Apple_Driver_ATA, processor 68000, boot arguments wiki, valid, allocated, in use, has boot info, readable, writable, pic boot code, real driver, chain driver, contains[@0x800]: Apple Partition Map, map block count 7, start block 192, block count 512, name Macintosh, type Apple_Driver_IOKit, contains[@0xA00]: Apple Partition Map, map block count 7, start block 704, block count 512, name Patch Partition, type Apple_Patches, contains[@0xC00]: Apple Partition Map, map block count 7, start block 1216, block count 4193078, name untitled, type Apple_HFS, valid, allocated, in use, has boot info, readable, writable, pic boot code, real driver, chain driver, mount at startup, contains[@0xE00]: Apple Partition Map, map block count 7, start block 4194294, block count 10, name Extra, type Apple_Free
tyson@tyson-Lenovo-ideapad-120S-14IAP:~$ sudo partx -l  MacOS9.img
# 1:         1-       63 (       63 sectors,      0 MB)
# 2:        64-      117 (       54 sectors,      0 MB)
# 3:       118-      191 (       74 sectors,      0 MB)
# 4:       192-      703 (      512 sectors,      0 MB)
# 5:       704-     1215 (      512 sectors,      0 MB)
# 6:      1216-  4194293 (  4193078 sectors,   2146 MB)
# 7:   4194294-  4194303 (       10 sectors,      0 MB)

Support for UNIX Fast File System v2

As part of adding support for the PS3, it may be useful to add support for reading CellOS partitions, in UNIX-FFS2 format, as implemented by NetBSD, and FreeBSD.

According to the "file" utility, the partitions have the following configuration, on a PS3:
Part2_1.img: Unix Fast File system [v2] (big-endian) last mounted on /cell_mw_cfs, last written at Fri Aug 16 02:25:01 2019, clean flag 0, readonly flag 0, number of blocks 18947858, number of data blocks 18351596, number of cylinder groups 257, block size 16384, fragment size 4096, average file size 16384, average number of files in dir 64, pending blocks to free 0, pending inodes to free 0, system-wide uuid 0, minimum percentage of free blocks 8, TIME optimization

The wiki pages at https://www.psdevwiki.com/ps3/HDD_Encryption, and https://www.psdevwiki.com/ps3/Mounting_HDD_on_PC document partially, the encryption mechanism used by the CellOS (there's also tool, for Windows NT family OSes, that runs under WINE, that can be used to decrypt disk images of PS3 HDDs, that I've used, against my own PS3's HDD), for future reference.

It would also be necessary to implement support for the PS3 partition table format, if we wanted to be able to run Orion on a PS3 (which would belong to a separate issue).

Malloc implementation

As a prerequisite for implementing advanced functionality, in support of #18, #19, and #7, we need to implement malloc/realloc/free/calloc.

The plan, at present, is to use nedmalloc, which seems to have some circular dependencies on pthreads, but we could probably crib Enryo's liballoc implementation (which has fewer dependencies), to get things moving, if we're desperate.

Missing tracebuffer.h?

Using the Fedora PPC64BE machine, I can build libio just fine (the first library, that builds on both little/big endians), but building libl4 bails with:

[root@fedora28 lib]# make
make[1]: Entering directory '/root/Orion/user/lib/l4'
make[1]: *** No rule to make target 'l4/powerpc64/tracebuffer.h', needed by 'debug.o'.  Stop.
make[1]: Leaving directory '/root/Orion/user/lib/l4'
make: *** [../Mk/l4.subdir.mk:41: subdirs-all] Error 2
[root@fedora28 lib]# cd l4
[root@fedora28 l4]# ls
amd64.cc  amd64.o  debug.cc  ia32.cc  ia32-syscall-stubs.S  Makefile  Makefile.in  Notes_Endian.txt  powerpc64.cc  powerpc.cc
[root@fedora28 l4]# make
===> debug.cc
gcc -x c++ -I../../include -I../.. -I/usr/lib/gcc/ppc64-redhat-linux/8/include   -nostdinc -g -O2 -msoft-float -mminimal-toc   -fno-stack-protector -lssp -O2 -g -Wall -Wshadow   -fno-stack-protector  -Wconversion -fno-exceptions -c debug.cc -o debug.o
In file included from ../../include/l4/kip.h:35,
                 from debug.cc:31:
../../include/l4/types.h:63:29: fatal error: l4/powerpc64/tracebuffer.h: No such file or directory
 #define __L4_INC_ARCH(file) <l4/__L4_ARCH__/file>
                             ^
compilation terminated.
make: *** [../../Mk/l4.build.mk:58: debug.o] Error 1

Need to look into this, at some stage...

Nintendo Wii drivers, and enlightenments

As with the PS3, it may also be interesting to support the Nintendo Wii, as a cheap, 32-bit, big-endian PowerPC target, for build/boot, in the future, although it's not a very open platform, since documentation is scarce, outside of reverse-engineering at places like WiiBrew.

A European-market Wii console is available, within the project, along with an SD card, and a copy of The Legend of Zelda : Twilight Princess (RVL-RZDP-UKV), which may be useful, in order to use the "Twilight Hack", and install the HomeBrew Channel, in order to run custom code.

Judging by the Linux BSP, at https://github.com/torvalds/linux/blob/2f4c53349961c8ca480193e47da4d44fdb8335a8/arch/powerpc/platforms/embedded6xx/wii.c, along with the Wii, and GameCube pseudo-device trees, at Kernel.org, at least some level of Open Firmware discoverability is supported, and someone was working on a FreeBSD port, at https://wiki.freebsd.org/action/show/Wii?action=show&redirect=FreeBSD%2FWii.

Additionally, any effort towards a Wii port might also be usefully-extended, if anyone wanted to support related machines, like the GameCube, and Wii U.

POWER8/QEMU Enlightenments

As part of the work in #22, we should really add drivers, and enlightenments for POWER8 (virtual) machines, whilst we still have access to our MiniCloud account. Collect the hardware information in this issue.

Can't build with PowerPC 64-bit toolchain (LE), on POWER9

There are several issues, preventing the kernel from building (Assembler problems, undefined variables, pulled in from various headers, ), as well as the userland.

For the userland, we have issues with tracebuffer.h:
image

And, most of the libraries, and components bail with MSB header issues.

Problems with the x86 port being bitrotten

In predecessor projects (e.g. Enryo, and i9), we used older versions of the GCC toolchain/compilers, and GRUB, that made certain, fragile assumptions regarding data structure alignments, linkbase addresses, stack-smashing protection, and MultiBoot structures, that are gradually becoming false, as newer versions eclipse them.

For instance, upstream Pistachio have known about l4ka/pistachio#13, for a long time, but sadly, no fix is forthcoming. :(

The x86 code also uses a lot of AT&T Assembly, that CLang/LLVM refuses to compile, and assemble, so we end up being locked-in to a single compiler, and version.

Even though GCC is Open Source, and portable, there's no guarantee that older versions will always be buildable, with newer ones; and, although we could ship a VM/Docker image, with an old OS, and toolchain, we're responsible for its security, providing hosting of such huge files, and maintaining GPL compliance. That would also limit us to a single CPU architecture, which is a pain, since we also want to run on POWER/PPC/Cell, and probably also ARM/SPARC/RISC-V, in the future.

Annoyingly, over time, a lot of resources have just disappeared from the Web (especially the NICTA, and OKL4 stuff, and the L4Ka site, at KIT has a lot of broken links, now), so it's becoming harder to figure out the care, and feeding of such old code, in order to make a smooth transition to modern alternatives, which makes it imperative on Orion, to maintain copies of them, for future reference.

Support for Apple iBook G4

After recently acquiring an iBook G4, it may be interesting to support it as a build/runtime target, for Orion.

(It originally shipped with Mac OS X 10.4.11, which I've made a backup of, and I've managed to install Ubuntu 9.04, which is now officially unsupported, but at least allows for installing a GNU toolchain).

dmesg reports:

tyson@G4Buntu:~$ dmesg
[    0.000000] Using PowerMac machine description
[    0.000000] Total memory = 128MB; using 256kB for hash table (at c7fc0000)
[    0.000000] Linux version 2.6.28-6-powerpc (buildd@adare) (gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ) #20-Ubuntu Fri Apr 17 08:30:40 UTC 2009 (Ubuntu 2.6.28-6.20-powerpc)
[    0.000000] Found initrd at 0xc1a00000:0xc225d000
[    0.000000] Found UniNorth memory controller & host bridge @ 0xf8000000 revision: 0xd2
[    0.000000] Mapped at 0xff7c0000
[    0.000000] Found a Intrepid mac-io controller, rev: 0, mapped at 0xff740000
[    0.000000] Processor NAP mode on idle enabled.
[    0.000000] PowerMac motherboard: iBook G4
[    0.000000] via-pmu: Server Mode is disabled
[    0.000000] PMU driver v2 initialized for Core99, firmware: 0c
[    0.000000] console [udbg0] enabled
[    0.000000] Found UniNorth PCI host bridge at 0x00000000f0000000. Firmware bus number: 0->0
[    0.000000] PCI host bridge /pci@f0000000  ranges:
[    0.000000]  MEM 0x00000000f1000000..0x00000000f1ffffff -> 0x00000000f1000000 
[    0.000000]   IO 0x00000000f0000000..0x00000000f07fffff -> 0x0000000000000000
[    0.000000]  MEM 0x0000000090000000..0x000000009fffffff -> 0x0000000090000000 
[    0.000000] Found UniNorth PCI host bridge at 0x00000000f2000000. Firmware bus number: 0->0
[    0.000000] PCI host bridge /pci@f2000000 (primary) ranges:
[    0.000000]  MEM 0x00000000f3000000..0x00000000f3ffffff -> 0x00000000f3000000 
[    0.000000]   IO 0x00000000f2000000..0x00000000f27fffff -> 0x0000000000000000
[    0.000000]  MEM 0x0000000080000000..0x000000008fffffff -> 0x0000000080000000 
[    0.000000] Found UniNorth PCI host bridge at 0x00000000f4000000. Firmware bus number: 0->0
[    0.000000] PCI host bridge /pci@f4000000  ranges:
[    0.000000]  MEM 0x00000000f5000000..0x00000000f5ffffff -> 0x00000000f5000000 
[    0.000000]   IO 0x00000000f4000000..0x00000000f47fffff -> 0x0000000000000000
[    0.000000] nvram: Checking bank 0...
[    0.000000] nvram: gen0=559, gen1=558
[    0.000000] nvram: Active bank is: 0
[    0.000000] nvram: OF partition at 0x410
[    0.000000] nvram: XP partition at 0x1020
[    0.000000] nvram: NR partition at 0x1120
[    0.000000] Top of RAM: 0x8000000, Total RAM: 0x8000000
[    0.000000] Memory hole size: 0MB
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000000 -> 0x00008000
[    0.000000]   Normal   0x00008000 -> 0x00008000
[    0.000000]   HighMem  0x00008000 -> 0x00008000
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[1] active PFN ranges
[    0.000000]     0: 0x00000000 -> 0x00008000
[    0.000000] On node 0 totalpages: 32768
[    0.000000] free_area_init_node: node 0, pgdat c045c5fc, node_mem_map c04d0000
[    0.000000]   DMA zone: 256 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 32512 pages, LIFO batch:7
[    0.000000]   Normal zone: 0 pages used for memmap
[    0.000000]   HighMem zone: 0 pages used for memmap
[    0.000000]   Movable zone: 0 pages used for memmap
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: root=/dev/hda3 ro quiet splash video=ofonly 
[    0.000000] mpic: Setting up MPIC " MPIC 1   " version 1.2 at 80040000, max 4 CPUs
[    0.000000] mpic: ISU size: 64, shift: 6, mask: 3f
[    0.000000] mpic: Initializing for 64 sources
[    0.000000] PID hash table entries: 512 (order: 9, 2048 bytes)
[    0.000000] GMT Delta read from XPRAM: 0 minutes, DST: off
[    0.000000] time_init: decrementer frequency = 18.432000 MHz
[    0.000000] time_init: processor frequency   = 799.999998 MHz
[    0.000000] clocksource: timebase mult[d9038e4] shift[22] registered
[    0.000000] clockevent: decrementer mult[4b7] shift[16] cpu[0]
[    0.000109] Console: colour dummy device 80x25
[    0.000119] console handover: boot [udbg0] -> real [tty0]
[    0.000281] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000480] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.009960] High memory: 0k
[    0.009971] Memory: 115964k/131072k available (4296k kernel code, 14956k reserved, 176k data, 360k bss, 212k init)
[    0.010065] SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.010084] Calibrating delay loop... 36.73 BogoMIPS (lpj=73472)
[    0.080138] Security Framework initialized
[    0.080165] SELinux:  Disabled at boot.
[    0.080244] AppArmor: AppArmor initialized
[    0.080264] Mount-cache hash table entries: 512
[    0.080773] device-tree: Duplicate name in /cpus/PowerPC,G4@0, renamed to "l2-cache#1"
[    0.083910] Initializing cgroup subsys ns
[    0.083923] Initializing cgroup subsys freezer
[    0.084635] net_namespace: 752 bytes
[    0.084754] regulator: core version 0.5
[    0.084869] NET: Registered protocol family 16
[    0.085482] KeyWest i2c @0xf8001003 irq 42 /uni-n@f8000000/i2c@f8001000
[    0.085495]  channel 0 bus <multibus>
[    0.085500]  channel 1 bus <multibus>
[    0.085571] KeyWest i2c @0x80018000 irq 26 /pci@f2000000/mac-io@17/i2c@18000
[    0.085579]  channel 0 bus <multibus>
[    0.085602] PMU i2c /pci@f2000000/mac-io@17/via-pmu@16000/pmu-i2c
[    0.085609]  channel 1 bus <multibus>
[    0.085615]  channel 2 bus <multibus>
[    0.086326] PCI: Probing PCI hardware
[    0.086528] pci 0000:00:10.0: reg 10 32bit mmio: [0x98000000-0x9fffffff]
[    0.086541] pci 0000:00:10.0: reg 14 io port: [0x400-0x4ff]
[    0.086553] pci 0000:00:10.0: reg 18 32bit mmio: [0x90000000-0x9000ffff]
[    0.086575] pci 0000:00:10.0: reg 30 32bit mmio: [0x90020000-0x9003ffff]
[    0.086593] pci 0000:00:10.0: supports D1 D2
[    0.086965] pci 0001:10:17.0: reg 10 32bit mmio: [0x80000000-0x8007ffff]
[    0.087025] pci 0001:10:18.0: reg 10 32bit mmio: [0x000000-0x000fff]
[    0.087085] pci 0001:10:19.0: reg 10 32bit mmio: [0x000000-0x000fff]
[    0.087146] pci 0001:10:1a.0: reg 10 32bit mmio: [0x80083000-0x80083fff]
[    0.087221] pci 0001:10:1b.0: reg 10 32bit mmio: [0x80082000-0x80082fff]
[    0.087262] pci 0001:10:1b.0: supports D1 D2
[    0.087269] pci 0001:10:1b.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.087280] pci 0001:10:1b.0: PME# disabled
[    0.087321] pci 0001:10:1b.1: reg 10 32bit mmio: [0x80081000-0x80081fff]
[    0.087361] pci 0001:10:1b.1: supports D1 D2
[    0.087368] pci 0001:10:1b.1: PME# supported from D0 D1 D2 D3hot D3cold
[    0.087376] pci 0001:10:1b.1: PME# disabled
[    0.087417] pci 0001:10:1b.2: reg 10 32bit mmio: [0x80080000-0x800800ff]
[    0.087457] pci 0001:10:1b.2: supports D1 D2
[    0.087464] pci 0001:10:1b.2: PME# supported from D0 D1 D2 D3hot D3cold
[    0.087472] pci 0001:10:1b.2: PME# disabled
[    0.088297] pci 0002:20:0d.0: reg 10 32bit mmio: [0xf5004000-0xf5007fff]
[    0.088356] pci 0002:20:0e.0: reg 10 32bit mmio: [0xf5000000-0xf5000fff]
[    0.088392] pci 0002:20:0e.0: supports D1 D2
[    0.088398] pci 0002:20:0e.0: PME# supported from D0 D1 D2 D3hot
[    0.088407] pci 0002:20:0e.0: PME# disabled
[    0.088433] pci 0002:20:0f.0: reg 10 32bit mmio: [0xf5200000-0xf53fffff]
[    0.088461] pci 0002:20:0f.0: reg 30 32bit mmio: [0xf5100000-0xf51fffff]
[    0.088953] bus: 00 index 0 io port: [0x802000-0x1001fff]
[    0.088961] bus: 00 index 1 mmio: [0xf1000000-0xf1ffffff]
[    0.088969] bus: 00 index 2 mmio: [0x90000000-0x9fffffff]
[    0.088976] bus: 10 index 0 io port: [0x00-0x7fffff]
[    0.088983] bus: 10 index 1 mmio: [0xf3000000-0xf3ffffff]
[    0.088990] bus: 10 index 2 mmio: [0x80000000-0x8fffffff]
[    0.088997] bus: 20 index 0 io port: [0xff7fe000-0xffffdfff]
[    0.089005] bus: 20 index 1 mmio: [0xf5000000-0xf5ffffff]
[    0.093925] usbcore: registered new interface driver usbfs
[    0.093978] usbcore: registered new interface driver hub
[    0.094065] usbcore: registered new device driver usb
[    0.104232] NET: Registered protocol family 8
[    0.104240] NET: Registered protocol family 20
[    0.104420] AppArmor: AppArmor Filesystem Enabled
[    0.104911] NET: Registered protocol family 2
[    0.108241] Switched to high resolution mode on CPU 0
[    0.140301] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.140472] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    0.140558] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.140604] TCP: Hash tables configured (established 4096 bind 4096)
[    0.140611] TCP reno registered
[    0.152331] NET: Registered protocol family 1
[    0.152707] checking if image is initramfs... it is
[    2.036674] Freeing initrd memory: 8564k freed
[    2.038411] Thermal assist unit not available
[    2.038742] Registering PowerMac CPU frequency driver
[    2.038749] Low: 606 Mhz, High: 798 Mhz, Boot: 606 Mhz
[    2.060511] audit: initializing netlink socket (disabled)
[    2.060549] type=2000 audit(1572705505.060:1): initialized
[    2.076188] VFS: Disk quotas dquot_6.5.1
[    2.076274] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    2.076491] fuse init (API version 7.10)
[    2.076712] msgmni has been set to 243
[    2.077082] alg: No test for stdrng (krng)
[    2.077115] io scheduler noop registered
[    2.077120] io scheduler anticipatory registered
[    2.077125] io scheduler deadline registered
[    2.077168] io scheduler cfq registered (default)
[    2.077474] Using unsupported 1024x768 ATY,Via_A at 9c008000, depth=8, pitch=1024
[    2.093254] Console: switching to colour frame buffer device 128x48
[    2.108602] fb0: Open Firmware frame buffer device on /pci@f0000000/ATY,ViaParent@10/ATY,Via_A@0
[    2.108664] Using unsupported 640x480 ATY,Via_B at 99008000, depth=8, pitch=768
[    2.108798] fb1: Open Firmware frame buffer device on /pci@f0000000/ATY,ViaParent@10/ATY,Via_B@1
[    2.111117] Generic non-volatile memory driver v1.1
[    2.112724] brd: module loaded
[    2.112839] Fixed MDIO Bus: probed
[    2.112925] MacIO PCI driver attached to Intrepid chipset
[    2.114088] input: Macintosh mouse button emulation as /devices/virtual/input/input0
[    2.114396] Uniform Multi-Platform E-IDE driver
[    2.114521] ide-pmac 0002:20:0d.0: enabling device (0000 -> 0002)
[    2.114738] adb: starting probe task...
[    2.360740] adb devices: [2]: 2 c4 [3]: 3 1 [7]: 7 1f
[    2.366673] ADB keyboard at 2, handler 1
[    2.366688] Detected ADB keyboard, type ISO, swapping keys.
[    2.366846] input: ADB keyboard as /devices/virtual/input/input1
[    2.376314] input: ADB Powerbook buttons as /devices/virtual/input/input2
[    2.403101] ADB mouse at 3, handler set to 4 (trackpad)
[    2.461546] input: ADB mouse as /devices/virtual/input/input3
[    2.461554] adb: finished probe task...
[    3.132225] ide-pmac: Found Apple UniNorth ATA-6 controller (PCI), bus ID 3, irq 39
[    3.132255] Probing IDE interface ide0...
[    3.420403] hda: FUJITSU MHT2030AT, ATA DISK drive
[    4.092286] hda: host max PIO4 wanted PIO255(auto-tune) selected PIO4
[    4.093636] hda: UDMA/100 mode selected
[    4.094898] ide0 at 0xc9022000-0xc9022070,0xc9022160 on irq 39
[    5.112225] ide-pmac: Found Apple KeyLargo ATA-3 controller (macio), bus ID 0, irq 24
[    5.112248] Probing IDE interface ide1...
[    5.512410] hdc: MATSHITACD-RW CW-8123, ATAPI CD/DVD-ROM drive
[    5.848290] hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
[    5.848467] hdc: MWDMA2 mode selected
[    5.848662] ide1 at 0xc9026000-0xc9026070,0xc9026160 on irq 24
[    5.848901] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.848955] ehci_hcd 0001:10:1b.2: enabling device (0004 -> 0006)
[    5.848976] ehci_hcd 0001:10:1b.2: EHCI Host Controller
[    5.849134] ehci_hcd 0001:10:1b.2: new USB bus registered, assigned bus number 1
[    5.872263] ehci_hcd 0001:10:1b.2: irq 63, io mem 0x80080000
[    5.884222] ehci_hcd 0001:10:1b.2: USB 2.0 started, EHCI 1.00
[    5.884424] usb usb1: configuration #1 chosen from 1 choice
[    5.884494] hub 1-0:1.0: USB hub found
[    5.884518] hub 1-0:1.0: 5 ports detected
[    5.884807] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    5.884856] Apple USB OHCI 0001:10:18.0 disabled by firmware
[    5.884881] Apple USB OHCI 0001:10:19.0 disabled by firmware
[    5.884903] ohci_hcd 0001:10:1a.0: enabling device (0000 -> 0002)
[    5.884925] ohci_hcd 0001:10:1a.0: OHCI Host Controller
[    5.885062] ohci_hcd 0001:10:1a.0: new USB bus registered, assigned bus number 2
[    5.885101] ohci_hcd 0001:10:1a.0: irq 29, io mem 0x80083000
[    5.959911] usb usb2: configuration #1 chosen from 1 choice
[    5.959974] hub 2-0:1.0: USB hub found
[    5.960006] hub 2-0:1.0: 2 ports detected
[    5.960239] ohci_hcd 0001:10:1b.0: enabling device (0000 -> 0002)
[    5.960259] ohci_hcd 0001:10:1b.0: OHCI Host Controller
[    5.960392] ohci_hcd 0001:10:1b.0: new USB bus registered, assigned bus number 3
[    5.960419] ohci_hcd 0001:10:1b.0: irq 63, io mem 0x80082000
[    6.035921] usb usb3: configuration #1 chosen from 1 choice
[    6.035986] hub 3-0:1.0: USB hub found
[    6.036008] hub 3-0:1.0: 3 ports detected
[    6.036202] ohci_hcd 0001:10:1b.1: enabling device (0000 -> 0002)
[    6.036240] ohci_hcd 0001:10:1b.1: OHCI Host Controller
[    6.036383] ohci_hcd 0001:10:1b.1: new USB bus registered, assigned bus number 4
[    6.036411] ohci_hcd 0001:10:1b.1: irq 63, io mem 0x80081000
[    6.111897] usb usb4: configuration #1 chosen from 1 choice
[    6.111960] hub 4-0:1.0: USB hub found
[    6.111985] hub 4-0:1.0: 2 ports detected
[    6.112250] uhci_hcd: USB Universal Host Controller Interface driver
[    6.112437] usbcore: registered new interface driver libusual
[    6.136301] mice: PS/2 mouse device common for all mice
[    6.136469] platform ppc-rtc.0: rtc core: registered ppc_md as rtc0
[    6.136546] PowerMac i2c bus pmu 2 registered
[    6.136585] PowerMac i2c bus pmu 1 registered
[    6.136623] PowerMac i2c bus mac-io 0 registered
[    6.136662] PowerMac i2c bus uni-n 1 registered
[    6.136720] PowerMac i2c bus uni-n 0 registered
[    6.137049] TCP cubic registered
[    6.137297] registered taskstats version 1
[    6.137650] input: PMU as /devices/virtual/input/input4
[    6.148282] Registered led device: pmu-front-led
[    6.148292] /build/buildd/linux-ports-2.6.28/drivers/rtc/hctosys.c: unable to open rtc device (y)
[    6.148319] Freeing unused kernel memory: 212k init
[    6.864785] ide-cd driver 5.00
[    6.870625] ide-cd: hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache
[    6.870649] Uniform CD-ROM driver Revision: 3.20
[    6.959436] ide-gd driver 1.18
[    6.959502] hda: max request size: 512KiB
[    7.021670] sungem.c:v0.98 8/24/03 David S. Miller ([email protected])
[    7.041424] hda: 58605120 sectors (30005 MB) w/2048KiB Cache, CHS=16383/255/63
[    7.043131] hda: cache flushes supported
[    7.043269]  hda: [mac] hda1 hda2 hda3 hda4
[    7.088621] PHY ID: 4061e4, addr: 0
[    7.089461] eth0: Sun GEM (PCI) 10/100/1000BaseT Ethernet 00:0a:95:b1:0d:62
[    7.089469] eth0: Found BCM5221 PHY
[    7.090302] ohci1394 0002:20:0e.0: enabling device (0000 -> 0002)
[    7.141478] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[40]  MMIO=[f5000000-f50007ff]  Max Packet=[2048]  IR/IT contexts=[8/8]
[    8.426209] ieee1394: Host added: ID:BUS[0-00:1023]  GUID[000a95fffeb10d62]
[    8.673325] PM: Starting manual resume from disk
[    8.793783] EXT4-fs: barriers enabled
[    8.814107] kjournald2 starting.  Commit interval 5 seconds
[    8.814145] EXT4-fs: delayed allocation enabled
[    8.814150] EXT4-fs: file extents enabled
[    8.825996] EXT4-fs: mballoc enabled
[    8.826016] EXT4-fs: mounted filesystem with ordered data mode.
[    9.488396] eth0: Link is up at 100 Mbps, full-duplex.
[   11.104541] udev: starting version 141
[   11.462846] pmac_zilog: 0.6 (Benjamin Herrenschmidt <[email protected]>)
[   11.463188] ttyPZ0 at MMIO 0x80013020 (irq = 22) is a Z85c30 ESCC - Serial port
[   11.463495] ttyPZ1 at MMIO 0x80013000 (irq = 23) is a Z85c30 ESCC - Serial port
[   11.488654] Linux agpgart interface v0.103
[   11.496719] agpgart-uninorth 0000:00:0b.0: Apple UniNorth 2 chipset
[   11.496898] agpgart-uninorth 0000:00:0b.0: configuring for size idx: 8
[   11.497185] agpgart-uninorth 0000:00:0b.0: AGP aperture is 32M @ 0x0
[   13.181079] apm_emu: PMU APM Emulation initialized.
[   13.225186] loop: module loaded
[   13.465566] SCSI subsystem initialized
[   13.962781] input: PowerMac Beep as /devices/pci0001:10/0001:10:17.0/input/input5
[   14.039749] adt746x: version 1 (supported)
[   14.039761] adt746x: Thermostat bus: 1, address: 0x2e, limit_adjust: 0, fan_speed: -1
[   14.039768] sensor 0: PWR/MEMORY BOTTOMSIDE
[   14.039773] sensor 1: CPU BOTTOMSIDE
[   14.039778] sensor 2: GPU ON DIE
[   14.040376] adt746x: ADT7467 initializing
[   14.042800] adt746x: Lowering max temperatures from 69, 92, 101 to 70, 50, 70
[   14.534569] Adding 364040k swap on /dev/hda4.  Priority:-1 extents:1 across:364040k
[   14.873366] EXT4 FS on hda3, internal journal on hda3:8
[   16.697074] type=1505 audit(1572705519.696:2): operation="profile_load" name="/sbin/dhclient-script" name2="default" pid=1555
[   16.697654] type=1505 audit(1572705519.696:3): operation="profile_load" name="/sbin/dhclient3" name2="default" pid=1555
[   16.697901] type=1505 audit(1572705519.696:4): operation="profile_load" name="/usr/lib/NetworkManager/nm-dhcp-client.action" name2="default" pid=1555
[   16.698103] type=1505 audit(1572705519.696:5): operation="profile_load" name="/usr/lib/connman/scripts/dhclient-script" name2="default" pid=1555
[   16.872396] type=1505 audit(1572705519.872:6): operation="profile_load" name="/usr/sbin/tcpdump" name2="default" pid=1560
[   17.805959] eth0: Link is up at 100 Mbps, full-duplex.
[   17.805973] eth0: Pause is disabled
[   19.060463] NET: Registered protocol family 17
[   21.133033] NET: Registered protocol family 10
[   21.133338] lo: Disabled Privacy Extensions
[   22.879431] input: Mouseemu virtual keyboard as /devices/virtual/input/input6
[   22.910320] input: Mouseemu virtual mouse as /devices/virtual/input/input7
[   31.796379] eth0: no IPv6 routers present
[   85.957761] ondemand governor failed, too long transition latency of HW, fallback to performance governor

/proc/cpuinfo reports:

tyson@G4Buntu:~$ cat /proc/cpuinfo 
processor	: 0
cpu		: 7455, altivec supported
clock		: 798.720000MHz
revision	: 3.3 (pvr 8001 0303)
bogomips	: 48.41
timebase	: 18432000
platform	: PowerMac
model		: PowerBook6,3
machine		: PowerBook6,3
motherboard	: PowerBook6,3 MacRISC3 Power Macintosh
detected as	: 287 (iBook G4)
pmac flags	: 0000001a
L2 cache	: 256K unified
pmac-generation	: NewWorld
Memory		: 128 MB

Problem with PPC Assembly

1: cmp 0, r10, r11

/WhirlPool/pSeries41/Orion/kernel/src/platform/ofpower4/head.S: Assembler messages:
/WhirlPool/pSeries41/Orion/kernel/src/platform/ofpower4/head.S:68: Error: operand out of range (10 is not between 0 and 1)
/WhirlPool/pSeries41/Orion/kernel/src/platform/ofpower4/head.S:68: Error: missing operand

GCCisms, and AT&T Assembly choke CLang

As an experiment, I tried to build the Orion userland with CLang/LLVM 8.0, for x86-64, and received the following output:

tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user$ CC=clang make
make[1]: Entering directory '/home/tyson/Orion/user/lib'
make[2]: Entering directory '/home/tyson/Orion/user/lib/l4'
===> Making dependencies in .
clang: warning: -lssp: 'linker' input unused [-Wunused-command-line-argument]
===> debug.cc
clang -x c++ -I../../include -I../.. -I/usr/bin/../lib/gcc/x86_64-linux-gnu/8/include   -fno-stack-protector -nostdinc -g -O2 -m64 -mno-red-zone   -fno-stack-protector -lssp -O2 -g -Wall -Wshadow   -fno-stack-protector  -Wno-conversion -fno-exceptions -c debug.cc -o debug.o
clang: warning: -lssp: 'linker' input unused [-Wunused-command-line-argument]
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:35:
../../include/l4/types.h:379:27: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw + r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:384:27: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw + r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:389:27: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw + r.raw };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:394:27: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw - r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:399:27: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw - r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:404:27: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : l.raw - r.raw };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:410:27: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : c.raw + r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:415:27: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    return (L4_Clock_t) { raw : c.raw - r };
                          ^~~~~
                          .raw = 
../../include/l4/types.h:521:13: warning: use of GNU old-style field designator extension [-Wgnu-designator]
            return L4_Never;
                   ^
../../include/l4/types.h:493:33: note: expanded from macro 'L4_Never'
#define L4_Never        ((L4_Time_t) { raw : 0UL })
                                       ^
../../include/l4/types.h:532:13: warning: use of GNU old-style field designator extension [-Wgnu-designator]
            return L4_Never;
                   ^
../../include/l4/types.h:493:33: note: expanded from macro 'L4_Never'
#define L4_Never        ((L4_Time_t) { raw : 0UL })
                                       ^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
In file included from ../../include/l4/amd64/syscalls.h:39:
../../include/l4/message.h:982:1: warning: all paths through this function will call itself [-Winfinite-recursion]
{
^
In file included from debug.cc:31:
In file included from ../../include/l4/kip.h:36:
../../include/l4/amd64/syscalls.h:168:19: error: unsupported inline asm: input with type 'L4_ThreadId_t' matching output with type 'L4_Word_t'
      (aka 'unsigned long')
        [spacespec]     "0" (SpaceSpecifier),   /* %5  RAX <- R8 */
                             ^~~~~~~~~~~~~~
../../include/l4/amd64/syscalls.h:220:15: error: unsupported inline asm: input with type 'L4_ThreadId_t' matching output with type 'L4_Word_t'
      (aka 'unsigned long')
        [dest]          "0" (dest)              /* %1  RDI */
                             ^~~~
../../include/l4/amd64/syscalls.h:261:15: error: unsupported inline asm: input with type 'L4_ThreadId_t' matching output with type 'L4_Word_t'
      (aka 'unsigned long')
        [dest]          "4" (dest)              /* %9  RDI */
                             ^~~~
../../include/l4/amd64/syscalls.h:315:15: error: unsupported inline asm: input with type 'L4_ThreadId_t' matching output with type 'L4_Word_t'
      (aka 'unsigned long')
        [from]          "3" (FromSpecifier),    /* %7  RDX */
                             ^~~~~~~~~~~~~
../../include/l4/amd64/syscalls.h:373:15: error: unsupported inline asm: input with type 'L4_ThreadId_t' matching output with type 'L4_Word_t'
      (aka 'unsigned long')
        [from]          "3" (FromSpecifier),    /* %7  RDX */
                             ^~~~~~~~~~~~~
../../include/l4/amd64/syscalls.h:463:18: error: unsupported inline asm: input with type 'L4_Fpage_t' matching output with type 'L4_Word_t'
      (aka 'unsigned long')
        [utcbarea]      "0" (UtcbArea),                 /* %5  RAX -> R8 */
                             ^~~~~~~~
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:260:49: warning: use of GNU old-style field designator extension [-Wgnu-designator]
        return L4_ExchangeRegisters (t, 0, 0, 0, 0, 0, L4_nilthread,
                                                       ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:285:49: warning: use of GNU old-style field designator extension [-Wgnu-designator]
        return L4_ExchangeRegisters (t, 0, 0, 0, 0, 0, L4_nilthread,
                                                       ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:304:59: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    (void) L4_ExchangeRegisters (t, (1 << 9), 0, 0, 0, 0, L4_nilthread,
                                                          ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:316:64: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    (void) L4_ExchangeRegisters (t, (1 << 6), 0, 0, 0, handle, L4_nilthread,
                                                               ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:338:59: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    (void) L4_ExchangeRegisters (t, (1 << 9), 0, 0, 0, 0, L4_nilthread,
                                                          ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:372:63: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    (void) L4_ExchangeRegisters (t, (1 << 8) + 6, 0, 0, 0, 0, L4_nilthread,
                                                              ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:383:6: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                                 L4_nilthread,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:396:6: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                                 L4_nilthread,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:422:6: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, &dummy, &dummy,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:438:6: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, sp, ip, flags,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:459:6: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, &dummy, &dummy,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:476:6: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, sp, ip, flags,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:499:6: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, &dummy, &dummy,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:517:6: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, sp, ip, flags,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:540:6: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, &dummy, &dummy,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:556:6: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                                 L4_nilthread, &state.raw, sp, ip, flags,
                                 ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:582:9: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                             L4_nilthread, HandlerThread, (void *) -1);
                             ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:588:9: warning: use of GNU old-style field designator extension [-Wgnu-designator]
                             L4_nilthread, InterruptThread, (void *) -1);
                             ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:595:76: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    L4_ExchangeRegisters (dest, L4_EXREGS_CTRLXFER_CONF_FLAG, 0, 0 , 0, 0, L4_nilthread,
                                                                           ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:604:76: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    L4_ExchangeRegisters (dest, L4_EXREGS_CTRLXFER_READ_FLAG, 0, 0 , 0, 0, L4_nilthread,
                                                                           ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
In file included from debug.cc:32:
In file included from ../../include/l4/tracebuffer.h:37:
../../include/l4/thread.h:613:77: warning: use of GNU old-style field designator extension [-Wgnu-designator]
    L4_ExchangeRegisters (dest, L4_EXREGS_CTRLXFER_WRITE_FLAG, 0, 0 , 0, 0, L4_nilthread,
                                                                            ^
../../include/l4/types.h:299:46: note: expanded from macro 'L4_nilthread'
#define L4_nilthread      ((L4_ThreadId_t) { raw : 0UL})
                                             ^
32 warnings and 6 errors generated.
make[2]: *** [../../Mk/l4.build.mk:58: debug.o] Error 1
make[2]: Leaving directory '/home/tyson/Orion/user/lib/l4'
make[1]: *** [../Mk/l4.subdir.mk:41: subdirs-all] Error 2
make[1]: Leaving directory '/home/tyson/Orion/user/lib'
make: *** [Mk/l4.subdir.mk:41: subdirs-all] Error 2
tyson@tyson-Lenovo-ideapad-120S-14IAP:~/Orion/user$ 

This probably isn't essential to fix, today, but it's something to be aware of, if I decide to invest more time into adding CLang support to the codebase.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.