1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-10 05:03:06 +03:00

* sysdeps/generic/wordexp.c (exec_comm_child): Add inline keyword.

Patch by Dan Kegel <dank@kegel.com>.

	* elf/dynamic-link.h (elf_machine_rel, elf_machine_rel_relative,
	elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel):
	Add inline keyword.
	* sysdeps/alpha/dl-machine.h (elf_machine_rela,
	elf_machine_rela_relative, elf_machine_lazy_rel): Add always_inline
	attribute.
	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela,
	elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.  Change
	static inline into auto inline.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela,
	elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.
	* sysdeps/generic/dl-machine.h (elf_machine_rel, elf_machine_rela):
	Likewise.
	* sysdeps/arm/dl-machine.h (elf_machine_rel, elf_machine_rel_relative,
	elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel):
	Likewise.

2005-03-15  Jakub Jelinek  <jakub@redhat.com>
This commit is contained in:
Roland McGrath
2005-03-15 22:57:31 +00:00
parent fdc07525f4
commit 1b243ca9a8
9 changed files with 73 additions and 24 deletions

View File

@@ -1,3 +1,25 @@
2005-03-15 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/wordexp.c (exec_comm_child): Add inline keyword.
Patch by Dan Kegel <dank@kegel.com>.
* elf/dynamic-link.h (elf_machine_rel, elf_machine_rel_relative,
elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel):
Add inline keyword.
* sysdeps/alpha/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative, elf_machine_lazy_rel): Add always_inline
attribute.
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative, elf_machine_lazy_rel): Likewise. Change
static inline into auto inline.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.
* sysdeps/generic/dl-machine.h (elf_machine_rel, elf_machine_rela):
Likewise.
* sysdeps/arm/dl-machine.h (elf_machine_rel, elf_machine_rel_relative,
elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel):
Likewise.
2005-03-15 Jakub Jelinek <jakub@redhat.com> 2005-03-15 Jakub Jelinek <jakub@redhat.com>
[BZ #789] [BZ #789]

View File

@@ -32,29 +32,29 @@
copying memory, breaking the very code written to handle the copying memory, breaking the very code written to handle the
unaligned cases. */ unaligned cases. */
# if ! ELF_MACHINE_NO_REL # if ! ELF_MACHINE_NO_REL
auto void __attribute__((always_inline)) auto inline void __attribute__((always_inline))
elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc, elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
const ElfW(Sym) *sym, const struct r_found_version *version, const ElfW(Sym) *sym, const struct r_found_version *version,
void *const reloc_addr); void *const reloc_addr);
auto void __attribute__((always_inline)) auto inline void __attribute__((always_inline))
elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc, elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
void *const reloc_addr); void *const reloc_addr);
# endif # endif
# if ! ELF_MACHINE_NO_RELA # if ! ELF_MACHINE_NO_RELA
auto void __attribute__((always_inline)) auto inline void __attribute__((always_inline))
elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
const ElfW(Sym) *sym, const struct r_found_version *version, const ElfW(Sym) *sym, const struct r_found_version *version,
void *const reloc_addr); void *const reloc_addr);
auto void __attribute__((always_inline)) auto inline void __attribute__((always_inline))
elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc, elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
void *const reloc_addr); void *const reloc_addr);
# endif # endif
# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL # if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
auto void __attribute__((always_inline)) auto inline void __attribute__((always_inline))
elf_machine_lazy_rel (struct link_map *map, elf_machine_lazy_rel (struct link_map *map,
ElfW(Addr) l_addr, const ElfW(Rel) *reloc); ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
# else # else
auto void __attribute__((always_inline)) auto inline void __attribute__((always_inline))
elf_machine_lazy_rel (struct link_map *map, elf_machine_lazy_rel (struct link_map *map,
ElfW(Addr) l_addr, const ElfW(Rela) *reloc); ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
# endif # endif

View File

@@ -1,3 +1,13 @@
2005-03-08 Paul Eggert <eggert@cs.ucla.edu>
* iconvme.c (SIZE_MAX): New macro, if not already defined.
(iconv_string): Don't guess a size-zero buffer, as that might cause
buffer overrun. Instead, avoid multiplying by MB_LEN_MAX if the
result would be 'too large', where 'too large' is (heuristically)
the square root of SIZE_MAX, divided by MB_LEN_MAX to allay
overflow concerns. This will prevent some unwanted malloc failures
when the inputs are very large.
2005-02-12 Simon Josefsson <jas@extundo.com > 2005-02-12 Simon Josefsson <jas@extundo.com >
* iconvme.h: New file, extracted from toutf8.c but improved. * iconvme.h: New file, extracted from toutf8.c but improved.

View File

@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. Alpha version. /* Machine-dependent ELF dynamic relocation inline functions. Alpha version.
Copyright (C) 1996-2002, 2003, 2004 Free Software Foundation, Inc. Copyright (C) 1996-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>. Contributed by Richard Henderson <rth@tamu.edu>.
@@ -376,6 +376,7 @@ elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
/* Perform the relocation specified by RELOC and SYM (which is fully resolved). /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
MAP is the object containing the reloc. */ MAP is the object containing the reloc. */
auto inline void auto inline void
__attribute__ ((always_inline))
elf_machine_rela (struct link_map *map, elf_machine_rela (struct link_map *map,
const Elf64_Rela *reloc, const Elf64_Rela *reloc,
const Elf64_Sym *sym, const Elf64_Sym *sym,
@@ -504,6 +505,7 @@ elf_machine_rela (struct link_map *map,
#define ELF_MACHINE_REL_RELATIVE 1 #define ELF_MACHINE_REL_RELATIVE 1
auto inline void auto inline void
__attribute__ ((always_inline))
elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
void *const reloc_addr_arg) void *const reloc_addr_arg)
{ {
@@ -520,6 +522,7 @@ elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
} }
auto inline void auto inline void
__attribute__ ((always_inline))
elf_machine_lazy_rel (struct link_map *map, elf_machine_lazy_rel (struct link_map *map,
Elf64_Addr l_addr, const Elf64_Rela *reloc) Elf64_Addr l_addr, const Elf64_Rela *reloc)
{ {

View File

@@ -391,7 +391,8 @@ fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value)
/* Perform the relocation specified by RELOC and SYM (which is fully resolved). /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
MAP is the object containing the reloc. */ MAP is the object containing the reloc. */
static inline void auto inline void
__attribute__ ((always_inline))
elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
const Elf32_Sym *sym, const struct r_found_version *version, const Elf32_Sym *sym, const struct r_found_version *version,
void *const reloc_addr_arg) void *const reloc_addr_arg)
@@ -516,7 +517,8 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
} }
# ifndef RTLD_BOOTSTRAP # ifndef RTLD_BOOTSTRAP
static inline void auto inline void
__attribute__ ((always_inline))
elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
const Elf32_Sym *sym, const struct r_found_version *version, const Elf32_Sym *sym, const struct r_found_version *version,
void *const reloc_addr_arg) void *const reloc_addr_arg)
@@ -596,7 +598,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
} }
# endif # endif
static inline void auto inline void
__attribute__ ((always_inline))
elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc, elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
void *const reloc_addr_arg) void *const reloc_addr_arg)
{ {
@@ -605,7 +608,8 @@ elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
} }
# ifndef RTLD_BOOTSTRAP # ifndef RTLD_BOOTSTRAP
static inline void auto inline void
__attribute__ ((always_inline))
elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
void *const reloc_addr_arg) void *const reloc_addr_arg)
{ {
@@ -614,7 +618,8 @@ elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
} }
# endif # endif
static inline void auto inline void
__attribute__ ((always_inline))
elf_machine_lazy_rel (struct link_map *map, elf_machine_lazy_rel (struct link_map *map,
Elf32_Addr l_addr, const Elf32_Rel *reloc) Elf32_Addr l_addr, const Elf32_Rel *reloc)
{ {

View File

@@ -1,5 +1,6 @@
/* Machine-dependent ELF dynamic relocation inline functions. Stub version. /* 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or 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 LOADADDR is the load address of the object; INFO is an array indexed
by DT_* of the .dynamic section info. */ 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], elf_machine_rel (Elf32_Addr loadaddr, Elf32_Dyn *info[DT_NUM],
const Elf32_Rel *reloc, const Elf32_Sym *sym, const Elf32_Rel *reloc, const Elf32_Sym *sym,
Elf32_Addr (*resolve) (const Elf32_Sym **ref, 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], elf_machine_rela (Elf32_Addr loadaddr, Elf32_Dyn *info[DT_NUM],
const Elf32_Rel *reloc, const Elf32_Sym *sym, const Elf32_Rel *reloc, const Elf32_Sym *sym,
Elf32_Addr (*resolve) (const Elf32_Sym **ref, Elf32_Addr (*resolve) (const Elf32_Sym **ref,

View File

@@ -809,7 +809,7 @@ parse_arith (char **word, size_t *word_length, size_t *max_length,
} }
/* Function called by child process in exec_comm() */ /* Function called by child process in exec_comm() */
static void static inline void
internal_function __attribute__ ((always_inline)) internal_function __attribute__ ((always_inline))
exec_comm_child (char *comm, int *fildes, int showerr, int noexec) exec_comm_child (char *comm, int *fildes, int showerr, int noexec)
{ {

View File

@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. SPARC version. /* Machine-dependent ELF dynamic relocation inline functions. SPARC version.
Copyright (C) 1996-2003, 2004 Free Software Foundation, Inc. Copyright (C) 1996-2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@@ -411,7 +411,8 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
/* Perform the relocation specified by RELOC and SYM (which is fully resolved). /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
MAP is the object containing the reloc. */ MAP is the object containing the reloc. */
static inline void auto inline void
__attribute__ ((always_inline))
elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
const Elf32_Sym *sym, const struct r_found_version *version, const Elf32_Sym *sym, const struct r_found_version *version,
void *const reloc_addr_arg) void *const reloc_addr_arg)
@@ -593,7 +594,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
} }
} }
static inline void auto inline void
__attribute__ ((always_inline))
elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
void *const reloc_addr_arg) void *const reloc_addr_arg)
{ {
@@ -601,7 +603,8 @@ elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
*reloc_addr += l_addr + reloc->r_addend; *reloc_addr += l_addr + reloc->r_addend;
} }
static inline void auto inline void
__attribute__ ((always_inline))
elf_machine_lazy_rel (struct link_map *map, elf_machine_lazy_rel (struct link_map *map,
Elf32_Addr l_addr, const Elf32_Rela *reloc) Elf32_Addr l_addr, const Elf32_Rela *reloc)
{ {

View File

@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. Sparc64 version. /* Machine-dependent ELF dynamic relocation inline functions. Sparc64 version.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@@ -238,7 +238,8 @@ elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
/* Perform the relocation specified by RELOC and SYM (which is fully resolved). /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
MAP is the object containing the reloc. */ MAP is the object containing the reloc. */
static inline void auto inline void
__attribute__ ((always_inline))
elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
const Elf64_Sym *sym, const struct r_found_version *version, const Elf64_Sym *sym, const struct r_found_version *version,
void *const reloc_addr_arg) void *const reloc_addr_arg)
@@ -430,7 +431,8 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
} }
} }
static inline void auto inline void
__attribute__ ((always_inline))
elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
void *const reloc_addr_arg) void *const reloc_addr_arg)
{ {
@@ -438,7 +440,8 @@ elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
*reloc_addr = l_addr + reloc->r_addend; *reloc_addr = l_addr + reloc->r_addend;
} }
static inline void auto inline void
__attribute__ ((always_inline))
elf_machine_lazy_rel (struct link_map *map, elf_machine_lazy_rel (struct link_map *map,
Elf64_Addr l_addr, const Elf64_Rela *reloc) Elf64_Addr l_addr, const Elf64_Rela *reloc)
{ {