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

[commits] r15495 - in /fsf/trunk/ports: ./ sysdeps/alpha/ sysdeps/am33/ sysdeps/arm/ sysdeps/cris/ sysdeps/hppa/ sysdeps/m68k/ sysdeps...



Author: eglibc
Date: Mon Oct 10 00:02:18 2011
New Revision: 15495

Log:
Import glibc-ports-mainline for 2011-10-10

Removed:
    fsf/trunk/ports/sysdeps/m68k/m680x0/s_isinfl.c
    fsf/trunk/ports/sysdeps/m68k/m680x0/s_isnanl.c
Modified:
    fsf/trunk/ports/ChangeLog.alpha
    fsf/trunk/ports/ChangeLog.am33
    fsf/trunk/ports/ChangeLog.arm
    fsf/trunk/ports/ChangeLog.cris
    fsf/trunk/ports/ChangeLog.hppa
    fsf/trunk/ports/ChangeLog.m68k
    fsf/trunk/ports/ChangeLog.mips
    fsf/trunk/ports/sysdeps/alpha/dl-machine.h
    fsf/trunk/ports/sysdeps/am33/dl-machine.h
    fsf/trunk/ports/sysdeps/arm/dl-machine.h
    fsf/trunk/ports/sysdeps/cris/dl-machine.h
    fsf/trunk/ports/sysdeps/hppa/dl-machine.h
    fsf/trunk/ports/sysdeps/m68k/dl-machine.h
    fsf/trunk/ports/sysdeps/mips/dl-machine.h

Modified: fsf/trunk/ports/ChangeLog.alpha
==============================================================================
--- fsf/trunk/ports/ChangeLog.alpha (original)
+++ fsf/trunk/ports/ChangeLog.alpha Mon Oct 10 00:02:18 2011
@@ -1,3 +1,8 @@
+2011-10-05  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/alpha/dl-machine.h (elf_machine_rela)
+	(elf_machine_lazy_rel): Add parameter skip_ifunc.
+
 2011-03-28  Aurelien Jarno  <aurelien@xxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S(____longjmp_chk):
@@ -48,7 +53,7 @@
 	Define without 64-bit aliases.
 
 2010-05-03  Aurelien Jarno  <aurelien@xxxxxxxxxxx>
- 
+
 	* sysdeps/alpha/memchr.S: Use prefetch load.
 	* sysdeps/alpha/alphaev6/memchr.S: Likewise.
 

Modified: fsf/trunk/ports/ChangeLog.am33
==============================================================================
--- fsf/trunk/ports/ChangeLog.am33 (original)
+++ fsf/trunk/ports/ChangeLog.am33 Mon Oct 10 00:02:18 2011
@@ -1,3 +1,8 @@
+2011-10-05  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/am33/dl-machine.h (elf_machine_rela)
+	(elf_machine_lazy_rel): Add parameter skip_ifunc.
+
 2007-10-22  Daniel Jacobowitz  <dan@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/am33/bits/fcntl.h (F_DUPFD_CLOEXEC): Define.

Modified: fsf/trunk/ports/ChangeLog.arm
==============================================================================
--- fsf/trunk/ports/ChangeLog.arm (original)
+++ fsf/trunk/ports/ChangeLog.arm Mon Oct 10 00:02:18 2011
@@ -1,3 +1,9 @@
+2011-10-05  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/arm/dl-machine.h (elf_machine_rel, elf_machine_rela)
+	(elf_machine_lazy_rel): Add parameter skip_ifunc, don't call ifunc
+	function if non-zero.
+
 2011-09-13  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/arm/elf/configure.in: Always test for TLS support and
@@ -370,7 +376,7 @@
 	file.
 
 2009-10-22  Andrew Stubbs  <ams@xxxxxxxxxxxxxxxx>
-            Julian Brown  <julian@xxxxxxxxxxxxxxxx>
+	    Julian Brown  <julian@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/arm/eabi/setjmp.S (__sigsetjmp): Replace deprecated
 	instruction fstmiax with vstmia.
@@ -415,9 +421,9 @@
 	(setup_aeabi_stdio): New function.  Add it to .preinit_array.
 
 2009-06-24  Maxim Kuvyrkov  <maxim@xxxxxxxxxxxxxxxx>
-            Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
-            Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
-            Kazu Hirata  <kazu@xxxxxxxxxxxxxxxx>
+	    Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+	    Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+	    Kazu Hirata  <kazu@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/arm/eabi/backtrace.c: New.
 	* sysdeps/arm/eabi/Makefile (CFLAGS-backtrace.c): Add
@@ -478,17 +484,17 @@
 
 2009-02-13  Khem Raj  <raj.khem@xxxxxxxxx>
 
-	* sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c 
+	* sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
 	(libgcc_s_handle): New variable.
 	(pthread_cancel_init): Depend in libgcc_s_handle for decision to
 	load DSO.  Assign last.
 	(__unwind_freeres): New function.
 
-	* sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c: 
+	* sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c:
 	Likewise.
 
 2009-02-05  Paul Brook  <paul@xxxxxxxxxxxxxxxx>
