mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
* elf/dl-support.c: Likewise.
This commit is contained in:
parent
6e0bb37514
commit
98c24a32e6
@ -1,6 +1,7 @@
|
|||||||
2003-07-29 Roland McGrath <roland@redhat.com>
|
2003-07-29 Roland McGrath <roland@redhat.com>
|
||||||
|
|
||||||
* elf/Makefile: Revert accidental changes in last commit.
|
* elf/Makefile: Revert accidental changes in last commit.
|
||||||
|
* elf/dl-support.c: Likewise.
|
||||||
|
|
||||||
* rt/tst-timer2.c: New file.
|
* rt/tst-timer2.c: New file.
|
||||||
* rt/Makefile (tests): Add it.
|
* rt/Makefile (tests): Add it.
|
||||||
|
15
elf/Makefile
15
elf/Makefile
@ -29,7 +29,8 @@ routines = $(dl-routines) dl-open dl-close dl-support dl-iteratephdr \
|
|||||||
# profiled libraries.
|
# profiled libraries.
|
||||||
dl-routines = $(addprefix dl-,load cache lookup object reloc deps \
|
dl-routines = $(addprefix dl-,load cache lookup object reloc deps \
|
||||||
runtime error init fini debug misc \
|
runtime error init fini debug misc \
|
||||||
version profile conflict tls origin)
|
version profile conflict tls origin \
|
||||||
|
execstack)
|
||||||
all-dl-routines = $(dl-routines) $(sysdep-dl-routines)
|
all-dl-routines = $(dl-routines) $(sysdep-dl-routines)
|
||||||
# But they are absent from the shared libc, because that code is in ld.so.
|
# But they are absent from the shared libc, because that code is in ld.so.
|
||||||
elide-routines.os = $(all-dl-routines) dl-support enbl-secure \
|
elide-routines.os = $(all-dl-routines) dl-support enbl-secure \
|
||||||
@ -80,6 +81,7 @@ distribute := rtld-Rules \
|
|||||||
reldep9.c reldep9mod1.c reldep9mod2.c reldep9mod3.c \
|
reldep9.c reldep9mod1.c reldep9mod2.c reldep9mod3.c \
|
||||||
tst-array1.exp tst-array2.exp tst-array4.exp \
|
tst-array1.exp tst-array2.exp tst-array4.exp \
|
||||||
tst-array2dep.c \
|
tst-array2dep.c \
|
||||||
|
tst-execstack-mod.c \
|
||||||
check-textrel.c dl-sysdep.h
|
check-textrel.c dl-sysdep.h
|
||||||
|
|
||||||
CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables
|
CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables
|
||||||
@ -148,7 +150,8 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
|
|||||||
neededtest3 neededtest4 unload2 lateglobal initfirst global \
|
neededtest3 neededtest4 unload2 lateglobal initfirst global \
|
||||||
restest2 next dblload dblunload reldep5 reldep6 reldep7 reldep8 \
|
restest2 next dblload dblunload reldep5 reldep6 reldep7 reldep8 \
|
||||||
circleload1 tst-tls3 tst-tls4 tst-tls5 tst-tls6 tst-tls7 tst-tls8 \
|
circleload1 tst-tls3 tst-tls4 tst-tls5 tst-tls6 tst-tls7 tst-tls8 \
|
||||||
tst-tls10 tst-tls11 tst-tls12 tst-tls13 tst-tls14
|
tst-tls10 tst-tls11 tst-tls12 tst-tls13 tst-tls14 \
|
||||||
|
tst-execstack
|
||||||
# reldep9
|
# reldep9
|
||||||
test-srcs = tst-pathopt
|
test-srcs = tst-pathopt
|
||||||
tests-vis-yes = vismain
|
tests-vis-yes = vismain
|
||||||
@ -175,7 +178,8 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
|
|||||||
circlemod1 circlemod1a circlemod2 circlemod2a \
|
circlemod1 circlemod1a circlemod2 circlemod2a \
|
||||||
circlemod3 circlemod3a \
|
circlemod3 circlemod3a \
|
||||||
reldep8mod1 reldep8mod2 reldep8mod3 \
|
reldep8mod1 reldep8mod2 reldep8mod3 \
|
||||||
reldep9mod1 reldep9mod2 reldep9mod3
|
reldep9mod1 reldep9mod2 reldep9mod3 \
|
||||||
|
tst-execstack-mod
|
||||||
ifeq (yes,$(have-initfini-array))
|
ifeq (yes,$(have-initfini-array))
|
||||||
modules-names += tst-array2dep
|
modules-names += tst-array2dep
|
||||||
endif
|
endif
|
||||||
@ -648,6 +652,11 @@ $(objpfx)tst-tls9-static: $(common-objpfx)dlfcn/libdl.a
|
|||||||
$(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so
|
$(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
$(objpfx)tst-execstack: $(libdl)
|
||||||
|
$(objpfx)tst-execstack.out: $(objpfx)tst-execstack-mod.so
|
||||||
|
LDFLAGS-tst-execstack = -Wl,-z,noexecstack
|
||||||
|
LDFLAGS-tst-execstack-mod = -Wl,-z,execstack
|
||||||
|
|
||||||
$(objpfx)tst-array1.out: $(objpfx)tst-array1
|
$(objpfx)tst-array1.out: $(objpfx)tst-array1
|
||||||
$(elf-objpfx)$(rtld-installed-name) \
|
$(elf-objpfx)$(rtld-installed-name) \
|
||||||
--library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
|
--library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
|
||||||
|
@ -125,16 +125,6 @@ ElfW(Phdr) *_dl_phdr;
|
|||||||
size_t _dl_phnum;
|
size_t _dl_phnum;
|
||||||
unsigned long int _dl_hwcap __attribute__ ((nocommon));
|
unsigned long int _dl_hwcap __attribute__ ((nocommon));
|
||||||
|
|
||||||
/* Prevailing state of the stack, PF_X indicating it's executable. */
|
|
||||||
ElfW(Word) _dl_stack_flags = PF_R|PF_W|PF_X;
|
|
||||||
|
|
||||||
/* If loading a shared object requires that we make the stack executable
|
|
||||||
when it was not, we do it by calling this function.
|
|
||||||
It returns an errno code or zero on success. */
|
|
||||||
int (*_dl_make_stack_executable_hook) (void) internal_function
|
|
||||||
= _dl_make_stack_executable;
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef NEED_DL_SYSINFO
|
#ifdef NEED_DL_SYSINFO
|
||||||
/* Needed for improved syscall handling on at least x86/Linux. */
|
/* Needed for improved syscall handling on at least x86/Linux. */
|
||||||
uintptr_t _dl_sysinfo = DL_SYSINFO_DEFAULT;
|
uintptr_t _dl_sysinfo = DL_SYSINFO_DEFAULT;
|
||||||
@ -270,15 +260,6 @@ _dl_non_dynamic_init (void)
|
|||||||
/* Now determine the length of the platform string. */
|
/* Now determine the length of the platform string. */
|
||||||
if (_dl_platform != NULL)
|
if (_dl_platform != NULL)
|
||||||
_dl_platformlen = strlen (_dl_platform);
|
_dl_platformlen = strlen (_dl_platform);
|
||||||
|
|
||||||
/* Scan for a program header telling us the stack is nonexecutable. */
|
|
||||||
if (_dl_phdr != NULL)
|
|
||||||
for (uint_fast16_t i = 0; i < _dl_phnum; ++i)
|
|
||||||
if (_dl_phdr[i].p_type == PT_GNU_STACK)
|
|
||||||
{
|
|
||||||
_dl_stack_flags = _dl_phdr[i].p_flags;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user