[FFmpeg-devel] [PATCH] configure: use ar and ranlib in deterministic mode
James Almer
jamrial at gmail.com
Mon Jan 26 23:08:42 CET 2015
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?
Maybe a configure check for "ranlib -D" could be added.
More information about the ffmpeg-devel
mailing list