[PATCH v2] selftests/pidfd: Fix duplicate-symbol warnings for SCHED_ CPP symbols

Paul E. McKenney posted 1 patch 2 months, 2 weeks ago
pidfd.h |    9 +++++++++
1 file changed, 9 insertions(+)
[PATCH v2] selftests/pidfd: Fix duplicate-symbol warnings for SCHED_ CPP symbols
Posted by Paul E. McKenney 2 months, 2 weeks ago
The pidfd selftests run in userspace and include both userspace and kernel
header files.  On some distros (for example, CentOS), this results in
duplicate-symbol warnings in allmodconfig builds, while on other distros
(for example, Ubuntu) it does not.

Therefore, use #undef to get rid of the userspace definitions in favor
of the kernel definitions.

Other ways of handling this include splitting up the selftest code so
that the userspace definitions go into one translation unit and the
kernel definitions into another (which might or might not be feasible)
or to adjust compiler command-line options to suppress the warnings
(which might or might not be desirable).

[ paulmck: Apply Shuah Khan feedback. ]

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>
Cc: Christian Brauner <brauner@kernel.org>
Cc: <linux-kselftest@vger.kernel.org>

---
 pidfd.h |    9 +++++++++
 1 file changed, 9 insertions(+)

Changes since v1 (RFC):

o	Added comment explaining the purpose of the #undef calls per
	Shuah Khan feedback.

diff --git a/tools/testing/selftests/pidfd/pidfd.h b/tools/testing/selftests/pidfd/pidfd.h
index efd74063126eb..254eaa6cc4dfa 100644
--- a/tools/testing/selftests/pidfd/pidfd.h
+++ b/tools/testing/selftests/pidfd/pidfd.h
@@ -16,6 +16,15 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 
+/*
+ * Remove the userspace definitions of the following preprocessor symbols
+ * to avoid duplicate-definition warnings from the subsequent in-kernel
+ * definitions.
+ */
+#undef SCHED_NORMAL
+#undef SCHED_FLAG_KEEP_ALL
+#undef SCHED_FLAG_UTIL_CLAMP
+
 #include "../kselftest.h"
 #include "../clone3/clone3_selftests.h"
Re: [PATCH v2] selftests/pidfd: Fix duplicate-symbol warnings for SCHED_ CPP symbols
Posted by Shuah Khan 2 months, 1 week ago
On 7/23/25 17:13, Paul E. McKenney wrote:
> The pidfd selftests run in userspace and include both userspace and kernel
> header files.  On some distros (for example, CentOS), this results in
> duplicate-symbol warnings in allmodconfig builds, while on other distros
> (for example, Ubuntu) it does not.
> 
> Therefore, use #undef to get rid of the userspace definitions in favor
> of the kernel definitions.
> 
> Other ways of handling this include splitting up the selftest code so
> that the userspace definitions go into one translation unit and the
> kernel definitions into another (which might or might not be feasible)
> or to adjust compiler command-line options to suppress the warnings
> (which might or might not be desirable).
> 
> [ paulmck: Apply Shuah Khan feedback. ]

Looks good to me.

thanks,
-- Shuah
Re: [PATCH v2] selftests/pidfd: Fix duplicate-symbol warnings for SCHED_ CPP symbols
Posted by Shuah Khan 2 months, 1 week ago
On 7/24/25 12:26, Shuah Khan wrote:
> On 7/23/25 17:13, Paul E. McKenney wrote:
>> The pidfd selftests run in userspace and include both userspace and kernel
>> header files.  On some distros (for example, CentOS), this results in
>> duplicate-symbol warnings in allmodconfig builds, while on other distros
>> (for example, Ubuntu) it does not.
>>
>> Therefore, use #undef to get rid of the userspace definitions in favor
>> of the kernel definitions.
>>
>> Other ways of handling this include splitting up the selftest code so
>> that the userspace definitions go into one translation unit and the
>> kernel definitions into another (which might or might not be feasible)
>> or to adjust compiler command-line options to suppress the warnings
>> (which might or might not be desirable).
>>
>> [ paulmck: Apply Shuah Khan feedback. ]
> 
> Looks good to me.
>

I picked this up for Linux 6.17-rc1.

thanks,
-- Shuah
Re: [PATCH v2] selftests/pidfd: Fix duplicate-symbol warnings for SCHED_ CPP symbols
Posted by Paul E. McKenney 2 months, 1 week ago
On Thu, Jul 24, 2025 at 04:17:07PM -0600, Shuah Khan wrote:
> On 7/24/25 12:26, Shuah Khan wrote:
> > On 7/23/25 17:13, Paul E. McKenney wrote:
> > > The pidfd selftests run in userspace and include both userspace and kernel
> > > header files.  On some distros (for example, CentOS), this results in
> > > duplicate-symbol warnings in allmodconfig builds, while on other distros
> > > (for example, Ubuntu) it does not.
> > > 
> > > Therefore, use #undef to get rid of the userspace definitions in favor
> > > of the kernel definitions.
> > > 
> > > Other ways of handling this include splitting up the selftest code so
> > > that the userspace definitions go into one translation unit and the
> > > kernel definitions into another (which might or might not be feasible)
> > > or to adjust compiler command-line options to suppress the warnings
> > > (which might or might not be desirable).
> > > 
> > > [ paulmck: Apply Shuah Khan feedback. ]
> > 
> > Looks good to me.
> 
> I picked this up for Linux 6.17-rc1.

Thank you, Shuah!

							Thanx, Paul