Ulrich Drepper
9fb11d4c6e
* elf/Makefile (tests): Substitute tests-vis-yes here.
...
(tests-vis-yes): Delete.
(modules-name, modules-vis-yes): Similarly.
2008-04-10 05:02:48 +00:00
Ulrich Drepper
72e6cdfa2c
Remove useless "if" before "free".
2008-03-19 06:43:34 +00:00
Ulrich Drepper
368a8dec0a
* sysdeps/unix/sysv/linux/dl-sysdep.c: Avoid unnecessary code for
...
.o file.
* elf/Makefile (routines): Add dl-sysdep.
(elide-routines.os): Likewise.
2008-03-08 17:52:13 +00:00
Ulrich Drepper
7c22c7ec9a
[BZ #5786 ]
...
* elf/dl-sysdep.c: Undefine ROUND after use.
* sysdeps/generic/ldsodefs.h [HAVE_DL_DISCOVER_OSVERSION]
(struct rtld_global_ro): Add _dl_tls_get_addr_soft element.
* elf/rtld.c (rtld_global_ro): Initialize _dl_discover_osversion.
* sysdeps/unix/sysv/linux/dl-osinfo.h: Move _dl_discover_osversion
to ...
* sysdeps/unix/sysv/linux/dl-sysdep.c: ...here.
* sysdeps/unix/sysv/linux/dl-sysdep.h: Declare _dl_discover_osversion
if necessary.
* sysdeps/unix/sysv/linux/sysconf.c: Handle _SC_ARG_MAX here.
2008-03-08 07:35:10 +00:00
Ulrich Drepper
93025f9373
* sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Add
...
_dl_tls_get_addr_soft element.
* elf/rtld.c (rtld_global_ro): Initialize _dl_tls_get_addr_soft.
* elf/Versions (ld): Don't export _dl_tls_get_addr_soft.
* dlfcn/dlinfo.c (dlinfo_doit): Access dl_tls_get_addr_soft through
GLRO.
* elf/dl-iteratephdr.c (__dl_iterate_phdr): Likewise.
* elf/dl-tls.c (_dl_tls_get_addr_soft): Use attribute_hidden instead
of internal_function.
2008-03-08 05:44:56 +00:00
Roland McGrath
a0a7cc65ad
2008-02-19 Roland McGrath <roland@redhat.com>
...
* elf/elf.h (SHT_GNU_ATTRIBUTES): New macro.
2008-02-20 03:33:33 +00:00
Roland McGrath
85202a2b7e
* elf/elf.h (NT_PPC_SPE): New macro.
2008-02-09 01:45:01 +00:00
Roland McGrath
bc96ecbf4d
2008-01-30 Roland McGrath <roland@redhat.com>
...
* elf/elf.h (NT_386_TLS): New macro.
2008-01-30 22:09:01 +00:00
Roland McGrath
16cd816fd0
* Makeconfig (sysd-rules-patterns): New variable.
...
* Makerules ($(common-objpfx)sysd-rules): Drive the loop from that.
(check-inhibit-asm): New canned sequence, replaces ...
(open-check-inhibit-asm, close-check-inhibit-asm): ... these, removed.
* elf/rtld-Rules ($(objpfx)rtld-%.os): Use $(rtld-CPPFLAGS) in commands.
(rtld-CPPFLAGS): Renamed from CPPFLAGS-rtld.
(CFLAGS-rtld): Variable removed.
2008-01-30 00:24:16 +00:00
Ulrich Drepper
4c533566c2
* include/link.h (FORCED_DYNAMIC_TLS_OFFSET): Define.
...
* elf/dl-close.c (_dl_close): Check for it.
* elf/dl-reloc.c (CHECK_STATIC_TLS): Likewise.
(_dl_allocate_static_tls): Likewise.
* elf/dl-tls.c (_dl_allocate_tls_init): Likewise.
(__tls_get_addr): Protect from race conditions in setting l_tls_offset
to it.
* elf/tst-tls16.c: New file.
* elf/tst-tlsmod16a.c: New file.
* elf/tst-tlsmod16b.c: New file.
* elf/Makefile: Add rules to build and run tst-tls16.
2008-01-17 20:20:00 +00:00
Ulrich Drepper
f4a1363eb3
* posix/getconf.c: Update copyright year.
...
* nss/getent.c: Likewise.
* iconv/iconvconfig.c: Likewise.
* iconv/iconv_prog.c: Likewise.
* elf/ldconfig.c: Likewise.
* catgets/gencat.c: Likewise.
* csu/version.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/sprof.c (print_version): Likewise.
* locale/programs/locale.c: Likewise.
* locale/programs/localedef.c: Likewise.
* nscd/nscd.c (print_version): Likewise.
* debug/xtrace.sh: Likewise.
* malloc/memusage.sh: Likewise.
* malloc/mtrace.pl: Likewise.
* debug/catchsegv.sh: Likewise.
2008-01-02 19:26:03 +00:00
Ulrich Drepper
d9961b6a4f
* elf/tst-execstack.c (do_test): Don't fail if SELinux forbids
...
executable stacks.
2007-12-17 00:00:57 +00:00
Ulrich Drepper
b92e378086
* elf/rtld.c (dl_main): Use the page size to find the map start.
2007-11-06 01:12:33 +00:00
Ulrich Drepper
4c48ef06b4
* elf/rtld.c (dl_main): Initialize stack and pointer guard early
...
when using auditing libraries.
2007-10-31 15:28:30 +00:00
Ulrich Drepper
88197030d5
[BZ #5222 ]
...
2007-10-28 Ulrich Drepper <drepper@redhat.com>
[BZ #5222 ]
* elf/dl-load.c (_dl_rtld_di_serinfo): Correct handling of short
path elements in counting mode.
2007-10-28 08:24:07 +00:00
Roland McGrath
0a80eb74fd
2007-10-19 Roland McGrath <roland@redhat.com>
...
* elf/Makefile ($(objpfx)ld.so): Use $(AWK).
* scripts/check-errnos.sh: Likewise.
2007-10-20 00:54:16 +00:00
Jakub Jelinek
46ae88502d
2007-10-06 David S. Miller <davem@davemloft.net>
...
* configure.in: Add sparcv9v2 and sparc64v2.
* scripts/config.sub: Likewise.
* configure: Regenerate.
* elf/elf.h (HWCAP_SPARC_N2): New.
* sysdeps/sparc/dl-procinfo.h (_DL_HWCAP_COUNT): Bump to 8.
* sysdeps/sparc/dl-procinfo.c (_dl_sparc_cap_flags): Add 'v9v2'.
(HWCAP_IMPORTANT): Add HWCAP_SPARC_N2.
* sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memcpy.S: New file.
* sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memset.S: New file.
* sysdeps/sparc/sparc64/sparcv9v2/memcpy.S: New file.
* sysdeps/sparc/sparc64/sparcv9v2/memset.S: New file.
2007-10-06 David S. Miller <davem@davemloft.net>
* configure.in: Add sparcv9v2 and sparc64v2.
* scripts/config.sub: Likewise.
* configure: Regenerate.
* elf/elf.h (HWCAP_SPARC_N2): New.
* sysdeps/sparc/dl-procinfo.h (_DL_HWCAP_COUNT): Bump to 8.
* sysdeps/sparc/dl-procinfo.c (_dl_sparc_cap_flags): Add 'v9v2'.
(HWCAP_IMPORTANT): Add HWCAP_SPARC_N2.
* sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memcpy.S: New file.
* sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memset.S: New file.
* sysdeps/sparc/sparc64/sparcv9v2/memcpy.S: New file.
* sysdeps/sparc/sparc64/sparcv9v2/memset.S: New file.
2007-10-19 06:59:33 +00:00
Roland McGrath
6368c0bcea
2007-10-18 Roland McGrath <roland@redhat.com>
...
* elf/elf.h (NT_PPC_VMX): New macro.
2007-10-18 08:49:44 +00:00
Ulrich Drepper
78d6dd72e5
(save_aux_cache): Free memory allocated for temporary file name.
2007-10-13 05:21:59 +00:00
Ulrich Drepper
0304f168ce
[BZ #5104 ]
...
* elf/do-lookup.h (do_lookup_x): Don't ignore STT_COMMON symbols.
2007-10-05 21:25:32 +00:00
Ulrich Drepper
385b4cf4c5
* sysdeps/generic/ldsodefs.h (struct dl_scope_free_list): Store
...
void * pointers instead of struct link_map **.
(_dl_scope_free): Change argument type to void *.
* include/link.h (struct link_map): Change type of l_reldeps
to struct link_map_reldeps, move l_reldepsact into that
struct too.
* elf/dl-deps.c: Include atomic.h.
(_dl_map_object_deps): Only change l->l_initfini when it is
fully populated, use _dl_scope_free for freeing it. Optimize
removal of libs from reldeps by using l_reserved flag, when
some removal is needed, allocate a new list instead of
reallocating and free the old with _dl_scope_free. Adjust
for l_reldeps and l_reldepsact changes.
* elf/dl-lookup.c (add_dependency): Likewise. Reorganize to allow
searching in l_initfini and l_reldeps without holding dl_load_lock.
* elf/dl-fini.c (_dl_sort_fini): Adjust for l_reldeps and
l_reldepsact changes.
* elf/dl-close.c (_dl_close_worker): Likewise.
* elf/dl-open.c (_dl_scope_free): Change argument type to void *.
2007-09-29 06:58:31 +00:00
Ulrich Drepper
715899d122
* elf/dl-lookup.c (add_dependency): Handle failing memory
...
allocation for dependency list. Remove unnecessary check.
2007-09-19 22:22:51 +00:00
Ulrich Drepper
b90395e6e9
* sysdeps/generic/ldsodefs.h (DL_LOOKUP_GSCOPE_LOCK): New definition.
...
* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Or in
DL_LOOKUP_GSCOPE_LOCK into flags after THREAD_GSCOPE_SET_FLAG ().
* elf/dl-sym.c (do_sym): Likewise.
* include/link.h (struct link_map): Add l_serial field.
* elf/dl-object.c (_dl_new_object): Initialize l_serial.
* elf/dl-lookup.c (add_dependency): Add flags argument.
Remember map->l_serial, if DL_LOOKUP_GSCOPE_LOCK is among
flags, use THREAD_GSCOPE_RESET_FLAG before and
THREAD_GSCOPE_SET_FLAG after
__rtld_lock_lock_recursive (GL(dl_load_lock)) to avoid deadlock.
Don't dereference map until it has been found on some list.
If map->l_serial changed, return -1.
2007-09-18 19:20:56 +00:00
Ulrich Drepper
0b82ff747e
* elf/elf.h: Define R_PARISC_PLABEL21L, R_PARISC_PLABEL14R,
...
R_PARISC_GNU_VTENTRY, R_PARISC_GNU_VTINHERIT, R_PARISC_TLS_GD21L,
R_PARISC_TLS_GD14R, R_PARISC_TLS_GDCALL, R_PARISC_TLS_LDM21L,
R_PARISC_TLS_LDM14R, R_PARISC_TLS_LDMCALL, R_PARISC_TLS_LDO21L,
R_PARISC_TLS_LDO14R, R_PARISC_TLS_DTPMOD32, R_PARISC_TLS_DTPMOD64,
R_PARISC_TLS_DTPOFF32, R_PARISC_TLS_DTPOFF64, R_PARISC_TLS_LE21L,
R_PARISC_TLS_LE14R, R_PARISC_TLS_IE21L, R_PARISC_TLS_IE14R,
R_PARISC_TLS_TPREL32, R_PARISC_TLS_TPREL64.
2007-08-21 14:14:25 +00:00
Ulrich Drepper
d979c2f1e6
(do_lookup_x): Minimal improvement in hash lookup loop.
2007-08-21 14:05:39 +00:00
Jakub Jelinek
cb84d1e403
* elf/Makefile ($(objpfx)ld.so): Use readelf -s and awk instead of nm -u
...
to check for undefined symbols.
* elf/Makefile ($(objpfx)ld.so): Use readelf -s and awk instead of nm -u
to check for undefined symbols.
2007-08-16 21:20:11 +00:00
Ulrich Drepper
c6c8f0eca3
* elf/dl-misc.c: Undo last change. The kernel won't allow it.
2007-08-14 18:54:27 +00:00
Ulrich Drepper
ea37207af1
* elf/dl-dst.h: No need for _dl_dst_count, _dl_dst_substitute,
...
and _dl_get_origin defines anymore.
2007-08-13 05:01:42 +00:00
Ulrich Drepper
3c87d79db7
* sysdeps/unix/sysv/linux/x86_64/libc-start.c
...
(_libc_vdso_platform_setup): Mangle function pointers before storing
them.
* sysdeps/unix/sysv/linux/x86_64/sysdep.h (INLINE_VSYSCALL):
Demangle vdso pointer before use.
(INTERNAL_VSYSCALL): Likewise.
* elf/cache.c (primes): Mark as const.
Noted by Roland McGrath.
2007-08-13 00:23:59 +00:00
Ulrich Drepper
27d9ffda17
2007-08-01 Andreas Jaeger <aj@suse.de>
...
Jakub Jelinek <jakub@redhat.com>
* elf/ldconfig.c (opt_ignore_aux_cache): Add new option.
(options): Add option.
(parse_opt): Handle option.
(manual_link): Adjust process_file caller. Call implicit_soname.
(search_dir): Formatting. Use and populate auxiliary cache.
(main): Load and save auxiliary cache.
* elf/readlib.c (process_file): Add stat_buf argument. Pass struct
stat64 from fstat64 to caller.
(implicit_soname): New function.
* elf/readelflib.c (process_elf_file): If DT_SONAME is not present,
leave *soname as NULL.
* elf/cache.c: Include libgen.h.
(print_entry, print_cache, compare, save_cache, add_to_cache):
Formatting and cleanups.
(aux_cache_entry_id, aux_cache_entry, aux_cache_file_entry,
aux_cache_file): New structures.
(AUX_CACHEMAGIC): Define.
(primes): New array.
(aux_hash_size, aux_hash): New variables.
(aux_cache_entry_id_hash, nextprime, init_aux_cache,
search_aux_cache, insert_to_aux_cache, add_to_aux_cache,
load_aux_cache, save_aux_cache): New functions.
* sysdeps/generic/ldconfig.h (_PATH_LDCONFIG_AUX_CACHE): Define.
(init_aux_cache, search_aux_cache, add_to_aux_cache,
load_aux_cache, save_aux_cache, implicit_soname): New prototypes.
(process_file): Adjust prototype.
2007-08-12 20:09:16 +00:00
Ulrich Drepper
4503061fdc
* elf/dl-misc.c (_dl_sysdep_read_whole_file): We really don't need
...
an atime update for the files we read.
2007-08-11 16:58:49 +00:00
Roland McGrath
773e305efc
* include/stdlib.h: Add libc_hidden_proto for strto*, __strto*_l.
...
Remove __strto*_l inlines.
* include/wchar.h: Add libc_hidden_proto for wcsto*, __wcsto*_l.
* stdlib/strtod.c: Add libc_hidden_def.
* stdlib/strtod_l.c: Likewise.
* stdlib/strtold.c [__LONG_DOUBLE_MATH_OPTIONAL]: Add libc_hidden_proto
for __new_strtold and __new_wcstold.
* sysdeps/ieee754/ldbl-128ibm/strtold_l.c: Add libc_hidden_proto for
__STRTOF, STRTOF.
* stdlib/strtol.c: Add libc_hidden_def.
* stdlib/strtol_l.c: Likewise.
* sysdeps/wordsize-64/strtol.c: Add libc_hidden_ver for strtoll and
strtoq.
* scripts/data/localplt-powerpc-linux-gnu.data: New file.
* scripts/data/localplt-x86_64-linux-gnu.data: File renamed to ...
* scripts/data/localplt-generic.data: ... here.
* elf/Makefile (check-data): Get generic file if no other.
($(objpfx)check-localplt.out): Make target unconditional.
2007-08-07 05:36:32 +00:00
Ulrich Drepper
ce31a3b1c5
* intl/dcigettext.c (_nl_find_msg): Free encoding if __gconv_open
...
failed.
* intl/finddomain.c (_nl_find_domain): Free normalized_codeset
on failure.
* elf/dl-load.c (decompose_rpath): Free copy if result couldn't be
allocated.
2007-08-03 Jakub Jelinek <jakub@redhat.com>
2007-08-03 15:50:30 +00:00
Roland McGrath
2e2efe652a
* elf/ldconfig.c: Allow GPLv2 or any later version.
...
* elf/readlib.c: Likewise.
* elf/chroot_canon.c: Likewise.
* elf/cache.c: Likewise.
* nscd/mem.c: Likewise.
* nscd/getpwuid_r.c: Likewise.
* nscd/grpcache.c: Likewise.
* nscd/aicache.c: Likewise.
* nscd/getsrvbynm_r.c: Likewise.
* nscd/nscd.c: Likewise.
* nscd/servicescache.c: Likewise.
* nscd/getsrvbypt_r.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/gethstbyad_r.c: Likewise.
* nscd/gethstbynm2_r.c: Likewise.
* nscd/getgrnam_r.c: Likewise.
* nscd/nscd_setup_thread.c: Likewise.
* nscd/getpwnam_r.c: Likewise.
* nscd/gai.c: Likewise.
* nscd/connections.c: Likewise.
* nscd/dbg_log.c: Likewise.
* nscd/cache.c: Likewise.
* nscd/hstcache.c: Likewise.
* nscd/nscd_conf.c: Likewise.
* nscd/getgrgid_r.c: Likewise.
* nscd/pwdcache.c: Likewise.
* catgets/gencat.c: Likewise.
* locale/programs/linereader.h: Likewise.
* locale/programs/locarchive.c: Likewise.
* locale/programs/ld-paper.c: Likewise.
* locale/programs/locfile-kw.h: Likewise.
* locale/programs/ld-address.c: Likewise.
* locale/programs/xmalloc.c: Likewise.
* locale/programs/ld-time.c: Likewise.
* locale/programs/localedef.c: Likewise.
* locale/programs/simple-hash.c: Likewise.
* locale/programs/xstrdup.c: Likewise.
* locale/programs/ld-numeric.c: Likewise.
* locale/programs/locfile-kw.gperf: Likewise.
* locale/programs/ld-collate.c: Likewise.
* locale/programs/charmap-kw.gperf: Likewise.
* locale/programs/charmap.h: Likewise.
* locale/programs/charmap-kw.h: Likewise.
* locale/programs/config.h: Likewise.
* locale/programs/locfile.c: Likewise.
* locale/programs/ld-ctype.c: Likewise.
* locale/programs/charmap.c: Likewise.
* locale/programs/ld-messages.c: Likewise.
* locale/programs/repertoire.h: Likewise.
* locale/programs/locale.c: Likewise.
* locale/programs/ld-name.c: Likewise.
* locale/programs/linereader.c: Likewise.
* locale/programs/locfile.h: Likewise.
* locale/programs/3level.h: Likewise.
* locale/programs/ld-monetary.c: Likewise.
* locale/programs/ld-measurement.c: Likewise.
* locale/programs/charmap-dir.c: Likewise.
* locale/programs/ld-identification.c: Likewise.
* locale/programs/localedef.h: Likewise.
* locale/programs/charmap-dir.h: Likewise.
* locale/programs/repertoire.c: Likewise.
* locale/programs/simple-hash.h: Likewise.
* locale/programs/ld-telephone.c: Likewise.
* locale/programs/locale-spec.c: Likewise.
* locale/programs/locfile-token.h: Likewise.
* posix/getconf.c: Likewise.
* iconv/dummy-repertoire.c: Likewise.
* iconv/iconv_charmap.c: Likewise.
* iconv/iconvconfig.c: Likewise.
* iconv/iconv_prog.c: Likewise.
* malloc/memusagestat.c: Likewise.
* sysdeps/unix/sysv/linux/nscd_setup_thread.c: Likewise.
2007-07-16 00:56:07 +00:00
Ulrich Drepper
1c298d0887
[BZ #4775 , BZ #4776 ]
...
2007-07-12 Jakub Jelinek <jakub@redhat.com>
[BZ #4775 ]
* math/tgmath.h (__tgmath_real_type_sub): Formatting.
(__tgmath_real_type): Fix if expr is const int or other const
qualified integral type.
(__TGMATH_UNARY_REAL_ONLY): Rewritten to avoid using statement
expressions and handle const qualified arguments.
(__TGMATH_BINARY_FIRST_REAL_ONLY, __TGMATH_UNARY_REAL_IMAG,
__TGMATH_UNARY_REAL_IMAG_RET_REAL): Likewise.
(__TGMATH_UNARY_REAL_RET_ONLY): Rewritten to avoid using
statement expressions.
(__TGMATH_BINARY_REAL_ONLY, __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY,
__TGMATH_TERNARY_REAL_ONLY, __TGMATH_BINARY_REAL_IMAG): Likewise.
(__TGMATH_UNARY_IMAG): Define.
(conj, cproj): Use __TGMATH_UNARY_IMAG macro.
* math/Makefile (tests): Add test-tgmath2.
(CFLAGS-test-tgmath2.c): Add.
* math/test-tgmath.c (fy, dy, ly, fz, dz, lz, count_cdouble,
count_cfloat, count_cldouble): New variables.
(NCCALLS): Define.
(main): Check number of complex calls as well.
(F(compile_test)): Add complex tests and tests with const qualified
arguments.
(y, z, ccount): Define.
(F(cacos), F(casin), F(catan), F(ccos), F(csin), F(ctan), F(cacosh),
F(casinh), F(catanh), F(ccosh), F(csinh), F(ctanh), F(cexp), F(clog),
F(csqrt), F(cpow), F(cabs), F(carg), F(creal), F(cimag), F(conj),
F(cproj)): New functions.
* math/test-tgmath2.c: New test.
2007-07-11 Jakub Jelinek <jakub@redhat.com>
[BZ #4776 ]
* elf/dl-load.c (_dl_rtld_di_serinfo): Output / in LD_LIBRARY_PATH,
RPATH etc. as "/" rather than "", don't segfault on empty paths,
instead output ".".
* dlfcn/Makefile (distribute): Add glreflib3.c.
(module-names): Add glreflib3.
($(objpfx)tst-dlinfo.out): Depend on glreflib3.so rather than
glreflib1.so.
(LDFLAGS_glreflib3.so): New.
* dlfcn/tst-dlinfo.c (do_test): Load glreflib3.so instead of
glreflib1.so.
* dlfcn/glreflib3.c: New file.
* intl/finddomain.c (_nl_find_domain): If _nl_explode_name
returned -1, return NULL.
* intl/explodename.c (_nl_explode_name): Return -1 if
_nl_normalize_codeset failed.
2007-07-12 18:17:11 +00:00
Roland McGrath
57b5b34cca
2007-07-09 Roland McGrath <roland@redhat.com>
...
* elf/elf.h (NT_GNU_ABI_TAG): New macro.
(ELF_NOTE_ABI): Use it.
(NT_GNU_HWCAP, NT_GNU_BUILD_ID): New macros.
2007-07-10 00:39:26 +00:00
Ulrich Drepper
8e46c99fd5
Fix typo.
2007-07-04 21:17:34 +00:00
Ulrich Drepper
1311e86e43
* elf/dl-sysdep.c (_dl_important_hwcaps): Add integer overflow check.
...
* elf/dl-minimal.c (__libc_memalign): Likewise. Handle malloc (0).
Return NULL if mmap failed instead of asserting it does not.
(calloc): Check for integer overflow.
* elf/dl-minimal.c (__strtoul_internal): Fix parsing of numbers bigger
than LONG_MAX / 10.
2007-07-04 18:06:39 +00:00
Ulrich Drepper
0e508a6e4a
* elf/dl-load.c (open_verify): Find .note.ABI-tag notes even
...
in PT_NOTE segments with multiple notes.
* elf/readelflib.c (process_elf_file): Likewise.
2007-06-30 17:01:43 +00:00
Ulrich Drepper
2f6773b574
(open_verify): Find .note.ABI-tag notes even in PT_NOTE segments with multiple notes.
2007-06-30 17:01:07 +00:00
Ulrich Drepper
e4eb675d0c
* elf/dl-close.c (free_mem): Free _dl_scope_free_list.
...
2007-06-13 Jakub Jelinek <jakub@redhat.com>
* include/link.h: Don't include rtld-lowlevel.h.
(struct link_map): Remove l_scope_lock.
* sysdeps/generic/ldsodefs.h: Don't include rtld-lowlevel.h.
(_dl_scope_free_list): New field (variable) in _rtld_global.
(DL_LOOKUP_SCOPE_LOCK): Remove.
(_dl_scope_free): New prototype.
* elf/dl-runtime.c (_dl_fixup): Don't use __rtld_mrlock_*lock.
Don't pass DL_LOOKUP_SCOPE_LOCK to _dl_lookup_symbol_x.
(_dl_profile_fixup): Likewise.
* elf/dl-sym.c (do_sym): Likewise. Use wrapped _dl_lookup_symbol_x
whenever !RTLD_SINGLE_THREAD_P, use THREAD_GSCOPE_SET_FLAG and
THREAD_GSCOPE_RESET_FLAG around it.
* elf/dl-close.c (_dl_close_worker): Don't use
__rtld_mrlock_{change,done}. Call _dl_scope_free on the old
scope. Make sure THREAD_GSCOPE_WAIT () happens if any old
scopes were queued or if l_scope_mem has been abandoned.
* elf/dl-open.c (_dl_scope_free): New function.
(dl_open_worker): Use it. Don't use __rtld_mrlock_{change,done}.
* elf/dl-support.c (_dl_scope_free_list): New variable.
* elf/dl-lookup.c (add_dependency): Remove flags argument.
Remove DL_LOOKUP_SCOPE_LOCK handling.
(_dl_lookup_symbol_x): Adjust caller. Remove DL_LOOKUP_SCOPE_LOCK
handling.
* elf/dl-object.c (_dl_new_object): Don't use
__rtld_mrlock_initialize.
2007-06-19 Ulrich Drepper <drepper@redhat.com>
2007-06-20 03:19:13 +00:00
Ulrich Drepper
9be09e060f
* sysdeps/generic/ldsodefs.h (rtld_global): Reorder some elements
...
to fill in holes
(rtld_global_ro): Likewise.
2007-06-18 Jakub Jelinek <jakub@redhat.com>
* elf/dl-addr.c (_dl_addr): Skip PT_LOAD checking if l_contiguous.
Move PT_LOAD checking to...
(_dl_addr_inside_object): ... here, new function.
* elf/dl-sym.c (do_sym): If not l_contiguous,
call _dl_addr_inside_object.
* elf/dl-iteratephdr.c (__dl_iterate_phdr): Likewise.
* dlfcn/dlinfo.c (dlinfo_doit): Likewise.
* elf/dl-open.c (dl_open_worker): Likewise.
(_dl_addr_inside_object): New function if IS_IN_rtld.
* elf/dl-load.c (_dl_map_object_from_fd): Set l_contiguous if no
holes are present or are PROT_NONE protected.
* include/link.h (struct link_map): Add l_contiguous field.
* sysdeps/generic/ldsodefs.h (_dl_addr_inside_object): New prototype.
2007-06-19 22:59:48 +00:00
Ulrich Drepper
3abee0b7f1
* elf/rtld.c (dl_main): Don't call init_tls more than once.
2007-06-18 20:50:49 +00:00
Ulrich Drepper
90cd2413df
* elf/do-lookup.h (do_lookup_x): Read r_nlist before r_list and
...
make sure gcc doesn't mess around with this.
2007-06-09 19:45:57 +00:00
Ulrich Drepper
3c45708967
* elf/dl-lookup.c (_dl_lookup_symbol_x): Remove use of r_nlist.
2007-06-09 02:19:12 +00:00
Ulrich Drepper
e8b6b64d3c
* elf/dl-close.c (_dl_close_worker): Remove all to be removed
...
libraries from the global scope at once and call THREAD_GSCOPE_WAIT
at most once per _dl_close_worker.
2007-06-09 02:13:06 +00:00
Ulrich Drepper
df94b6412e
* elf/dl-close.c (_dl_close_worker): When removing object from
...
global scope, wait for all lookups to finish afterwards.
* elf/dl-open.c (add_to_global): When global scope array must
grow, allocate a new one and free old array only after all
lookups finish.
* elf/dl-runtime.c (_dl_fixup): Protect using global scope.
(_dl_lookup_symbol_x): Likewise.
* elf/dl-support.c: Define _dl_wait_lookup_done.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Add
_dl_wait_lookup_done.
2007-05-19 07:08:23 +00:00
Ulrich Drepper
9b0d1c0236
(add_to_global): One more small cleanup patch.
2007-05-11 21:34:32 +00:00
Ulrich Drepper
2e81d44986
* elf/dl-close.c (_dl_close_worker): Help gcc to optimize by
...
adding new variables.
optimize. Completely extend global scope array before making the
2007-05-11 18:46:50 +00:00
Ulrich Drepper
d65ef3dda3
* elf/dl-open.c (add_to_global): Introduce variable ns to help gcc
...
optimize. Complerely extend global scope array before making the
new entries visible.
2007-05-11 18:27:20 +00:00