Re: kernel: fix hv tools build for arm64 when cross-built

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

 



On Mon, Dec 09, 2024 at 12:44:22AM +0000, Wei Liu wrote:
> On Wed, Oct 23, 2024 at 02:01:12PM +0000, Adrian Vladu wrote:
> > Hello,
> > 
> > While trying to build the LIS daemons for Flatcar Container Linux for
> > ARM64 (https://www.flatcar.org/), as we are doing Gentoo based
> > cross-building from X64 boxes, there was an error while building those
> > daemons, because the cross-compile scenario was not working, as ` ARCH
> > := $(shell uname -m 2>/dev/null)` always returns `x86_64`.
> > 
> > I have a working patch for the Linux kernel here that was already
> > applied in the Flatcar context and it works:
> > https://github.com/flatcar/scripts/blob/94b1df1b19449eb5aa967fd48ba4c1f4a6d5f415/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/6.10/z0008-tools-hv-fix-cross-compilation-for-ARM64.patch
> > 
> > Raw patch link here:
> > https://raw.githubusercontent.com/flatcar/scripts/94b1df1b19449eb5aa967fd48ba4c1f4a6d5f415/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-sources/files/6.10/z0008-tools-hv-fix-cross-compilation-for-ARM64.patch
> > 
> > Sorry for the delivery method via github link, but I cannot send
> > proper patches from my work email address currently, as the email
> > server does not support it.
> > 
> > Please let me know if I need to send the patch via the recommended way
> > or if the patch can be used directly.
> > 
> > Also, maybe there is a better way to address the cross-compilation
> > issue, I just wanted to report the bug and also provide a possible
> > fix.
> 
> Saurabh added the ARCH variable. He's CCed.
> 
> BTW I think your patch can be simplified by using
>   ARCH ?= $(shell uname -m 2>/dev/null)
> instead of the ifeq test in your patch.

Agree, this is better way to handle it.

> 
> I don't think that's correct. ARCH will be set to the correct value by
> Kbuild. 

If we build locally on ARM64, there is a chance that ARCH may not be set,
leading to build failures for arm64. IMO we should provide a fallback
option for local builds when ARCH is not set.

> 
> Saurabh and Adrian, can you test the following patch?
> 
> Thanks,
> Wei.
> 
> >From e6a1827887617c08172e2d0ee0d60549f5ccad65 Mon Sep 17 00:00:00 2001
> From: Wei Liu <wei.liu@xxxxxxxxxx>
> Date: Mon, 9 Dec 2024 00:32:50 +0000
> Subject: [PATCH] tools/hv: fix cross-compilation issue in hv tools
> 
> The Kbuild system sets ARCH to the correct value.
> 
> Signed-off-by: Wei Liu <wei.liu@xxxxxxxxxx>
> ---
>  tools/hv/Makefile | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/tools/hv/Makefile b/tools/hv/Makefile
> index 34ffcec264ab..9008223279df 100644
> --- a/tools/hv/Makefile
> +++ b/tools/hv/Makefile
> @@ -2,7 +2,6 @@
>  # Makefile for Hyper-V tools
>  include ../scripts/Makefile.include
>  
> -ARCH := $(shell uname -m 2>/dev/null)
>  sbindir ?= /usr/sbin
>  libexecdir ?= /usr/libexec
>  sharedstatedir ?= /var/lib
> @@ -20,7 +19,7 @@ override CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include
>  override CFLAGS += -Wno-address-of-packed-member
>  
>  ALL_TARGETS := hv_kvp_daemon hv_vss_daemon
> -ifneq ($(ARCH), aarch64)
> +ifneq ($(ARCH), arm64)

My understanding is ARCH could be either aarch64 or arm64.

- Saurabh





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux