diff --git a/L2E_amd64_qemu.config b/L2E_amd64_qemu.config deleted file mode 100644 index 4c01760b..00000000 --- a/L2E_amd64_qemu.config +++ /dev/null @@ -1,332 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Unikraft/0.14.0~70bc0af0 Configuration -# -CONFIG_UK_FULLVERSION="0.14.0~70bc0af0" -CONFIG_UK_CODENAME="Prometheus" -CONFIG_UK_ARCH="x86_64" -CONFIG_UK_DEFNAME="L2E" - -# -# Architecture Selection -# -CONFIG_ARCH_X86_64=y -# CONFIG_ARCH_ARM_64 is not set -# CONFIG_ARCH_ARM_32 is not set -# CONFIG_MARCH_X86_64_NATIVE is not set -CONFIG_MARCH_X86_64_GENERIC=y -# CONFIG_MARCH_X86_64_NOCONA is not set -# CONFIG_MARCH_X86_64_CORE2 is not set -# CONFIG_MARCH_X86_64_COREI7 is not set -# CONFIG_MARCH_X86_64_COREI7AVX is not set -# CONFIG_MARCH_X86_64_COREI7AVXI is not set -# CONFIG_MARCH_X86_64_ATOM is not set -# CONFIG_MARCH_X86_64_K8 is not set -# CONFIG_MARCH_X86_64_K8SSE3 is not set -# CONFIG_MARCH_X86_64_AMDFAM10 is not set -# CONFIG_MARCH_X86_64_BTVER1 is not set -# CONFIG_MARCH_X86_64_BDVER1 is not set -# CONFIG_MARCH_X86_64_BDVER2 is not set -# CONFIG_MARCH_X86_64_BDVER3 is not set -# CONFIG_MARCH_X86_64_BTVER2 is not set - -# -# Processor Features -# -# CONFIG_X86_64_HAVE_RANDOM is not set -# end of Processor Features - -CONFIG_STACK_SIZE_PAGE_ORDER=4 -# end of Architecture Selection - -# -# Platform Configuration -# -CONFIG_PLAT_KVM=y -CONFIG_KVM_BOOT_PROTO_MULTIBOOT=y - -# -# Hint: EFI stub depends on OPTIMIZE_PIE -# -CONFIG_KVM_VMM_QEMU=y -# CONFIG_KVM_VMM_FIRECRACKER is not set - -# -# Console Options -# -CONFIG_KVM_KERNEL_VGA_CONSOLE=y -CONFIG_KVM_DEBUG_SERIAL_CONSOLE=y -CONFIG_KVM_DEBUG_VGA_CONSOLE=y -CONFIG_KVM_KERNEL_SERIAL_CONSOLE=y - -# -# Serial console configuration -# -CONFIG_KVM_SERIAL_BAUD_115200=y -# CONFIG_KVM_SERIAL_BAUD_57600 is not set -# CONFIG_KVM_SERIAL_BAUD_38400 is not set -# CONFIG_KVM_SERIAL_BAUD_19200 is not set -# end of Serial console configuration -# end of Console Options - -CONFIG_KVM_MAX_IRQ_HANDLER_ENTRIES=8 -# CONFIG_KVM_PCI is not set -# CONFIG_VIRTIO_BUS is not set - -# -# Virtio -# -# end of Virtio - -CONFIG_UKPLAT_ALLOW_GIC=y -# CONFIG_PLAT_LINUXU is not set -# CONFIG_PLAT_XEN is not set - -# -# Platform Interface Options -# -# CONFIG_UKPLAT_MEMRNAME is not set -CONFIG_UKPLAT_MEMREGION_MAX_COUNT=128 -# CONFIG_UKPLAT_ACPI is not set -CONFIG_UKPLAT_LCPU_MAXCOUNT=1 -# CONFIG_UKPLAT_ISR_ECTX_ASSERTIONS is not set -# CONFIG_PAGING is not set -# end of Platform Interface Options - -CONFIG_HZ=100 -# end of Platform Configuration - -# -# Library Configuration -# -# CONFIG_LIBDEVFS is not set -# CONFIG_LIBFDT is not set -# CONFIG_LIBISRLIB is not set -CONFIG_LIBPOSIX_ENVIRON=y - -# -# Compiled-in environment variables -# -CONFIG_LIBPOSIX_ENVIRON_ENVP0="PATH=/bin" -CONFIG_LIBPOSIX_ENVIRON_ENVP0_NOTEMPTY=y -CONFIG_LIBPOSIX_ENVIRON_ENVP1="" -CONFIG_LIBPOSIX_ENVIRON_ENVP2="" -CONFIG_LIBPOSIX_ENVIRON_ENVP3="" -CONFIG_LIBPOSIX_ENVIRON_ENVP4="" -CONFIG_LIBPOSIX_ENVIRON_ENVP5="" -CONFIG_LIBPOSIX_ENVIRON_ENVP6="" -CONFIG_LIBPOSIX_ENVIRON_ENVP7="" -CONFIG_LIBPOSIX_ENVIRON_ENVP8="" -CONFIG_LIBPOSIX_ENVIRON_ENVP9="" -CONFIG_LIBPOSIX_ENVIRON_ENVP10="" -CONFIG_LIBPOSIX_ENVIRON_ENVP11="" -CONFIG_LIBPOSIX_ENVIRON_ENVP12="" -CONFIG_LIBPOSIX_ENVIRON_ENVP13="" -CONFIG_LIBPOSIX_ENVIRON_ENVP14="" -CONFIG_LIBPOSIX_ENVIRON_ENVP15="" -# end of Compiled-in environment variables - -# CONFIG_LIBPOSIX_ENVIRON_LIBPARAM is not set -# CONFIG_LIBPOSIX_EVENT is not set -CONFIG_LIBPOSIX_FUTEX=y -# CONFIG_LIBPOSIX_FUTEX_DEBUG is not set -# CONFIG_LIBPOSIX_FUTEX_TEST is not set -# CONFIG_LIBPOSIX_LIBDL is not set -CONFIG_LIBPOSIX_PROCESS=y -CONFIG_LIBPOSIX_PROCESS_PIDS=y -CONFIG_LIBPOSIX_PROCESS_MAX_PID=31 -CONFIG_LIBPOSIX_PROCESS_INIT_PIDS=y -CONFIG_LIBPOSIX_PROCESS_CLONE=y -# CONFIG_LIBPOSIX_PROCESS_DEBUG is not set -# CONFIG_LIBPOSIX_SOCKET is not set -# CONFIG_LIBPOSIX_SYSINFO is not set -CONFIG_LIBPOSIX_TIME=y -# CONFIG_LIBPOSIX_USER is not set -# CONFIG_LIBRAMFS is not set -CONFIG_LIBSYSCALL_SHIM=y -CONFIG_LIBSYSCALL_SHIM_NOWRAPPER=y -# CONFIG_LIBSYSCALL_SHIM_HANDLER is not set - -# -# Debugging -# -# CONFIG_LIBSYSCALL_SHIM_DEBUG_SYSCALLS is not set -# CONFIG_LIBSYSCALL_SHIM_DEBUG is not set -CONFIG_LIBSYSCALL_SHIM_LEGACY_VERBOSE=y -# end of Debugging - -# CONFIG_LIBUBSAN is not set -# CONFIG_LIBUK9P is not set -CONFIG_LIBUKALLOC=y -# CONFIG_LIBUKALLOC_IFMALLOC is not set -# CONFIG_LIBUKALLOC_IFSTATS is not set -CONFIG_LIBUKALLOCBBUDDY=y -# CONFIG_LIBUKALLOCBBUDDY_FREELIST_SANITY is not set -# CONFIG_LIBUKALLOCPOOL is not set -# CONFIG_LIBUKALLOCREGION is not set -CONFIG_LIBUKARGPARSE=y -# CONFIG_LIBUKARGPARSE_TEST is not set -# CONFIG_LIBUKBLKDEV is not set -CONFIG_LIBUKBOOT=y -CONFIG_LIBUKBOOT_BANNER_NONE=y -# CONFIG_LIBUKBOOT_BANNER_MINIMAL is not set -# CONFIG_LIBUKBOOT_BANNER_CLASSIC is not set -# CONFIG_LIBUKBOOT_BANNER_POWEREDBY is not set -# CONFIG_LIBUKBOOT_BANNER_POWEREDBY_ANSI is not set -# CONFIG_LIBUKBOOT_BANNER_POWEREDBY_ANSI2 is not set -# CONFIG_LIBUKBOOT_BANNER_POWEREDBY_EA is not set -# CONFIG_LIBUKBOOT_BANNER_POWEREDBY_EAANSI is not set -# CONFIG_LIBUKBOOT_BANNER_POWEREDBY_EAANSI2 is not set -# CONFIG_LIBUKBOOT_BANNER_POWEREDBY_U8 is not set -# CONFIG_LIBUKBOOT_BANNER_POWEREDBY_U8ANSI is not set -# CONFIG_LIBUKBOOT_BANNER_POWEREDBY_U8ANSI2 is not set -CONFIG_LIBUKBOOT_MAXNBARGS=60 -CONFIG_LIBUKBOOT_INITBBUDDY=y -# CONFIG_LIBUKBOOT_INITREGION is not set -# CONFIG_LIBUKBOOT_NOALLOC is not set -CONFIG_LIBUKBOOT_INITSCHEDCOOP=y -# CONFIG_LIBUKBOOT_NOSCHED is not set -CONFIG_LIBUKBUS=y -# CONFIG_LIBUKCPIO is not set -CONFIG_LIBUKDEBUG=y -CONFIG_LIBUKDEBUG_PRINTK=y -# CONFIG_LIBUKDEBUG_PRINTK_INFO is not set -# CONFIG_LIBUKDEBUG_PRINTK_WARN is not set -CONFIG_LIBUKDEBUG_PRINTK_ERR=y -# CONFIG_LIBUKDEBUG_PRINTK_CRIT is not set -# CONFIG_LIBUKDEBUG_PRINTD is not set -# CONFIG_LIBUKDEBUG_NOREDIR is not set -CONFIG_LIBUKDEBUG_REDIR_PRINTD=y -# CONFIG_LIBUKDEBUG_REDIR_PRINTK is not set -CONFIG_LIBUKDEBUG_PRINT_TIME=y -# CONFIG_LIBUKDEBUG_PRINT_THREAD is not set -# CONFIG_LIBUKDEBUG_PRINT_CALLER is not set -CONFIG_LIBUKDEBUG_PRINT_SRCNAME=y -# CONFIG_LIBUKDEBUG_ANSI_COLOR is not set -# CONFIG_LIBUKDEBUG_ENABLE_ASSERT is not set -# CONFIG_LIBUKDEBUG_TRACEPOINTS is not set -# CONFIG_LIBUKFALLOC is not set -# CONFIG_LIBUKFALLOCBUDDY is not set -CONFIG_LIBUKLIBID=y -# CONFIG_LIBUKLIBPARAM is not set -CONFIG_LIBUKLOCK=y -CONFIG_LIBUKLOCK_SEMAPHORE=y -CONFIG_LIBUKLOCK_MUTEX=y -# CONFIG_LIBUKLOCK_MUTEX_METRICS is not set -CONFIG_LIBUKLOCK_RWLOCK=y -CONFIG_LIBUKMMAP=y -# CONFIG_LIBUKMMAP_TEST is not set -# CONFIG_LIBUKMPI is not set -# CONFIG_LIBUKNETDEV is not set -# CONFIG_LIBUKNOFAULT is not set -# CONFIG_LIBUKRING is not set -# CONFIG_LIBUKRUST is not set -CONFIG_LIBUKSCHED=y -CONFIG_LIBUKSCHED_TCB_INIT=y -# CONFIG_LIBUKSCHED_DEBUG is not set -CONFIG_LIBUKSCHEDCOOP=y -CONFIG_LIBUKSGLIST=y -CONFIG_LIBUKSIGNAL=y -# CONFIG_LIBUKSP is not set -# CONFIG_LIBUKSTORE is not set -CONFIG_LIBUKSTREAMBUF=y -# CONFIG_LIBUKSTREAMBUF_TEST is not set -# CONFIG_LIBUKSWRAND is not set -# CONFIG_LIBUKTEST is not set -CONFIG_LIBUKTIMECONV=y -# CONFIG_LIBUKVMEM is not set -CONFIG_LIBVFSCORE=y - -# -# vfscore: Configuration -# -CONFIG_LIBVFSCORE_PIPE_SIZE_ORDER=16 -# CONFIG_LIBVFSCORE_NONLARGEFILE is not set -# CONFIG_LIBVFSCORE_AUTOMOUNT_ROOTFS is not set -# CONFIG_LIBVFSCORE_FSTAB is not set -# end of vfscore: Configuration - -CONFIG_HAVE_BOOTENTRY=y -CONFIG_HAVE_LIBC=y -CONFIG_HAVE_TIME=y -CONFIG_HAVE_SCHED=y -CONFIG_LIBMUSL=y -CONFIG_LIBMUSL_AIO=y -# CONFIG_LIBMUSL_COMPLEX is not set -CONFIG_LIBMUSL_CONF=y -CONFIG_LIBMUSL_CRYPT=y -CONFIG_LIBMUSL_CTYPE=y -CONFIG_LIBMUSL_DIRENT=y -CONFIG_LIBMUSL_ENV=y -CONFIG_LIBMUSL_ERRNO=y -CONFIG_LIBMUSL_EXIT=y -CONFIG_LIBMUSL_FCNTL=y -CONFIG_LIBMUSL_FENV=y -CONFIG_LIBMUSL_INTERNAL=y -CONFIG_LIBMUSL_IPC=y -CONFIG_LIBMUSL_LDSO=y -CONFIG_LIBMUSL_LEGACY=y -CONFIG_LIBMUSL_LINUX=y -CONFIG_LIBMUSL_LOCALE=y -CONFIG_LIBMUSL_LOCALE_LEGACY=y -CONFIG_LIBMUSL_MALLOC=y -CONFIG_LIBMUSL_MATH=y -CONFIG_LIBMUSL_MISC=y -CONFIG_LIBMUSL_MMAN=y -CONFIG_LIBMUSL_MQ=y -CONFIG_LIBMUSL_MULTIBYTE=y -CONFIG_LIBMUSL_NETWORK=y -CONFIG_LIBMUSL_PASSWD=y -CONFIG_LIBMUSL_PRNG=y -CONFIG_LIBMUSL_PROCESS=y -CONFIG_LIBMUSL_REGEX=y -CONFIG_LIBMUSL_SCHED=y -CONFIG_LIBMUSL_SEARCH=y -CONFIG_LIBMUSL_SELECT=y -CONFIG_LIBMUSL_SETJMP=y -CONFIG_LIBMUSL_SIGNAL=y -CONFIG_LIBMUSL_STAT=y -CONFIG_LIBMUSL_STDIO=y -CONFIG_LIBMUSL_STDLIB=y -CONFIG_LIBMUSL_STRING=y -CONFIG_LIBMUSL_TEMP=y -CONFIG_LIBMUSL_TERMIOS=y -CONFIG_LIBMUSL_THREAD=y -CONFIG_LIBMUSL_FORCE_THREAD=y -CONFIG_LIBMUSL_TIME=y -CONFIG_LIBMUSL_UNISTD=y -# end of Library Configuration - -# -# Application Options -# -CONFIG_L2E_DEPENDENCIES=y -# end of Application Options - -# -# Build Options -# -# CONFIG_OPTIMIZE_NONE is not set -CONFIG_OPTIMIZE_PERF=y -# CONFIG_OPTIMIZE_SIZE is not set - -# -# Hint: Specify a CPU type to get most benefits from performance optimization -# -CONFIG_OPTIMIZE_NOOMITFP=y -CONFIG_OPTIMIZE_DEADELIM=y -CONFIG_OPTIMIZE_LTO=y -# CONFIG_OPTIMIZE_PIE is not set -# CONFIG_DEBUG_SYMBOLS_LVL0 is not set -# CONFIG_DEBUG_SYMBOLS_LVL1 is not set -# CONFIG_DEBUG_SYMBOLS_LVL2 is not set -CONFIG_DEBUG_SYMBOLS_LVL3=y -# CONFIG_OPTIMIZE_WARNISERROR is not set -# CONFIG_OPTIMIZE_SYMFILE is not set -CONFIG_OPTIMIZE_COMPRESS=y -# CONFIG_RECORD_BUILDTIME is not set -CONFIG_CROSS_COMPILE="" -CONFIG_LLVM_TARGET_ARCH="" -# end of Build Options - -CONFIG_UK_NAME="L2E" diff --git a/Makefile b/Makefile index cb30c3db..18698881 100644 --- a/Makefile +++ b/Makefile @@ -201,6 +201,18 @@ run_clang_static_strlit: ## - Optimized Static clang + embedded model build ./strlit -i emb_Model_data $(MOD_PATH) model.h ./strlit -i emb_Tokenizer_data $(TOK_PATH) tokenizer.h clang -Ofast -static -march=native -D STRLIT -D LLOOP run.c -lm -o run + +# Unikraft Unikernel build +.PHONY: run_unik_qemu_x86_64 +run_unik_qemu_x86_64: run.c + [ ! -d "UNIK" ] && echo "Cloning unikraft and musl sources..." || true + [ ! -d "UNIK/unikraft" ] && git clone https://github.com/unikraft/unikraft UNIK/unikraft || true + [ ! -d "UNIK/libs/musl" ] && git clone https://github.com/unikraft/lib-musl UNIK/libs/musl || true + UK_DEFCONFIG=$(shell pwd)/defconfigs/qemu-x86_64 make -f Makefile.unikernel defconfig + gcc -Ofast strliteral.c -o strlit + ./strlit -i emb_Model_data $(MOD_PATH) model.h + ./strlit -i emb_Tokenizer_data $(TOK_PATH) tokenizer.h + make -f Makefile.unikernel # Build for termux on Android ##@ ---> Android diff --git a/Makefile.unikernel b/Makefile.unikernel index 394b33d2..98bd38dd 100644 --- a/Makefile.unikernel +++ b/Makefile.unikernel @@ -1,15 +1,8 @@ UK_ROOT ?= $(PWD)/UNIK/unikraft UK_LIBS ?= $(PWD)/UNIK/libs LIBS := $(UK_LIBS)/musl -# Model / Tokenizer Paths -MOD_PATH = out/model.bin -TOK_PATH = tokenizer.bin all: - cp L2E_amd64_qemu.config .config - gcc -Ofast strliteral.c -o strlit - ./strlit -i emb_Model_data $(MOD_PATH) model.h - ./strlit -i emb_Tokenizer_data $(TOK_PATH) tokenizer.h @$(MAKE) -C $(UK_ROOT) A=$(PWD) L=$(LIBS) $(MAKECMDGOALS): diff --git a/defconfigs/qemu-x86_64 b/defconfigs/qemu-x86_64 new file mode 100644 index 00000000..4f620464 --- /dev/null +++ b/defconfigs/qemu-x86_64 @@ -0,0 +1,8 @@ +CONFIG_UK_DEFNAME="L2E" +CONFIG_PLAT_KVM=y +CONFIG_LIBUKBOOT_BANNER_NONE=y +CONFIG_LIBUKBUS=y +# CONFIG_LIBUKDEBUG_ENABLE_ASSERT is not set +CONFIG_LIBUKSGLIST=y +CONFIG_OPTIMIZE_DEADELIM=y +CONFIG_OPTIMIZE_LTO=y