Hmm this is really weird, I tried to again but it's building fine now. Nothing changed -- I'm using the same tree, trying after `git clean -xfd`, and without a build.mk. I guess the bug does not happen deterministically? Was that also the case with the bug report you mentioned?
In case anyone's interested: I'm on Ubuntu 18.04, booting with GHC 8.6.4 (bindist from haskell.org, with debug info). Ömer Niklas Hambüchen <[email protected]>, 1 Nis 2019 Pzt, 17:01 tarihinde şunu yazdı: > > At least on my Ubuntu 16.04, it builds: > > % git clone --recursive [email protected]:ghc/ghc.git > ghc-gold-error-6f7115dfd4 > % cd ghc-gold-error-6f7115dfd4 > % ./boot && ./configure --prefix=$HOME/opt/ghc-gold-error-6f7115dfd4 > GHC=$HOME/.stack/programs/x86_64-linux/ghc-8.6.3/bin/ghc > % make -j4 > > # Ctrl-C after a while when it's building stage-1 code > > % rm -f utils/hsc2hs/dist/build/tmp/hsc2hs > % make utils/hsc2hs/dist/build/tmp/hsc2hs > ===--- building phase 0 > make --no-print-directory -f ghc.mk phase=0 phase_0_builds > make[1]: Nothing to be done for 'phase_0_builds'. > ===--- building phase 1 > make --no-print-directory -f ghc.mk phase=1 phase_1_builds > "/home/niklas/.stack/programs/x86_64-linux/ghc-8.6.3/bin/ghc" -o > utils/hsc2hs/dist/build/tmp/hsc2hs -hisuf hi -osuf o -hcsuf hc -static > -H32m -O -Wall -package-db libraries/bootstrapping.conf -hide-all-packages > -i -iutils/hsc2hs/. -iutils/hsc2hs/dist/build -Iutils/hsc2hs/dist/build > -iutils/hsc2hs/dist/build/hsc2hs/autogen > -Iutils/hsc2hs/dist/build/hsc2hs/autogen -optP-include > -optPutils/hsc2hs/dist/build/hsc2hs/autogen/cabal_macros.h -package-id > base-4.12.0.0 -package-id containers-0.6.0.1 -package-id directory-1.3.3.0 > -package-id filepath-1.4.2.1 -package-id process-1.6.3.0 -Wall -XHaskell2010 > -no-user-package-db -rtsopts -outputdir utils/hsc2hs/dist/build > -static -H32m -O -Wall -package-db libraries/bootstrapping.conf > -hide-all-packages -i -iutils/hsc2hs/. -iutils/hsc2hs/dist/build > -Iutils/hsc2hs/dist/build -iutils/hsc2hs/dist/build/hsc2hs/autogen > -Iutils/hsc2hs/dist/build/hsc2hs/autogen -optP-include > -optPutils/hsc2hs/dist/build/hsc2hs/autogen/cabal_macros.h -package-id > base-4.12.0.0 -package-id containers-0.6.0.1 -package-id directory-1.3.3.0 > -package-id filepath-1.4.2.1 -package-id process-1.6.3.0 -Wall -XHaskell2010 > -no-user-package-db -rtsopts utils/hsc2hs/dist/build/Main.o > utils/hsc2hs/dist/build/C.o utils/hsc2hs/dist/build/Common.o > utils/hsc2hs/dist/build/CrossCodegen.o > utils/hsc2hs/dist/build/DirectCodegen.o utils/hsc2hs/dist/build/Flags.o > utils/hsc2hs/dist/build/HSCParser.o utils/hsc2hs/dist/build/ATTParser.o > utils/hsc2hs/dist/build/UtilsCodegen.o > utils/hsc2hs/dist/build/Compat/ResponseFile.o > utils/hsc2hs/dist/build/Paths_hsc2hs.o > /usr/bin/install -c -m 755 utils/hsc2hs/dist/build/tmp/hsc2hs > inplace/lib/bin/hsc2hs > ... > make[1]: 'utils/hsc2hs/dist/build/tmp/hsc2hs' is up to date. > make utils/hsc2hs/dist/build/tmp/hsc2hs 49.26s user 15.66s system 91% cpu > 1:10.58 total > > Adding `-fforce-recomp -v -keep-tmp-files` to the above ghc invocation > reveals a `gcc` invocation; running that one under `strace` shows: > > % strace -s 30000 -fy -e execve gcc -fno-stack-protector > -DTABLES_NEXT_TO_CODE '-fuse-ld=gold' -Wl,--no-as-needed -o > utils/hsc2hs/dist/build/tmp/hsc2hs -lm -no-pie -Wl,--gc-sections > utils/hsc2hs/dist/build/Main.o utils/hsc2hs/dist/build/C.o > utils/hsc2hs/dist/build/Common.o utils/hsc2hs/dist/build/CrossCodegen.o > utils/hsc2hs/dist/build/DirectCodegen.o utils/hsc2hs/dist/build/Flags.o > utils/hsc2hs/dist/build/HSCParser.o utils/hsc2hs/dist/build/ATTParser.o > utils/hsc2hs/dist/build/UtilsCodegen.o > utils/hsc2hs/dist/build/Compat/ResponseFile.o > utils/hsc2hs/dist/build/Paths_hsc2hs.o > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/process-1.6.3.0 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/directory-1.3.3.0 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/unix-2.7.2.2 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/bytestring-0.10.8.2 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/time-1.8.0.2 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/filepath-1.4.2.1 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/containers-0.6.0.1 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/deepseq-1.4.4.0 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/array-0.5.3.0 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/base-4.12.0.0 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/integer-gmp-1.0.2.0 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/ghc-prim-0.5.3 > -L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/rts > /tmp/ghc2447_0/ghc_2.o /tmp/ghc2447_0/ghc_5.o > -Wl,-u,base_GHCziTopHandler_runIO_closure > -Wl,-u,base_GHCziTopHandler_runNonIO_closure > -Wl,-u,ghczmprim_GHCziTuple_Z0T_closure > -Wl,-u,ghczmprim_GHCziTypes_True_closure > -Wl,-u,ghczmprim_GHCziTypes_False_closure > -Wl,-u,base_GHCziPack_unpackCString_closure > -Wl,-u,base_GHCziWeak_runFinalizzerBatch_closure > -Wl,-u,base_GHCziIOziException_stackOverflow_closure > -Wl,-u,base_GHCziIOziException_heapOverflow_closure > -Wl,-u,base_GHCziIOziException_allocationLimitExceeded_closure > -Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnMVar_closure > -Wl,-u,base_GHCziIOziException_blockedIndefinitelyOnSTM_closure > -Wl,-u,base_GHCziIOziException_cannotCompactFunction_closure > -Wl,-u,base_GHCziIOziException_cannotCompactPinned_closure > -Wl,-u,base_GHCziIOziException_cannotCompactMutable_closure > -Wl,-u,base_ControlziExceptionziBase_absentSumFieldError_closure > -Wl,-u,base_ControlziExceptionziBase_nonTermination_closure > -Wl,-u,base_ControlziExceptionziBase_nestedAtomically_closure > -Wl,-u,base_GHCziEventziThread_blockedOnBadFD_closure > -Wl,-u,base_GHCziConcziSync_runSparks_closure > -Wl,-u,base_GHCziConcziIO_ensureIOManagerIsRunning_closure > -Wl,-u,base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure > -Wl,-u,base_GHCziConcziSignal_runHandlersPtr_closure > -Wl,-u,base_GHCziTopHandler_flushStdHandles_closure > -Wl,-u,base_GHCziTopHandler_runMainIO_closure > -Wl,-u,ghczmprim_GHCziTypes_Czh_con_info > -Wl,-u,ghczmprim_GHCziTypes_Izh_con_info > -Wl,-u,ghczmprim_GHCziTypes_Fzh_con_info > -Wl,-u,ghczmprim_GHCziTypes_Dzh_con_info > -Wl,-u,ghczmprim_GHCziTypes_Wzh_con_info -Wl,-u,base_GHCziPtr_Ptr_con_info > -Wl,-u,base_GHCziPtr_FunPtr_con_info -Wl,-u,base_GHCziInt_I8zh_con_info > -Wl,-u,base_GHCziInt_I16zh_con_info -Wl,-u,base_GHCziInt_I32zh_con_info > -Wl,-u,base_GHCziInt_I64zh_con_info -Wl,-u,base_GHCziWord_W8zh_con_info > -Wl,-u,base_GHCziWord_W16zh_con_info -Wl,-u,base_GHCziWord_W32zh_con_info > -Wl,-u,base_GHCziWord_W64zh_con_info > -Wl,-u,base_GHCziStable_StablePtr_con_info -Wl,-u,hs_atomic_add8 > -Wl,-u,hs_atomic_add16 -Wl,-u,hs_atomic_add32 -Wl,-u,hs_atomic_add64 > -Wl,-u,hs_atomic_sub8 -Wl,-u,hs_atomic_sub16 -Wl,-u,hs_atomic_sub32 > -Wl,-u,hs_atomic_sub64 -Wl,-u,hs_atomic_and8 -Wl,-u,hs_atomic_and16 > -Wl,-u,hs_atomic_and32 -Wl,-u,hs_atomic_and64 -Wl,-u,hs_atomic_nand8 > -Wl,-u,hs_atomic_nand16 -Wl,-u,hs_atomic_nand32 -Wl,-u,hs_atomic_nand64 > -Wl,-u,hs_atomic_or8 -Wl,-u,hs_atomic_or16 -Wl,-u,hs_atomic_or32 > -Wl,-u,hs_atomic_or64 -Wl,-u,hs_atomic_xor8 -Wl,-u,hs_atomic_xor16 > -Wl,-u,hs_atomic_xor32 -Wl,-u,hs_atomic_xor64 -Wl,-u,hs_cmpxchg8 > -Wl,-u,hs_cmpxchg16 -Wl,-u,hs_cmpxchg32 -Wl,-u,hs_cmpxchg64 > -Wl,-u,hs_atomicread8 -Wl,-u,hs_atomicread16 -Wl,-u,hs_atomicread32 > -Wl,-u,hs_atomicread64 -Wl,-u,hs_atomicwrite8 -Wl,-u,hs_atomicwrite16 > -Wl,-u,hs_atomicwrite32 -Wl,-u,hs_atomicwrite64 -lHSprocess-1.6.3.0 > -lHSdirectory-1.3.3.0 -lHSunix-2.7.2.2 -lHSbytestring-0.10.8.2 > -lHStime-1.8.0.2 -lHSfilepath-1.4.2.1 -lHScontainers-0.6.0.1 > -lHSdeepseq-1.4.4.0 -lHSarray-0.5.3.0 -lHSbase-4.12.0.0 > -lHSinteger-gmp-1.0.2.0 -lHSghc-prim-0.5.3 -lHSrts -lCffi -lrt -lutil -ldl > -lpthread -lgmp -lm -lrt -ldl -lpthread -v > ... > [pid 2998] execve("/usr/bin/ld.gold", ["/usr/bin/ld.gold", "-plugin", > "/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so", > "-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper", > "-plugin-opt=-fresolution=/tmp/ccix2beF.res", > "-plugin-opt=-pass-through=-lgcc", "-plugin-opt=-pass-through=-lgcc_s", > "-plugin-opt=-pass-through=-lc", "-plugin-opt=-pass-through=-lgcc", > "-plugin-opt=-pass-through=-lgcc_s", "--sysroot=/", "--build-id", > "--eh-frame-hdr", "-m", "elf_x86_64", "--hash-style=gnu", "--as-needed", > "-dynamic-linker", "/lib64/ld-linux-x86-64.so.2", "-z", "relro", "-o", > "utils/hsc2hs/dist/build/tmp/hsc2hs", > "/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o", > "/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o", > "/usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o", > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/process-1.6.3.0", > > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/directory-1.3.3.0", > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/unix-2.7.2.2", > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/bytestring-0.10.8.2", > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/time-1.8.0.2", > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/filepath-1.4.2.1", > > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/containers-0.6.0.1", > > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/deepseq-1.4.4.0", > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/array-0.5.3.0", > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/base-4.12.0.0", > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/integer-gmp-1.0.2.0", > > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/ghc-prim-0.5.3", > "-L/raid/stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/rts", > "-L/usr/lib/gcc/x86_64-linux-gnu/5", > "-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu", > "-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib", > "-L/lib/x86_64-linux-gnu", "-L/lib/../lib", "-L/usr/lib/x86_64-linux-gnu", > "-L/usr/lib/../lib", "-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..", > "--no-as-needed", "-lm", "--gc-sections", "utils/hsc2hs/dist/build/Main.o", > "utils/hsc2hs/dist/build/C.o", "utils/hsc2hs/dist/build/Common.o", > "utils/hsc2hs/dist/build/CrossCodegen.o", > "utils/hsc2hs/dist/build/DirectCodegen.o", "utils/hsc2hs/dist/build/Flags.o", > "utils/hsc2hs/dist/build/HSCParser.o", "utils/hsc2hs/dist/build/ATTParser.o", > "utils/hsc2hs/dist/build/UtilsCodegen.o", > "utils/hsc2hs/dist/build/Compat/ResponseFile.o", > "utils/hsc2hs/dist/build/Paths_hsc2hs.o", "/tmp/ghc2447_0/ghc_2.o", > "/tmp/ghc2447_0/ghc_5.o", "-u", "base_GHCziTopHandler_runIO_closure", "-u", > "base_GHCziTopHandler_runNonIO_closure", "-u", > "ghczmprim_GHCziTuple_Z0T_closure", "-u", > "ghczmprim_GHCziTypes_True_closure", "-u", > "ghczmprim_GHCziTypes_False_closure", "-u", > "base_GHCziPack_unpackCString_closure", "-u", > "base_GHCziWeak_runFinalizzerBatch_closure", "-u", > "base_GHCziIOziException_stackOverflow_closure", "-u", > "base_GHCziIOziException_heapOverflow_closure", "-u", > "base_GHCziIOziException_allocationLimitExceeded_closure", "-u", > "base_GHCziIOziException_blockedIndefinitelyOnMVar_closure", "-u", > "base_GHCziIOziException_blockedIndefinitelyOnSTM_closure", "-u", > "base_GHCziIOziException_cannotCompactFunction_closure", "-u", > "base_GHCziIOziException_cannotCompactPinned_closure", "-u", > "base_GHCziIOziException_cannotCompactMutable_closure", "-u", > "base_ControlziExceptionziBase_absentSumFieldError_closure", "-u", > "base_ControlziExceptionziBase_nonTermination_closure", "-u", > "base_ControlziExceptionziBase_nestedAtomically_closure", "-u", > "base_GHCziEventziThread_blockedOnBadFD_closure", "-u", > "base_GHCziConcziSync_runSparks_closure", "-u", > "base_GHCziConcziIO_ensureIOManagerIsRunning_closure", "-u", > "base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure", "-u", > "base_GHCziConcziSignal_runHandlersPtr_closure", "-u", > "base_GHCziTopHandler_flushStdHandles_closure", "-u", > "base_GHCziTopHandler_runMainIO_closure", "-u", > "ghczmprim_GHCziTypes_Czh_con_info", "-u", > "ghczmprim_GHCziTypes_Izh_con_info", "-u", > "ghczmprim_GHCziTypes_Fzh_con_info", "-u", > "ghczmprim_GHCziTypes_Dzh_con_info", "-u", > "ghczmprim_GHCziTypes_Wzh_con_info", "-u", "base_GHCziPtr_Ptr_con_info", > "-u", "base_GHCziPtr_FunPtr_con_info", "-u", "base_GHCziInt_I8zh_con_info", > "-u", "base_GHCziInt_I16zh_con_info", "-u", "base_GHCziInt_I32zh_con_info", > "-u", "base_GHCziInt_I64zh_con_info", "-u", "base_GHCziWord_W8zh_con_info", > "-u", "base_GHCziWord_W16zh_con_info", "-u", "base_GHCziWord_W32zh_con_info", > "-u", "base_GHCziWord_W64zh_con_info", "-u", > "base_GHCziStable_StablePtr_con_info", "-u", "hs_atomic_add8", "-u", > "hs_atomic_add16", "-u", "hs_atomic_add32", "-u", "hs_atomic_add64", "-u", > "hs_atomic_sub8", "-u", "hs_atomic_sub16", "-u", "hs_atomic_sub32", "-u", > "hs_atomic_sub64", "-u", "hs_atomic_and8", "-u", "hs_atomic_and16", "-u", > "hs_atomic_and32", "-u", "hs_atomic_and64", "-u", "hs_atomic_nand8", "-u", > "hs_atomic_nand16", "-u", "hs_atomic_nand32", "-u", "hs_atomic_nand64", "-u", > "hs_atomic_or8", "-u", "hs_atomic_or16", "-u", "hs_atomic_or32", "-u", > "hs_atomic_or64", "-u", "hs_atomic_xor8", "-u", "hs_atomic_xor16", "-u", > "hs_atomic_xor32", "-u", "hs_atomic_xor64", "-u", "hs_cmpxchg8", "-u", > "hs_cmpxchg16", "-u", "hs_cmpxchg32", "-u", "hs_cmpxchg64", "-u", > "hs_atomicread8", "-u", "hs_atomicread16", "-u", "hs_atomicread32", "-u", > "hs_atomicread64", "-u", "hs_atomicwrite8", "-u", "hs_atomicwrite16", "-u", > "hs_atomicwrite32", "-u", "hs_atomicwrite64", "-lHSprocess-1.6.3.0", > "-lHSdirectory-1.3.3.0", "-lHSunix-2.7.2.2", "-lHSbytestring-0.10.8.2", > "-lHStime-1.8.0.2", "-lHSfilepath-1.4.2.1", "-lHScontainers-0.6.0.1", > "-lHSdeepseq-1.4.4.0", "-lHSarray-0.5.3.0", "-lHSbase-4.12.0.0", > "-lHSinteger-gmp-1.0.2.0", "-lHSghc-prim-0.5.3", "-lHSrts", "-lCffi", "-lrt", > "-lutil", "-ldl", "-lpthread", "-lgmp", "-lm", "-lrt", "-ldl", "-lpthread", > "-lgcc", "--as-needed", "-lgcc_s", "--no-as-needed", "-lc", "-lgcc", > "--as-needed", "-lgcc_s", "--no-as-needed", > "/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o", > "/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o"], [/* 89 > vars */]) = 0 > [pid 2998] +++ exited with 0 +++ > > So no error for me. > We'll want to do the same for you and compare. > > > On 01/04/2019 3:30 PM, Niklas Hambüchen wrote: > > That sounds good. A few more questions: > > > > What's the exact version of your OS, and of gold? > > > > After getting to the error, can you run the failing ghc invocation > > directly, and see if the error remains? The one starting with > > > > "/home/omer/ghc_bins/ghc-8.6.4-bin/bin/ghc" -o > > utils/hsc2hs/dist/build/tmp/hsc2hs ... > > > > If yes, can you add a `-v` to it, so we can see the invocations to the > > programs it calls? > > > > Then, it should show a gcc invocation (which eventually calls gold). > > Can you then manually run and add a `-v` to to the gcc invocation as well, > > so we can see the linker command it runs (see also > > https://stackoverflow.com/questions/1170809/how-to-get-gcc-linker-command)? > > You may have to run ghc with `-keep-tmp-files` if it invokes the gcc on > > temporary files. > > > > Finally, can you run the printed ld.gold invocation manually, and add a > > `-v` to that, so we get more detail about what gold is doing? > > > > If you are on Linux (and also in some other cases), you can also run ghc > > under `strace -fy -e execve` to see all programs started recursively by any > > subprogram; this may also easily provide the linker invocation. > > > > Thank you! > > > > On 01/04/2019 7:35 AM, Ömer Sinan Ağacan wrote: > >> Yeah I can reproduce it reliably. I tried a few `git clean -xfd`s, and > >> tried > >> with no build.mk and with a debug build.mk, it happened with all > >> configurations, > >> when building the same file (the hsc2hs executable). > >> > >> The repro is simple: clone the GHC repo, build at 6f7115dfd4. If this > >> doesn't > >> reproduce the bug then I don't know what else to try. > >> > >>> so perhaps you also have a corrupt ELF file somewhere > >> > >> How do I check this? Maybe gold.ld produces a corrupt ELF file during the > >> build, > >> and then tries to read it to link an executable. > > _______________________________________________ > > ghc-devs mailing list > > [email protected] > > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > > _______________________________________________ ghc-devs mailing list [email protected] http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
