aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/generic/ldsodefs.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-02-01 01:33:04 +0000
committerUlrich Drepper <drepper@redhat.com>2002-02-01 01:33:04 +0000
commit5688da55372193e5941f0240e6ea759d28483970 (patch)
tree07e201b5db41088611a28d339926c7a953fa7391 /sysdeps/generic/ldsodefs.h
parenta204ea3607d148c7b83dec5b54496762a99699d8 (diff)
downloadglibc-5688da55372193e5941f0240e6ea759d28483970.tar
glibc-5688da55372193e5941f0240e6ea759d28483970.tar.gz
glibc-5688da55372193e5941f0240e6ea759d28483970.tar.bz2
glibc-5688da55372193e5941f0240e6ea759d28483970.zip
Update.
* sysdeps/generic/ldsodefs.h: Add _dl_load_lock, _dl_lazy, _dl_dynamic_weak, _dl_fpu_control, _dl_cpuclock_offset, and _dl_debug_fd to rtld_global. * elf/Versions: Likewise. * elf/dl-close.c: Likewise. * elf/dl-iteratephdr.c: Likewise. * elf/dl-lookup.c: Likewise. * elf/dl-misc.c: Likewise. * elf/dl-open.c: Likewise. * elf/dl-support.c: Likewise. * elf/do-lookup.h: Likewise. * elf/rtld.c: Likewise. * sysdeps/generic/dl-cache.c: Likewise. * sysdeps/generic/dl-sysdep.c: Likewise. * sysdeps/ia64/Versions: Likewise. * sysdeps/unix/clock_gettime.c: Likewise. * sysdeps/unix/clock_settime.c: Likewise. * sysdeps/unix/sysv/linux/init-first.c: Likewise. * sysdeps/sparc/Versions: Removed. * sysdeps/i386/i686/Versions : Removed. * sysdeps/x86_64/Versions: Removed. * configure.in: Define HAVE_PROTECTED if .protected is available. * config.h.in: Add entry for HAVE_PROTECTED. 2002-01-31 Jakub Jelinek <jakub@redhat.com. * sysdeps/alpha/dl-machine.h: Move global variables for SHARED code in struct _rtld_global. Export this struct, remove all exports for the signal variables. * sysdeps/arm/dl-machine: Likewise. * sysdeps/generic/dl-origin: Likewise. * sysdeps/generic/dl-sysdep: Likewise. * sysdeps/generic/dl-cache: Likewise. * sysdeps/hppa/dl-fptr: Likewise. * sysdeps/hppa/dl-machine: Likewise. * sysdeps/cris/dl-machine: Likewise. * sysdeps/i386/dl-machine: Likewise. * sysdeps/ia64/dl-machine: Likewise. * sysdeps/m68k/dl-machine: Likewise. * sysdeps/mach/hurd/dl-sysdep: Likewise. * sysdeps/mips/mips64/dl-machine: Likewise. * sysdeps/mips/dl-machine: Likewise. * sysdeps/powerpc/elf/libc-start: Likewise. * sysdeps/powerpc/dl-machine: Likewise. * sysdeps/powerpc/dl-start: Likewise. * sysdeps/sparc/sparc32/dl-machine: Likewise. * sysdeps/sparc/sparc64/dl-machine: Likewise. * sysdeps/sh/dl-machine: Likewise. * sysdeps/s390/s390-32/dl-machine: Likewise. * sysdeps/s390/s390-64/dl-machine: Likewise. * sysdeps/unix/sysv/aix/libc-start: Likewise. * sysdeps/unix/sysv/aix/start-libc: Likewise. * sysdeps/unix/sysv/linux/ia64/dl-static: Likewise. * sysdeps/unix/sysv/linux/m68k/getpagesize: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize: Likewise. * sysdeps/x86_64/dl-machine: Likewise. 2002-01-31 Ulrich Drepper <drepper@redhat.com>
Diffstat (limited to 'sysdeps/generic/ldsodefs.h')
-rw-r--r--sysdeps/generic/ldsodefs.h44
1 files changed, 30 insertions, 14 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 52303327c0..3249105ac1 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -29,10 +29,12 @@
#include <elf.h>
#include <dlfcn.h>
+#include <fpu_control.h>
#include <sys/mman.h>
#include <link.h>
#include <dl-lookupcfg.h>
#include <bits/libc-lock.h>
+#include <hp-timing.h>
__BEGIN_DECLS
@@ -234,6 +236,15 @@ struct rtld_global
/* Cached value of `getpagesize ()'. */
EXTERN size_t _dl_pagesize;
+ /* During the program run we must not modify the global data of
+ loaded shared object simultanously in two threads. Therefore we
+ protect `_dl_open' and `_dl_close' in dl-close.c.
+
+ This must be a recursive lock since the initializer function of
+ the loaded object might as well require a call to this function.
+ At this time it is not anymore a problem to modify the tables. */
+ __libc_lock_define_recursive (EXTERN, _dl_load_lock)
+
/* OS version. */
EXTERN unsigned int _dl_osversion;
/* Platform name. */
@@ -251,12 +262,27 @@ struct rtld_global
/* If nonzero print warnings messages. */
EXTERN int _dl_verbose;
+ /* Do we do lazy relocations? */
+ EXTERN int _dl_lazy;
+
/* Nonzero if runtime lookups should not update the .got/.plt. */
EXTERN int _dl_bind_not;
+ /* Nonzero if references should be treated as weak during runtime
+ linking. */
+ EXTERN int _dl_dynamic_weak;
+
+ /* Default floating-point control word. */
+ EXTERN fpu_control_t _dl_fpu_control;
+
/* The object to be initialized first. */
EXTERN struct link_map *_dl_initfirst;
+ /* Start time on CPU clock. */
+#if HP_TIMING_AVAIL
+ EXTERN hp_timing_t _dl_cpuclock_offset;
+#endif
+
/* Name of the shared object to be profiled (if any). */
EXTERN const char *_dl_profile;
/* Map of shared object to be profiled. */
@@ -268,7 +294,7 @@ struct rtld_global
/* Name of the object we want to trace the prelinking. */
EXTERN const char *_dl_trace_prelink;
- /* Expect cache ID. */
+ /* Expected cache ID. */
EXTERN int _dl_correct_cache_id;
/* Counters for the number of relocations performed. */
@@ -291,6 +317,9 @@ struct rtld_global
EXTERN struct r_search_path_elem *_dl_all_dirs;
EXTERN struct r_search_path_elem *_dl_init_all_dirs;
+ /* File descriptor to write debug messages to. */
+ EXTERN int _dl_debug_fd;
+
/* Structure describing the dynamic linker itself. */
EXTERN struct link_map _dl_rtld_map;
#ifdef SHARED
@@ -303,22 +332,9 @@ extern struct rtld_global _rtld_global;
extern int _dl_argc;
extern char **_dl_argv;
-/* Do we do lazy relocations? */
-extern int _dl_lazy;
-
/* The array with message we print as a last resort. */
extern const char _dl_out_of_memory[];
-/* File descriptor to write debug messages to. */
-extern int _dl_debug_fd;
-
-/* Nonzero if references should be treated as weak during runtime
- linking.
-
- XXX Once we can set the default for this variable to zero move it
- into _rtld_global. */
-extern int _dl_dynamic_weak;
-
/* OS-dependent function to open the zero-fill device. */
extern int _dl_sysdep_open_zero_fill (void); /* dl-sysdep.c */