Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: namespace pollution? clone()



On Tue, Jul 26, 2022 at 03:03:54PM +0200, Martin Husemann wrote:
> On Tue, Jul 26, 2022 at 03:46:14PM +0300, Valery Ushakov wrote:
> > On Linux clone(2) is declared only for _GNU_SOURCE, which explains why
> > linux doesn't run into the name clash.  I gather we should follow
> > suit, as that's what the apps expect.
> 
> Yes, that is the right thing to do here, especially as clone(2) does
> only exist as a portability helper for linux code.
> 
> I think we could even pull that change up to -9.

The attached diff survived a complete amd64-current build. Ok to commit?
 Thomas
Index: sched.h
===================================================================
RCS file: /cvsroot/src/include/sched.h,v
retrieving revision 1.12
diff -u -r1.12 sched.h
--- sched.h	11 Jan 2009 03:04:12 -0000	1.12
+++ sched.h	1 Aug 2022 13:57:06 -0000
@@ -59,20 +59,26 @@
 #define sched_yield		__libc_thr_yield
 #endif /* __LIBPTHREAD_SOURCE__ */
 
-#if defined(_NETBSD_SOURCE)
-
 __BEGIN_DECLS
 
+#if defined(_NETBSD_SOURCE)
+
 /* Process affinity functions (not portable) */
 int	sched_getaffinity_np(pid_t, size_t, cpuset_t *);
 int	sched_setaffinity_np(pid_t, size_t, cpuset_t *);
 
+#endif /* _NETBSD_SOURCE */
+
+#if defined(_GNU_SOURCE)
+
 /* Historical functions, not defined in standard */
+/* Linux man page documents these functions as only available when
+ * _GNU_SOURCE is defined */
 pid_t	 clone(int (*)(void *), void *, int, void *);
 pid_t	__clone(int (*)(void *), void *, int, void *);
 
-__END_DECLS
+#endif /* _GNU_SOURCE */
 
-#endif /* _NETBSD_SOURCE */
+__END_DECLS
 
 #endif /* _SCHED_H_ */


Home | Main Index | Thread Index | Old Index