From 0965f4894967266e51f60f44dd2689845a380a54 Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Mon, 3 Jun 2019 10:29:47 -0500 Subject: 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. (From OE-Core rev: de86bfeda6e3845336a0b56c883b49219967128f) Signed-off-by: Joshua Watt Signed-off-by: Richard Purdie --- meta/classes/package.bbclass | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'meta/classes/package.bbclass') diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 4c0a859536..0694855504 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? -- cgit v1.2.3-54-g00ecf