-            Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+	    Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/arm/dl-machine.h (elf_machine_dynamic): Ditto.
 	(elf_machine_load_address): Clear T bit of PLT entry contents.
@@ -894,7 +900,7 @@
 
 2006-06-08  Mark Shinwell  <shinwell@xxxxxxxxxxxxxxxx>
 
-        * sysdeps/arm/nptl/pthreaddef.h (CURRENT_STACK_FRAME): Add -12.
+	* sysdeps/arm/nptl/pthreaddef.h (CURRENT_STACK_FRAME): Add -12.
 
 2006-06-08  Daniel Jacobowitz  <dan@xxxxxxxxxxxxxxxx>
 

Modified: fsf/trunk/ports/ChangeLog.cris
==============================================================================
--- fsf/trunk/ports/ChangeLog.cris (original)
+++ fsf/trunk/ports/ChangeLog.cris Mon Oct 10 00:02:18 2011
@@ -1,3 +1,8 @@
+2011-10-05  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/cris/dl-machine.h (elf_machine_rela)
+	(elf_machine_lazy_rel): Add parameter skip_ifunc.
+
 2007-10-22  Daniel Jacobowitz  <dan@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/cris/bits/fcntl.h (F_DUPFD_CLOEXEC): Define.

Modified: fsf/trunk/ports/ChangeLog.hppa
==============================================================================
--- fsf/trunk/ports/ChangeLog.hppa (original)
+++ fsf/trunk/ports/ChangeLog.hppa Mon Oct 10 00:02:18 2011
@@ -1,7 +1,12 @@
+2011-10-05  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/hppa/dl-machine.h (elf_machine_rela)
+	(elf_machine_lazy_rel): Add parameter skip_ifunc.
+
 2010-06-24  Carlos O'Donell  <carlos@xxxxxxxxxxxxxxxx>
 
-	* sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S: Only create stack 
-	frame around call to SYSCALL_ERROR_HANDLER. Do not restore %rp 
+	* sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S: Only create stack
+	frame around call to SYSCALL_ERROR_HANDLER. Do not restore %rp
 	from the stack frame on successfull return.
 
 2010-06-23  Carlos O'Donell  <carlos@xxxxxxxxxxxxxxxx>
@@ -10,12 +15,12 @@
 	Document that this function is a non-standard calling ABI.
 	Document register usage.
 	(__getcontext): Use normal %sp without adjustment. Use named
-	resgister %sp. 
+	resgister %sp.
 	* sysdeps/unix/sysv/linux/hppa/makecontext.c: Remove FRAME_SIZE.
 	Define FRAME_SIZE_UL, FRAME_SIZE_BYTES, ARGS.
-	(__makecontext): Create and setup a stack frame. 
+	(__makecontext): Create and setup a stack frame.
 	* sysdeps/unix/sysv/linux/hppa/setcontext.S (__setcontext):
-	Use named register %sp. Do not use oSS_SP. 
+	Use named register %sp. Do not use oSS_SP.
 
 2010-06-07  Andreas Schwab  <schwab@xxxxxxxxxx>
 

Modified: fsf/trunk/ports/ChangeLog.m68k
==============================================================================
--- fsf/trunk/ports/ChangeLog.m68k (original)
+++ fsf/trunk/ports/ChangeLog.m68k Mon Oct 10 00:02:18 2011
@@ -1,3 +1,13 @@
+2011-10-09  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* sysdeps/m68k/m680x0/s_isinfl.c: Remove.
+	* sysdeps/m68k/m680x0/s_isnanl.c: Remove.
+
+2011-10-05  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/m68k/dl-machine.h (elf_machine_rela)
+	(elf_machine_lazy_rel): Add parameter skip_ifunc.
+
 2011-09-11  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
 
 	* sysdeps/m68k/nptl/tls.h: Don't define USE_TLS.

Modified: fsf/trunk/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/ports/ChangeLog.mips (original)
+++ fsf/trunk/ports/ChangeLog.mips Mon Oct 10 00:02:18 2011
@@ -1,3 +1,8 @@
+2011-10-05  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/mips/dl-machine.h (elf_machine_rel, elf_machine_rela)
+	(elf_machine_lazy_rel): Add parameter skip_ifunc.
+
 2011-09-13  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/mips/bits/socket.h (__cmsg_nxthdr): Cast
@@ -389,7 +394,7 @@
 	Update comment.
 	* sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h: New file.
 	* sysdeps/unix/sysv/linux/mips/ucontext_i.sym: New file.
-	* sysdeps/unix/sysv/linux/mips/Makefile (gen-as-const-headers): 
+	* sysdeps/unix/sysv/linux/mips/Makefile (gen-as-const-headers):
 	Add ucontext_i.sym.
 
 2009-04-18  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
@@ -594,7 +599,7 @@
 
 2008-04-02  Aurelien Jarno  <aurelien@xxxxxxxxxxx>
 
-	* sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list: Add 
+	* sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list: Add
 	truncate and ftruncate systems calls.
 	* sysdeps/unix/sysv/linux/mips/mips64/n32/ftruncate64.c: Make an
 	empty file.
