:: commit 5d9219b1cbfd03da961e2d9966c677b65c2b91c0

mintsuki <mintsuki@protonmail.com> — 2022-01-16 23:20

parents: 208b0225c5

build: Sanitise variables before building reduced-gnu-efi

diff --git a/GNUmakefile.in b/GNUmakefile.in
index bed6f401..e0328572 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -44,6 +44,7 @@ TOOLCHAIN ?= @TOOLCHAIN@
 LIMINE_CC ?= @LIMINE_CC@
 LIMINE_LD ?= @LIMINE_LD@
 LIMINE_AR ?= @LIMINE_AR@
+LIMINE_AS ?= @LIMINE_AS@
 LIMINE_OBJCOPY ?= @LIMINE_OBJCOPY@
 LIMINE_OBJDUMP ?= @LIMINE_OBJDUMP@
 LIMINE_READELF ?= @LIMINE_READELF@
@@ -57,6 +58,9 @@ endif
 ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_AR) ; ), )
 override LIMINE_AR := ar
 endif
+ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_AS) ; ), )
+override LIMINE_AS := as
+endif
 ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_OBJCOPY) ; ), )
 override LIMINE_OBJCOPY := objcopy
 endif
@@ -70,6 +74,7 @@ endif
 export LIMINE_CC
 export LIMINE_LD
 export LIMINE_AR
+export LIMINE_AS
 export LIMINE_OBJCOPY
 export LIMINE_OBJDUMP
 export LIMINE_READELF
diff --git a/configure.ac b/configure.ac
index 2527576e..f676783a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,6 +24,9 @@ test "x$LIMINE_LD" = "x" && LIMINE_LD='$(TOOLCHAIN)-ld'
 AC_ARG_VAR(LIMINE_AR, [Archiver command for Limine [$(TOOLCHAIN)-ar]])
 test "x$LIMINE_AR" = "x" && LIMINE_AR='$(TOOLCHAIN)-ar'
 
+AC_ARG_VAR(LIMINE_AS, [Assembler command for Limine [$(TOOLCHAIN)-as]])
+test "x$LIMINE_AS" = "x" && LIMINE_AS='$(TOOLCHAIN)-as'
+
 AC_ARG_VAR(LIMINE_OBJCOPY, [Objcopy command for Limine [$(TOOLCHAIN)-objcopy]])
 test "x$LIMINE_OBJCOPY" = "x" && LIMINE_OBJCOPY='$(TOOLCHAIN)-objcopy'
 
diff --git a/stage23/GNUmakefile b/stage23/GNUmakefile
index dff8bb3d..a29ec3b0 100644
--- a/stage23/GNUmakefile
+++ b/stage23/GNUmakefile
@@ -256,7 +256,14 @@ $(call MKESCAPE,$(BUILDDIR))/BOOTX64.EFI: $(call MKESCAPE,$(BUILDDIR))/limine_ef
 	$(LIMINE_OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .reloc -j .sbat --target efi-app-x86_64 '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)'
 
 $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-x86_64.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi
-	$(MAKE) -C '$(call SHESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi' CC="$(LIMINE_CC) -m64 -march=x86-64 -mtune=generic" AR="$(LIMINE_AR)" ARCH=x86_64
+	unset ARFLAGS; unset ASFLAGS; unset LDFLAGS; unset CFLAGS; unset CPPFLAGS; \
+	$(MAKE) -C '$(call SHESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi' \
+		CC="$(LIMINE_CC) -m64 -march=x86-64 -mtune=generic" \
+		LD="$(LIMINE_LD)" \
+		AR="$(LIMINE_AR)" \
+		AS="$(LIMINE_AS)" \
+		OBJCOPY="$(LIMINE_OBJCOPY)" \
+		ARCH=x86_64
 
 $(call MKESCAPE,$(BUILDDIR))/limine_efi_nomap.elf: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-x86_64.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a $(OBJ) $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o
 	$(LIMINE_LD) \
@@ -280,7 +287,14 @@ $(call MKESCAPE,$(BUILDDIR))/BOOTIA32.EFI: $(call MKESCAPE,$(BUILDDIR))/limine_e
 	$(LIMINE_OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .reloc -j .sbat --target efi-app-ia32 '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)'
 
 $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-ia32.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi
-	$(MAKE) -C '$(call SHESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi' CC="$(LIMINE_CC) -m32 -march=i686 -mtune=generic" AR="$(LIMINE_AR)" ARCH=ia32
+	unset ARFLAGS; unset ASFLAGS; unset LDFLAGS; unset CFLAGS; unset CPPFLAGS; \
+	$(MAKE) -C '$(call SHESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi' \
+		CC="$(LIMINE_CC) -m32 -march=i686 -mtune=generic" \
+		LD="$(LIMINE_LD)" \
+		AR="$(LIMINE_AR)" \
+		AS="$(LIMINE_AS)" \
+		OBJCOPY="$(LIMINE_OBJCOPY)" \
+		ARCH=ia32
 
 $(call MKESCAPE,$(BUILDDIR))/limine_efi_nomap.elf: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-ia32.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a $(OBJ) $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o
 	$(LIMINE_LD) \
tab: 248 wrap: offon