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

[Commits] r21913 - in /branches/eglibc-2_16: ./ libc/ libc/elf/ libc/sysdeps/sh/ libc/sysdeps/unix/sysv/linux/sys/ ports/ ports/sysdep...



Author: joseph
Date: Sun Dec  2 21:13:32 2012
New Revision: 21913

Log:
Merge changes between r21776 and r21912 from /fsf/glibc-2_16-branch.

Added:
    branches/eglibc-2_16/libc/elf/tst-audit8.c
      - copied unchanged from r21912, fsf/glibc-2_16-branch/libc/elf/tst-audit8.c
Modified:
    branches/eglibc-2_16/   (props changed)
    branches/eglibc-2_16/libc/ChangeLog
    branches/eglibc-2_16/libc/NEWS
    branches/eglibc-2_16/libc/elf/Makefile
    branches/eglibc-2_16/libc/elf/dl-runtime.c
    branches/eglibc-2_16/libc/sysdeps/sh/dl-machine.h
    branches/eglibc-2_16/libc/sysdeps/unix/sysv/linux/sys/sysctl.h
    branches/eglibc-2_16/ports/ChangeLog.m68k
    branches/eglibc-2_16/ports/ChangeLog.tile
    branches/eglibc-2_16/ports/sysdeps/arm/bits/predefs.h   (props changed)
    branches/eglibc-2_16/ports/sysdeps/m68k/dl-machine.h
    branches/eglibc-2_16/ports/sysdeps/tile/__tls_get_addr.S

Propchange: branches/eglibc-2_16/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Dec  2 21:13:32 2012
@@ -1,2 +1,2 @@
-/fsf/glibc-2_16-branch:19382-21776
+/fsf/glibc-2_16-branch:19382-21912
 /fsf/trunk:15224-19381

