Advertisement
Guest User

Untitled

a guest
Dec 18th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 24.35 KB | None | 0 0
  1. diff --git a/buildrun.cxx b/buildrun.cxx
  2. index 505902bc5..14043adbb 100644
  3. --- a/buildrun.cxx
  4. +++ b/buildrun.cxx
  5. @@ -167,9 +167,13 @@ make_make_objs_cmd(systemtap_session& s, const string& dir)
  6.  }
  7.  
  8.  static void
  9. -output_autoconf(systemtap_session& s, ofstream& o, const char *autoconf_c,
  10. -                const char *deftrue, const char *deffalse)
  11. +output_autoconf(systemtap_session& s, ofstream& o,
  12. +                vector<string>& autoconf_c_files,
  13. +                const char *autoconf_c, const char *deftrue,
  14. +                const char *deffalse)
  15.  {
  16. +  autoconf_c_files.push_back (autoconf_c);
  17. +  o << endl << s.tmpdir << "/" << autoconf_c << ".h:" << endl;
  18.    o << "\t";
  19.    if (s.verbose < 4)
  20.      o << "@";
  21. @@ -188,12 +192,8 @@ output_autoconf(systemtap_session& s, ofstream& o, const char *autoconf_c,
  22.  void output_exportconf(systemtap_session& s, ofstream& o, const char *symbol,
  23.                       const char *deftrue)
  24.  {
  25. -  o << "\t";
  26. -  if (s.verbose < 4)
  27. -    o << "@";
  28.    if (s.kernel_exports.find(symbol) != s.kernel_exports.end())
  29. -    o << "echo \"#define " << deftrue << " 1\"";
  30. -  o << ">> $@" << endl;
  31. +    o << "#define " << deftrue << " 1" << endl;
  32.  }
  33.  
  34.  
  35. @@ -201,13 +201,9 @@ void output_dual_exportconf(systemtap_session& s, ofstream& o,
  36.                 const char *symbol1, const char *symbol2,
  37.                 const char *deftrue)
  38.  {
  39. -  o << "\t";
  40. -  if (s.verbose < 4)
  41. -    o << "@";
  42.    if (s.kernel_exports.find(symbol1) != s.kernel_exports.end()
  43.        && s.kernel_exports.find(symbol2) != s.kernel_exports.end())
  44. -    o << "echo \"#define " << deftrue << " 1\"";
  45. -  o << ">> $@" << endl;
  46. +    o << "#define " << deftrue << " 1" << endl;
  47.  }
  48.  
  49.  
  50. @@ -215,13 +211,9 @@ void output_either_exportconf(systemtap_session& s, ofstream& o,
  51.                   const char *symbol1, const char *symbol2,
  52.                   const char *deftrue)
  53.  {
  54. -  o << "\t";
  55. -  if (s.verbose < 4)
  56. -    o << "@";
  57.    if (s.kernel_exports.find(symbol1) != s.kernel_exports.end()
  58.        || s.kernel_exports.find(symbol2) != s.kernel_exports.end())
  59. -    o << "echo \"#define " << deftrue << " 1\"";
  60. -  o << ">> $@" << endl;
  61. +    o << "#define " << deftrue << " 1" << endl;
  62.  }
  63.  
  64.  
  65. @@ -283,6 +275,9 @@ compile_pass (systemtap_session& s)
  66.    string makefile_nm = s.tmpdir + "/Makefile";
  67.    ofstream o (makefile_nm.c_str());
  68.  
  69. +  string stap_export_nm = s.tmpdir + "/stapconf_export.h";
  70. +  ofstream o2 (stap_export_nm.c_str());
  71. +
  72.    // Create makefile
  73.  
  74.    // Clever hacks copied from vmware modules
  75. @@ -335,170 +330,188 @@ compile_pass (systemtap_session& s)
  76.    // since such headers are cleansed of _KERNEL_ pieces that we need
  77.  
  78.    o << "STAPCONF_HEADER := " << s.tmpdir << "/" << s.stapconf_name << endl;
  79. +  o << ".DELETE_ON_ERROR: $(STAPCONF_HEADER)" << endl;
  80.    o << "$(STAPCONF_HEADER):" << endl;
  81. -  o << "\t@> $@" << endl;
  82. -  output_autoconf(s, o, "autoconf-hrtimer-rel.c", "STAPCONF_HRTIMER_REL", NULL);
  83. -  output_exportconf(s, o, "hrtimer_get_res", "STAPCONF_HRTIMER_GET_RES");
  84. -  output_autoconf(s, o, "autoconf-generated-compile.c", "STAPCONF_GENERATED_COMPILE", NULL);
  85. -  output_autoconf(s, o, "autoconf-hrtimer-getset-expires.c", "STAPCONF_HRTIMER_GETSET_EXPIRES", NULL);
  86. -  output_autoconf(s, o, "autoconf-inode-private.c", "STAPCONF_INODE_PRIVATE", NULL);
  87. -  output_autoconf(s, o, "autoconf-inode-rwsem.c", "STAPCONF_INODE_RWSEM", NULL);
  88. -  output_autoconf(s, o, "autoconf-constant-tsc.c", "STAPCONF_CONSTANT_TSC", NULL);
  89. -  output_autoconf(s, o, "autoconf-ktime-get-real.c", "STAPCONF_KTIME_GET_REAL", NULL);
  90. -  output_exportconf(s, o, "ktime_get_real_fast_ns", "STAPCONF_KTIME_GET_REAL_FAST_NS");
  91. -  output_autoconf(s, o, "autoconf-x86-uniregs.c", "STAPCONF_X86_UNIREGS", NULL);
  92. -  output_autoconf(s, o, "autoconf-nameidata.c", "STAPCONF_NAMEIDATA_CLEANUP", NULL);
  93. -  output_dual_exportconf(s, o, "unregister_kprobes", "unregister_kretprobes", "STAPCONF_UNREGISTER_KPROBES");
  94. -  output_autoconf(s, o, "autoconf-kprobe-symbol-name.c", "STAPCONF_KPROBE_SYMBOL_NAME", NULL);
  95. -  output_autoconf(s, o, "autoconf-real-parent.c", "STAPCONF_REAL_PARENT", NULL);
  96. -  output_autoconf(s, o, "autoconf-uaccess.c", "STAPCONF_LINUX_UACCESS_H", NULL);
  97. -  output_autoconf(s, o, "autoconf-oneachcpu-retry.c", "STAPCONF_ONEACHCPU_RETRY", NULL);
  98. -  output_autoconf(s, o, "autoconf-dpath-path.c", "STAPCONF_DPATH_PATH", NULL);
  99. -  output_exportconf(s, o, "synchronize_kernel", "STAPCONF_SYNCHRONIZE_KERNEL");
  100. -  output_exportconf(s, o, "synchronize_rcu", "STAPCONF_SYNCHRONIZE_RCU");
  101. -  output_exportconf(s, o, "synchronize_sched", "STAPCONF_SYNCHRONIZE_SCHED");
  102. -  output_autoconf(s, o, "autoconf-task-uid.c", "STAPCONF_TASK_UID", NULL);
  103. -  output_autoconf(s, o, "autoconf-from_kuid_munged.c", "STAPCONF_FROM_KUID_MUNGED", NULL);
  104. -  output_exportconf(s, o, "get_mm_exe_file", "STAPCONF_GET_MM_EXE_FILE");
  105. -  output_dual_exportconf(s, o, "alloc_vm_area", "free_vm_area", "STAPCONF_VM_AREA");
  106. -  output_autoconf(s, o, "autoconf-procfs-owner.c", "STAPCONF_PROCFS_OWNER", NULL);
  107. -  output_autoconf(s, o, "autoconf-alloc-percpu-align.c", "STAPCONF_ALLOC_PERCPU_ALIGN", NULL);
  108. -  output_autoconf(s, o, "autoconf-x86-fs.c", "STAPCONF_X86_FS", NULL);
  109. -  output_autoconf(s, o, "autoconf-x86-xfs.c", "STAPCONF_X86_XFS", NULL);
  110. -  output_autoconf(s, o, "autoconf-x86-gs.c", "STAPCONF_X86_GS", NULL);
  111. -  output_autoconf(s, o, "autoconf-grsecurity.c", "STAPCONF_GRSECURITY", NULL);
  112. -  output_autoconf(s, o, "autoconf-trace-printk.c", "STAPCONF_TRACE_PRINTK", NULL);
  113. -  output_autoconf(s, o, "autoconf-regset.c", "STAPCONF_REGSET", NULL);
  114. -  output_autoconf(s, o, "autoconf-utrace-regset.c", "STAPCONF_UTRACE_REGSET", NULL);
  115. -  output_autoconf(s, o, "autoconf-uprobe-get-pc.c", "STAPCONF_UPROBE_GET_PC", NULL);
  116. -  output_autoconf(s, o, "autoconf-hlist-4args.c", "STAPCONF_HLIST_4ARGS", NULL);
  117. -  output_exportconf(s, o, "tsc_khz", "STAPCONF_TSC_KHZ");
  118. -  output_exportconf(s, o, "cpu_khz", "STAPCONF_CPU_KHZ");
  119. -  output_exportconf(s, o, "__module_text_address", "STAPCONF_MODULE_TEXT_ADDRESS");
  120. -  output_exportconf(s, o, "add_timer_on", "STAPCONF_ADD_TIMER_ON");
  121. +  o << "\t";
  122. +  if (s.verbose < 4)
  123. +    o << "@";
  124. +  o << "$(MAKE) -f \"$(firstword $(MAKEFILE_LIST))\" gen-stapconf" << endl;
  125.  
  126. -  output_dual_exportconf(s, o, "probe_kernel_read", "probe_kernel_write", "STAPCONF_PROBE_KERNEL");
  127. -  output_autoconf(s, o, "autoconf-hw_breakpoint_context.c",
  128. +  vector<string> cs;  // to hold autoconf C file names
  129. +
  130. +  output_autoconf(s, o, cs, "autoconf-hrtimer-rel.c", "STAPCONF_HRTIMER_REL", NULL);
  131. +  output_exportconf(s, o2, "hrtimer_get_res", "STAPCONF_HRTIMER_GET_RES");
  132. +  output_autoconf(s, o, cs, "autoconf-generated-compile.c", "STAPCONF_GENERATED_COMPILE", NULL);
  133. +  output_autoconf(s, o, cs, "autoconf-hrtimer-getset-expires.c", "STAPCONF_HRTIMER_GETSET_EXPIRES", NULL);
  134. +  output_autoconf(s, o, cs, "autoconf-inode-private.c", "STAPCONF_INODE_PRIVATE", NULL);
  135. +  output_autoconf(s, o, cs, "autoconf-inode-rwsem.c", "STAPCONF_INODE_RWSEM", NULL);
  136. +  output_autoconf(s, o, cs, "autoconf-constant-tsc.c", "STAPCONF_CONSTANT_TSC", NULL);
  137. +  output_autoconf(s, o, cs, "autoconf-ktime-get-real.c", "STAPCONF_KTIME_GET_REAL", NULL);
  138. +  output_exportconf(s, o2, "ktime_get_real_fast_ns", "STAPCONF_KTIME_GET_REAL_FAST_NS");
  139. +  output_autoconf(s, o, cs, "autoconf-x86-uniregs.c", "STAPCONF_X86_UNIREGS", NULL);
  140. +  output_autoconf(s, o, cs, "autoconf-nameidata.c", "STAPCONF_NAMEIDATA_CLEANUP", NULL);
  141. +  output_dual_exportconf(s, o2, "unregister_kprobes", "unregister_kretprobes", "STAPCONF_UNREGISTER_KPROBES");
  142. +  output_autoconf(s, o, cs, "autoconf-kprobe-symbol-name.c", "STAPCONF_KPROBE_SYMBOL_NAME", NULL);
  143. +  output_autoconf(s, o, cs, "autoconf-real-parent.c", "STAPCONF_REAL_PARENT", NULL);
  144. +  output_autoconf(s, o, cs, "autoconf-uaccess.c", "STAPCONF_LINUX_UACCESS_H", NULL);
  145. +  output_autoconf(s, o, cs, "autoconf-oneachcpu-retry.c", "STAPCONF_ONEACHCPU_RETRY", NULL);
  146. +  output_autoconf(s, o, cs, "autoconf-dpath-path.c", "STAPCONF_DPATH_PATH", NULL);
  147. +  output_exportconf(s, o2, "synchronize_kernel", "STAPCONF_SYNCHRONIZE_KERNEL");
  148. +  output_exportconf(s, o2, "synchronize_rcu", "STAPCONF_SYNCHRONIZE_RCU");
  149. +  output_exportconf(s, o2, "synchronize_sched", "STAPCONF_SYNCHRONIZE_SCHED");
  150. +  output_autoconf(s, o, cs, "autoconf-task-uid.c", "STAPCONF_TASK_UID", NULL);
  151. +  output_autoconf(s, o, cs, "autoconf-from_kuid_munged.c", "STAPCONF_FROM_KUID_MUNGED", NULL);
  152. +  output_exportconf(s, o2, "get_mm_exe_file", "STAPCONF_GET_MM_EXE_FILE");
  153. +  output_dual_exportconf(s, o2, "alloc_vm_area", "free_vm_area", "STAPCONF_VM_AREA");
  154. +  output_autoconf(s, o, cs, "autoconf-procfs-owner.c", "STAPCONF_PROCFS_OWNER", NULL);
  155. +  output_autoconf(s, o, cs, "autoconf-alloc-percpu-align.c", "STAPCONF_ALLOC_PERCPU_ALIGN", NULL);
  156. +  output_autoconf(s, o, cs, "autoconf-x86-fs.c", "STAPCONF_X86_FS", NULL);
  157. +  output_autoconf(s, o, cs, "autoconf-x86-xfs.c", "STAPCONF_X86_XFS", NULL);
  158. +  output_autoconf(s, o, cs, "autoconf-x86-gs.c", "STAPCONF_X86_GS", NULL);
  159. +  output_autoconf(s, o, cs, "autoconf-grsecurity.c", "STAPCONF_GRSECURITY", NULL);
  160. +  output_autoconf(s, o, cs, "autoconf-trace-printk.c", "STAPCONF_TRACE_PRINTK", NULL);
  161. +  output_autoconf(s, o, cs, "autoconf-regset.c", "STAPCONF_REGSET", NULL);
  162. +  output_autoconf(s, o, cs, "autoconf-utrace-regset.c", "STAPCONF_UTRACE_REGSET", NULL);
  163. +  output_autoconf(s, o, cs, "autoconf-uprobe-get-pc.c", "STAPCONF_UPROBE_GET_PC", NULL);
  164. +  output_autoconf(s, o, cs, "autoconf-hlist-4args.c", "STAPCONF_HLIST_4ARGS", NULL);
  165. +  output_exportconf(s, o2, "tsc_khz", "STAPCONF_TSC_KHZ");
  166. +  output_exportconf(s, o2, "cpu_khz", "STAPCONF_CPU_KHZ");
  167. +  output_exportconf(s, o2, "__module_text_address", "STAPCONF_MODULE_TEXT_ADDRESS");
  168. +  output_exportconf(s, o2, "add_timer_on", "STAPCONF_ADD_TIMER_ON");
  169. +
  170. +  output_dual_exportconf(s, o2, "probe_kernel_read", "probe_kernel_write", "STAPCONF_PROBE_KERNEL");
  171. +  output_autoconf(s, o, cs, "autoconf-hw_breakpoint_context.c",
  172.           "STAPCONF_HW_BREAKPOINT_CONTEXT", NULL);
  173. -  output_exportconf(s, o, "save_stack_trace_regs", "STAPCONF_SAVE_STACK_TRACE_REGS_EXPORTED");
  174. -  output_autoconf(s, o, "autoconf-save-stack-trace.c",
  175. +  output_exportconf(s, o2, "save_stack_trace_regs", "STAPCONF_SAVE_STACK_TRACE_REGS_EXPORTED");
  176. +  output_autoconf(s, o, cs, "autoconf-save-stack-trace.c",
  177.                    "STAPCONF_KERNEL_STACKTRACE", NULL);
  178. -  output_autoconf(s, o, "autoconf-save-stack-trace-no-bp.c",
  179. +  output_autoconf(s, o, cs, "autoconf-save-stack-trace-no-bp.c",
  180.                    "STAPCONF_KERNEL_STACKTRACE_NO_BP", NULL);
  181. -  output_autoconf(s, o, "autoconf-unwind-stack-trace.c",
  182. +  output_autoconf(s, o, cs, "autoconf-unwind-stack-trace.c",
  183.                    "STAPCONF_KERNEL_UNWIND_STACK", NULL);
  184. -  output_autoconf(s, o, "autoconf-asm-syscall.c",
  185. +  output_autoconf(s, o, cs, "autoconf-asm-syscall.c",
  186.           "STAPCONF_ASM_SYSCALL_H", NULL);
  187. -  output_autoconf(s, o, "autoconf-syscall_get_args_3args.c",
  188. +  output_autoconf(s, o, cs, "autoconf-syscall_get_args_3args.c",
  189.           "STAPCONF_SYSCALL_GET_ARGS_3ARGS", NULL);
  190. -  output_autoconf(s, o, "autoconf-ring_buffer-flags.c", "STAPCONF_RING_BUFFER_FLAGS", NULL);
  191. -  output_autoconf(s, o, "autoconf-ring_buffer_lost_events.c", "STAPCONF_RING_BUFFER_LOST_EVENTS", NULL);
  192. -  output_autoconf(s, o, "autoconf-ring_buffer_read_prepare.c", "STAPCONF_RING_BUFFER_READ_PREPARE", NULL);
  193. -  output_autoconf(s, o, "autoconf-kallsyms-on-each-symbol.c", "STAPCONF_KALLSYMS_ON_EACH_SYMBOL", NULL);
  194. -  output_autoconf(s, o, "autoconf-walk-stack.c", "STAPCONF_WALK_STACK", NULL);
  195. -  output_autoconf(s, o, "autoconf-stacktrace_ops-warning.c",
  196. +  output_autoconf(s, o, cs, "autoconf-ring_buffer-flags.c", "STAPCONF_RING_BUFFER_FLAGS", NULL);
  197. +  output_autoconf(s, o, cs, "autoconf-ring_buffer_lost_events.c", "STAPCONF_RING_BUFFER_LOST_EVENTS", NULL);
  198. +  output_autoconf(s, o, cs, "autoconf-ring_buffer_read_prepare.c", "STAPCONF_RING_BUFFER_READ_PREPARE", NULL);
  199. +  output_autoconf(s, o, cs, "autoconf-kallsyms-on-each-symbol.c", "STAPCONF_KALLSYMS_ON_EACH_SYMBOL", NULL);
  200. +  output_autoconf(s, o, cs, "autoconf-walk-stack.c", "STAPCONF_WALK_STACK", NULL);
  201. +  output_autoconf(s, o, cs, "autoconf-stacktrace_ops-warning.c",
  202.                    "STAPCONF_STACKTRACE_OPS_WARNING", NULL);
  203. -  output_autoconf(s, o, "autoconf-stacktrace_ops-int-address.c",
  204. +  output_autoconf(s, o, cs, "autoconf-stacktrace_ops-int-address.c",
  205.                    "STAPCONF_STACKTRACE_OPS_INT_ADDRESS", NULL);
  206. -  output_autoconf(s, o, "autoconf-mm-context-vdso.c", "STAPCONF_MM_CONTEXT_VDSO", NULL);
  207. -  output_autoconf(s, o, "autoconf-mm-context-vdso-base.c", "STAPCONF_MM_CONTEXT_VDSO_BASE", NULL);
  208. -  output_autoconf(s, o, "autoconf-blk-types.c", "STAPCONF_BLK_TYPES", NULL);
  209. -  output_autoconf(s, o, "autoconf-perf-structpid.c", "STAPCONF_PERF_STRUCTPID", NULL);
  210. -  output_autoconf(s, o, "perf_event_counter_context.c",
  211. +  output_autoconf(s, o, cs, "autoconf-mm-context-vdso.c", "STAPCONF_MM_CONTEXT_VDSO", NULL);
  212. +  output_autoconf(s, o, cs, "autoconf-mm-context-vdso-base.c", "STAPCONF_MM_CONTEXT_VDSO_BASE", NULL);
  213. +  output_autoconf(s, o, cs, "autoconf-blk-types.c", "STAPCONF_BLK_TYPES", NULL);
  214. +  output_autoconf(s, o, cs, "autoconf-perf-structpid.c", "STAPCONF_PERF_STRUCTPID", NULL);
  215. +  output_autoconf(s, o, cs, "perf_event_counter_context.c",
  216.           "STAPCONF_PERF_COUNTER_CONTEXT", NULL);
  217. -  output_autoconf(s, o, "perf_probe_handler_nmi.c",
  218. +  output_autoconf(s, o, cs, "perf_probe_handler_nmi.c",
  219.           "STAPCONF_PERF_HANDLER_NMI", NULL);
  220. -  output_exportconf(s, o, "path_lookup", "STAPCONF_PATH_LOOKUP");
  221. -  output_exportconf(s, o, "kern_path_parent", "STAPCONF_KERN_PATH_PARENT");
  222. -  output_exportconf(s, o, "vfs_path_lookup", "STAPCONF_VFS_PATH_LOOKUP");
  223. -  output_exportconf(s, o, "kern_path", "STAPCONF_KERN_PATH");
  224. -  output_exportconf(s, o, "proc_create_data", "STAPCONF_PROC_CREATE_DATA");
  225. -  output_exportconf(s, o, "PDE_DATA", "STAPCONF_PDE_DATA");
  226. -  output_autoconf(s, o, "autoconf-module-sect-attrs.c", "STAPCONF_MODULE_SECT_ATTRS", NULL);
  227. +  output_exportconf(s, o2, "path_lookup", "STAPCONF_PATH_LOOKUP");
  228. +  output_exportconf(s, o2, "kern_path_parent", "STAPCONF_KERN_PATH_PARENT");
  229. +  output_exportconf(s, o2, "vfs_path_lookup", "STAPCONF_VFS_PATH_LOOKUP");
  230. +  output_exportconf(s, o2, "kern_path", "STAPCONF_KERN_PATH");
  231. +  output_exportconf(s, o2, "proc_create_data", "STAPCONF_PROC_CREATE_DATA");
  232. +  output_exportconf(s, o2, "PDE_DATA", "STAPCONF_PDE_DATA");
  233. +  output_autoconf(s, o, cs, "autoconf-module-sect-attrs.c", "STAPCONF_MODULE_SECT_ATTRS", NULL);
  234.  
  235. -  output_autoconf(s, o, "autoconf-utrace-via-tracepoints.c", "STAPCONF_UTRACE_VIA_TRACEPOINTS", NULL);
  236. -  output_autoconf(s, o, "autoconf-task_work-struct.c", "STAPCONF_TASK_WORK_STRUCT", NULL);
  237. -  output_autoconf(s, o, "autoconf-vm-area-pte.c", "STAPCONF_VM_AREA_PTE", NULL);
  238. -  output_autoconf(s, o, "autoconf-relay-umode_t.c", "STAPCONF_RELAY_UMODE_T", NULL);
  239. -  output_autoconf(s, o, "autoconf-relay_buf-per_cpu_ptr.c", "STAPCONF_RELAY_BUF_PER_CPU_PTR", NULL);
  240. -  output_autoconf(s, o, "autoconf-fs_supers-hlist.c", "STAPCONF_FS_SUPERS_HLIST", NULL);
  241. -  output_autoconf(s, o, "autoconf-compat_sigaction.c", "STAPCONF_COMPAT_SIGACTION", NULL);
  242. -  output_autoconf(s, o, "autoconf-netfilter.c", "STAPCONF_NETFILTER_V313", NULL);
  243. -  output_autoconf(s, o, "autoconf-netfilter-313b.c", "STAPCONF_NETFILTER_V313B", NULL);
  244. -  output_autoconf(s, o, "autoconf-netfilter-4_1.c", "STAPCONF_NETFILTER_V41", NULL);
  245. -  output_autoconf(s, o, "autoconf-netfilter-4_4.c", "STAPCONF_NETFILTER_V44", NULL);
  246. -  output_autoconf(s, o, "autoconf-smpcall-5args.c", "STAPCONF_SMPCALL_5ARGS", NULL);
  247. -  output_autoconf(s, o, "autoconf-smpcall-4args.c", "STAPCONF_SMPCALL_4ARGS", NULL);
  248. -  output_autoconf(s, o, "autoconf-access_ok_2args.c", "STAPCONF_ACCESS_OK_2ARGS", NULL);
  249. -  output_autoconf(s, o, "autoconf-uapi-mount.c", "STAPCONF_UAPI_LINUX_MOUNT_H", NULL);
  250. -  output_autoconf(s, o, "autoconf-time32.c", "STAPCONF_TIME32_H", NULL);
  251. -  output_autoconf(s, o, "autoconf-compat-utimbuf.c", "STAPCONF_COMPAT_UTIMBUF", NULL);
  252. +  output_autoconf(s, o, cs, "autoconf-utrace-via-tracepoints.c", "STAPCONF_UTRACE_VIA_TRACEPOINTS", NULL);
  253. +  output_autoconf(s, o, cs, "autoconf-task_work-struct.c", "STAPCONF_TASK_WORK_STRUCT", NULL);
  254. +  output_autoconf(s, o, cs, "autoconf-vm-area-pte.c", "STAPCONF_VM_AREA_PTE", NULL);
  255. +  output_autoconf(s, o, cs, "autoconf-relay-umode_t.c", "STAPCONF_RELAY_UMODE_T", NULL);
  256. +  output_autoconf(s, o, cs, "autoconf-relay_buf-per_cpu_ptr.c", "STAPCONF_RELAY_BUF_PER_CPU_PTR", NULL);
  257. +  output_autoconf(s, o, cs, "autoconf-fs_supers-hlist.c", "STAPCONF_FS_SUPERS_HLIST", NULL);
  258. +  output_autoconf(s, o, cs, "autoconf-compat_sigaction.c", "STAPCONF_COMPAT_SIGACTION", NULL);
  259. +  output_autoconf(s, o, cs, "autoconf-netfilter.c", "STAPCONF_NETFILTER_V313", NULL);
  260. +  output_autoconf(s, o, cs, "autoconf-netfilter-313b.c", "STAPCONF_NETFILTER_V313B", NULL);
  261. +  output_autoconf(s, o, cs, "autoconf-netfilter-4_1.c", "STAPCONF_NETFILTER_V41", NULL);
  262. +  output_autoconf(s, o, cs, "autoconf-netfilter-4_4.c", "STAPCONF_NETFILTER_V44", NULL);
  263. +  output_autoconf(s, o, cs, "autoconf-smpcall-5args.c", "STAPCONF_SMPCALL_5ARGS", NULL);
  264. +  output_autoconf(s, o, cs, "autoconf-smpcall-4args.c", "STAPCONF_SMPCALL_4ARGS", NULL);
  265. +  output_autoconf(s, o, cs, "autoconf-access_ok_2args.c", "STAPCONF_ACCESS_OK_2ARGS", NULL);
  266. +  output_autoconf(s, o, cs, "autoconf-uapi-mount.c", "STAPCONF_UAPI_LINUX_MOUNT_H", NULL);
  267. +  output_autoconf(s, o, cs, "autoconf-time32.c", "STAPCONF_TIME32_H", NULL);
  268. +  output_autoconf(s, o, cs, "autoconf-compat-utimbuf.c", "STAPCONF_COMPAT_UTIMBUF", NULL);
  269.    
  270.    // used by tapset/timestamp_monotonic.stp
  271. -  output_autoconf(s, o, "autoconf-cpu-clock.c", "STAPCONF_CPU_CLOCK", NULL);
  272. -  output_autoconf(s, o, "autoconf-local-clock.c", "STAPCONF_LOCAL_CLOCK", NULL);
  273. +  output_autoconf(s, o, cs, "autoconf-cpu-clock.c", "STAPCONF_CPU_CLOCK", NULL);
  274. +  output_autoconf(s, o, cs, "autoconf-local-clock.c", "STAPCONF_LOCAL_CLOCK", NULL);
  275.    
  276.    // used by runtime/uprobe-inode.c
  277. -  output_either_exportconf(s, o, "uprobe_register", "register_uprobe",
  278. +  output_either_exportconf(s, o2, "uprobe_register", "register_uprobe",
  279.                "STAPCONF_UPROBE_REGISTER_EXPORTED");
  280. -  output_either_exportconf(s, o, "uprobe_unregister", "unregister_uprobe",
  281. +  output_either_exportconf(s, o2, "uprobe_unregister", "unregister_uprobe",
  282.                "STAPCONF_UPROBE_UNREGISTER_EXPORTED");
  283. -  output_autoconf(s, o, "autoconf-old-inode-uprobes.c", "STAPCONF_OLD_INODE_UPROBES", NULL);
  284. -  output_autoconf(s, o, "autoconf-inode-uretprobes.c", "STAPCONF_INODE_URETPROBES", NULL);
  285. +  output_autoconf(s, o, cs, "autoconf-old-inode-uprobes.c", "STAPCONF_OLD_INODE_UPROBES", NULL);
  286. +  output_autoconf(s, o, cs, "autoconf-inode-uretprobes.c", "STAPCONF_INODE_URETPROBES", NULL);
  287.  
  288.    // used by tapsets.cxx inode uprobe generated code
  289. -  output_exportconf(s, o, "uprobe_get_swbp_addr", "STAPCONF_UPROBE_GET_SWBP_ADDR_EXPORTED");
  290. +  output_exportconf(s, o2, "uprobe_get_swbp_addr", "STAPCONF_UPROBE_GET_SWBP_ADDR_EXPORTED");
  291.  
  292.    // used by runtime/loc2c-runtime.h
  293. -  output_exportconf(s, o, "task_user_regset_view", "STAPCONF_TASK_USER_REGSET_VIEW_EXPORTED");
  294. +  output_exportconf(s, o2, "task_user_regset_view", "STAPCONF_TASK_USER_REGSET_VIEW_EXPORTED");
  295.  
  296.    // used by runtime/stp_utrace.c
  297. -  output_exportconf(s, o, "task_work_add", "STAPCONF_TASK_WORK_ADD_EXPORTED");
  298. -  output_exportconf(s, o, "task_work_cancel", "STAPCONF_TASK_WORK_CANCEL_EXPORTED");  
  299. -  output_exportconf(s, o, "wake_up_state", "STAPCONF_WAKE_UP_STATE_EXPORTED");
  300. -  output_exportconf(s, o, "try_to_wake_up", "STAPCONF_TRY_TO_WAKE_UP_EXPORTED");
  301. -  output_exportconf(s, o, "signal_wake_up_state", "STAPCONF_SIGNAL_WAKE_UP_STATE_EXPORTED");
  302. -  output_exportconf(s, o, "signal_wake_up", "STAPCONF_SIGNAL_WAKE_UP_EXPORTED");
  303. -  output_exportconf(s, o, "__lock_task_sighand", "STAPCONF___LOCK_TASK_SIGHAND_EXPORTED");
  304. +  output_exportconf(s, o2, "task_work_add", "STAPCONF_TASK_WORK_ADD_EXPORTED");
  305. +  output_exportconf(s, o2, "task_work_cancel", "STAPCONF_TASK_WORK_CANCEL_EXPORTED");
  306. +  output_exportconf(s, o2, "wake_up_state", "STAPCONF_WAKE_UP_STATE_EXPORTED");
  307. +  output_exportconf(s, o2, "try_to_wake_up", "STAPCONF_TRY_TO_WAKE_UP_EXPORTED");
  308. +  output_exportconf(s, o2, "signal_wake_up_state", "STAPCONF_SIGNAL_WAKE_UP_STATE_EXPORTED");
  309. +  output_exportconf(s, o2, "signal_wake_up", "STAPCONF_SIGNAL_WAKE_UP_EXPORTED");
  310. +  output_exportconf(s, o2, "__lock_task_sighand", "STAPCONF___LOCK_TASK_SIGHAND_EXPORTED");
  311.  
  312. -  output_autoconf(s, o, "autoconf-pagefault_disable.c", "STAPCONF_PAGEFAULT_DISABLE", NULL);
  313. -  output_exportconf(s, o, "kallsyms_lookup_name", "STAPCONF_KALLSYMS");
  314. -  output_autoconf(s, o, "autoconf-uidgid.c", "STAPCONF_LINUX_UIDGID_H", NULL);
  315. -  output_exportconf(s, o, "sigset_from_compat", "STAPCONF_SIGSET_FROM_COMPAT_EXPORTED");
  316. -  output_exportconf(s, o, "vzalloc", "STAPCONF_VZALLOC");
  317. -  output_exportconf(s, o, "vzalloc_node", "STAPCONF_VZALLOC_NODE");
  318. -  output_exportconf(s, o, "vmalloc_node", "STAPCONF_VMALLOC_NODE");
  319. +  output_autoconf(s, o, cs, "autoconf-pagefault_disable.c", "STAPCONF_PAGEFAULT_DISABLE", NULL);
  320. +  output_exportconf(s, o2, "kallsyms_lookup_name", "STAPCONF_KALLSYMS");
  321. +  output_autoconf(s, o, cs, "autoconf-uidgid.c", "STAPCONF_LINUX_UIDGID_H", NULL);
  322. +  output_exportconf(s, o2, "sigset_from_compat", "STAPCONF_SIGSET_FROM_COMPAT_EXPORTED");
  323. +  output_exportconf(s, o2, "vzalloc", "STAPCONF_VZALLOC");
  324. +  output_exportconf(s, o2, "vzalloc_node", "STAPCONF_VZALLOC_NODE");
  325. +  output_exportconf(s, o2, "vmalloc_node", "STAPCONF_VMALLOC_NODE");
  326.  
  327.    // RHBZ1233912 - s390 temporary workaround for non-atomic udelay()
  328. -  output_exportconf(s, o, "udelay_simple", "STAPCONF_UDELAY_SIMPLE_EXPORTED");
  329. -  output_autoconf(s, o, "autoconf-udelay_simple.c", "STAPCONF_UDELAY_SIMPLE",
  330. +  output_exportconf(s, o2, "udelay_simple", "STAPCONF_UDELAY_SIMPLE_EXPORTED");
  331. +  output_autoconf(s, o, cs, "autoconf-udelay_simple.c", "STAPCONF_UDELAY_SIMPLE",
  332.           NULL);
  333.  
  334. -  output_autoconf(s, o, "autoconf-tracepoint-strings.c", "STAPCONF_TRACEPOINT_STRINGS", NULL);
  335. -  output_autoconf(s, o, "autoconf-timerfd.c", "STAPCONF_TIMERFD_H", NULL);
  336. +  output_autoconf(s, o, cs, "autoconf-tracepoint-strings.c", "STAPCONF_TRACEPOINT_STRINGS", NULL);
  337. +  output_autoconf(s, o, cs, "autoconf-timerfd.c", "STAPCONF_TIMERFD_H", NULL);
  338.  
  339. -  output_autoconf(s, o, "autoconf-module_layout.c",
  340. +  output_autoconf(s, o, cs, "autoconf-module_layout.c",
  341.           "STAPCONF_MODULE_LAYOUT", NULL);
  342. -  output_autoconf(s, o, "autoconf-mod_kallsyms.c",
  343. +  output_autoconf(s, o, cs, "autoconf-mod_kallsyms.c",
  344.           "STAPCONF_MOD_KALLSYMS", NULL);
  345. -  output_exportconf(s, o, "get_user_pages_remote", "STAPCONF_GET_USER_PAGES_REMOTE");
  346. -  output_autoconf(s, o, "autoconf-get_user_pages_remote-flags.c",
  347. +  output_exportconf(s, o2, "get_user_pages_remote", "STAPCONF_GET_USER_PAGES_REMOTE");
  348. +  output_autoconf(s, o, cs, "autoconf-get_user_pages_remote-flags.c",
  349.           "STAPCONF_GET_USER_PAGES_REMOTE_FLAGS", NULL);
  350. -  output_autoconf(s, o, "autoconf-get_user_pages_remote-flags_locked.c",
  351. +  output_autoconf(s, o, cs, "autoconf-get_user_pages_remote-flags_locked.c",
  352.           "STAPCONF_GET_USER_PAGES_REMOTE_FLAGS_LOCKED", NULL);
  353. -  output_autoconf(s, o, "autoconf-get_user_pages-flags.c",
  354. +  output_autoconf(s, o, cs, "autoconf-get_user_pages-flags.c",
  355.           "STAPCONF_GET_USER_PAGES_FLAGS", NULL);
  356. -  output_autoconf(s, o, "autoconf-bio-bi_opf.c", "STAPCONF_BIO_BI_OPF", NULL);
  357. -  output_autoconf(s, o, "autoconf-linux-sched_headers.c",
  358. +  output_autoconf(s, o, cs, "autoconf-bio-bi_opf.c", "STAPCONF_BIO_BI_OPF", NULL);
  359. +  output_autoconf(s, o, cs, "autoconf-linux-sched_headers.c",
  360.           "STAPCONF_LINUX_SCHED_HEADERS", NULL);
  361. -  output_autoconf(s, o, "autoconf-stack-trace-save-regs.c",
  362. +  output_autoconf(s, o, cs, "autoconf-stack-trace-save-regs.c",
  363.           "STAPCONF_STACK_TRACE_SAVE_REGS", NULL);
  364.  
  365.    // used by runtime/linux/netfilter.c
  366. -  output_exportconf(s, o, "nf_register_hook", "STAPCONF_NF_REGISTER_HOOK");
  367. +  output_exportconf(s, o2, "nf_register_hook", "STAPCONF_NF_REGISTER_HOOK");
  368.  
  369.    // used by tapset/linux/ioblock.stp
  370. -  output_exportconf(s, o, "disk_get_part", "STAPCONF_DISK_GET_PART");
  371. +  output_exportconf(s, o2, "disk_get_part", "STAPCONF_DISK_GET_PART");
  372. +
  373. +  o << ".PHONY: gen-stapconf" << endl;
  374. +  o << "gen-stapconf: stapconf_export.h";
  375. +  for (unsigned i=0; i<cs.size(); i++)
  376. +    o << " " << s.tmpdir << "/" << cs[i] << ".h";
  377. +  o << endl;
  378. +
  379. +  o << "\t";
  380. +  if (s.verbose < 4)
  381. +    o << "@";
  382. +  o << "cat $^ > $(STAPCONF_HEADER)" << endl;
  383.  
  384.    o << module_cflags << " += -include $(STAPCONF_HEADER)" << endl;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement