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