perf_make() does things like: use perl || makeargs="${makeargs} NO_LIBPERL= " the perf makefile looks like: ifdef NO_LIBPERL ... disable perl ... else ... enable perl ... endif setting NO_LIBPERL= doesn't actually disable the code. you need to do something like NO_LIBPERL=1. the code could be simplified nicely as well if you used the new usex() helper in eutils.eclass: emake \ NO_DEMANGLE=$(usex demangle no "") \ NO_LIBPERL=$(usex perl no "") \ ... (issue noticed/fixed by Sonny Rao) while you're here, you should also fix the $arch handling. pretty sure that should be doing ARCH=$(tc-arch-kernel) instead of attempting to parse it manually.
fixed myself in perf-3.2 among other things