aboutsummaryrefslogtreecommitdiff
path: root/gdb/compile
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2015-05-06 20:59:19 +0200
committerJan Kratochvil <jan.kratochvil@redhat.com>2015-05-06 20:59:19 +0200
commite26efa4066a5076f59427c927cc51c52b6b92f35 (patch)
treec98d204be3f90141f2ef147cad1f23ac09eb15bc /gdb/compile
parent851c90917fff745b94e29c1fec4f3d00ca36f598 (diff)
downloadfsf-binutils-gdb-e26efa4066a5076f59427c927cc51c52b6b92f35.zip
fsf-binutils-gdb-e26efa4066a5076f59427c927cc51c52b6b92f35.tar.gz
fsf-binutils-gdb-e26efa4066a5076f59427c927cc51c52b6b92f35.tar.bz2
compile: Support relocation to GNU-IFUNCs
Calling memcpy() could fail as memcpy() from libc is GNU-IFUNC. gdb/ChangeLog 2015-05-06 Jan Kratochvil <jan.kratochvil@redhat.com> * compile/compile-object-load.c (compile_object_load): Support mst_text_gnu_ifunc.
Diffstat (limited to 'gdb/compile')
-rw-r--r--gdb/compile/compile-object-load.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gdb/compile/compile-object-load.c b/gdb/compile/compile-object-load.c
index 8a7f232..fe23448 100644
--- a/gdb/compile/compile-object-load.c
+++ b/gdb/compile/compile-object-load.c
@@ -554,6 +554,10 @@ compile_object_load (const char *object_file, const char *source_file)
case mst_text:
sym->value = BMSYMBOL_VALUE_ADDRESS (bmsym);
break;
+ case mst_text_gnu_ifunc:
+ sym->value = gnu_ifunc_resolve_addr (target_gdbarch (),
+ BMSYMBOL_VALUE_ADDRESS (bmsym));
+ break;
default:
warning (_("Could not find symbol \"%s\" "
"for compiled module \"%s\"."),