mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-22 06:07:49 +00:00
Robert P. J. DAY says:
According to Mike Frysinger, this patch hasn't been necessary since glibc-2.4+, so turf it from glibc patches 2.5 and up. If someone complains, it can always go back in.
This commit is contained in:
parent
8f48d45018
commit
89e6f2bd42
@ -1,67 +0,0 @@
|
|||||||
From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
|
|
||||||
Fixes
|
|
||||||
rtld.c: In function '_dl_start':
|
|
||||||
dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
|
|
||||||
dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
|
|
||||||
when compiling glibc-2.3.4 with gcc-4.0
|
|
||||||
|
|
||||||
But see also
|
|
||||||
http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
|
|
||||||
and
|
|
||||||
http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html
|
|
||||||
which seem to propose less radical fixes?
|
|
||||||
|
|
||||||
Aha. See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721
|
|
||||||
|
|
||||||
--- glibc-2.3.6.orig/elf/dynamic-link.h 2005-03-12 18:12:37.000000000 -0800
|
|
||||||
+++ glibc-2.3.6/elf/dynamic-link.h 2005-03-12 18:12:59.777820848 -0800
|
|
||||||
@@ -19,47 +19,6 @@
|
|
||||||
|
|
||||||
#include <elf.h>
|
|
||||||
#include <assert.h>
|
|
||||||
-
|
|
||||||
-#ifdef RESOLVE_MAP
|
|
||||||
-/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
|
|
||||||
- ElfW(Addr), because not all architectures can assume that the
|
|
||||||
- relocated address is properly aligned, whereas the compiler is
|
|
||||||
- entitled to assume that a pointer to a type is properly aligned for
|
|
||||||
- the type. Even if we cast the pointer back to some other type with
|
|
||||||
- less strict alignment requirements, the compiler might still
|
|
||||||
- remember that the pointer was originally more aligned, thereby
|
|
||||||
- optimizing away alignment tests or using word instructions for
|
|
||||||
- copying memory, breaking the very code written to handle the
|
|
||||||
- unaligned cases. */
|
|
||||||
-# if ! ELF_MACHINE_NO_REL
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
|
|
||||||
- const ElfW(Sym) *sym, const struct r_found_version *version,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-# endif
|
|
||||||
-# if ! ELF_MACHINE_NO_RELA
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
|
|
||||||
- const ElfW(Sym) *sym, const struct r_found_version *version,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-# endif
|
|
||||||
-# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_lazy_rel (struct link_map *map,
|
|
||||||
- ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
|
|
||||||
-# else
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_lazy_rel (struct link_map *map,
|
|
||||||
- ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
|
|
||||||
-# endif
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
#include <dl-machine.h>
|
|
||||||
|
|
||||||
#ifndef VERSYMIDX
|
|
||||||
|
|
||||||
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
|
|
@ -1,67 +0,0 @@
|
|||||||
From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
|
|
||||||
Fixes
|
|
||||||
rtld.c: In function '_dl_start':
|
|
||||||
dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
|
|
||||||
dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
|
|
||||||
when compiling glibc-2.3.4 with gcc-4.0
|
|
||||||
|
|
||||||
But see also
|
|
||||||
http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
|
|
||||||
and
|
|
||||||
http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html
|
|
||||||
which seem to propose less radical fixes?
|
|
||||||
|
|
||||||
Aha. See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721
|
|
||||||
|
|
||||||
--- glibc-2.3.6.orig/elf/dynamic-link.h 2005-03-12 18:12:37.000000000 -0800
|
|
||||||
+++ glibc-2.3.6/elf/dynamic-link.h 2005-03-12 18:12:59.777820848 -0800
|
|
||||||
@@ -19,47 +19,6 @@
|
|
||||||
|
|
||||||
#include <elf.h>
|
|
||||||
#include <assert.h>
|
|
||||||
-
|
|
||||||
-#ifdef RESOLVE_MAP
|
|
||||||
-/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
|
|
||||||
- ElfW(Addr), because not all architectures can assume that the
|
|
||||||
- relocated address is properly aligned, whereas the compiler is
|
|
||||||
- entitled to assume that a pointer to a type is properly aligned for
|
|
||||||
- the type. Even if we cast the pointer back to some other type with
|
|
||||||
- less strict alignment requirements, the compiler might still
|
|
||||||
- remember that the pointer was originally more aligned, thereby
|
|
||||||
- optimizing away alignment tests or using word instructions for
|
|
||||||
- copying memory, breaking the very code written to handle the
|
|
||||||
- unaligned cases. */
|
|
||||||
-# if ! ELF_MACHINE_NO_REL
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
|
|
||||||
- const ElfW(Sym) *sym, const struct r_found_version *version,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-# endif
|
|
||||||
-# if ! ELF_MACHINE_NO_RELA
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
|
|
||||||
- const ElfW(Sym) *sym, const struct r_found_version *version,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-# endif
|
|
||||||
-# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_lazy_rel (struct link_map *map,
|
|
||||||
- ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
|
|
||||||
-# else
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_lazy_rel (struct link_map *map,
|
|
||||||
- ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
|
|
||||||
-# endif
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
#include <dl-machine.h>
|
|
||||||
|
|
||||||
#ifndef VERSYMIDX
|
|
||||||
|
|
||||||
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
|
|
@ -1,67 +0,0 @@
|
|||||||
From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
|
|
||||||
Fixes
|
|
||||||
rtld.c: In function '_dl_start':
|
|
||||||
dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
|
|
||||||
dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
|
|
||||||
when compiling glibc-2.3.4 with gcc-4.0
|
|
||||||
|
|
||||||
But see also
|
|
||||||
http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
|
|
||||||
and
|
|
||||||
http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html
|
|
||||||
which seem to propose less radical fixes?
|
|
||||||
|
|
||||||
Aha. See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721
|
|
||||||
|
|
||||||
--- glibc-2.3.6.orig/elf/dynamic-link.h 2005-03-12 18:12:37.000000000 -0800
|
|
||||||
+++ glibc-2.3.6/elf/dynamic-link.h 2005-03-12 18:12:59.777820848 -0800
|
|
||||||
@@ -19,47 +19,6 @@
|
|
||||||
|
|
||||||
#include <elf.h>
|
|
||||||
#include <assert.h>
|
|
||||||
-
|
|
||||||
-#ifdef RESOLVE_MAP
|
|
||||||
-/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
|
|
||||||
- ElfW(Addr), because not all architectures can assume that the
|
|
||||||
- relocated address is properly aligned, whereas the compiler is
|
|
||||||
- entitled to assume that a pointer to a type is properly aligned for
|
|
||||||
- the type. Even if we cast the pointer back to some other type with
|
|
||||||
- less strict alignment requirements, the compiler might still
|
|
||||||
- remember that the pointer was originally more aligned, thereby
|
|
||||||
- optimizing away alignment tests or using word instructions for
|
|
||||||
- copying memory, breaking the very code written to handle the
|
|
||||||
- unaligned cases. */
|
|
||||||
-# if ! ELF_MACHINE_NO_REL
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
|
|
||||||
- const ElfW(Sym) *sym, const struct r_found_version *version,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-# endif
|
|
||||||
-# if ! ELF_MACHINE_NO_RELA
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
|
|
||||||
- const ElfW(Sym) *sym, const struct r_found_version *version,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-# endif
|
|
||||||
-# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_lazy_rel (struct link_map *map,
|
|
||||||
- ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
|
|
||||||
-# else
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_lazy_rel (struct link_map *map,
|
|
||||||
- ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
|
|
||||||
-# endif
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
#include <dl-machine.h>
|
|
||||||
|
|
||||||
#ifndef VERSYMIDX
|
|
||||||
|
|
||||||
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
|
|
@ -1,67 +0,0 @@
|
|||||||
From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
|
|
||||||
Fixes
|
|
||||||
rtld.c: In function '_dl_start':
|
|
||||||
dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
|
|
||||||
dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
|
|
||||||
when compiling glibc-2.3.4 with gcc-4.0
|
|
||||||
|
|
||||||
But see also
|
|
||||||
http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
|
|
||||||
and
|
|
||||||
http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html
|
|
||||||
which seem to propose less radical fixes?
|
|
||||||
|
|
||||||
Aha. See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721
|
|
||||||
|
|
||||||
--- glibc-2.3.6.orig/elf/dynamic-link.h 2005-03-12 18:12:37.000000000 -0800
|
|
||||||
+++ glibc-2.3.6/elf/dynamic-link.h 2005-03-12 18:12:59.777820848 -0800
|
|
||||||
@@ -19,47 +19,6 @@
|
|
||||||
|
|
||||||
#include <elf.h>
|
|
||||||
#include <assert.h>
|
|
||||||
-
|
|
||||||
-#ifdef RESOLVE_MAP
|
|
||||||
-/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
|
|
||||||
- ElfW(Addr), because not all architectures can assume that the
|
|
||||||
- relocated address is properly aligned, whereas the compiler is
|
|
||||||
- entitled to assume that a pointer to a type is properly aligned for
|
|
||||||
- the type. Even if we cast the pointer back to some other type with
|
|
||||||
- less strict alignment requirements, the compiler might still
|
|
||||||
- remember that the pointer was originally more aligned, thereby
|
|
||||||
- optimizing away alignment tests or using word instructions for
|
|
||||||
- copying memory, breaking the very code written to handle the
|
|
||||||
- unaligned cases. */
|
|
||||||
-# if ! ELF_MACHINE_NO_REL
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
|
|
||||||
- const ElfW(Sym) *sym, const struct r_found_version *version,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-# endif
|
|
||||||
-# if ! ELF_MACHINE_NO_RELA
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
|
|
||||||
- const ElfW(Sym) *sym, const struct r_found_version *version,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
|
|
||||||
- void *const reloc_addr);
|
|
||||||
-# endif
|
|
||||||
-# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_lazy_rel (struct link_map *map,
|
|
||||||
- ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
|
|
||||||
-# else
|
|
||||||
-auto inline void __attribute__((always_inline))
|
|
||||||
-elf_machine_lazy_rel (struct link_map *map,
|
|
||||||
- ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
|
|
||||||
-# endif
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
#include <dl-machine.h>
|
|
||||||
|
|
||||||
#ifndef VERSYMIDX
|
|
||||||
|
|
||||||
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
|
|
Loading…
Reference in New Issue
Block a user