On Sat, May 28, 2016 at 11:59:59AM +0000, He Kuang wrote: SNIP
> diff --git a/tools/perf/util/unwind-libunwind-local.c > b/tools/perf/util/unwind-libunwind-local.c > index b391e3e..849fec1 100644 > --- a/tools/perf/util/unwind-libunwind-local.c > +++ b/tools/perf/util/unwind-libunwind-local.c > @@ -5,7 +5,9 @@ > #include <unistd.h> > #include <sys/mman.h> > #include <linux/list.h> > +#ifndef REMOTE_UNWIND_LIBUNWIND > #include <libunwind.h> > +#endif > #include "callchain.h" > #include "thread.h" > #include "session.h" > @@ -671,7 +673,9 @@ _unwind_libunwind_ops = { > .get_entries = _unwind__get_entries, > }; > > +#ifndef REMOTE_UNWIND_LIBUNWIND > void register_local_unwind_libunwind_ops(struct thread *thread) > { > thread->unwind_libunwind_ops = &_unwind_libunwind_ops; > } > +#endif above hunks should go to separate patch however I still think it'd be more clear if we separate the code like: code template - util/unwind-libunwind.c arch template - arch/x86/util/unwind-libunwind.c wrapper for local - util/unwind-libunwind-local.c wrapper for x86_32 - arch/x86/util/unwind-libunwind-x86_32.c wrapper for arm64 - arch/x86/util/unwind-libunwind-arm64.c jirka