2022-11-09 11:34:56

by Punit Agrawal

[permalink] [raw]
Subject: [PATCH] selftests: proc: Fix proc-empty-vm build error on non x86_64

The proc-empty-vm test is implemented for x86_64 and fails to build
for other architectures. Rather then emitting a compiler error it
would be preferable to only build the test on supported architectures.

Mark proc-empty-vm as a test for x86_64 and customise to the Makefile
to build it only when building for this target architecture.

Fixes: 5bc73bb3451b ("proc: test how it holds up with mapping'less process")
Signed-off-by: Punit Agrawal <[email protected]>
---
tools/testing/selftests/proc/Makefile | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/proc/Makefile b/tools/testing/selftests/proc/Makefile
index cd95369254c0..6b31439902af 100644
--- a/tools/testing/selftests/proc/Makefile
+++ b/tools/testing/selftests/proc/Makefile
@@ -1,14 +1,18 @@
# SPDX-License-Identifier: GPL-2.0-only
+
+# When ARCH not overridden for crosscompiling, lookup machine
+ARCH ?= $(shell uname -m 2>/dev/null || echo not)
+
CFLAGS += -Wall -O2 -Wno-unused-function
CFLAGS += -D_GNU_SOURCE
LDFLAGS += -pthread

-TEST_GEN_PROGS :=
+TEST_GEN_PROGS_x86_64 += proc-empty-vm
+
TEST_GEN_PROGS += fd-001-lookup
TEST_GEN_PROGS += fd-002-posix-eq
TEST_GEN_PROGS += fd-003-kthread
TEST_GEN_PROGS += proc-loadavg-001
-TEST_GEN_PROGS += proc-empty-vm
TEST_GEN_PROGS += proc-pid-vm
TEST_GEN_PROGS += proc-self-map-files-001
TEST_GEN_PROGS += proc-self-map-files-002
--
2.30.2



2022-11-09 18:05:02

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: [PATCH] selftests: proc: Fix proc-empty-vm build error on non x86_64

On Wed, Nov 09, 2022 at 11:06:21AM +0000, Punit Agrawal wrote:
> The proc-empty-vm test is implemented for x86_64 and fails to build
> for other architectures. Rather then emitting a compiler error it
> would be preferable to only build the test on supported architectures.

Ehh, can you just port it to whatever arch you're using?
What's the address space on arm/arm64?

#ifdef __amd64__
munmap(NULL, ((size_t)1 << 47) - 4096);
#else
#error "implement 'unmap everything'"
#endif

This program is almost arch-independent.

> +TEST_GEN_PROGS_x86_64 += proc-empty-vm

2022-11-09 23:08:16

by Punit Agrawal

[permalink] [raw]
Subject: Re: [PATCH] selftests: proc: Fix proc-empty-vm build error on non x86_64

Punit Agrawal <[email protected]> writes:

> The proc-empty-vm test is implemented for x86_64 and fails to build
> for other architectures. Rather then emitting a compiler error it
> would be preferable to only build the test on supported architectures.
>
> Mark proc-empty-vm as a test for x86_64 and customise to the Makefile
> to build it only when building for this target architecture.
>
> Fixes: 5bc73bb3451b ("proc: test how it holds up with mapping'less process")
> Signed-off-by: Punit Agrawal <[email protected]>
> ---
> tools/testing/selftests/proc/Makefile | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/proc/Makefile b/tools/testing/selftests/proc/Makefile
> index cd95369254c0..6b31439902af 100644
> --- a/tools/testing/selftests/proc/Makefile
> +++ b/tools/testing/selftests/proc/Makefile
> @@ -1,14 +1,18 @@
> # SPDX-License-Identifier: GPL-2.0-only
> +
> +# When ARCH not overridden for crosscompiling, lookup machine
> +ARCH ?= $(shell uname -m 2>/dev/null || echo not)
> +
> CFLAGS += -Wall -O2 -Wno-unused-function
> CFLAGS += -D_GNU_SOURCE
> LDFLAGS += -pthread
>
> -TEST_GEN_PROGS :=
> +TEST_GEN_PROGS_x86_64 += proc-empty-vm
> +
> TEST_GEN_PROGS += fd-001-lookup
> TEST_GEN_PROGS += fd-002-posix-eq
> TEST_GEN_PROGS += fd-003-kthread
> TEST_GEN_PROGS += proc-loadavg-001
> -TEST_GEN_PROGS += proc-empty-vm
> TEST_GEN_PROGS += proc-pid-vm
> TEST_GEN_PROGS += proc-self-map-files-001
> TEST_GEN_PROGS += proc-self-map-files-002

I noticed that a hunk has gone missing from the patch. Please ignore
this version - I'll post an updated one shortly.