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

[PATCH] x86/shadow: fix build without PV or HVM


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • Date: Tue, 27 Apr 2021 12:40:03 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.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-SenderADCheck; bh=JasgR5TCxnMA8cjQDKVfqLzmgPfmxIZoYVzZ2bFEgzg=; b=hZrCJpLda/VGUg014chTJcrympvJnHhsOkJRPK+yxKWcOW/EqmN2vekSRFkv/UPQ+0VAHr39eO+8WCdrnRHUJi/7Lkpd6jiB+FVmqfJjZlPif9hsNsHS9fGa9HuSTi711KDzdaeObl9hH1JgI4bmXWJ5r7r+kGPTIldq1PJtqjswWOEwtWqLOj7Fc2wItxvWh3ES0wgKwMNa3izAgsjdiOIFgZ2ISCR4Lu5ZXFdmE7+zvPunVWdtzez6ZW5GxwsXNPcVbHDGT0IBgPp01iaJGvNsQ1Yv3TbpqE5V7iL7477D3xg/cQlkTojbMgAJsf8gOoBB3XmVOVZth9mBOGpVNg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EAwfEjWwnVg7/zng8qREDMvkEdAQogw7G7g+he8y+BEe2klLLAkAEla5UqZ+tW6N3w21F8vS5Frftk0pvRUuKn23f8tOSkPcU0dslsbgWXD6KTHhdCzpyQdl0OxwxsqbCr7jmskHK+CnpuctjF+6odA57BpNIywq97CzyKgSbK5Q9huQauZ2XWehj7pKNDArZRnxpxiVCVhXjEpi2hJ60PCP30mmACIBJVfvaC5u/qJTnBVP26u05O+FGkOuiZDnqxZtETToS/vB064JL+XA8/imWoyz03mUytul9hUim3uMdRod4UrWZ6yI8QAXx4EWRrkFDZ+w4OkxDF3gRygyqw==
  • Authentication-results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Roger Pau Monne <roger.pau@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Tue, 27 Apr 2021 10:40:32 +0000
  • Ironport-hdrordr: A9a23:tyqidavkZ8MMP9R1xf9uqpeg7skCkIYji2hD6mlwRA09T+WxrO rrtOgH1BPylTYaUGwhn9fFA6WbXXbA7/dOj7U5FYyJGC3ronGhIo0n14vtxDX8Bzbzn9Qz6Y 5JSII7MtH5CDFB4frSyBWkEtom3dmM+L2pg+Cb9Ht2UQR2cchbjztRICzzKDwQeCBtA50lGJ 2Aovddrz27dngNKui9DH8JX+/Mzue76a7OSxgAGhIh9U2ynSqlgYSKaSSw8zU/d3d0wbkk+X XYiACR3MSemtyy1xO07R6r0714g93ko+EzYfCkrugwBnHShh2zZIJnMofyzQwdhO208l4lnJ 3tjn4bTrxOwkjcdG20vhfhsjOIuF1Fhg6AuD3o8kfLmsDlWCk8T/NImIMxSGqm12MboNp+3K hXtljp0aZ/MBWoplWY2/H4EztulkayvEM4l/8Sg3F1QeIlGcBshL1a00VPHJgaGiXmrKghDe l1FcnZoM1baFWAchnizyRS6e3pek52MgaNQ0AEtMDQ+z9KnEphx09d4MAEhH8P+L80VpEs3Z WJDo1Y0JV1CuMGZ6N0A+kMBeGtDHbWfB7KOGWOZXz6CaAuIRv22t/KyYRwwNvvVI0DzZM0lp iEekhfr3QOd0XnDtDL9IFX8yrKXH62UV3Wu49jzqk8noe5aKvgMCWFRlxrudCnue8jDsrSXO v2F4lRB9PlMGvyCadE1wDzQPBpWDojefxQnux+d0OFo8rNJIGvnPfcauzvKL3kFithem6XOA pAYBHDYOF7qmy7UH7xhxbcH1n3fFbkwJ52GK/Gu8wayI0HMJxwohEY4G7Jo/2jGHlniOgbbU F+KLTonueQvm+t51vF6G1vJ157AltK5q7jF1dHvxUDPU+xUbtrgaTRRUlimF+8YjNvRcLfFw BS435t/7isEpCWzSc+T/S9MmybiHMXjGmQT4gVn5CC4cuNQOJ5Mr8WHIhKUSnbHR18nghn7E 1ZbhUfe0PZHjTyzZm+gIcsH+HZfdlkiAKNKcpZwEiv8Xm0lIUKfD82TjSuWcmYjUILSyBPjl N8yaMZnYGNgC2iM2c5neQ+PmBdcWj/OsM3MC21IKFv3pz7cgB5SmmHwQaXjBw+YULG3UQfjG 6JF1zdRdj7Rn5m/lxI2Kfj9115MliHd0Vrc3ZgrMlWDmLdoEt+1ueNe4u+22accUE53+kYKT 3JCAFiZT9G9pSS7lq4iTyCHXIpytESJeTbFq0kaKyW9XW3KoGE/Jt2aMN8zdJADpTJveAKW+ 7EJFPQAzP8Fu8z2wua4lwiIzJ5rXE4kfXunD3phVLIqUIXML73GhBBQbpeHvS3q07DbNyM2I 9ijd00sfCrW1+BI+Ku+OXyVXp7NhjXoWSKVOkmppBfgLIquNJIbuvmeAqN8EsC4Q43I8j1nn 4PWahX4LjOPYl0YswZEhgpimYBpZCqJEsvvheeOJ5EQXgdy1vaNciO+bzGtP4GBVCAvhL5PT CkgmZg1saAeyuIzrgBDa0sZUxQdUgn8XxnuMePbZfZBgnvV+ZN+jOBQzWAWY4YbKiOArMLqB lmp/mOgu+MbiL9nDnqggETGNM5z0+XBeWoAAyNHuZU89u1fXS065HanPKbvXPQUju0a0MRmI tfU1cfB/4zzAUfsA==
  • Ironport-sdr: 1/+UHZH78b/gU5M8xinw8TUpM0/k6kfgKhQwx87YOHmZCvLWIANbX67LtGJMKMWIoPEsXw37tL 3kvkyQ69JF5Kp0XPwbpezt1lFXMXMGeTZrZaV6rM0AXOsrHzLgVoMyMK8vzgPSPXPYWg2ChegN AZ6XOMdZW41VCVWJB/U6lFv6797h0dGl34gycwR8TD8VXHKS8CZMXNGj3GGYe3/ZxQiGcSxRWm T8legNedOiux1Z3XK8MlNzaxPpGxDTD+IkC8twsDIouvR1TdVcEaZHTE9kSZZDC4gWGUUOJOLL u7E=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

