diff options
-rw-r--r-- | Makefile.in | 25 | ||||
-rw-r--r-- | configure.ac | 4 |
2 files changed, 21 insertions, 8 deletions
diff --git a/Makefile.in b/Makefile.in index 01fe328..7783676 100644 --- a/Makefile.in +++ b/Makefile.in @@ -15,14 +15,25 @@ override KERNEL_DEFINES = $ -DHYRA_VERSION="\"$(HYRA_VERSION)\""\ -DHYRA_ARCH="\"@ARCH@\"" $(shell cat sys/arch/$(ARCH)/conf/GENERIC | tools/kconf/kconf) ###################### -# Binutils stuff +# Toolchain ###################### -ifeq ($(ARCH), amd64) - override CC = $(shell pwd)/cross/bin/x86_64-hyra-gcc - override LD = $(shell pwd)/cross/bin/x86_64-hyra-ld -else - override CC = $(shell pwd)/cross/bin/$(ARCH)-hyra-gcc - override LD = $(shell pwd)/cross/bin/$(ARCH)-hyra-ld +override TOOLCHAIN = @TOOLCHAIN@ +ifeq ($(TOOLCHAIN), clang) + ifeq ($(ARCH), amd64) + override CC = clang -target x86_64-none-elf + override LD = ld.lld + else + override CC = clang -target $(ARCH)-none-elf + override LD = ld.lld + endif +else ifeq ($(TOOLCHAIN), gcc) + ifeq ($(ARCH), amd64) + override CC = $(shell pwd)/cross/bin/x86_64-hyra-gcc + override LD = $(shell pwd)/cross/bin/x86_64-hyra-ld + else + override CC = $(shell pwd)/cross/bin/$(ARCH)-hyra-gcc + override LD = $(shell pwd)/cross/bin/$(ARCH)-hyra-ld + endif endif ########################## diff --git a/configure.ac b/configure.ac index 41333c7..8a9db93 100644 --- a/configure.ac +++ b/configure.ac @@ -7,7 +7,8 @@ KERN_CFLAGS_AMD64="-fexceptions --std=gnu11 -ffreestanding -fno-stack-protector -Werror=incompatible-pointer-types -Werror=int-to-pointer-cast \\ -Werror=return-type -Wunused -mabi=sysv -mno-80387 -mno-mmx -mno-3dnow \\ -mno-sse -mno-sse2 -mno-red-zone -mcmodel=kernel -pedantic \\ - -I sys/include/ -I sys/include/lib/ -D_KERNEL -Wno-pointer-sign -MMD" + -I sys/include/ -I sys/include/lib/ -D_KERNEL -Wno-pointer-sign -MMD \\ + -Wno-gnu-zero-variadic-macro-arguments -Wno-language-extension-token -Wno-tautological-constant-out-of-range-compare -Wno-c23-extensions" QEMU_FLAGS_AMD64="--enable-kvm -monitor stdio \\ -M q35 -m 1G -smp 4 -cpu host \\ @@ -23,5 +24,6 @@ AC_SUBST(KERNEL_CFLAGS, [$KERN_CFLAGS_AMD64]) AC_SUBST(QEMU_FLAGS, [$QEMU_FLAGS_AMD64]) AC_SUBST(QEMU, [qemu-system-x86_64]) AC_SUBST(ARCH, [amd64]) +AC_SUBST(TOOLCHAIN, [clang]) AC_CONFIG_FILES([Makefile]) AC_OUTPUT |