[FFmpeg-devel] [PATCH] configure: use ar and ranlib in deterministic mode

Michael Niedermayer michaelni at gmx.at
Mon Jan 26 23:11:33 CET 2015


On Mon, Jan 26, 2015 at 07:08:42PM -0300, James Almer wrote:
> On 26/01/15 7:04 PM, Michael Niedermayer wrote:
> > On Mon, Jan 26, 2015 at 09:56:03PM +0100, Michael Niedermayer wrote:
> >> On Wed, Jan 21, 2015 at 11:14:06PM +0100, Andreas Cadhalpun wrote:
> >>> Hi,
> >>>
> >>> ar and ranlib add timestamp and uid/gid for the object files in
> >>> static libraries.
> >>> If used in deterministic mode, these are set to zero, making the
> >>> binaries reproducible.
> >>> Attached patch achieves that.
> >>>
> >>> Best regards,
> >>> Andreas
> >>
> >>>  configure |    4 ++--
> >>>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>> cc82891432d19e330d65ab717fd2722ab3304ecc  configure-use-ar-and-ranlib-in-deterministic-mode.patch
> >>> From 1dfc47cb27ae6f3d88b8b7ca690b980842003ee7 Mon Sep 17 00:00:00 2001
> >>> From: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
> >>> Date: Wed, 21 Jan 2015 22:32:58 +0100
> >>> Subject: [PATCH] configure: use ar and ranlib in deterministic mode
> >>>
> >>> this makes the static libraries binary reproducible
> >>
> >> applied
> > 
> > reverted, breaks on BSDs
> > 
> > ar: illegal option -- D
> > Usage: ar [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...
> >        ar -M [<mri-script]
> >  commands:
> >   d            - delete file(s) from the archive
> >   m[ab]        - move file(s) in the archive
> >   p            - print file(s) found in the archive
> >   q[f]         - quick append file(s) to the archive
> >   r[ab][f][u]  - replace existing or insert new file(s) into the archive
> >   t            - display contents of archive
> >   x[o]         - extract file(s) from the archive
> >  command specific modifiers:
> >   [a]          - put file(s) after [member-name]
> >   [b]          - put file(s) before [member-name] (same as [i])
> >   [N]          - use instance [count] of name
> >   [f]          - truncate inserted file names
> >   [P]          - use full path names when matching
> >   [o]          - preserve original dates
> >   [u]          - only replace files that are newer than current archive contents
> >  generic modifiers:
> >   [c]          - do not warn if the library had to be created
> >   [s]          - create an archive index (cf. ranlib)
> >   [S]          - do not build a symbol table
> >   [v]          - be verbose
> >   [V]          - display the version number
> >  emulation options:
> >   No emulation specific options
> > ar: supported targets: elf64-x86-64 elf32-i386 a.out-i386-netbsd coff-i386 efi-app-ia32 elf64-little elf64-big elf32-little elf32-big srec symbolsrec tekhex binary ihex netbsd-core
> > gmake: *** [libavdevice/libavdevice.a] Error 1
> 
> Is it BSD, or just an old binutils version?

it seems it fails on some linux as well, so old binutils sounds
plausible


> Maybe a configure check for "ranlib -D" could be added.

yes

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Awnsering whenever a program halts or runs forever is
On a turing machine, in general impossible (turings halting problem).
On any real computer, always possible as a real computer has a finite number
of states N, and will either halt in less than N cycles or never halt.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150126/8c07a973/attachment.asc>


More information about the ffmpeg-devel mailing list