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

Re: [RFC PATCH] libacpi: Fix cross building x86 on arm


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Tue, 23 Aug 2022 15:09:42 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=temperror (sender ip is 63.35.35.123) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com; dmarc=temperror action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; 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=rSNSUwYWXETMBCQr7zkLdC306uf/ozGoBy2IoMyu8xQ=; b=X6iggAZDXIfjaYHnMzF+hMJOkZx04id/ojirdOnj6sQSFLmQjm1bIYWKFNsLLunezN6W1D4MNcgOnu/YSBzVoYWY2uEgI1oSU2Y2d+cX8Avj0KeEH+DydnSnz7m4IoqcdUoZraCSBZEfi+uiry5gPoRo8Y3V9YzatkFl4gokLf4JJi+3HzKvNxQq2nTniE/l4Qi6jDDhn17OCuoa/K/QPfFCoSmVbZqcvzCXxB9YUJkTnl3yjGq8fHtCIXMhOmaL8YGZCc2gsurd7WhDNO6Z2zRNHB1mCt7jvzt0LVjok+FVj2FWZVAx1Nl/qWuXfeGdm99fhSzemcjRG2+726XUcw==
  • 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=rSNSUwYWXETMBCQr7zkLdC306uf/ozGoBy2IoMyu8xQ=; b=MLpzqs64x5uOmkjQ4hII9SiTgC7JvrNpZvvmTh/sNKNVyvM8RqWl+o+Y5sWk3WIqHyr9r/WA22xSS4zNMAyypRyvE8A2ANKcfL0LYh67U35lJNRagyMyHeeWgbc4TKARVNjzk9VZ+wO2iZX5SCUJ9Zrv2HkFXC8gGq448bZGDiMK5y0GZ+k4k0p6IDN0Fbj4u54Ir8aZYKUInV52JxYycMUnkydGStMPA2prt4CFatdk/9ZlzP5TGFKNC+N4sR2I/+pXqv8rvcyCqAVvy13gh7SqQ4VtILZ1yyRjgZtnpGgyR8FTnDbGYDE0TlmvO/p0ouAcsWoiMAxbB4CvfZUD4w==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=MHaRY/PS0pftNB4Q4cDqtaXIOfl6NJKUdKHvzQHApQwnyp/6+HUIO1KsfQv3r4ZV8LHprFq6ZD+QT3B04OaE0p8rH90edXme1CzKSp5xgkMpmmhVx+d7kNPXRSHyHXY6cx5e5bnt3EumXbH26UrVfgxKLgC/WSqA2IiGIpV0jGvOXSDAJ3TeDxHGKRr8rE7EJ1Hs6fHiFtcr0FhfPmOzHyTQODD4Ir5uocc8WwNmM34uiGbPromU1lxq7BOQnugOupyh/vj3cEHq5I4z5ES5AT4v9GrYIGCYpASFSOhgdskjOfpsk5ZTTpwYnqXWB1skA0onOCbzHuYwCnld686vfA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BRVRh4mfjyXxxLOUYVAZHZ3/aEmnRoWea/zwvZ+mcAa5iWXHC1UfAY6pZL9FjhuxTZiRBGVUCSqzedNd6MfSlFn2uUbpLM+xNHIdO2iT8SPIXkk3Fr71H+QjFzwheVtRX8vv7TsSsZgUQPlJtbNk76kFUlSZVwbtcFD2yensDwYoLudZf4GB2GKCW1F8DuEMmoTvwLaF8I6PG4iHwLssur0MltdRPxIRt38m1qFQcu+r0lrZYtphp+bksg1ohJdMGXYJobSRfJiSJaB/n3HoqLjp3TEr7EsW7XDT3dnUVQYDJvjk11vQmXivuXM3oJ15u2+fyyTxFE+tsalA8mix7w==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, "julien@xxxxxxx" <julien@xxxxxxx>, Wei Liu <wl@xxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Tue, 23 Aug 2022 15:10:18 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHYttqU3r7Sk/IKHkKroerrTRS8F628a1KAgAARJACAABAJgIAAAokAgAAIAAA=
  • Thread-topic: [RFC PATCH] libacpi: Fix cross building x86 on arm

Hi,

> On 23 Aug 2022, at 15:41, Bertrand Marquis <Bertrand.Marquis@xxxxxxx> wrote:
> 
> 
> 
>> On 23 Aug 2022, at 15:31, Jan Beulich <jbeulich@xxxxxxxx> wrote:
>> 
>> On 23.08.2022 15:34, Bertrand Marquis wrote:
>>>> On 23 Aug 2022, at 13:33, Jan Beulich <jbeulich@xxxxxxxx> wrote:
>>>> On 23.08.2022 12:24, Bertrand Marquis wrote:
>>>>> --- a/tools/libacpi/mk_dsdt.c
>>>>> +++ b/tools/libacpi/mk_dsdt.c
>>>>> @@ -18,6 +18,16 @@
>>>>> #include <stdlib.h>
>>>>> #include <stdbool.h>
>>>>> #if defined(CONFIG_X86)
>>>>> +/*
>>>>> + * When building on non x86 host, arch-x86/xen.h will include xen.h 
>>>>> which will
>>>>> + * try to include the arch xen.h (for example if built on arm, x86/xen.h 
>>>>> will
>>>>> + * include xen.h which will include arch-arm.h).
>>>>> + * To prevent this effect, define x86 to have the proper sub arch 
>>>>> included when
>>>>> + * the compiler does not define it.
>>>>> + */
>>>>> +#if !(defined(__i386__) || defined(__x86_64__))
>>>>> +#define __x86_64__
>>>>> +#endif
>>>> 
>>>> Besides being confusing this depends on the order of checks in xen.h.
>>>> 
>>>>> #include <xen/arch-x86/xen.h>
>>>>> #include <xen/hvm/hvm_info_table.h>
>>>>> #elif defined(CONFIG_ARM_64)
>>>> 
>>>> At the very least you will want to #undef the auxiliary define as soon
>>>> as practically possible.
>>> 
>>> Ack
>>> 
>>>> 
>>>> But I think a different solution will want finding. Did you check what
>>>> the #include is needed for, really? I've glanced through the file
>>>> without being able to spot anything ... After all this is a build tool,
>>>> which generally can't correctly use many of the things declared in the
>>>> header.
>>> 
>>> As stated in the comment after the commit message, this is not a good
>>> solution but an hack.
>>> 
>>> Now I do not completely agree here, the tool is not really the problem
>>> but the headers are.
>> 
>> Well - the issue is the tool depending on these headers.
> 
> Yes but the tool itself cannot solve the issue, we need to have the values
> in properly accessible headers.
> 
>> 
>>> There is not such an issue on arm.
>> 
>> Then why does the tool include xen/arch-arm.h for Arm64?
> 
> Because this header defines the values required and as no such thing as 
> include xen.h.
> The point is on arm, the arch-arm.h header does not depend on per cpu defines.
> 
>> 
>>> The tool needs at least:
>>> HVM_MAX_VCPUS
>>> XEN_ACPI_CPU_MAP
>>> XEN_ACPI_CPU_MAP_LEN
>>> XEN_ACPI_GPE0_CPUHP_BIT
>>> 
>>> Which are defined in arch-x86/xen.h and hvm_info_table.h.
>>> 
>>> I am not quite sure how to get those without the current include
>> 
>> 1) Move those #define-s to a standalone header, which the ones
>> currently defining them would simply include. The tool would then
>> include _only_ this one header.
> 
> Shouldn’t we try to unify a little bit what is done on arm and x86 here ?
> Not only for this tool but in general in the public headers
> 
> I will try to reduce the problem a bit more to find what we would need to
> pull out in a standalone header.

Only the 3 XEN_ACPI_ are needed and those are in fact only used by mk_dsdt.c.
How about moving those to a xen-acpi.h header and include that one in xen.h ?

Other solution as those are only used in mk_dsdt, I could just define them 
there …

This is the commit which created the issue:
https://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=d6ac8e22c7c5525db1da79fd1d1f03ee6b557f0d

Any other idea how to properly fix this ?

Cheers
Bertrand

> 
>> 
>> 2) Seddery on the headers, producing a local one to be used by the
>> tool.
> 
> You mean autogenerating something ? This would just move the problem.
> 
> Bertrand
> 
>> 
>> Jan


 


Rackspace

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