When trying to build an hypervisor without PV or HVM (ie: using
automation/configs/x86/no_hvm_pv_config) it fails to link with:

prelink.o: In function `sh_remove_write_access_from_sl1p':
arch/x86/mm/shadow/common.c:(.text+0x72b4c): undefined reference to 
`sh_rm_write_access_from_sl1p__guest_4'
arch/x86/mm/shadow/common.c:(.text+0x72b4c): relocation truncated to fit: 
R_X86_64_PC32 against undefined symbol `sh_rm_write_access_from_sl1p__guest_4'
prelink.o: In function `sh_remove_shadow_via_pointer':
arch/x86/mm/shadow/common.c:(.text+0x72bfa): undefined reference to 
`sh_clear_shadow_entry__guest_4'
arch/x86/mm/shadow/common.c:(.text+0x72bfa): relocation truncated to fit: 
R_X86_64_PC32 against undefined symbol `sh_clear_shadow_entry__guest_4'
prelink.o: In function `_sh_resync':
arch/x86/mm/shadow/common.c:(.text+0x72e4a): undefined reference to 
`sh_resync_l1__guest_4'
arch/x86/mm/shadow/common.c:(.text+0x72e4a): relocation truncated to fit: 
R_X86_64_PC32 against undefined symbol `sh_resync_l1__guest_4'
prelink.o: In function `shadow_vcpu_init':
(.text+0x72eeb): undefined reference to `sh_paging_mode__guest_4'
prelink.o: In function `shadow_vcpu_init':
(.text+0x72eeb): relocation truncated to fit: R_X86_64_PC32 against undefined 
symbol `sh_paging_mode__guest_4'
prelink.o: In function `sh_resync_all':
(.text+0x73315): undefined reference to `sh_safe_not_to_sync__guest_4'
prelink.o: In function `sh_resync_all':
(.text+0x73315): relocation truncated to fit: R_X86_64_PC32 against undefined 
symbol `sh_safe_not_to_sync__guest_4'
prelink.o: In function `sh_resync_all':
(.text+0x7336a): undefined reference to `sh_resync_l1__guest_4'
prelink.o: In function `sh_resync_all':
(.text+0x7336a): relocation truncated to fit: R_X86_64_PC32 against undefined 
symbol `sh_resync_l1__guest_4'
prelink.o: In function `sh_validate_guest_entry':
(.text+0x736bd): undefined reference to `sh_map_and_validate_gl4e__guest_4'
prelink.o: In function `sh_validate_guest_entry':
(.text+0x736bd): relocation truncated to fit: R_X86_64_PC32 against undefined 
symbol `sh_map_and_validate_gl4e__guest_4'
prelink.o: In function `sh_validate_guest_entry':
(.text+0x736dd): undefined reference to `sh_map_and_validate_gl1e__guest_4'
prelink.o: In function `sh_validate_guest_entry':
(.text+0x736dd): relocation truncated to fit: R_X86_64_PC32 against undefined 
symbol `sh_map_and_validate_gl1e__guest_4'
prelink.o: In function `sh_validate_guest_entry':
(.text+0x736fd): undefined reference to `sh_map_and_validate_gl2e__guest_4'
prelink.o: In function `sh_validate_guest_entry':
(.text+0x736fd): relocation truncated to fit: R_X86_64_PC32 against undefined 
symbol `sh_map_and_validate_gl2e__guest_4'
prelink.o: In function `sh_validate_guest_entry':
(.text+0x7371d): undefined reference to `sh_map_and_validate_gl2he__guest_4'
prelink.o: In function `sh_validate_guest_entry':
(.text+0x7371d): relocation truncated to fit: R_X86_64_PC32 against undefined 
symbol `sh_map_and_validate_gl2he__guest_4'
prelink.o: In function `sh_validate_guest_entry':
(.text+0x7373d): undefined reference to `sh_map_and_validate_gl3e__guest_4'
prelink.o: In function `sh_validate_guest_entry':
(.text+0x7373d): additional relocation overflows omitted from the output
prelink.o: In function `shadow_unhook_mappings':
(.text+0x7379b): undefined reference to `sh_unhook_64b_mappings__guest_4'
prelink.o: In function `sh_destroy_shadow':
(.text+0x74183): undefined reference to `sh_destroy_l1_shadow__guest_4'
prelink.o: In function `sh_destroy_shadow':
(.text+0x74199): undefined reference to `sh_destroy_l4_shadow__guest_4'
prelink.o: In function `sh_destroy_shadow':
(.text+0x741a1): undefined reference to `sh_destroy_l3_shadow__guest_4'
prelink.o: In function `sh_destroy_shadow':
(.text+0x741a9): undefined reference to `sh_destroy_l2_shadow__guest_4'
prelink.o:(.data.rel.ro.local+0x1018): undefined reference to 
`sh_remove_l1_shadow__guest_4'
prelink.o:(.data.rel.ro.local+0x1020): undefined reference to 
`sh_remove_l1_shadow__guest_4'
prelink.o:(.data.rel.ro.local+0x1028): undefined reference to 
`sh_remove_l2_shadow__guest_4'
prelink.o:(.data.rel.ro.local+0x1030): undefined reference to 
`sh_remove_l3_shadow__guest_4'
prelink.o:(.data.rel.ro.local+0x1068): undefined reference to 
`sh_rm_mappings_from_l1__guest_4'
prelink.o:(.data.rel.ro.local+0x1070): undefined reference to 
`sh_rm_mappings_from_l1__guest_4'
ld: /root/src/xen/xen/.xen-syms.0: hidden symbol 
`sh_destroy_l2_shadow__guest_4' isn't defined
ld: final link failed: Bad value

Fix this by making shadow depend on either PV or HVM being selected in
Kconfig.

Fixes: aff8bf94ce6 ('x86/shadow: only 4-level guest code needs building when 
!HVM')
Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
---
 xen/arch/x86/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 32b9f23a20e..966b3634591 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -121,6 +121,7 @@ config XEN_SHSTK
 
 config SHADOW_PAGING
        bool "Shadow Paging"
+       depends on PV || HVM
        default !PV_SHIM_EXCLUSIVE
        depends on PV || HVM
        ---help---
-- 
2.30.1




 


Rackspace

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