]> sourceware.org Git - glibc.git/log
glibc.git
3 years agowrite_archive_locales: Fix memory leak
Siddhesh Poyarekar [Tue, 11 May 2021 12:26:19 +0000 (17:56 +0530)]
write_archive_locales: Fix memory leak

Fix memory leak identified by coverity.

3 years agonptl: Move thread join functions into libc
Florian Weimer [Tue, 11 May 2021 09:08:00 +0000 (11:08 +0200)]
nptl: Move thread join functions into libc

The symbols pthread_clockjoin_np, pthread_join, pthread_timedjoin_np,
pthread_tryjoin_np, thrd_join were moved using
scripts/move-symbol-to-libc.py.

Moving the symbols at the same time avoids the need for temporary
exports.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move pthread_detach, thrd_detach into libc
Florian Weimer [Tue, 11 May 2021 09:08:00 +0000 (11:08 +0200)]
nptl: Move pthread_detach, thrd_detach into libc

The symbols were moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move __free_tcb into libc
Florian Weimer [Tue, 11 May 2021 09:08:00 +0000 (11:08 +0200)]
nptl: Move __free_tcb into libc

Under the name __nptl_free_tcb.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move stack cache management, __libpthread_freeres into libc
Florian Weimer [Tue, 11 May 2021 09:08:00 +0000 (11:08 +0200)]
nptl: Move stack cache management, __libpthread_freeres into libc

This replaces the FREE_P macro with the __nptl_stack_in_use inline
function.  stack_list_del is renamed to __nptl_stack_list_del,
stack_list_add to __nptl_stack_list_add, __deallocate_stack to
__nptl_deallocate_stack, free_stacks to __nptl_free_stacks.

It is convenient to move __libpthread_freeres into libc at the
same time.  This removes the temporary __default_pthread_attr_freeres
export and restores full freeres coverage for __default_pthread_attr.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move pthread_setattr_default_np into libc
Florian Weimer [Tue, 11 May 2021 09:08:00 +0000 (11:08 +0200)]
nptl: Move pthread_setattr_default_np into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

The export of  __default_pthread_attr_freeres is temporary.  There
is a minor regression in freeres coverage because in the dynamic case,
__default_pthread_attr_freeres is no longer called if libpthread is
not linked in.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Remove always-disabled debugging support
Florian Weimer [Tue, 11 May 2021 09:08:00 +0000 (11:08 +0200)]
nptl: Remove always-disabled debugging support

This removes the DEBUGGING_P macro and the __pthread_debug variable.
The __find_in_stack_list function is now unused and deleted as well.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Replace pthread_sigqueue implementation with Linux one
Florian Weimer [Tue, 11 May 2021 09:07:59 +0000 (11:07 +0200)]
nptl: Replace pthread_sigqueue implementation with Linux one

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agoget-translit.py: Fix typo
Siddhesh Poyarekar [Tue, 11 May 2021 07:25:11 +0000 (12:55 +0530)]
get-translit.py: Fix typo

3 years ago_dl_exception_create_format: Add missing va_end
Siddhesh Poyarekar [Tue, 11 May 2021 03:34:29 +0000 (09:04 +0530)]
_dl_exception_create_format: Add missing va_end

Coverity discovered a missing va_end.

3 years agolinux: Move funlockfile/_IO_funlockfile into libc
Adhemerval Zanella [Thu, 6 May 2021 19:10:28 +0000 (16:10 -0300)]
linux: Move funlockfile/_IO_funlockfile into libc

The nptl version is used as default, since now with symbol always
present the single-thread optimization is tricky.

Hurd is not change, it is used it own lock scheme (which call
_cthreads_funlockfile).

Checked on x86_64-linux-gnu.

3 years agolinux: Move ftrylockfile/_IO_ftrylockfile into libc
Adhemerval Zanella [Thu, 6 May 2021 19:01:15 +0000 (16:01 -0300)]
linux: Move ftrylockfile/_IO_ftrylockfile into libc

The nptl version is used as default, since now with symbol always
present the single-thread optimization is tricky.

Hurd is not change, it is used it own lock scheme (which call
 _cthreads_ftrylockfile).

Checked on x86_64-linux-gnu.

3 years agolinux: Move flockfile/_IO_flockfile into libc
Adhemerval Zanella [Thu, 6 May 2021 18:49:45 +0000 (15:49 -0300)]
linux: Move flockfile/_IO_flockfile into libc

The nptl version is used as default, since now with symbol always
present the single-thread optimization is tricky.

Hurd is not change, it is used it own lock scheme (which call
_cthreads_flockfile).

