Deterministic Archives

Chris Johns chrisj at rtems.org
Fri Feb 1 01:33:35 UTC 2013


Ralf Corsepius wrote:
>
> If you're serously interested in this, bring this to the attention of
> upstream binutils, newlib, GCC and automake and have all these tools
> changed.

All you need to use is binutils 2.23.1 and then add 
'--enable-deterministic-archives' to the configure command of binutils. 
This is one line in your crossrpms scripts.

I have added this to the Source Builder and will commit the changes 
soon. The results for the SPARC arch are:

$ ./Development/rtems/da-4.11/bin/sparc-rtems4.11-ar -tvv 
Development/rtems/da-4.11/sparc-rtems4.11/lib/libc.a  | head
rw-r--r-- 0/0   3180 Jan  1 10:00 1970 lib_a-_Exit.o
rw-r--r-- 0/0   9360 Jan  1 10:00 1970 lib_a-__adjust.o
rw-r--r-- 0/0   9820 Jan  1 10:00 1970 lib_a-__atexit.o
rw-r--r-- 0/0  10256 Jan  1 10:00 1970 lib_a-__call_atexit.o
rw-r--r-- 0/0  14608 Jan  1 10:00 1970 lib_a-__dprintf.o
rw-r--r-- 0/0   3368 Jan  1 10:00 1970 lib_a-__exp10.o
rw-r--r-- 0/0   2856 Jan  1 10:00 1970 lib_a-__ten_mu.o
rw-r--r-- 0/0   5000 Jan  1 10:00 1970 lib_a-_isatty.o
rw-r--r-- 0/0   3164 Jan  1 10:00 1970 lib_a-a64l.o
rw-r--r-- 0/0   3252 Jan  1 10:00 1970 lib_a-abort.o

>
> I for one do not see much sense in this (All it does it to add
> complexity and non-portability) and therefore am opposed to doing this.
>

The change is fine, harmless and I support it. I have built the tools 
with a single line change enabling it and it seems to work as 
documented. I do not see the complexity nor portability issues.

Chris



More information about the devel mailing list