[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DCDAY7MCS3CS.2QJ54F8Z86WN6@google.com>
Date: Wed, 27 Aug 2025 15:07:02 +0000
From: Brendan Jackman <jackmanb@...gle.com>
To: Pedro Falcato <pfalcato@...e.de>
Cc: "Liam R. Howlett" <Liam.Howlett@...cle.com>, Andrew Morton <akpm@...ux-foundation.org>,
Lorenzo Stoakes <lorenzo.stoakes@...cle.com>, Vlastimil Babka <vbabka@...e.cz>,
Jann Horn <jannh@...gle.com>, <linux-kernel@...r.kernel.org>,
<maple-tree@...ts.infradead.org>, <linux-mm@...ck.org>
Subject: Re: [PATCH 1/3] tools: testing: Allow importing arch headers in shared.mk
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 :)
Powered by blists - more mailing lists