[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCHv4 11/43] arch/arm64: Add processor optimization GCC flags for arm64
On 10.07.2018 14:28, Julien Grall wrote: On 10/07/18 08:02, Wei Chen wrote:Hi Julien,Hi Wei,-----Original Message----- From: Julien Grall <julien.grall@xxxxxxx> Sent: 2018年7月9日 18:26 To: Wei Chen <Wei.Chen@xxxxxxx>; minios-devel@xxxxxxxxxxxxxxxxxxxx; simon.kuenzer@xxxxxxxxx Cc: Kaly Xin <Kaly.Xin@xxxxxxx>; nd <nd@xxxxxxx>Subject: Re: [Minios-devel] [UNIKRAFT PATCHv4 11/43] arch/arm64: Add processoroptimization GCC flags for arm64 On 09/07/18 10:17, Wei Chen wrote:Hi Julien,Hi,-----Original Message----- From: Julien Grall <julien.grall@xxxxxxx> Sent: 2018年7月8日 5:59 To: Wei Chen <Wei.Chen@xxxxxxx>; minios-devel@xxxxxxxxxxxxxxxxxxxx; simon.kuenzer@xxxxxxxxx Cc: Kaly Xin <Kaly.Xin@xxxxxxx>; nd <nd@xxxxxxx> Subject: Re: [Minios-devel] [UNIKRAFT PATCHv4 11/43] arch/arm64: Addprocessoroptimization GCC flags for arm64 Hi Wei, On 07/06/2018 10:03 AM, Wei Chen wrote:We added serval arm64 CPU models in support list. In this patch,s/serval/several/Oh, thanks again!Cheers,we check the GCC version and add optimization GCC flags for selected processor. Current supported arm64 CPU models: native, generic, cortex-a53, cortex-a57, cortex-a72, cortex-a73, cortex-a55 and cortex-a75. Signed-off-by: Wei Chen <Wei.Chen@xxxxxxx> --- arch/arm/arm64/Compiler.uk | 6 ++++++arch/arm/arm64/Makefile.uk | 43 ++++++++++++++++++++++++++++++++++++++2 files changed, 49 insertions(+) create mode 100644 arch/arm/arm64/Compiler.uk create mode 100644 arch/arm/arm64/Makefile.uk diff --git a/arch/arm/arm64/Compiler.uk b/arch/arm/arm64/Compiler.uk new file mode 100644 index 0000000..4572013 --- /dev/null +++ b/arch/arm/arm64/Compiler.uk @@ -0,0 +1,6 @@ +# set cross compile +ifeq ($(CONFIG_CROSS_COMPILE),) +ifneq ($(CONFIG_UK_ARCH),$(HOSTARCH)) + CONFIG_CROSS_COMPILE := aarch64-linux-gnu- +endif +endif diff --git a/arch/arm/arm64/Makefile.uk b/arch/arm/arm64/Makefile.uk new file mode 100644 index 0000000..f6aeeac --- /dev/null +++ b/arch/arm/arm64/Makefile.uk @@ -0,0 +1,43 @@ +ASFLAGS += -D__ARM_64__ +CFLAGS += -D__ARM_64__ -fms-extensions +CXXFLAGS += -D__ARM_64__ -fms-extensionsI would rather avoid to define yet another macro and re-use __aarch64__defined by the aarch64 compiler.It does make sense. But I am not sure if we keep __ARM_64__ here can improve the compatibility for other libraries. Because for internal libraries we can__aarch64__ uniformly. But for external libraries, we change them to__aarch64__Easily.If other libraries are using __ARM_64__, then I would say go an fix your libraries :). But I would expect most of them to use what's the compiler provide. Unfortunately, we did this mistake already with x86. It mainly came from code that we ported from Mini-OS (__X86_64__). Providing __ARM_64__ is now just being consistent with the status quo of Unikraft. On the other hand, the compiler provided macros (e.g., __aarch64__) are anyways there and should be best practice to use those. On the other hand, it does not hurt right now to keep __ARM_64__. I would say, if we want to get rid of this one, we should also get rid of the x86 ones but I would prefer this with another and independent patch series. Do you know from which version the GCC started to support __aarch64__ macroby default? Or if we don't use GCC, does other compiler like LLVM still provide __aarch64__ macro? For now, we support only GCC. So it is fine to focus on this one. There are even other places in the code (e.g., nolibc) that rely on GCC definitions and would need to get fixed to support different compilers - especially when the one is not GCC compatible. I don't know which GCC version that started to support __aarch64__, but I am ready to be this was there since the beginning as there are counterpart for other architectures [1].Note that, we have been using that macro on Xen since that arm64 port was added (5 years ago).For other compiler, while this is a GNU C extension, this is also at least defined by Clang. I would not be surprised if other supports that too as some headers will require to have different behavior depending on the architecture.Cheers, [1] https://sourceforge.net/p/predef/wiki/Architectures/ _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |