aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/dl-cache.c7
-rw-r--r--sysdeps/generic/dl-environ.c2
-rw-r--r--sysdeps/generic/dl-sysdep.c1
-rw-r--r--sysdeps/generic/ldsodefs.h30
-rw-r--r--sysdeps/generic/longjmp.c4
5 files changed, 34 insertions, 10 deletions
diff --git a/sysdeps/generic/dl-cache.c b/sysdeps/generic/dl-cache.c
index ea4239aef5..d92b4bac37 100644
--- a/sysdeps/generic/dl-cache.c
+++ b/sysdeps/generic/dl-cache.c
@@ -26,12 +26,6 @@
#include <stdio-common/_itoa.h>
-/* System-dependent function to read a file's whole contents
- in the most convenient manner available. */
-extern void *_dl_sysdep_read_whole_file (const char *filename,
- size_t *filesize_ptr,
- int mmap_prot);
-
extern const char *_dl_platform;
#ifndef _DL_PLATFORMS_COUNT
@@ -150,6 +144,7 @@ while (0)
or null if none is found. */
const char *
+internal_function
_dl_load_cache_lookup (const char *name)
{
int left, right, middle;
diff --git a/sysdeps/generic/dl-environ.c b/sysdeps/generic/dl-environ.c
index 19637917a5..f5e0f8d959 100644
--- a/sysdeps/generic/dl-environ.c
+++ b/sysdeps/generic/dl-environ.c
@@ -18,7 +18,7 @@
Boston, MA 02111-1307, USA. */
#include <string.h>
-
+#include <ldsodefs.h>
extern char **_environ;
diff --git a/sysdeps/generic/dl-sysdep.c b/sysdeps/generic/dl-sysdep.c
index 88340a6baf..bd4036c7f6 100644
--- a/sysdeps/generic/dl-sysdep.c
+++ b/sysdeps/generic/dl-sysdep.c
@@ -191,6 +191,7 @@ _dl_sysdep_start (void **start_argptr,
}
void
+internal_function
_dl_sysdep_start_cleanup (void)
{
}
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index ad4cbe61b5..032e26e179 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -456,6 +456,36 @@ extern const struct r_strlenpair *_dl_important_hwcaps (const char *platform,
size_t *max_capstrlen)
internal_function;
+/* Look up NAME in ld.so.cache and return the file name stored there,
+ or null if none is found. */
+extern const char *_dl_load_cache_lookup (const char *name)
+ internal_function;
+
+/* If the system does not support MAP_COPY we cannot leave the file open
+ all the time since this would create problems when the file is replaced.
+ Therefore we provide this function to close the file and open it again
+ once needed. */
+extern void _dl_unload_cache (void);
+
+/* System-dependent function to read a file's whole contents
+ in the most convenient manner available. */
+extern void *_dl_sysdep_read_whole_file (const char *file, size_t *sizep,
+ int prot)
+ internal_function;
+
+/* System-specific function to do initial startup for the dynamic linker.
+ After this, file access calls and getenv must work. This is responsible
+ for setting __libc_enable_secure if we need to be secure (e.g. setuid),
+ and for setting _dl_argc and _dl_argv, and then calling _dl_main. */
+extern ElfW(Addr) _dl_sysdep_start (void **start_argptr,
+ void (*dl_main) (const ElfW(Phdr) *phdr,
+ ElfW(Word) phnum,
+ ElfW(Addr) *user_entry));
+
+extern void _dl_sysdep_start_cleanup (void)
+ internal_function;
+
+
__END_DECLS
#endif /* ldsodefs.h */
diff --git a/sysdeps/generic/longjmp.c b/sysdeps/generic/longjmp.c
index 1a4850f1b8..33046d5ebd 100644
--- a/sysdeps/generic/longjmp.c
+++ b/sysdeps/generic/longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 94, 95, 97, 98 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 94, 95, 97, 98, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,8 +21,6 @@
#include <signal.h>
-extern void _longjmp_unwind (jmp_buf env, int val);
-
/* Set the signal mask to the one specified in ENV, and jump
to the position specified in ENV, causing the setjmp
call there to return VAL, or 1 if VAL is 0. */