c355e3b has quit [Quit: Connection closed for inactivity]
<TwoNotes>
llvm::FunctionPass::createPrinterPass undefined when I link ponyc. using LLVM 3.8.1
TwoNotes has left #ponylang [#ponylang]
montanonic has joined #ponylang
montanonic has quit [Ping timeout: 240 seconds]
montanonic has joined #ponylang
jemc has quit [Ping timeout: 250 seconds]
montanonic has quit [Ping timeout: 250 seconds]
montanonic has joined #ponylang
_andre has joined #ponylang
Praetonus has joined #ponylang
montanonic has quit [Ping timeout: 256 seconds]
rurban has joined #ponylang
rurban has quit [Quit: Leaving.]
rurban has joined #ponylang
rurban has quit [Ping timeout: 256 seconds]
c355e3b has joined #ponylang
emancu has joined #ponylang
TwoNotes has joined #ponylang
rurban has joined #ponylang
M-hrjet has quit [Remote host closed the connection]
prose[m] has quit [Write error: Connection reset by peer]
irx[m] has quit [Remote host closed the connection]
M-Ingo has quit [Remote host closed the connection]
srenatus[m] has quit [Remote host closed the connection]
buchanon[m] has quit [Read error: Connection reset by peer]
rurban has quit [Ping timeout: 248 seconds]
<TwoNotes>
Any preference between LLVM versions? Is 3.9.0 best?
<Praetonus>
Generally speaking, yes
<Praetonus>
Better optimisations
<TwoNotes>
3.9.0 llvm-config expects to find libcursesw.so.6. I only have .5
<TwoNotes>
I will have to check the llvm release notes for requirements
<TwoNotes>
But last time I tried 3.8.1, I got a missing symbol at lilnk time,
<TwoNotes>
llvm::FunctionPass::createPrinterPass undefined when I link ponyc. using LLVM 3.8.1
<TwoNotes>
14:21 <TwoNotes> Any preference between LLVM versions
<TwoNotes>
oops
<TwoNotes>
llvm::FunctionPass::createPrinterPass was undefined at ponyc link phase
<Praetonus>
I've seen that before. IIRC, it's because the LLVM headers and libs found have a different version
<Praetonus>
Maybe try it with only LLVM 3.8.1 in your PATH
irx[m] has joined #ponylang
TwoNotes has quit [Ping timeout: 260 seconds]
prose[m] has joined #ponylang
srenatus[m] has joined #ponylang
M-Ingo has joined #ponylang
M-hrjet has joined #ponylang
buchanon[m] has joined #ponylang
TwoNotes has joined #ponylang
TwoNotes has quit [Read error: Connection reset by peer]
jemc has joined #ponylang
TwoNotes has joined #ponylang
emancu has quit []
montanonic has joined #ponylang
jemc has quit [Ping timeout: 265 seconds]
<TwoNotes>
No luck. Building ponyc with LLVM 3.8.1 I get this linker error: build/release/libponyc.a(genopt.o):(.rodata._ZTV11HeapToStack[_ZTV11HeapToStack]+0x20): undefined reference to `llvm::FunctionPass::createPrinterPass(llvm::raw_ostream&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
<TwoNotes>
I used "make LLVM_CONFIG=path-to-llvm-config"
rurban has joined #ponylang
rurban has quit [Ping timeout: 265 seconds]
<SeanTAllen>
previously when people have gotten that error, the linker was confused and using a different llvm than what compilation was done with
rurban has joined #ponylang
rurban has left #ponylang [#ponylang]
<TwoNotes>
The LLVM I am using came as a bunch of precompiled libraries. All I did was point LLVM_CONFIG to the right place, assuming the Makefile would do the right thing
<TwoNotes>
If I could find instructions on how to properly 'install' all these LLVM 3.8.1 bits, I would do that
<TwoNotes>
LLVM project does have packages for Ubuntu, but not for my ARM platform. And it is a monster to compile
<TwoNotes>
But they had these tar files of precompild binaries, so I am using that
<TwoNotes>
The Makefile appears to be getting ldflags properly...
<Praetonus>
Do you have another version of LLVM installed?
<TwoNotes>
There is a 3.8.0 that came with the system. I was hesitating to remove that in cage gcc needed it. But I can always add it back again if so. I will try removing it
<TwoNotes>
It was just the runtime, libllvm3.8
<TwoNotes>
typeing 'apt remove libllvm3.8' makes apt think it needs to remove 227 packages....
<TwoNotes>
Including a LOT of stuff I depend on...
<TwoNotes>
I do apt search llvm | grep installed and get just one line, "libllvm3.8/xenial-updates,now 1:3.8-2ubuntu4 armhf [installed]"
<TwoNotes>
But I do not actually see any *llvm* files anywhere in /usr/lib
<TwoNotes>
or in /usr/bin
<TwoNotes>
I will try copying the LLVM stuff off the NFS share onto the local storage
montanonic has quit [Ping timeout: 265 seconds]
<andreaa>
SeanTAllen, was yesterday's sync recorded?
montanonic has joined #ponylang
dinfuehr has quit [Ping timeout: 260 seconds]
dinfuehr has joined #ponylang
<SeanTAllen>
yes but i haven't had a chance to upload it
_andre has quit [Quit: leaving]
<SeanTAllen>
uploading now.
<SeanTAllen>
at my mother's upload speeds are pretty slow
<TwoNotes>
The missing symbol *is* defined in the .a and .so files of the llvm library...
bougyman has joined #ponylang
<TwoNotes>
The missing symbol is defined in file libLLVMCore.a, which *does* appear in the list od "-l" terms given to th elinker.
<TwoNotes>
Defined symbol has signature (llvm::raw_ostream&, std::string) while error message says (llvm::raw_ostream&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >). Different notations of the same thing?
[CBR]Unspoken1 has quit [Ping timeout: 240 seconds]
<TwoNotes>
I don't think ponyc itself calls createPrinterPass. I think it is somewhere in the FunctionPass class that ponyc extends.
<TwoNotes>
All 3 references come from ponyc's "genopt" module, and I found no explicit references there
<TwoNotes>
createPrinterPass is a public function of "FunctionPass", which is used to implement most optimizations
<TwoNotes>
I guess I have no clue which versions of LLVM work properly on ARM. This *was* working several months ago but I do not remember what versions that was.