Re: [PATCH] selftests: vDSO: Do not rely on $ARCH for vdso_test_getrandom && vdso_test_chacha

From: Christophe Leroy
Date: Sun Sep 01 2024 - 14:43:20 EST




Le 01/09/2024 à 20:02, Jason A. Donenfeld a écrit :
On Sun, Sep 01, 2024 at 08:00:30PM +0200, Christophe Leroy wrote:
Hi Jason,

Le 01/09/2024 à 15:22, Jason A. Donenfeld a écrit :
Hi Christophe,

Hmm, I'm not so sure I like this very much. I think it's important for
these tests to fail when an arch tries to hook up the function to the
vDSO, but it's still not exported for some reason. This also regresses
the ARCH=x86_64 vs ARCH=x86 thing, which SRCARCH fixes.

What about, instead, something like below, replacing the other commit?

I need to look at it in more details and perfom a test, but after first
look I can't figure out how it would work.

When I build selftests,

to build 32 bits selftests I do:

make ARCH=powerpc CROSS_COMPILE=ppc-linux-

to build a 64 bits BE selftests I do:

make ARCH=powerpc CROSS_COMPILE=powerpc64-linux-

to build a 64 bits LE selftests I do:

make ARCH=powerpc CROSS_COMPILE=powerpc64le-linux-


I addition, in case someone does the build on a native platform directly,

On 32 bits, uname -m returns 'ppc'
On 64 bits, uname -m returns 'ppc64'
On 64 bits little endian, uname -m returns 'ppc64le'

How would this fit in the logic where IIUC you just remove '_64' from
'x86_64' to get 'x86'

Huh? That's not what tools/scripts/Makefile.arch does.

Hum ... yes sorry I looked at it too quickly and mixed things up with the other patch.

Nevertheless, if I understand well what tools/scripts/Makefile.arch does on an x86_64 for instance:

uname -m returns x86_64
HOSTARCH = x86 (sed -e s/x86_64/x86)
ARCH = x86
SRCARCH = x86

If you build with make ARCH=x86_64,
SRCARCH = x86

So I still can't see how you can use that to know if it is a x86_64 or not.

I don't see either what could be the result for powerpc.

By the way, in your patch I don't think you can use CONFIG_X86_32, CONFIG symbols are not known when building selftests.

Christophe