From f3754b842937f222a58472ea7010eb4246ef1157 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 23 Apr 2019 21:37:10 +0200 Subject: [PATCH] Build: Pass --gc-sections to the linker in all builds. This removes unused sections from the output and reduces the binary size of everything we compile. --- Kernel/Makefile | 5 ++--- Makefile.common | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Kernel/Makefile b/Kernel/Makefile index d756e2e5f4..85deede46f 100644 --- a/Kernel/Makefile +++ b/Kernel/Makefile @@ -82,8 +82,7 @@ OBJS = $(CXX_OBJS) Boot/boot.ao KERNEL = kernel CXXFLAGS += -ffreestanding -mregparm=3 -mno-80387 -mno-mmx -mno-sse -mno-sse2 DEFINES += -DKERNEL -LD = i686-pc-serenity-ld -LDFLAGS += -T linker.ld +LDFLAGS += -Ttext 0x10000 -Wl,-T linker.ld -nostdlib all: $(KERNEL) kernel.map @@ -91,7 +90,7 @@ kernel.map: kernel @echo "MKMAP $@"; sh mkmap.sh $(KERNEL): $(OBJS) - @echo "LD $@"; $(LD) $(LDFLAGS) -o $@ -Ttext 0x10000 $(OBJS) + @echo "LD $@"; $(LD) $(LDFLAGS) -o $@ $(OBJS) .cpp.o: @echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $< diff --git a/Makefile.common b/Makefile.common index b828291373..8e34eaa45d 100644 --- a/Makefile.common +++ b/Makefile.common @@ -8,7 +8,7 @@ MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) SERENITY_BASE_DIR := $(patsubst %/,%,$(dir $(MAKEFILE_PATH))) INCLUDE_FLAGS = -I$(SERENITY_BASE_DIR) -I. -I$(SERENITY_BASE_DIR)/LibC -I$(SERENITY_BASE_DIR)/Servers -LDFLAGS = -L$(SERENITY_BASE_DIR)/LibC -L$(SERENITY_BASE_DIR)/LibCore -L$(SERENITY_BASE_DIR)/LibM -L$(SERENITY_BASE_DIR)/LibGUI +LDFLAGS = -L$(SERENITY_BASE_DIR)/LibC -L$(SERENITY_BASE_DIR)/LibCore -L$(SERENITY_BASE_DIR)/LibM -L$(SERENITY_BASE_DIR)/LibGUI -Wl,--gc-sections CLANG_FLAGS = -Wconsumed -m32 -ffreestanding -march=i686 #SUGGEST_FLAGS = -Wsuggest-final-types -Wsuggest-final-methods -Wsuggest-override #-Wsuggest-attribute=noreturn DEFINES = -DSANITIZE_PTRS