@@ -980,7 +985,7 @@
 	(lll_robust_mutex_dead, lll_robust_mutex_trylock, lll_robust_mutex_lock,
 	lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
 	lll_robust_mutex_unlock): New macros.
-	(__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.	
+	(__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
 	* sysdeps/unix/sysv/linux/mips/nptl/pt-vfork.S: Use correct path to
 	vfork.S.
 	* sysdeps/unix/sysv/linux/mips/nptl/vfork.S: Likewise.

Modified: fsf/trunk/ports/sysdeps/alpha/dl-machine.h
==============================================================================
--- fsf/trunk/ports/sysdeps/alpha/dl-machine.h (original)
+++ fsf/trunk/ports/sysdeps/alpha/dl-machine.h Mon Oct 10 00:02:18 2011
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  Alpha version.
-   Copyright (C) 1996-2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1996-2005, 2006, 2011 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@xxxxxxxx>.
 
@@ -371,7 +371,8 @@
 		  const Elf64_Rela *reloc,
 		  const Elf64_Sym *sym,
 		  const struct r_found_version *version,
-		  void *const reloc_addr_arg)
+		  void *const reloc_addr_arg,
+		  int skip_ifunc)
 {
   Elf64_Addr *const reloc_addr = reloc_addr_arg;
   unsigned long int const r_type = ELF64_R_TYPE (reloc->r_info);
@@ -514,7 +515,8 @@
 auto inline void
 __attribute__ ((always_inline))
 elf_machine_lazy_rel (struct link_map *map,
-		      Elf64_Addr l_addr, const Elf64_Rela *reloc)
+		      Elf64_Addr l_addr, const Elf64_Rela *reloc,
+		      int skip_ifunc)
 {
   Elf64_Addr * const reloc_addr = (void *)(l_addr + reloc->r_offset);
   unsigned long int const r_type = ELF64_R_TYPE (reloc->r_info);

Modified: fsf/trunk/ports/sysdeps/am33/dl-machine.h
==============================================================================
--- fsf/trunk/ports/sysdeps/am33/dl-machine.h (original)
+++ fsf/trunk/ports/sysdeps/am33/dl-machine.h Mon Oct 10 00:02:18 2011
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  AM33 version.
-   Copyright (C) 1995,96,97,98,99,2000,2001, 2004
+   Copyright (C) 1995,96,97,98,99,2000,2001, 2004, 2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -296,7 +296,7 @@
 static inline void
 elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
 		  const Elf32_Sym *sym, const struct r_found_version *version,
-		  void *const reloc_addr_arg)
+		  void *const reloc_addr_arg, int skip_ifunc)
 {
   const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
   Elf32_Addr value, *reloc_addr;
@@ -457,7 +457,8 @@
 
 static inline void
 elf_machine_lazy_rel (struct link_map *map,
-		      Elf32_Addr l_addr, const Elf32_Rela *reloc)
+		      Elf32_Addr l_addr, const Elf32_Rela *reloc,
+		      int skip_ifunc)
 {
   unsigned long int const r_type = ELF32_R_TYPE (reloc->r_info);
 

Modified: fsf/trunk/ports/sysdeps/arm/dl-machine.h
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/dl-machine.h (original)
+++ fsf/trunk/ports/sysdeps/arm/dl-machine.h Mon Oct 10 00:02:18 2011
@@ -335,7 +335,7 @@
 __attribute__ ((always_inline))
 elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
 		 const Elf32_Sym *sym, const struct r_found_version *version,
-		 void *const reloc_addr_arg)
+		 void *const reloc_addr_arg, int skip_ifunc)
 {
   Elf32_Addr *const reloc_addr = reloc_addr_arg;
   const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
@@ -369,9 +369,9 @@
       Elf32_Addr value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value;
 
       if (sym != NULL
-	  && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC,
-			       0)
-	  && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1))
+	  && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)
+	  && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)
+	  && __builtin_expect (!skip_ifunc, 1))
 	value = ((Elf32_Addr (*) (void)) value) ();
 
       switch (r_type)
@@ -430,7 +430,7 @@
 	  }
 	case R_ARM_TLS_DESC:
 	  {
-            struct tlsdesc volatile *td =
+	    struct tlsdesc volatile *td =
 	      (struct tlsdesc volatile *)reloc_addr;
 
 # ifndef RTLD_BOOTSTRAP
@@ -454,10 +454,10 @@
 		else
 #  endif
 # endif
-	        {
+		{
 		  td->argument.value = value + sym_map->l_tls_offset;
 		  td->entry = _dl_tlsdesc_return;
-	        }
+		}
 	      }
 	    }
 	    break;
@@ -525,7 +525,7 @@
 __attribute__ ((always_inline))
 elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
 		  const Elf32_Sym *sym, const struct r_found_version *version,
-		  void *const reloc_addr_arg)
+		  void *const reloc_addr_arg, int skip_ifunc)
 {
   Elf32_Addr *const reloc_addr = reloc_addr_arg;
   const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
@@ -543,9 +543,9 @@
       Elf32_Addr value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value;
 
       if (sym != NULL
-	  && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC,
-			       0)
-	  && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1))
+	  && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)
+	  && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)
+	  && __builtin_expect (!skip_ifunc, 1))
 	value = ((Elf32_Addr (*) (void)) value) ();
 
       switch (r_type)
