mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-14 01:00:07 +00:00
Remove IS_IN_rtld
Replace with IS_IN (rtld). Generated code is unchanged on x86_64. * elf/Makefile (CPPFLAGS-.os): Remove IS_IN_rtld. * elf/dl-open.c: Use IS_IN (rtld) instead if IS_IN_rtld. * elf/rtld-Rules: Likewise. * elf/setup-vdso.h: Likewise. * include/assert.h: Likewise. * include/bits/stdlib-float.h: Likewise. * include/errno.h: Likewise. * include/sys/stat.h: Likewise. * include/unistd.h: Likewise. * sysdeps/aarch64/setjmp.S: Likewise. * sysdeps/alpha/setjmp.S: Likewise. * sysdeps/arm/__longjmp.S: Likewise. * sysdeps/arm/aeabi_unwind_cpp_pr1.c: Likewise. * sysdeps/arm/setjmp.S: Likewise. * sysdeps/arm/sysdep.h: Likewise. * sysdeps/generic/_itoa.h: Likewise. * sysdeps/generic/dl-sysdep.h: Likewise. * sysdeps/generic/ldsodefs.h: Likewise. * sysdeps/i386/dl-tls.h: Likewise. * sysdeps/i386/setjmp.S: Likewise. * sysdeps/m68k/setjmp.c: Likewise. * sysdeps/mach/hurd/dl-execstack.c: Likewise. * sysdeps/mach/hurd/opendir.c: Likewise. * sysdeps/posix/getcwd.c: Likewise. * sysdeps/posix/opendir.c: Likewise. * sysdeps/posix/profil.c: Likewise. * sysdeps/powerpc/dl-procinfo.h: Likewise. * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Likewise. * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h: Likewise. * sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise. * sysdeps/powerpc/powerpc64/__longjmp-common.S: Likewise. * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise. * sysdeps/s390/dl-tls.h: Likewise. * sysdeps/s390/s390-32/setjmp.S: Likewise. * sysdeps/s390/s390-64/setjmp.S: Likewise. * sysdeps/sh/sh3/setjmp.S: Likewise. * sysdeps/sh/sh4/setjmp.S: Likewise. * sysdeps/unix/alpha/sysdep.h: Likewise. * sysdeps/unix/arm/sysdep.S: Likewise. * sysdeps/unix/i386/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/getcwd.c: Likewise. * sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/lowlevellock-futex.h: Likewise. * sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h: Likewise. * sysdeps/unix/sysv/linux/m68k/m68k-helpers.S: Likewise. * sysdeps/unix/sysv/linux/microblaze/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/tile/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise. * sysdeps/unix/x86_64/sysdep.S: Likewise. * sysdeps/x86_64/setjmp.S: Likewise.
This commit is contained in:
parent
a109996ef9
commit
a38484851a
71
ChangeLog
71
ChangeLog
@ -1,5 +1,76 @@
|
|||||||
2014-11-24 Siddhesh Poyarekar <siddhesh@redhat.com>
|
2014-11-24 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||||
|
|
||||||
|
* elf/Makefile (CPPFLAGS-.os): Remove IS_IN_rtld.
|
||||||
|
* elf/dl-open.c: Use IS_IN (rtld) instead if IS_IN_rtld.
|
||||||
|
* elf/rtld-Rules: Likewise.
|
||||||
|
* elf/setup-vdso.h: Likewise.
|
||||||
|
* include/assert.h: Likewise.
|
||||||
|
* include/bits/stdlib-float.h: Likewise.
|
||||||
|
* include/errno.h: Likewise.
|
||||||
|
* include/sys/stat.h: Likewise.
|
||||||
|
* include/unistd.h: Likewise.
|
||||||
|
* sysdeps/aarch64/setjmp.S: Likewise.
|
||||||
|
* sysdeps/alpha/setjmp.S: Likewise.
|
||||||
|
* sysdeps/arm/__longjmp.S: Likewise.
|
||||||
|
* sysdeps/arm/aeabi_unwind_cpp_pr1.c: Likewise.
|
||||||
|
* sysdeps/arm/setjmp.S: Likewise.
|
||||||
|
* sysdeps/arm/sysdep.h: Likewise.
|
||||||
|
* sysdeps/generic/_itoa.h: Likewise.
|
||||||
|
* sysdeps/generic/dl-sysdep.h: Likewise.
|
||||||
|
* sysdeps/generic/ldsodefs.h: Likewise.
|
||||||
|
* sysdeps/i386/dl-tls.h: Likewise.
|
||||||
|
* sysdeps/i386/setjmp.S: Likewise.
|
||||||
|
* sysdeps/m68k/setjmp.c: Likewise.
|
||||||
|
* sysdeps/mach/hurd/dl-execstack.c: Likewise.
|
||||||
|
* sysdeps/mach/hurd/opendir.c: Likewise.
|
||||||
|
* sysdeps/posix/getcwd.c: Likewise.
|
||||||
|
* sysdeps/posix/opendir.c: Likewise.
|
||||||
|
* sysdeps/posix/profil.c: Likewise.
|
||||||
|
* sysdeps/powerpc/dl-procinfo.h: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc64/__longjmp-common.S: Likewise.
|
||||||
|
* sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise.
|
||||||
|
* sysdeps/s390/dl-tls.h: Likewise.
|
||||||
|
* sysdeps/s390/s390-32/setjmp.S: Likewise.
|
||||||
|
* sysdeps/s390/s390-64/setjmp.S: Likewise.
|
||||||
|
* sysdeps/sh/sh3/setjmp.S: Likewise.
|
||||||
|
* sysdeps/sh/sh4/setjmp.S: Likewise.
|
||||||
|
* sysdeps/unix/alpha/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/arm/sysdep.S: Likewise.
|
||||||
|
* sysdeps/unix/i386/sysdep.S: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/getcwd.c: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/lowlevellock-futex.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/m68k/m68k-helpers.S: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/microblaze/lowlevellock.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/tile/lowlevellock.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/x86_64/sysdep.S: Likewise.
|
||||||
|
* sysdeps/x86_64/setjmp.S: Likewise.
|
||||||
|
|
||||||
* include/math.h: Use IS_IN instead of IS_IN_libm.
|
* include/math.h: Use IS_IN instead of IS_IN_libm.
|
||||||
* sysdeps/alpha/fpu/s_copysign.c: Likewise.
|
* sysdeps/alpha/fpu/s_copysign.c: Likewise.
|
||||||
* sysdeps/ieee754/ldbl-128ibm/s_copysignl.c: Likewise.
|
* sysdeps/ieee754/ldbl-128ibm/s_copysignl.c: Likewise.
|
||||||
|
@ -444,7 +444,7 @@ CFLAGS-cache.c = $(SYSCONF-FLAGS)
|
|||||||
CFLAGS-rtld.c = $(SYSCONF-FLAGS)
|
CFLAGS-rtld.c = $(SYSCONF-FLAGS)
|
||||||
|
|
||||||
CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
|
CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
|
||||||
-DNOT_IN_libc=1 -DIS_IN_rtld=1)
|
-DNOT_IN_libc=1)
|
||||||
|
|
||||||
cpp-srcs-left := $(all-rtld-routines:=.os)
|
cpp-srcs-left := $(all-rtld-routines:=.os)
|
||||||
lib := rtld
|
lib := rtld
|
||||||
|
@ -737,7 +737,7 @@ _dl_show_scope (struct link_map *l, int from)
|
|||||||
_dl_debug_printf ("\n");
|
_dl_debug_printf ("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* Return non-zero if ADDR lies within one of L's segments. */
|
/* Return non-zero if ADDR lies within one of L's segments. */
|
||||||
int
|
int
|
||||||
internal_function
|
internal_function
|
||||||
|
@ -144,6 +144,6 @@ lib := rtld
|
|||||||
include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
|
include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
|
||||||
|
|
||||||
# This here is the whole point of all the shenanigans.
|
# This here is the whole point of all the shenanigans.
|
||||||
rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1
|
rtld-CPPFLAGS := -DNOT_IN_libc=1
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@ -99,7 +99,7 @@ setup_vdso (struct link_map *main_map __attribute__ ((unused)),
|
|||||||
/* Add the vDSO to the object list. */
|
/* Add the vDSO to the object list. */
|
||||||
_dl_add_to_namespace_list (l, LM_ID_BASE);
|
_dl_add_to_namespace_list (l, LM_ID_BASE);
|
||||||
|
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
/* Rearrange the list so this DSO appears after rtld_map. */
|
/* Rearrange the list so this DSO appears after rtld_map. */
|
||||||
assert (l->l_next == NULL);
|
assert (l->l_next == NULL);
|
||||||
assert (l->l_prev == main_map);
|
assert (l->l_prev == main_map);
|
||||||
|
@ -20,7 +20,7 @@ extern void __assert_fail_base (const char *fmt, const char *assertion,
|
|||||||
const char *function)
|
const char *function)
|
||||||
__THROW __attribute__ ((__noreturn__));
|
__THROW __attribute__ ((__noreturn__));
|
||||||
|
|
||||||
# if !defined NOT_IN_libc || defined IS_IN_rtld
|
# if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
hidden_proto (__assert_fail)
|
hidden_proto (__assert_fail)
|
||||||
hidden_proto (__assert_perror_fail)
|
hidden_proto (__assert_perror_fail)
|
||||||
# endif
|
# endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* No floating-point inline functions in rtld. */
|
/* No floating-point inline functions in rtld. */
|
||||||
#ifndef IS_IN_rtld
|
#if !IS_IN (rtld)
|
||||||
# include <stdlib/bits/stdlib-float.h>
|
# include <stdlib/bits/stdlib-float.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
#if defined _ERRNO_H && !defined _ISOMAC && !defined __cplusplus
|
#if defined _ERRNO_H && !defined _ISOMAC && !defined __cplusplus
|
||||||
|
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
# include <dl-sysdep.h>
|
# include <dl-sysdep.h>
|
||||||
# ifndef RTLD_PRIVATE_ERRNO
|
# ifndef RTLD_PRIVATE_ERRNO
|
||||||
# error "dl-sysdep.h must define RTLD_PRIVATE_ERRNO!"
|
# error "dl-sysdep.h must define RTLD_PRIVATE_ERRNO!"
|
||||||
|
@ -12,7 +12,7 @@ extern __mode_t __umask (__mode_t __mask);
|
|||||||
extern int __mkdir (const char *__path, __mode_t __mode);
|
extern int __mkdir (const char *__path, __mode_t __mode);
|
||||||
extern int __mknod (const char *__path,
|
extern int __mknod (const char *__path,
|
||||||
__mode_t __mode, __dev_t __dev);
|
__mode_t __mode, __dev_t __dev);
|
||||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
#if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
hidden_proto (__fxstat)
|
hidden_proto (__fxstat)
|
||||||
hidden_proto (__fxstat64)
|
hidden_proto (__fxstat64)
|
||||||
hidden_proto (__lxstat)
|
hidden_proto (__lxstat)
|
||||||
|
@ -63,7 +63,7 @@ ENTRY (__sigsetjmp)
|
|||||||
mov x2, sp
|
mov x2, sp
|
||||||
str x2, [x0, #JB_SP<<3]
|
str x2, [x0, #JB_SP<<3]
|
||||||
#endif
|
#endif
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* In ld.so we never save the signal mask */
|
/* In ld.so we never save the signal mask */
|
||||||
mov w0, #0
|
mov w0, #0
|
||||||
RET
|
RET
|
||||||
|
@ -86,7 +86,7 @@ $sigsetjmp_local:
|
|||||||
ldq ra, 0(sp)
|
ldq ra, 0(sp)
|
||||||
addq sp, 16, sp
|
addq sp, 16, sp
|
||||||
ret
|
ret
|
||||||
#elif defined IS_IN_rtld
|
#elif IS_IN (rtld)
|
||||||
/* In ld.so we never save the signal mask. */
|
/* In ld.so we never save the signal mask. */
|
||||||
mov 0, v0
|
mov 0, v0
|
||||||
ret
|
ret
|
||||||
|
@ -76,7 +76,7 @@ ENTRY (__longjmp)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NEED_HWCAP
|
#ifdef NEED_HWCAP
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
LDST_PCREL (ldr, a4, a3, \
|
LDST_PCREL (ldr, a4, a3, \
|
||||||
C_SYMBOL_NAME(_rtld_local_ro) \
|
C_SYMBOL_NAME(_rtld_local_ro) \
|
||||||
+ RTLD_GLOBAL_RO_DL_HWCAP_OFFSET)
|
+ RTLD_GLOBAL_RO_DL_HWCAP_OFFSET)
|
||||||
|
@ -27,7 +27,7 @@ attribute_hidden
|
|||||||
void
|
void
|
||||||
__aeabi_unwind_cpp_pr0 (void)
|
__aeabi_unwind_cpp_pr0 (void)
|
||||||
{
|
{
|
||||||
#ifndef IS_IN_rtld
|
#if !IS_IN (rtld)
|
||||||
abort ();
|
abort ();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -36,7 +36,7 @@ attribute_hidden
|
|||||||
void
|
void
|
||||||
__aeabi_unwind_cpp_pr1 (void)
|
__aeabi_unwind_cpp_pr1 (void)
|
||||||
{
|
{
|
||||||
#ifndef IS_IN_rtld
|
#if !IS_IN (rtld)
|
||||||
abort ();
|
abort ();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -45,7 +45,7 @@ attribute_hidden
|
|||||||
void
|
void
|
||||||
__aeabi_unwind_cpp_pr2 (void)
|
__aeabi_unwind_cpp_pr2 (void)
|
||||||
{
|
{
|
||||||
#ifndef IS_IN_rtld
|
#if !IS_IN (rtld)
|
||||||
abort ();
|
abort ();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ ENTRY (__sigsetjmp)
|
|||||||
|
|
||||||
#ifdef NEED_HWCAP
|
#ifdef NEED_HWCAP
|
||||||
/* Check if we have a VFP unit. */
|
/* Check if we have a VFP unit. */
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
LDST_PCREL (ldr, a3, a4, \
|
LDST_PCREL (ldr, a3, a4, \
|
||||||
C_SYMBOL_NAME(_rtld_local_ro) \
|
C_SYMBOL_NAME(_rtld_local_ro) \
|
||||||
+ RTLD_GLOBAL_RO_DL_HWCAP_OFFSET)
|
+ RTLD_GLOBAL_RO_DL_HWCAP_OFFSET)
|
||||||
|
@ -343,7 +343,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#if (defined IS_IN_rtld || \
|
#if (IS_IN (rtld) || \
|
||||||
(!defined SHARED && (!defined NOT_IN_libc || IS_IN (libpthread))))
|
(!defined SHARED && (!defined NOT_IN_libc || IS_IN (libpthread))))
|
||||||
# ifdef __ASSEMBLER__
|
# ifdef __ASSEMBLER__
|
||||||
# define PTR_MANGLE_LOAD(guard, tmp) \
|
# define PTR_MANGLE_LOAD(guard, tmp) \
|
||||||
|
@ -46,7 +46,7 @@ extern char *_itoa (unsigned long long int value, char *buflim,
|
|||||||
|
|
||||||
extern const char _itoa_upper_digits[];
|
extern const char _itoa_upper_digits[];
|
||||||
extern const char _itoa_lower_digits[];
|
extern const char _itoa_lower_digits[];
|
||||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
#if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
hidden_proto (_itoa_upper_digits)
|
hidden_proto (_itoa_upper_digits)
|
||||||
hidden_proto (_itoa_lower_digits)
|
hidden_proto (_itoa_lower_digits)
|
||||||
#endif
|
#endif
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
all the libc functions that ld.so uses are called without PLT and always
|
all the libc functions that ld.so uses are called without PLT and always
|
||||||
get the versions linked into ld.so rather than the libc ones. */
|
get the versions linked into ld.so rather than the libc ones. */
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
# define RTLD_PRIVATE_ERRNO 1
|
# define RTLD_PRIVATE_ERRNO 1
|
||||||
#else
|
#else
|
||||||
# define RTLD_PRIVATE_ERRNO 0
|
# define RTLD_PRIVATE_ERRNO 0
|
||||||
|
@ -250,7 +250,7 @@ typedef void (*receiver_fct) (int, const char *, const char *);
|
|||||||
# define GL(name) _##name
|
# define GL(name) _##name
|
||||||
#else
|
#else
|
||||||
# define EXTERN
|
# define EXTERN
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
# define GL(name) _rtld_local._##name
|
# define GL(name) _rtld_local._##name
|
||||||
# else
|
# else
|
||||||
# define GL(name) _rtld_global._##name
|
# define GL(name) _rtld_global._##name
|
||||||
@ -409,7 +409,7 @@ struct rtld_global
|
|||||||
#ifdef SHARED
|
#ifdef SHARED
|
||||||
};
|
};
|
||||||
# define __rtld_global_attribute__
|
# define __rtld_global_attribute__
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
# ifdef HAVE_SDATA_SECTION
|
# ifdef HAVE_SDATA_SECTION
|
||||||
# define __rtld_local_attribute__ \
|
# define __rtld_local_attribute__ \
|
||||||
__attribute__ ((visibility ("hidden"), section (".sdata")))
|
__attribute__ ((visibility ("hidden"), section (".sdata")))
|
||||||
@ -428,7 +428,7 @@ extern struct rtld_global _rtld_global __rtld_global_attribute__;
|
|||||||
#ifndef SHARED
|
#ifndef SHARED
|
||||||
# define GLRO(name) _##name
|
# define GLRO(name) _##name
|
||||||
#else
|
#else
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
# define GLRO(name) _rtld_local_ro._##name
|
# define GLRO(name) _rtld_local_ro._##name
|
||||||
# else
|
# else
|
||||||
# define GLRO(name) _rtld_global_ro._##name
|
# define GLRO(name) _rtld_global_ro._##name
|
||||||
@ -587,7 +587,7 @@ struct rtld_global_ro
|
|||||||
EXTERN int _dl_pointer_guard;
|
EXTERN int _dl_pointer_guard;
|
||||||
};
|
};
|
||||||
# define __rtld_global_attribute__
|
# define __rtld_global_attribute__
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
# define __rtld_local_attribute__ __attribute__ ((visibility ("hidden")))
|
# define __rtld_local_attribute__ __attribute__ ((visibility ("hidden")))
|
||||||
extern struct rtld_global_ro _rtld_local_ro
|
extern struct rtld_global_ro _rtld_local_ro
|
||||||
attribute_relro __rtld_local_attribute__;
|
attribute_relro __rtld_local_attribute__;
|
||||||
@ -610,7 +610,7 @@ extern const ElfW(Phdr) *_dl_phdr;
|
|||||||
extern size_t _dl_phnum;
|
extern size_t _dl_phnum;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* This is the initial value of GL(dl_error_catch_tsd).
|
/* This is the initial value of GL(dl_error_catch_tsd).
|
||||||
A non-TLS libpthread will change it. */
|
A non-TLS libpthread will change it. */
|
||||||
extern void **_dl_initial_error_catch_tsd (void) __attribute__ ((const))
|
extern void **_dl_initial_error_catch_tsd (void) __attribute__ ((const))
|
||||||
@ -642,7 +642,7 @@ extern char **_dl_argv
|
|||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
rtld_hidden_proto (_dl_argv)
|
rtld_hidden_proto (_dl_argv)
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
extern unsigned int _dl_skip_args attribute_hidden
|
extern unsigned int _dl_skip_args attribute_hidden
|
||||||
# ifndef DL_ARGV_NOT_RELRO
|
# ifndef DL_ARGV_NOT_RELRO
|
||||||
attribute_relro
|
attribute_relro
|
||||||
|
@ -32,7 +32,7 @@ extern void *___tls_get_addr (tls_index *ti)
|
|||||||
extern void *___tls_get_addr_internal (tls_index *ti)
|
extern void *___tls_get_addr_internal (tls_index *ti)
|
||||||
__attribute__ ((__regparm__ (1))) attribute_hidden;
|
__attribute__ ((__regparm__ (1))) attribute_hidden;
|
||||||
|
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
/* The special thing about the x86 TLS ABI is that we have two
|
/* The special thing about the x86 TLS ABI is that we have two
|
||||||
variants of the __tls_get_addr function with different calling
|
variants of the __tls_get_addr function with different calling
|
||||||
conventions. The GNU version, which we are mostly concerned here,
|
conventions. The GNU version, which we are mostly concerned here,
|
||||||
|
@ -46,7 +46,7 @@ ENTRY (__sigsetjmp)
|
|||||||
movl %ecx, (JB_PC*4)(%eax)
|
movl %ecx, (JB_PC*4)(%eax)
|
||||||
movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer. */
|
movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer. */
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* In ld.so we never save the signal mask. */
|
/* In ld.so we never save the signal mask. */
|
||||||
xorl %eax, %eax
|
xorl %eax, %eax
|
||||||
ret
|
ret
|
||||||
|
@ -57,7 +57,7 @@ __sigsetjmp (jmp_buf env, int savemask)
|
|||||||
: : "m" (env[0].__jmpbuf[0].__fpregs[0]));
|
: : "m" (env[0].__jmpbuf[0].__fpregs[0]));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* In ld.so we never save the signal mask. */
|
/* In ld.so we never save the signal mask. */
|
||||||
return 0;
|
return 0;
|
||||||
#else
|
#else
|
||||||
|
@ -34,7 +34,7 @@ _dl_make_stack_executable (void **stack_endp)
|
|||||||
return EPERM;
|
return EPERM;
|
||||||
*stack_endp = NULL;
|
*stack_endp = NULL;
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
if (__mprotect ((void *)_dl_hurd_data->stack_base, _dl_hurd_data->stack_size,
|
if (__mprotect ((void *)_dl_hurd_data->stack_base, _dl_hurd_data->stack_size,
|
||||||
PROT_READ|PROT_WRITE|PROT_EXEC) != 0)
|
PROT_READ|PROT_WRITE|PROT_EXEC) != 0)
|
||||||
return errno;
|
return errno;
|
||||||
|
@ -82,7 +82,7 @@ __opendirat (int dfd, const char *name)
|
|||||||
|
|
||||||
int flags = O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_CLOEXEC;
|
int flags = O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_CLOEXEC;
|
||||||
int fd;
|
int fd;
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
assert (dfd == AT_FDCWD);
|
assert (dfd == AT_FDCWD);
|
||||||
fd = open_not_cancel_2 (name, flags);
|
fd = open_not_cancel_2 (name, flags);
|
||||||
#else
|
#else
|
||||||
|
@ -210,7 +210,7 @@ extern char *alloca ();
|
|||||||
|
|
||||||
#ifdef __ASSUME_ATFCTS
|
#ifdef __ASSUME_ATFCTS
|
||||||
# define __have_atfcts 1
|
# define __have_atfcts 1
|
||||||
#elif defined IS_IN_rtld
|
#elif IS_IN (rtld)
|
||||||
static int __rtld_have_atfcts;
|
static int __rtld_have_atfcts;
|
||||||
# define __have_atfcts __rtld_have_atfcts
|
# define __have_atfcts __rtld_have_atfcts
|
||||||
#endif
|
#endif
|
||||||
|
@ -122,7 +122,7 @@ __opendirat (int dfd, const char *name)
|
|||||||
flags |= O_CLOEXEC;
|
flags |= O_CLOEXEC;
|
||||||
#endif
|
#endif
|
||||||
int fd;
|
int fd;
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
assert (dfd == AT_FDCWD);
|
assert (dfd == AT_FDCWD);
|
||||||
fd = open_not_cancel_2 (name, flags);
|
fd = open_not_cancel_2 (name, flags);
|
||||||
#else
|
#else
|
||||||
|
@ -64,7 +64,7 @@ __profil (u_short *sample_buffer, size_t size, size_t offset, u_int scale)
|
|||||||
{
|
{
|
||||||
struct sigaction act;
|
struct sigaction act;
|
||||||
struct itimerval timer;
|
struct itimerval timer;
|
||||||
#ifndef IS_IN_rtld
|
#if !IS_IN (rtld)
|
||||||
static struct sigaction oact;
|
static struct sigaction oact;
|
||||||
static struct itimerval otimer;
|
static struct itimerval otimer;
|
||||||
# define oact_ptr &oact
|
# define oact_ptr &oact
|
||||||
|
@ -166,7 +166,7 @@ _dl_string_platform (const char *str)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
static inline int
|
static inline int
|
||||||
__attribute__ ((unused))
|
__attribute__ ((unused))
|
||||||
_dl_procinfo (unsigned int type, unsigned long int word)
|
_dl_procinfo (unsigned int type, unsigned long int word)
|
||||||
|
@ -35,7 +35,7 @@ ENTRY (__longjmp_symbol)
|
|||||||
addis r5,r5,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
addis r5,r5,_GLOBAL_OFFSET_TABLE_-got_label@ha
|
||||||
addi r5,r5,_GLOBAL_OFFSET_TABLE_-got_label@l
|
addi r5,r5,_GLOBAL_OFFSET_TABLE_-got_label@l
|
||||||
# ifdef SHARED
|
# ifdef SHARED
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
/* Inside ld.so we use the local alias to avoid runtime GOT
|
/* Inside ld.so we use the local alias to avoid runtime GOT
|
||||||
relocations. */
|
relocations. */
|
||||||
lwz r5,_rtld_local_ro@got(r5)
|
lwz r5,_rtld_local_ro@got(r5)
|
||||||
|
@ -91,7 +91,7 @@ ENTRY (__sigsetjmp_symbol)
|
|||||||
mtlr r6
|
mtlr r6
|
||||||
cfi_same_value (lr)
|
cfi_same_value (lr)
|
||||||
# ifdef SHARED
|
# ifdef SHARED
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
/* Inside ld.so we use the local alias to avoid runtime GOT
|
/* Inside ld.so we use the local alias to avoid runtime GOT
|
||||||
relocations. */
|
relocations. */
|
||||||
lwz r5,_rtld_local_ro@got(r5)
|
lwz r5,_rtld_local_ro@got(r5)
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
the dl_hwcap field. The assembly is to make the compiler not optimize the
|
the dl_hwcap field. The assembly is to make the compiler not optimize the
|
||||||
test (&_rtld_global_ro != NULL), which is always true in ISO C (but not
|
test (&_rtld_global_ro != NULL), which is always true in ISO C (but not
|
||||||
in that case since _rtld_global_ro might not been realocated yet). */
|
in that case since _rtld_global_ro might not been realocated yet). */
|
||||||
#if defined(SHARED) && !defined(IS_IN_rtld)
|
#if defined(SHARED) && !IS_IN (rtld)
|
||||||
# define __GLRO(value) \
|
# define __GLRO(value) \
|
||||||
({ volatile void **__p = (volatile void**)(&_rtld_global_ro); \
|
({ volatile void **__p = (volatile void**)(&_rtld_global_ro); \
|
||||||
unsigned long int __ret; \
|
unsigned long int __ret; \
|
||||||
|
@ -69,7 +69,7 @@ ENTRY (__sigsetjmp_symbol)
|
|||||||
SAVE_GP (29)
|
SAVE_GP (29)
|
||||||
SAVE_GP (30)
|
SAVE_GP (30)
|
||||||
SAVE_GP (31)
|
SAVE_GP (31)
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
li r3,0
|
li r3,0
|
||||||
blr
|
blr
|
||||||
#else
|
#else
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
.section ".toc","aw"
|
.section ".toc","aw"
|
||||||
.LC__dl_hwcap:
|
.LC__dl_hwcap:
|
||||||
# ifdef SHARED
|
# ifdef SHARED
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
/* Inside ld.so we use the local alias to avoid runtime GOT
|
/* Inside ld.so we use the local alias to avoid runtime GOT
|
||||||
relocations. */
|
relocations. */
|
||||||
.tc _rtld_local_ro[TC],_rtld_local_ro
|
.tc _rtld_local_ro[TC],_rtld_local_ro
|
||||||
@ -130,7 +130,7 @@ L(no_vmx):
|
|||||||
ld r0,(JB_LR*8)(r3)
|
ld r0,(JB_LR*8)(r3)
|
||||||
ld r14,((JB_GPRS+0)*8)(r3)
|
ld r14,((JB_GPRS+0)*8)(r3)
|
||||||
lfd fp14,((JB_FPRS+0)*8)(r3)
|
lfd fp14,((JB_FPRS+0)*8)(r3)
|
||||||
#if defined SHARED && !defined IS_IN_rtld
|
#if defined SHARED && !IS_IN (rtld)
|
||||||
std r2,FRAME_TOC_SAVE(r1) /* Restore the callers TOC save area. */
|
std r2,FRAME_TOC_SAVE(r1) /* Restore the callers TOC save area. */
|
||||||
#endif
|
#endif
|
||||||
ld r15,((JB_GPRS+1)*8)(r3)
|
ld r15,((JB_GPRS+1)*8)(r3)
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
.section ".toc","aw"
|
.section ".toc","aw"
|
||||||
.LC__dl_hwcap:
|
.LC__dl_hwcap:
|
||||||
# ifdef SHARED
|
# ifdef SHARED
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
/* Inside ld.so we use the local alias to avoid runtime GOT
|
/* Inside ld.so we use the local alias to avoid runtime GOT
|
||||||
relocations. */
|
relocations. */
|
||||||
.tc _rtld_local_ro[TC],_rtld_local_ro
|
.tc _rtld_local_ro[TC],_rtld_local_ro
|
||||||
@ -49,7 +49,7 @@ ENTRY (setjmp_symbol)
|
|||||||
b JUMPTARGET (GLUE(__sigsetjmp_symbol,_ent))
|
b JUMPTARGET (GLUE(__sigsetjmp_symbol,_ent))
|
||||||
END (setjmp_symbol)
|
END (setjmp_symbol)
|
||||||
|
|
||||||
#if defined SHARED && !defined IS_IN_rtld && !defined __NO_VMX__
|
#if defined SHARED && !IS_IN (rtld) && !defined __NO_VMX__
|
||||||
/* When called from within libc we need a special version of _setjmp
|
/* When called from within libc we need a special version of _setjmp
|
||||||
that saves r2 since the call won't go via a plt call stub. See
|
that saves r2 since the call won't go via a plt call stub. See
|
||||||
bugz #269. __GI__setjmp is used in csu/libc-start.c when
|
bugz #269. __GI__setjmp is used in csu/libc-start.c when
|
||||||
@ -80,7 +80,7 @@ JUMPTARGET(GLUE(__sigsetjmp_symbol,_ent)):
|
|||||||
std r1,(JB_GPR1*8)(3)
|
std r1,(JB_GPR1*8)(3)
|
||||||
#endif
|
#endif
|
||||||
mflr r0
|
mflr r0
|
||||||
#if defined SHARED && !defined IS_IN_rtld
|
#if defined SHARED && !IS_IN (rtld)
|
||||||
ld r5,FRAME_TOC_SAVE(r1) /* Retrieve the callers TOC. */
|
ld r5,FRAME_TOC_SAVE(r1) /* Retrieve the callers TOC. */
|
||||||
std r5,(JB_GPR2*8)(3)
|
std r5,(JB_GPR2*8)(3)
|
||||||
#else
|
#else
|
||||||
@ -213,7 +213,7 @@ L(no_vmx):
|
|||||||
#else
|
#else
|
||||||
li r6,0
|
li r6,0
|
||||||
#endif
|
#endif
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
li r3,0
|
li r3,0
|
||||||
blr
|
blr
|
||||||
#elif defined SHARED
|
#elif defined SHARED
|
||||||
|
@ -29,7 +29,7 @@ typedef struct
|
|||||||
|
|
||||||
extern unsigned long __tls_get_offset (unsigned long got_offset);
|
extern unsigned long __tls_get_offset (unsigned long got_offset);
|
||||||
|
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
|
|
||||||
# include <shlib-compat.h>
|
# include <shlib-compat.h>
|
||||||
|
|
||||||
@ -78,9 +78,9 @@ __tls_get_offset:\n\
|
|||||||
1: .long __tls_get_addr - 0b\n\
|
1: .long __tls_get_addr - 0b\n\
|
||||||
");
|
");
|
||||||
# endif
|
# endif
|
||||||
# else /* IS_IN_rtld */
|
# else /* IS_IN (rtld) */
|
||||||
extern void *__tls_get_addr_internal (tls_index *ti);
|
extern void *__tls_get_addr_internal (tls_index *ti);
|
||||||
# endif /* !IS_IN_rtld */
|
# endif /* !IS_IN (rtld) */
|
||||||
|
|
||||||
# define GET_ADDR_OFFSET \
|
# define GET_ADDR_OFFSET \
|
||||||
(ti->ti_offset - (unsigned long) __builtin_thread_pointer ())
|
(ti->ti_offset - (unsigned long) __builtin_thread_pointer ())
|
||||||
|
@ -24,12 +24,12 @@
|
|||||||
#include <shlib-compat.h>
|
#include <shlib-compat.h>
|
||||||
#include <stap-probe.h>
|
#include <stap-probe.h>
|
||||||
|
|
||||||
#if !defined IS_IN_rtld
|
#if !IS_IN (rtld)
|
||||||
# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
|
# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
|
||||||
/* we need a unique name in case of symbol versioning. */
|
/* we need a unique name in case of symbol versioning. */
|
||||||
# define __sigsetjmp __v1__sigsetjmp
|
# define __sigsetjmp __v1__sigsetjmp
|
||||||
# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */
|
# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */
|
||||||
#endif /* !defined IS_IN_rtld */
|
#endif /* !IS_IN (rtld) */
|
||||||
|
|
||||||
/* We include the BSD entry points here as well but we make
|
/* We include the BSD entry points here as well but we make
|
||||||
them weak. */
|
them weak. */
|
||||||
@ -69,7 +69,7 @@ ENTRY(__sigsetjmp)
|
|||||||
#endif
|
#endif
|
||||||
std %f4,40(%r2)
|
std %f4,40(%r2)
|
||||||
std %f6,48(%r2)
|
std %f6,48(%r2)
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* In ld.so we never save the signal mask. */
|
/* In ld.so we never save the signal mask. */
|
||||||
lhi %r2,0
|
lhi %r2,0
|
||||||
br %r14
|
br %r14
|
||||||
@ -91,7 +91,7 @@ ENTRY(__sigsetjmp)
|
|||||||
#endif
|
#endif
|
||||||
END (__sigsetjmp)
|
END (__sigsetjmp)
|
||||||
|
|
||||||
#if !defined IS_IN_rtld
|
#if !IS_IN (rtld)
|
||||||
# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
|
# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
|
||||||
/* In glibc release 2.19 new versions of setjmp-functions were introduced,
|
/* In glibc release 2.19 new versions of setjmp-functions were introduced,
|
||||||
but were reverted before 2.20. Thus both versions are the same function. */
|
but were reverted before 2.20. Thus both versions are the same function. */
|
||||||
@ -112,4 +112,4 @@ strong_alias (__v1__sigsetjmp, __v2__sigsetjmp);
|
|||||||
versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0);
|
versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0);
|
||||||
compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19);
|
compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19);
|
||||||
# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */
|
# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */
|
||||||
#endif /* if !defined IS_IN_rtld */
|
#endif /* if !IS_IN (rtld) */
|
||||||
|
@ -24,12 +24,12 @@
|
|||||||
#include <shlib-compat.h>
|
#include <shlib-compat.h>
|
||||||
#include <stap-probe.h>
|
#include <stap-probe.h>
|
||||||
|
|
||||||
#if !defined IS_IN_rtld
|
#if !IS_IN (rtld)
|
||||||
# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
|
# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
|
||||||
/* we need a unique name in case of symbol versioning. */
|
/* we need a unique name in case of symbol versioning. */
|
||||||
# define __sigsetjmp __v1__sigsetjmp
|
# define __sigsetjmp __v1__sigsetjmp
|
||||||
# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */
|
# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */
|
||||||
#endif /* !defined IS_IN_rtld */
|
#endif /* !IS_IN (rtld) */
|
||||||
|
|
||||||
/* We include the BSD entry points here as well but we make
|
/* We include the BSD entry points here as well but we make
|
||||||
them weak. */
|
them weak. */
|
||||||
@ -75,7 +75,7 @@ ENTRY(__sigsetjmp)
|
|||||||
std %f13,120(%r2)
|
std %f13,120(%r2)
|
||||||
std %f14,128(%r2)
|
std %f14,128(%r2)
|
||||||
std %f15,136(%r2)
|
std %f15,136(%r2)
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* In ld.so we never save the signal mask. */
|
/* In ld.so we never save the signal mask. */
|
||||||
lghi %r2,0
|
lghi %r2,0
|
||||||
br %r14
|
br %r14
|
||||||
@ -86,7 +86,7 @@ ENTRY(__sigsetjmp)
|
|||||||
#endif
|
#endif
|
||||||
END (__sigsetjmp)
|
END (__sigsetjmp)
|
||||||
|
|
||||||
#if !defined IS_IN_rtld
|
#if !IS_IN (rtld)
|
||||||
# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
|
# if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
|
||||||
/* In glibc release 2.19 new versions of setjmp-functions were introduced,
|
/* In glibc release 2.19 new versions of setjmp-functions were introduced,
|
||||||
but were reverted before 2.20. Thus both versions are the same function. */
|
but were reverted before 2.20. Thus both versions are the same function. */
|
||||||
@ -107,4 +107,4 @@ strong_alias (__v1__sigsetjmp, __v2__sigsetjmp);
|
|||||||
versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0);
|
versioned_symbol (libc, __v1__sigsetjmp, __sigsetjmp, GLIBC_2_0);
|
||||||
compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19);
|
compat_symbol (libc, __v2__sigsetjmp, __sigsetjmp, GLIBC_2_19);
|
||||||
# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */
|
# endif /* if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20) */
|
||||||
#endif /* if !defined IS_IN_rtld */
|
#endif /* if !IS_IN (rtld) */
|
||||||
|
@ -46,7 +46,7 @@ ENTRY (__sigsetjmp)
|
|||||||
mov.l r9, @-r4
|
mov.l r9, @-r4
|
||||||
mov.l r8, @-r4
|
mov.l r8, @-r4
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* In ld.so we never save the signal mask. */
|
/* In ld.so we never save the signal mask. */
|
||||||
rts
|
rts
|
||||||
mov #0, r0
|
mov #0, r0
|
||||||
|
@ -55,7 +55,7 @@ ENTRY (__sigsetjmp)
|
|||||||
mov.l r9, @-r4
|
mov.l r9, @-r4
|
||||||
mov.l r8, @-r4
|
mov.l r8, @-r4
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* In ld.so we never save the signal mask. */
|
/* In ld.so we never save the signal mask. */
|
||||||
rts
|
rts
|
||||||
mov #0, r0
|
mov #0, r0
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
# include <regdef.h>
|
# include <regdef.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -349,7 +349,7 @@ __LABEL(name) \
|
|||||||
we don't deoptimize things by placing the pointer check value there. */
|
we don't deoptimize things by placing the pointer check value there. */
|
||||||
|
|
||||||
#ifdef __ASSEMBLER__
|
#ifdef __ASSEMBLER__
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
# define PTR_MANGLE(dst, src, tmp) \
|
# define PTR_MANGLE(dst, src, tmp) \
|
||||||
ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \
|
ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \
|
||||||
ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \
|
ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \
|
||||||
@ -371,7 +371,7 @@ __LABEL(name) \
|
|||||||
# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
|
# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
|
||||||
#else
|
#else
|
||||||
# include <stdint.h>
|
# include <stdint.h>
|
||||||
# if (defined IS_IN_rtld \
|
# if (IS_IN (rtld) \
|
||||||
|| (!defined SHARED && (!defined NOT_IN_libc \
|
|| (!defined SHARED && (!defined NOT_IN_libc \
|
||||||
|| IS_IN (libpthread))))
|
|| IS_IN (libpthread))))
|
||||||
extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
|
extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#define _ERRNO_H
|
#define _ERRNO_H
|
||||||
#include <bits/errno.h>
|
#include <bits/errno.h>
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ __syscall_error:
|
|||||||
moveq r0, $EAGAIN /* Yes; translate it to EAGAIN. */
|
moveq r0, $EAGAIN /* Yes; translate it to EAGAIN. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef IS_IN_rtld
|
#if !IS_IN (rtld)
|
||||||
mov r1, r0
|
mov r1, r0
|
||||||
GET_TLS (r2)
|
GET_TLS (r2)
|
||||||
ldr r2, 1f
|
ldr r2, 1f
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#define _ERRNO_H
|
#define _ERRNO_H
|
||||||
#include <bits/errno.h>
|
#include <bits/errno.h>
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -309,7 +309,7 @@
|
|||||||
#endif /* __ASSEMBLER__ */
|
#endif /* __ASSEMBLER__ */
|
||||||
|
|
||||||
/* Pointer mangling is supported for AArch64. */
|
/* Pointer mangling is supported for AArch64. */
|
||||||
#if (defined IS_IN_rtld || \
|
#if (IS_IN (rtld) || \
|
||||||
(!defined SHARED && (!defined NOT_IN_libc \
|
(!defined SHARED && (!defined NOT_IN_libc \
|
||||||
|| IS_IN (libpthread))))
|
|| IS_IN (libpthread))))
|
||||||
# ifdef __ASSEMBLER__
|
# ifdef __ASSEMBLER__
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
/* If we compile the file for use in ld.so we don't need the feature
|
/* If we compile the file for use in ld.so we don't need the feature
|
||||||
that getcwd() allocates the buffers itself. */
|
that getcwd() allocates the buffers itself. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
# define NO_ALLOCATION 1
|
# define NO_ALLOCATION 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
/* Initialize locks to zero. */
|
/* Initialize locks to zero. */
|
||||||
#define LLL_MUTEX_LOCK_INITIALIZER (0)
|
#define LLL_MUTEX_LOCK_INITIALIZER (0)
|
||||||
|
|
||||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
#if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
/* In libc.so or ld.so all futexes are private. */
|
/* In libc.so or ld.so all futexes are private. */
|
||||||
# ifdef __ASSUME_PRIVATE_FUTEX
|
# ifdef __ASSUME_PRIVATE_FUTEX
|
||||||
# define __lll_private_flag(fl, private) \
|
# define __lll_private_flag(fl, private) \
|
||||||
|
@ -71,7 +71,7 @@
|
|||||||
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
||||||
|
|
||||||
|
|
||||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
#if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
/* In libc.so or ld.so all futexes are private. */
|
/* In libc.so or ld.so all futexes are private. */
|
||||||
# ifdef __ASSUME_PRIVATE_FUTEX
|
# ifdef __ASSUME_PRIVATE_FUTEX
|
||||||
# define __lll_private_flag(fl, private) \
|
# define __lll_private_flag(fl, private) \
|
||||||
|
@ -519,7 +519,7 @@ asm (".L__X'%ebx = 1\n\t"
|
|||||||
|
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
||||||
earlier than the descriptor is initialized. Using a global variable
|
earlier than the descriptor is initialized. Using a global variable
|
||||||
is too complicated here since we have no PC-relative addressing mode. */
|
is too complicated here since we have no PC-relative addressing mode. */
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
||||||
|
|
||||||
|
|
||||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
#if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
/* In libc.so or ld.so all futexes are private. */
|
/* In libc.so or ld.so all futexes are private. */
|
||||||
# ifdef __ASSUME_PRIVATE_FUTEX
|
# ifdef __ASSUME_PRIVATE_FUTEX
|
||||||
# define __lll_private_flag(fl, private) \
|
# define __lll_private_flag(fl, private) \
|
||||||
|
@ -178,7 +178,7 @@ ENTRY(__sigsetjmp)
|
|||||||
;;
|
;;
|
||||||
st8.nta [r2]=r25 // ar.unat
|
st8.nta [r2]=r25 // ar.unat
|
||||||
st8.nta [r3]=in0 // &__jmp_buf
|
st8.nta [r3]=in0 // &__jmp_buf
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* In ld.so we never save the signal mask. */
|
/* In ld.so we never save the signal mask. */
|
||||||
;;
|
;;
|
||||||
#else
|
#else
|
||||||
|
@ -364,7 +364,7 @@
|
|||||||
#endif /* not __ASSEMBLER__ */
|
#endif /* not __ASSEMBLER__ */
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
||||||
earlier than the descriptor is initialized. */
|
earlier than the descriptor is initialized. */
|
||||||
#else
|
#else
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
||||||
|
|
||||||
|
|
||||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
#if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
/* In libc.so or ld.so all futexes are private. */
|
/* In libc.so or ld.so all futexes are private. */
|
||||||
# ifdef __ASSUME_PRIVATE_FUTEX
|
# ifdef __ASSUME_PRIVATE_FUTEX
|
||||||
# define __lll_private_flag(fl, private) \
|
# define __lll_private_flag(fl, private) \
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
#ifdef SHARED
|
#ifdef SHARED
|
||||||
|
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
# define M68K_VDSO_SYMBOL(name) __rtld_##name
|
# define M68K_VDSO_SYMBOL(name) __rtld_##name
|
||||||
# define STR_M68K_VDSO_SYMBOL(name) "__rtld_" #name
|
# define STR_M68K_VDSO_SYMBOL(name) "__rtld_" #name
|
||||||
# else
|
# else
|
||||||
@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
/* We define __rtld_* copies for rtld.
|
/* We define __rtld_* copies for rtld.
|
||||||
We need them visible in libc to initialize. */
|
We need them visible in libc to initialize. */
|
||||||
# if defined IS_IN_rtld || !defined NOT_IN_libc
|
# if IS_IN (rtld) || !defined NOT_IN_libc
|
||||||
extern void *__rtld___vdso_read_tp;
|
extern void *__rtld___vdso_read_tp;
|
||||||
extern void *__rtld___vdso_atomic_cmpxchg_32;
|
extern void *__rtld___vdso_atomic_cmpxchg_32;
|
||||||
extern void *__rtld___vdso_atomic_barrier;
|
extern void *__rtld___vdso_atomic_barrier;
|
||||||
@ -44,14 +44,14 @@ extern void *__rtld___vdso_atomic_barrier;
|
|||||||
extern void __vdso_read_tp_stub (void);
|
extern void __vdso_read_tp_stub (void);
|
||||||
extern void __vdso_atomic_cmpxchg_32_stub (void);
|
extern void __vdso_atomic_cmpxchg_32_stub (void);
|
||||||
extern void __vdso_atomic_barrier_stub (void);
|
extern void __vdso_atomic_barrier_stub (void);
|
||||||
# endif /* IS_IN_rtld || !NOT_IN_libc */
|
# endif /* IS_IN (rtld) || !NOT_IN_libc */
|
||||||
|
|
||||||
/* RTLD should only use its own copies. */
|
/* RTLD should only use its own copies. */
|
||||||
# ifndef IS_IN_rtld
|
# if !IS_IN (rtld)
|
||||||
extern void *__vdso_read_tp;
|
extern void *__vdso_read_tp;
|
||||||
extern void *__vdso_atomic_cmpxchg_32;
|
extern void *__vdso_atomic_cmpxchg_32;
|
||||||
extern void *__vdso_atomic_barrier;
|
extern void *__vdso_atomic_barrier;
|
||||||
# endif /* !IS_IN_rtld */
|
# endif /* !IS_IN (rtld) */
|
||||||
|
|
||||||
# endif /* !__ASSEMBLER__ */
|
# endif /* !__ASSEMBLER__ */
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ END (__vdso_read_tp_stub)
|
|||||||
equivalent helper function (which clobbers fewer registers than
|
equivalent helper function (which clobbers fewer registers than
|
||||||
a normal function call) in a vdso; tail call to the
|
a normal function call) in a vdso; tail call to the
|
||||||
helper. */
|
helper. */
|
||||||
# ifdef IS_IN_rtld
|
# if IS_IN (rtld)
|
||||||
/* rtld gets a hidden copy of __m68k_read_tp. */
|
/* rtld gets a hidden copy of __m68k_read_tp. */
|
||||||
.hidden __m68k_read_tp
|
.hidden __m68k_read_tp
|
||||||
# endif
|
# endif
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
||||||
|
|
||||||
|
|
||||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
#if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
/* In libc.so or ld.so all futexes are private. */
|
/* In libc.so or ld.so all futexes are private. */
|
||||||
# ifdef __ASSUME_PRIVATE_FUTEX
|
# ifdef __ASSUME_PRIVATE_FUTEX
|
||||||
# define __lll_private_flag(fl, private) \
|
# define __lll_private_flag(fl, private) \
|
||||||
|
@ -272,7 +272,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
||||||
earlier than the descriptor is initialized. */
|
earlier than the descriptor is initialized. */
|
||||||
#else
|
#else
|
||||||
|
@ -282,7 +282,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
||||||
earlier than the descriptor is initialized. */
|
earlier than the descriptor is initialized. */
|
||||||
#else
|
#else
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
||||||
|
|
||||||
|
|
||||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
#if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
/* In libc.so or ld.so all futexes are private. */
|
/* In libc.so or ld.so all futexes are private. */
|
||||||
# ifdef __ASSUME_PRIVATE_FUTEX
|
# ifdef __ASSUME_PRIVATE_FUTEX
|
||||||
# define __lll_private_flag(fl, private) \
|
# define __lll_private_flag(fl, private) \
|
||||||
|
@ -366,7 +366,7 @@
|
|||||||
_ret; })
|
_ret; })
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
||||||
earlier than the descriptor is initialized. */
|
earlier than the descriptor is initialized. */
|
||||||
#else
|
#else
|
||||||
|
@ -372,7 +372,7 @@
|
|||||||
_ret; })
|
_ret; })
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
||||||
earlier than the descriptor is initialized. */
|
earlier than the descriptor is initialized. */
|
||||||
#else
|
#else
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
||||||
|
|
||||||
|
|
||||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
#if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
/* In libc.so or ld.so all futexes are private. */
|
/* In libc.so or ld.so all futexes are private. */
|
||||||
# ifdef __ASSUME_PRIVATE_FUTEX
|
# ifdef __ASSUME_PRIVATE_FUTEX
|
||||||
# define __lll_private_flag(fl, private) \
|
# define __lll_private_flag(fl, private) \
|
||||||
|
@ -338,7 +338,7 @@
|
|||||||
#endif /* __ASSEMBLER__ */
|
#endif /* __ASSEMBLER__ */
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
||||||
earlier than the descriptor is initialized. Using a global variable
|
earlier than the descriptor is initialized. Using a global variable
|
||||||
is too complicated here since we have no PC-relative addressing mode. */
|
is too complicated here since we have no PC-relative addressing mode. */
|
||||||
|
@ -57,7 +57,7 @@ extern void __cpu_relax (void);
|
|||||||
#define BUSY_WAIT_NOP __cpu_relax ()
|
#define BUSY_WAIT_NOP __cpu_relax ()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
#if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
/* In libc.so or ld.so all futexes are private. */
|
/* In libc.so or ld.so all futexes are private. */
|
||||||
# ifdef __ASSUME_PRIVATE_FUTEX
|
# ifdef __ASSUME_PRIVATE_FUTEX
|
||||||
# define __lll_private_flag(fl, private) \
|
# define __lll_private_flag(fl, private) \
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
#include <sysdeps/unix/sysv/linux/sparc/sysdep.h>
|
#include <sysdeps/unix/sysv/linux/sparc/sysdep.h>
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
||||||
#endif
|
#endif
|
||||||
#include <tls.h>
|
#include <tls.h>
|
||||||
@ -125,7 +125,7 @@ ENTRY(name); \
|
|||||||
#endif /* __ASSEMBLER__ */
|
#endif /* __ASSEMBLER__ */
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
||||||
earlier than the descriptor is initialized. */
|
earlier than the descriptor is initialized. */
|
||||||
#else
|
#else
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
#include <sysdeps/unix/sysv/linux/sparc/sysdep.h>
|
#include <sysdeps/unix/sysv/linux/sparc/sysdep.h>
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
||||||
#endif
|
#endif
|
||||||
#include <tls.h>
|
#include <tls.h>
|
||||||
@ -140,7 +140,7 @@ ENTRY(name); \
|
|||||||
#define STACK_BIAS 2047
|
#define STACK_BIAS 2047
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
||||||
earlier than the descriptor is initialized. */
|
earlier than the descriptor is initialized. */
|
||||||
#else
|
#else
|
||||||
|
@ -264,7 +264,7 @@
|
|||||||
#endif /* not __ASSEMBLER__ */
|
#endif /* not __ASSEMBLER__ */
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
||||||
earlier than the descriptor is initialized. */
|
earlier than the descriptor is initialized. */
|
||||||
#else
|
#else
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
|
|
||||||
#ifndef __ASSEMBLER__
|
#ifndef __ASSEMBLER__
|
||||||
|
|
||||||
#if !defined NOT_IN_libc || defined IS_IN_rtld
|
#if !defined NOT_IN_libc || IS_IN (rtld)
|
||||||
/* In libc.so or ld.so all futexes are private. */
|
/* In libc.so or ld.so all futexes are private. */
|
||||||
# ifdef __ASSUME_PRIVATE_FUTEX
|
# ifdef __ASSUME_PRIVATE_FUTEX
|
||||||
# define __lll_private_flag(fl, private) \
|
# define __lll_private_flag(fl, private) \
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include <sysdeps/unix/x86_64/sysdep.h>
|
#include <sysdeps/unix/x86_64/sysdep.h>
|
||||||
#include <tls.h>
|
#include <tls.h>
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -393,7 +393,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Pointer mangling support. */
|
/* Pointer mangling support. */
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
/* We cannot use the thread descriptor because in ld.so we use setjmp
|
||||||
earlier than the descriptor is initialized. */
|
earlier than the descriptor is initialized. */
|
||||||
# ifdef __ASSEMBLER__
|
# ifdef __ASSEMBLER__
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#include <bits/errno.h>
|
#include <bits/errno.h>
|
||||||
#include <tls.h>
|
#include <tls.h>
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ ENTRY (__sigsetjmp)
|
|||||||
#endif
|
#endif
|
||||||
movq %rax, (JB_PC*8)(%rdi)
|
movq %rax, (JB_PC*8)(%rdi)
|
||||||
|
|
||||||
#ifdef IS_IN_rtld
|
#if IS_IN (rtld)
|
||||||
/* In ld.so we never save the signal mask. */
|
/* In ld.so we never save the signal mask. */
|
||||||
xorl %eax, %eax
|
xorl %eax, %eax
|
||||||
retq
|
retq
|
||||||
|
Loading…
Reference in New Issue
Block a user