Why not remove or normalise the timestamp in the prelink output?
I made a local version of prelink that avoided the use of time(2) in
setting the timestamp, and then compared the result against the system
version or prelink:
# prelink -u /tmp/libxml2.so
# prelink /tmp/libxml2.so
# md5sum /tmp/libxml2.so
f2ca3c0a897d1140e02e725a294e7cbb /tmp/libxml2.so
# prelink -u /tmp/libxml2.so
# prelink /tmp/libxml2.so
# md5sum /tmp/libxml2.so
b98f4d68d312711562f801be05f30c95 /tmp/libxml2.so
# /tmp/prelink-0.0.20090925/src/prelink -u /tmp/libxml2.so
# /tmp/prelink-0.0.20090925/src/prelink /tmp/libxml2.so
# md5sum /tmp/libxml2.so
b356653156f963c1c5561f4025a53026 /tmp/libxml2.so
# /tmp/prelink-0.0.20090925/src/prelink -u /tmp/libxml2.so
# /tmp/prelink-0.0.20090925/src/prelink /tmp/libxml2.so
# md5sum /tmp/libxml2.so
b356653156f963c1c5561f4025a53026 /tmp/libxml2.so
#
The md5sum no longer changes. Therefore the md5sum changes you observe
are due to the system time when prelink is run.
In place of a zero time_t, the OLPC_EPOCH may be more suitable.
I did not investigate adjusting the output file directly, but it should
be possible.
The change I made to prelink is attached as a patch.
--
James Cameron
http://quozl.linux.org.au/
--- prelink.c.orig 2011-05-18 09:34:51.000000000 +1000
+++ prelink.c 2011-05-18 09:34:57.000000000 +1000
@@ -793,7 +793,7 @@
DSO *dso = info->dso;
if (! verify)
- info->ent->timestamp = (GElf_Word) time (NULL);
+ info->ent->timestamp = 0;
dso->info_DT_GNU_PRELINKED = info->ent->timestamp;
if (prelink_set_checksum (dso))
return 1;
_______________________________________________
Devel mailing list
[email protected]
http://lists.laptop.org/listinfo/devel