The default setting of -grecord-gcc-switches recently changed from 0 to 1: 2012-04-25 Jakub Jelinek <ja...@redhat.com>
* common.opt (flag_debug_types_section): Default to 0. ... (dwarf_record_gcc_switches): Default to 1. Because of this, by default all objects in libraries built as part of gcc now have driver command line options stored in their debug_str section. For C and C++ that's not an issue. However, Fortran has a special undocumented extra option created by its specs, "-cpp=%g.f90". As a result all the object files in libgfortran.a now have a temporary filename baked into their debug_str section. This creates a problem for build and packaging systems that are fanatical about binary reproducibility and checksums. Temporary file names differ on each compilation, so that two different builds of libgfortran.a, and by extension all of gcc, will not be bit-identical. Anyone else encountered this? Bug or feature? There are several possible and relatively easy fixes -- any thoughts or feedback on which fixes might be better, or worse? Something for mainline or for only google-specific branches? -- Google UK Limited | Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ | Registered in England Number: 3977902