@@ -656,7 +656,8 @@
 auto inline void
 __attribute__ ((always_inline))
 elf_machine_lazy_rel (struct link_map *map,
-		      Elf32_Addr l_addr, const Elf32_Rel *reloc)
+		      Elf32_Addr l_addr, const Elf32_Rel *reloc,
+		      int skip_ifunc)
 {
   Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
   const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
@@ -674,8 +675,8 @@
 	(struct tlsdesc volatile *)reloc_addr;
 
       /* The linker must have given us the parameter we need in the
-         first GOT entry, and left the second one empty. We fill the
-         last with the resolver address */
+	 first GOT entry, and left the second one empty. We fill the
+	 last with the resolver address */
       assert (td->entry == 0);
       td->entry = (void*)(D_PTR (map, l_info[ADDRIDX (DT_TLSDESC_PLT)])
 			  + map->l_addr);

Modified: fsf/trunk/ports/sysdeps/cris/dl-machine.h
==============================================================================
--- fsf/trunk/ports/sysdeps/cris/dl-machine.h (original)
+++ fsf/trunk/ports/sysdeps/cris/dl-machine.h Mon Oct 10 00:02:18 2011
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  CRIS version.
-   Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1996-2001, 2002, 2003, 2011 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
@@ -285,7 +285,7 @@
 static inline void
 elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
 		  const Elf32_Sym *sym, const struct r_found_version *version,
-		  void *const reloc_addr_arg)
+		  void *const reloc_addr_arg, int skip_ifunc)
 {
   Elf32_Addr *const reloc_addr = reloc_addr_arg;
   const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
@@ -378,7 +378,8 @@
 
 static inline void
 elf_machine_lazy_rel (struct link_map *map,
-		      Elf32_Addr l_addr, const Elf32_Rela *reloc)
+		      Elf32_Addr l_addr, const Elf32_Rela *reloc,
+		      int skip_ifunc)
 {
   Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
   const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);

Modified: fsf/trunk/ports/sysdeps/hppa/dl-machine.h
==============================================================================
--- fsf/trunk/ports/sysdeps/hppa/dl-machine.h (original)
+++ fsf/trunk/ports/sysdeps/hppa/dl-machine.h Mon Oct 10 00:02:18 2011
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  PA-RISC version.
-   Copyright (C) 1995-1997,1999-2003
+   Copyright (C) 1995-1997,1999-2003,2011
 	Free Software Foundation, Inc.
    Contributed by David Huggins-Daines <dhd@xxxxxxxxxx>
    This file is part of the GNU C Library.
@@ -33,19 +33,19 @@
 #include <abort-instr.h>
 #include <tls.h>
 
-/* These two definitions must match the definition of the stub in 
+/* These two definitions must match the definition of the stub in
    bfd/elf32-hppa.c (see plt_stub[]).
-   
+
    a. Define the size of the *entire* stub we place at the end of the PLT
    table (right up against the GOT).
-   
+
    b. Define the number of bytes back from the GOT to the entry point of
    the PLT stub. You see the PLT stub must be entered in the middle
-   so it can depwi to find it's own address (long jump stub) 
-   
+   so it can depwi to find it's own address (long jump stub)
+
    c. Define the size of a single PLT entry so we can jump over the
    last entry to get the stub address */
-	
+
 #define SIZEOF_PLT_STUB (7*4)
 #define GOT_FROM_PLT_STUB (4*4)
 #define PLT_ENTRY_SIZE (2*4)
@@ -110,8 +110,8 @@
   return dynamic - elf_machine_dynamic ();
 }
 
-/* Fixup a PLT entry to bounce directly to the function at VALUE. */ 
-static inline struct fdesc __attribute__ ((always_inline)) 
+/* Fixup a PLT entry to bounce directly to the function at VALUE. */
+static inline struct fdesc __attribute__ ((always_inline))
 elf_machine_fixup_plt (struct link_map *map, lookup_t t,
 		       const Elf32_Rela *reloc,
 		       Elf32_Addr *reloc_addr, struct fdesc value)
@@ -127,7 +127,7 @@
 }
 
 /* Return the final value of a plt relocation.  */
-static inline struct fdesc 
+static inline struct fdesc
 elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
 		       struct fdesc value)
 {
@@ -149,106 +149,106 @@
     unsigned char c[8];
     Elf32_Addr i[2];
   } sig = {{0x00,0xc0,0xff,0xee, 0xde,0xad,0xbe,0xef}};
-		
+
   /* If we don't have a PLT we can just skip all this... */
   if (__builtin_expect (l->l_info[DT_JMPREL] == NULL,0))
     return lazy;
-  
-  /* All paths use these values */ 
+
+  /* All paths use these values */
   l_addr = l->l_addr;
   jmprel = D_PTR(l, l_info[DT_JMPREL]);
   end_jmprel = jmprel + l->l_info[DT_PLTRELSZ]->d_un.d_val;
-  
+
   extern void _dl_runtime_resolve (void);
   extern void _dl_runtime_profile (void);
