Timestamps in static libraries

Erik Cederstrand erik at cederstrand.dk
Tue Oct 5 13:39:03 UTC 2010


Hello hackers,

I got reminded of a problem I had a couple of years back compressing FreeBSD jails. I was using bsdiff for the compression and found out that md5 sums of static libraries (.a files) in /usr/lib and /usr/local/lib didn't match between jails, even though the source code used to create the jails hadn't changed. One of my goals is to detect which files in a distribution change between two commits.

It turns out that timestamps are stored in the library:

# strings DIR1/usr/lib/libfetch.a > tmp1
# strings DIR2/usr/lib/libfetch.a > tmp2
# diff tmp1 tmp2
2c2
< /               1200728973  0     0     0       954       `
---
> /               1200723259  0     0     0       954       `
57c57
< file.o/         1200728973  0     0     100644  2356      `
---
> file.o/         1200723259  0     0     100644  2356      `
86c86
< http.o/         1200728973  0     0     100644  17180     `
---
> http.o/         1200723258  0     0     100644  17180     `
[...]

I'm wondering if this is necessary, or if this can possibly be turned of with a knob somewhere.

Thanks,

Erik


More information about the freebsd-hackers mailing list