diff options
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | bin/automake.in | 14 |
2 files changed, 12 insertions, 8 deletions
@@ -116,6 +116,10 @@ New in 1.14.2: risks causing "Arg list too long" for projects using automatic dependency tracking and having a ton of source files (bug#18744). + - Automake tries to offer a more deterministic output for generated + Makefiles, in the face of the newly-introduced randomization for + hash keys order in Perl 5.18. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ New in 1.14.1: @@ -131,7 +135,7 @@ New in 1.14.1: was only relevant when the number of python files was high (which is unusual in practice). - - Automake try to offer a more reproducible output for warning messages, + - Automake try to offer a more deterministic output for warning messages, in the face of the newly-introduced randomization for hash keys order in Perl 5.18. diff --git a/bin/automake.in b/bin/automake.in index 283d1bbfe..785145498 100644 --- a/bin/automake.in +++ b/bin/automake.in @@ -3714,10 +3714,13 @@ sub handle_dist () } } - # Files to distributed. Don't use ->value_as_list_recursive - # as it recursively expands '$(dist_pkgdata_DATA)' etc. + # Files to distributed. Don't use ->value_as_list_recursive as it + # recursively expands '$(dist_pkgdata_DATA)' etc. + # Use 'sort' so that the expansion of $(DIST_COMMON) in the generated + # Makefile is deterministic, in face of m4 and/or perl randomizations + # (see automake bug#17908). my @dist_common = split (' ', rvar ('DIST_COMMON')->variable_value); - @dist_common = uniq (@dist_common); + @dist_common = uniq (sort @dist_common); variable_delete 'DIST_COMMON'; define_pretty_variable ('DIST_COMMON', TRUE, INTERNAL, @dist_common); @@ -7883,10 +7886,7 @@ sub generate_makefile # Helper function for usage(). sub print_autodist_files { - # NOTE: we need to call our 'uniq' function with the leading '&' - # here, because otherwise perl complains that "Unquoted string - # 'uniq' may clash with future reserved word". - my @lcomm = sort (&uniq (@_)); + my @lcomm = uniq (sort @_); my @four; format USAGE_FORMAT = |