Age | Commit message (Collapse) | Author |
|
1. Support GLIBC_TUNABLES=glibc.cpu.hwcaps=-XSAVE.
2. Disable all features which depend on XSAVE:
a. If OSXSAVE is disabled by glibc tunables. Or
b. If both XSAVE and XSAVEC aren't usable.
|
|
__libc_current_sigrtmin
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The Linux version already target the current thread by using tgkill
along with getpid and gettid.
For arm, libpthread does not do a intra PLT since it will call the
raise from libc.
Checked on x86_64-linux-gnu.
|
|
A new 2.34 version is also provided.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags, it is also
uses as the default version.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags, it is also
uses as the default version.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags. The libc
version is set as the default version.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags. The libc
version is set as the default version.
The libpthread compat symbol requires to mask it when building the
loader object otherwise ld might complain about a missing
versioned symbol (as for alpha).
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags. Both aarch64
and nios2 also requires to export __send and tt was done previously with
the HAVE_INTERNAL_SEND_SYMBOL (which forced the symbol creation).
All __send callers are internal to libc and the original issue that
required the symbol export was due a missing libc_hidden_def. So
a compat symbol is added for __send and the libc_hidden_def is
defined regardless.
Checked on x86_64-linux-gnu and i686-linux-gnu.
|
|
This is a target hook for memory tagging, the original was a naive
implementation. Uses the same algorithm as __libc_mtag_tag_region,
but with instructions that also zero the memory. This was not
benchmarked on real cpu, but expected to be faster than the naive
implementation.
|
|
This is a target hook for memory tagging, the original was a naive
implementation. The optimized version relies on "dc gva" to tag 64
bytes at a time for large allocations and optimizes small cases without
adding too many branches. This was not benchmarked on real cpu, but
expected to be faster than the naive implementation.
|
|
This is a common operation when heap tagging is enabled, so inline the
instructions instead of using an extern call.
|
|
This is a common operation when heap tagging is enabled, so inline the
instruction instead of using an extern call.
The .inst directive is used instead of the name of the instruction (or
acle intrinsics) because malloc.c is not compiled for armv8.5-a+memtag
architecture, runtime cpu support detection is used.
Prototypes are removed from the comments as they were not always
correct.
|
|
The memset api is suboptimal and does not provide much benefit. Memory
tagging only needs a zeroing memset (and only for memory that's sized
and aligned to multiples of the tag granule), so change the internal
api and the target hooks accordingly. This is to simplify the
implementation of the target hook.
Reviewed-by: DJ Delorie <dj@redhat.com>
|
|
Use inline functions instead of macros, because macros can cause unused
variable warnings and type conversion issues. We assume these functions
may appear in the code but only in dead code paths (hidden by a runtime
check), so it's important that they can compile with correct types, but
if they are actually used that should be an error.
Currently the hooks are only used when USE_MTAG is true which only
happens on aarch64 and then the aarch64 specific code is used not this
generic header. However followup refactoring will allow the hooks to
be used with !USE_MTAG.
Note: the const qualifier in the comment was wrong: changing tags is a
write operation.
Reviewed-by: DJ Delorie <dj@redhat.com>
|
|
The arch13 memmove variant is currently selected by the ifunc selector
if the Miscellaneous-Instruction-Extensions Facility 3 facility bit
is present, but the function is also using vector instructions.
If the vector support is not present, one is receiving an operation
exception.
Therefore this patch also checks for vector support in the ifunc
selector and in ifunc-impl-list.c.
Just to be sure, the configure check is now also testing an arch13
vector instruction and an arch13 Miscellaneous-Instruction-Extensions
Facility 3 instruction.
|
|
This essentially folds compat_symbol_unique functionality into
compat_symbol.
This change eliminates the need for intermediate aliases for defining
multiple symbol versions, for both compat_symbol and versioned_symbol.
Some binutils versions do not suport multiple versions per symbol on
some targets, so aliases are automatically introduced, similar to what
compat_symbol_unique did. To reduce symbol table sizes, a configure
check is added to avoid these aliases if they are not needed.
The new mechanism works with data symbols as well as function symbols,
due to the way an assembler-level redirect is used. It is not
compatible with weak symbols for old binutils versions, which is why
the definition of __malloc_initialize_hook had to be changed. This
is not a loss of functionality because weak symbols do not matter
to dynamic linking.
The placeholder symbol needs repeating in nptl/libpthread-compat.c
now that compat_symbol is used, but that seems more obvious than
introducing yet another macro.
A subtle difference was that compat_symbol_unique made the symbol
global automatically. compat_symbol does not do this, so static
had to be removed from the definition of
__libpthread_version_placeholder.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
|
A subsequent change will require including <config.h> for defining
symbol_version_reference. <libc-symbol.h> should not include
<config.h> for _ISOMAC, so it cannot define symbol_version_reference
anymore, but symbol_version_reference is needed <shlib-compat.h> even
for _ISOMAC. Moving the definition of symbol_version_reference to a
separate file <libc-symver.h> makes it possible to use a single
definition for both cases.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
|
|
|
2b47727c68b6 ("posix: Consolidate register-atfork") introduced a fork.h
header to declare the atfork unregister hook, but was missing adding it
for htl.
This fixes tst-atfork2.
|
|
During critical sections, signal handling is deferred and thus RPCs return
EINTR, even if SA_RESTART is set. We thus have to restart the whole critical
section in that case.
This also adds HURD_CRITICAL_UNLOCK in the cases where one wants to
break the section in the middle.
|
|
This change adds new test to assess sigtimedwait's timeout related
functionality - the sigset_t is configured for SIGUSR1, which will
not be triggered, so sigtimedwait just waits for timeout.
To be more specific - two use cases are checked:
- if sigtimedwait times out immediately when passed struct timespec has
zero values of tv_nsec and tv_sec.
- if sigtimedwait times out after timeout specified in passed argument
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
|
This test is a wrapper on tst-ntp_gettime test.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
|
This code provides test to check if time on target machine is properly
read via ntp_gettime syscall.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
|
After this patch applied the ntp_gettimex function is always declared
in the sys/timex.h header. Currently it is not when __REDIRECT_NTH is
defined (i.e. in ARM 32 bit port).
|
|
MULTI_PAGE_ALIASING was introduced to mitigate an aliasing issue on
Pentium 4. It is no longer needed for processors after Pentium 4.
|
|
The generic implementation basically handle the system agnostic logic
(filtering out the invalid signals) while the __libc_sigaction is
the function with implements the system and architecture bits.
Checked on x86_64-linux-gnu and i686-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The libc version is identical and built with same flags.
Checked on x86_64-linux-gnu.
|
|
The POWER9 builtins used to improve the ilogb* functions can be
used in the llogb* functions as well.
|
|
The instructions xsxexpdp and xsxexpqp introduced on POWER9 extract
the exponent from a double-precision and quad-precision floating-point
respectively, thus they can be used to improve ilogb, ilogbf and ilogbf128.
|
|
It is not actually used by the legacy unwinder linked into
libc.so, and it conflicts with the unwind-link functionality
in libpthread.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
|
Generated with 'make regen-ulps' on POWER8.
Tested on powerpc, powerpc64, and powerpc64le
|
|
__x86_get_cpuid_feature_leaf is called during early startup, before
the stack check guard is initialized and is hence not safe to build
with stack-protector.
Additionally, IFUNC resolvers for static tst-ifunc-isa tests get
called too early for stack protector to be useful, so fix them to
disable stack protector for the resolver functions.
This fixes all failures seen with --enable-stack-protector=all
configuration.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|