-
Notifications
You must be signed in to change notification settings - Fork 80
llgo installation guide #26
Comments
Thanks. FYI, the installation procedure will change in the future. There's cmd/llgo-dist that is intended to build a complete llgo distribution. It's still under development, as things are still changing. |
Is it under too much development for others to check it out? I don't expect a fully working llvm based compiler, I'm just curious about its progress. I know about the wiki page, but it would be great if there were some milestones set up here at github to make it easier for people like me with no insight into the code to see how far along it is and how it's progressing.
|
the main development branch is go1.1 which aims to make llgo up-to-date with the upcoming Go 1.1 PS: you need to install Go tip to try it out. |
Yeah, the previous log is with go tip and the go1.1 branch.
|
Sorry, I think I broke llgo-dist in the most recent commits. I won't have any time to do any work on llgo in the next couple of weeks (at least). It's probably sufficient to comment out the line in buildruntime.go that sets the Compiler field of the go/build Context structure. |
Sorry I realised later that things still won't work for you on go1.1, as there are some changes to go/types required. I haven't yet put together a CL to address them upstream. @quarnster, to address your original questions: unless you're going to invest a bit of effort patching go/types and so forth, it might be a little too green to check out go1.1. The master branch should be okay to play with, but is out of date. Milestones would be ideal, the trick is documenting them without boring myself to the point that I don't want to work on llgo anymore :) I'll have a go at setting something up when I have a few spare cycles again. |
I'm not interested in lots of documentation (the wiki is already too verbose imo), but if you open up issues for some of the bits you know aren't done yet you can use github's milestone feature to define some sort of vison and then just include the issue's #-tag in the commit messages and we who don't know the ins and outs of the project will get a nice progress bar with the bird's perspective of the status. |
@quarnster Sounds good. Thanks, I wasn't aware of this feature of Github. |
I'm having problems with llgo-dist, any ideas what might be the cause and what might fix it? 17:19 ~/code/go/src/github.com/axw/llgo/cmd/llgo-dist $ go build && ./llgo-dist
2013/05/18 17:20:06 LLVM version: 3.4svn
2013/05/18 17:20:06 LLVM executables directory: /usr/local/bin
2013/05/18 17:20:06 LLVM library directory: /usr/local/lib
2013/05/18 17:20:06 LLVM libraries: -lLLVMInstrumentation -lLLVMArchive -lLLVMLinker -lLLVMIRReader -lLLVMBitReader -lLLVMAsmParser -lLLVMDebugInfo -lLLVMOption -lLLVMipo -lLLVMVectorize -lLLVMBitWriter -lLLVMTableGen -lLLVMSystemZDisassembler -lLLVMSystemZCodeGen -lLLVMSystemZAsmParser -lLLVMSystemZDesc -lLLVMSystemZInfo -lLLVMSystemZAsmPrinter -lLLVMHexagonCodeGen -lLLVMHexagonAsmPrinter -lLLVMHexagonDesc -lLLVMHexagonInfo -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter -lLLVMMBlazeDisassembler -lLLVMMBlazeCodeGen -lLLVMMBlazeDesc -lLLVMMBlazeAsmPrinter -lLLVMMBlazeAsmParser -lLLVMMBlazeInfo -lLLVMCppBackendCodeGen -lLLVMCppBackendInfo -lLLVMMSP430CodeGen -lLLVMMSP430Desc -lLLVMMSP430Info -lLLVMMSP430AsmPrinter -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMXCoreAsmPrinter -lLLVMMipsDisassembler -lLLVMMipsCodeGen -lLLVMMipsAsmParser -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMMipsAsmPrinter -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMPowerPCCodeGen -lLLVMPowerPCDesc -lLLVMPowerPCAsmPrinter -lLLVMPowerPCAsmParser -lLLVMPowerPCInfo -lLLVMSparcCodeGen -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCDisassembler -lLLVMMCParser -lLLVMInterpreter -lLLVMMCJIT -lLLVMJIT -lLLVMCodeGen -lLLVMObjCARCOpts -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore -lLLVMSupport
2013/05/18 17:20:06 LLVM LDFLAGS: -L/usr/local/lib -lz -lpthread -lm
2013/05/18 17:20:06 LLVM CFLAGS: -I/usr/local/include -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O3 -fno-common
2013/05/18 17:20:06 Located static libraries
2013/05/18 17:20:06 Building llgo
2013/05/18 17:20:06 GOARCH = amd64, GOOS = darwin
2013/05/18 17:20:06 Built /Users/quarnster/code/go/bin/llgo
2013/05/18 17:20:06 Generating syscall package
2013/05/18 17:20:06 - bpf_bsd.go env_unix.go exec_bsd.go exec_unix.go race0.go route_bsd.go route_darwin.go sockcmsg_unix.go str.go syscall.go syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go syscall_unix.go zerrors_darwin_amd64.go zsyscall_darwin_amd64.go zsysnum_darwin_amd64.go ztypes_darwin_amd64.go
2013/05/18 17:20:06 Generating math package
2013/05/18 17:20:07 - abs.go acosh.go asin.go asinh.go atan.go atan2.go atanh.go bits.go cbrt.go const.go copysign.go dim.go erf.go exp.go expm1.go floor.go frexp.go gamma.go hypot.go j0.go j1.go jn.go ldexp.go lgamma.go log.go log10.go log1p.go logb.go mod.go modf.go nextafter.go pow.go pow10.go remainder.go signbit.go sin.go sincos.go sinh.go sqrt.go tan.go tanh.go unsafe.go
2013/05/18 17:20:07 Building runtime
2013/05/18 17:20:07 - runtime
2013/05/18 17:20:07 - syscall
Basic Block in function 'syscall.forkAndExecInChild' does not have terminator!
label %done77
LLVM ERROR: Broken module, no Basic Block terminator!
exit status 1 |
Tried with 3.2 svn on ubuntu 12.04 amd64 and got the following:
|
@quarnster Not sure, since it's 3.4 svn it could be anything. I'll try later on. @kortschak That looks like a bug in llgo (not checking if there's a insert pos in effect) - not sure why it doesn't turn up for me. I'll put in a fix later, thanks. |
@axw, I get exactly the same thing with 3.2 (http://llvm.org/releases/3.2/llvm-3.2.src.tar.gz) too though, so it isn't 3.4 svn specific.
|
@quarnster Okay, that's odd. Is that building with the official Go 1.1 release? |
I've tried with both:
and
With both giving me the same result. For reference:
|
@quarnster Okay. Sorry, I hadn't noticed that you're on OS X. Now that I'm looking at the right definition of forkAndExecInChild, I think I can see the problem. llgo isn't handling a terminating for{...} properly. I'll open a new issue for this. |
Got it. FWIW the same procedure worked fine in my ubuntu vm, so I think you're on to something here :) |
@quarnster That problem should be fixed. I don't have a Mac so I can't tell you whether you'll meet any more surprises. |
Indeed, and a simple println("hello") worked fine too. Cheers! |
Just following up my report above - build is now successful with 9d7fb6 (poss. before this - this is the first attempt since failure). Thanks. |
This one can be closed too, I believe? |
Yep, llgo-dist is the way to go. I updated the README last night to show how to use it. |
http://linuxdeveloper.blogspot.in/2013/01/using-llvm-based-go-compiler-llgo.html
This is not a issue but just wanted to let you know.
The text was updated successfully, but these errors were encountered: