On 16/10/2023 18:58, Greg Kroah-Hartman wrote:
On Mon, Oct 16, 2023 at 09:23:36PM +0530, Harshit Mogalapalli wrote:
Cause for this build issue: Commit: e2bf685d7e311 ("perf inject: Fix GEN_ELF_TEXT_OFFSET for jit")
And this issue is not in upstream due to presence of commit d6e6a27d960f ("tools: Fix math.h breakage") in upstream but not in 5.15.y
Ok, I'll go drop the patch entirely, I can't even get perf to build at all for me on 5.15, which is why I've given up on it even mattering anymore :(
Just for maximal clarity, there are several commits involved here:
1. babd04386b1d perf jit: Include program header in ELF files
This commit is already in 5.15.y but introduced a bug...
2. 89b15d00527b perf inject: Fix GEN_ELF_TEXT_OFFSET for jit
This commit is in this -rc1 and fixes the bug above, but introduces a new perf build failure on 5.15.y. [This is the one I think you've now dropped.]
3. d6e6a27d960f tools: Fix math.h breakage
This is a prerequisite for #2 and is not in 5.15.y. However, it has some conflicts on 5.15.y, i.e. it probably has some prerequisites of its own that I haven't looked into.
I guess the question is -- if we're dropping #2, should we drop #1 as well? Or... instead of dropping either of them we could also apply a minimal fix:
diff --git a/tools/perf/util/genelf.h b/tools/perf/util/genelf.h index 159c69bcc33e..6e202db6c4d9 100644 --- a/tools/perf/util/genelf.h +++ b/tools/perf/util/genelf.h @@ -2,7 +2,7 @@ #ifndef __GENELF_H__ #define __GENELF_H__
-#include <linux/math.h> +#include <linux/kernel.h>
/* genelf.c */ int jit_write_elf(int fd, uint64_t code_addr, const char *sym,
However, this is not what mainline does so technically it runs afoul of the stable rules (although arguably I think we could also just make this change to #2 and call it a backport).
Out of curiosity, Greg: what is your build error with perf? Given that it builds for us (and we actually package perf so we need it) it sounds like maybe you're missing a package in your environment or something? If you pass us your config + the output of
make -C tools/perf/
I'd be happy to look into it. Only if you want though :-)
Vegard