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