From nobody Tue Feb 10 10:55:13 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1629802922; cv=none; d=zohomail.com; s=zohoarc; b=iYJZHzopLzbuwn98H9x6Mwlmu7OXvO4cVMzjsI5vl8eC0DMigEGR2ATdfBCvCowIdwxx4WSAxUaMg12XNc98NJ0wqYxgT6Cvf/b4k9m3j4keAeFbiPobOYS8WCpIRrexCX35f9rlRtZtoOrD2Fle39R5Dv5leZ6XKM8ZEz3wqgA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629802922; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=p1OfMDec+Nj30VCXEIZHDM50mbf5/cKhS4scPhnoMls=; b=MWOIAl1qIRjxNzvbSCTul90LU4sGGRmws+4XOFFav3EqjKFlvvCFTDrP7E/N7C/ESO63BCpsuCMkY0GositVxPdsAg5HRvkRFV4uR63GOywxpQ1ea8EzKezIvmpMpZd/LlAMQn23LjEKk/21PWDhdGHNsDilOXBUyrd+STpkc3s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1629802922916897.5338196313851; Tue, 24 Aug 2021 04:02:02 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.170993.312201 (Exim 4.92) (envelope-from ) id 1mIUBb-0007tr-LU; Tue, 24 Aug 2021 11:01:43 +0000 Received: by outflank-mailman (output) from mailman id 170993.312201; Tue, 24 Aug 2021 11:01:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mIUBb-0007ri-6c; Tue, 24 Aug 2021 11:01:43 +0000 Received: by outflank-mailman (input) for mailman id 170993; Tue, 24 Aug 2021 11:01:41 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mIU3o-0003Ux-Dm for xen-devel@lists.xenproject.org; Tue, 24 Aug 2021 10:53:40 +0000 Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 555758b2-04c9-11ec-a8c6-12813bfff9fa; Tue, 24 Aug 2021 10:52:10 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 555758b2-04c9-11ec-a8c6-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1629802330; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=9DhKzuHQgtLZwJkkZ8/kcJ7SrlG3Or2a9FCTUzxU3+k=; b=hZG1vhybvkCKFzONblFma/ZUHiH/pR1c25yfxyzNnjB+LPJiNR9xR25q 19PG/JEXdxQGVjldW6xhqOD3P9uyjtsQVpktPBo7qkyoXAAYLtaGbp7MB QydHgKKlWLd0UtG3BM2ufG7e0ZxzTljYkPiJDhNpI3/DIzeMs66y0/vOd s=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: /r2M2TNFXwPbrGLy1IZv6b3W19xSN/7Zks9Cg6hkhJKMndA4VHYE+5RA3wamuigjXwK6lw6w/M BLBnYS+WTLj91SwHYROPQdD1aVN0kGu33RFAFSNtp6WaiZxLp2+kPFsHN6wxU0qS9T2mPSl/yw n1HZurYZcW9rntabU1x/KwbqvZpdH/wryIcP4kYXrtaiexYjSCk3WMKVHIn39EYs294XcZQIJb mXMwU1OQM2sr9Pwj5GF7ZzhOpmz078LT+Cr0zQ3mNtF67vvyhMKXkDBMeB4m7aRK9SSEer/qcN 3xoU+c0WcbYYCZKMLb9eYuJb X-SBRS: 5.1 X-MesageID: 52875523 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.83 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:JWFcvqvGGspTaqJf1dK4XqoL7skDjNV00zEX/kB9WHVpm6yj+v xGUs566faUskd0ZJhEo7q90ca7Lk80maQa3WBzB8bGYOCFghrKEGgK1+KLrwEIcxeUygc379 YDT0ERMrzN5VgRt7eG3OG7eexQvOVuJsqT9JjjJ3QGd3AVV0l5hT0JbTpyiidNNXJ77ZxSLu v72uN34wCOVF4wdcqBCnwMT4H41qf2fMKPW29+O/Y/gjP+9Q+V1A== X-IronPort-AV: E=Sophos;i="5.84,347,1620705600"; d="scan'208";a="52875523" From: Anthony PERARD To: CC: Anthony PERARD , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Wei Liu Subject: [XEN PATCH v7 41/51] build,x86: remove the need for build32.mk Date: Tue, 24 Aug 2021 11:50:28 +0100 Message-ID: <20210824105038.1257926-42-anthony.perard@citrix.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210824105038.1257926-1-anthony.perard@citrix.com> References: <20210824105038.1257926-1-anthony.perard@citrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1629802928622100001 Content-Type: text/plain; charset="utf-8" Rework "arch/x86/boot/Makefile" to allow it to build both file "cmdline.S" and "reloc.S" without "build32.mk". These will now use the main rules for "%.o: %.c", and thus generate a dependency file. (We will not need to track the dependency manually anymore.) But for that, we need to override the main CFLAGS to do a 32bit build. Thus we copy all the necessary flags from "Config.mk", and apply them only to "cmdline.o" and "reloc.o". Specificaly apply the rule "%.S: %.bin" to both cmdline.S and reloc.S to avoid make trying to regenerate other %.S files with it. There is no change expected to the resulting "cmdline.S" and "reloc.S", only the *.o file changes as their symbole for FILE goes from "cmdline.c" to "arch/x86//cmdline.c". (No idea why "boot" is missing from the string.) (I've only check with gcc, not clang.) Signed-off-by: Anthony PERARD --- xen/arch/x86/boot/Makefile | 60 ++++++++++++++++++++++++++---------- xen/arch/x86/boot/build32.mk | 40 ------------------------ 2 files changed, 44 insertions(+), 56 deletions(-) delete mode 100644 xen/arch/x86/boot/build32.mk diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile index 73a3b1514965..3580a9b656e8 100644 --- a/xen/arch/x86/boot/Makefile +++ b/xen/arch/x86/boot/Makefile @@ -1,23 +1,51 @@ obj-bin-y +=3D head.o +head-objs :=3D cmdline.S reloc.S =20 -DEFS_H_DEPS =3D $(BASEDIR)/$(src)/defs.h $(BASEDIR)/include/xen/stdbool.h +nocov-y +=3D $(head-objs:.S=3D.o) +noubsan-y +=3D $(head-objs:.S=3D.o) +targets +=3D $(head-objs:.S=3D.o) =20 -CMDLINE_DEPS =3D $(DEFS_H_DEPS) $(BASEDIR)/$(src)/video.h \ - $(BASEDIR)/include/xen/kconfig.h \ - $(BASEDIR)/include/generated/autoconf.h +head-objs :=3D $(addprefix $(obj)/, $(head-objs)) =20 -RELOC_DEPS =3D $(DEFS_H_DEPS) \ - $(BASEDIR)/include/generated/autoconf.h \ - $(BASEDIR)/include/xen/kconfig.h \ - $(BASEDIR)/include/xen/multiboot.h \ - $(BASEDIR)/include/xen/multiboot2.h \ - $(BASEDIR)/include/xen/const.h \ - $(BASEDIR)/include/public/arch-x86/hvm/start_info.h +$(obj)/head.o: $(head-objs) =20 -$(obj)/head.o: $(obj)/cmdline.S $(obj)/reloc.S +LDFLAGS_DIRECT_OpenBSD =3D _obsd +LDFLAGS_DIRECT_FreeBSD =3D _fbsd +$(head-objs:.S=3D.lnk): LDFLAGS_DIRECT :=3D -melf_i386$(LDFLAGS_DIRECT_$(X= EN_OS)) =20 -$(obj)/cmdline.S: $(src)/cmdline.c $(CMDLINE_DEPS) $(src)/build32.lds - $(MAKE) -f $(BASEDIR)/$(src)/build32.mk -C $(obj) $(@F) CMDLINE_DEPS=3D"$= (CMDLINE_DEPS)" +CFLAGS_x86_32 :=3D -m32 -march=3Di686 +CFLAGS_x86_32 +=3D -fno-strict-aliasing +CFLAGS_x86_32 +=3D -std=3Dgnu99 +CFLAGS_x86_32 +=3D -Wall -Wstrict-prototypes +$(call cc-option-add,CFLAGS_x86_32,CC,-Wdeclaration-after-statement) +$(call cc-option-add,CFLAGS_x86_32,CC,-Wno-unused-but-set-variable) +$(call cc-option-add,CFLAGS_x86_32,CC,-Wno-unused-local-typedefs) +$(call cc-options-add,CFLAGS_x86_32,CC,$(EMBEDDED_EXTRA_CFLAGS)) +CFLAGS_x86_32 +=3D -Werror -fno-builtin -g0 -msoft-float +CFLAGS_x86_32 +=3D -I$(srctree)/include =20 -$(obj)/reloc.S: $(src)/reloc.c $(RELOC_DEPS) $(src)/build32.lds - $(MAKE) -f $(BASEDIR)/$(src)/build32.mk -C $(obj) $(@F) RELOC_DEPS=3D"$(R= ELOC_DEPS)" +# override for 32bit binaries +$(head-objs:.S=3D.o): CFLAGS-stack-boundary :=3D +$(head-objs:.S=3D.o): XEN_CFLAGS :=3D $(CFLAGS_x86_32) -fpic + +$(head-objs): %.S: %.bin + (od -v -t x $< | tr -s ' ' | awk 'NR > 1 {print s} {s=3D$$0}' | \ + sed 's/ /,0x/g' | sed 's/,0x$$//' | sed 's/^[0-9]*,/ .long /') >$@ + +# Drop .got.plt during conversion to plain binary format. +# Please check build32.lds for more details. +%.bin: %.lnk + $(OBJDUMP) -h $< | sed -n '/[0-9]/{s,00*,0,g;p;}' | \ + while read idx name sz rest; do \ + case "$$name" in \ + .got.plt) \ + test $$sz !=3D 0c || continue; \ + echo "Error: non-empty $$name: 0x$$sz" >&2; \ + exit $$(expr $$idx + 1);; \ + esac; \ + done + $(OBJCOPY) -O binary -R .got.plt $< $@ + + +%.lnk: %.o $(src)/build32.lds + $(LD) $(LDFLAGS_DIRECT) -N -T $(filter %.lds,$^) -o $@ $< diff --git a/xen/arch/x86/boot/build32.mk b/xen/arch/x86/boot/build32.mk deleted file mode 100644 index e90680cd9f52..000000000000 --- a/xen/arch/x86/boot/build32.mk +++ /dev/null @@ -1,40 +0,0 @@ -override XEN_TARGET_ARCH=3Dx86_32 -CFLAGS =3D -include $(XEN_ROOT)/Config.mk - -$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS)) - -CFLAGS +=3D -Werror -fno-builtin -g0 -msoft-float -CFLAGS +=3D -I$(BASEDIR)/include -CFLAGS :=3D $(filter-out -flto,$(CFLAGS))=20 - -# NB. awk invocation is a portable alternative to 'head -n -1' -%.S: %.bin - (od -v -t x $< | tr -s ' ' | awk 'NR > 1 {print s} {s=3D$$0}' | \ - sed 's/ /,0x/g' | sed 's/,0x$$//' | sed 's/^[0-9]*,/ .long /') >$@ - -# Drop .got.plt during conversion to plain binary format. -# Please check build32.lds for more details. -%.bin: %.lnk - $(OBJDUMP) -h $< | sed -n '/[0-9]/{s,00*,0,g;p;}' | \ - while read idx name sz rest; do \ - case "$$name" in \ - .got.plt) \ - test $$sz !=3D 0c || continue; \ - echo "Error: non-empty $$name: 0x$$sz" >&2; \ - exit $$(expr $$idx + 1);; \ - esac; \ - done - $(OBJCOPY) -O binary -R .got.plt $< $@ - -%.lnk: %.o build32.lds - $(LD) $(LDFLAGS_DIRECT) -N -T build32.lds -o $@ $< - -%.o: %.c - $(CC) $(CFLAGS) -c -fpic $< -o $@ - -cmdline.o: cmdline.c $(CMDLINE_DEPS) - -reloc.o: reloc.c $(RELOC_DEPS) - -.PRECIOUS: %.bin %.lnk --=20 Anthony PERARD