lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3150e796-9249-4ac1-a91a-7efb7ec4de16@csgroup.eu>
Date: Thu, 30 Jan 2025 08:02:32 +0100
From: Christophe Leroy <christophe.leroy@...roup.eu>
To: Purva Yeshi <purvayeshi550@...il.com>, skhan@...uxfoundation.org
Cc: shuah@...nel.org, Jason@...c4.com, liaoyu15@...wei.com,
 broonie@...nel.org, linux-kselftest@...r.kernel.org,
 linux-kernel@...r.kernel.org
Subject: Re: [PATCH] selftests/vDSO: Fix undefined CLONE_NEWTIME by including



Le 29/01/2025 à 19:17, Purva Yeshi a écrit :
> 
> On 27/01/25 13:32, Christophe Leroy wrote:
>>
>>
>> Le 26/01/2025 à 11:59, Purva Yeshi a écrit :
>>> [Vous ne recevez pas souvent de courriers de purvayeshi550@...il.com.
>>> Découvrez pourquoi ceci est important à
>>> https://aka.ms/LearnAboutSenderIdentification ]
>>>
>>> Fix the build failure caused by the undefined `CLONE_NEWTIME`.
>>> Include the `linux/sched.h` header file where the function is defined to
>>> ensure successful compilation of the selftests.
>>
>> This is supposed to be already fixed by commit 34d5b600172b ("selftests:
>> vDSO: Explicitly include sched.h")
>>
>> Can you explain what is the exact problem still ? And why linux/sched.h ?
> 
> Yes, I noticed that sched.h is already included, but I still encountered
> an "undeclared CLONE_NEWTIME" error during compilation.

Must be that your sched.h is not up-to-date I guess. On my side I have:

/usr/include/linux/sched.h:#define CLONE_NEWTIME	0x00000080	/* New time 
namespace */
/usr/include/bits/sched.h:#define CLONE_NEWTIME	0x00000080      /* New 
time namespace */

And

/usr/include/sched.h:#include <bits/sched.h>


> 
> Error I got:
> CC       vdso_test_getrandom
> vdso_test_getrandom.c: In function ‘kselftest’:
> vdso_test_getrandom.c:257:29: error: ‘CLONE_NEWTIME’ undeclared (first
> use in this function); did you mean ‘CLONE_NEWPID’?
>    257 |         ksft_assert(unshare(CLONE_NEWTIME) == 0);
>        |                             ^~~~~
> vdso_test_getrandom.c:47:20: note: in definition of macro ‘ksft_assert’
>     47 |         do { if (!(condition)) ksft_exit_fail_msg("Assertion
> failed: %s\n", #condition); } while (0)
>        |                    ^~~~~
> vdso_test_getrandom.c:257:29: note: each undeclared identifier is
> reported only once for each function it appears in
>    257 |         ksft_assert(unshare(CLONE_NEWTIME) == 0);
>        |                             ^~~~~
> vdso_test_getrandom.c:47:20: note: in definition of macro ‘ksft_assert’
>     47 |         do { if (!(condition)) ksft_exit_fail_msg("Assertion
> failed: %s\n", #condition); } while (0)
>        |                    ^~~~~
> make[1]: * [../lib.mk:222:
> /home/purva/linux/tools/testing/selftests/vDSO/vdso_test_getrandom] Error 1
> make[1]: Leaving directory '/home/purva/linux/tools/testing/selftests/vDSO'
> 
> I found that CLONE_NEWTIME is declared in both sched.h and
> linux/sched.h. Since sched.h was already included, it was surprising
> that the error persisted. Adding linux/sched.h as a header resolved the
> issue, and the selftests compiled successfully after that.

Can you recheck that the sched.h that contains CLONE_NEWTIME is really 
the one used by your compiler ?

> 
>>
>> Did you properly build kernel headers before building selftests ?
> 
> Yes, I ensured that I properly built the kernel headers before building
> the selftests by following the documentation provided here


At the end we should probably wonder if we want selftests to build with 
old libc's that do not include latest defines. If we want to, then you 
should probably replace sched.h by linux/sched.h . I'm not sure about 
what to do really.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