From: Joshua Watt Date: Mon, 3 Jun 2019 15:29:47 +0000 (-0500) Subject: classes/package: Sort ELF file list X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~14275 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de86bfeda6e3845336a0b56c883b49219967128f;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git classes/package: Sort ELF file list Sorts the list of detected ELF files by path before processing. This ensures that when multiple files are hardlinked together the first one found is always the same. This is required to have reproducible builds. Signed-off-by: Joshua Watt Signed-off-by: Richard Purdie --- diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 4c0a8595363..06948555042 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -1005,6 +1005,12 @@ python split_and_strip_files () { symlinks[file] = target results = oe.utils.multiprocess_launch(oe.package.is_elf, checkelf.keys(), d) + + # Sort results by file path. This ensures that the files are always + # processed in the same order, which is important to make sure builds + # are reproducible when dealing with hardlinks + results.sort(key=lambda x: x[0]) + for (file, elf_file) in results: # It's a file (or hardlink), not a link # ...but is it ELF, and is it already stripped?