- 
+
   /* Linking lazily */
   if (lazy)
     {
       /* FIXME: Search for the got, but backwards through the relocs, technically we should
-         find it on the first try. However, assuming the relocs got out of order the 
-         routine is made a bit more robust by searching them all in case of failure. */
+	 find it on the first try. However, assuming the relocs got out of order the
+	 routine is made a bit more robust by searching them all in case of failure. */
       for (iplt = (end_jmprel - sizeof(Elf32_Rela)); iplt >= jmprel; iplt -= sizeof (Elf32_Rela))
-        {
-	      
+	{
+
 	  reloc = (const Elf32_Rela *) iplt;
-          r_type = ELF32_R_TYPE (reloc->r_info);
-          r_sym = ELF32_R_SYM (reloc->r_info);
-
-          got = (Elf32_Addr *) (reloc->r_offset + l_addr + PLT_ENTRY_SIZE + SIZEOF_PLT_STUB);
-
-          /* If we aren't an IPLT, and we aren't NONE then it's a bad reloc */
-          if (__builtin_expect (r_type != R_PARISC_IPLT, 0))
+	  r_type = ELF32_R_TYPE (reloc->r_info);
+	  r_sym = ELF32_R_SYM (reloc->r_info);
+
+	  got = (Elf32_Addr *) (reloc->r_offset + l_addr + PLT_ENTRY_SIZE + SIZEOF_PLT_STUB);
+
+	  /* If we aren't an IPLT, and we aren't NONE then it's a bad reloc */
+	  if (__builtin_expect (r_type != R_PARISC_IPLT, 0))
 	    {
 	      if (__builtin_expect (r_type != R_PARISC_NONE, 0))
-	        _dl_reloc_bad_type (l, r_type, 1);
+		_dl_reloc_bad_type (l, r_type, 1);
 	      continue;
 	    }
-	
-          /* Check for the plt_stub that binutils placed here for us 
-             to use with _dl_runtime_resolve  */
-          if (got[-2] != sig.i[0] || got[-1] != sig.i[1])
-            {
-              got = NULL; /* Not the stub... keep looking */
-            } 
-          else 
+
+	  /* Check for the plt_stub that binutils placed here for us
+	     to use with _dl_runtime_resolve  */
+	  if (got[-2] != sig.i[0] || got[-1] != sig.i[1])
 	    {
-              /* Found the GOT! */       	
-              register Elf32_Addr ltp __asm__ ("%r19");
-              
-              /* Identify this shared object. Second entry in the got. */
-              got[1] = (Elf32_Addr) l;
-              
-              /* This function will be called to perform the relocation. */
-              if (__builtin_expect (!profile, 1))
-                {
-                  /* If a static application called us, then _dl_runtime_resolve is not
+	      got = NULL; /* Not the stub... keep looking */
+	    }
+	  else
+	    {
+	      /* Found the GOT! */
+	      register Elf32_Addr ltp __asm__ ("%r19");
+
+	      /* Identify this shared object. Second entry in the got. */
+	      got[1] = (Elf32_Addr) l;
+
+	      /* This function will be called to perform the relocation. */
+	      if (__builtin_expect (!profile, 1))
+		{
+		  /* If a static application called us, then _dl_runtime_resolve is not
 		     a function descriptor, but the *real* address of the function... */
 		  if((unsigned long) &_dl_runtime_resolve & 3)
 		    {
-                      got[-2] = (Elf32_Addr) ((struct fdesc *) 
-                                  ((unsigned long) &_dl_runtime_resolve & ~3))->ip;
+		      got[-2] = (Elf32_Addr) ((struct fdesc *)
+				  ((unsigned long) &_dl_runtime_resolve & ~3))->ip;
 		    }
 		  else
 		    {
 		      /* Static executable! */
-                      got[-2] = (Elf32_Addr) &_dl_runtime_resolve;
+		      got[-2] = (Elf32_Addr) &_dl_runtime_resolve;
 		    }
-                }
-              else
-	        {
-	          if (GLRO(dl_profile) != NULL
+		}
+	      else
+		{
+		  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
-		         started.  */
-                      GL(dl_profile_map) = l;
-                    }
+			 we really want profiling and the timers are
+			 started.  */
+		      GL(dl_profile_map) = l;
+		    }
 
 		  if((unsigned long) &_dl_runtime_profile & 3)
 		    {
-                      got[-2] = (Elf32_Addr) ((struct fdesc *)
-                                  ((unsigned long) &_dl_runtime_profile & ~3))->ip;
+		      got[-2] = (Elf32_Addr) ((struct fdesc *)
+				  ((unsigned long) &_dl_runtime_profile & ~3))->ip;
 		    }
 		  else
 		    {
 		      /* Static executable */
-                      got[-2] = (Elf32_Addr) &_dl_runtime_profile;
+		      got[-2] = (Elf32_Addr) &_dl_runtime_profile;
 		    }
-                }
-              /* Plunk in the gp of this function descriptor so we 
-	         can make the call to _dl_runtime_xxxxxx */
-              got[-1] = ltp;
-              break;
-              /* Done looking for the GOT, and stub is setup */
-            } /* else we found the GOT */
-        } /* for, walk the relocs backwards */
-
-      if(!got) 
-        return 0; /* No lazy linking for you! */
-  
-      /* Process all the relocs, now that we know the GOT... */    
+		}
+	      /* Plunk in the gp of this function descriptor so we
+		 can make the call to _dl_runtime_xxxxxx */
+	      got[-1] = ltp;
+	      break;
+	      /* Done looking for the GOT, and stub is setup */
+	    } /* else we found the GOT */
+	} /* for, walk the relocs backwards */
+
+      if(!got)
+	return 0; /* No lazy linking for you! */
+
+      /* Process all the relocs, now that we know the GOT... */
       for (iplt = jmprel; iplt < end_jmprel; iplt += sizeof (Elf32_Rela))
 	{
 	  reloc = (const Elf32_Rela *) iplt;
@@ -276,25 +276,25 @@
 		  fptr->gp = D_PTR (l, l_info[DT_PLTGOT]);
 		}
 	    } /* r_type == R_PARISC_IPLT */
-	} /* for all the relocations */ 
+	} /* for all the relocations */
     } /* if lazy */
   else
     {
       for (iplt = jmprel; iplt < end_jmprel; iplt += sizeof (Elf32_Rela))
-        {
-          reloc = (const Elf32_Rela *) iplt;
-          r_type = ELF32_R_TYPE (reloc->r_info);
-          r_sym = ELF32_R_SYM (reloc->r_info);
-
-          if (__builtin_expect ((r_type == R_PARISC_IPLT) && (r_sym == 0), 1))
-            {
-              fptr = (struct fdesc *) (reloc->r_offset + l_addr);
-              /* Relocate this *ABS* entry, set only the gp, the rest is set later
-                 when elf_machine_rela_relative is called (WITHOUT the linkmap)  */
-              fptr->gp = D_PTR (l, l_info[DT_PLTGOT]);
-            } /* r_type == R_PARISC_IPLT */
-        } /* for all the relocations */ 
-    }	  
+	{
+	  reloc = (const Elf32_Rela *) iplt;
+	  r_type = ELF32_R_TYPE (reloc->r_info);
+	  r_sym = ELF32_R_SYM (reloc->r_info);
+
+	  if (__builtin_expect ((r_type == R_PARISC_IPLT) && (r_sym == 0), 1))
+	    {
+	      fptr = (struct fdesc *) (reloc->r_offset + l_addr);
+	      /* Relocate this *ABS* entry, set only the gp, the rest is set later
+		 when elf_machine_rela_relative is called (WITHOUT the linkmap)  */
+	      fptr->gp = D_PTR (l, l_info[DT_PLTGOT]);
+	    } /* r_type == R_PARISC_IPLT */
+	} /* for all the relocations */
+    }
   return lazy;
 }
 
@@ -441,7 +441,7 @@
 "	ldw	-44(%sp),%r24\n"					\
 									\
 	/* _dl_fini is a local function in the loader, so we construct	\
-           a false OPD here and pass this to the application.  */	\
+	   a false OPD here and pass this to the application.  */	\
 	/* FIXME: Should be able to use P%, and LR RR to have the	\
 	   the linker construct a proper OPD.  */			\
 "	.section .data\n"						\
@@ -462,7 +462,7 @@
 "	depi	2,31,2,%r23\n"	/* delay slot */			\
 );
 
-/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or 
+/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
    a TLS variable, so references should not be allowed to define the value.
    ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
    of the main executable's symbols, as for a COPY reloc.  */
@@ -505,7 +505,7 @@
 	/* Avoid an empty string which would disturb us.  */
 		GLRO(dl_platform) = NULL;
 }
-	
+
 #endif /* !dl_machine_h */
 
 /* These are only actually used where RESOLVE_MAP is defined, anyway. */
@@ -523,11 +523,12 @@
    | (((as14) & 0x2000) >> 13))
 
 auto void __attribute__((always_inline))
