e1daacf987
pahole's processes DWARF -> BTF in a pseudo-random order if multi threading is enabled (default in the Linux kernel). This can be fixed in dependent derivation by making sure users don't ever pass "-j" or "-j N", but it seems easier and safer to just detect whether reprodubility is desired (by proxy: if SOURCE_DATE_EPOCH is set) and ignore the multi-threading flag.
18 lines
665 B
Diff
18 lines
665 B
Diff
diff --git a/pahole.c b/pahole.c
|
|
index 6fc4ed6..a4e306f 100644
|
|
--- a/pahole.c
|
|
+++ b/pahole.c
|
|
@@ -1687,8 +1687,11 @@ static error_t pahole__options_parser(int key, char *arg,
|
|
class_name = arg; break;
|
|
case 'j':
|
|
#if _ELFUTILS_PREREQ(0, 178)
|
|
- conf_load.nr_jobs = arg ? atoi(arg) :
|
|
- sysconf(_SC_NPROCESSORS_ONLN) * 1.1;
|
|
+ // Force single thread if reproducibility is desirable.
|
|
+ if (!getenv("SOURCE_DATE_EPOCH")) {
|
|
+ conf_load.nr_jobs = arg ? atoi(arg) :
|
|
+ sysconf(_SC_NPROCESSORS_ONLN) * 1.1;
|
|
+ }
|
|
#else
|
|
fputs("pahole: Multithreading requires elfutils >= 0.178. Continuing with a single thread...\n", stderr);
|
|
#endif
|