This is necessary to place the libio vtables into the RELRO segment.
New tests elf/tst-relro-ldso and elf/tst-relro-libc are added to
verify that this is what actually happens.
The new tests fail on ia64 due to lack of (default) RELRO support
inbutils, so they are XFAILed there.
It's necessary to stub out __libc_disable_asynccancel and
__libc_enable_asynccancel via rtld-stubbed-symbols because the new
direct references to the unwinder result in symbol conflicts when the
rtld exception handling from libc is linked in during the construction
of librtld.map.
unwind-forcedunwind.c is merged into unwind-resume.c. libc now needs
the functions that were previously only used in libpthread.
The GLIBC_PRIVATE exports of __libc_longjmp and __libc_siglongjmp are
no longer needed, so switch them to hidden symbols.
The symbol __pthread_unwind_next has been moved using
scripts/move-symbol-to-libc.py.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
This patch XFAILs one test where the ia64 ucontext_t has the wrong
type of a field, to allow the conform/ tests as a whole to pass once
the namespace issues are fixed.
Tested with build-many-glibcs.py.
[BZ #21634]
* sysdeps/unix/sysv/linux/ia64/Makefile [$(subdir) = conform]
(conformtest-xfail-conds): New variable.
* conform/data/signal.h-data (uc_sigmask): XFAIL for ia64-linux.
* conform/data/ucontext.h-data (uc_sigmask): Likewise.
This define made more sense in the pre-sanitized kernel headers days,
but since we require kernel versions that are sanitized, we don't need
this hack anymore.
* sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym: New file.
* sysdeps/unix/sysv/linux/ia64/Makefile
[$(subdir) = stdlib] (gen-as-const-headers): Add it.
* sysdeps/unix/sysv/linux/ia64/ucontext_i.h: Include it instead of
defining SC_* macros here.
2001-03-16 David Mosberger <davidm@hpl.hp.com>
* sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h (struct sigcontext):
Drop hack that was needed for 2.1.1 kernel headers.
* sysdeps/unix/sysv/linux/ia64/ucontext_i.h: New file.
* sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Rewrite to make it
overlay with kernel's "struct sigcontext".
* sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_headers): Add
sys/rse.h for "misc" subdir.
(sysdep_routines): Add __start_context for "stdlib" subdir.
* sysdeps/unix/sysv/linux/ia64/sys/rse.h: New file (based on
kernel file of the same name).
* stdlib/Makefile (tests): Add tst-setcontext.
* stdlib/tst-setcontext.c: New file (based on a sample program by
Uli Drepper).
* sysdeps/unix/sysv/linux/ia64/setcontext.S: New file.
* sysdeps/unix/sysv/linux/ia64/getcontext.S: New file.
* sysdeps/unix/sysv/linux/ia64/__start_context.S: New file.
* sysdeps/unix/sysv/linux/ia64/makecontext.c: New file.
* sysdeps/unix/sysv/linux/ia64/__longjmp.S (__longjmp): Use extr.u
instead of shift & and.