Hi,

Thank you for your detailed explanation. I will try your suggestions and 
let you know. 

I used this cmake command.
`cmake -DCMAKE_INSTALL_PREFIX=/my/install/dir -DCMAKE_BUILD_TYPE=Release 
-DLLVM_USE_LINKER=gold -G Ninja ../llvm-project/llvm`

Then I used, `ninja gollvm`, and it was successful.

Also, I used, `ninja install-gollvm`, but nothing happens.

I have a couple of unclear points. As I know, llvm-goc is a tool that 
generates llvm IR for a go source code. 
If I run `go build test.go`, when does llvm-goc executable start to run?  
Does go build command replace its' existing compiler with llvm-goc? 

Thank you,
Kavindu
On Friday, 25 June 2021 at 19:52:16 UTC+5:30 th...@google.com wrote:

> Hello again,
>
> Couple of things. 
>
> First, it is important to keep in mind that the "llvm-goc" binary is not 
> intended to be used as a top level go compiler, in the same way that the 
> "gcc" or "clang" commands are used as top-level C/C++ compilers. The normal 
> use case is to use "go build" as opposed to invoking llvm-goc directly.  
> Just to recap: build the 'install-gollvm' ninja target (as described in 
> https://go.googlesource.com/gollvm/#installing), prepend the install dir 
> "bin" directory in your path, and then run "go build".
>
> It's also problematic to run llvm-goc directly out of the build area 
> instead of doing and install and using the copy in the install dir. For 
> example, if I do a build of llvm-goc in my LLVM build area, then invoke it 
> directly on a small Go program, this is what I see:
>
> $ ./bin/llvm-goc smallmain.go
> /usr/bin/ld.gold: error: cannot find -lgobegin
> /usr/bin/ld.gold: error: cannot find -lgo
> /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/crt1.o:function 
> _start: error: undefined reference to 'main'
> <built-in>:1: error: undefined reference to 
> 'runtime.registerTypeDescriptors'
> smallmain.go:4: error: undefined reference to 'runtime.printlock'
> smallmain.go:4: error: undefined reference to 'runtime.printint'
> smallmain.go:4: error: undefined reference to 'runtime.printnl'
> smallmain.go:4: error: undefined reference to 'runtime.printunlock'
> $ 
>
> Here the compiler is unable to find the right runtime libraries. I'll see 
> if I can update the documentation to make this a little clearer.
>
> Regarding the crash you're seeing when building from 
>
>  LLVM: 43ff75f2c3feef64f9d73328230d34dac8832a91
> gollvm: 44a7a475cfd3b871b7a5a0941b8ab1ea9d489adc
> gofrontend: be0d2cc2df9f98d967c242594838f86362dae2e7
> libbacktrace: 5a99ff7fed66b8ea8f09c9805c138524a7035ece
> libffi: 737d4faa00d681b4c758057f67e1a02d813d01c2
>
>
> Sorry, but I can't reproduce your crash (I did another build using the 
> config above and it seems to work ok). What is the exact cmake command 
> you're using to set up your build area?
>
> You might also try this: in your LLVM build area, run "ninja 
> llvm-symbolizer" and then set
>
> export LLVM_SYMBOLIZER=${HERE}/bin/llvm-symbolizer
>
> then rerun the failing "llvm-goc" invocation, that might give you a better 
> stack trace.
>
> Thanks, Than
>
>
>
> On Thu, Jun 24, 2021 at 2:53 PM Kavindu Gimhan Zoysa <kavin...@gmail.com> 
> wrote:
>
>> I did not use any *go build* command. Sorry if I missed anything. These 
>> are the steps I followed.
>>
>> 1. Build gollvm referring to the official documentation. I followed the 
>> steps until https://go.googlesource.com/gollvm/#cmakeninja. 
>> 2. I was able to see the *llvm-goc *in the bin folder.  I export the 
>> path using '*export 
>> LD_LIBRARY_PATH=<HOME>/build-debug/libgo/x86_64-unknown-linux-gnu' *
>> command.
>> 3. Then I tried to dump the llvm IR using '*../bin/llvm-goc -S test.go 
>> -dump-ir', *and it was successful.
>> 4. Then I ran this command '*./bin/llvm-goc test.go'*. I got the above 
>> error.
>>
>> Did i miss anything?
>>
>> Thank you,
>> Kavindu
>> On Friday, 25 June 2021 at 00:01:41 UTC+5:30 th...@google.com wrote:
>>
>>> Could you please post the complete "go build" command?
>>>
>>> Thanks, Than
>>>
>>> On Thu, Jun 24, 2021 at 2:05 PM Kavindu Gimhan Zoysa <kavin...@gmail.com> 
>>> wrote:
>>>
>>>> Hi all,
>>>>
>>>> Still, I was unable to figure out the reason for the above error. 
>>>> Really appreciate your help.
>>>>
>>>> Thank you,
>>>> Kavindu
>>>>
>>>> On Thursday, 24 June 2021 at 12:06:32 UTC+5:30 Kavindu Gimhan Zoysa 
>>>> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> I have build the gollvm and now I am trying to run it. So I run 
>>>>> follwing command against a simple go source code. I am getting below 
>>>>> error. 
>>>>> Really appreciate your input to solve this issue. 
>>>>>
>>>>> command : 
>>>>> *./bin/llvm-goc test.go*
>>>>>
>>>>> error:
>>>>> *llvm-goc: 
>>>>> /home/kavindu/GIT/llvm-project/llvm/tools/gollvm/driver/Action.cpp:51: 
>>>>> const char* gollvm::driver::Action::resultFileSuffix() const: Assertion 
>>>>> `false' failed.*
>>>>> *../bin/llvm-goc(+0x2c46a3f)[0x55a113e42a3f]*
>>>>> *../bin/llvm-goc(+0x2c46ad6)[0x55a113e42ad6]*
>>>>> *../bin/llvm-goc(+0x2c44829)[0x55a113e40829]*
>>>>> *../bin/llvm-goc(+0x2c46387)[0x55a113e42387]*
>>>>> */lib/x86_64-linux-gnu/libpthread.so.0(+0x153c0)[0x7f67e0aad3c0]*
>>>>> */lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f67e056818b]*
>>>>> */lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7f67e0547859]*
>>>>> */lib/x86_64-linux-gnu/libc.so.6(+0x25729)[0x7f67e0547729]*
>>>>> */lib/x86_64-linux-gnu/libc.so.6(+0x36f36)[0x7f67e0558f36]*
>>>>> *../bin/llvm-goc(+0x827e69)[0x55a111a23e69]*
>>>>> *../bin/llvm-goc(+0x8167d5)[0x55a111a127d5]*
>>>>> *../bin/llvm-goc(+0x81db02)[0x55a111a19b02]*
>>>>> *../bin/llvm-goc(+0x81ddfb)[0x55a111a19dfb]*
>>>>> *../bin/llvm-goc(+0x811cb9)[0x55a111a0dcb9]*
>>>>>
>>>>> */lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f67e05490b3]*
>>>>> *../bin/llvm-goc(+0x81112e)[0x55a111a0d12e]*
>>>>> *PLEASE submit a bug report to https://bugs.llvm.org/ 
>>>>> <https://bugs.llvm.org/> and include the crash backtrace.*
>>>>> *Stack dump:*
>>>>> *0. Program arguments: ../bin/llvm-goc test.go *
>>>>> *Aborted (core dumped)*
>>>>>
>>>>> I have build gollvm using exact commits as shown here.
>>>>> https://groups.google.com/g/golang-nuts/c/E770QGuKkpU/m/sJFuarbrBQAJ
>>>>>
>>>>> Thank you,
>>>>> Kavindu
>>>>>
>>>> -- 
>>>> 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...@googlegroups.com.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/golang-nuts/5a73b285-1252-400a-9259-20b2d7f68e5cn%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/golang-nuts/5a73b285-1252-400a-9259-20b2d7f68e5cn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> 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...@googlegroups.com.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/834df407-71f3-48d4-8d93-0f1e3c6ab714n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/golang-nuts/834df407-71f3-48d4-8d93-0f1e3c6ab714n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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/b3d9d30c-2ff2-48fe-aee4-01be7551609an%40googlegroups.com.

Reply via email to