Oh, my mistake. I can successfully build gollvm now, thank you so much! On Thursday, May 9, 2019 at 11:07:37 AM UTC+8, Than McIntosh wrote: > > 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 <yuan...@ict.ac.cn <javascript:>> > *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 golan...@googlegroups.com <javascript:>. >> 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/a142bee2-6c34-4e3d-9735-8ff6baa26c9e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.