H.J. Lu
1cf463cd4e
Check if RTLD_SAVESPACE_SSE is aligned to 32 bytes
2012-05-11 11:50:11 -07:00
Paul Eggert
59ba27a63a
Replace FSF snail mail address with URLs.
2012-02-09 23:18:22 +00:00
H.J. Lu
08a300c956
Simplify AVX check
2011-09-07 21:38:23 -04:00
Ulrich Drepper
0276a718c0
Fix minor CFI problem in regular x86-64 trampoline
2011-08-20 08:58:44 -04:00
Ulrich Drepper
c88f17668b
Fix CFI info in x86-64 trampolines for non-AVX code
2011-08-20 08:56:30 -04:00
Ulrich Drepper
bba33c289b
One more typo in AVX test
2011-07-23 15:18:13 -04:00
Ulrich Drepper
1aae088a8a
One more change to XSAVE patch
2011-07-22 23:33:22 -04:00
Andreas Schwab
1d002f2539
Fix AVX check
2011-07-22 14:33:47 -04:00
Ulrich Drepper
5644ef5461
Fix check for AVX enablement
...
The AVX bit is set if the CPU supports AVX. But this doesn't mean the
kernel does. Add checks according to Intel's documentation.
2011-07-20 21:21:03 -04:00
Ulrich Drepper
84088310ce
Handle AVX saving on x86-64 in interrupted smbol lookups.
...
If a signal arrived during a symbol lookup and the signal handler also
required a symbol lookup, the end of the lookup in the signal handler reset
the flag whether restoring AVX/SSE registers is needed. Resetting means
in this case that the tail part of the outer lookup code will try to
restore the registers and this can fail miserably. We now restore to the
previous value which makes nesting calls possible.
2009-08-25 10:42:30 -07:00
H.J. Lu
4e1e2f4247
Support mixed SSE/AVX audit and check AVX only once.
...
This patch fixes mixed SSE/AVX audit and checks AVX only once in
_dl_runtime_profile. When an AVX or SSE register value in pltenter is
modified, we have to make sure that the SSE part value is the same in both
lr_xmm and lr_vector fields so that pltexit will get the correct value
from either lr_xmm or lr_vector fields. AVX-enabled pltenter should
update both lr_xmm and lr_vector fields to support stacked AVX/SSE
pltenter functions.
2009-08-08 10:54:42 -07:00
Ulrich Drepper
649bf13320
Improve CFI in x86-64 ld.so trampoline code.
2009-07-29 08:50:03 -07:00
H.J. Lu
09e0389eb1
Properly restore AVX registers on x86-64.
...
tst-audit4 and tst-audit5 fail under AVX emulator due to je instead of
jne. This patch fixes them.
2009-07-29 08:40:54 -07:00
Ulrich Drepper
b48a267b8f
Preserve SSE registers in runtime relocations on x86-64.
...
SSE registers are used for passing parameters and must be preserved
in runtime relocations. This is inside ld.so enforced through the
tests in tst-xmmymm.sh. But the malloc routines used after startup
come from libc.so and can be arbitrarily complex. It's overkill
to save the SSE registers all the time because of that. These calls
are rare. Instead we save them on demand. The new infrastructure
put in place in this patch makes this possible and efficient.
2009-07-29 08:33:03 -07:00
Ulrich Drepper
c8027cced1
Optimize restoring of ymm registers on x86-64.
...
The patch mainly reduces the code size but also avoids some jumps.
2009-07-16 07:15:15 -07:00
Ulrich Drepper
ca419225a3
Fix thinko in AVX audit patch.
...
Don't use AVX instructions too often.
2009-07-15 17:59:14 -07:00
Ulrich Drepper
47fc9b710b
Fix typo in last change.
2009-07-15 17:51:11 -07:00
Ulrich Drepper
d7bd7a8ae8
Secure AVX changes for auditing code.
...
The original AVX patch used a function pointer to handle the difference
between machines with and without AVX support. This is insecure. A
well-placed memory exploit could lead to redirection of the execution.
Using a variable and several tests is a bit slower but cannot be
exploited in this way.
2009-07-15 17:41:36 -07:00
H.J. Lu
b0ecde3a63
Add AVX support to ld.so auditing for x86-64.
2009-07-10 12:04:14 -07:00
H.J. Lu
167d5ed5de
Fix handling of xmm6 in ld.so audit hooks on x86-64.
2009-07-02 04:33:12 -07:00
Ulrich Drepper
906dd40db3
[BZ #9881 ]
...
* inet/inet6_rth.c (inet6_rth_add): Add some error checking.
Patch mostly by Yang Hongyang <yanghy@cn.fujitsu.com>.
* inet/Makefile (tests): Add tst-inet6_rth.
* inet/tst-inet6_rth.c: New file.
alignment of La_x86_64_regs. Store xmm parameters.
2009-03-15 19:16:16 +00:00
Ulrich Drepper
a42ad61bae
* elf/dl-runtime.c (reloc_offset): Define.
...
(reloc_index): Define.
(_dl_fixup): Rename reloc_offset parameter to reloc_arg.
(_dl_fixup_profile): Likewise. Use reloc_index instead of
computing index from reloc_offset.
(_dl_call_pltexit): Likewise.
* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_resolve): Just pass
the relocation index to _dl_fixup.
(_dl_runtime_profile): Likewise for _dl_fixup_profile and
_dl_call_pltexit.
* sysdeps/x86_64/dl-runtime.c: New file.
2009-03-15 00:26:14 +00:00
Ulrich Drepper
1f7c90a722
[BZ #9893 ]
...
* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix
alignement of La_x86_64_regs. Store xmm parameters.
Patch mostly by Jiri Olsa <olsajiri@gmail.com>.
2009-03-14 23:57:33 +00:00
Ulrich Drepper
41ff2a4999
* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Make sure
...
stack is properly aligned for the target function.
Correct unwind info.
2007-10-31 19:25:15 +00:00
Ulrich Drepper
44b2e5815b
* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Correctly
...
align stack for call if pltexit is to be used.
2007-08-24 03:57:56 +00:00
Ulrich Drepper
9f0d7b6df9
* elf/dl-reloc.c [PROF] (_dl_relocate_object): Define
...
consider_profiling always to zero. Don't count of compiler to
remove unreached if block.
* sysdeps/x86_64/dl-trampoline.S [PROF] (_dl_runtime_profile):
Don't compile.
* sysdeps/i386/dl-trampoline.S [PROF] (_dl_runtime_profile): Likewise.
* sysdeps/ia64/dl-trampoline.S [PROF] (_dl_runtime_profile): Likewise.
* sysdeps/s390/s390-64/dl-trampoline.S [PROF] (_dl_runtime_profile):
Likewise.
* sysdeps/s390/s390-32/dl-trampoline.S [PROF] (_dl_runtime_profile):
Likewise.
* sysdeps/powerpc/powerpc64/dl-trampoline.S [PROF]
(_dl_profile_resolve): Likewise.
* sysdeps/powerpc/powerpc32/dl-trampoline.S [PROF]
(_dl_profile_resolve): Likewise.
* gmon/Makefile: Add rules to build and run tst-profile-static.
* gmon/tst-profile-static.c: New file.
* Makeconfig (+link-static): Allow passing program-specific flags.
2005-07-07 02:39:45 +00:00
Ulrich Drepper
9dcafc5597
* csu/elf-init.c (__libc_csu_fini): Don't do anything here.
...
* sysdeps/generic/libc-start.c: Don't register program destructor here.
* dlfcn/Makefile: Add rules to build dlfcn.c.
(LDFLAGS-dl.so): Removed.
* dlfcn/dlclose.c: _dl_close is now in ld.so, use function pointer
table.
* dlfcn/dlmopen.c: Likewise for _dl_open.
* dlfcn/dlopen.c: Likewise.
* dlfcn/dlopenold.c: Likewise.
* elf/dl-libc.c: Likewise for _dl_open and _dl_close.
* elf/Makefile (routines): Remove dl-open and dl-close.
(dl-routines): Add dl-open, dl-close, and dl-trampoline.
Add rules to build and run tst-audit1.
* elf/tst-audit1.c: New file.
* elf/tst-auditmod1.c: New file.
* elf/Versions [libc]: Remove _dl_open and _dl_close.
* elf/dl-close.c: Change for use inside ld.so instead of libc.so.
* elf/dl-open.c: Likewise.
* elf/dl-debug.c (_dl_debug_initialize): Allow reinitialization,
signaled by nonzero parameter.
* elf/dl-init.c: Fix use of r_state.
* elf/dl-load.c: Likewise.
* elf/dl-close.c: Add auditing checkpoints.
* elf/dl-open.c: Likewise.
* elf/dl-fini.c: Likewise.
* elf/dl-load.c: Likewise.
* elf/dl-sym.c: Likewise.
* sysdeps/generic/libc-start.c: Likewise.
* elf/dl-object.c: Allocate memory for auditing information.
* elf/dl-reloc.c: Remove RESOLV. We now always need the map.
Correctly initialize slotinfo.
* elf/dynamic-link.h: Adjust after removal of RESOLV.
* sysdeps/hppa/dl-lookupcfg.h: Likewise.
* sysdeps/ia64/dl-lookupcfg.h: Likewise.
* sysdeps/powerpc/powerpc64/dl-lookupcfg.h: Removed.
* elf/dl-runtime.c (_dl_fixup): Little cleanup.
(_dl_profile_fixup): New parameters to point to register struct and
variable for frame size.
Add auditing checkpoints.
(_dl_call_pltexit): New function.
Don't define trampoline code here.
* elf/rtld.c: Recognize LD_AUDIT. Load modules on startup.
Remove all the functions from _rtld_global_ro which only _dl_open
and _dl_close needed.
Add auditing checkpoints.
* elf/link.h: Define symbols for auditing interfaces.
* include/link.h: Likewise.
* include/dlfcn.h: Define __RTLD_AUDIT.
Remove prototypes for _dl_open and _dl_close.
Adjust access to argc and argv in libdl.
* dlfcn/dlfcn.c: New file.
* sysdeps/generic/dl-lookupcfg.h: Remove all content now that RESOLVE
is gone.
* sysdeps/generic/ldsodefs.h: Add definitions for auditing interfaces.
* sysdeps/generic/unsecvars.h: Add LD_AUDIT.
* sysdeps/i386/dl-machine.h: Remove trampoline code here.
Adjust for removal of RESOLVE.
* sysdeps/x86_64/dl-machine.h: Likewise.
* sysdeps/generic/dl-trampoline.c: New file.
* sysdeps/i386/dl-trampoline.c: New file.
* sysdeps/x86_64/dl-trampoline.c: New file.
* sysdeps/generic/dl-tls.c: Cleanups. Fixup for dtv_t change.
Fix updating of DTV.
* sysdeps/generic/libc-tls.c: Likewise.
* sysdeps/arm/bits/link.h: Renamed to ...
* sysdeps/arm/buts/linkmap.h: ...this.
* sysdeps/generic/bits/link.h: Renamed to...
* sysdeps/generic/bits/linkmap.h: ...this.
* sysdeps/hppa/bits/link.h: Renamed to...
* sysdeps/hppa/bits/linkmap.h: ...this.
* sysdeps/hppa/i386/link.h: Renamed to...
* sysdeps/hppa/i386/linkmap.h: ...this.
* sysdeps/hppa/ia64/link.h: Renamed to...
* sysdeps/hppa/ia64/linkmap.h: ...this.
* sysdeps/hppa/s390/link.h: Renamed to...
* sysdeps/hppa/s390/linkmap.h: ...this.
* sysdeps/hppa/sh/link.h: Renamed to...
* sysdeps/hppa/sh/linkmap.h: ...this.
* sysdeps/hppa/x86_64/link.h: Renamed to...
* sysdeps/hppa/x86_64/linkmap.h: ...this.
2005-01-06 Ulrich Drepper <drepper@redhat.com>
* allocatestack.c (init_one_static_tls): Adjust initialization of DTV
entry for static tls deallocation fix.
* sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
also contains information whether the memory pointed to is static
TLS or not.
* sysdeps/i386/tls.h: Likewise.
* sysdeps/ia64/tls.h: Likewise.
* sysdeps/powerpc/tls.h: Likewise.
* sysdeps/s390/tls.h: Likewise.
* sysdeps/sh/tls.h: Likewise.
* sysdeps/sparc/tls.h: Likewise.
* sysdeps/x86_64/tls.h: Likewise.
2005-01-06 22:40:27 +00:00
Ulrich Drepper
a334319f65
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
2004-12-22 20:10:10 +00:00
Jakub Jelinek
0ecb606cb6
2.5-18.1
2007-07-12 18:26:36 +00:00