From unknown Fri Jun 20 07:28:20 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#48721 <48721@debbugs.gnu.org> To: bug#48721 <48721@debbugs.gnu.org> Subject: Status: [PATCH] gnu: gcc-8: Make static libs reproducible Reply-To: bug#48721 <48721@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:28:20 +0000 retitle 48721 [PATCH] gnu: gcc-8: Make static libs reproducible reassign 48721 guix-patches submitter 48721 Carl Dong severity 48721 normal tag 48721 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Fri May 28 16:24:15 2021 Received: (at submit) by debbugs.gnu.org; 28 May 2021 20:24:15 +0000 Received: from localhost ([127.0.0.1]:55439 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmj1h-0002mU-0L for submit@debbugs.gnu.org; Fri, 28 May 2021 16:24:15 -0400 Received: from lists.gnu.org ([209.51.188.17]:34108) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmj1N-0002lV-5f for submit@debbugs.gnu.org; Fri, 28 May 2021 16:24:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42082) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lmj1L-0002Uu-Ru for guix-patches@gnu.org; Fri, 28 May 2021 16:23:52 -0400 Received: from wout3-smtp.messagingengine.com ([64.147.123.19]:50855) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lmj1H-00065V-6D for guix-patches@gnu.org; Fri, 28 May 2021 16:23:51 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 0140118D0; Fri, 28 May 2021 16:23:43 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Fri, 28 May 2021 16:23:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=carldong.me; h= from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; s=fm1; bh=iaCkUNn/iFSPm9LM8/0mH2nHD5 qysK1HspG4gzS2R1w=; b=gCcMJ3CnkRSgc0y+8JDSWP0F6xUowQu73dPbUgctC6 hFYL1fJwTwFkq3+e7UW0dk39iw5YWA86epVyRybzLrqQ+xa6m/nsfLXzdsrdE0B6 j0uYZdm9vy4GGvfzrZsKYZ9S3MirVYh0zB7RnugEcwSGFTiJktcecBHUkRTSVBId e0Guf8i3JUCSpz2eb3Z5+gFfUdZ8BWaognsKMc9sz37qJvf2XhIzBSJXZRn2yE7q FhKBvaiPH+DVzlmaEPlSPL+tzQgWso5sKKOgIrj9C0lUqhEGqJ/504kA1rOFwFRu QIhmhrTggTknr71FJawtvKDhkRXkE5Nell6Mvdlcel4g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :message-id:mime-version:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=iaCkUNn/iFSPm9LM8 /0mH2nHD5qysK1HspG4gzS2R1w=; b=JkEg4WyJOekQrE7jt/+6fCVwxfH98kEke tAktPaRhBXot32QRmeeaInj03nYPtED4P87tEsxjl4zG5rB3ccrZcACa6j1zX1yR +Ko+FKSBqYJL9Lc3X4GuX+DQTm9tBf4YQjGlpH8u4z1jlfYllWvMt/bB/D8Hh0sN fvhhQHAS/0tCuQRUIpYOSmYAWNvkZBiG2AW+Utir8Rod0L+sRG4fE/JkvOCeqcw7 LN04AzaYFkr6gbpjbaljNm1AEwhy0DTk7shZLsDMoBu5a9RhDaUOLpbaUe9iiyzL Xuex6bD63dKe0mHEOetGa71GJNlLODSrYmLa0+SdtrljaPbn4ubSg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrvdekjedgudeglecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkffoggfgsedtkeertd ertddtnecuhfhrohhmpeevrghrlhcuffhonhhguceotghonhhtrggtthestggrrhhlugho nhhgrdhmvgeqnecuggftrfgrthhtvghrnhepkedtkeektdelgedutdefieeiuddttddvge eigeevvdefjedvudekudekkeeuteffnecuffhomhgrihhnpehrvghprhhoughutghisghl vgdqsghuihhlughsrdhorhhgnecukfhppeegrdehfedrledvrdduudegnecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheptghonhhtrggtthestggr rhhlughonhhgrdhmvg X-ME-Proxy: Received: from dai.int.chaincode.com (unknown [4.53.92.114]) by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 28 May 2021 16:23:43 -0400 (EDT) From: Carl Dong To: guix-patches@gnu.org Subject: [PATCH] gnu: gcc-8: Make static libs reproducible Date: Fri, 28 May 2021 16:23:35 -0400 Message-Id: <20210528202335.3442779-1-contact@carldong.me> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=64.147.123.19; envelope-from=contact@carldong.me; helo=wout3-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: submit Cc: Carl Dong X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) This fixes the nonreproducibility in gcc documented here: https://reproducible-builds.org/docs/archives/#gnu-libtool * gnu/packages/patches/gcc-8-sort-libtool-find-output.patch: New patch. * gnu/packages/gcc.scm (gcc-8)[source]: Apply it. --- gnu/packages/gcc.scm | 3 +- .../gcc-8-sort-libtool-find-output.patch | 392 ++++++++++++++++++ 2 files changed, 394 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gcc-8-sort-libtool-find-output.patch diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index ad3706359d..23ec9e1c5f 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -563,7 +563,8 @@ It also includes runtime support libraries for these languages."))) (base32 "0l7d4m9jx124xsk6xardchgy2k5j5l2b15q322k31f0va4d8826k")) (patches (search-patches "gcc-8-strmov-store-file-names.patch" - "gcc-5.0-libvtv-runpath.patch")))))) + "gcc-5.0-libvtv-runpath.patch" + "gcc-8-sort-libtool-find-output.patch")))))) (define-public gcc-9 (package diff --git a/gnu/packages/patches/gcc-8-sort-libtool-find-output.patch b/gnu/packages/patches/gcc-8-sort-libtool-find-output.patch new file mode 100644 index 0000000000..1dfe3ba132 --- /dev/null +++ b/gnu/packages/patches/gcc-8-sort-libtool-find-output.patch @@ -0,0 +1,392 @@ +diff --git a/gcc/configure b/gcc/configure +index 97ba7d7d69c..e37a96f0c0c 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -19720,20 +19720,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libcc1/configure b/libcc1/configure +index f53a121611c..5740ca90cab 100755 +--- a/libcc1/configure ++++ b/libcc1/configure +@@ -12221,20 +12221,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libffi/configure b/libffi/configure +index 790a291011f..54b1ac18306 100755 +--- a/libffi/configure ++++ b/libffi/configure +@@ -12661,20 +12661,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libgo/config/libtool.m4 b/libgo/config/libtool.m4 +index f7005947454..8a84417b828 100644 +--- a/libgo/config/libtool.m4 ++++ b/libgo/config/libtool.m4 +@@ -6010,20 +6010,20 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libgo/config/ltmain.sh b/libgo/config/ltmain.sh +index ce66b44906a..0f81c401407 100644 +--- a/libgo/config/ltmain.sh ++++ b/libgo/config/ltmain.sh +@@ -2917,7 +2917,7 @@ func_extract_archives () + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do +- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` ++ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ +@@ -2932,7 +2932,7 @@ func_extract_archives () + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac +- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` ++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +diff --git a/libhsail-rt/configure b/libhsail-rt/configure +index a4fcc10c1f9..8e671229fcd 100755 +--- a/libhsail-rt/configure ++++ b/libhsail-rt/configure +@@ -12244,20 +12244,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libitm/configure b/libitm/configure +index dbf386db434..29d4f10611f 100644 +--- a/libitm/configure ++++ b/libitm/configure +@@ -13067,20 +13067,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/liboffloadmic/configure b/liboffloadmic/configure +index f873716991b..7aa9186b10e 100644 +--- a/liboffloadmic/configure ++++ b/liboffloadmic/configure +@@ -12379,20 +12379,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/liboffloadmic/plugin/configure b/liboffloadmic/plugin/configure +index c031eb3e7fa..67fc7368f21 100644 +--- a/liboffloadmic/plugin/configure ++++ b/liboffloadmic/plugin/configure +@@ -12086,20 +12086,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libsanitizer/configure b/libsanitizer/configure +index 4695bc7d4f7..cb7d25c07e6 100755 +--- a/libsanitizer/configure ++++ b/libsanitizer/configure +@@ -13308,20 +13308,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure +index 61457e940ec..21ef1f61e41 100755 +--- a/libstdc++-v3/configure ++++ b/libstdc++-v3/configure +@@ -13087,20 +13087,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libtool.m4 b/libtool.m4 +index 24d13f34409..940faaa161d 100644 +--- a/libtool.m4 ++++ b/libtool.m4 +@@ -6005,20 +6005,20 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libvtv/configure b/libvtv/configure +index a197f750453..31ab3a0637b 100755 +--- a/libvtv/configure ++++ b/libvtv/configure +@@ -13339,20 +13339,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/ltmain.sh b/ltmain.sh +index 9503ec85d70..79f9ba89af5 100644 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -2917,7 +2917,7 @@ func_extract_archives () + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do +- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` ++ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ +@@ -2932,7 +2932,7 @@ func_extract_archives () + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac +- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` ++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" -- 2.31.1 From debbugs-submit-bounces@debbugs.gnu.org Sat May 29 13:09:14 2021 Received: (at 48721) by debbugs.gnu.org; 29 May 2021 17:09:15 +0000 Received: from localhost ([127.0.0.1]:57641 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ln2SY-0001Ws-K6 for submit@debbugs.gnu.org; Sat, 29 May 2021 13:09:14 -0400 Received: from eggs.gnu.org ([209.51.188.92]:56074) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ln2SX-0001Wf-Lk for 48721@debbugs.gnu.org; Sat, 29 May 2021 13:09:14 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:48156) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ln2SS-0007ZD-Dq; Sat, 29 May 2021 13:09:08 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=40590 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ln2SS-0005hh-5R; Sat, 29 May 2021 13:09:08 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Carl Dong Subject: Re: bug#48721: [PATCH] gnu: gcc-8: Make static libs reproducible References: <20210528202335.3442779-1-contact@carldong.me> Date: Sat, 29 May 2021 19:09:06 +0200 In-Reply-To: <20210528202335.3442779-1-contact@carldong.me> (Carl Dong's message of "Fri, 28 May 2021 16:23:35 -0400") Message-ID: <87lf7x79hp.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48721 Cc: Chris Marusich , 48721@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Carl, Carl Dong skribis: > This fixes the nonreproducibility in gcc documented here: > https://reproducible-builds.org/docs/archives/#gnu-libtool > > * gnu/packages/patches/gcc-8-sort-libtool-find-output.patch: New patch. > * gnu/packages/gcc.scm (gcc-8)[source]: Apply it. Well done. Did you observe it in practice? (On =E2=80=98core-updates=E2= =80=99 maybe?) I wonder if this explains the issues that Chris Marusich and L=C3=A9o stumbled upon while working on the POWER9 port. I=E2=80=99m surprised that this is still an issue since this was fixed in Libtool proper long ago, probably before GCC 8 was released. > gnu/packages/gcc.scm | 3 +- > .../gcc-8-sort-libtool-find-output.patch | 392 ++++++++++++++++++ > diff --git a/gnu/packages/patches/gcc-8-sort-libtool-find-output.patch b/= gnu/packages/patches/gcc-8-sort-libtool-find-output.patch > new file mode 100644 > index 0000000000..1dfe3ba132 > --- /dev/null > +++ b/gnu/packages/patches/gcc-8-sort-libtool-find-output.patch Please add a line or two explaining what it does, or =E2=80=98guix lint=E2= =80=99 will be unhappy. :-) > @@ -0,0 +1,392 @@ > +diff --git a/gcc/configure b/gcc/configure > +index 97ba7d7d69c..e37a96f0c0c 100755 > +--- a/gcc/configure > ++++ b/gcc/configure > +@@ -19720,20 +19720,20 @@ if test -z "$aix_libpath"; then aix_libpath=3D= "/usr/lib:/lib"; fi > + prelink_cmds_CXX=3D'tpldir=3DTemplate.dir~ > + rm -rf $tpldir~ > + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $com= pile_deplibs~ > +- compile_command=3D"$compile_command `find $tpldir -name \*.o | $NL2SP= `"' > ++ compile_command=3D"$compile_command `find $tpldir -name \*.o | sort |= $NL2SP`"' > + old_archive_cmds_CXX=3D'tpldir=3DTemplate.dir~ > + rm -rf $tpldir~ > + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplib= s~ > +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | = $NL2SP`~ > ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | = sort | $NL2SP`~ The patch is big, but it looks like using =E2=80=98substitute*=E2=80=99 wou= ldn=E2=80=99t be an easy task, so maybe it=E2=80=99s better this way. WDYT? Thanks! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 03 16:17:43 2021 Received: (at 48721) by debbugs.gnu.org; 3 Jun 2021 20:17:43 +0000 Received: from localhost ([127.0.0.1]:44744 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lotmb-0002Au-Ac for submit@debbugs.gnu.org; Thu, 03 Jun 2021 16:17:43 -0400 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:36841) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lotmY-0002Af-Mo for 48721@debbugs.gnu.org; Thu, 03 Jun 2021 16:17:36 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 966FF10BC; Thu, 3 Jun 2021 16:17:28 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Thu, 03 Jun 2021 16:17:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=carldong.me; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm1; bh=wQppiZiYCkN2C m37Y8kAadGyzU7kSHK8pN4hE95Bd18=; b=LQGrPG6uVMNFuLpEiPqn/p6zvwK/b 727dfa53CkESTFa+Yj22UupbOvKM8nHeScP0xl2tIXRocCLI0b4XQE9VCrfq+0vV kODoJc84L4fBBbAPugmDiKGk1H9d4TQUXw29P44KJMecmnYSARHCckiMwUaK6SRi d/jgYFcqYJTI5PrGTrs2H4M7Ax1ZuF0K92zSd+e8o8l1JVH/yihcdqZvFHrQaGLZ 5wyn5aslTROWovEFnxx23xAXi7lw6gvW/y6JiwMrnBcwP3L4KAd9jaZZPZ9F5uyL OrlFXk/GUFBbCrs7o6Db/lSBDnzbCCxyM5+4XM34WnDy0o9HeEgZjFc7w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=wQppiZiYCkN2Cm37Y8kAadGyzU7kSHK8pN4hE95Bd18=; b=NSNPjUzL HMaCGIZavfYOsNb2VVxpo3bXGVmyGghYJjl2U0SWCt85R6NGsFXYLdZoEMQv+W/j 9K4hz6RuYGY+J8OZ3TA8zA+dv1QfoGSXXwOZLD/jJWAom0c/rSfaebn9sxHhhDpP BqVEZ1CGB4Fruss2VccrRLISHc9eCP/Xv5r9LCc9fbVI6EvOYRQjAi7hq8a5g0gy g9mDTUs81o2T56PC6d829aHX1/p7ItQ2hhBO84LvqhLi9+k+LCB6WZrlURikUKG3 NMwgezvQZ9To54JLZ3vbLaPYzw2+0KIyRv1HZVXBqz8/SkDhxEqh6Y73UWVOcGSQ TJoORu5H8UeqmA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrvdelledgudegjecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkffojghfggfgsedtke ertdertddtnecuhfhrohhmpeevrghrlhcuffhonhhguceotghonhhtrggtthestggrrhhl ughonhhgrdhmvgeqnecuggftrfgrthhtvghrnhepjeeutefhtdekfeegffeuheefhedtgf fhgfekgfejtdehudegveeggeefhffhgfehnecuffhomhgrihhnpehgnhhurdhorhhgpdhr vghprhhoughutghisghlvgdqsghuihhlughsrdhorhhgnecuvehluhhsthgvrhfuihiivg eptdenucfrrghrrghmpehmrghilhhfrhhomheptghonhhtrggtthestggrrhhlughonhhg rdhmvg X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 3 Jun 2021 16:17:27 -0400 (EDT) From: Carl Dong To: ludo@gnu.org Subject: [PATCH v2] gnu: gcc-8: Make static libs reproducible Date: Thu, 3 Jun 2021 16:05:19 -0400 Message-Id: <20210603200518.1125690-1-contact@carldong.me> X-Mailer: git-send-email 2.31.1 In-Reply-To: <87lf7x79hp.fsf@gnu.org> References: <87lf7x79hp.fsf@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 48721 Cc: cmmarusich@gmail.com, Carl Dong , 48721@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Here's a v2 of the patch, let me know if this suffices! > Well done. Did you observe it in practice? (On ‘core-updates’ maybe?) Thanks! Yes, we observed it when switching back from gcc-9 to gcc-8 for compiling Bitcoin Core. We use -static-libstdc++, which means that any non-reproducibility in libstdc++.a propagates into our produced binaries as well. To be clear, I was only able to identify the problem and fix thanks to your patch here: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/patches/dico-libtool-deterministic.patch?h=b6094b1f0a6760b9f5296364cf5edb8a2e64953c > I’m surprised that this is still an issue since this was fixed in > Libtool proper long ago, probably before GCC 8 was released. Right, unfortunately GCC maintains their own version of libtool, which hasn't been synced with upstream for a while. I documented the details here: https://reproducible-builds.org/docs/archives/#gnu-libtool > The patch is big, but it looks like using ‘substitute*’ wouldn’t be an > easy task, so maybe it’s better this way. WDYT? Right, I think it'd be hard to construct a robust substitute* for this that doesn't have false negatives/positives. --- This fixes the nonreproducibility in gcc documented here: https://reproducible-builds.org/docs/archives/#gnu-libtool * gnu/packages/patches/gcc-8-sort-libtool-find-output.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/gcc.scm (gcc-8)[source]: Apply it. --- gnu/local.mk | 1 + gnu/packages/gcc.scm | 3 +- .../gcc-8-sort-libtool-find-output.patch | 399 ++++++++++++++++++ 3 files changed, 402 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gcc-8-sort-libtool-find-output.patch diff --git a/gnu/local.mk b/gnu/local.mk index d5a832146e..a1c087d617 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1065,6 +1065,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-7-cross-environment-variables.patch \ %D%/packages/patches/gcc-7-cross-toolexeclibdir.patch \ %D%/packages/patches/gcc-8-cross-environment-variables.patch \ + %D%/packages/patches/gcc-8-sort-libtool-find-output.patch \ %D%/packages/patches/gcc-8-strmov-store-file-names.patch \ %D%/packages/patches/gcc-9-asan-fix-limits-include.patch \ %D%/packages/patches/gcc-9-strmov-store-file-names.patch \ diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index b0d4719319..99691998b3 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -551,7 +551,8 @@ It also includes runtime support libraries for these languages."))) (base32 "0l7d4m9jx124xsk6xardchgy2k5j5l2b15q322k31f0va4d8826k")) (patches (search-patches "gcc-8-strmov-store-file-names.patch" - "gcc-5.0-libvtv-runpath.patch")))))) + "gcc-5.0-libvtv-runpath.patch" + "gcc-8-sort-libtool-find-output.patch")))))) (define-public gcc-9 (package diff --git a/gnu/packages/patches/gcc-8-sort-libtool-find-output.patch b/gnu/packages/patches/gcc-8-sort-libtool-find-output.patch new file mode 100644 index 0000000000..5bdb15a1c4 --- /dev/null +++ b/gnu/packages/patches/gcc-8-sort-libtool-find-output.patch @@ -0,0 +1,399 @@ +Sort find output in autotool files to ensure reproducibility. + +Without sorting find output, static archives (such as libstdc++.a) are +unreproducible as wildcard find output has no ordering guarantees. + +Documented here: https://reproducible-builds.org/docs/archives/#gnu-libtool + +diff --git a/gcc/configure b/gcc/configure +index 97ba7d7d69c..e37a96f0c0c 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -19720,20 +19720,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libcc1/configure b/libcc1/configure +index f53a121611c..5740ca90cab 100755 +--- a/libcc1/configure ++++ b/libcc1/configure +@@ -12221,20 +12221,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libffi/configure b/libffi/configure +index 790a291011f..54b1ac18306 100755 +--- a/libffi/configure ++++ b/libffi/configure +@@ -12661,20 +12661,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libgo/config/libtool.m4 b/libgo/config/libtool.m4 +index f7005947454..8a84417b828 100644 +--- a/libgo/config/libtool.m4 ++++ b/libgo/config/libtool.m4 +@@ -6010,20 +6010,20 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libgo/config/ltmain.sh b/libgo/config/ltmain.sh +index ce66b44906a..0f81c401407 100644 +--- a/libgo/config/ltmain.sh ++++ b/libgo/config/ltmain.sh +@@ -2917,7 +2917,7 @@ func_extract_archives () + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do +- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` ++ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ +@@ -2932,7 +2932,7 @@ func_extract_archives () + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac +- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` ++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +diff --git a/libhsail-rt/configure b/libhsail-rt/configure +index a4fcc10c1f9..8e671229fcd 100755 +--- a/libhsail-rt/configure ++++ b/libhsail-rt/configure +@@ -12244,20 +12244,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libitm/configure b/libitm/configure +index dbf386db434..29d4f10611f 100644 +--- a/libitm/configure ++++ b/libitm/configure +@@ -13067,20 +13067,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/liboffloadmic/configure b/liboffloadmic/configure +index f873716991b..7aa9186b10e 100644 +--- a/liboffloadmic/configure ++++ b/liboffloadmic/configure +@@ -12379,20 +12379,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/liboffloadmic/plugin/configure b/liboffloadmic/plugin/configure +index c031eb3e7fa..67fc7368f21 100644 +--- a/liboffloadmic/plugin/configure ++++ b/liboffloadmic/plugin/configure +@@ -12086,20 +12086,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libsanitizer/configure b/libsanitizer/configure +index 4695bc7d4f7..cb7d25c07e6 100755 +--- a/libsanitizer/configure ++++ b/libsanitizer/configure +@@ -13308,20 +13308,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure +index 61457e940ec..21ef1f61e41 100755 +--- a/libstdc++-v3/configure ++++ b/libstdc++-v3/configure +@@ -13087,20 +13087,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libtool.m4 b/libtool.m4 +index 24d13f34409..940faaa161d 100644 +--- a/libtool.m4 ++++ b/libtool.m4 +@@ -6005,20 +6005,20 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/libvtv/configure b/libvtv/configure +index a197f750453..31ab3a0637b 100755 +--- a/libvtv/configure ++++ b/libvtv/configure +@@ -13339,20 +13339,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +diff --git a/ltmain.sh b/ltmain.sh +index 9503ec85d70..79f9ba89af5 100644 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -2917,7 +2917,7 @@ func_extract_archives () + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do +- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` ++ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ +@@ -2932,7 +2932,7 @@ func_extract_archives () + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac +- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` ++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" -- 2.31.1 From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 04 03:23:33 2021 Received: (at 48721) by debbugs.gnu.org; 4 Jun 2021 07:23:33 +0000 Received: from localhost ([127.0.0.1]:45222 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lp4B3-0006AE-2x for submit@debbugs.gnu.org; Fri, 04 Jun 2021 03:23:33 -0400 Received: from mail-pj1-f42.google.com ([209.85.216.42]:46694) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lp4Ax-00069v-CA for 48721@debbugs.gnu.org; Fri, 04 Jun 2021 03:23:32 -0400 Received: by mail-pj1-f42.google.com with SMTP id pi6-20020a17090b1e46b029015cec51d7cdso5333616pjb.5 for <48721@debbugs.gnu.org>; Fri, 04 Jun 2021 00:23:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=7SzmIpJB1OU/FpRK16woHdbon+nzoHytjoORC6Q2Klw=; b=uBS6s+e0pRgdmTaUChSaUxD2mOwRkCvEbO8BGJOfaUgZWHNH9j4rGd6eWWz7vhgXx3 F97PabTXRQ/2HCSSTjAB0GOzd7u0PoCfPw6YPxwqXEiSXnUHTmlQV4ERTH2+LQlBgC8u K9/+1nbv0jKUyH9XwKpLlR4r/pda5cvw0joS2SkgNpCh8cNNaXzYjd4qwqYTe/CxvAPE RTHZECpA6nDZ0lyA1aGPq20Fz3CRuISwvJaus7EObP1TtCwwq9tfjV6AkdZMffhMjUjw tJirpFra3zmeM7DFrVnhWeYf/d9OJBQHKDOPLkJiwiy1VluxI0ESRoL5XcbO7qW0hYtP /bMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=7SzmIpJB1OU/FpRK16woHdbon+nzoHytjoORC6Q2Klw=; b=S+71ao8ww+rXCPjh19UjQ46UaD/A0uivcWpE2bp5aNkDzo7It4V9ZI6YVkRvyYM9AM WPSyFKcnTY1sV4bRyU3zCnNBnFeBU0aOAc+Y4Q/HXk2sqgbRPEFjAzwCniSaRGUpYm1b ohqRyDAvhTN8sT51j5qS5EN7CgMpMAyo/FKuKn1Jgs36ewpNWCx8YT1bC4F43tg0zFoz VB2fWGcAU50NK6Yzso7dEshLmEr0V2wbEB3Ff3dTe6qinomRy1cZgHUwsN7RuaMrlcZI sudFRZnsXm5giUdiqJmcCju7G96VnWHevuYwHYw7ReZW27ZNGLpmBJp20aKon1avoX53 zvLQ== X-Gm-Message-State: AOAM533g0xE/VFYX8mJek6oXaXUAxbzYhYTXMmcrR+MDaonkXNmzwykI 4IqPJrDL43oM4EL1kzjVjGOOW7tjc3o= X-Google-Smtp-Source: ABdhPJzdgGCImKmLWCwSF68U+z+FaT/l4wkTAvtvWktTBPQSxDiwvzByfPXMRCPvcFjPWysCcfnjvw== X-Received: by 2002:a17:90a:a395:: with SMTP id x21mr3455283pjp.63.1622791401098; Fri, 04 Jun 2021 00:23:21 -0700 (PDT) Received: from garuda-lan ([2601:601:9d01:3f90::b043]) by smtp.gmail.com with ESMTPSA id gk21sm2295638pjb.22.2021.06.04.00.23.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jun 2021 00:23:20 -0700 (PDT) From: Chris Marusich To: Carl Dong Subject: Re: [PATCH v2] gnu: gcc-8: Make static libs reproducible References: <87lf7x79hp.fsf@gnu.org> <20210603200518.1125690-1-contact@carldong.me> Date: Fri, 04 Jun 2021 00:23:16 -0700 In-Reply-To: <20210603200518.1125690-1-contact@carldong.me> (Carl Dong's message of "Thu, 3 Jun 2021 16:05:19 -0400") Message-ID: <878s3qt7ob.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 48721 Cc: ludo@gnu.org, 48721@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Carl, Thank you so much for looking into this! The patch looks reasonable to me. I am definitely curious to try a fixed version of GCC (8 or otherwise) to see if it helps to solve 41669! Carl Dong writes: > Here's a v2 of the patch, let me know if this suffices! > >> Well done. Did you observe it in practice? (On =E2=80=98core-updates= =E2=80=99 maybe?) > > Thanks! Yes, we observed it when switching back from gcc-9 to gcc-8 for > compiling Bitcoin Core. We use -static-libstdc++, which means that any > non-reproducibility in libstdc++.a propagates into our produced binaries = as > well. > > To be clear, I was only able to identify the problem and fix thanks to yo= ur > patch here: > https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/patches/dico= -libtool-deterministic.patch?h=3Db6094b1f0a6760b9f5296364cf5edb8a2e64953c > > >> I=E2=80=99m surprised that this is still an issue since this was fixed in >> Libtool proper long ago, probably before GCC 8 was released. > > Right, unfortunately GCC maintains their own version of libtool, which ha= sn't > been synced with upstream for a while. I documented the details here: > https://reproducible-builds.org/docs/archives/#gnu-libtool > >> The patch is big, but it looks like using =E2=80=98substitute*=E2=80=99 = wouldn=E2=80=99t be an >> easy task, so maybe it=E2=80=99s better this way. WDYT? > > Right, I think it'd be hard to construct a robust substitute* for this th= at > doesn't have false negatives/positives. I agree; a patch seems best. > --- > > This fixes the nonreproducibility in gcc documented here: > https://reproducible-builds.org/docs/archives/#gnu-libtool > > * gnu/packages/patches/gcc-8-sort-libtool-find-output.patch: New patch. > * gnu/local.mk (dist_patch_DATA): Register it. > * gnu/packages/gcc.scm (gcc-8)[source]: Apply it. Can this patch also be applied to earlier versions of GCC, such as gcc-7, which is currently the default GCC used for basically everything on Guix's master branch? Or is it too different? =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJJBAEBCAAzFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAmC51OQVHGNtbWFydXNp Y2hAZ21haWwuY29tAAoJEN1AmhXYIkadHVAP/0+bf97wQSS8N3449cawLHJzv1Uw 2gDP71J9UPDdxaXfTIavYsmqzwrPhTt2lIN7LBZ9t2Gs2/eN5o52Krru+sHEb/GF nWYt2ENxBYzladyfA+8PgCwEfeDnV3K7s7pK7YMDv0AhlnmsVMFkzO7F6yiAN4Wt t3gUyZaoDg3hcWzlkVBPofKNp9bj8+wM4ph48PkWlPr23Ynez+qnJgr3+99AAAse HQZhvkpPzi5ORLoStXlIUFQFeoORCtgw6WImr+2QvP9dNDZn7t2Foy/sEDuz8UF5 wnzcE/s9zghEMpdtwplxbEsHbamP2NJt0j4y9ztPcU+VG6y2NoqK9aRo9XBiwe3O 2v3NGQx7CEEkd5wUjG7To3J8hlFMJK6pc9Te5NaN0lRtbqgAhfgGakFx2nIpti7I LeWF5bzq+kAcKJ5j1z9W7EqMtkJOPkOncDA2nbSwvwkvucSEef8ogzX/cvegquxW tNO7O2EY6wgbMd0JTYy0GxnXHtJVML0QEtCFJbSgEa3y/VLUfY9W0EG+coazT4MZ vVUOW8oUEmKZtQnXVOeZccJ/MYYK+SNgbhUzDxeO7/5GY5pU5qzd4wwuC9deA8Ho 3XK6WtrjJkmM34VUNFzL0teynGYLP/9f2gtK00BxZASWYT95lTj0EZYp86H9pkqR M9JZJxHzbVJS6WFg =RffV -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 04 11:42:33 2021 Received: (at 48721) by debbugs.gnu.org; 4 Jun 2021 15:42:33 +0000 Received: from localhost ([127.0.0.1]:47764 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lpBxx-0000AQ-9f for submit@debbugs.gnu.org; Fri, 04 Jun 2021 11:42:33 -0400 Received: from eggs.gnu.org ([209.51.188.92]:46356) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lpBxv-00009x-Fg for 48721@debbugs.gnu.org; Fri, 04 Jun 2021 11:42:31 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38508) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lpBxq-0000g6-84; Fri, 04 Jun 2021 11:42:26 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=43734 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lpBxp-00061m-VX; Fri, 04 Jun 2021 11:42:26 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Chris Marusich Subject: Re: [PATCH v2] gnu: gcc-8: Make static libs reproducible References: <87lf7x79hp.fsf@gnu.org> <20210603200518.1125690-1-contact@carldong.me> <878s3qt7ob.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 16 Prairial an 229 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 04 Jun 2021 17:42:24 +0200 In-Reply-To: <878s3qt7ob.fsf@gmail.com> (Chris Marusich's message of "Fri, 04 Jun 2021 00:23:16 -0700") Message-ID: <875yytprfj.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48721 Cc: 48721@debbugs.gnu.org, Carl Dong X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Chris, Chris Marusich skribis: > Can this patch also be applied to earlier versions of GCC, such as > gcc-7, which is currently the default GCC used for basically everything > on Guix's master branch? Or is it too different? Note that =E2=80=98core-updates=E2=80=99 is already on GCC 8 and may switch= to GCC 10 before we merge. Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 04 11:46:18 2021 Received: (at 48721) by debbugs.gnu.org; 4 Jun 2021 15:46:18 +0000 Received: from localhost ([127.0.0.1]:47768 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lpC1Z-0000Oo-Of for submit@debbugs.gnu.org; Fri, 04 Jun 2021 11:46:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48244) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lpC1X-0000OK-SJ for 48721@debbugs.gnu.org; Fri, 04 Jun 2021 11:46:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38648) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lpC1S-0003CD-A9; Fri, 04 Jun 2021 11:46:10 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=43764 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lpC1S-0006MQ-12; Fri, 04 Jun 2021 11:46:10 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Carl Dong Subject: Re: [PATCH v2] gnu: gcc-8: Make static libs reproducible References: <87lf7x79hp.fsf@gnu.org> <20210603200518.1125690-1-contact@carldong.me> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 16 Prairial an 229 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 04 Jun 2021 17:46:08 +0200 In-Reply-To: <20210603200518.1125690-1-contact@carldong.me> (Carl Dong's message of "Thu, 3 Jun 2021 16:05:19 -0400") Message-ID: <871r9hpr9b.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48721 Cc: cmmarusich@gmail.com, 48721@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Carl, Carl Dong skribis: >> Well done. Did you observe it in practice? (On =E2=80=98core-updates= =E2=80=99 maybe?) > > Thanks! Yes, we observed it when switching back from gcc-9 to gcc-8 for > compiling Bitcoin Core. We use -static-libstdc++, which means that any > non-reproducibility in libstdc++.a propagates into our produced binaries = as > well. OK. > To be clear, I was only able to identify the problem and fix thanks to yo= ur > patch here: > https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/patches/dico= -libtool-deterministic.patch?h=3Db6094b1f0a6760b9f5296364cf5edb8a2e64953c Oh. (I suppose GCC doesn=E2=80=99t have a single =E2=80=98ltmain.sh=E2=80= =99 that we could patch instead of all these =E2=80=98configure=E2=80=99 scripts, right?) >> I=E2=80=99m surprised that this is still an issue since this was fixed in >> Libtool proper long ago, probably before GCC 8 was released. > > Right, unfortunately GCC maintains their own version of libtool, which ha= sn't > been synced with upstream for a while. I documented the details here: htt= ps://reproducible-builds.org/docs/archives/#gnu-libtool Great that you documented it! > This fixes the nonreproducibility in gcc documented here: > https://reproducible-builds.org/docs/archives/#gnu-libtool > > * gnu/packages/patches/gcc-8-sort-libtool-find-output.patch: New patch. > * gnu/local.mk (dist_patch_DATA): Register it. > * gnu/packages/gcc.scm (gcc-8)[source]: Apply it. > --- > gnu/local.mk | 1 + > gnu/packages/gcc.scm | 3 +- > .../gcc-8-sort-libtool-find-output.patch | 399 ++++++++++++++++++ LGTM and OK for =E2=80=98master=E2=80=99. Thanks! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 08 12:03:48 2021 Received: (at 48721) by debbugs.gnu.org; 8 Jun 2021 16:03:48 +0000 Received: from localhost ([127.0.0.1]:59588 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqeCi-0005Kq-1c for submit@debbugs.gnu.org; Tue, 08 Jun 2021 12:03:48 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:59137) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lqeCh-0005Kf-4V for 48721@debbugs.gnu.org; Tue, 08 Jun 2021 12:03:47 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 5CC981ABB; Tue, 8 Jun 2021 12:03:41 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Tue, 08 Jun 2021 12:03:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=carldong.me; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm1; bh=F wLfMO0PPyILOYImRIiN7PqYcXV7cXYpMvpZQNmI0WE=; b=BMtqlVh79G3e6tA/s 64EzTpkK0iSgqmbWo9JWOGzAAEg0opGtUheTvzlQVpe/oUTrVOT+9VDwm1I7A6nx sxFtDsLPxuBCc+a8WLoPfZX0EtJGmxqgXY0l6IkN3p7vkE3UMHDmfDcZ1l8B8jDL KMX0+JB8XSRRyIthi5pr70AUFSdhWUyYMXXvfH0Bx/EraZBRzVVwV8tpKjFSJgBs H9UcVEC3ye/xhZdSC1q8/urSBoONHoTlcvpp/Wp3MgMzeTl3scOg6TXicd9o+2tF F5zsAfJxrD2mKOIg7vT4cHUhedXM6iO+kH03jeGWkMpuzRLyTB35yqBRSAixWMp2 nbdvA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=FwLfMO0PPyILOYImRIiN7PqYcXV7cXYpMvpZQNmI0 WE=; b=iNjcyvgAJ7bHuMcwrluRoQTJ4nPmPfAoffTXiI+qhVpgsikffAxBGRzk0 4H/Q639m3cLXslakHtKXS5QnXsIsCDvjAkdz1wD/+svbPLqCrf+0gQnS09dcDX6O UWoGKm8F/DQj9RpZ3Z511q4I2OZejR4Ek2UJ4vR/93Mm0Kfjz6rKbMxbL3l7o83y rGpEKE+IOM90RoUJkwWr4xkedVCedLtXP3rQHHaCJC7+8V6VWFglJ/RsgAhNh0LJ 9MPdHsLZ3nTZEeXTYIi7fI2sZd1VqyesbMWI5t6NVRJnnn4kRLo8zsQxM3fUtrJQ oQuVxncj2sj1Qig9AHpTDf8WdwQjg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrfedtledgkeduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptggguffhjgffgffkfhfvofesthhqmhdthhdtjeenucfhrhhomhepvegrrhhl ucffohhnghcuoegtohhnthgrtghtsegtrghrlhguohhnghdrmhgvqeenucggtffrrghtth gvrhhnpeeiledtleffgfevieejtedvheejgfffleejieeuteelgefhkedvuedtgfelfeeg veenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegtoh hnthgrtghtsegtrghrlhguohhnghdrmhgv X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 8 Jun 2021 12:03:40 -0400 (EDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) Subject: Re: [PATCH v2] gnu: gcc-8: Make static libs reproducible From: Carl Dong In-Reply-To: <871r9hpr9b.fsf@gnu.org> Date: Tue, 8 Jun 2021 12:03:39 -0400 Content-Transfer-Encoding: quoted-printable Message-Id: <19E82A0C-2629-4FA0-B45E-E8C528FF60DC@carldong.me> References: <87lf7x79hp.fsf@gnu.org> <20210603200518.1125690-1-contact@carldong.me> <871r9hpr9b.fsf@gnu.org> To: =?utf-8?Q?Ludovic_Court=C3=A8s?= X-Mailer: Apple Mail (2.3608.120.23.2.7) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 48721 Cc: cmmarusich@gmail.com, 48721@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > Oh. (I suppose GCC doesn=E2=80=99t have a single =E2=80=98ltmain.sh=E2=80= =99 that we could > patch instead of all these =E2=80=98configure=E2=80=99 scripts, = right?) Hmmm, are you suggesting that we just patch the libtool.m4 and = ltmain.sh, and then autoreconf -vfi for the GCC packages? Cheers, Carl Dong From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 11 10:08:14 2021 Received: (at 48721) by debbugs.gnu.org; 11 Jun 2021 14:08:14 +0000 Received: from localhost ([127.0.0.1]:39769 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lrhpW-0007ii-DV for submit@debbugs.gnu.org; Fri, 11 Jun 2021 10:08:14 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34604) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lrhpS-0007iV-Rs for 48721@debbugs.gnu.org; Fri, 11 Jun 2021 10:08:12 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57130) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lrhpN-0000Ua-Jc; Fri, 11 Jun 2021 10:08:05 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=49322 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lrhpD-0006Il-QA; Fri, 11 Jun 2021 10:08:05 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Carl Dong Subject: Re: [PATCH v2] gnu: gcc-8: Make static libs reproducible References: <87lf7x79hp.fsf@gnu.org> <20210603200518.1125690-1-contact@carldong.me> <871r9hpr9b.fsf@gnu.org> <19E82A0C-2629-4FA0-B45E-E8C528FF60DC@carldong.me> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 23 Prairial an 229 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 11 Jun 2021 16:07:54 +0200 In-Reply-To: <19E82A0C-2629-4FA0-B45E-E8C528FF60DC@carldong.me> (Carl Dong's message of "Tue, 8 Jun 2021 12:03:39 -0400") Message-ID: <87eed87av9.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48721 Cc: cmmarusich@gmail.com, 48721@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, Carl Dong skribis: >> Oh. (I suppose GCC doesn=E2=80=99t have a single =E2=80=98ltmain.sh=E2= =80=99 that we could >> patch instead of all these =E2=80=98configure=E2=80=99 scripts, right?) > Hmmm, are you suggesting that we just patch the libtool.m4 and ltmain.sh,= and then autoreconf -vfi for the GCC packages? No, running =E2=80=98autoreconf=E2=80=99 would complicate things. But if it happens that the same effect could be achieved by modifying a single =E2=80=98ltmain.sh=E2=80=99 file, as was done in b6094b1f0a6760b9f5296364cf5edb8a2e64953c, that=E2=80=99s better than modify= ing all the =E2=80=98configure=E2=80=99 scripts. Maybe it=E2=80=99s not possible though, in which case the patch you posted = is perfect. Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 11 18:17:31 2021 Received: (at 48721) by debbugs.gnu.org; 11 Jun 2021 22:17:31 +0000 Received: from localhost ([127.0.0.1]:40032 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lrpSy-0002wi-Bf for submit@debbugs.gnu.org; Fri, 11 Jun 2021 18:17:31 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:49231) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lrpSs-0002wR-Uw for 48721@debbugs.gnu.org; Fri, 11 Jun 2021 18:17:26 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id DB3EB5C00AA; Fri, 11 Jun 2021 18:17:17 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Fri, 11 Jun 2021 18:17:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=carldong.me; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm1; bh=R 2kwUdcNCTnItt20U82C3VaS9n+yaR3DffndhW392Yo=; b=hg7TaFletSsguAGtY IuaxRmRXKAXTqlyy1kBnxGVLZ/t8hIbQgJo5iCkwibewfox6HNG06/pcKS1ypcEN 7YSSuHkV/R65WDAa+DIVg50sXN+7IAQ1RAr3EDSegE4Hj69pSm7owclfCH78Xhc4 2zlOR/uy8NoeqFEBCfeE/wc+gVdta1YXEc1N+aYA+vn9juPXQyLKYjF4PBWhOcd3 LAnWpzLX4RpBUOVrUA+KTUoNdoq4mObmaWQlSLo2QXv3ixVzV/6+s3+TBQTlhDmv 3T0CNn1amriHNkF59HUywZGwYz60KZNvkJpKT0YS2hVnzAB2xq7Y7c5kwERwZ/ec oidbQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=R2kwUdcNCTnItt20U82C3VaS9n+yaR3DffndhW392 Yo=; b=a5SkyHuK2KjWFL2TVqEa2pONqOhVFeylv3IiSYckeIv8+qX3SuvGpBZgn 0Gk/EPQ4WHOhpWufzFBMGNzvUgCbx+v8fwOXAb8ICQKpMdQvpJna3Hts3XhfpXOx JlnQgY+EMAzjT0APvvTTepDGFvMmaSZ8rmssqFUbVVJhPAQbYjFvwF+9euJCieKp R18aBPY42AAFktLfTMjxYLfGp7YHNti0dVUaCz8JbpUVw5gT5b53pi3Nu2mSHIlY nRcwvj0D9SAWTpn1pVWJppJKkbB2mzBsGZ2XFKZPQvj/TlnoGKQ/q73kRNSJL1hS xSZJ4gIDpK+N60dWNe7uEjMyjPSDg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrfeduledgtdduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptggguffhjgffgffkfhfvofesthhqmhdthhdtjeenucfhrhhomhepvegrrhhl ucffohhnghcuoegtohhnthgrtghtsegtrghrlhguohhnghdrmhgvqeenucggtffrrghtth gvrhhnpeeiledtleffgfevieejtedvheejgfffleejieeuteelgefhkedvuedtgfelfeeg veenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegtoh hnthgrtghtsegtrghrlhguohhnghdrmhgv X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 11 Jun 2021 18:17:17 -0400 (EDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) Subject: Re: [bug#48721] [PATCH v2] gnu: gcc-8: Make static libs reproducible From: Carl Dong In-Reply-To: <87eed87av9.fsf@gnu.org> Date: Fri, 11 Jun 2021 22:17:16 +0000 Content-Transfer-Encoding: quoted-printable Message-Id: <4929FA98-A20B-41E5-93E1-5E0254496676@carldong.me> References: <87lf7x79hp.fsf@gnu.org> <20210603200518.1125690-1-contact@carldong.me> <871r9hpr9b.fsf@gnu.org> <19E82A0C-2629-4FA0-B45E-E8C528FF60DC@carldong.me> <87eed87av9.fsf@gnu.org> To: =?utf-8?Q?Ludovic_Court=C3=A8s?= X-Mailer: Apple Mail (2.3608.120.23.2.7) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 48721 Cc: cmmarusich@gmail.com, 48721@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Ah I see=E2=80=A6 In that case I think perhaps the patch is good. Would it be okay to push just the gcc-8 patch and leave the rest (gcc <=3D= v7) to be patch on an as-needed basis? Cheers, Carl Dong contact@carldong.me > On Jun 11, 2021, at 2:07 PM, Ludovic Court=C3=A8s = wrote: >=20 > Hi, >=20 > Carl Dong skribis: >=20 >>> Oh. (I suppose GCC doesn=E2=80=99t have a single =E2=80=98ltmain.sh=E2= =80=99 that we could >>> patch instead of all these =E2=80=98configure=E2=80=99 scripts, = right?) >> Hmmm, are you suggesting that we just patch the libtool.m4 and = ltmain.sh, and then autoreconf -vfi for the GCC packages? >=20 > No, running =E2=80=98autoreconf=E2=80=99 would complicate things. >=20 > But if it happens that the same effect could be achieved by modifying = a > single =E2=80=98ltmain.sh=E2=80=99 file, as was done in > b6094b1f0a6760b9f5296364cf5edb8a2e64953c, that=E2=80=99s better than = modifying > all the =E2=80=98configure=E2=80=99 scripts. >=20 > Maybe it=E2=80=99s not possible though, in which case the patch you = posted is > perfect. >=20 > Thanks, > Ludo=E2=80=99. >=20 >=20 >=20 From debbugs-submit-bounces@debbugs.gnu.org Sun Jun 13 05:50:06 2021 Received: (at 48721) by debbugs.gnu.org; 13 Jun 2021 09:50:06 +0000 Received: from localhost ([127.0.0.1]:42671 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lsMko-0001AA-08 for submit@debbugs.gnu.org; Sun, 13 Jun 2021 05:50:06 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36370) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lsMkm-00019b-Pg for 48721@debbugs.gnu.org; Sun, 13 Jun 2021 05:50:05 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38322) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lsMkh-0001zA-D4; Sun, 13 Jun 2021 05:49:59 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=54888 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lsMkh-0001sG-4e; Sun, 13 Jun 2021 05:49:59 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Carl Dong Subject: Re: [bug#48721] [PATCH v2] gnu: gcc-8: Make static libs reproducible References: <87lf7x79hp.fsf@gnu.org> <20210603200518.1125690-1-contact@carldong.me> <871r9hpr9b.fsf@gnu.org> <19E82A0C-2629-4FA0-B45E-E8C528FF60DC@carldong.me> <87eed87av9.fsf@gnu.org> <4929FA98-A20B-41E5-93E1-5E0254496676@carldong.me> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 25 Prairial an 229 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Sun, 13 Jun 2021 11:49:57 +0200 In-Reply-To: <4929FA98-A20B-41E5-93E1-5E0254496676@carldong.me> (Carl Dong's message of "Fri, 11 Jun 2021 22:17:16 +0000") Message-ID: <87v96i14ca.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48721 Cc: cmmarusich@gmail.com, 48721@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, Carl Dong skribis: > Ah I see=E2=80=A6 In that case I think perhaps the patch is good. > > Would it be okay to push just the gcc-8 patch and leave the rest (gcc <= =3D v7) to be patch on an as-needed basis? Yes, let=E2=80=99s push this patch (OK for =E2=80=98master=E2=80=99) and le= ave GCC < 8 as future work. Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 14 12:31:12 2021 Received: (at control) by debbugs.gnu.org; 14 Jun 2021 16:31:12 +0000 Received: from localhost ([127.0.0.1]:47717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lspUW-0005hD-8s for submit@debbugs.gnu.org; Mon, 14 Jun 2021 12:31:12 -0400 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:42105) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lspUS-0005gt-Qa for control@debbugs.gnu.org; Mon, 14 Jun 2021 12:31:10 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 7BC0C5C0193 for ; Mon, 14 Jun 2021 12:31:02 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Mon, 14 Jun 2021 12:31:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=carldong.me; h= from:content-type:content-transfer-encoding:mime-version:subject :message-id:date:to; s=fm1; bh=TXS9HVH44XZf8OrFWxy8yROGbwLRc1yhq EIXmVpvFtg=; b=bq4xZiS3nLffS9ArXxa0mhi+x5f0ZqnZSRVp37Whufd7MgCQj hrkMUtAySC2QKYeuSEhKWfqyA2KU46Ho7UwyWAGP84YUSdts63ehDUmwsUmIr6PM zx+nDNpWkS8AqVxLWirr3BKaKIOluGFEtJmw4ih1bpoPhqCx3N6ut0rVozBMd44u tuQsRXQG19+50LzP9qlDIGgsDGusOOQwHXd5fbnINCglbUNwB1ZCiaqr6rtnpxfx Jxq6krOLh7zUyw0hsNOl9JKb9XHrJ+IuLiruA1zp98ba0xLnsbvSK8vWxX24d8W3 Drhi9K9cHF4K1Yz1NeJvXrKrRe5weGlFjLiEQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=TXS9HV H44XZf8OrFWxy8yROGbwLRc1yhqEIXmVpvFtg=; b=Yr4LLZpx1QZuvpWwVGNJPd DPe/qKEX346vopsaYhKJkyj4uneX7RY4i7iJi4tIIcNTnWg4riE1NesqJxltPn93 fqbokLDJCqrUUMymZ3HBgeU81lkGJRDV8MK0mWkIxfdCPYK2VrINLp28zOCV0Va3 IVKZJ9xTvNmkF41jIivgnyIRLgbJ37vlPVzffHJpddf0jciS6OhydaUVNmku2fwK gia3qGsIJZJ7RvRj5WAv78vawrb0iJ6LOKMMwZMm8yOyVQXlPhzdurUki+5rgp8a Ds04/9DPnMtc2RDA+ULmdd1W2VAYowpbM3ZxdtBi9v7KEwKtZD+/QfLzorVLOC9g == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrfedvhedgleekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhtgfgggfukfffvffosehtjehmtd hhtddvnecuhfhrohhmpeevrghrlhcuffhonhhguceotghonhhtrggtthestggrrhhlugho nhhgrdhmvgeqnecuggftrfgrthhtvghrnheptddvfeelfeffueejgeelhfeitdekieetfe ethfffgeekveefjefhudetheegveefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghr rghmpehmrghilhhfrhhomheptghonhhtrggtthestggrrhhlughonhhgrdhmvg X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Mon, 14 Jun 2021 12:31:02 -0400 (EDT) From: Carl Dong Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) Subject: Closing 48721 Message-Id: Date: Mon, 14 Jun 2021 12:31:01 -0400 To: control@debbugs.gnu.org X-Mailer: Apple Mail (2.3608.120.23.2.7) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) close 48721 83d9e2ee56cb0ca2a644074ad232503e25ac7116 From unknown Fri Jun 20 07:28:20 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 13 Jul 2021 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator