glibc/include
Adhemerval Zanella 063f9ba220 elf: Avoid unnecessary slowdown from profiling with audit (BZ#15533)
The rtld-audit interfaces introduces a slowdown due to enabling
profiling instrumentation (as if LD_AUDIT implied LD_PROFILE).
However, instrumenting is only necessary if one of audit libraries
provides PLT callbacks (la_pltenter or la_pltexit symbols).  Otherwise,
the slowdown can be avoided.

The following patch adjusts the logic that enables profiling to iterate
over all audit modules and check if any of those provides a PLT hook.
To keep la_symbind to work even without PLT callbacks, _dl_fixup now
calls the audit callback if the modules implements it.

Co-authored-by: Alexander Monakov <amonakov@ispras.ru>

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

Reviewed-by: Florian Weimer <fweimer@redhat.com>
2021-12-28 08:40:38 -03:00
..
arpa resolv: Move ns_samename into its own file, and into libc 2021-07-19 07:56:21 +02:00
bits nptl: Extract <bits/atomic_wide_counter.h> from pthread_cond_common.c 2021-11-17 12:20:13 +01:00
gnu
net
netinet
programs xmalloc: Fix warnings with gcc analyzer 2021-07-28 17:45:14 +05:30
protocols
rpc
rpcsvc
sys misc: Add __get_nprocs_sched 2021-09-27 09:13:06 -03:00
aio.h
aliases.h
alloc_buffer.h
alloca.h
allocate_once.h
ar.h
argp-fmtstream.h
argp.h
argz.h
array_length.h
assert.h
atomic_wide_counter.h nptl: Extract <bits/atomic_wide_counter.h> from pthread_cond_common.c 2021-11-17 12:20:13 +01:00
atomic.h Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
byteswap.h
clone_internal.h Add an internal wrapper for clone, clone2 and clone3 2021-07-14 06:33:58 -07:00
complex.h
cpio.h
crypt.h
ctype.h
des.h
dirent.h
dlfcn.h elf: Clean up GLIBC_PRIVATE exports of internal libdl symbols 2021-07-07 08:41:24 +02:00
dso_handle.h
elf.h
endian.h
envz.h
err.h
errno.h
error.h
execinfo.h
fcntl.h
features-time64.h
features.h Prepare for glibc 2.34 release. 2021-08-01 21:24:04 -04:00
fenv.h
file_change_detection.h
filename.h
float.h
fmtmsg.h
fnmatch.h
fpu_control.h
fstab.h
fts.h
ftw.h
gconv.h
getopt_int.h
getopt.h
glob.h Fix extra PLT reference in libc.so due to __glob64_time64 if build with gcc 7.5 on 32bit. 2021-07-01 16:46:59 +02:00
gmp.h
gnu-versions.h
grp-merge.h
grp.h
gshadow.h
iconv.h
idx.h
ifaddrs.h
ifreq.h
ifunc-impl-list.h
inline-hashtab.h Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
intprops.h regex: copy back from Gnulib 2021-09-21 08:00:44 -07:00
inttypes.h
langinfo.h
lastlog.h
libc-diag.h
libc-internal.h
libc-pointer-arith.h malloc: Add THP/madvise support for sbrk 2021-12-15 17:35:15 -03:00
libc-symbols.h nss_files: Move into libc 2021-07-07 18:33:52 +02:00
libgen.h
libintl.h
limits.h
link.h elf: Avoid unnecessary slowdown from profiling with audit (BZ#15533) 2021-12-28 08:40:38 -03:00
list_t.h Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
list.h Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
locale.h
loop_unroll.h
malloc.h Simplify __malloc_initialized 2021-07-22 18:38:04 +05:30
math-narrow-eval.h
math.h Redirect fma calls to __fma in libm 2021-09-15 22:57:35 +00:00
mcheck.h mcheck: Wean away from malloc hooks [BZ #23489] 2021-07-22 18:38:02 +05:30
memory.h
mntent.h
monetary.h
mqueue.h
netdb.h nss_files: Move into libc 2021-07-07 18:33:52 +02:00
netgroup.h
nl_types.h
nss_dns.h nss: Directly load nss_dns, without going through dlsym/dlopen 2021-07-19 07:56:57 +02:00
nss_files.h nss: Access nss_files through direct references 2021-07-07 18:33:52 +02:00
nss.h
nsswitch.h
obstack.h
plural-exp.h
poll.h
printf.h
pthread.h
pty.h login: Move libutil into libc 2021-06-30 08:43:37 +02:00
pwd.h
random-bits.h
re_comp.h
regex.h regex: copy back from Gnulib 2021-09-21 08:00:44 -07:00
regexp.h
register-atfork.h
resolv.h resolv: Move res_queriesmatch to its own file and into libc 2021-07-19 07:56:21 +02:00
rounding-mode.h
rtld-malloc.h
sched.h
scratch_buffer.h
search.h
set-hooks.h hurd: Fix static-PIE startup 2021-12-28 10:28:22 +01:00
setjmp.h setjmp: Replace jmp_buf-macros.h with jmp_buf-macros.sym 2021-11-22 13:43:22 -03:00
sgtty.h
shadow.h
shlib-compat.h Force building with -fno-common 2021-07-09 20:09:14 +02:00
shm-directory.h
signal.h
spawn.h
stab.h
stackinfo.h
stap-probe.h
stdc-predef.h Define __STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__ 2021-09-24 20:11:56 +00:00
stdint.h
stdio_ext.h
stdio.h libio: Replace internal _IO_getdelim symbol with __getdelim 2021-07-07 18:33:52 +02:00
stdlib.h Remove __morecore and __default_morecore 2021-07-22 18:37:57 +05:30
string.h String: Add hidden defs for __memcmpeq() to enable internal usage 2021-10-26 16:51:29 -05:00
strings.h
struct___timeb64.h
struct___timespec64.h
struct___timeval64.h
stubs-prologue.h
syscall.h
sysexits.h
syslog.h
tar.h
termios.h
tgmath.h
time.h time: Fix overflow itimer tests on 32-bit systems 2021-08-15 07:09:58 +09:00
ttyent.h
uchar.h
ucontext.h
ulimit.h
unistd.h io: Refactor close_range and closefrom 2021-11-24 09:09:37 -03:00
utime.h
utmp.h login: Move libutil into libc 2021-06-30 08:43:37 +02:00
values.h
verify.h
wait.h
wchar.h
wctype.h
wordexp.h