[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Repeatable checksums on object files + Shared Objects
From: |
Jeff Kilpatrick |
Subject: |
Repeatable checksums on object files + Shared Objects |
Date: |
Tue, 30 Nov 2010 08:55:11 -0800 (PST) |
User-agent: |
G2/1.0 |
Hello,
At my work place, we have a business requirement to produce
reproducible builds and build artifacts. That is, all our .o's
and .so's must have consistent checksums, when using the same compiler
and libraries, across multiple builds, with no code changes. In
practice, this works the majority of the time. We do hundreds of
builds a week with repeatable checksums.
However, from time to time, the checksums don't match. Using objdump -
x, we have isolated the problem to the index number of some symbols,
where two symbols will switch spots.
For example:
100 Symbol1
101 Symbol2
would appear:
100 Symbol2
101 Symbol1
Is there any way to take it deeper to find out why on some machines,
the symbols are in the first order, while other machines (with same
dependency, OS, compilers, etc) produce the second order? Or is their
a way to tell g++ symbols in a particular order?
Thanks,
-Jeff
- Repeatable checksums on object files + Shared Objects,
Jeff Kilpatrick <=