[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r9285 - in /fsf/glibc-2_11-branch/ports/sysdeps/hppa: dl-fptr.h elf/start.S



Author: eglibc
Date: Tue Nov 17 13:35:49 2009
New Revision: 9285

Log:
Import glibc-ports-2.11 for 2009-11-17

Modified:
    fsf/glibc-2_11-branch/ports/sysdeps/hppa/dl-fptr.h
    fsf/glibc-2_11-branch/ports/sysdeps/hppa/elf/start.S

Modified: fsf/glibc-2_11-branch/ports/sysdeps/hppa/dl-fptr.h
==============================================================================
--- fsf/glibc-2_11-branch/ports/sysdeps/hppa/dl-fptr.h (original)
+++ fsf/glibc-2_11-branch/ports/sysdeps/hppa/dl-fptr.h Tue Nov 17 13:35:49 2009
@@ -1,5 +1,5 @@
 /* Function descriptors.  HPPA version.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2009 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
@@ -22,14 +22,16 @@
 
 #include <sysdeps/generic/dl-fptr.h>
 
-/* There are currently 20 dynamic symbols in ld.so.
+/* There are currently 33 dynamic symbols in ld.so.
    ELF_MACHINE_BOOT_FPTR_TABLE_LEN needs to be at least that big.  */
-#define ELF_MACHINE_BOOT_FPTR_TABLE_LEN	200
+#define ELF_MACHINE_BOOT_FPTR_TABLE_LEN 64	
 
-#define ELF_MACHINE_LOAD_ADDRESS(var, symbol)		\
-  asm ("	addil LT%%" #symbol ", %%r19\n"		\
-       "	ldw RT%%" #symbol "(%%sr0,%%r1), %0\n"	\
-      : "=&r" (var));
-
+#define ELF_MACHINE_LOAD_ADDRESS(var, symbol) \
+  asm (								\
+"	b,l	1f,%0\n"					\
+"	depi	0,31,2,%0\n"					\
+"1:	addil	L'" #symbol " - ($PIC_pcrel$0 - 8),%0\n"	\
+"	ldo	R'" #symbol " - ($PIC_pcrel$0 - 12)(%%r1),%0\n"	\
+   : "=&r" (var) : : "r1");
 
 #endif /* !dl_hppa_fptr_h */

Modified: fsf/glibc-2_11-branch/ports/sysdeps/hppa/elf/start.S
==============================================================================
--- fsf/glibc-2_11-branch/ports/sysdeps/hppa/elf/start.S (original)
+++ fsf/glibc-2_11-branch/ports/sysdeps/hppa/elf/start.S Tue Nov 17 13:35:49 2009
@@ -1,5 +1,5 @@
 /* ELF startup code for HPPA.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2009 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
@@ -96,16 +96,16 @@
 
 #if SHARED
 	/* load main (1st argument) */
-	addil	LR'.Lpmain, %r19
-	ldw	RR'.Lpmain(%r1), %r26
+	addil	LT'.Lpmain, %r19
+	ldw	RT'.Lpmain(%r1), %r26
 	ldw	0(%r26),%r26
 	/* void (*init) (void) (4th argument) */
-	addil	LR'.Lp__libc_csu_init, %r19
-	ldw	RR'.Lp__libc_csu_init(%r1), %r23
+	addil	LT'.Lp__libc_csu_init, %r19
+	ldw	RT'.Lp__libc_csu_init(%r1), %r23
 	ldw	0(%r23), %r23
 	/* void (*fini) (void) (5th argument) */
-	addil	LR'.Lp__libc_csu_fini, %r19
-	ldw	RR'.Lp__libc_csu_fini(%r1), %r22
+	addil	LT'.Lp__libc_csu_fini, %r19
+	ldw	RT'.Lp__libc_csu_fini(%r1), %r22
 	ldw	0(%r22), %r22
 #else
 	/* load main (1st argument) */