mystikos
mystikos copied to clipboard
Compilation support using clang
Mystikos does not builds successfully when compiled using Clang 8.0.
Please provide clang support.
Please provide build errors.
/openenclave/include/openenclave/3rdparty -include /home/ragava/Desktop/labs/mystikos/include/myst/deprecations.h -o /home/ragava/Desktop/labs/mystikos/build/obj/utils/round.o round.c error: unknown warning option '-Wstack-usage=512'; did you mean '-Wtype-safety'? [-Werror,-Wunknown-warning-option] mkdir -p /home/ragava/Desktop/labs/mystikos/build/obj/utils clang -c -Wall -Werror -g -fPIC -O3 -nostdinc -ffunction-sections -fdata-sections -Wno-conversion -Wno-parentheses -Wstack-usage=512 -O3 -I/home/ragava/Desktop/labs/mystikos/include -I/home/ragava/Desktop/labs/mystikos/build/musl/include -I/home/ragava/Desktop/labs/mystikos/build/openenclave/include/openenclave/3rdparty -include /home/ragava/Desktop/labs/mystikos/include/myst/deprecations.h -o /home/ragava/Desktop/labs/mystikos/build/obj/utils/verityblkdev.o verityblkdev.c /home/ragava/Desktop/labs/mystikos/rules.mak:44: recipe for target '/home/ragava/Desktop/labs/mystikos/build/obj/utils/lsr.o' failed make[2]: *** [/home/ragava/Desktop/labs/mystikos/build/obj/utils/lsr.o] Error 1 make[2]: *** Waiting for unfinished jobs.... error: unknown warning option '-Wstack-usage=512'; did you mean '-Wtype-safety'? [-Werror,-Wunknown-warning-option] /home/ragava/Desktop/labs/mystikos/rules.mak:44: recipe for target '/home/ragava/Desktop/labs/mystikos/build/obj/utils/eraise.o' failed make[2]: *** [/home/ragava/Desktop/labs/mystikos/build/obj/utils/eraise.o] Error 1 error: unknown warning option '-Wstack-usage=512'; did you mean '-Wtype-safety'? [-Werror,-Wunknown-warning-option] error: unknown warning option '-Wstack-usage=512'; did you mean '-Wtype-safety'? [-Werror,-Wunknown-warning-option] /home/ragava/Desktop/labs/mystikos/rules.mak:44: recipe for target '/home/ragava/Desktop/labs/mystikos/build/obj/utils/trace.o' failed make[2]: *** [/home/ragava/Desktop/labs/mystikos/build/obj/utils/trace.o] Error 1 /home/ragava/Desktop/labs/mystikos/rules.mak:44: recipe for target '/home/ragava/Desktop/labs/mystikos/build/obj/utils/luksblkdev.o' failed make[2]: *** [/home/ragava/Desktop/labs/mystikos/build/obj/utils/luksblkdev.o] Error 1 error: unknown warning option '-Wstack-usage=512'; did you mean '-Wtype-safety'? [-Werror,-Wunknown-warning-option] /home/ragava/Desktop/labs/mystikos/rules.mak:44: recipe for target '/home/ragava/Desktop/labs/mystikos/build/obj/utils/round.o' failed make[2]: *** [/home/ragava/Desktop/labs/mystikos/build/obj/utils/round.o] Error 1 error: unknown warning option '-Wstack-usage=512'; did you mean '-Wtype-safety'? [-Werror,-Wunknown-warning-option] /home/ragava/Desktop/labs/mystikos/rules.mak:44: recipe for target '/home/ragava/Desktop/labs/mystikos/build/obj/utils/verityblkdev.o' failed make[2]: *** [/home/ragava/Desktop/labs/mystikos/build/obj/utils/verityblkdev.o] Error 1
There are many compilation errors in most of the projects. Is mystikos offically compatible with Clang ?
export CC=clang CXX=clang++ is not honored by makefile chain. It seems like gcc is picked as default for individual projects.
There is also hard-coded package config for openenclave-gcc defs.mak.
Please note this ask is a dependency for fuzzing mystikos. Enclave fuzzer is based on Libfuzzer which needs clang support.
I think we can opt out -Wstack-usage when compiling with clang. Seems this is a known issue. https://lists.llvm.org/pipermail/llvm-dev/2021-May/150417.html
I think mystikos/kernel does respect CC
, but we'd have to modify mystikos/third_party/musl/crt/Makefile
to be able to build CRT with $CC.
The remaining hardcoded gcc
s are in tests/solutions which should not affect your fuzzing work.