From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x733.google.com (mail-qk1-x733.google.com [IPv6:2607:f8b0:4864:20::733]) by sourceware.org (Postfix) with ESMTPS id 8C0563839C4D for ; Thu, 24 Jun 2021 17:45:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8C0563839C4D Received: by mail-qk1-x733.google.com with SMTP id c23so16178881qkc.10 for ; Thu, 24 Jun 2021 10:45:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=/kI4ilU8J/+3cI1Pdps4RiK0but+ikzk0ZDpKd0vEOI=; b=fBh6f33EVf3zmCYRp1de5fzGxWoFiAF4++B0JItJflZJsx3pgQeaGB70e/16g33xWP fLc74FxjbaG5LVhRyLu/TY7iQ7RPGJMVy8RwaqLwFSJED3cJ1A2AKFHuD0Xqx/UD+3q3 QQpgZFpNyWyP9SdFvxlFNAFPfLJ4ahBFDktzMeMvU1nzm2OoL9Nq9teeu3HZkIVOqArj n2zd3AZeImBv6ak6aIfreEGZkLHtKHby03bd1xv3/UUw+VIKQsaS3iyidTayKL23OMor bEbVKWEtw+Tjnx1N59FR0ZXl/X6czXoa/D/DFmM5Wd6NkCBUNaTOkMw3iIz+fDCUJOgo Cnrw== X-Gm-Message-State: AOAM532Y3BSdJbf7xCuviPc2h4H7hqucFd1JbCzfxbD7+cdE1jmPNLtd hHAdFXd1akM9In7/8XpyjNhM8B18Ebnx7A== X-Google-Smtp-Source: ABdhPJwtNbXeFaVeEvSDZzUUTT0M6/LQcFhyfMUnDc9jhmu6uT4j3r/HE5xAry4JEbB3Xc1EYwG8kQ== X-Received: by 2002:a37:66ca:: with SMTP id a193mr1339634qkc.252.1624556754035; Thu, 24 Jun 2021 10:45:54 -0700 (PDT) Received: from [192.168.1.108] ([177.194.59.218]) by smtp.gmail.com with ESMTPSA id d9sm3026569qko.110.2021.06.24.10.45.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 24 Jun 2021 10:45:53 -0700 (PDT) Subject: Re: [PATCH 34/34] Linux: Cleanups after librt move To: Florian Weimer , libc-alpha@sourceware.org References: From: Adhemerval Zanella Message-ID: <19f1f247-eae9-171a-bf29-1e4baefa674c@linaro.org> Date: Thu, 24 Jun 2021 14:45:51 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, URIBL_BLACK autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2021 17:45:57 -0000 On 17/06/2021 16:00, Florian Weimer via Libc-alpha wrote: > librt.so is no longer installed for PTHREAD_IN_LIBC, and tests > are not linked against it. > > GLIBC_PRIVATE symbols that were needed during the transition are > removed again. There are some more leftover I recently added to add timers on time64 tests: ifeq (yes,$(build-shared)) librt = $(common-objpfx)rt/librt.so else librt = $(common-objpfx)rt/librt.a endif The patch looks ok, but you might want to update it against master. > --- > elf/Makefile | 4 +- > nptl/Makefile | 9 ---- > rt/Makefile | 13 ++++-- > rt/Versions | 13 ------ > rt/aio_misc.c | 14 ------ > rt/aio_notify.c | 8 ---- > rt/aio_sigqueue.c | 1 - > sysdeps/generic/aio_misc.h | 43 ++++++------------- > sysdeps/pthread/Makefile | 2 + > sysdeps/unix/sysv/linux/Versions | 6 --- > sysdeps/unix/sysv/linux/aio_sigqueue.c | 1 - > sysdeps/unix/sysv/linux/kernel-posix-timers.h | 19 +++----- > sysdeps/unix/sysv/linux/timer_create.c | 3 +- > sysdeps/unix/sysv/linux/timer_routines.c | 10 +---- > 14 files changed, 37 insertions(+), 109 deletions(-) > > diff --git a/elf/Makefile b/elf/Makefile > index 38d08e03b8..f9dac8dcc9 100644 > --- a/elf/Makefile > +++ b/elf/Makefile > @@ -1179,7 +1179,6 @@ localplt-built-dso := $(addprefix $(common-objpfx),\ > libc.so \ > elf/ld.so \ > math/libm.so \ > - rt/librt.so \ > dlfcn/libdl.so \ > resolv/libresolv.so \ > ) > @@ -1192,6 +1191,9 @@ endif > ifeq ($(build-crypt),yes) > localplt-built-dso += $(addprefix $(common-objpfx), crypt/libcrypt.so) > endif > +ifneq ($(pthread-in-libc),yes) > +localplt-built-dso += $(addprefix $(common-objpfx), rt/librt.so) > +endif > > vpath localplt.data $(+sysdep_dirs) > Ok. > diff --git a/nptl/Makefile b/nptl/Makefile > index bbaf796771..17a4b63730 100644 > --- a/nptl/Makefile > +++ b/nptl/Makefile > @@ -536,15 +536,6 @@ $(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \ > $(evaluate-test) > endif > > -ifeq (yes,$(build-shared)) > -librt = $(common-objpfx)rt/librt.so > -else > -librt = $(common-objpfx)rt/librt.a > -endif > - > -$(objpfx)tst-cancel17: $(librt) > -$(objpfx)tst-cancelx17: $(librt) > - > LDLIBS-tst-cancel24 = -Wl,--no-as-needed -lstdc++ > LDLIBS-tst-cancel24-static = $(LDLIBS-tst-cancel24) > Ok. > diff --git a/rt/Makefile b/rt/Makefile > index c1e989ede8..8945fbf94d 100644 > --- a/rt/Makefile > +++ b/rt/Makefile > @@ -28,9 +28,7 @@ routines = \ > shm_open \ > shm_unlink \ > > -librt-routines = \ > - librt-compat \ > - > +librt-routines = librt-compat > librt-shared-only-routines = librt-compat > > $(librt-routines-var) += \ > @@ -64,6 +62,13 @@ $(librt-routines-var) += \ > timer_gettime \ > timer_settime \ > > +ifeq ($(pthread-in-libc),yes) > +# Pretend that libdl.so is a linker script, so that the symbolic > +# link is not installed. > +install-lib-ldscripts = librt.so > +$(inst_libdir)/librt.so: > +endif > + > tests := tst-shm tst-timer tst-timer2 \ > tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \ > tst-aio7 tst-aio8 tst-aio9 tst-aio10 \ > @@ -96,6 +101,7 @@ LDFLAGS-rt.so = -Wl,--enable-new-dtags,-z,nodelete > > $(objpfx)librt.so: $(shared-thread-library) > > +ifneq ($(pthread-in-libc),yes) > ifeq (yes,$(build-shared)) > $(addprefix $(objpfx),$(tests) $(tests-internal)): \ > $(objpfx)librt.so $(shared-thread-library) > @@ -103,5 +109,6 @@ else > $(addprefix $(objpfx),$(tests)) $(tests-internal): \ > $(objpfx)librt.a $(static-thread-library) > endif > +endif # !$(pthread-in-libc) > > tst-mqueue7-ARGS = -- $(host-test-program-cmd) Ok. > diff --git a/rt/Versions b/rt/Versions > index 7e41beae06..a3dc72cff4 100644 > --- a/rt/Versions > +++ b/rt/Versions > @@ -95,19 +95,6 @@ libc { > shm_open; > shm_unlink; > } > -%if PTHREAD_IN_LIBC > - GLIBC_PRIVATE { > - __aio_enqueue_request; > - __aio_find_req; > - __aio_find_req_fd; > - __aio_free_request; > - __aio_notify; > - __aio_notify_only; > - __aio_remove_request; > - __aio_requests_mutex; > - __aio_sigqueue; > - } > -%endif > } > librt { > GLIBC_2.1 { Ok. > diff --git a/rt/aio_misc.c b/rt/aio_misc.c > index d9be8ac33d..856a1b2755 100644 > --- a/rt/aio_misc.c > +++ b/rt/aio_misc.c > @@ -735,24 +735,10 @@ add_request_to_runlist (struct requestlist *newrequest) > } > > #if PTHREAD_IN_LIBC > -libc_hidden_data_def (__aio_requests_mutex) > -libc_hidden_def (__aio_enqueue_request) > -libc_hidden_def (__aio_find_req) > -libc_hidden_def (__aio_find_req_fd) > -libc_hidden_def (__aio_free_request) > -libc_hidden_def (__aio_remove_request) > - > versioned_symbol (libc, __aio_init, aio_init, GLIBC_2_34); > # if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34) > compat_symbol (librt, __aio_init, aio_init, GLIBC_2_1); > # endif > - > #else /* !PTHREAD_IN_LIBC */ > -librt_hidden_data_def (__aio_requests_mutex) > -librt_hidden_def (__aio_enqueue_request) > -librt_hidden_def (__aio_find_req) > -librt_hidden_def (__aio_find_req_fd) > -librt_hidden_def (__aio_free_request) > -librt_hidden_def (__aio_remove_request) > weak_alias (__aio_init, aio_init) > #endif /* !PTHREAD_IN_LIBC */ Ok. > diff --git a/rt/aio_notify.c b/rt/aio_notify.c > index 432000e34b..0fa84f203c 100644 > --- a/rt/aio_notify.c > +++ b/rt/aio_notify.c > @@ -160,11 +160,3 @@ __aio_notify (struct requestlist *req) > waitlist = next; > } > } > - > -#if PTHREAD_IN_LIBC > -libc_hidden_def (__aio_notify) > -libc_hidden_def (__aio_notify_only) > -#else > -librt_hidden_def (__aio_notify) > -librt_hidden_def (__aio_notify_only) > -#endif Ok. > diff --git a/rt/aio_sigqueue.c b/rt/aio_sigqueue.c > index 0ad95ae04c..84848bacd8 100644 > --- a/rt/aio_sigqueue.c > +++ b/rt/aio_sigqueue.c > @@ -28,5 +28,4 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid) > __set_errno (ENOSYS); > return -1; > } > -librt_hidden_def (__aio_sigqueue) > stub_warning (__aio_sigqueue) Ok. > diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h > index d9bff36e50..4d05b8cdd6 100644 > --- a/sysdeps/generic/aio_misc.h > +++ b/sysdeps/generic/aio_misc.h > @@ -87,55 +87,36 @@ struct requestlist > > > /* Lock for global I/O list of requests. */ > -extern pthread_mutex_t __aio_requests_mutex; > +extern pthread_mutex_t __aio_requests_mutex attribute_hidden; > > > /* Enqueue request. */ > extern struct requestlist *__aio_enqueue_request (aiocb_union *aiocbp, > - int operation); > + int operation) > + attribute_hidden; > > /* Find request entry for given AIO control block. */ > -extern struct requestlist *__aio_find_req (aiocb_union *elem); > +extern struct requestlist *__aio_find_req (aiocb_union *elem) attribute_hidden; > > /* Find request entry for given file descriptor. */ > -extern struct requestlist *__aio_find_req_fd (int fildes); > +extern struct requestlist *__aio_find_req_fd (int fildes) attribute_hidden; > > /* Remove request from the list. */ > extern void __aio_remove_request (struct requestlist *last, > - struct requestlist *req, int all); > + struct requestlist *req, int all) > + attribute_hidden; > > /* Release the entry for the request. */ > -extern void __aio_free_request (struct requestlist *req); > +extern void __aio_free_request (struct requestlist *req) attribute_hidden; > > /* Notify initiator of request and tell this everybody listening. */ > -extern void __aio_notify (struct requestlist *req); > +extern void __aio_notify (struct requestlist *req) attribute_hidden; > > /* Notify initiator of request. */ > -extern int __aio_notify_only (struct sigevent *sigev); > +extern int __aio_notify_only (struct sigevent *sigev) attribute_hidden; > > /* Send the signal. */ > -extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid); > - > -#if PTHREAD_IN_LIBC > -libc_hidden_proto (__aio_enqueue_request) > -libc_hidden_proto (__aio_find_req) > -libc_hidden_proto (__aio_find_req_fd) > -libc_hidden_proto (__aio_free_request) > -libc_hidden_proto (__aio_notify) > -libc_hidden_proto (__aio_notify_only) > -libc_hidden_proto (__aio_remove_request) > -libc_hidden_proto (__aio_requests_mutex) > -libc_hidden_proto (__aio_sigqueue) > -#else > -librt_hidden_proto (__aio_enqueue_request) > -librt_hidden_proto (__aio_find_req) > -librt_hidden_proto (__aio_find_req_fd) > -librt_hidden_proto (__aio_free_request) > -librt_hidden_proto (__aio_notify) > -librt_hidden_proto (__aio_notify_only) > -librt_hidden_proto (__aio_remove_request) > -librt_hidden_proto (__aio_requests_mutex) > -librt_hidden_proto (__aio_sigqueue) > -#endif > +extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid) > + attribute_hidden; > > #endif /* aio_misc.h */ Ok. > diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile > index 9e6ed3c6f7..cca0d4da0d 100644 > --- a/sysdeps/pthread/Makefile > +++ b/sysdeps/pthread/Makefile > @@ -18,11 +18,13 @@ > > ifeq ($(subdir),rt) > > +ifneq ($(pthread-in-libc),yes) > ifeq (yes,$(build-shared)) > $(objpfx)tst-timer: $(objpfx)librt.so $(shared-thread-library) > else > $(objpfx)tst-timer: $(objpfx)librt.a $(static-thread-library) > endif > +endif # !$(pthread-in-libc) > > endif > Ok. > diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions > index 578d55e7fd..29ed24591d 100644 > --- a/sysdeps/unix/sysv/linux/Versions > +++ b/sysdeps/unix/sysv/linux/Versions > @@ -291,12 +291,6 @@ libc { > __pread64_nocancel; > __close_nocancel; > __sigtimedwait; > - __timer_active_sigev_thread; > - __timer_active_sigev_thread_lock; > - __timer_compat_list; > - __timer_helper_once; > - __timer_helper_tid; > - __timer_start_helper_thread; > # functions used by nscd > __netlink_assert_response; > } Ok. > diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c > index bd0da6e763..0b0f347197 100644 > --- a/sysdeps/unix/sysv/linux/aio_sigqueue.c > +++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c > @@ -44,4 +44,3 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid) > > return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info); > } > -libc_hidden_def (__aio_sigqueue) > diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h > index a976b028e0..0f7eff1794 100644 > --- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h > +++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h > @@ -26,27 +26,23 @@ > extern int __no_posix_timers attribute_hidden; > > /* Callback to start helper thread. */ > -extern void __timer_start_helper_thread (void); > -libc_hidden_proto (__timer_start_helper_thread) > +extern void __timer_start_helper_thread (void) attribute_hidden; > > /* Control variable for helper thread creation. */ > -extern pthread_once_t __timer_helper_once; > -libc_hidden_proto (__timer_helper_once) > +extern pthread_once_t __timer_helper_once attribute_hidden; > > /* Called from fork so that the new subprocess re-creates the > notification thread if necessary. */ > void __timer_fork_subprocess (void) attribute_hidden; > > /* TID of the helper thread. */ > -extern pid_t __timer_helper_tid; > -libc_hidden_proto (__timer_helper_tid) > +extern pid_t __timer_helper_tid attribute_hidden; > > /* List of active SIGEV_THREAD timers. */ > -extern struct timer *__timer_active_sigev_thread; > -libc_hidden_proto (__timer_active_sigev_thread) > +extern struct timer *__timer_active_sigev_thread attribute_hidden; > + > /* Lock for __timer_active_sigev_thread. */ > -extern pthread_mutex_t __timer_active_sigev_thread_lock; > -libc_hidden_proto (__timer_active_sigev_thread_lock) > +extern pthread_mutex_t __timer_active_sigev_thread_lock attribute_hidden; > > extern __typeof (timer_create) __timer_create; > libc_hidden_proto (__timer_create) > @@ -117,5 +113,4 @@ timerid_to_kernel_timer (timer_t timerid) > > /* Used if an override sets TIMER_T_WAS_INT_COMPAT to 1. */ > #define OLD_TIMER_MAX 256 > -extern timer_t __timer_compat_list[OLD_TIMER_MAX]; > -libc_hidden_proto (__timer_compat_list) > +extern timer_t __timer_compat_list[OLD_TIMER_MAX] attribute_hidden; Ok. > diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c > index 9861177cf2..230bc45083 100644 > --- a/sysdeps/unix/sysv/linux/timer_create.c > +++ b/sysdeps/unix/sysv/linux/timer_create.c > @@ -146,8 +146,7 @@ compat_symbol (librt, ___timer_create, timer_create, GLIBC_2_3_3); > # endif > > # if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3) > -timer_t __timer_compat_list[OLD_TIMER_MAX] __attribute__ ((nocommon)); > -libc_hidden_data_def (__timer_compat_list) > +timer_t __timer_compat_list[OLD_TIMER_MAX]; > > int > __timer_create_old (clockid_t clock_id, struct sigevent *evp, int *timerid) Ok. > diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c > index fc3aa894ab..3a509d8ace 100644 > --- a/sysdeps/unix/sysv/linux/timer_routines.c > +++ b/sysdeps/unix/sysv/linux/timer_routines.c > @@ -26,13 +26,10 @@ > > > /* List of active SIGEV_THREAD timers. */ > -struct timer *__timer_active_sigev_thread __attribute__ ((nocommon)); > -libc_hidden_data_def (__timer_active_sigev_thread) > +struct timer *__timer_active_sigev_thread; > > /* Lock for _timer_active_sigev_thread. */ > -pthread_mutex_t __timer_active_sigev_thread_lock __attribute__ ((nocommon)) > - = PTHREAD_MUTEX_INITIALIZER; > -libc_hidden_data_def (__timer_active_sigev_thread_lock) > +pthread_mutex_t __timer_active_sigev_thread_lock = PTHREAD_MUTEX_INITIALIZER; > > struct thread_start_data > { > @@ -112,12 +109,10 @@ timer_helper_thread (void *arg) > /* Control variable for helper thread creation. */ > pthread_once_t __timer_helper_once __attribute__ ((nocommon)) > = PTHREAD_ONCE_INIT; > -libc_hidden_data_def (__timer_helper_once) > > > /* TID of the helper thread. */ > pid_t __timer_helper_tid __attribute__ ((nocommon)); > -libc_hidden_data_def (__timer_helper_tid) > > > /* Reset variables so that after a fork a new helper thread gets started. */ > @@ -159,4 +154,3 @@ __timer_start_helper_thread (void) > /* No need for the attribute anymore. */ > (void) __pthread_attr_destroy (&attr); > } > -libc_hidden_def (__timer_start_helper_thread) > Ok.