Checked on x86_64-linux-gnu.

3 years agoUse a #pragma to suppress a bogus GCC 10 warning instead of an assert [BZ 27832].
Martin Sebor [Mon, 10 May 2021 20:26:42 +0000 (14:26 -0600)]
Use a #pragma to suppress a bogus GCC 10 warning instead of an assert [BZ 27832].

Reviewed-by: fweimer@redhat.com
3 years agoAdd PTRACE_SYSEMU and PT_SYSEMU_SINGLESTEP from Linux 5.12 for s390
Joseph Myers [Mon, 10 May 2021 20:12:41 +0000 (20:12 +0000)]
Add PTRACE_SYSEMU and PT_SYSEMU_SINGLESTEP from Linux 5.12 for s390

Linux 5.12 adds the constants PTRACE_SYSEMU and
PTRACE_SYSEMU_SINGLESTEP for s390.  Add these to glibc.

Tested with build-many-glibcs.py for s390-linux-gnu and
s390x-linux-gnu.

3 years agoadd workload traces for cbrtl
Paul Zimmermann [Mon, 3 May 2021 09:30:25 +0000 (11:30 +0200)]
add workload traces for cbrtl

These workload traces cover the whole "long double" range.
This patch was prepared with the help of Adhemerval Zanella.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agoLinux: Move __reclaim_stacks into the fork implementation in libc
Florian Weimer [Mon, 10 May 2021 08:31:42 +0000 (10:31 +0200)]
Linux: Move __reclaim_stacks into the fork implementation in libc

As a result, __libc_pthread_init is no longer needed.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move __default_pthread_attr, __default_pthread_attr_lock into libc
Florian Weimer [Mon, 10 May 2021 08:31:42 +0000 (10:31 +0200)]
nptl: Move __default_pthread_attr, __default_pthread_attr_lock into libc

The GLIBC_PRIVATE exports for these symbols are expected to be
temporary.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Simplify resetting the in-flight stack in __reclaim_stacks
Florian Weimer [Mon, 10 May 2021 08:31:41 +0000 (10:31 +0200)]
nptl: Simplify resetting the in-flight stack in __reclaim_stacks

stack_list_del overwrites the in-flight stack variable.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move changing of stack permissions into ld.so
Florian Weimer [Mon, 10 May 2021 08:31:41 +0000 (10:31 +0200)]
nptl: Move changing of stack permissions into ld.so

All the stack lists are now in _rtld_global, so it is possible
to change stack permissions directly from there, instead of
calling into libpthread to do the change.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Simplify the change_stack_perm calling convention
Florian Weimer [Mon, 10 May 2021 08:31:41 +0000 (10:31 +0200)]
nptl: Simplify the change_stack_perm calling convention

Only ia64 needs the page mask, and it is straightforward
to compute the value within the function itself.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move more stack management variables into _rtld_global
Florian Weimer [Mon, 10 May 2021 08:31:41 +0000 (10:31 +0200)]
nptl: Move more stack management variables into _rtld_global

Permissions of the cached stacks may have to be updated if an object
is loaded that requires executable stacks, so the dynamic loader
needs to know about these cached stacks.

The move of in_flight_stack and stack_cache_actsize is a requirement for
merging __reclaim_stacks into the fork implementation in libc.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agoelf: Introduce __tls_pre_init_tp
Florian Weimer [Mon, 10 May 2021 08:31:41 +0000 (10:31 +0200)]
elf: Introduce __tls_pre_init_tp

This is an early variant of __tls_init_tp, primarily for initializing
thread-related elements of _rtld_global/GL.

Some existing initialization code not needed for NPTL is moved into
the generic version of this function.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Eliminate __pthread_multiple_threads
Florian Weimer [Mon, 10 May 2021 08:31:41 +0000 (10:31 +0200)]
nptl: Eliminate __pthread_multiple_threads

It is no longer needed after the SINGLE_THREADED_P consolidation.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agoLinux: Simplify and fix the definition of SINGLE_THREAD_P
Florian Weimer [Mon, 10 May 2021 08:31:41 +0000 (10:31 +0200)]
Linux: Simplify and fix the definition of SINGLE_THREAD_P

Always use __libc_multiple_threads if beneficial, and do not assume
the the dynamic loader is single-threaded.  This assumption could
become incorrect by accident once more code is moved from libpthread
into it.  The previous commit introducing the
NO_SYSCALL_CANCEL_CHECKING macro enables this change.

Do not hint to the compiler that multi-threaded programs are unlikely
(which is not quite true anymore).

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agoLinux: Explicitly disable cancellation checking in the dynamic loader
Florian Weimer [Mon, 10 May 2021 08:31:41 +0000 (10:31 +0200)]
Linux: Explicitly disable cancellation checking in the dynamic loader

Historically, SINGLE_THREAD_P is defined to 1 in the dynamic loader.
This has the side effect of disabling cancellation points.  In order
to enable future use of SINGLE_THREAD_P for single-thread
optimizations in the dynamic loader (which becomes important once
more code is moved from libpthread), introduce a new
NO_SYSCALL_CANCEL_CHECKING macro which is always 1 for IS_IN (rtld),
indepdently of the actual SINGLE_THREAD_P value.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Export __libc_multiple_threads from libc as an internal symbol
Florian Weimer [Mon, 10 May 2021 08:31:41 +0000 (10:31 +0200)]
nptl: Export __libc_multiple_threads from libc as an internal symbol

This allows the elimination of the __libc_multiple_threads_ptr
variable in libpthread and its initialization procedure.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agoelf, nptl: Resolve recursive lock implementation early
Florian Weimer [Mon, 10 May 2021 08:31:41 +0000 (10:31 +0200)]
elf, nptl: Resolve recursive lock implementation early

If libpthread is included in libc, it is not necessary to delay
initialization of the lock/unlock function pointers until libpthread
is loaded.  This eliminates two unprotected function pointers
from _rtld_global and removes some initialization code from
libpthread.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agoscripts/versions.awk: Add strings and hashes to <first-versions.h>
Florian Weimer [Mon, 10 May 2021 08:31:41 +0000 (10:31 +0200)]
scripts/versions.awk: Add strings and hashes to <first-versions.h>

This generates new macros of this from:

They are useful for symbol lookups using _dl_lookup_direct.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
3 years agoHurd: Add missing hidden proto definition for __ttyname_r
Florian Weimer [Mon, 10 May 2021 08:22:00 +0000 (10:22 +0200)]
Hurd: Add missing hidden proto definition for __ttyname_r

3 years agox86: Add EVEX optimized memchr family not safe for RTM
Noah Goldstein [Tue, 4 May 2021 23:02:40 +0000 (19:02 -0400)]
x86: Add EVEX optimized memchr family not safe for RTM

No bug.

This commit adds a new implementation for EVEX memchr that is not safe
for RTM because it uses vzeroupper. The benefit is that by using
ymm0-ymm15 it can use vpcmpeq and vpternlogd in the 4x loop which is
faster than the RTM safe version which cannot use vpcmpeq because
there is no EVEX encoding for the instruction. All parts of the
implementation aside from the 4x loop are the same for the two
versions and the optimization is only relevant for large sizes.

Tigerlake:
size  , algn  , Pos   , Cur T , New T , Win     , Dif
512   , 6     , 192   , 9.2   , 9.04  , no-RTM  , 0.16
512   , 7     , 224   , 9.19  , 8.98  , no-RTM  , 0.21
2048  , 0     , 256   , 10.74 , 10.54 , no-RTM  , 0.2
2048  , 0     , 512   , 14.81 , 14.87 , RTM     , 0.06
2048  , 0     , 1024  , 22.97 , 22.57 , no-RTM  , 0.4
2048  , 0     , 2048  , 37.49 , 34.51 , no-RTM  , 2.98   <--

Icelake:
size  , algn  , Pos   , Cur T , New T , Win     , Dif
512   , 6     , 192   , 7.6   , 7.3   , no-RTM  , 0.3
512   , 7     , 224   , 7.63  , 7.27  , no-RTM  , 0.36
2048  , 0     , 256   , 8.48  , 8.38  , no-RTM  , 0.1
2048  , 0     , 512   , 11.57 , 11.42 , no-RTM  , 0.15
2048  , 0     , 1024  , 17.92 , 17.38 , no-RTM  , 0.54
2048  , 0     , 2048  , 30.37 , 27.34 , no-RTM  , 3.03   <--

test-memchr, test-wmemchr, and test-rawmemchr are all passing.

Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
3 years agox86-64: Fix an unknown vector operation in memchr-evex.S
Alice Xu [Sat, 8 May 2021 02:03:21 +0000 (19:03 -0700)]
x86-64: Fix an unknown vector operation in memchr-evex.S

An unknown vector operation occurred in commit 2a76821c308. Fixed it
by using "ymm{k1}{z}" but not "ymm {k1} {z}".

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
3 years agopowerpc64le: Fix ifunc selection for memset, memmove, bzero and bcopy
Raoni Fassina Firmino [Mon, 3 May 2021 19:59:35 +0000 (16:59 -0300)]
powerpc64le: Fix ifunc selection for memset, memmove, bzero and bcopy

