build: Update linker and compiler flags
diff --git a/common/GNUmakefile b/common/GNUmakefile
index 32ae0cdf..fa063937 100644
--- a/common/GNUmakefile
+++ b/common/GNUmakefile
@@ -34,85 +34,83 @@ override S2CFLAGS := -Os
override CROSS_CFLAGS += \
-g \
- $(WERROR) \
-std=gnu11 \
+ -nostdinc \
-ffreestanding \
-fno-stack-protector \
-fno-stack-check \
-fno-omit-frame-pointer \
-fno-strict-aliasing \
-fno-lto \
- -nostdinc \
-Wshadow \
-Wvla \
+ $(WERROR) \
-MMD \
-DCOM_OUTPUT=$(COM_OUTPUT) \
-DE9_OUTPUT=$(E9_OUTPUT) \
-I../freestanding-headers \
+ -I'$(call SHESCAPE,$(BUILDDIR))/tinf' \
-I'$(call SHESCAPE,$(BUILDDIR))/..' \
-I. \
- -I.. \
- -I'$(call SHESCAPE,$(BUILDDIR))/tinf'
+ -I..
ifeq ($(TARGET),bios)
override CROSS_CFLAGS += \
- -Dbios=1 \
- -Duefi=0 \
+ -fno-pie \
+ -fno-pic \
-m32 \
-march=i686 \
-mtune=generic \
-mabi=sysv \
- -fno-pie \
- -fno-pic
-endif
-
-ifeq ($(TARGET),$(filter $(TARGET),bios uefi-ia32 uefi-x86_64))
- override CROSS_CFLAGS += \
-mno-80387 \
- -mno-mmx \
- -mno-sse \
- -mno-sse2
+ -Dbios=1 \
+ -Duefi=0
endif
ifeq ($(TARGET),uefi-x86-64)
override CROSS_CFLAGS += \
- -Dbios=0 \
- -Duefi=1 \
+ -fpie \
-m64 \
-march=x86-64 \
-mtune=generic \
-mabi=sysv \
+ -mno-80387 \
+ -mno-mmx \
+ -mno-sse \
+ -mno-sse2 \
+ -mno-red-zone \
+ -Dbios=0 \
+ -Duefi=1 \
-DGNU_EFI_USE_MS_ABI \
-I'$(call SHESCAPE,$(BUILDDIR))/limine-efi/inc' \
- -I'$(call SHESCAPE,$(BUILDDIR))/limine-efi/inc/x86_64' \
- -fpie \
- -mno-red-zone
+ -I'$(call SHESCAPE,$(BUILDDIR))/limine-efi/inc/x86_64'
endif
ifeq ($(TARGET),uefi-ia32)
override CROSS_CFLAGS += \
- -Dbios=0 \
- -Duefi=1 \
+ -fpie \
-m32 \
-march=i686 \
-mtune=generic \
-mabi=sysv \
+ -mno-80387 \
+ -Dbios=0 \
+ -Duefi=1 \
-DGNU_EFI_USE_MS_ABI \
-I'$(call SHESCAPE,$(BUILDDIR))/limine-efi/inc' \
- -I'$(call SHESCAPE,$(BUILDDIR))/limine-efi/inc/ia32' \
- -fpie
+ -I'$(call SHESCAPE,$(BUILDDIR))/limine-efi/inc/ia32'
endif
ifeq ($(TARGET),uefi-aarch64)
override CROSS_CFLAGS += \
+ -fpie \
+ -mtune=generic \
+ -mgeneral-regs-only \
-Dbios=0 \
-Duefi=1 \
- -mtune=generic \
-DGNU_EFI_USE_MS_ABI \
-I'$(call SHESCAPE,$(BUILDDIR))/limine-efi/inc' \
- -I'$(call SHESCAPE,$(BUILDDIR))/limine-efi/inc/aarch64' \
- -fpie \
- -mgeneral-regs-only
+ -I'$(call SHESCAPE,$(BUILDDIR))/limine-efi/inc/aarch64'
endif
override CROSS_LDFLAGS += \
@@ -121,7 +119,7 @@ override CROSS_LDFLAGS += \
ifeq ($(TARGET),bios)
override CROSS_LDFLAGS += \
- -melf_i386 \
+ -m elf_i386 \
-static \
--build-id=sha1
@@ -132,29 +130,29 @@ endif
ifeq ($(TARGET),uefi-x86-64)
override CROSS_LDFLAGS += \
- -melf_x86_64 \
+ -m elf_x86_64 \
-static \
-pie \
--no-dynamic-linker \
- -ztext
+ -z text
endif
ifeq ($(TARGET),uefi-ia32)
override CROSS_LDFLAGS += \
- -melf_i386 \
+ -m elf_i386 \
-static \
-pie \
--no-dynamic-linker \
- -ztext
+ -z text
endif
ifeq ($(TARGET),uefi-aarch64)
override CROSS_LDFLAGS += \
- -maarch64elf \
+ -m aarch64elf \
-static \
-pie \
--no-dynamic-linker \
- -ztext
+ -z text
endif
override C_FILES := $(shell find . -type f -name '*.c')
diff --git a/decompressor/GNUmakefile b/decompressor/GNUmakefile
index 73ddd20b..f5ae6f0e 100644
--- a/decompressor/GNUmakefile
+++ b/decompressor/GNUmakefile
@@ -15,37 +15,34 @@ endif
override CROSS_CFLAGS += \
$(WERROR) \
-Os \
+ -std=gnu11 \
+ -nostdinc \
-m32 \
-march=i686 \
-mtune=generic \
-mabi=sysv \
- -std=gnu11 \
+ -mno-80387 \
-ffreestanding \
-fno-stack-protector \
-fno-stack-check \
+ -fomit-frame-pointer \
-fno-strict-aliasing \
-fno-lto \
-fno-pie \
-fno-pic \
- -fomit-frame-pointer \
- -nostdinc \
-Wshadow \
-Wvla \
- -mno-80387 \
- -mno-mmx \
- -mno-sse \
- -mno-sse2 \
-MMD \
-I../freestanding-headers \
- -I. \
- -I'$(call SHESCAPE,$(BUILDDIR))/tinf'
+ -I'$(call SHESCAPE,$(BUILDDIR))/tinf' \
+ -I.
override CROSS_LDFLAGS += \
- -melf_i386 \
+ -m elf_i386 \
-nostdlib \
-z max-page-size=0x1000 \
-static \
- -Tlinker.ld
+ -T linker.ld
ifneq ($(CROSS_LD_NO_PIE_BUG),1)
override CROSS_LDFLAGS += -no-pie
