There is an arch/ tree under tools. This contains some useful stuff, to
make that available, import the necessary Make helper file and then add
it to the -I flags.
There still aren't that many headers so also just smush all of them into
SHARED_DEPS instead of starting to do any header dependency hocus pocus.
Signed-off-by: Brendan Jackman <jackmanb@google.com>
---
tools/testing/shared/shared.mk | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/testing/shared/shared.mk b/tools/testing/shared/shared.mk
index 923ee2492256b693c5cf16cc014d9d2410be5457..937aaa7623320da1085a8e0f43f6a728ddd3ab1c 100644
--- a/tools/testing/shared/shared.mk
+++ b/tools/testing/shared/shared.mk
@@ -1,6 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
+include ../../scripts/Makefile.arch
-CFLAGS += -I../shared -I. -I../../include -I../../../lib -g -Og -Wall \
+CFLAGS += -I../shared -I. -I../../include -I../../arch/$(SRCARCH)/include \
+ -I../../../lib -g -Og -Wall \
-D_LGPL_SOURCE -fsanitize=address -fsanitize=undefined
LDFLAGS += -fsanitize=address -fsanitize=undefined
LDLIBS += -lpthread -lurcu
@@ -11,6 +13,7 @@ SHARED_DEPS = Makefile ../shared/shared.mk ../shared/*.h generated/map-shift.h \
generated/bit-length.h generated/autoconf.h \
../../include/linux/*.h \
../../include/asm/*.h \
+ ../../arch/$(SRCARCH)/include/asm/*.h \
../../../include/linux/xarray.h \
../../../include/linux/maple_tree.h \
../../../include/linux/radix-tree.h \
--
2.50.1
On Wed, Aug 27, 2025 at 11:04:41AM +0000, Brendan Jackman wrote: > There is an arch/ tree under tools. This contains some useful stuff, to > make that available, import the necessary Make helper file and then add > it to the -I flags. > > There still aren't that many headers so also just smush all of them into > SHARED_DEPS instead of starting to do any header dependency hocus pocus. > > Signed-off-by: Brendan Jackman <jackmanb@google.com> LGTM, + works locally so: Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> > --- > tools/testing/shared/shared.mk | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/shared/shared.mk b/tools/testing/shared/shared.mk > index 923ee2492256b693c5cf16cc014d9d2410be5457..937aaa7623320da1085a8e0f43f6a728ddd3ab1c 100644 > --- a/tools/testing/shared/shared.mk > +++ b/tools/testing/shared/shared.mk > @@ -1,6 +1,8 @@ > # SPDX-License-Identifier: GPL-2.0 > +include ../../scripts/Makefile.arch > > -CFLAGS += -I../shared -I. -I../../include -I../../../lib -g -Og -Wall \ > +CFLAGS += -I../shared -I. -I../../include -I../../arch/$(SRCARCH)/include \ > + -I../../../lib -g -Og -Wall \ We're also adding lib! Very very nitty but maybe mention in commit msg. But not a big deal obviously! > -D_LGPL_SOURCE -fsanitize=address -fsanitize=undefined > LDFLAGS += -fsanitize=address -fsanitize=undefined > LDLIBS += -lpthread -lurcu > @@ -11,6 +13,7 @@ SHARED_DEPS = Makefile ../shared/shared.mk ../shared/*.h generated/map-shift.h \ > generated/bit-length.h generated/autoconf.h \ > ../../include/linux/*.h \ > ../../include/asm/*.h \ > + ../../arch/$(SRCARCH)/include/asm/*.h \ I'm no Makefile master, but I'm guessing this will always be defined _somehow_ :)? > ../../../include/linux/xarray.h \ > ../../../include/linux/maple_tree.h \ > ../../../include/linux/radix-tree.h \ > > -- > 2.50.1 >
On Thu Aug 28, 2025 at 10:23 AM UTC, Lorenzo Stoakes wrote: > On Wed, Aug 27, 2025 at 11:04:41AM +0000, Brendan Jackman wrote: >> There is an arch/ tree under tools. This contains some useful stuff, to >> make that available, import the necessary Make helper file and then add >> it to the -I flags. >> >> There still aren't that many headers so also just smush all of them into >> SHARED_DEPS instead of starting to do any header dependency hocus pocus. >> >> Signed-off-by: Brendan Jackman <jackmanb@google.com> > > LGTM, + works locally so: > > Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> > >> --- >> tools/testing/shared/shared.mk | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/tools/testing/shared/shared.mk b/tools/testing/shared/shared.mk >> index 923ee2492256b693c5cf16cc014d9d2410be5457..937aaa7623320da1085a8e0f43f6a728ddd3ab1c 100644 >> --- a/tools/testing/shared/shared.mk >> +++ b/tools/testing/shared/shared.mk >> @@ -1,6 +1,8 @@ >> # SPDX-License-Identifier: GPL-2.0 >> +include ../../scripts/Makefile.arch >> >> -CFLAGS += -I../shared -I. -I../../include -I../../../lib -g -Og -Wall \ >> +CFLAGS += -I../shared -I. -I../../include -I../../arch/$(SRCARCH)/include \ >> + -I../../../lib -g -Og -Wall \ > > We're also adding lib! Very very nitty but maybe mention in commit msg. But not > a big deal obviously! No that's already there, it just looks new coz I split up the line! >> -D_LGPL_SOURCE -fsanitize=address -fsanitize=undefined >> LDFLAGS += -fsanitize=address -fsanitize=undefined >> LDLIBS += -lpthread -lurcu >> @@ -11,6 +13,7 @@ SHARED_DEPS = Makefile ../shared/shared.mk ../shared/*.h generated/map-shift.h \ >> generated/bit-length.h generated/autoconf.h \ >> ../../include/linux/*.h \ >> ../../include/asm/*.h \ >> + ../../arch/$(SRCARCH)/include/asm/*.h \ > > I'm no Makefile master, but I'm guessing this will always be defined _somehow_ :)? Ah yeah this is what the Makefile.arch include is for - I'll update the commit message to be explicit about that. v2 incoming shortly... >> ../../../include/linux/xarray.h \ >> ../../../include/linux/maple_tree.h \ >> ../../../include/linux/radix-tree.h \ >> >> -- >> 2.50.1 >>
* Brendan Jackman <jackmanb@google.com> [250827 07:04]: > There is an arch/ tree under tools. This contains some useful stuff, to > make that available, import the necessary Make helper file and then add > it to the -I flags. > > There still aren't that many headers so also just smush all of them into > SHARED_DEPS instead of starting to do any header dependency hocus pocus. > > Signed-off-by: Brendan Jackman <jackmanb@google.com> Thanks Brendan Reviewed-by: Liam R. Howlett <Liam.Howlett@oracle.com> > --- > tools/testing/shared/shared.mk | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/shared/shared.mk b/tools/testing/shared/shared.mk > index 923ee2492256b693c5cf16cc014d9d2410be5457..937aaa7623320da1085a8e0f43f6a728ddd3ab1c 100644 > --- a/tools/testing/shared/shared.mk > +++ b/tools/testing/shared/shared.mk > @@ -1,6 +1,8 @@ > # SPDX-License-Identifier: GPL-2.0 > +include ../../scripts/Makefile.arch > > -CFLAGS += -I../shared -I. -I../../include -I../../../lib -g -Og -Wall \ > +CFLAGS += -I../shared -I. -I../../include -I../../arch/$(SRCARCH)/include \ > + -I../../../lib -g -Og -Wall \ > -D_LGPL_SOURCE -fsanitize=address -fsanitize=undefined > LDFLAGS += -fsanitize=address -fsanitize=undefined > LDLIBS += -lpthread -lurcu > @@ -11,6 +13,7 @@ SHARED_DEPS = Makefile ../shared/shared.mk ../shared/*.h generated/map-shift.h \ > generated/bit-length.h generated/autoconf.h \ > ../../include/linux/*.h \ > ../../include/asm/*.h \ > + ../../arch/$(SRCARCH)/include/asm/*.h \ > ../../../include/linux/xarray.h \ > ../../../include/linux/maple_tree.h \ > ../../../include/linux/radix-tree.h \ > > -- > 2.50.1 >
On Wed, Aug 27, 2025 at 11:04:41AM +0000, Brendan Jackman wrote: > There is an arch/ tree under tools. This contains some useful stuff, to > make that available, import the necessary Make helper file and then add > it to the -I flags. > > There still aren't that many headers so also just smush all of them into > SHARED_DEPS instead of starting to do any header dependency hocus pocus. > I was a little confused as to why this patchset was safe, and - yeah - i missed the arch/ under tools/. There are asm-generic headers so hopefully those fully take care of !x86? Did you check? In any case: Acked-by: Pedro Falcato <pfalcato@suse.de> -- Pedro
On Wed Aug 27, 2025 at 12:50 PM UTC, Pedro Falcato wrote: > On Wed, Aug 27, 2025 at 11:04:41AM +0000, Brendan Jackman wrote: >> There is an arch/ tree under tools. This contains some useful stuff, to >> make that available, import the necessary Make helper file and then add >> it to the -I flags. >> >> There still aren't that many headers so also just smush all of them into >> SHARED_DEPS instead of starting to do any header dependency hocus pocus. >> > > I was a little confused as to why this patchset was safe, and - yeah - i missed > the arch/ under tools/. > > There are asm-generic headers so hopefully those fully take care of !x86? [Confidently but wihout evidence] yep, without a doubt! > Did you check? Um, OK that's fair question. This doesn't support cross-compilation so you actually need a non-x86 environment. <begin verbose notes, tl;dr: yeah seems to work for arm64> I have Nix set up to build aarch64 binaries via binfmt_misc though so I tried using that... ❯❯ cat /etc/nix/nix.conf # see https://nixos.org/manual/nix/stable/command-ref/conf-file sandbox = true max-jobs = 96 extra-platforms = aarch64-linux So I dropped this into the root of the kernel repo (and `git add`ed it otherwise Nix pretends it's not there): ❯❯ cat flake.nix { inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-25.05"; }; outputs = { self, nixpkgs, }: let system = "aarch64-linux"; pkgs = import nixpkgs { inherit system; }; in { formatter."${system}" = pkgs.nixfmt-tree; packages."${system}".vma-tests = pkgs.stdenv.mkDerivation { name = "vma-tests"; src = ./.; # (Pretty sure this is not the correct way to do this, there must be # some mkDerivation arg that's equivalent to make's -C flag) buildPhase = "make -C tools/testing/vma"; nativeBuildInputs = [ pkgs.liburcu ]; installPhase = '' mkdir $out cp tools/testing/vma/vma $out ''; checkPhase = ''./tools/testing/vma''; }; }; } And, yeah at least it compiles, and that checkPhase should have run the VMA tests: ❯❯ nix build .#packages.aarch64-linux.vma-tests warning: Git tree '/usr/local/google/home/jackmanb/src/linux/linux' is dirty ❯❯ file ./result/vma ./result/vma: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /nix/store/r0pjdp81mmd7dvk5pv1ch75hrbbw60xb-glibc-2.40-66/lib/ld-linux-aarch64.so.1, for GNU/Linux 3.10.0, with debug_info, not stripped So... that was easier than expected :)
* Brendan Jackman <jackmanb@google.com> [250827 11:07]: > On Wed Aug 27, 2025 at 12:50 PM UTC, Pedro Falcato wrote: > > On Wed, Aug 27, 2025 at 11:04:41AM +0000, Brendan Jackman wrote: > >> There is an arch/ tree under tools. This contains some useful stuff, to > >> make that available, import the necessary Make helper file and then add > >> it to the -I flags. > >> > >> There still aren't that many headers so also just smush all of them into > >> SHARED_DEPS instead of starting to do any header dependency hocus pocus. > >> > > > > I was a little confused as to why this patchset was safe, and - yeah - i missed > > the arch/ under tools/. > > > > There are asm-generic headers so hopefully those fully take care of !x86? > > [Confidently but wihout evidence] yep, without a doubt! > > > Did you check? > > Um, OK that's fair question. This doesn't support cross-compilation so > you actually need a non-x86 environment. btw, BUILD=32 works in the radix tree directory for 32bit testing. Although there appears to be some warnings right now for it. Thanks, Liam
© 2016 - 2025 Red Hat, Inc.