Commit Graph

7 Commits

Author SHA1 Message Date
Roland McGrath
d78efd9f36 * elf/tst-tls-dlinfo.c: New file.
* elf/Makefile (tests): Add it.
	($(objpfx)tst-tls-dlinfo): Depend on $(libdl).
	($(objpfx)tst-tls-dlinfo.out): Depend on $(objpfx)tst-tlsmod2.so.

	* dlfcn/dlfcn.h (RTLD_DI_PROFILENAME, RTLD_DI_PROFILEOUT): New enum
	values, reserve unsupported requested names used on Solaris.
	(RTLD_DI_TLS_MODID, RTLD_DI_TLS_DATA): New enum values.
	(RTLD_DI_MAX): Likewise.
	* dlfcn/dlinfo.c (dlinfo_doit): Handle RTLD_DI_TLS_MODID and
	RTLD_DI_TLS_DATA.

	* elf/dl-tls.c (_dl_tls_get_addr_soft): New function.
	* sysdeps/generic/ldsodefs.h: Declare it.
	* elf/Versions (ld: GLIBC_PRIVATE): Add it.
	* elf/link.h (struct dl_phdr_info): New members dlpi_tls_modid,
	dlpi_tls_data.
	* elf/dl-iteratephdr.c (__dl_iterate_phdr): Fill them in.

	* include/link.h: Don't copy contents from elf/link.h.
	Instead, #include it while #define'ing around link_map.
	* elf/dl-debug.c (_dl_debug_initialize): Add a cast.
	Add bogus extern decl to verify link_map members.
	* elf/loadtest.c (MAPS): New macro, cast _r_debug._r_map.
	(OUT, main): Use it in place of _r_debug._r_map.
	* elf/unload.c: Likewise.
	* elf/unload2.c: Likewise.
	* elf/neededtest.c (check_loaded_objects): Likewise.
	* elf/neededtest2.c (check_loaded_objects): Likewise.
	* elf/neededtest3.c (check_loaded_objects): Likewise.
	* elf/neededtest4.c (check_loaded_objects): Likewise.
	* elf/circleload1.c (check_loaded_objects): Likewise.
2006-03-01 06:18:49 +00:00
Ulrich Drepper
20fe49b93a * include/link.h (struct link_map): Remove l_opencount. Add l_removed.
Change type of l_idx to int.
	* elf/dl-close.c: Basically rewrite.  Do not use l_opencount to
	determine whether a DSO has to be unloaded.  Instead compute this
	in this function.
	* elf/dl-deps.c: No need to manipulate l_opencount anymore.
	* elf/dl-lookup.c: Likewise.
	* elf/rtld.c: Likewise
	* elf/dl-open.c: Likewise.  Use l_init_called to determine whether
	object was just loaded.
	* elf/dl-fini.c: Bump l_direct_opencount instead of l_opencount.
	* elf/dl-load.c (_dl_map_object_from_fd): Do not recognize DSO which
	is about to be unloaded as a match.
	(_dl_map_object): Likewise.
	* elf/do-lookup.h (do_lookup_x): Do not look into DSO which is about
	to be unloaded.
	* elf/circleload1.c: Don't use l_opencount anymore.
	* elf/neededtest.c: Likewise.
	* elf/neededtest2.c: Likewise.
	* elf/neededtest3.c: Likewise.
	* elf/neededtest4.c: Likewise.
	* elf/unload.c: Likewise.
	* elf/unload2.c: Likewise.
	* elf/loadtest.c: Likewise.

	* elf/rtld.c: Preloading errors are now never fatal.

2005-03-08  Jakub Jelinek  <jakub@redhat.com>

	* elf/Makefile: Add rules to build and run unload5 test.
	* elf/unload5.c: New file.

2005-03-08  Jakub Jelinek  <jakub@redhat.com>

	* elf/Makefile: Add rules to build and run unload4 test.
	* elf/unload4.c: New file.
	* elf/unload4mod1.c: New file.
	* elf/unload4mod2.c: New file.
	* elf/unload4mod3.c: New file.
	* elf/unload4mod4.c: New file.
2005-03-18 11:11:42 +00:00
Ulrich Drepper
1087e37192 (main): Pretty printing. 2005-03-16 08:43:59 +00:00
Ulrich Drepper
a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek
0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Ulrich Drepper
11fa51b8f6 Update.
2002-07-01  H.J. Lu  <hjl@gnu.org>

	* elf/circleload1.c (load_dso): Call "circlemod1" and check
	return value.

	* elf/circlemod1.c (circlemod1): Return int.
	* elf/circlemod2.c (circlemod2): Likewise.
	* elf/circlemod2a.c (circlemod2): Likewise.
	* elf/circlemod3.c (circlemod3): Likewise.
	(circlemod3a): A new function.
2002-07-17 00:34:35 +00:00
Ulrich Drepper
6d78cd000f Update.
2002-06-30  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-lookup.c (add_dependency): It is not necessary to add
	dependencies if they are created between objects which are created
	while processing RTLD_NOW for objects loaded as part of the same
	dlopen call.

2002-06-14  H.J. Lu  <hjl@gnu.org>

	* elf/Makefile (tests): Add circleload1.
	(modules-names): Add circlemod1, circlemod2, circlemod3,
	circlemod1a, circlemod2a and circlemod3a.
	($(objpfx)circleload1): New target.
	($(objpfx)circleload1.out): Likewise.
	($(objpfx)circlemod1.so): Likewise.
	($(objpfx)circlemod2.so): Likewise.
	($(objpfx)circlemod1a.so): Likewise.
	($(objpfx)circlemod2a.so): Likewise.
	* elf/circleload1.c: New file.
	* elf/circlemod1.c: New file.
	* elf/circlemod1a.c: New file.
	* elf/circlemod2.c: New file.
	* elf/circlemod2a.c: New file.
	* elf/circlemod3.c: New file.
	* elf/circlemod3a.c: New file.
2002-06-30 07:17:02 +00:00