The hwcap2 check for the aforementioned functions should check for
both PPC_FEATURE2_ARCH_3_1 and PPC_FEATURE2_HAS_ISEL but was
mistakenly checking for any one of them, enabling isa 3.1 version of
the functions in incompatible processors, like POWER8.

Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
3 years agomalloc: Make tunable callback functions static
H.J. Lu [Fri, 7 May 2021 01:18:48 +0000 (18:18 -0700)]
malloc: Make tunable callback functions static

Since malloc tunable callback functions are only used within the same
file, we should make them static.

3 years agolinux: implement ttyname as a wrapper around ttyname_r.
Érico Nogueira [Tue, 4 May 2021 01:51:52 +0000 (22:51 -0300)]
linux: implement ttyname as a wrapper around ttyname_r.

Big win in binary size and avoids duplicating the logic in multiple
places.

On x86_64, dropped from 1883206 to 1881790, a 1416 byte decrease.

Also changed logic to track if ttyname_buf has been allocated by
checking if it's NULL instead of tracking buflen as an additional
variable.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agolinux: use fd_to_filename instead of _fitoa_word in ttyname_r.
Érico Nogueira [Tue, 4 May 2021 01:51:51 +0000 (22:51 -0300)]
linux: use fd_to_filename instead of _fitoa_word in ttyname_r.

Simplifies the logic and makes intent clearer, while at the same time
decreasing binary size.

On x86_64, dropped from 1883270 to 1883206, a 64 byte decrease.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agomisc: use _fitoa_word to implement __fd_to_filename.
Érico Nogueira [Tue, 4 May 2021 01:51:50 +0000 (22:51 -0300)]
misc: use _fitoa_word to implement __fd_to_filename.

In a default build for x86_64, size decreased by 24 bytes:
1883294 to 1883270.

Aditionally, avoids repeating the number printing logic in multiple
places.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agolinux: Remove /proc/cpuinfo fallback on alpha and sparc
Adhemerval Zanella [Thu, 25 Mar 2021 17:04:37 +0000 (14:04 -0300)]
linux: Remove /proc/cpuinfo fallback on alpha and sparc

There is no much gain in fallback to cpuinfo if sysfs is no present,
usually on restricted environment neither will be present.  It also
simplifies the code and make all architecture use the sched_getaffinity
as the sysfs fallback.

Checked on sparc64-linux-gnu.

