diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/dl-machine.h | 4 |
3 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index d746e18d59..cd093808ff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-01-24 Adhemerval Zanellla <azanella@linux.vnet.ibm.com> + + [BZ #17868] + * sysdeps/powerpc/powerpc64/dl-machine.h (resolve_ifunc): Force value + set dependency from opd value. + 2015-01-23 H.J. Lu <hongjiu.lu@intel.com> * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): diff --git a/NEWS b/NEWS index 0ce43521ea..f9ea7cf697 100644 --- a/NEWS +++ b/NEWS @@ -18,7 +18,7 @@ Version 2.21 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722, 17723, 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748, 17775, 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17803, 17806, 17834, - 17844, 17848, 17870 + 17844, 17848, 17868, 17870 * A new semaphore algorithm has been implemented in generic C code for all machines. Previous custom assembly implementations of semaphore were diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h index 944871223f..47bb5a7cb7 100644 --- a/sysdeps/powerpc/powerpc64/dl-machine.h +++ b/sysdeps/powerpc/powerpc64/dl-machine.h @@ -623,7 +623,9 @@ resolve_ifunc (Elf64_Addr value, opd.fd_func = func->fd_func + sym_map->l_addr; opd.fd_toc = func->fd_toc + sym_map->l_addr; opd.fd_aux = func->fd_aux; - value = (Elf64_Addr) &opd; + /* GCC 4.9+ eliminates the branch as dead code, force the odp set + dependency. */ + asm ("" : "=r" (value) : "0" (&opd), "X" (opd)); } #endif #endif |