about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-02-28 15:24:30 +0000
committerUlrich Drepper <drepper@redhat.com>2001-02-28 15:24:30 +0000
commit7b97934bf9a5b4b52a82ab6631d6255a5c93b0a1 (patch)
treefd6b31481201892f2e9307c46bbb930c99475bac
parent406191784ba76410b644aa117cbf222ac7035988 (diff)
downloadglibc-7b97934bf9a5b4b52a82ab6631d6255a5c93b0a1.tar.gz
glibc-7b97934bf9a5b4b52a82ab6631d6255a5c93b0a1.tar.xz
glibc-7b97934bf9a5b4b52a82ab6631d6255a5c93b0a1.zip
Update.
2001-02-28  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/alpha/dl-machine.h (elf_machine_rela): Don't handle
	relocations which are not in ld.so if RTLD_BOOTSTRAP is defined.

	* sysdeps/powerpc/dl-machine.c (__process_machine_rela): Fix typo.

	* elf/dl-misc.c (_dl_debug_vdprintf): Fix type visible on 64-bit
	machines.

	* sysdeps/unix/sysv/linux/powerpc/sysdep.h (C_TEXT): Define.
-rw-r--r--ChangeLog12
-rw-r--r--elf/dl-misc.c2
-rw-r--r--sysdeps/alpha/dl-machine.h10
-rw-r--r--sysdeps/powerpc/dl-machine.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sysdep.h5
5 files changed, 24 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index ccb55e5560..c6444fb1ac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2001-02-28  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/alpha/dl-machine.h (elf_machine_rela): Don't handle
+	relocations which are not in ld.so if RTLD_BOOTSTRAP is defined.
+
+	* sysdeps/powerpc/dl-machine.c (__process_machine_rela): Fix typo.
+
+	* elf/dl-misc.c (_dl_debug_vdprintf): Fix type visible on 64-bit
+	machines.
+
+	* sysdeps/unix/sysv/linux/powerpc/sysdep.h (C_TEXT): Define.
+
 2001-02-27  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/powerpc/elf/libc-start.c: Use new output functions and
diff --git a/elf/dl-misc.c b/elf/dl-misc.c
index 69b714f76c..4d8f85aafb 100644
--- a/elf/dl-misc.c
+++ b/elf/dl-misc.c
@@ -181,7 +181,7 @@ _dl_debug_vdprintf (int fd, int tag_p, const char *fmt, va_list arg)
 		   different size.  */
 #if LONG_MAX != INT_MAX
 		unsigned long int num = (long_mod
-					 ? va_arg (arg, unsigned long int);
+					 ? va_arg (arg, unsigned long int)
 					 : va_arg (arg, unsigned int));
 #else
 		unsigned long int num = va_arg (arg, unsigned int);
diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h
index 73c6cbde19..5a17ca230d 100644
--- a/sysdeps/alpha/dl-machine.h
+++ b/sysdeps/alpha/dl-machine.h
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  Alpha version.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@tamu.edu>.
 
@@ -500,8 +500,10 @@ elf_machine_rela (struct link_map *map,
 	  memcpy (reloc_addr_1, &reloc_addr_val, 8);
 	}
     }
+#ifndef RTLD_BOOTSTRAP
   else if (r_type == R_ALPHA_NONE)
     return;
+#endif
   else
     {
       Elf64_Addr loadbase, sym_value;
@@ -512,8 +514,9 @@ elf_machine_rela (struct link_map *map,
 
       if (r_type == R_ALPHA_GLOB_DAT)
 	*reloc_addr = sym_value;
-      else if (r_type == R_ALPHA_JMP_SLOT)
+      else if (r_type  == R_ALPHA_JMP_SLOT)
 	elf_machine_fixup_plt (map, 0, reloc, reloc_addr, sym_value);
+#ifndef RTLD_BOOTSTRAP
       else if (r_type == R_ALPHA_REFQUAD)
 	{
 	  void *reloc_addr_1 = reloc_addr;
@@ -522,7 +525,6 @@ elf_machine_rela (struct link_map *map,
 	  /* Load value without causing unaligned trap.  */
 	  memcpy (&reloc_addr_val, reloc_addr_1, 8);
 	  sym_value += reloc_addr_val;
-#ifndef RTLD_BOOTSTRAP
 	  if (map == &_dl_rtld_map)
 	    {
 	      /* Undo the relocation done here during bootstrapping.
@@ -536,10 +538,10 @@ elf_machine_rela (struct link_map *map,
 	      sym_value -= dlsymtab[ELF64_R_SYM(reloc->r_info)].st_value;
 	      sym_value -= reloc->r_addend;
 	    }
-#endif
 	  /* Store value without causing unaligned trap.  */
 	  memcpy (reloc_addr_1, &sym_value, 8);
 	}
+#endif
       else
 	_dl_reloc_bad_type (map, r_type, 0);
     }
diff --git a/sysdeps/powerpc/dl-machine.c b/sysdeps/powerpc/dl-machine.c
index 84bd8c2f93..a76f1f092c 100644
--- a/sysdeps/powerpc/dl-machine.c
+++ b/sysdeps/powerpc/dl-machine.c
@@ -469,7 +469,7 @@ __process_machine_rela (struct link_map *map,
 
 	  strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
 	  _dl_error_printf ("\
-%s: Symbol `%s' has different size in shared object, onsider re-linking\n"
+%s: Symbol `%s' has different size in shared object, onsider re-linking\n",
 			    _dl_argv[0] ?: "<program name unknown>",
 			    strtab + refsym->st_name);
 	}
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/sysdep.h
index dfd42b2885..54840dcfb4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysdep.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1992,1997,1998,1999,2000,2001 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
@@ -144,6 +144,9 @@
 #undef L
 #define L(x) .L##x
 
+/* Label in text section.  */
+#define C_TEXT(name) name
+
 #endif	/* __ASSEMBLER__ */
 
 #endif /* linux/powerpc/sysdep.h */