From: Mark Wielaard Date: Sun, 26 Apr 2009 15:17:04 +0000 (+0200) Subject: Handle kprobe struct field symbol_name as either char * or const char *. X-Git-Tag: release-0.9.8~143 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=9f38e65363878d1e1bc8f51a0ad2cc4fd0316e13;p=systemtap.git Handle kprobe struct field symbol_name as either char * or const char *. Older (2.6.18) based kernels defined struct kprobes symbol_name as char *, but newer (2.6.27) based kernels defined the same field as const char *. * tapsets.cxx (kprobe_derived_probe_group::emit_module_init): Always cast to char * when assigning to kprobes.symbol_name field. --- diff --git a/tapsets.cxx b/tapsets.cxx index 4aeff5841..bc8df243a 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -8560,7 +8560,7 @@ kprobe_derived_probe_group::emit_module_init (systemtap_session& s) s.op->newline() << "probe_point = sdp->pp;"; // for error messages s.op->newline() << "if (sdp->return_p) {"; s.op->newline(1) << "kp->u.krp.kp.addr = addr;"; - s.op->newline() << "kp->u.krp.kp.symbol_name = symbol_name;"; + s.op->newline() << "kp->u.krp.kp.symbol_name = (char *) symbol_name;"; s.op->newline() << "if (sdp->maxactive_p) {"; s.op->newline(1) << "kp->u.krp.maxactive = sdp->maxactive_val;"; s.op->newline(-1) << "} else {"; @@ -8584,7 +8584,7 @@ kprobe_derived_probe_group::emit_module_init (systemtap_session& s) s.op->newline(-1) << "} else {"; // to ensure safeness of bspcache, always use aggr_kprobe on ia64 s.op->newline(1) << "kp->u.kp.addr = addr;"; - s.op->newline() << "kp->u.kp.symbol_name = symbol_name;"; + s.op->newline() << "kp->u.kp.symbol_name = (char *) symbol_name;"; s.op->newline() << "kp->u.kp.pre_handler = &enter_kprobe2_probe;"; s.op->newline() << "#ifdef __ia64__"; s.op->newline() << "kp->dummy.pre_handler = NULL;";