-elf_machine_rela (struct link_map *map, 
+elf_machine_rela (struct link_map *map,
     		  const Elf32_Rela *reloc,
-		  const Elf32_Sym *sym, 
+		  const Elf32_Sym *sym,
 		  const struct r_found_version *version,
-		  void *const reloc_addr_arg)
+		  void *const reloc_addr_arg,
+		  int skip_ifunc)
 {
   Elf32_Addr *const reloc_addr = reloc_addr_arg;
   const Elf32_Sym *const refsym = sym;
@@ -557,7 +558,7 @@
 # else
   sym_map = RESOLVE_MAP (&sym, version, r_type);
 # endif
-  
+
   if (sym_map)
     {
       value = sym ? sym_map->l_addr + sym->st_value : 0;
@@ -584,7 +585,7 @@
     case R_PARISC_DIR21L:
       {
 	unsigned int insn = *(unsigned int *)reloc_addr;
-        value = sym_map->l_addr + sym->st_value 
+	value = sym_map->l_addr + sym->st_value
 		+ ((reloc->r_addend + 0x1000) & -0x2000);
 	value = value >> 11;
 	insn = (insn &~ 0x1fffff) | reassemble_21 (value);
@@ -595,7 +596,7 @@
     case R_PARISC_DIR14R:
       {
 	unsigned int insn = *(unsigned int *)reloc_addr;
-	value = ((sym_map->l_addr + sym->st_value) & 0x7ff) 
+	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;
@@ -604,17 +605,17 @@
 
     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
-         have the address of a PLT slot for a local symbol which we
-         know to be unique. */
+	 need to make a dynamic function descriptor.  Otherwise we
+	 have the address of a PLT slot for a local symbol which we
+	 know to be unique. */
       if (sym == NULL
 	  || sym_map == NULL
 	  || ELF32_ST_BIND (sym->st_info) == STB_LOCAL)
-        {
+	{
 	  break;
-        }
+	}
       /* Set bit 30 to indicate to $$dyncall that this is a PLABEL.
-         We have to do this outside of the generic function descriptor
+	 We have to do this outside of the generic function descriptor
 	 code, since it doesn't know about our requirement for setting
 	 protection bits */
       value = (Elf32_Addr)((unsigned int)_dl_make_fptr (sym_map, sym, value) | 2);
@@ -625,17 +626,17 @@
       {
 	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)
+	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
+	else
 	  {
 	    value &= 0x7ff;
 	    insn = (insn &~ 0x3fff) | reassemble_14 (value);
@@ -647,16 +648,16 @@
 
     case R_PARISC_IPLT:
       if (__builtin_expect (sym_map != NULL, 1))
-        {
-	  elf_machine_fixup_plt (NULL, sym_map, reloc, reloc_addr, 
+	{
+	  elf_machine_fixup_plt (NULL, sym_map, reloc, reloc_addr,
 	      			 DL_FIXUP_MAKE_VALUE(sym_map, value));
-        } 
-      else 
-        {
+	}
+      else
+	{
 	  /* If we get here, it's a (weak) undefined sym.  */
-	  elf_machine_fixup_plt (NULL, map, reloc, reloc_addr, 
+	  elf_machine_fixup_plt (NULL, map, reloc, reloc_addr,
 	      			 DL_FIXUP_MAKE_VALUE(map, value));
-        }
+	}
       return;
 
     case R_PARISC_COPY:
@@ -687,21 +688,21 @@
 
     case R_PARISC_TLS_DTPOFF32:
       /* During relocation all TLS symbols are defined and used.
-         Therefore the offset is already correct.  */
+	 Therefore the offset is already correct.  */
       if (sym != NULL)
-        *reloc_addr = sym->st_value;
+	*reloc_addr = sym->st_value;
       return;
 
     case R_PARISC_TLS_TPREL32:
       /* The offset is negative, forward from the thread pointer */
       if (sym != NULL)
-        {
-          CHECK_STATIC_TLS (map, sym_map);
+	{
+	  CHECK_STATIC_TLS (map, sym_map);
 	  value = sym_map->l_tls_offset + sym->st_value + reloc->r_addend;
 	}
       break;
 #endif	/* use TLS */
-      
+
     case R_PARISC_NONE:	/* Alright, Wilbur. */
       return;
 
@@ -721,13 +722,13 @@
 {
   unsigned long const r_type = ELF32_R_TYPE (reloc->r_info);
   Elf32_Addr *const reloc_addr = reloc_addr_arg;
-  static char msgbuf[] = { "Unknown" }; 
+  static char msgbuf[] = { "Unknown" };
   struct link_map map;
   Elf32_Addr value;
 
   value = l_addr + reloc->r_addend;
 
-  if (ELF32_R_SYM (reloc->r_info) != 0){ 
+  if (ELF32_R_SYM (reloc->r_info) != 0){
     _dl_error_printf ("%s: In elf_machine_rela_relative "
 		      "ELF32_R_SYM (reloc->r_info) != 0. Aborting.",
 		      rtld_progname ?: "<program name unknown>");
@@ -769,7 +770,8 @@
 
 auto void __attribute__((always_inline))
 elf_machine_lazy_rel (struct link_map *map,
-		      Elf32_Addr l_addr, const Elf32_Rela *reloc)
+		      Elf32_Addr l_addr, const Elf32_Rela *reloc,
+		      int skip_ifunc)
 {
   /* We don't have anything to do here.  elf_machine_runtime_setup has
      done all the relocs already.  */

Modified: fsf/trunk/ports/sysdeps/m68k/dl-machine.h
==============================================================================
--- fsf/trunk/ports/sysdeps/m68k/dl-machine.h (original)
+++ fsf/trunk/ports/sysdeps/m68k/dl-machine.h Mon Oct 10 00:02:18 2011
@@ -211,7 +211,7 @@
 auto inline void __attribute__ ((unused, always_inline))
 elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
 		  const Elf32_Sym *sym, const struct r_found_version *version,
-		  void *const reloc_addr_arg)
+		  void *const reloc_addr_arg, int skip_ifunc)
 {
   Elf32_Addr *const reloc_addr = reloc_addr_arg;
   const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
@@ -307,7 +307,8 @@
 
 auto inline void __attribute__ ((unused, always_inline))
 elf_machine_lazy_rel (struct link_map *map,
-		      Elf32_Addr l_addr, const Elf32_Rela *reloc)
+		      Elf32_Addr l_addr, const Elf32_Rela *reloc,
+		      int skip_ifunc)
 {
   Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
   if (ELF32_R_TYPE (reloc->r_info) == R_68K_JMP_SLOT)

Removed: fsf/trunk/ports/sysdeps/m68k/m680x0/s_isinfl.c
==============================================================================
--- fsf/trunk/ports/sysdeps/m68k/m680x0/s_isinfl.c (original)
+++ fsf/trunk/ports/sysdeps/m68k/m680x0/s_isinfl.c (removed)
@@ -1,42 +1,0 @@
-/* Copyright (C) 1991, 1992, 1995, 1997, 2002 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <math.h>
-#include "ieee754.h"
-
-/* Return 0 if VALUE is finite or NaN, +1 if it
-   is +Infinity, -1 if it is -Infinity.  */
-int
-__isinfl (long double value)
-{
-  union ieee854_long_double u;
-
-  u.d = value;
-
-  /* An IEEE 854 infinity has an exponent with the
-     maximum possible value and a zero mantissa.
-     In Motorola's interpretation the integer bit is ignored.  */
-  if ((u.ieee.exponent & 0x7fff) == 0x7fff &&
-      (u.ieee.mantissa0 & 0x7fffffff) == 0 && u.ieee.mantissa1 == 0)
-    return u.ieee.negative ? -1 : 1;
-
-  return 0;
-}
-
-hidden_def (__isinfl)
-weak_alias (__isinfl, isinfl);

Removed: fsf/trunk/ports/sysdeps/m68k/m680x0/s_isnanl.c
==============================================================================
--- fsf/trunk/ports/sysdeps/m68k/m680x0/s_isnanl.c (original)
+++ fsf/trunk/ports/sysdeps/m68k/m680x0/s_isnanl.c (removed)
@@ -1,38 +1,0 @@
-/* Copyright (C) 1991, 1992, 1995, 1997, 2002 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <math.h>
-#include "ieee754.h"
-
-/* Return nonzero if VALUE is not a number.  */
-int
-__isnanl (long double value)
-{
-  union ieee854_long_double u;
-
-  u.d = value;
-
-  /* IEEE 854 NaN's have the maximum possible
-     exponent and a nonzero mantissa.  In Motorola's
-     interpretation the integer bit is ignored.  */
-  return ((u.ieee.exponent & 0x7fff) == 0x7fff &&
-	  ((u.ieee.mantissa0 & 0x7fffffff) != 0 || u.ieee.mantissa1 != 0));
-}
-
-hidden_def (__isnanl)
-weak_alias (__isnanl, isnanl);

Modified: fsf/trunk/ports/sysdeps/mips/dl-machine.h
==============================================================================
--- fsf/trunk/ports/sysdeps/mips/dl-machine.h (original)
+++ fsf/trunk/ports/sysdeps/mips/dl-machine.h Mon Oct 10 00:02:18 2011
@@ -528,7 +528,7 @@
 			      strtab + refsym->st_name);
 	  }
 	memcpy (reloc_addr, (void *) value,
-	        MIN (sym->st_size, refsym->st_size));
+		MIN (sym->st_size, refsym->st_size));
 	break;
       }
 
@@ -559,7 +559,7 @@
 __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)
+		 void *const reloc_addr, int skip_ifunc)
 {
   elf_machine_reloc (map, reloc->r_info, sym, version, reloc_addr, 0, 1);
 }
@@ -575,7 +575,8 @@
 auto inline void
 __attribute__((always_inline))
 elf_machine_lazy_rel (struct link_map *map,
-		      ElfW(Addr) l_addr, const ElfW(Rel) *reloc)
+		      ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
+		      int skip_ifunc)
 {
   ElfW(Addr) *const reloc_addr = (void *) (l_addr + reloc->r_offset);
   const unsigned int r_type = ELFW(R_TYPE) (reloc->r_info);
@@ -598,7 +599,7 @@
 __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)
+		  void *const reloc_addr, int skip_ifunc)
 {
   elf_machine_reloc (map, reloc->r_info, sym, version, reloc_addr,
 		     reloc->r_addend, 0);
@@ -626,7 +627,7 @@
     ({									  \
       const ElfW(Sym) *ref = sym;					  \
       const struct r_found_version *version				  \
-        = vernum ? &map->l_versions[vernum[sym_index] & 0x7fff] : NULL;	  \
+	= vernum ? &map->l_versions[vernum[sym_index] & 0x7fff] : NULL;	  \
       struct link_map *sym_map;						  \
       sym_map = RESOLVE_MAP (&ref, version, reloc);			  \
       ref ? sym_map->l_addr + ref->st_value : 0;			  \
@@ -648,7 +649,7 @@
       i = (got[1] & ELF_MIPS_GNU_GOT1_MASK)? 2 : 1;
 
       /* Add the run-time displacement to all local got entries if
-         needed.  */
+	 needed.  */
       if (__builtin_expect (map->l_addr != 0, 0))
 	{
 	  while (i < n)