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 <kavindu...@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+unsubscr...@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/CA%2BUr55Eija4oKkR%2BiiqPD2sVwrPwgUuXu453m891y2ei88hepw%40mail.gmail.com.

Reply via email to