r4288 - in glibc-package/branches/eglibc-2.11/debian: . patches patches/hppa
Author: aurel32
Date: 2010-05-26 09:43:39 +0000 (Wed, 26 May 2010)
New Revision: 4288
Added:
glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-dlfptr.diff
Removed:
glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-ELF_MACHINE_BEFORE_RTLD_RELOC.diff
glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-_dl_fptr_init.diff
Modified:
glibc-package/branches/eglibc-2.11/debian/changelog
glibc-package/branches/eglibc-2.11/debian/patches/series
Log:
Remove patches/hppa/local-ELF_MACHINE_BEFORE_RTLD_RELOC.diff
and patches/hppa/local-_dl_fptr_init.diff, replace it with
patches/hppa/local-dlfptr.diff
Modified: glibc-package/branches/eglibc-2.11/debian/changelog
===================================================================
--- glibc-package/branches/eglibc-2.11/debian/changelog 2010-05-25 15:18:03 UTC (rev 4287)
+++ glibc-package/branches/eglibc-2.11/debian/changelog 2010-05-26 09:43:39 UTC (rev 4288)
@@ -53,9 +53,7 @@
- Update testsuite-checking/expected-results-sparcv9b-linux-gnu-sparcv9b
* Add debian/patches/alpha/local-fcntl_h.diff.
- * Add debian/patches/hppa/local-ELF_MACHINE_BEFORE_RTLD_RELOC.diff from
- Carlos O'Donell.
- * Add debian/patches/hppa/local-_dl_fptr_init.diff from Carlos O'Donnell.
+ * Add debian/patches/hppa/local-dlfptr.diff from Carlos O'Donnell.
* Add debian/patches/localedata/locale-hsb_DE.diff
[ Aurelien Jarno ]
Deleted: glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-ELF_MACHINE_BEFORE_RTLD_RELOC.diff
===================================================================
--- glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-ELF_MACHINE_BEFORE_RTLD_RELOC.diff 2010-05-25 15:18:03 UTC (rev 4287)
+++ glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-ELF_MACHINE_BEFORE_RTLD_RELOC.diff 2010-05-26 09:43:39 UTC (rev 4288)
@@ -1,12 +0,0 @@
---- a/ports/sysdeps/hppa/dl-machine.h
-+++ b/ports/sysdeps/hppa/dl-machine.h
-@@ -64,7 +64,8 @@ __hppa_init_bootstrap_fdesc_table (struct link_map *map)
- }
-
- #define ELF_MACHINE_BEFORE_RTLD_RELOC(dynamic_info) \
-- __hppa_init_bootstrap_fdesc_table (&bootstrap_map);
-+ __hppa_init_bootstrap_fdesc_table (&bootstrap_map); \
-+ _dl_fptr_init();
-
- /* Return nonzero iff ELF header is compatible with the running host. */
- static inline int
Deleted: glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-_dl_fptr_init.diff
===================================================================
--- glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-_dl_fptr_init.diff 2010-05-25 15:18:03 UTC (rev 4287)
+++ glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-_dl_fptr_init.diff 2010-05-26 09:43:39 UTC (rev 4288)
@@ -1,53 +0,0 @@
-diff --git a/elf/dl-fptr.c b/elf/dl-fptr.c
-index e068124..036e9d6 100644
---- a/elf/dl-fptr.c
-+++ b/elf/dl-fptr.c
-@@ -1,5 +1,5 @@
- /* Manage function descriptors. Generic version.
-- Copyright (C) 1999-2004, 2006 Free Software Foundation, Inc.
-+ Copyright (C) 1999-2004, 2006, 2010 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
-@@ -56,7 +56,8 @@ static struct local
- }
- local =
- {
-- .root = &local.boot_table,
-+ /* Address of .boot_table is not known until runtime. */
-+ .root = 0,
- .npages = 2,
- .boot_table =
- {
-@@ -93,6 +94,17 @@ new_fdesc_table (struct local *l, size_t *size)
- return new_table;
- }
-
-+/* Must call _dl_fptr_init before using any other function. */
-+void
-+_dl_fptr_init (void)
-+{
-+ struct local *l;
-+
-+ ELF_MACHINE_LOAD_ADDRESS (l, local);
-+ /* Initialize root once. */
-+ if (__builtin_expect (l->root == 0, 0))
-+ l->root = &l->boot_table;
-+}
-
- static ElfW(Addr)
- make_fdesc (ElfW(Addr) ip, ElfW(Addr) gp)
-diff --git a/sysdeps/generic/dl-fptr.h b/sysdeps/generic/dl-fptr.h
-index d47fb7b..b957fbb 100644
---- a/sysdeps/generic/dl-fptr.h
-+++ b/sysdeps/generic/dl-fptr.h
-@@ -40,6 +40,9 @@ struct link_map;
-
- extern ElfW(Addr) _dl_boot_fptr_table [];
-
-+/* Must be called before any other function. */
-+extern void _dl_fptr_init (void);
-+
- extern ElfW(Addr) _dl_make_fptr (struct link_map *, const ElfW(Sym) *,
- ElfW(Addr));
-
Added: glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-dlfptr.diff
===================================================================
--- glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-dlfptr.diff (rev 0)
+++ glibc-package/branches/eglibc-2.11/debian/patches/hppa/local-dlfptr.diff 2010-05-26 09:43:39 UTC (rev 4288)
@@ -0,0 +1,70 @@
+diff --git a/elf/dl-fptr.c b/elf/dl-fptr.c
+index e068124..0853894 100644
+--- a/elf/dl-fptr.c
++++ b/elf/dl-fptr.c
+@@ -1,5 +1,5 @@
+ /* Manage function descriptors. Generic version.
+- Copyright (C) 1999-2004, 2006 Free Software Foundation, Inc.
++ Copyright (C) 1999-2004, 2006, 2010 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
+@@ -56,7 +56,12 @@ static struct local
+ }
+ local =
+ {
++#ifndef SHARED
+ .root = &local.boot_table,
++#else
++ /* Address of .boot_table is not known until runtime. */
++ .root = 0,
++#endif
+ .npages = 2,
+ .boot_table =
+ {
+@@ -93,6 +98,17 @@ new_fdesc_table (struct local *l, size_t *size)
+ return new_table;
+ }
+
++/* Must call _dl_fptr_init before using any other function. */
++void
++_dl_fptr_init (void)
++{
++ struct local *l;
++
++ ELF_MACHINE_LOAD_ADDRESS (l, local);
++ /* Initialize root once. */
++ if (__builtin_expect (l->root == 0, 0))
++ l->root = &l->boot_table;
++}
+
+ static ElfW(Addr)
+ make_fdesc (ElfW(Addr) ip, ElfW(Addr) gp)
+diff --git a/sysdeps/generic/dl-fptr.h b/sysdeps/generic/dl-fptr.h
+index d47fb7b..b957fbb 100644
+--- a/sysdeps/generic/dl-fptr.h
++++ b/sysdeps/generic/dl-fptr.h
+@@ -40,6 +40,9 @@ struct link_map;
+
+ extern ElfW(Addr) _dl_boot_fptr_table [];
+
++/* Must be called before any other function. */
++extern void _dl_fptr_init (void);
++
+ extern ElfW(Addr) _dl_make_fptr (struct link_map *, const ElfW(Sym) *,
+ ElfW(Addr));
+
+diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h
+index e462fd3..ae4b6c1 100644
+--- a/ports/sysdeps/hppa/dl-machine.h
++++ b/ports/sysdeps/hppa/dl-machine.h
+@@ -64,7 +64,8 @@ __hppa_init_bootstrap_fdesc_table (struct link_map *map)
+ }
+
+ #define ELF_MACHINE_BEFORE_RTLD_RELOC(dynamic_info) \
+- __hppa_init_bootstrap_fdesc_table (&bootstrap_map);
++ __hppa_init_bootstrap_fdesc_table (&bootstrap_map); \
++ _dl_fptr_init();
+
+ /* Return nonzero iff ELF header is compatible with the running host. */
+ static inline int
Modified: glibc-package/branches/eglibc-2.11/debian/patches/series
===================================================================
--- glibc-package/branches/eglibc-2.11/debian/patches/series 2010-05-25 15:18:03 UTC (rev 4287)
+++ glibc-package/branches/eglibc-2.11/debian/patches/series 2010-05-26 09:43:39 UTC (rev 4288)
@@ -77,8 +77,7 @@
hppa/submitted-nptl-carlos.diff
hppa/cvs-nptl-compat.diff
hppa/local-stack-grows-up.diff
-hppa/local-_dl_fptr_init.diff
-hppa/local-ELF_MACHINE_BEFORE_RTLD_RELOC.diff
+hppa/local-dlfptr.diff
hppa/local-longjmp-chk.diff
hppa/local-lowlevellock.diff
Reply to: