Your message dated Sat, 11 Jun 2016 04:35:53 +0000
with message-id <e1bbaeh-0005tc...@franck.debian.org>
and subject line Bug#819176: fixed in gcc-5 5.4.0-4
has caused the Debian Bug report #819176,
regarding gcc-5: Please avoid storing -fdebug-prefix-map in DW_AT_producer (for
better reproducibility)
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)
--
819176: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=819176
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: gcc-5
Version: 5.3.1-12
Severity: wishlist
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: buildpath
embedding the build path in binaries makes it harder to get
byte-for-byte reproducibility, because the build has to happen in the
same directory.
gcc by default embeds the build path in the debug info of C tools
(e.g. DW_AT_comp_dir and DW_AT_decl_file). This isn't useful for
distributed binary packages, because the build environment isn't on
the same machine (or necessarily in the same place).
The build path can be mangled/stripped with gcc's -fdebug-prefix-map
argument. For example:
gcc -fdebug-prefix-map=$(pwd)=. -g -o foo foo.c
however, when supplying -fdebug-prefix-map, gcc puts that string
itself into DW_AT_producer.
The attached patch (pulled from upstream gcc master) avoids storing
-fdebug-prefix-map in DW_AT_producer.
I'd like this to be backported into debian's gcc so that we can make
and test a more reproducible toolchain.
(thinking about timing: we shouldn't need the patch once we move to
gcc 6, but we should be testing a buildpath-independent reproducible
toolchain now; i'll file a bug soon to add this pattern to either dh
or dpkg-buildflags)
Regards,
--dkg
-- System Information:
Debian Release: stretch/sid
Architecture: amd64 (x86_64)
Kernel: Linux 4.4.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages gcc-5 depends on:
ii binutils 2.26-5
ii cpp-5 5.3.1-12
ii gcc-5-base 5.3.1-12
ii libc6 2.22-3
ii libcc1-0 5.3.1-12
ii libgcc-5-dev 5.3.1-12
ii libgcc1 1:5.3.1-12
ii libgmp10 2:6.1.0+dfsg-2
ii libisl15 0.16.1-1
ii libmpc3 1.0.3-1
ii libmpfr4 3.1.4-1
ii libstdc++6 5.3.1-12
ii zlib1g 1:1.2.8.dfsg-2+b1
Versions of packages gcc-5 recommends:
ii libc6-dev 2.22-3
Versions of packages gcc-5 suggests:
pn gcc-5-doc <none>
pn gcc-5-locales <none>
ii gcc-5-multilib 5.3.1-12
pn libasan2-dbg <none>
pn libatomic1-dbg <none>
pn libcilkrts5-dbg <none>
pn libgcc1-dbg <none>
pn libgomp1-dbg <none>
pn libitm1-dbg <none>
pn liblsan0-dbg <none>
pn libmpx0-dbg <none>
pn libquadmath0-dbg <none>
pn libtsan0-dbg <none>
pn libubsan0-dbg <none>
-- debconf-show failed
>From 6ceddcd7b87911ddbb942923722af5a735dacedc Mon Sep 17 00:00:00 2001
From: bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 18 Dec 2015 19:48:26 +0000
Subject: [PATCH] Ignore -fdebug-prefix-map in producer string (by Daniel Kahn
Gillmor)
* dwarf2out.c (gen_producer_string): Ignore -fdebug-prefix-map.
testsuite/
* gcc.dg/debug/dwarf2/prod-options.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231835 138bc75d-0d04-0410-961f-82ee72b054a4
---
gcc/ChangeLog | 4 ++++
gcc/dwarf2out.c | 1 +
gcc/testsuite/ChangeLog | 4 ++++
gcc/testsuite/gcc.dg/debug/dwarf2/prod-options.c | 12 ++++++++++++
4 files changed, 21 insertions(+)
create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2/prod-options.c
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fec7992..11ee620 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2015-12-18 Daniel Kahn Gillmor <d...@fifthhorseman.net>
+
+ * dwarf2out.c (gen_producer_string): Ignore -fdebug-prefix-map.
+
2015-12-18 Nathan Sidwell <nat...@acm.org>
* config/nvptx/nvptx.c (nvptx_option_override): Emit sorry for
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 067c4f2..320a077 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -21498,6 +21498,7 @@ gen_producer_string (void)
case OPT_fpreprocessed:
case OPT_fltrans_output_list_:
case OPT_fresolution_:
+ case OPT_fdebug_prefix_map_:
/* Ignore these. */
continue;
default:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5da1ce4..b2d9d3b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2015-12-18 Bernd Schmidt <bschm...@redhat.com>
+
+ * gcc.dg/debug/dwarf2/prod-options.c: New test.
+
2015-12-18 Eric Botcazou <ebotca...@adacore.com>
* gnat.dg/specs/debug1.ads: Bump final count to 18.
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/prod-options.c b/gcc/testsuite/gcc.dg/debug/dwarf2/prod-options.c
new file mode 100644
index 0000000..21449f9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/prod-options.c
@@ -0,0 +1,12 @@
+/* Verify that the DW_AT_producer does not contain certain compiler options
+ such as -fdebug-prefix-map=; this is undesirable since path names make
+ the build not reproducible. Other skipped options could be tested here
+ as well. */
+/* { dg-do compile } */
+/* { dg-options "-O2 -gdwarf -dA -fdebug-prefix-map=a=b" } */
+/* { dg-final { scan-assembler "DW_AT_producer: \"GNU C" } } */
+/* { dg-final { scan-assembler-not "debug-prefix-map" } } */
+
+void func (void)
+{
+}
--
2.8.0.rc3
--- End Message ---
--- Begin Message ---
Source: gcc-5
Source-Version: 5.4.0-4
We believe that the bug you reported is fixed in the latest version of
gcc-5, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 819...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Matthias Klose <d...@debian.org> (supplier of updated gcc-5 package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Fri, 10 Jun 2016 17:03:20 +0200
Source: gcc-5
Binary: gcc-5-base libgcc-5-dev libgcc4 libgcc4-dbg lib64gcc-5-dev
lib32gcc-5-dev libn32gcc-5-dev libx32gcc-5-dev gcc-5 gcc-5-multilib
gcc-5-test-results gcc-5-plugin-dev gcc-5-hppa64-linux-gnu cpp-5 gcc-5-locales
g++-5 g++-5-multilib libasan2 libasan2-dbg lib32asan2 lib32asan2-dbg lib64asan2
lib64asan2-dbg libx32asan2 libx32asan2-dbg libmpx0 libmpx0-dbg lib32mpx0
lib32mpx0-dbg lib64mpx0 lib64mpx0-dbg libgccjit-5-doc libgccjit-5-dev gobjc++-5
gobjc++-5-multilib gobjc-5 gobjc-5-multilib libobjc-5-dev lib64objc-5-dev
lib32objc-5-dev libn32objc-5-dev libx32objc-5-dev gfortran-5
gfortran-5-multilib libgfortran-5-dev lib64gfortran-5-dev lib32gfortran-5-dev
libn32gfortran-5-dev libx32gfortran-5-dev gccgo-5 gccgo-5-multilib libgo7
libgo7-dbg lib64go7 lib64go7-dbg lib32go7 lib32go7-dbg libn32go7 libn32go7-dbg
libx32go7 libx32go7-dbg gcj-5 gcj-5-jdk gcj-5-jre-headless gcj-5-jre libgcj16
gcj-5-jre-lib libgcj16-awt libgcj16-dev libgcj16-dbg gcj-5-source libgcj-doc
libstdc++-5-dev
libstdc++-5-pic libstdc++6-5-dbg lib32stdc++-5-dev lib32stdc++6-5-dbg
lib64stdc++-5-dev lib64stdc++6-5-dbg libn32stdc++-5-dev libn32stdc++6-5-dbg
libx32stdc++-5-dev libx32stdc++6-5-dbg libstdc++-5-doc gnat-5 gnat-5-sjlj
libgnat-5 libgnat-5-dbg libgnatvsn5-dev libgnatvsn5 libgnatvsn5-dbg
libgnatprj5-dev libgnatprj5 libgnatprj5-dbg gdc-5 gdc-5-multilib
libphobos-5-dev lib64phobos-5-dev lib32phobos-5-dev libx32phobos-5-dev
gcc-5-source
Architecture: source all
Version: 5.4.0-4
Distribution: unstable
Urgency: medium
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Changed-By: Matthias Klose <d...@debian.org>
Description:
cpp-5 - GNU C preprocessor
g++-5 - GNU C++ compiler
g++-5-multilib - GNU C++ compiler (multilib support)
gcc-5 - GNU C compiler
gcc-5-base - GCC, the GNU Compiler Collection (base package)
gcc-5-hppa64-linux-gnu - GNU C compiler (cross compiler for hppa64)
gcc-5-locales - GCC, the GNU compiler collection (native language support
files)
gcc-5-multilib - GNU C compiler (multilib support)
gcc-5-plugin-dev - Files for GNU GCC plugin development.
gcc-5-source - Source of the GNU Compiler Collection
gcc-5-test-results - Test results for the GCC test suite
gccgo-5 - GNU Go compiler
gccgo-5-multilib - GNU Go compiler (multilib support)
gcj-5 - GCJ byte code and native compiler for Java(TM)
gcj-5-jdk - GCJ and Classpath development tools for Java(TM)
gcj-5-jre - Java runtime environment using GIJ/Classpath
gcj-5-jre-headless - Java runtime environment using GIJ/Classpath (headless
version)
gcj-5-jre-lib - Java runtime library for use with gcj (jar files)
gcj-5-source - GCJ java sources for use in IDEs like eclipse and netbeans
gdc-5 - GNU D compiler (version 2)
gdc-5-multilib - GNU D compiler (version 2, multilib support)
gfortran-5 - GNU Fortran compiler
gfortran-5-multilib - GNU Fortran compiler (multilib support)
gnat-5 - GNU Ada compiler
gnat-5-sjlj - GNU Ada compiler (setjump/longjump runtime library)
gobjc++-5 - GNU Objective-C++ compiler
gobjc++-5-multilib - GNU Objective-C++ compiler (multilib support)
gobjc-5 - GNU Objective-C compiler
gobjc-5-multilib - GNU Objective-C compiler (multilib support)
lib32asan2 - AddressSanitizer -- a fast memory error detector (32bit)
lib32asan2-dbg - AddressSanitizer -- a fast memory error detector (32 bit
debug sy
lib32gcc-5-dev - GCC support library (32 bit development files)
lib32gfortran-5-dev - Runtime library for GNU Fortran applications (32bit
development f
lib32go7 - Runtime library for GNU Go applications (32bit)
lib32go7-dbg - Runtime library for GNU Go applications (32 bit debug symbols)
lib32mpx0 - Intel memory protection extensions (32bit)
lib32mpx0-dbg - Intel memory protection extensions (32 bit debug symbols)
lib32objc-5-dev - Runtime library for GNU Objective-C applications (32bit
developme
lib32phobos-5-dev - Phobos D standard library (64bit development files)
lib32stdc++-5-dev - GNU Standard C++ Library v3 (development files)
lib32stdc++6-5-dbg - GNU Standard C++ Library v3 (debugging files)
lib64asan2 - AddressSanitizer -- a fast memory error detector (64bit)
lib64asan2-dbg - AddressSanitizer -- a fast memory error detector (64bit debug
sym
lib64gcc-5-dev - GCC support library (64bit development files)
lib64gfortran-5-dev - Runtime library for GNU Fortran applications (64bit
development f
lib64go7 - Runtime library for GNU Go applications (64bit)
lib64go7-dbg - Runtime library for GNU Go applications (64bit debug symbols)
lib64mpx0 - Intel memory protection extensions (64bit)
lib64mpx0-dbg - Intel memory protection extensions (64bit debug symbols)
lib64objc-5-dev - Runtime library for GNU Objective-C applications (64bit
developme
lib64phobos-5-dev - Phobos D standard library (64bit development files)
lib64stdc++-5-dev - GNU Standard C++ Library v3 (development files)
lib64stdc++6-5-dbg - GNU Standard C++ Library v3 (debugging files)
libasan2 - AddressSanitizer -- a fast memory error detector
libasan2-dbg - AddressSanitizer -- a fast memory error detector (debug symbols)
libgcc-5-dev - GCC support library (development files)
libgcc4 - GCC support library
libgcc4-dbg - GCC support library (debug symbols)
libgccjit-5-dev - GCC just-in-time compilation (development files)
libgccjit-5-doc - GCC just-in-time compilation (documentation)
libgcj-doc - libgcj API documentation and example programs
libgcj16 - Java runtime library for use with gcj
libgcj16-awt - AWT peer runtime libraries for use with gcj
libgcj16-dbg - Debugging symbols for libraries provided in libgcj16-dev
libgcj16-dev - Java development headers for use with gcj
libgfortran-5-dev - Runtime library for GNU Fortran applications (development
files)
libgnat-5 - runtime for applications compiled with GNAT (shared library)
libgnat-5-dbg - runtime for applications compiled with GNAT (debugging symbols)
libgnatprj5 - GNU Ada compiler Project Manager (shared library)
libgnatprj5-dbg - GNU Ada compiler Project Manager (debugging symbols)
libgnatprj5-dev - GNU Ada compiler Project Manager (development files)
libgnatvsn5 - GNU Ada compiler selected components (shared library)
libgnatvsn5-dbg - GNU Ada compiler selected components (debugging symbols)
libgnatvsn5-dev - GNU Ada compiler selected components (development files)
libgo7 - Runtime library for GNU Go applications
libgo7-dbg - Runtime library for GNU Go applications (debug symbols)
libmpx0 - Intel memory protection extensions (runtime)
libmpx0-dbg - Intel memory protection extensions (debug symbols)
libn32gcc-5-dev - GCC support library (n32 development files)
libn32gfortran-5-dev - Runtime library for GNU Fortran applications (n32
development fil
libn32go7 - Runtime library for GNU Go applications (n32)
libn32go7-dbg - Runtime library for GNU Go applications (n32 debug symbols)
libn32objc-5-dev - Runtime library for GNU Objective-C applications (n32
development
libn32stdc++-5-dev - GNU Standard C++ Library v3 (development files)
libn32stdc++6-5-dbg - GNU Standard C++ Library v3 (debugging files)
libobjc-5-dev - Runtime library for GNU Objective-C applications (development
fil
libphobos-5-dev - Phobos D standard library
libstdc++-5-dev - GNU Standard C++ Library v3 (development files)
libstdc++-5-doc - GNU Standard C++ Library v3 (documentation files)
libstdc++-5-pic - GNU Standard C++ Library v3 (shared library subset kit)
libstdc++6-5-dbg - GNU Standard C++ Library v3 (debugging files)
libx32asan2 - AddressSanitizer -- a fast memory error detector (x32)
libx32asan2-dbg - AddressSanitizer -- a fast memory error detector (x32 debug
symbo
libx32gcc-5-dev - GCC support library (x32 development files)
libx32gfortran-5-dev - Runtime library for GNU Fortran applications (x32
development fil
libx32go7 - Runtime library for GNU Go applications (x32)
libx32go7-dbg - Runtime library for GNU Go applications (x32 debug symbols)
libx32objc-5-dev - Runtime library for GNU Objective-C applications (x32
development
libx32phobos-5-dev - Phobos D standard library (x32 development files)
libx32stdc++-5-dev - GNU Standard C++ Library v3 (development files)
libx32stdc++6-5-dbg - GNU Standard C++ Library v3 (debugging files)
Closes: 819176 826583 826645
Changes:
gcc-5 (5.4.0-4) unstable; urgency=medium
.
* gdc: Fix linking the runtime library. Closes: #826645.
* gdc: Fix updates from 5.3.x. Closes: #826583.
* Update the Linaro support to the 5-2016.06 snapshot.
* Avoid storing -fdebug-prefix-map in DW_AT_producer (for better
reproducibility). Taken from the trunk (Daniel Kahn Gillmor).
Closes: #819176.
Checksums-Sha1:
b8a20b37cc04a8e03baa2b52fee2319e3c0562ec 17533 gcc-5_5.4.0-4.dsc
09e24164cde780b76ead3c203a129d7ca8fef5c6 1590852 gcc-5_5.4.0-4.diff.gz
17acc5123f135020f456f31443a4ee925a229830 1437308 gcc-5-locales_5.4.0-4_all.deb
efe9c38ab2be31161fa609621c621d16b54147af 78030240 gcc-5-source_5.4.0-4_all.deb
24099c62cda9948d76854f551d66335ec7bccc92 10348876 gcj-5-jre-lib_5.4.0-4_all.deb
3db4ff17a42636bebb2557394bdcac5cce26bd1d 11661620 gcj-5-source_5.4.0-4_all.deb
7d4c8124f3dded80b7c158b90ecfc1d2b37bd80c 91814 libgccjit-5-doc_5.4.0-4_all.deb
4f753db095c40df5c17ae108cf97f2edffdf5146 9454978
libstdc++-5-doc_5.4.0-4_all.deb
Checksums-Sha256:
ddc05de55befafe39e29090d19c2a806a7700d21d532cf6e8337a4c3ffa2409a 17533
gcc-5_5.4.0-4.dsc
18b9bec73bb1a600568e4ca7e2c43af93972c80f7ebafcd2b49795a4d663000f 1590852
gcc-5_5.4.0-4.diff.gz
7964a1211744ec5e9b5db8fd684e519f7c3164db257ee97c39323c3b7bcd908f 1437308
gcc-5-locales_5.4.0-4_all.deb
c7ce91de9f72d3dad69fce7b4d3ed67c426d8ea25a632a1502c014fa1894572c 78030240
gcc-5-source_5.4.0-4_all.deb
2369d4cd0749206ad5ed0f131824cd6d6993d76ae670bb425f2d464064041ae7 10348876
gcj-5-jre-lib_5.4.0-4_all.deb
6e4025f8b01f516c17363b876875abc8aa2b0801adcb7762092c6cc9eb039d6b 11661620
gcj-5-source_5.4.0-4_all.deb
3b009d29889edb08365c176e98f9ba8950fda4891f17c88e1f394e3acf4e7316 91814
libgccjit-5-doc_5.4.0-4_all.deb
38fcde1ce889dbb3ce7273df1010a46105c3cb816403d9040569fef12e50604f 9454978
libstdc++-5-doc_5.4.0-4_all.deb
Files:
faf4eebc40bb5104d4f3af444fbf41f3 17533 devel optional gcc-5_5.4.0-4.dsc
af5a375e70de4877d16271911ff69744 1590852 devel optional gcc-5_5.4.0-4.diff.gz
80e5f5e8dffb57dcbafb3218a11e693a 1437308 devel optional
gcc-5-locales_5.4.0-4_all.deb
380a0d5a707b76e7beb9d84adb7f8a47 78030240 devel optional
gcc-5-source_5.4.0-4_all.deb
b69933bd027414a69338268f104a5c9f 10348876 java optional
gcj-5-jre-lib_5.4.0-4_all.deb
8c88e1b3b3d71588afac0c36b4ce7691 11661620 java optional
gcj-5-source_5.4.0-4_all.deb
a54b67951d28dfcd2ca33581eb307fda 91814 doc extra
libgccjit-5-doc_5.4.0-4_all.deb
774d8d9dddb6cee01ba451485aa2071e 9454978 doc optional
libstdc++-5-doc_5.4.0-4_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAEBCAAGBQJXW3m7AAoJEL1+qmB3j6b1likP/1Ey8n7WvGsqE3hKwBmcpR6i
teCNUQlFrHqVbqeGJgb/NB+AkVO4M81X13a9wxfo2BcAVANfhWtxCbyRGpr5p/dD
cS9waJzJpzzg/uvRDLYJQwb0a3TyKehu+diM3SCZpPgATpy9ZAZUxwVtfWG7nN37
V+0nGoBvCo8GFYKpReGADXpnN/LNia1y1jR3R3Vm9I9unaEra/9BFCyQscYz3yk2
beTkM92b+Dw4lmUqxWgJV/jfsZN8ExhKlb4F/JS5BF/6QkZKSHiJCsH7REvengPj
gopqe1jkzL0sTJxYW59Wn7zREiIgdvc/J2jAoL+6zjqHwWgpqvpLFh2xuV5/f+qX
X3Os1cMcj3x7GxgkQWIi0slsZAACpq53+Mhrc1l4gh3kUm+xoTvzbMnxKvyiL6cx
OJW5m2owFhGyJwb9xLLxthDVvVOjSLo62sGy9DtchkCJ+mCZ7j1ZANh8uTzttH8S
kqGZl/zQ5HimG9nqPXeE+YydyDuiH+4qGnag/mWgMIo9T1LJfCnVBhKRx21rnCCZ
1PSa2FTwCpBNu5Ia4p35Unu7v/v+0pKyu7Ezk5XMUTLjxy9qHi+yOEY1Hzo19XKF
OzCXH8eIGB/2KsCZx7SnPZBWZKuEzZalQ4uyG0ZVGF1GBdP+5Mv2ACa+AN3irZcR
WykIhikTtr2pC6Ql1NUe
=rX2b
-----END PGP SIGNATURE-----
--- End Message ---