Modified: branches/eglibc-2_16/libc/ChangeLog
==============================================================================
--- branches/eglibc-2_16/libc/ChangeLog (original)
+++ branches/eglibc-2_16/libc/ChangeLog Sun Dec  2 21:13:32 2012
@@ -1,10 +1,20 @@
-2012-11-07  Andreas Jaeger  <aj@xxxxxxx>
-
-	[BZ #14809]
-	* sysdeps/unix/sysv/linux/sys/sysctl.h (_UAPI_LINUX_KERNEL_H)
-	(_UAPI_LINUX_TYPES_H): Starting with Linux 3.7, the include header
-	guards are changed.  Only define if not yet defined, #undef back
-	after including linux/sysctl.h if defined here.
+2012-11-20  Thomas Schwinge  <thomas@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/sh/dl-machine.h (ELF_MACHINE_RUNTIME_FIXUP_PARAMS): New
+	macro.
+
+2012-11-14  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	[BZ #14831]
+	* elf/Makefile (tests): Add tst-audit8.
+	($(objpfx)tst-audit8): Also depend on $(common-objpfx)math/libm.so.
+	($(objpfx)tst-audit8.out): New target.
+	(tst-audit8-ENV): New variable.
+	* elf/dl-runtime.c (_dl_profile_fixup): Call _dl_fixup to skip
+	audit if l_reloc_result is NULL.
+	(ELF_MACHINE_RUNTIME_FIXUP_PARAMS): Issue an error if it isn't
+	defined and ELF_MACHINE_RUNTIME_FIXUP_ARGS is defined.
+	* elf/tst-audit8.c: New file.
 
 2012-10-04  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
 

Modified: branches/eglibc-2_16/libc/NEWS
==============================================================================
--- branches/eglibc-2_16/libc/NEWS (original)
+++ branches/eglibc-2_16/libc/NEWS Sun Dec  2 21:13:32 2012
@@ -9,7 +9,7 @@
 
 * The following bugs are resolved with this release:
 
-  6530, 14195, 14459, 14476, 14562, 14621, 14648, 14756, 14809
+  6530, 14195, 14459, 14476, 14562, 14621, 14648, 14756, 14831
 
 Version 2.16
 

Modified: branches/eglibc-2_16/libc/elf/Makefile
==============================================================================
--- branches/eglibc-2_16/libc/elf/Makefile (original)
+++ branches/eglibc-2_16/libc/elf/Makefile Sun Dec  2 21:13:32 2012
@@ -142,7 +142,7 @@
 	 tst-dlmodcount tst-dlopenrpath tst-deep1 \
 	 tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \
 	 unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \
-	 tst-audit1 tst-audit2 \
+	 tst-audit1 tst-audit2 tst-audit8 \
 	 tst-stackguard1 tst-addr1 tst-thrlock \
 	 tst-unique1 tst-unique2 tst-unique3 tst-unique4 \
 	 tst-initorder tst-initorder2 tst-relsort1
@@ -1041,6 +1041,10 @@
 tst-audit7-ENV = EGLIBC_TEST_LD_AUDIT=$(objpfx)tst-auditmod7b.so
 tst-audit7-WRAPPER = $(..)scripts/run-with-env.sh
 
+$(objpfx)tst-audit8: $(common-objpfx)math/libm.so
+$(objpfx)tst-audit8.out: $(objpfx)tst-auditmod1.so
+tst-audit8-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
+
 $(objpfx)tst-global1: $(libdl)
 $(objpfx)tst-global1.out: $(objpfx)testobj6.so $(objpfx)testobj2.so
 

Modified: branches/eglibc-2_16/libc/elf/dl-runtime.c
==============================================================================
--- branches/eglibc-2_16/libc/elf/dl-runtime.c (original)
+++ branches/eglibc-2_16/libc/elf/dl-runtime.c Sun Dec  2 21:13:32 2012
@@ -1,5 +1,5 @@
 /* On-demand PLT fixup for shared objects.
-   Copyright (C) 1995-2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1995-2012 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
@@ -167,6 +167,26 @@
 		   ElfW(Addr) retaddr, void *regs, long int *framesizep)
 {
   void (*mcount_fct) (ElfW(Addr), ElfW(Addr)) = INTUSE(_dl_mcount);
+
+  if (l->l_reloc_result == NULL)
+    {
+      /* BZ #14843: ELF_DYNAMIC_RELOCATE is called before l_reloc_result
+	 is allocated.  We will get here if ELF_DYNAMIC_RELOCATE calls a
+	 resolver function to resolve an IRELATIVE relocation and that
+	 resolver calls a function that is not yet resolved (lazy).  For
+	 example, the resolver in x86-64 libm.so calls __get_cpu_features
+	 defined in libc.so.  Skip audit and resolve the external function
+	 in this case.  */
+      *framesizep = -1;
+      return _dl_fixup (
+# ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+#  ifndef ELF_MACHINE_RUNTIME_FIXUP_PARAMS
+#   error Please define ELF_MACHINE_RUNTIME_FIXUP_PARAMS.
+#  endif
+			ELF_MACHINE_RUNTIME_FIXUP_PARAMS,
+# endif
+			l, reloc_arg);
+    }
 
   /* This is the address in the array where we store the result of previous
      relocations.  */

Modified: branches/eglibc-2_16/libc/sysdeps/sh/dl-machine.h
==============================================================================
--- branches/eglibc-2_16/libc/sysdeps/sh/dl-machine.h (original)
+++ branches/eglibc-2_16/libc/sysdeps/sh/dl-machine.h Sun Dec  2 21:13:32 2012
@@ -1,6 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  SH version.
-   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 1999-2012 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
@@ -116,6 +115,7 @@
 }
 
 #define ELF_MACHINE_RUNTIME_FIXUP_ARGS int plt_type
+#define ELF_MACHINE_RUNTIME_FIXUP_PARAMS plt_type
 
 /* Mask identifying addresses reserved for the user program,
    where the dynamic linker should not map anything.  */

Modified: branches/eglibc-2_16/libc/sysdeps/unix/sysv/linux/sys/sysctl.h
==============================================================================
--- branches/eglibc-2_16/libc/sysdeps/unix/sysv/linux/sys/sysctl.h (original)
+++ branches/eglibc-2_16/libc/sysdeps/unix/sysv/linux/sys/sysctl.h Sun Dec  2 21:13:32 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1999, 2002, 2003, 2004 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
@@ -39,14 +39,6 @@
 # define __user
 # define __undef__LINUX_COMPILER_H
 #endif
