You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
As an experiment, I tried to build the Orion userland with CLang/LLVM 8.0, for x86-64, and received the following output:
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.
The text was updated successfully, but these errors were encountered: