[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 14:41:04 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) 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=HzO3nDsYoHJ6q99Fr/hduddJgdFXKpPUy+dNLRhHw4s=; b=UvuZDjs3+NqeusIqVjZoFWJxlLfIjcHywiRPXC9r6f6yiNYTroSX/ynEd5ttSvR1fVAfN3K4Pf53INeUjDHwlu91wudLWRKQ0T2dOlRJFo1WEFGMgvTrJakJS1EQHDhYyEbJACpngsyZNQ167MMU/V52pvc+Yg+wGuQJQ5hYKMKsL3Pve8DgMWtazxULoDvMnmBRkcikg1/1o6cfZ7KD+hsBcwYZ7P3y4d0N7ciMkplSr/sDRBH3pJAUJj/v5nDOMizD/fRCe/Qpht6dJUYriPMTo9Cg1GrlTogfRydrAIqqi2GoL2UwdReFwUbVPIOIUebEsXtsXGqirn4Y+1JEuw==
  • 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=HzO3nDsYoHJ6q99Fr/hduddJgdFXKpPUy+dNLRhHw4s=; b=A5Oh8BjuhwBE8wBrQxmOScX2zK/ruqYRI7qExWALaTfKr21k8YcOyJIC6Vj8J3mKEQwPsFF2Xrl940CZAHlULTRNdt0NuxRu1YJ/K6CCQWpjoh4JGgECM28eDu9FWVn1+kBIpu7XwhSX8pKTcPfm+xRYvrZyJAi/wfUoGl0zH4KwsZsgxNjAZ0zpY8mwi8nCpH7tNF1NYQU9NG9RkfdHDf5jORJTlfo6Ksnyk2yYgmVZRByKEqW1lgd47RxyNyxwGbr4dqzIZj16hZ9mnt2zsbokTtf5UHPrtWummlyVH48hYEQeBrtv8PczSArWyfbvTlpcctlhPeG+HjcicKuc7w==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=GCzSon9qPbJq9w1WUiKSqPC6S6Noh8UmMm1UBoZpQRUFCwWAKCXj7TWPh1r17zhH8/15Qw7BlZV1nofL8wO+rY29+qaKAcQ2ilKXTvSzUOyBsadTH8++v5+1h7PDrFybBz7z9I7HeTqnK9enWOskdamneXcAyqzS/e/k69lB5Iinq5CiKBJlhHM87GF6/hoZ0O8OkYw07DpgyMKWQAL4R3H+xQcp6qztGyHj4XUjTBXeBpYdbkQPtFpVojgcCGcj8XjDTIqZDafN3u9s3l89GC6t+qs4mRXykXOtfBW5vIAwmsm54eAxCn6Fmtn8On44IgmEUGUyhmwVyEB2KKh8LQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Cre73Bt8Cdv458wqYvDbYL+42/7n5qCQ0aWuXHRh+fcR2+VrZHSUbqUBsE+jc3cI5Ru3wK2JM76d5apOtXyzuN3Yw2UfddlBL2vvIUvRwZoSOHC8qU2xJDOF7wfhswZNjVkzVgBuxBnSrt16SO6vUpQL6j6mu7LanVlvhzXG4LdaBoFYnY+o7fpL6jbcxV3fjO7hAj0qMqBAL4vTliY+5dWY+NXflM4KXSJW7Oshfyw0LvaPC88MUsDkV+xfsxamZUol12l4wFvd9+2qwzjNejMJ4vos491Iaojybs21NEhY/pGg342sbqaNJ4UZb80BYFEoE/W+i8Uco29E0bDGeg==
  • 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 14:41:27 +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/IKHkKroerrTRS8F628a1KAgAARJACAABAJgIAAAokA
  • Thread-topic: [RFC PATCH] libacpi: Fix cross building x86 on arm


> 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.

> 
> 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®.