Index: Makefile
--- Makefile.orig
+++ Makefile
@@ -58,10 +58,18 @@ EXTRAVERSION=
 
 CPPFLAGS = -P -MD -MT $@
 
+# For gcc stack alignment is specified with -mpreferred-stack-boundary,
+# clang has the option -mstack-alignment for that purpose.
+ifneq ($(call cc-option,$(CC),-mpreferred-stack-boundary=4,),)
+	cc_stack_align_opt := -mpreferred-stack-boundary
+else ifneq ($(call cc-option,$(CC),-mstack-alignment=4,),)
+	cc_stack_align_opt := -mstack-alignment
+endif
+
 COMMONCFLAGS := -I$(OUT) -Isrc -Os -MD -g \
     -Wall -Wno-strict-aliasing -Wold-style-definition \
     $(call cc-option,$(CC),-Wtype-limits,) \
-    -m32 -march=i386 -mregparm=3 -mpreferred-stack-boundary=2 \
+    -m32 -march=i386 -mregparm=3 $(cc_stack_align_opt)=2 \
     -minline-all-stringops -fomit-frame-pointer \
     -freg-struct-return -ffreestanding -fno-delete-null-pointer-checks \
     -ffunction-sections -fdata-sections -fno-common -fno-merge-constants
@@ -130,7 +138,7 @@ endef
 
 %.noexec.o: %.o
 	@echo "  Stripping $@"
-	$(Q)$(STRIP) $< -o $<.strip.o
+	$(Q)$(STRIP) --regex --keep-section=\.fixedaddr\.0x[[:xdigit:]]{4} $< -o $<.strip.o
 	$(Q)$(PYTHON) ./scripts/ldnoexec.py $<.strip.o $@
 
 $(OUT)%.s: %.c
@@ -275,7 +283,10 @@ $(Q)mkdir -p $(addprefix $(OUT), $(DIRS))
 $(Q)$(MAKE) -C $(OUT) -f $(CURDIR)/scripts/kconfig/Makefile srctree=$(CURDIR) src=scripts/kconfig obj=scripts/kconfig Q=$(Q) Kconfig=$(CURDIR)/src/Kconfig $1
 endef
 
-$(OUT)autoconf.h : $(KCONFIG_CONFIG) ; $(call do-kconfig, silentoldconfig)
+$(OUT)/autoversion.h: scripts/buildversion.py
+	$(Q)$(PYTHON) ./scripts/buildversion.py -e "$(EXTRAVERSION)" -t "$(CC);$(AS);$(LD);$(OBJCOPY);$(OBJDUMP);$(STRIP)" $(OUT)autoversion.h
+
+$(OUT)autoconf.h : $(KCONFIG_CONFIG) $(OUT)/autoversion.h ; $(call do-kconfig, silentoldconfig)
 $(KCONFIG_CONFIG): src/Kconfig vgasrc/Kconfig ; $(call do-kconfig, olddefconfig)
 %onfig: ; $(call do-kconfig, $@)
 help: ; $(call do-kconfig, $@)
