Blame SOURCES/systemtap-2.9-dyninst-9.1.patch

9aa80d
commit fd5d795795e5b6266bb2b3ab827bd576fef402fe
9aa80d
Author: Josh Stone <jistone@redhat.com>
9aa80d
Date:   Fri Jan 15 12:02:56 2016 -0800
9aa80d
9aa80d
    Cherry-pick two upstream commits for Dyninst 9.1 support
9aa80d
    
9aa80d
    commit f3cced187103a83a8367bf7b61ff93007064586d
9aa80d
    Author: Josh Stone <jistone@redhat.com>
9aa80d
    Date:   Thu Dec 10 19:17:56 2015 -0800
9aa80d
    
9aa80d
        stapdyn: prepare for the dyninst 9.1 library callback change
9aa80d
    
9aa80d
        The new API uses BPatch_object for the callback, because modules (~=CUs)
9aa80d
        are now fully represented in shared objects too.  This is better, but we
9aa80d
        need to keep fallback code for the old API too, using module->getObject().
9aa80d
    
9aa80d
     stapdyn/mutator.cxx | 23 +++++++++++++++++------
9aa80d
     stapdyn/mutator.h   |  2 +-
9aa80d
     2 files changed, 18 insertions(+), 7 deletions(-)
9aa80d
    
9aa80d
    commit 162267f19c8b9356488c1bb23c8be6b61a5799a5
9aa80d
    Author: Josh Stone <jistone@redhat.com>
9aa80d
    Date:   Tue Dec 15 12:26:37 2015 -0800
9aa80d
    
9aa80d
        stapdyn: use the simpler DYNINST_9_1 macro for callback changes
9aa80d
    
9aa80d
     stapdyn/mutator.cxx | 2 +-
9aa80d
     1 file changed, 1 insertion(+), 1 deletion(-)
9aa80d
9aa80d
diff --git a/stapdyn/mutator.cxx b/stapdyn/mutator.cxx
9aa80d
index 9a7374740193..e10a73e36966 100644
9aa80d
--- a/stapdyn/mutator.cxx
9aa80d
+++ b/stapdyn/mutator.cxx
9aa80d
@@ -35,13 +35,24 @@ static vector<mutator*> g_mutators;
9aa80d
 
9aa80d
 static void
9aa80d
 g_dynamic_library_callback(BPatch_thread *thread,
9aa80d
-                           BPatch_module *module,
9aa80d
+                           BPatch_object *object,
9aa80d
                            bool load)
9aa80d
 {
9aa80d
   for (size_t i = 0; i < g_mutators.size(); ++i)
9aa80d
-    g_mutators[i]->dynamic_library_callback(thread, module, load);
9aa80d
+    g_mutators[i]->dynamic_library_callback(thread, object, load);
9aa80d
 }
9aa80d
 
9aa80d
+#ifndef DYNINST_9_1
9aa80d
+static void
9aa80d
+g_dynamic_module_callback(BPatch_thread *thread,
9aa80d
+                          BPatch_module *module,
9aa80d
+                          bool load)
9aa80d
+{
9aa80d
+  g_dynamic_library_callback(thread, module->getObject(), load);
9aa80d
+}
9aa80d
+#define g_dynamic_library_callback g_dynamic_module_callback
9aa80d
+#endif
9aa80d
+
9aa80d
 
9aa80d
 static void
9aa80d
 g_post_fork_callback(BPatch_thread *parent, BPatch_thread *child)
9aa80d
@@ -666,18 +677,18 @@ mutator::find_mutatee(BPatch_process* process)
9aa80d
 // Check if it matches our targets, and instrument accordingly.
9aa80d
 void
9aa80d
 mutator::dynamic_library_callback(BPatch_thread *thread,
9aa80d
-                                  BPatch_module *module,
9aa80d
+                                  BPatch_object *object,
9aa80d
                                   bool load)
9aa80d
 {
9aa80d
-  if (!load || !thread || !module)
9aa80d
+  if (!load || !thread || !object)
9aa80d
     return;
9aa80d
 
9aa80d
   BPatch_process* process = thread->getProcess();
9aa80d
-  staplog(1) << "dlopen \"" << module->libraryName()
9aa80d
+  staplog(1) << "dlopen \"" << object->name()
9aa80d
              << "\", pid = " << process->getPid() << endl;
9aa80d
   boost::shared_ptr<mutatee> mut = find_mutatee(process);
9aa80d
   if (mut)
9aa80d
-    mut->instrument_object_dynprobes(module->getObject(), targets);
9aa80d
+    mut->instrument_object_dynprobes(object, targets);
9aa80d
 }
9aa80d
 
9aa80d
 
9aa80d
diff --git a/stapdyn/mutator.h b/stapdyn/mutator.h
9aa80d
index d0e068d6d4ec..459cfc2c74ed 100644
9aa80d
--- a/stapdyn/mutator.h
9aa80d
+++ b/stapdyn/mutator.h
9aa80d
@@ -97,7 +97,7 @@ class mutator {
9aa80d
     // Callback to respond to dynamically loaded libraries.
9aa80d
     // Check if it matches our targets, and instrument accordingly.
9aa80d
     void dynamic_library_callback(BPatch_thread *thread,
9aa80d
-                                  BPatch_module *module,
9aa80d
+                                  BPatch_object *object,
9aa80d
                                   bool load);
9aa80d
 
9aa80d
     // Callback to respond to post fork events.  Check if it matches