There was a recent checkin related to -fdebug-go-optimization in both repos-- I think the failure you're seeing is just build skew. Try doing a "git pull" in llvm/tools/gollvm and llvm/tools/gollvm/gofrontend to make sure everything is up to date. Thanks, Than
*From: *Ting Yuan <yuant...@ict.ac.cn> *Date: *Wed, May 8, 2019 at 10:10 PM *To: *golang-nuts Hi Than, > It turned out to be the problem of shell. By SHELL=/bin/sh I can build > gollvm in the right way, but I still failed on a compile error: > > [2066/3237] Building CXX object tools/gollvm/bridge/CMakeFiles/ > LLVMCppGoFrontEnd.dir/__/gofrontend/go/go.cc.o > FAILED: tools/gollvm/bridge/CMakeFiles/LLVMCppGoFrontEnd.dir/__/gofrontend > /go/go.cc.o > /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE > -D__STDC_CONSTANT_MACROS > -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/gollvm/bridge -I/home > /yt/LLVMsvn/llvm/tools/gollvm/bridge -I/usr/include/libxml2 -Iinclude -I/ > home/yt/LLVMsvn/llvm/include -Itools/gollvm/external/install/include -I/ > home/yt/LLVMsvn/llvm/tools/gollvm/gofrontend/go -fPIC -fvisibility-inlines > -hidden -Werror=date-time -std=c++11 -Wall -Wextra -Wno-unused-parameter - > Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno- > long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-noexcept-type > -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -g > -fno-exceptions > -fno-rtti -MD -MT tools/gollvm/bridge/CMakeFiles/LLVMCppGoFrontEnd.dir/__/ > gofrontend/go/go.cc.o -MF tools/gollvm/bridge/CMakeFiles/LLVMCppGoFrontEnd > .dir/__/gofrontend/go/go.cc.o.d -o tools/gollvm/bridge/CMakeFiles/ > LLVMCppGoFrontEnd.dir/__/gofrontend/go/go.cc.o -c /home/yt/LLVMsvn/llvm/ > tools/gollvm/gofrontend/go/go.cc > /home/yt/LLVMsvn/llvm/tools/gollvm/gofrontend/go/go.cc: In function ‘void > go_create_gogo(const go_create_gogo_args*)’: > /home/yt/LLVMsvn/llvm/tools/gollvm/gofrontend/go/go.cc:47:13: error: ‘ > const struct go_create_gogo_args’ has no member named ‘debug_optimization’ > if (args->debug_optimization) > ^~~~~~~~~~~~~~~~~~ > /home/yt/LLVMsvn/llvm/tools/gollvm/gofrontend/go/go.cc:48:42: error: ‘ > const struct go_create_gogo_args’ has no member named ‘debug_optimization’ > ::gogo->set_debug_optimization(args->debug_optimization); > ^~~~~~~~~~~~~~~~~~ > [2069/3237] Building CXX object tools/gollvm/bridge/CMakeFiles/ > LLVMCppGoFrontEnd.dir/__/gofrontend/go/gogo.cc.o > ninja: build stopped: subcommand failed. > > > I checked the structure go_create_gogo_args (in gollvm/bridge/go-c.h) and > there really wasn't a field called debug_optimization there. Could I add > this field in go_create_gogo_args so I can let the build progress continue? > > Thanks. > > On Thursday, May 9, 2019 at 12:21:42 AM UTC+8, Than McIntosh wrote: >> >> Agree, the embedded space looks fishy. >> >> I also note that your shell is set to zsh -- you might try instead using >> SHELL=/bin/sh to see if that works better. >> >> Thanks, Than >> >> >> >> >> On Wed, May 8, 2019 at 12:04 PM Ting Yuan <yuan...@ict.ac.cn> wrote: >> >>> OK, I got something like >>> ... >>> /home/yt/LLVMsvn/llvm/tools/gollvm/gotools/CMakeLists.txt(55): if(NOT >>> EXISTS /home/yt/LLVMsvn/llvm/tools/gollvm/gofrontend/libgo/go/cmd/buildid ) >>> /home/yt/LLVMsvn/llvm/tools/gollvm/gotools/CMakeLists.txt(57): else() >>> /home/yt/LLVMsvn/llvm/tools/gollvm/gotools/CMakeLists.txt(58): >>> set(tool_target gotools_cmd_buildid ) >>> /home/yt/LLVMsvn/llvm/tools/gollvm/gotools/CMakeLists.txt(62): >>> execute_process(COMMAND /usr/bin/zsh >>> /home/yt/LLVMsvn/llvm/tools/gollvm/gofrontend/libgo/match.sh --goarch=amd64 >>> --goos=linux >>> --srcdir=/home/yt/LLVMsvn/llvm/tools/gollvm/gofrontend/libgo/go/cmd/buildid >>> OUTPUT_VARIABLE toolfiles ERROR_VARIABLE errmsg RESULT_VARIABLE exitstatus ) >>> /home/yt/LLVMsvn/llvm/tools/gollvm/gotools/CMakeLists.txt(68): if(NOT 0 >>> MATCHES 0 ) >>> /home/yt/LLVMsvn/llvm/tools/gollvm/gotools/CMakeLists.txt(71): >>> string(STRIP >>> /home/yt/LLVMsvn/llvm/tools/gollvm/gofrontend/libgo/go/cmd/buildid/ >>> buildid.go doc.go >>> toolfiles ) >>> /home/yt/LLVMsvn/llvm/tools/gollvm/gotools/CMakeLists.txt(72): >>> separate_arguments(toolfiles ) >>> ... >>> >>> I found that the absolute path of buildid.go is illegal (there is a >>> space before the filename). This looks like the root cause. >>> >>> On Wednesday, May 8, 2019 at 11:46:09 PM UTC+8, Than McIntosh wrote: >>>> >>>> Hmm, OK, sounds like 'sed' is not the issue. >>>> >>>> >>I found there are only two files (CMakeLists.txt and >>>> gotestprogram.sh) under the llvm/tools/gollvm/gotools/. Should the missing >>>> files (e.g. buildid.go) be there? >>>> >>>> No, this is expected. The Go sources for 'buildid' will be pulled from >>>> <LLVMROOT>/tools/gollvm/gofrontend/libgo/go/cmd/buildid. >>>> >>>> At this point what I would recommend to gather more info: rerun cmake >>>> and pass it the "--trace-expand" flag, e.g. >>>> >>>> cmake --trace-expand -DCMAKE_BUILD_TYPE=Debug -DLLVM_USE_LINKER=gold >>>> ../llvm >>>> >>>> Be warned that this will produce a huge amount of output (~40M or so). >>>> Sift through the output and see if you can find the place where it is >>>> trying to locate the source files for the buildid tool by running >>>> 'match.sh'. Should look something like >>>> >>>> /root/llvm/tools/gollvm/gotools/CMakeLists.txt(55): if(NOT EXISTS >>>> /root/llvm/tools/gollvm/gofrontend/libgo/go/cmd/buildid ) >>>> /root/llvm/tools/gollvm/gotools/CMakeLists.txt(57): else() >>>> /root/llvm/tools/gollvm/gotools/CMakeLists.txt(58): set(tool_target >>>> gotools_cmd_buildid ) >>>> /root/llvm/tools/gollvm/gotools/CMakeLists.txt(62): >>>> execute_process(COMMAND /bin/bash >>>> /root/llvm/tools/gollvm/gofrontend/libgo/match.sh --goarch=amd64 >>>> --goos=linux >>>> --srcdir=/root/llvm/tools/gollvm/gofrontend/libgo/go/cmd/buildid >>>> OUTPUT_VARIABLE toolfiles ERROR_VARIABLE errmsg RESULT_VARIABLE exitstatus >>>> ) >>>> /root/llvm/tools/gollvm/gotools/CMakeLists.txt(68): if(NOT 0 MATCHES 0 >>>> ) >>>> /root/llvm/tools/gollvm/gotools/CMakeLists.txt(71): string(STRIP >>>> /root/llvm/tools/gollvm/gofrontend/libgo/go/cmd/buildid/buildid.go >>>> /root/llvm/tools/gollvm/gofrontend/libgo/go/cmd/buildid/doc.go >>>> toolfiles ) >>>> >>>> I am thinking that maybe there is something going wrong with the >>>> invocation of 'match.sh' in your case that is throwing things off. >>>> >>>> Thanks, Than >>>> >>>> >>>> >>>> On Wed, May 8, 2019 at 11:30 AM Ting Yuan <yuan...@ict.ac.cn> wrote: >>>> >>>>> Hi Than, >>>>> >>>>> On my system the version of sed is 4.4. Is the version mismatch? >>>>> >>>>> I found there are only two files (CMakeLists.txt and gotestprogram.sh) >>>>> under the llvm/tools/gollvm/gotools/. Should the missing files (e.g. >>>>> buildid.go) be there? >>>>> >>>>> Thanks. >>>>> >>>>> On Wednesday, May 8, 2019 at 8:50:23 PM UTC+8, Than McIntosh wrote: >>>>>> >>>>>> Hi, >>>>>> >>>>>> From the error output it sounds like something went wrong with the >>>>>> initial cmake run -- the error from match.sh seems nonsensical (it >>>>>> suggests >>>>>> that the script is looking for gotools sources in the wrong location). >>>>>> >>>>>> One possibility would be that you don't have "sed" installed on your >>>>>> system? >>>>>> >>>>>> Thanks, Than >>>>>> >>>>>> >>>>>> On Tue, May 7, 2019 at 9:56 PM Ting Yuan <yuan...@ict.ac.cn> wrote: >>>>>> >>>>>>> Hello Than, >>>>>>> when I using ninja to build gollvm, just like >>>>>>> >>>>>>> % cmake -DCMAKE_INSTALL_PREFIX=/home/yt/LLVMsvn/install - >>>>>>> DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Debug - >>>>>>> DLLVM_USE_LINKER=gold -G "Ninja" ../llvm >>>>>>> % ninja gollvm >>>>>>> >>>>>>> the build system still reports an error: >>>>>>> >>>>>>> ninja: error: >>>>>>> '/home/yt/LLVMsvn/llvm-project/llvm/tools/gollvm/gotools/buildid.go' >>>>>>> , needed by 'tools/gollvm/gotools/buildid', missing and no known >>>>>>> rule to make it >>>>>>> >>>>>>> I notice that some warnings are raised during the configuration like: >>>>>>> >>>>>>> /home/yt/LLVMsvn/llvm-project/llvm/tools/gollvm/gofrontend/libgo/match.sh:138: >>>>>>> no such file or directory: action.go build.go buildid.go exec.go gc.go >>>>>>> gccgo.go init.go security.go testgo.go >>>>>>> >>>>>>> Is there something I missing ? >>>>>>> >>>>>>> >>>>>>> >>>>>>> 在 2019年5月7日星期二 UTC+8下午9:48:48,Than McIntosh写道: >>>>>>>> >>>>>>>> Hello, >>>>>>>> For the gollvm build ninja is recommended (using "make" is untested >>>>>>>> and I doubt if it will work). >>>>>>>> Thanks, Than >>>>>>>> >>>>>>>> >>>>>>>> On Tue, May 7, 2019 at 9:27 AM <yuan...@ict.ac.cn> wrote: >>>>>>>> >>>>>>>>> I try to build gollvm on ubuntu(x64) following these commands in >>>>>>>>> https://go.googlesource.com/gollvm/ : >>>>>>>>> >>>>>>>>> % cd workarea >>>>>>>>> % mkdir build-debug >>>>>>>>> % cd build-debug >>>>>>>>> % cmake -DCMAKE_BUILD_TYPE=Debug -DLLVM_USE_LINKER=gold ../llvm >>>>>>>>> ... >>>>>>>>> % make gollvm -j4 >>>>>>>>> ... >>>>>>>>> % >>>>>>>>> >>>>>>>>> but I got >>>>>>>>> >>>>>>>>> -- Targeting X86 >>>>>>>>> -- starting libgo configuration. >>>>>>>>> /home/yt/LLVMsvn/llvm-project/llvm/tools/gollvm/gofrontend/libgo/ >>>>>>>>> match.sh:138: no such file or directory: common.go format.go >>>>>>>>> reader.go stat_actime1.go stat_actime2.go stat_unix.go strconv.go >>>>>>>>> writer.go >>>>>>>>> /home/yt/LLVMsvn/llvm-project/llvm/tools/gollvm/gofrontend/libgo/ >>>>>>>>> match.sh:138: no such file or directory: reader.go register.go >>>>>>>>> struct.go writer.go >>>>>>>>> ...... >>>>>>>>> -- Performing Test HAVE_STEADY_CLOCK -- success >>>>>>>>> -- Configuring done >>>>>>>>> -- Generating done >>>>>>>>> -- Build files have been written to: /home/yt/LLVMsvn/llvm-project >>>>>>>>> /debug >>>>>>>>> ... >>>>>>>>> [ 0%] Built target LLVMDemangle >>>>>>>>> [ 0%] Built target GoDumpSpecMacroParser >>>>>>>>> ... >>>>>>>>> [ 50%] Building Go package 'runtime' (non-PIC) >>>>>>>>> /home/yt/LLVMsvn/llvm-project/debug/tools/gollvm/libgo/sigtab.go:5 >>>>>>>>> :21: error: use of undefined type 'sigTabT' >>>>>>>>> /home/yt/LLVMsvn/llvm-project/debug/tools/gollvm/libgo/sigtab.go:7 >>>>>>>>> :12: error: reference to undefined name '_SigNotify' >>>>>>>>> /home/yt/LLVMsvn/llvm-project/debug/tools/gollvm/libgo/sigtab.go:7 >>>>>>>>> :25: error: reference to undefined name '_SigKill' >>>>>>>>> /home/yt/LLVMsvn/llvm-project/debug/tools/gollvm/libgo/sigtab.go:8 >>>>>>>>> :12: error: reference to undefined name '_SigNotify' >>>>>>>>> ... >>>>>>>>> tools/gollvm/libgo/CMakeFiles/libgo_runtime.dir/build.make:64: >>>>>>>>> recipe for target 'tools/gollvm/libgo/runtime.o' failed >>>>>>>>> make[3]: *** [tools/gollvm/libgo/runtime.o] Error 3 >>>>>>>>> CMakeFiles/Makefile2:16487: recipe for target >>>>>>>>> 'tools/gollvm/libgo/CMakeFiles/libgo_runtime.dir/all' failed >>>>>>>>> make[2]: *** [tools/gollvm/libgo/CMakeFiles/libgo_runtime.dir/all] >>>>>>>>> Error 2 >>>>>>>>> CMakeFiles/Makefile2:11625: recipe for target >>>>>>>>> 'tools/gollvm/CMakeFiles/gollvm.dir/rule' failed >>>>>>>>> make[1]: *** [tools/gollvm/CMakeFiles/gollvm.dir/rule] Error 2 >>>>>>>>> Makefile:3475: recipe for target 'gollvm' failed >>>>>>>>> make: *** [gollvm] Error 2 >>>>>>>>> >>>>>>>>> I have no idea about this problem. Should I switch make to ninja >>>>>>>>> (like the document said)? >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "golang-nuts" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to golan...@googlegroups.com. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/golang-nuts/4529d46b-caf4-475f-bcda-273c1bca5016%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/golang-nuts/4529d46b-caf4-475f-bcda-273c1bca5016%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "golang-nuts" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to golan...@googlegroups.com. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/golang-nuts/ed517fe7-e180-4d0b-b134-f8ee76427ebf%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/golang-nuts/ed517fe7-e180-4d0b-b134-f8ee76427ebf%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "golang-nuts" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to golan...@googlegroups.com. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/golang-nuts/92cbfe57-f1fb-467d-b935-394a842f597e%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/golang-nuts/92cbfe57-f1fb-467d-b935-394a842f597e%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "golang-nuts" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to golan...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/golang-nuts/df20fae4-d96d-4c50-a531-01d95ebf83d2%40googlegroups.com >>> <https://groups.google.com/d/msgid/golang-nuts/df20fae4-d96d-4c50-a531-01d95ebf83d2%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/369e31c6-2a6e-45b0-a7dc-400ec4b32ea2%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/369e31c6-2a6e-45b0-a7dc-400ec4b32ea2%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CA%2BUr55FP1vsnXWqVBrFLsxG55G8rk2hT8i6%2B%3DRGWFA6t8TZW5Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.