3 years agolinux: Use sched_getaffinity for __get_nprocs (BZ #27645)
Adhemerval Zanella [Thu, 25 Mar 2021 12:30:07 +0000 (09:30 -0300)]
linux: Use sched_getaffinity for __get_nprocs (BZ #27645)

Both the sysfs and procfs parsing (through GET_NPROCS_PARSER) are
removed in favor the syscall.  The initial scratch buffer should
fit to most of the common usage (1024 bytes with maps to 8192 CPUs).

Checked on x86_64-linux-gnu and aarch64-linux-gnu.

3 years agoRemove architecture specific sched_cpucount optimizations
Adhemerval Zanella [Wed, 24 Mar 2021 21:56:34 +0000 (18:56 -0300)]
Remove architecture specific sched_cpucount optimizations

And replace the generic algorithm with the Brian Kernighan's one.
GCC optimize it with popcnt if the architecture supports, so there
is no need to add the extra POPCNT define to enable it.

This is really a micro-optimization that only adds complexity:
recent ABIs already support it (x86-64-v2 or power64le) and it
simplifies the code for internal usage, since i686 does not allow an
internal iFUNC call.

Checked on x86_64-linux-gnu, aarch64-linux-gnu, and
powerpc64le-linux-gnu.

3 years agoRun $(objpfx)iconvconfig with $(run-program-prefix) [BZ #27477]
H.J. Lu [Fri, 26 Feb 2021 21:07:18 +0000 (13:07 -0800)]
Run $(objpfx)iconvconfig with $(run-program-prefix) [BZ #27477]

When glibc is configured with --enable-hardcoded-path-in-tests,
"make xcheck" failed with

...
env GCONV_PATH=/export/build/gnu/tools-build/glibc-cet-gitlab/build-x86_64-linux/iconvdata LOCPATH=/export/build/gnu/tools-build/glibc-cet-gitlab/build-x86_64-linux/localedata LC_ALL=C  /export/build/gnu/tools-build/glibc-cet-gitlab/build-x86_64-linux/iconv/iconvconfig  --output=$tmp --nostdlib /usr/lib64/gconv;
...
/export/build/gnu/tools-build/glibc-cet-gitlab/build-x86_64-linux/iconv/iconvconfig: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /export/build/gnu/tools-build/glibc-cet-gitlab/build-x86_64-linux/iconv/iconvconfig)
...
FAIL: iconv/test-iconvconfig

Since $(objpfx)iconvconfig is an installed program, run it with
$(run-program-prefix).

3 years agoUse the correct diagnostic macro.
Martin Sebor [Thu, 6 May 2021 19:38:44 +0000 (13:38 -0600)]
Use the correct diagnostic macro.

3 years agoAnnotate additional APIs with GCC attribute access.
Martin Sebor [Thu, 6 May 2021 16:56:25 +0000 (10:56 -0600)]
Annotate additional APIs with GCC attribute access.

This change continues the improvements to compile-time out of bounds
checking by decorating more APIs with either attribute access, or by
explicitly providing the array bound in APIs such as tmpnam() that
expect arrays of some minimum size as arguments.  (The latter feature
is new in GCC 11.)

The only effects of the attribute and/or the array bound is to check
and diagnose calls to the functions that fail to provide a sufficient
number of elements, and the definitions of the functions that access
elements outside the specified bounds.  (There is no interplay with
_FORTIFY_SOURCE here yet.)

Tested with GCC 7 through 11 on x86_64-linux.

3 years agonptl: Move pthread_barrierattr_setpshared into libc
Florian Weimer [Thu, 6 May 2021 13:56:37 +0000 (15:56 +0200)]
nptl: Move pthread_barrierattr_setpshared into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move pthread_barrierattr_getpshared into libc
Florian Weimer [Thu, 6 May 2021 13:56:37 +0000 (15:56 +0200)]
nptl: Move pthread_barrierattr_getpshared into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move pthread_barrierattr_init into libc
Florian Weimer [Thu, 6 May 2021 13:56:37 +0000 (15:56 +0200)]
nptl: Move pthread_barrierattr_init into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move pthread_barrierattr_destroy into libc
Florian Weimer [Thu, 6 May 2021 13:56:37 +0000 (15:56 +0200)]
nptl: Move pthread_barrierattr_destroy into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move pthread_barrier_wait into libc
Florian Weimer [Thu, 6 May 2021 13:56:37 +0000 (15:56 +0200)]
nptl: Move pthread_barrier_wait into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move pthread_barrier_init into libc
Florian Weimer [Thu, 6 May 2021 13:56:37 +0000 (15:56 +0200)]
nptl: Move pthread_barrier_init into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move pthread_barrier_destroy into libc
Florian Weimer [Thu, 6 May 2021 13:56:37 +0000 (15:56 +0200)]
nptl: Move pthread_barrier_destroy into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move sem_trywait, sem_wait into libc
Florian Weimer [Wed, 5 May 2021 15:15:57 +0000 (17:15 +0200)]
nptl: Move sem_trywait, sem_wait into libc

The symbols were moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move sem_unlink into libc
Florian Weimer [Wed, 5 May 2021 15:15:57 +0000 (17:15 +0200)]
nptl: Move sem_unlink into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

A small adjust to the sem_unlink implementation is necessary to avoid
a check-localplt failure.

A placeholder symbol to keep the GLIBC_2.1.1 version alive in
libpthread is added with this commit.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move sem_timedwait into libc
Florian Weimer [Wed, 5 May 2021 15:15:57 +0000 (17:15 +0200)]
nptl: Move sem_timedwait into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move sem_post into libc
Florian Weimer [Wed, 5 May 2021 15:15:57 +0000 (17:15 +0200)]
nptl: Move sem_post into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move sem_init into libc
Florian Weimer [Wed, 5 May 2021 15:15:57 +0000 (17:15 +0200)]
nptl: Move sem_init into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move sem_getvalue into libc
Florian Weimer [Wed, 5 May 2021 15:15:57 +0000 (17:15 +0200)]
nptl: Move sem_getvalue into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move sem_destroy into libc
Florian Weimer [Wed, 5 May 2021 15:15:57 +0000 (17:15 +0200)]
nptl: Move sem_destroy into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move sem_close, sem_open into libc
Florian Weimer [Wed, 5 May 2021 15:15:57 +0000 (17:15 +0200)]
nptl: Move sem_close, sem_open into libc

The symbols were moved using move-symbol-to-libc.py.

Both functions are moved at the same time because they depend
on internal functions in sysdeps/pthread/sem_routines.c, which
are moved in this commit as well.  Additional hidden prototypes
are required to avoid check-localplt failures.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move sem_clockwait into libc
Florian Weimer [Wed, 5 May 2021 15:15:57 +0000 (17:15 +0200)]
nptl: Move sem_clockwait into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

A new placeholder version is added at version GLIBC_2.30, to
preserve that version in libpthread.so.0.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Consolidate async cancel enable/disable implementation in libc
Florian Weimer [Wed, 5 May 2021 15:15:57 +0000 (17:15 +0200)]
nptl: Consolidate async cancel enable/disable implementation in libc

Previously, the source file nptl/cancellation.c was compiled multiple
times, for libc, libpthread, librt.  This commit switches to a single
implementation, with new __pthread_enable_asynccancel@@GLIBC_PRIVATE,
__pthread_disable_asynccancel@@GLIBC_PRIVATE exports.

The almost-unused CANCEL_ASYNC and CANCEL_RESET macros are replaced
by LIBC_CANCEL_ASYNC and LIBC_CANCEL_ASYNC macros.  They call the
__pthread_* functions unconditionally now.  The macros are still
needed because shared code uses them; Hurd has different definitions.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agonptl: Move pthread_testcancel into libc
Florian Weimer [Wed, 5 May 2021 15:15:57 +0000 (17:15 +0200)]
nptl: Move pthread_testcancel into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

A temporary __pthread_testcancel@@GLIBC_PRIVATE export is created
because it is needed by the semaphore implementation.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agoelf, nptl: Initialize static TLS directly in ld.so
Florian Weimer [Wed, 5 May 2021 04:20:31 +0000 (06:20 +0200)]
elf, nptl: Initialize static TLS directly in ld.so

The stack list is available in ld.so since commit
1daccf403b1bd86370eb94edca794dc106d02039 ("nptl: Move stack list
variables into _rtld_global"), so it's possible to walk the stack
list directly in ld.so and perform the initialization there.

This eliminates an unprotected function pointer from _rtld_global
and reduces the libpthread initialization code.

3 years agoposix: Fix Hurd build failure in tst-execveat
Florian Weimer [Tue, 4 May 2021 13:52:58 +0000 (15:52 +0200)]
posix: Fix Hurd build failure in tst-execveat

This avoids a -Werror compilation failure due to unused local
variables.

3 years agox86: Optimize memchr-evex.S
Noah Goldstein [Mon, 3 May 2021 07:03:19 +0000 (03:03 -0400)]
x86: Optimize memchr-evex.S

No bug. This commit optimizes memchr-evex.S. The optimizations include
replacing some branches with cmovcc, avoiding some branches entirely
in the less_4x_vec case, making the page cross logic less strict,
saving some ALU in the alignment process, and most importantly
increasing ILP in the 4x loop. test-memchr, test-rawmemchr, and
test-wmemchr are all passing.

Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
3 years agox86: Optimize memchr-avx2.S
Noah Goldstein [Mon, 3 May 2021 07:01:58 +0000 (03:01 -0400)]
x86: Optimize memchr-avx2.S

No bug. This commit optimizes memchr-avx2.S. The optimizations include
replacing some branches with cmovcc, avoiding some branches entirely
in the less_4x_vec case, making the page cross logic less strict,
asaving a few instructions the in loop return loop. test-memchr,
test-rawmemchr, and test-wmemchr are all passing.

Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
3 years agolinux: use __fd_to_filename helper function instead of snprintf.
Érico Nogueira [Tue, 27 Apr 2021 13:09:45 +0000 (10:09 -0300)]
linux: use __fd_to_filename helper function instead of snprintf.

Change made to fchmodat and fexecve. There are tests using xasprintf
instead of this helper as well, but this commit doesn't touch them.

3 years agolinux: Add execveat system call wrapper
Alexandra Hájková [Mon, 3 May 2021 16:35:10 +0000 (16:35 +0000)]
linux: Add execveat system call wrapper

It operates similar to execve and it is is already used to implement
fexecve without requiring /proc to be mounted.  However, different
than fexecve, if the syscall is not supported by the kernel an error
is returned instead of trying a fallback.

Checked on x86_64-linux-gnu and powerpc64le-linux-gnu.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
3 years agoBench: Expand bench-memchr.c
Noah Goldstein [Mon, 3 May 2021 08:44:35 +0000 (04:44 -0400)]
Bench: Expand bench-memchr.c

No bug. This commit adds some additional cases for bench-memchr.c
including testing medium sizes and testing short length with both an
inbound match and out of bound match.

Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
3 years agolocale: Align _nl_C_LC_CTYPE_class and _nl_C_LC_CTYPE_class32
Lirong Yuan [Thu, 1 Apr 2021 19:37:23 +0000 (12:37 -0700)]
locale: Align _nl_C_LC_CTYPE_class and _nl_C_LC_CTYPE_class32

Otherwise, programs that use character classification macros such as
isspace may observe unaligned pointers.

3 years agonptl: Re-sort Versions file
Florian Weimer [Mon, 3 May 2021 12:12:55 +0000 (14:12 +0200)]
nptl: Re-sort Versions file

Due to an incorrect conflict resolution, libc/GLIBC_2.2 section was no
longer sorted lexicographically.

3 years agox86: Set rep_movsb_threshold to 2112 on processors with FSRM
H.J. Lu [Fri, 30 Apr 2021 12:58:59 +0000 (05:58 -0700)]
x86: Set rep_movsb_threshold to 2112 on processors with FSRM

The glibc memcpy benchmark on Intel Core i7-1065G7 (Ice Lake) showed
that REP MOVSB became faster after 2112 bytes:

                                      Vector Move       REP MOVSB
length=2112, align1=0, align2=0:        24.20             24.40
length=2112, align1=1, align2=0:        26.07             23.13
length=2112, align1=0, align2=1:        27.18             28.13
length=2112, align1=1, align2=1:        26.23             25.16
length=2176, align1=0, align2=0:        23.18             22.52
length=2176, align1=2, align2=0:        25.45             22.52
length=2176, align1=0, align2=2:        27.14             27.82
length=2176, align1=2, align2=2:        22.73             25.56
length=2240, align1=0, align2=0:        24.62             24.25
length=2240, align1=3, align2=0:        29.77             27.15
length=2240, align1=0, align2=3:        35.55             29.93
length=2240, align1=3, align2=3:        34.49             25.15
length=2304, align1=0, align2=0:        34.75             26.64
length=2304, align1=4, align2=0:        32.09             22.63
length=2304, align1=0, align2=4:        28.43             31.24

Use REP MOVSB for data size > 2112 bytes in memcpy on processors with
fast short REP MOVSB (FSRM).

* sysdeps/x86/dl-cacheinfo.h (dl_init_cacheinfo): Set
rep_movsb_threshold to 2112 on processors with fast short REP
MOVSB (FSRM).

3 years agobench-memcpy: Collect data from 2KB to 4KB
H.J. Lu [Fri, 30 Apr 2021 17:10:47 +0000 (10:10 -0700)]
bench-memcpy: Collect data from 2KB to 4KB

Collect data on memcpy from 2KB to 4KB with the 64-byte increment value.

3 years agostdio: fix vfscanf with matches longer than INT_MAX (bug 27650)
Alyssa Ross [Mon, 3 May 2021 08:34:11 +0000 (10:34 +0200)]
stdio: fix vfscanf with matches longer than INT_MAX (bug 27650)

Patterns like %*[ can safely be used to match a great many characters,
and it's quite realisitic to use them for more than INT_MAX characters
from an IO stream.

With the previous approach, after INT_MAX characters (v)fscanf would
return successfully, indicating an end to the match, even though there
wasn't one.

3 years agonptl: Move pthread_yield into libc, as a compatibility symbol
Florian Weimer [Mon, 3 May 2021 07:23:17 +0000 (09:23 +0200)]
nptl: Move pthread_yield into libc, as a compatibility symbol

And deprecate it in <pthread.h>, redirecting it to sched_yield
for the time being.

The symbol was moved using scripts/move-symbol-to-libc.py.

No GLIBC_2.34 symbol version is added because of the compatibility
symbol status.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlockattr_setpshared into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlockattr_setpshared into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlockattr_setkind_np into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlockattr_setkind_np into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlockattr_init into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlockattr_init into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlockattr_getpshared into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlockattr_getpshared into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlockattr_getkind_np into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlockattr_getkind_np into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlockattr_destroy into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlockattr_destroy into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlock_trywrlock into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlock_trywrlock into libc

And __pthread_rwlock_trywrlock as a compatibility symbol.

Remove the unused __libc_rwlock_trywrlock macro.

The symbols were moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlock_tryrdlock into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlock_tryrdlock into libc

And __pthread_rwlock_tryrdlock as a compatibility symbol.

Remove the unused __libc_rwlock_tryrdlock macro.

The symbols were moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlock_timedwrlock into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlock_timedwrlock into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlock_timedrdlock into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlock_timedrdlock into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlock_init into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlock_init into libc

And __pthread_rwlock_init as a compatibility symbol.

__libc_rwlock_init is changed to call __pthread_rwlock_init directly.

The symbols were moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlock_destroy into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlock_destroy into libc

And __pthread_rwlock_destroy as a compatibility symbol.

rwlocks do not need finalization, so change __libc_rwlock_fini to do
nothing.

The symbols were moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlock_clockwrlock into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlock_clockwrlock into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move pthread_rwlock_clockrdlock into libc
Florian Weimer [Mon, 3 May 2021 07:10:57 +0000 (09:10 +0200)]
nptl: Move pthread_rwlock_clockrdlock into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move tss_set into libc
Florian Weimer [Mon, 3 May 2021 06:12:12 +0000 (08:12 +0200)]
nptl: Move tss_set into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

__pthread_setspecific@@GLIBC_2.34 is no longer needed after the move,
so it is removed with this commit, too.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move tss_get into libc
Florian Weimer [Mon, 3 May 2021 06:12:12 +0000 (08:12 +0200)]
nptl: Move tss_get into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

__pthread_getspecific@@GLIBC_2.34 is no longer needed after the move,
so it is removed with this commit, too.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move tss_delete into libc
Florian Weimer [Mon, 3 May 2021 06:12:12 +0000 (08:12 +0200)]
nptl: Move tss_delete into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

__pthread_key_delete@@GLIBC_PRIVATE is no longer needed after that,
so it is removed as well.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move tss_create into libc
Florian Weimer [Mon, 3 May 2021 06:12:12 +0000 (08:12 +0200)]
nptl: Move tss_create into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

__pthread_key_create@@GLIBC_2.34 is no longer needed by glibc
itself with this change, but __pthread_key_create is used by
libstdc++, so it still has to be exported as a public symbol.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move thrd_exit into libc
Florian Weimer [Mon, 3 May 2021 06:12:12 +0000 (08:12 +0200)]
nptl: Move thrd_exit into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

The __pthread_exit@@GLIBC_PRIVATE symbol is no longer needed
after this change, so remove it.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move mtx_unlock into libc
Florian Weimer [Mon, 3 May 2021 06:12:12 +0000 (08:12 +0200)]
nptl: Move mtx_unlock into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

__pthread_mutex_unlock@GLIBC_2.34 is not removed in this commit
because it is still used from nptl/nptl-init.c.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move mtx_trylock into libc
Florian Weimer [Mon, 3 May 2021 06:12:11 +0000 (08:12 +0200)]
nptl: Move mtx_trylock into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

The __pthread_mutex_trylock@@GLIBC_2.34 symbol version is no longer
needed because the call is now internal to libc, so remove it with
this commit.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move mtx_timedlock into libc
Florian Weimer [Mon, 3 May 2021 06:12:11 +0000 (08:12 +0200)]
nptl: Move mtx_timedlock into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

The __pthread_mutex_timedlock@@GLIBC_PRIVATE export is no longer
needed, so it is removed with this commit.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move mtx_lock into libc
Florian Weimer [Mon, 3 May 2021 06:12:11 +0000 (08:12 +0200)]
nptl: Move mtx_lock into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

__pthread_mutex_lock@GLIBC_2.34 is not removed in this commit
because it is still used from nptl/nptl-init.c.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move mtx_init into libc
Florian Weimer [Mon, 3 May 2021 06:12:11 +0000 (08:12 +0200)]
nptl: Move mtx_init into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

The calls to __pthread_mutex_init, __pthread_mutexattr_init,
__pthread_mutexattr_settype are now private and no longer need
to be exported.  This allows the removal of the newly added
GLIBC_2.34 symbol versions for those functions.

Also clean up some weak declarations in <libc-lockP.h> for
these functions.  They are not needed and potentially incorrect
for static linking of mtx_init.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move mtx_destroy into libc
Florian Weimer [Mon, 3 May 2021 06:12:11 +0000 (08:12 +0200)]
nptl: Move mtx_destroy into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

The __pthread_mutex_destroy@@GLIBC_2.34 symbol is no longer
neded because this commit makes __pthread_mutex_destroy@GLIBC_2.0
a compatibility symbol, so remove the new symbol version.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
3 years agonptl: Move cnd_wait into libc
Florian Weimer [Mon, 3 May 2021 06:12:11 +0000 (08:12 +0200)]
nptl: Move cnd_wait into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

The __pthread_cond_wait@@GLIBC_PRIVATE symbol is no longer
neded, so remove that as well.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
This page took 0.08427 seconds and 5 git commands to generate.