[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r9115 - in /fsf/trunk/libc: ChangeLog elf/dl-sym.c
- To: commits@xxxxxxxxxx
- Subject: [commits] r9115 - in /fsf/trunk/libc: ChangeLog elf/dl-sym.c
- From: eglibc@xxxxxxxxxx
- Date: Thu, 22 Oct 2009 07:05:01 -0000
Author: eglibc
Date: Thu Oct 22 00:04:59 2009
New Revision: 9115
Log:
Import glibc-mainline for 2009-10-22
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/elf/dl-sym.c
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu Oct 22 00:04:59 2009
@@ -1,3 +1,7 @@
+2009-10-21 Andreas Schwab <schwab@xxxxxxxxxx>
+
+ * elf/dl-sym.c (do_sym): Resolve STT_GNU_IFUNC symbols.
+
2009-10-19 Andreas Schwab <schwab@xxxxxxxxxx>
* include/math.h: Add hidden protos for __exp/__expf/__expl.
Modified: fsf/trunk/libc/elf/dl-sym.c
==============================================================================
--- fsf/trunk/libc/elf/dl-sym.c (original)
+++ fsf/trunk/libc/elf/dl-sym.c Thu Oct 22 00:04:59 2009
@@ -190,6 +190,11 @@
else
#endif
value = DL_SYMBOL_ADDRESS (result, ref);
+
+ /* Resolve indirect function address. */
+ if (__builtin_expect (ELFW(ST_TYPE) (ref->st_info) == STT_GNU_IFUNC, 0))
+ value
+ = ((DL_FIXUP_VALUE_TYPE (*) (void)) DL_FIXUP_VALUE_ADDR (value)) ();
#ifdef SHARED
/* Auditing checkpoint: we have a new binding. Provide the