r1728 - in glibc-package/branches/glibc-2.4/debian: . patches patches/hppa
Author: aurel32
Date: 2006-08-15 09:58:39 +0000 (Tue, 15 Aug 2006)
New Revision: 1728
Modified:
glibc-package/branches/glibc-2.4/debian/changelog
glibc-package/branches/glibc-2.4/debian/patches/hppa/cvs-pie-relocs.diff
glibc-package/branches/glibc-2.4/debian/patches/series
Log:
* Update hppa/cvs-pie-relocs.diff to reflect the new port add-on, and
to remove merged part.
Modified: glibc-package/branches/glibc-2.4/debian/changelog
===================================================================
--- glibc-package/branches/glibc-2.4/debian/changelog 2006-08-15 09:40:04 UTC (rev 1727)
+++ glibc-package/branches/glibc-2.4/debian/changelog 2006-08-15 09:58:39 UTC (rev 1728)
@@ -34,8 +34,7 @@
- Remove mips/local-librt.diff.
- debian/rules.d/tarball.mk: no longer run tar with -v.
- Add hppa/cvs-portshead.patch (update hppa code to ports HEAD)
- - Disable hppa/submitted-sysdeps.diff, hppa/cvs-pie-relocs.diff,
- hppa/cvs-no-ldbl-128.diff.
+ - Disable hppa/submitted-sysdeps.diff, hppa/cvs-no-ldbl-128.diff.
- Add arm/cvs-portshead.patch (update arm code to ports HEAD)
[ Denis Barbier ]
@@ -85,7 +84,8 @@
* Remove ia64/cvs-gcc41-atomic_h.diff (merged upstream).
* Remove hppa/cvs-linesep.diff (merged upstream).
* Update hppa/cvs-no-ldbl-128.diff to reflect the new port add-on.
- * Update hppa/cvs-pie-relocs.diff to reflect the new port add-on.
+ * Update hppa/cvs-pie-relocs.diff to reflect the new port add-on, and
+ to remove merged part.
* Remove hppa/local-gcc-4-profile.diff (not necessary anymore).
* Update hppa/local-inlining.diff to reflect the new port add-on.
* Update hppa/submitted-drop-utimes.diff.
Modified: glibc-package/branches/glibc-2.4/debian/patches/hppa/cvs-pie-relocs.diff
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/hppa/cvs-pie-relocs.diff 2006-08-15 09:40:04 UTC (rev 1727)
+++ glibc-package/branches/glibc-2.4/debian/patches/hppa/cvs-pie-relocs.diff 2006-08-15 09:58:39 UTC (rev 1728)
@@ -1,9 +1,6 @@
2005-06-10 Randolph Chung <tausq@debian.org>
* elf/elf.h (R_PARISC_PLABEL21L, R_PARISC_PLABEL14R): Define.
- * sysdeps/hppa/dl-machine.h (reassemble_21, reassemble_14): Define.
- (elf_machine_rela): Handle R_PARISC_DIR21L/14R and
- R_PARISC_PLABEL21L/14R relocations.
===================================================================
RCS file: /var/lib/cvs/glibc/elf/elf.h,v
@@ -22,99 +19,3 @@
#define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */
#define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */
-===================================================================
-RCS file: /var/lib/cvs/glibc/sysdeps/hppa/dl-machine.h,v
-retrieving revision 1.3
-retrieving revision 1.4
-diff -u -r1.3 -r1.4
---- ports/sysdeps/hppa/dl-machine.h 2005/06/09 04:27:13 1.3
-+++ ports/sysdeps/hppa/dl-machine.h 2005/06/10 23:41:20 1.4
-@@ -236,7 +236,8 @@
- }
- else
- {
-- if (_dl_name_match_p (GLRO(dl_profile), l))
-+ if (GLRO(dl_profile) != NULL
-+ && _dl_name_match_p (GLRO(dl_profile), l))
- {
- /* This is the object we are looking for. Say that
- we really want profiling and the timers are
-@@ -579,6 +580,18 @@
- /* These are only actually used where RESOLVE_MAP is defined, anyway. */
- #ifdef RESOLVE_MAP
-
-+
-+#define reassemble_21(as21) \
-+ ( (((as21) & 0x100000) >> 20) \
-+ | (((as21) & 0x0ffe00) >> 8) \
-+ | (((as21) & 0x000180) << 7) \
-+ | (((as21) & 0x00007c) << 14) \
-+ | (((as21) & 0x000003) << 12))
-+
-+#define reassemble_14(as14) \
-+ ( (((as14) & 0x1fff) << 1) \
-+ | (((as14) & 0x2000) >> 13))
-+
- auto void __attribute__((always_inline))
- elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
- const Elf32_Sym *sym, const struct r_found_version *version,
-@@ -635,6 +648,27 @@
- }
- break;
-
-+ case R_PARISC_DIR21L:
-+ {
-+ unsigned int insn = *(unsigned int *)reloc_addr;
-+ value = sym_map->l_addr + sym->st_value
-+ + ((reloc->r_addend + 0x1000) & -0x2000);
-+ value = value >> 11;
-+ insn = (insn &~ 0x1fffff) | reassemble_21 (value);
-+ *(unsigned int *)reloc_addr = insn;
-+ }
-+ return;
-+
-+ case R_PARISC_DIR14R:
-+ {
-+ unsigned int insn = *(unsigned int *)reloc_addr;
-+ value = ((sym_map->l_addr + sym->st_value) & 0x7ff)
-+ + (((reloc->r_addend & 0x1fff) ^ 0x1000) - 0x1000);
-+ insn = (insn &~ 0x3fff) | reassemble_14 (value);
-+ *(unsigned int *)reloc_addr = insn;
-+ }
-+ return;
-+
- case R_PARISC_PLABEL32:
- /* Easy rule: If there is a symbol and it is global, then we
- need to make a dynamic function descriptor. Otherwise we
-@@ -653,6 +687,31 @@
- value = (Elf32_Addr)((unsigned int)_dl_make_fptr (sym_map, sym, value) | 2);
- break;
-
-+ case R_PARISC_PLABEL21L:
-+ case R_PARISC_PLABEL14R:
-+ {
-+ unsigned int insn = *(unsigned int *)reloc_addr;
-+
-+ if (__builtin_expect (sym == NULL, 0))
-+ break;
-+
-+ value = (Elf32_Addr)((unsigned int)_dl_make_fptr (sym_map, sym, value) | 2);
-+
-+ if (r_type == R_PARISC_PLABEL21L)
-+ {
-+ value >>= 11;
-+ insn = (insn &~ 0x1fffff) | reassemble_21 (value);
-+ }
-+ else
-+ {
-+ value &= 0x7ff;
-+ insn = (insn &~ 0x3fff) | reassemble_14 (value);
-+ }
-+
-+ *(unsigned int *)reloc_addr = insn;
-+ }
-+ return;
-+
- case R_PARISC_IPLT:
- if (__builtin_expect (sym_map != NULL, 1))
- {
Modified: glibc-package/branches/glibc-2.4/debian/patches/series
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/series 2006-08-15 09:40:04 UTC (rev 1727)
+++ glibc-package/branches/glibc-2.4/debian/patches/series 2006-08-15 09:58:39 UTC (rev 1728)
@@ -63,7 +63,7 @@
#hppa/submitted-sysdeps.diff -p0
#hppa/submitted-fenv-align.diff -p0
#hppa/submitted-fpu.diff -p0
-#hppa/cvs-pie-relocs.diff -p0
+hppa/cvs-pie-relocs.diff -p0
#hppa/cvs-no-ldbl-128.diff -p0
hppa/local-inlining.diff -p0
Reply to: