diff --git a/Dockerfile b/Dockerfile index e1899f7..1244a48 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:latest AS builder -RUN apt-get update && apt-get -y install clang llvm lld make xorriso gcc +RUN apt-get update && apt-get -y install clang llvm lld make xorriso WORKDIR /usr/src/MOP3 diff --git a/amd64/flags.mk b/amd64/flags.mk index 2256f33..69e7a8d 100644 --- a/amd64/flags.mk +++ b/amd64/flags.mk @@ -1,4 +1,4 @@ -cflags += --target=x86_64-pc-none-elf \ +cflags += --target=x86_64-unknown-unknown-elf \ -mno-sse \ -mno-sse2 \ -mno-avx \ @@ -7,5 +7,4 @@ cflags += --target=x86_64-pc-none-elf \ -mno-red-zone \ -mcmodel=large -ldflags += --target=x86_64-pc-none-elf \ - -Wl,-zmax-page-size=0x1000 +ldflags += -zmax-page-size=0x1000 diff --git a/generic/flags.mk b/generic/flags.mk index 54a6658..48f2724 100644 --- a/generic/flags.mk +++ b/generic/flags.mk @@ -17,18 +17,11 @@ endif cflags += -isystem ../include -ldflags += -ffreestanding \ - -nostdlib \ - -fno-builtin \ - -fuse-ld=lld \ - -static - -ifeq ($(buildtype),debug) - ldflags += -g -endif +ldflags += --nostdlib \ + --static ifeq ($(buildtype),release) - ldflags += -Wl,--gc-sections \ - -Wl,--strip-all \ - -flto + ldflags += --gc-sections \ + --strip-all \ + -O3 endif diff --git a/kernel/Makefile b/kernel/Makefile index 6d9f53c..ebed889 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -1,4 +1,5 @@ cc := clang +ld := ld.lld o := c := ldflags := @@ -12,7 +13,7 @@ include make/src.mk all: build/kernel.elf build/kernel.elf: $(o) - $(cc) -o $@ $(ldflags) -T $(platform)/link.ld $^ + $(ld) -o $@ $(ldflags) -T $(platform)/link.ld $^ %.o: %.c $(cc) -c -o $@ $(cflags) $< diff --git a/kernel/amd64/flags.mk b/kernel/amd64/flags.mk index 407b543..b032a4b 100644 --- a/kernel/amd64/flags.mk +++ b/kernel/amd64/flags.mk @@ -1,4 +1,4 @@ -cflags += --target=x86_64-pc-none-elf \ +cflags += --target=x86_64-unknown-unknown-elf \ -mno-sse \ -mno-sse2 \ -mno-avx \ @@ -7,5 +7,4 @@ cflags += --target=x86_64-pc-none-elf \ -mno-red-zone \ -fno-omit-frame-pointer -ldflags += --target=x86_64-pc-none-elf \ - -Wl,-zmax-page-size=0x1000 +ldflags += -zmax-page-size=0x1000 diff --git a/kernel/generic/flags.mk b/kernel/generic/flags.mk index a117243..a6fe4df 100644 --- a/kernel/generic/flags.mk +++ b/kernel/generic/flags.mk @@ -23,18 +23,11 @@ ifeq ($(buildtype),release) cflags += -ffunction-sections -fdata-sections -Oz endif -ldflags += -ffreestanding \ - -nostdlib \ - -fno-builtin \ - -fuse-ld=lld \ - -static - -ifeq ($(buildtype),debug) - ldflags += -g -endif +ldflags += --nostdlib \ + --static ifeq ($(buildtype),release) - ldflags += -Wl,--gc-sections \ - -Wl,--strip-all \ - -flto + ldflags += --gc-sections \ + --strip-all \ + -O3 endif diff --git a/make/user.mk b/make/user.mk index 8304b4c..301b294 100644 --- a/make/user.mk +++ b/make/user.mk @@ -1,4 +1,5 @@ cc := clang +ld := ld.lld o := c := ldflags += -L ../libsystem/build -l:libsystem.a -L ../liballoc/build -l:liballoc.a @@ -12,7 +13,7 @@ include ../$(platform)/flags.mk all: $(app) $(app): $(o) - $(cc) -o $@ $(ldflags) -T ../$(platform)/link.ld $^ + $(ld) -o $@ $(ldflags) -T ../$(platform)/link.ld $^ %.o: %.c $(cc) -c -o $@ $(cflags) $<