svn commit: r368125 - in head/lib: libc/gen libc/include libthr/thread

Konstantin Belousov kib at FreeBSD.org
Sat Nov 28 12:19:21 UTC 2020


Author: kib
Date: Sat Nov 28 12:19:20 2020
New Revision: 368125
URL: https://svnweb.freebsd.org/changeset/base/368125

Log:
  libc: Add pthread_attr_get_np(3) stub, reporting ESRCH.
  
  This seems to be required by recent clang asan.
  I do not see other way than put the symbol under FBSD_1.0 version.
  
  PR:	251112
  Reported by:	Andrew Stitcher <astitcher at apache.org>
  Reviewed by:	emaste
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week
  Differential revision:	https://reviews.freebsd.org/D27389

Modified:
  head/lib/libc/gen/Symbol.map
  head/lib/libc/gen/_pthread_stubs.c
  head/lib/libc/include/libc_private.h
  head/lib/libthr/thread/thr_init.c

Modified: head/lib/libc/gen/Symbol.map
==============================================================================
--- head/lib/libc/gen/Symbol.map	Sat Nov 28 12:12:51 2020	(r368124)
+++ head/lib/libc/gen/Symbol.map	Sat Nov 28 12:19:20 2020	(r368125)
@@ -6,6 +6,7 @@ FBSD_1.0 {
 	__xuname;
 	pthread_atfork;
 	pthread_attr_destroy;
+	pthread_attr_get_np;
 	pthread_attr_getdetachstate;
 	pthread_attr_getguardsize;
 	pthread_attr_getinheritsched;

Modified: head/lib/libc/gen/_pthread_stubs.c
==============================================================================
--- head/lib/libc/gen/_pthread_stubs.c	Sat Nov 28 12:12:51 2020	(r368124)
+++ head/lib/libc/gen/_pthread_stubs.c	Sat Nov 28 12:19:20 2020	(r368125)
@@ -59,6 +59,7 @@ static int		stub_zero(void);
 static int		stub_fail(void);
 static int		stub_true(void);
 static void		stub_exit(void);
+static int		stub_esrch(void);
 
 #define	PJT_DUAL_ENTRY(entry)	\
 	(pthread_func_t)entry, (pthread_func_t)entry
@@ -131,6 +132,7 @@ pthread_func_entry_t __thr_jtable[PJT_MAX] = {
 	[PJT_MUTEXATTR_GETROBUST] =	{PJT_DUAL_ENTRY(stub_zero)},
 	[PJT_MUTEXATTR_SETROBUST] =	{PJT_DUAL_ENTRY(stub_zero)},
 	[PJT_GETTHREADID_NP] =		{PJT_DUAL_ENTRY(stub_zero)},
+	[PJT_ATTR_GET_NP] =		{PJT_DUAL_ENTRY(stub_esrch)},
 };
 
 /*
@@ -288,6 +290,7 @@ STUB_FUNC3(__pthread_cleanup_push_imp, PJT_CLEANUP_PUS
     void *, void *)
 STUB_FUNC1(_pthread_cancel_enter, PJT_CANCEL_ENTER, void, int)
 STUB_FUNC1(_pthread_cancel_leave, PJT_CANCEL_LEAVE, void, int)
+STUB_FUNC2(pthread_attr_get_np, PJT_ATTR_GET_NP, int, pthread_t, pthread_attr_t *)
 
 static int
 stub_zero(void)
@@ -329,4 +332,10 @@ static void
 stub_exit(void)
 {
 	exit(0);
+}
+
+static int
+stub_esrch(void)
+{
+	return (ESRCH);
 }

Modified: head/lib/libc/include/libc_private.h
==============================================================================
--- head/lib/libc/include/libc_private.h	Sat Nov 28 12:12:51 2020	(r368124)
+++ head/lib/libc/include/libc_private.h	Sat Nov 28 12:19:20 2020	(r368125)
@@ -177,6 +177,7 @@ typedef enum {
 	PJT_MUTEXATTR_GETROBUST,
 	PJT_MUTEXATTR_SETROBUST,
 	PJT_GETTHREADID_NP,
+	PJT_ATTR_GET_NP,
 	PJT_MAX
 } pjt_index_t;
 

Modified: head/lib/libthr/thread/thr_init.c
==============================================================================
--- head/lib/libthr/thread/thr_init.c	Sat Nov 28 12:12:51 2020	(r368124)
+++ head/lib/libthr/thread/thr_init.c	Sat Nov 28 12:19:20 2020	(r368125)
@@ -271,6 +271,7 @@ static pthread_func_t jmp_table[][2] = {
 	[PJT_MUTEXATTR_GETROBUST] = {DUAL_ENTRY(_thr_mutexattr_getrobust)},
 	[PJT_MUTEXATTR_SETROBUST] = {DUAL_ENTRY(_thr_mutexattr_setrobust)},
 	[PJT_GETTHREADID_NP] = {DUAL_ENTRY(_thr_getthreadid_np)},
+	[PJT_ATTR_GET_NP] = {DUAL_ENTRY(_thr_attr_get_np)},
 };
 
 static int init_once = 0;


More information about the svn-src-head mailing list