Age | Commit message (Collapse) | Author |
|
The glibc 2.34 release really should have added a GLIBC_2.34
symbol to the dynamic loader. With it, we could move functions such
as dlopen or pthread_key_create that work on process-global state
into the dynamic loader (once we have fixed a longstanding issue
with static linking). Without the GLIBC_2.34 symbol, yet another
new symbol version would be needed because old glibc will fail to
load binaries due to the missing symbol version in ld.so that newly
linked programs will require.
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
|
|
The relationship between the thread pointer and the rseq area
is made explicit. The constant offset can be used by JIT compilers
to optimize rseq access (e.g., for really fast sched_getcpu).
Extensibility is provided through __rseq_size and __rseq_flags.
(In the future, the kernel could request a different rseq size
via the auxiliary vector.)
Co-Authored-By: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
|
|
Exporting functions and relying on symbol interposition from libc.so
makes the choice of implementation dependent on DT_NEEDED order, which
is not what some compiler drivers expect.
This commit replaces one magic mechanism (symbol interposition) with
another one (preprocessor-/compiler-based redirection). This makes
the hand-over from the minimal malloc to the full malloc more
explicit.
Removing the ABI symbols is backwards-compatible because libc.so is
always in scope, and the dynamic loader will find the malloc-related
symbols there since commit f0b2132b35248c1f4a80f62a2c38cddcc802aa8c
("ld.so: Support moving versioned symbols between sonames
[BZ #24741]").
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
|
|
This patch add two abi combinations support for C-SKY ABIV2: soft-float
little endian, hard float little endian. C-SKY ABI manual and architecture
user guide are available from: https://github.com/c-sky/csky-doc
* config.h.in (CSKYABI, CSKY_HARD_FLOAT): New Define.
* scripts/build-many-glibcs.py: Add C-SKY targets.
* sysdeps/csky/Implies: New file.
* sysdeps/csky/Makefile: Likewise.
* sysdeps/csky/abiv2/__longjmp.S: Likewise.
* sysdeps/csky/abiv2/csky-mcount.S: Likewise.
* sysdeps/csky/abiv2/dl-trampoline.S: Likewise.
* sysdeps/csky/abiv2/memcmp.S: Likewise.
* sysdeps/csky/abiv2/memcpy.S: Likewise.
* sysdeps/csky/abiv2/memmove.S: Likewise.
* sysdeps/csky/abiv2/memset.S: Likewise.
* sysdeps/csky/abiv2/setjmp.S: Likewise.
* sysdeps/csky/abiv2/start.S: Likewise.
* sysdeps/csky/abiv2/strcmp.S: Likewise.
* sysdeps/csky/abiv2/strcpy.S: Likewise.
* sysdeps/csky/abiv2/strlen.S: Likewise.
* sysdeps/csky/abiv2/tls-macros.h: Likewise.
* sysdeps/csky/abort-instr.h: Likewise.
* sysdeps/csky/atomic-machine.h: Likewise.
* sysdeps/csky/bits/endian.h: Likewise.
* sysdeps/csky/bits/fenv.h: Likewise.
* sysdeps/csky/bits/link.h: Likewise.
* sysdeps/csky/bits/setjmp.h: Likewise.
* sysdeps/csky/bsd-_setjmp.S: Likewise.
* sysdeps/csky/bsd-setjmp.S: Likewise.
* sysdeps/csky/configure: Likewise.
* sysdeps/csky/configure.ac: Likewise.
* sysdeps/csky/dl-machine.h: Likewise.
* sysdeps/csky/dl-procinfo.c: Likewise.
* sysdeps/csky/dl-procinfo.h: Likewise.
* sysdeps/csky/dl-sysdep.h: Likewise.
* sysdeps/csky/dl-tls.h: Likewise.
* sysdeps/csky/fpu/fclrexcpt.c: Likewise.
* sysdeps/csky/fpu/fedisblxcpt.c: Likewise.
* sysdeps/csky/fpu/feenablxcpt.c: Likewise.
* sysdeps/csky/fpu/fegetenv.c: Likewise.
* sysdeps/csky/fpu/fegetexcept.c: Likewise.
* sysdeps/csky/fpu/fegetmode.c: Likewise.
* sysdeps/csky/fpu/fegetround.c: Likewise.
* sysdeps/csky/fpu/feholdexcpt.c: Likewise.
* sysdeps/csky/fpu/fenv_libc.h: Likewise.
* sysdeps/csky/fpu/fenv_private.h: Likewise.
* sysdeps/csky/fpu/fesetenv.c: Likewise.
* sysdeps/csky/fpu/fesetexcept.c: Likewise.
* sysdeps/csky/fpu/fesetmode.c: Likewise.
* sysdeps/csky/fpu/fesetround.c: Likewise.
* sysdeps/csky/fpu/feupdateenv.c: Likewise.
* sysdeps/csky/fpu/fgetexcptflg.c: Likewise.
* sysdeps/csky/fpu/fix-fp-int-convert-overflow.h: Likewise.
* sysdeps/csky/fpu/fraiseexcpt.c: Likewise.
* sysdeps/csky/fpu/fsetexcptflg.c: Likewise.
* sysdeps/csky/fpu/ftestexcept.c: Likewise.
* sysdeps/csky/fpu/libm-test-ulps: Likewise.
* sysdeps/csky/fpu/libm-test-ulps-name: Likewise.
* sysdeps/csky/fpu_control.h: Likewise.
* sysdeps/csky/gccframe.h: Likewise.
* sysdeps/csky/jmpbuf-unwind.h: Likewise.
* sysdeps/csky/ldsodefs.h: Likewise.
* sysdeps/csky/libc-tls.c: Likewise.
* sysdeps/csky/linkmap.h: Likewise.
* sysdeps/csky/machine-gmon.h: Likewise.
* sysdeps/csky/memusage.h: Likewise.
* sysdeps/csky/nofpu/Implies: Likewise.
* sysdeps/csky/nofpu/libm-test-ulps: Likewise.
* sysdeps/csky/nofpu/libm-test-ulps-name: Likewise.
* sysdeps/csky/nptl/Makefile: Likewise.
* sysdeps/csky/nptl/bits/pthreadtypes-arch.h: Likewise.
* sysdeps/csky/nptl/bits/semaphore.h: Likewise.
* sysdeps/csky/nptl/pthread-offsets.h: Likewise.
* sysdeps/csky/nptl/pthreaddef.h: Likewise.
* sysdeps/csky/nptl/tcb-offsets.sym: Likewise.
* sysdeps/csky/nptl/tls.h: Likewise.
* sysdeps/csky/preconfigure: Likewise.
* sysdeps/csky/sfp-machine.h: Likewise.
* sysdeps/csky/sotruss-lib.c: Likewise.
* sysdeps/csky/stackinfo.h: Likewise.
* sysdeps/csky/sysdep.h: Likewise.
* sysdeps/csky/tininess.h: Likewise.
* sysdeps/csky/tst-audit.h: Likewise.
* sysdeps/unix/sysv/linux/csky/Implies: Likewise.
* sysdeps/unix/sysv/linux/csky/Makefile: Likewise.
* sysdeps/unix/sysv/linux/csky/Versions: Likewise.
* sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S: Likewise.
* sysdeps/unix/sysv/linux/csky/abiv2/clone.S: Likewise.
* sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S: Likewise.
* sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S: Likewise.
* sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S: Likewise.
* sysdeps/unix/sysv/linux/csky/abiv2/syscall.S: Likewise.
* sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym: Likewise.
* sysdeps/unix/sysv/linux/csky/bits/procfs.h: Likewise.
* sysdeps/unix/sysv/linux/csky/bits/shmlba.h: Likewise.
* sysdeps/unix/sysv/linux/csky/c++-types.data: Likewise.
* sysdeps/unix/sysv/linux/csky/configure: Likewise.
* sysdeps/unix/sysv/linux/csky/configure.ac: Likewise.
* sysdeps/unix/sysv/linux/csky/ipc_priv.h: Likewise.
* sysdeps/unix/sysv/linux/csky/jmp_buf-macros.h: Likewise.
* sysdeps/unix/sysv/linux/csky/kernel-features.h: Likewise.
* sysdeps/unix/sysv/linux/csky/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/ldconfig.h: Likewise.
* sysdeps/unix/sysv/linux/csky/libBrokenLocale.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/libanl.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/libc.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/libcrypt.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/libdl.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/libpthread.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/libresolv.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/librt.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/libthread_db.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/libutil.abilist: Likewise.
* sysdeps/unix/sysv/linux/csky/localplt.data: Likewise.
* sysdeps/unix/sysv/linux/csky/makecontext.c: Likewise.
* sysdeps/unix/sysv/linux/csky/profil-counter.h: Likewise.
* sysdeps/unix/sysv/linux/csky/pt-vfork.S: Likewise.
* sysdeps/unix/sysv/linux/csky/register-dump.h: Likewise.
* sysdeps/unix/sysv/linux/csky/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/csky/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/csky/sys/cachectl.h: Likewise.
* sysdeps/unix/sysv/linux/csky/sys/ucontext.h: Likewise.
* sysdeps/unix/sysv/linux/csky/sys/user.h: Likewise.
* sysdeps/unix/sysv/linux/csky/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/csky/sysdep.h: Likewise.
|