[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH RFC] build: respect top-level .config also for out-of-tree hypervisor builds


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Wed, 15 Mar 2023 15:58:59 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hoaYAksnZO1rpp8iYxRaYazVGMnUS82MF98FgInLRWg=; b=K7esE0PkY8mwnRshRizzCVoYCu6QgnXyNd0IgwykXxPXQj16UcV59sESk+srJsNX4hRrUKfQtRX5XsLQvT1M6RsYVgSGKUldc7rgVbtcZypCSN3na5wmpPsUL+iFeHThglfXKqZIlO6X+qbZgHHda/GCTXKXFOtLXgB/DgBhG3dozMLN1jBTsVyZZtVzmQRQI9tbTLuzPi58ZZ0OmJpyzW0CKgvkgxIc6brryOV6wkTYd6O9PbWr4S19w3xKNfLQw1Ccr4Dz6g5HoNvdvavRHVoNtUosE/r+7H/HpqE91bJoptNELKwrFvqc6W925ZGemE5WIxelIBgYY5dXbgQyUQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EMcq/o5oBfI5ymJlqCKKjitOpknzMHffHsk+A1o4dRAOhntSEP345mv+XSgQrdSCgxcafT/WlFUWQIFHKQ81MmLWGpoYw09XXUtKS/x6k/GJFElZG0uSmEx93+M0nYeZulAmGTHNiYoYIwzEFGs84GeVGsbXg25NTuRoJO8lwBQV2oSrkWMPHy5Ujc7qviS7FCiUpr0m7vKRDvBYgYsXJHfpDt9LSlUF81YRXvwwGCCsrUFlg+1R+SfdvKv/tW5VHkOSNPu9+pVXPWPPI+Jw0hEw7Van6F2hfdk+PopGtXRclCPXVCFblVz6BJMUUETdNn6R6eh9/KgYOEc038UqBg==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Anthony Perard <anthony.perard@xxxxxxxxxx>
  • Delivery-date: Wed, 15 Mar 2023 14:59:07 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

With in-tree builds Config.mk includes a .config file (if present) from
the top-level directory. Similar functionality is wanted with out-of-
tree builds. Yet the concept of "top-level directory" becomes fuzzy in
that case, because there is not really a requirement to have identical
top-level directory structure in the output tree; in fact there's no
need for anything top-level-ish there. Look for such a .config, but only
if the tree layout matches (read: if the directory we're building in is
named "xen").

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
RFC: The directory name based heuristic of course isn't nice. But I
     couldn't think of anything better. Suggestions?

RFC: There also being a .config in the top-level source dir would be a
     little problematic: It would be included _after_ the one in the
     object tree. Yet if such a scenario is to be expected/supported at
     all, it makes more sense the other way around.

--- a/xen/Makefile
+++ b/xen/Makefile
@@ -236,8 +236,17 @@ endif
 
 include scripts/Kbuild.include
 
-# Don't break if the build process wasn't called from the top level
-# we need XEN_TARGET_ARCH to generate the proper config
+# Don't break if the build process wasn't called from the top level.  We need
+# XEN_TARGET_ARCH to generate the proper config.  If building outside of the
+# source tree also check whether we need to include a "top-level" .config:
+# Config.mk, using $(XEN_ROOT)/.config, would look only in the source tree.
+ifeq ($(building_out_of_srctree),1)
+# Try to avoid including a random unrelated .config: Assume our parent dir
+# is a "top-level" one only when the objtree is .../xen.
+ifeq ($(patsubst %/xen,,$(abs_objtree)),)
+-include ../.config
+endif
+endif
 include $(XEN_ROOT)/Config.mk
 
 # Set ARCH/SUBARCH appropriately.
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -17,6 +17,13 @@ __build:
 
 -include $(objtree)/include/config/auto.conf
 
+# See commentary around the similar contruct in Makefile.
+ifneq ($(abs_objtree),$(abs_srctree))
+ifeq ($(patsubst %/xen,,$(abs_objtree)),)
+../.config: ;
+-include ../.config
+endif
+endif
 include $(XEN_ROOT)/Config.mk
 include $(srctree)/scripts/Kbuild.include
 



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.