Hello Marc,> On Tue, Aug 26, 2025 at 11:24:48AM +0200, kpcyrd wrote:
I'm not sure if Makefile wildcards (like `foo: *.o`) are still unsorted, but if there's something like `gcc -o foo $(find -name '*.o')` that's going to be an issue.

I wildcards being used in the Makefile here:

CFILES = $(filter-out tests.c,$(wildcard *.c))
DIST_SOURCES:=$(CFILES) $(wildcard *.h) LICENSE Makefile

Did I understand correctly that this should be:

CFILES = $(filter-out tests.c,$(wildcard *.c | sort))
DIST_SOURCES:=$(CFILES) $(wildcard *.h | sort) LICENSE Makefile

That didn't improve things though, diffoscope output is still 24000 lines: https://salsa.debian.org/debian/duperemove/-/jobs/8159762

Have you tried to use 'disorderfs' [1][2]? If you build twice: once on a sorted and once on a reverse-sorted file system, you might see the places where ordering by the file system is important for the binary artifact.

While doing sort, you could use 'LC_ALL="C"', to ensure ASCII-based sorting (some locales place e.g. u-umlaut after z, other locales between u and v)

With kind regards,
Roland Clobus

[1] https://reproducible-builds.org/tools/
[2] https://manpages.debian.org/trixie/disorderfs/disorderfs.1.en.html

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to