Jan Nieuwenhuizen writes: >>> Usage: guix build gcc-dcc >>> >>> Building gcc-dcc tests the diverse double compilation property >>> of the gcc that Guix is using. >>> >>> * gnu/packages/bootstrappable.scm: New file. >>> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. >> >> Awesome! Does it build fine out-of-the-box? I didn’t expect it to be >> “this easy.” :-) > > I got very positive feedback from a slightly guix-sceptic person saying > something like: you lisp guys can do quite a lot with very little code. > > However, all this patch adds is a test that fails: gcc built with gcc is > not bit-for-bit the same as gcc built with clang. > > Since then I have included the build-path-prefix-map patch, use -rpath > $ORIGIN instead of -rpath "-lib", switched to gcc-7.2.0. Still, no > bit-reproducibility. > > I'll be sending updated patches soon. Well, that took more time than I expected. I switched from 7.2.0 to 4.7.4 as the first target for diverse double compilation as it seems that 7.2 uses some non-reproducible hash map that I cannot track down _and_ 4.7.x is the latest bootstrappable gcc. Finally, I succeeded in building repro-gcc@4.7.4 using $ORIGIN for rpath. However, gcc-ddc@4.7.4 still shows that some absolute file names are embedded in bin/gcc (yes, I know cpp, cc1 and ../lib* hold most of the functionality): /gnu/store/zw672zcmykdwzm4x7l098hb94c34ak85-repro-gcc-4.7.4/bin/ /gnu/store/zw672zcmykdwzm4x7l098hb94c34ak85-repro-gcc-4.7.4/lib/gcc/ /gnu/store/zw672zcmykdwzm4x7l098hb94c34ak85repro-gcc-4.7.4._ROOT the first one most probably comes from static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX; I haven't looked a the other two yet. I'm attaching the diffoscope diff and the new patch. Could do with some help here. Thanks, janneke