summaryrefslogtreecommitdiff
path: root/sysdeps/generic
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/dl-machine.h9
-rw-r--r--sysdeps/generic/ldsodefs.h10
-rw-r--r--sysdeps/generic/strchrnul.c6
-rw-r--r--sysdeps/generic/tls-macros.h12
-rw-r--r--sysdeps/generic/wordexp.c2
5 files changed, 28 insertions, 11 deletions
diff --git a/sysdeps/generic/dl-machine.h b/sysdeps/generic/dl-machine.h
index 8b4425cea4..c3459f5e32 100644
--- a/sysdeps/generic/dl-machine.h
+++ b/sysdeps/generic/dl-machine.h
@@ -1,5 +1,6 @@
/* Machine-dependent ELF dynamic relocation inline functions. Stub version.
- Copyright (C) 1995,1996,1997,1999,2000,2001 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1999, 2000, 2001, 2005
+ 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
@@ -64,7 +65,8 @@ elf_machine_fixup_plt (struct link_map *map, lookup_t t,
LOADADDR is the load address of the object; INFO is an array indexed
by DT_* of the .dynamic section info. */
-static inline void
+auto inline void
+__attribute__ ((always_inline))
elf_machine_rel (Elf32_Addr loadaddr, Elf32_Dyn *info[DT_NUM],
const Elf32_Rel *reloc, const Elf32_Sym *sym,
Elf32_Addr (*resolve) (const Elf32_Sym **ref,
@@ -87,7 +89,8 @@ elf_machine_rel (Elf32_Addr loadaddr, Elf32_Dyn *info[DT_NUM],
}
-static inline Elf32_Addr
+auto inline Elf32_Addr
+__attribute__ ((always_inline))
elf_machine_rela (Elf32_Addr loadaddr, Elf32_Dyn *info[DT_NUM],
const Elf32_Rel *reloc, const Elf32_Sym *sym,
Elf32_Addr (*resolve) (const Elf32_Sym **ref,
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 08039e18ca..dd1b2c8345 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -694,10 +694,7 @@ extern char **_dl_argv_internal attribute_hidden
/* The array with message we print as a last resort. */
extern const char _dl_out_of_memory[];
-#ifdef IS_IN_rtld
-/* XXX #ifdef should go away. */
-extern const char _dl_out_of_memory_internal[] attribute_hidden;
-#endif
+rtld_hidden_proto (_dl_out_of_memory)
/* Flag set at startup and cleared when the last initializer has run. */
extern int _dl_starting_up;
@@ -895,6 +892,11 @@ extern void _dl_init (struct link_map *main_map, int argc, char **argv,
initializer functions have completed. */
extern void _dl_fini (void) internal_function;
+/* Sort array MAPS according to dependencies of the contained objects. */
+extern void _dl_sort_fini (struct link_map *l, struct link_map **maps,
+ size_t nmaps, char *used, Lmid_t ns)
+ internal_function;
+
/* The dynamic linker calls this function before and having changing
any shared object mappings. The `r_state' member of `struct r_debug'
says what change is taking place. This function's address is
diff --git a/sysdeps/generic/strchrnul.c b/sysdeps/generic/strchrnul.c
index f04b303b82..88b96dd126 100644
--- a/sysdeps/generic/strchrnul.c
+++ b/sysdeps/generic/strchrnul.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,93,94,95,96,97,99,2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1993-1997,99,2000,2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@sics.se) and
@@ -43,8 +43,8 @@ __strchrnul (s, c_in)
/* Handle the first few characters by reading one character at a time.
Do this until CHAR_PTR is aligned on a longword boundary. */
- for (char_ptr = s; ((unsigned long int) char_ptr
- & (sizeof (longword) - 1)) != 0;
+ for (char_ptr = (const unsigned char *) s;
+ ((unsigned long int) char_ptr & (sizeof (longword) - 1)) != 0;
++char_ptr)
if (*char_ptr == c || *char_ptr == '\0')
return (void *) char_ptr;
diff --git a/sysdeps/generic/tls-macros.h b/sysdeps/generic/tls-macros.h
new file mode 100644
index 0000000000..0a08f7c145
--- /dev/null
+++ b/sysdeps/generic/tls-macros.h
@@ -0,0 +1,12 @@
+/* Macros to support TLS testing in times of missing compiler support.
+ Stub version.
+
+ These macros should yield int * expressions for the TLS symbol X
+ accessed using the various TLS access models. Macros for some machines
+ are defined in elf/tls-macros.h, but ports can instead provide this file.
+
+#define TLS_LE(x)
+#define TLS_IE(x)
+#define TLS_LD(x)
+#define TLS_GD(x)
+*/
diff --git a/sysdeps/generic/wordexp.c b/sysdeps/generic/wordexp.c
index c3d382fb95..06d38f6b24 100644
--- a/sysdeps/generic/wordexp.c
+++ b/sysdeps/generic/wordexp.c
@@ -809,7 +809,7 @@ parse_arith (char **word, size_t *word_length, size_t *max_length,
}
/* Function called by child process in exec_comm() */
-static void
+static inline void
internal_function __attribute__ ((always_inline))
exec_comm_child (char *comm, int *fildes, int showerr, int noexec)
{