-#ifndef  _UAPI_LINUX_KERNEL_H
-# define _UAPI_LINUX_KERNEL_H
-# define __undef_UAPI_LINUX_KERNEL_H
-#endif
-#ifndef _UAPI_LINUX_TYPES_H
-# define _UAPI_LINUX_TYPES_H
-# define __undef_UAPI_LINUX_TYPES_H
-#endif
 
 #include <linux/sysctl.h>
 
@@ -67,14 +59,6 @@
 # undef __user
 # undef __undef__LINUX_COMPILER_H
 #endif
-#ifdef  __undef_UAPI_LINUX_KERNEL_H
-# undef _UAPI_LINUX_KERNEL_H
-# undef __undef_UAPI_LINUX_KERNEL_H
-#endif
-#ifdef __undef_UAPI_LINUX_TYPES_H
-# undef _UAPI_LINUX_TYPES_H
-# undef __undef_UAPI_LINUX_TYPES_H
-#endif
 
 #include <bits/sysctl.h>
 

Modified: branches/eglibc-2_16/ports/ChangeLog.m68k
==============================================================================
--- branches/eglibc-2_16/ports/ChangeLog.m68k (original)
+++ branches/eglibc-2_16/ports/ChangeLog.m68k Sun Dec  2 21:13:32 2012
@@ -1,3 +1,8 @@
+2012-11-15  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* sysdeps/m68k/dl-machine.h (ELF_MACHINE_RUNTIME_FIXUP_PARAMS):
+	Define.
+
 2012-05-30  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/m68k/kernel-features.h

Modified: branches/eglibc-2_16/ports/ChangeLog.tile
==============================================================================
--- branches/eglibc-2_16/ports/ChangeLog.tile (original)
+++ branches/eglibc-2_16/ports/ChangeLog.tile Sun Dec  2 21:13:32 2012
@@ -1,3 +1,7 @@
+2012-11-29  Chris Metcalf  <cmetcalf@xxxxxxxxxx>
+
+	* sysdeps/tile/__tls_get_addr.S: Fix TLS module initialization bug.
+
 2012-09-06  Chris Metcalf  <cmetcalf@xxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/tile/sys/procfs.h: Fix type of prfpregset_t.

Propchange: branches/eglibc-2_16/ports/sysdeps/arm/bits/predefs.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Dec  2 21:13:32 2012
@@ -1,3 +1,3 @@
-/fsf/glibc-2_16-branch/ports/sysdeps/arm/bits/predefs.h:19382-21776
+/fsf/glibc-2_16-branch/ports/sysdeps/arm/bits/predefs.h:19382-21912
 /fsf/trunk/ports/sysdeps/arm/bits/predefs.h:18166-19381
 /fsf/trunk/ports/sysdeps/arm/eabi/bits/predefs.h:15224-17813

Modified: branches/eglibc-2_16/ports/sysdeps/m68k/dl-machine.h
==============================================================================
--- branches/eglibc-2_16/ports/sysdeps/m68k/dl-machine.h (original)
+++ branches/eglibc-2_16/ports/sysdeps/m68k/dl-machine.h Sun Dec  2 21:13:32 2012
@@ -1,6 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  m68k version.
-   Copyright (C) 1996-2001, 2002, 2003, 2004, 2005, 2010, 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 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
@@ -107,6 +106,7 @@
 }
 
 #define ELF_MACHINE_RUNTIME_FIXUP_ARGS long int save_a0, long int save_a1
+#define ELF_MACHINE_RUNTIME_FIXUP_PARAMS save_a0, save_a1
 
 
 /* Mask identifying addresses reserved for the user program,

Modified: branches/eglibc-2_16/ports/sysdeps/tile/__tls_get_addr.S
==============================================================================
--- branches/eglibc-2_16/ports/sysdeps/tile/__tls_get_addr.S (original)
+++ branches/eglibc-2_16/ports/sysdeps/tile/__tls_get_addr.S Sun Dec  2 21:13:32 2012
@@ -76,6 +76,8 @@
 	 ADD_PTR r28, r28, r27	/* pointer into module array */
 	}
 	LD_PTR r26, r28		/* r26 = module TLS pointer */
+	CMPEQI r25, r26, -1     /* check r26 == TLS_DTV_UNALLOCATED */
+	BNEZ r25, .Lslowpath
 	{
 	 ADD_PTR r0, r26, r29
 	 jrp lr

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits