Re: PG11 jit failing on ppc64el - Mailing list pgsql-hackers
From | Tom Lane |
---|---|
Subject | Re: PG11 jit failing on ppc64el |
Date | |
Msg-id | 28160.1527133734@sss.pgh.pa.us Whole thread Raw |
In response to | Re: PG11 jit failing on ppc64el (Thomas Munro <thomas.munro@enterprisedb.com>) |
Responses |
Re: PG11 jit failing on ppc64el
|
List | pgsql-hackers |
Thomas Munro <thomas.munro@enterprisedb.com> writes: > BTW It is working on arm64 too, starting with LLVM 6. 5 crashed the > same way as it does on ppc. See build farm member eelpout which is > running Debian. For entertainment's sake, I tried building --with-llvm on FreeBSD 12 arm64 (hey, gotta do something with this raspberry pi toy I got). I used llvm-devel-7.0.d20180327 which seems to be the latest available in FreeBSD's package system. Builds cleanly, does not work at all. SIGSEGV here: #0 __clear_cache (start=0x4c055000, end=0x4c0566ec) at /usr/src/contrib/compiler-rt/lib/builtins/clear_cache.c:168 #1 0x000000004bb78d8c in llvm::sys::Memory::protectMappedMemory(llvm::sys::MemoryBlock const&, unsigned int) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #2 0x000000004b68f020 in llvm::SectionMemoryManager::applyMemoryGroupPermissions(llvm::SectionMemoryManager::MemoryGroup&,unsigned int) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #3 0x000000004b68ef38 in llvm::SectionMemoryManager::finalizeMemory(std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> >*) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #4 0x000000004b85d310 in llvm::RuntimeDyld::finalizeWithMemoryManagerLocking() () from /home/tgl/installdir/lib/postgresql/llvmjit.so #5 0x000000004ad22c38 in llvm::orc::RTDyldObjectLinkingLayer::ConcreteLinkedObj ect<std::__1::shared_ptr<llvm::RuntimeDyld::MemoryManager> >::finalize() () from /home/tgl/installdir/lib/postgresql/llvmjit.so #6 0x000000004ad236ec in llvm::orc::RTDyldObjectLinkingLayer::ConcreteLinkedObject<std::__1::shared_ptr<llvm::RuntimeDyld::MemoryManager> >::getSymbolMaterializer(std::__1::basic_string<char,std::__1::char_traits<char>, std::__1::allocator<char> >)::{lambda()#1}::operator()()const () from /home/tgl/installdir/lib/postgresql/llvmjit.so #7 0x000000004ad22084 in llvm::JITSymbol::getAddress() () from /home/tgl/installdir/lib/postgresql/llvmjit.so #8 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #9 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #10 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #11 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #12 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #13 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #14 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #15 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #16 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #17 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #18 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #19 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #20 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #21 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #22 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #23 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #24 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #25 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #26 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #27 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #28 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #29 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so #30 0x000000004ad1dbec in llvm::OrcCBindingsStack::findSymbolAddress(unsigned long&, std::__1::basic_string<char, std::__1::char_traits<char>,std::__1::allocator<char> > const&, bool) () from /home/tgl/installdir/lib/postgresql/llvmjit.so ... etc etc ... Sure looks like infinite recursion in findSymbolAddress. Thoughts? regards, tom lane
pgsql-hackers by date: