The following bug has been logged on the website:
Bug reference: 15969
Logged by: Sylvie Empereur
Email address: sylvie.empereur-mot@bull.net
PostgreSQL version: 12beta3
Operating system: Linux RedHat 7.6
Description:
SW and HW Environment:
- LINUX RedHat Entreprise 7.6 (ppc64le on Power9 processors)
- GCC 4.8.5 (included in RHEL7.6)
- make 3.8.2
- LLVM8 and CLANG8
- PostgreSQL 12 beta3 built with support for LLVM JIT based compilation
- Doc PostgreSQL (chap31 JIT Compilation) indicates script configure, to be
run with parameter LLVM_CONFIG.
- PG12 script configure requires parameter CLANG also.
configure --without-readline --with-llvm
LLVM_CONFIG='/home/postgres/clang+llvm-8.0.1-powerpc64le-linux-rhel-7.4/bin/llvm-config'
CLANG='/home/postgres/clang+llvm-8.0.1-powerpc64le-linux-rhel-7.4/bin/clang'
make clean
make -j40 world
make check
Error Symptom:
- make check step, shows 26 identical failures from total of 193 autotests
:
ERROR: could not load library
"/nvme/postgresql-12beta3/tmp_install/usr/local/pgsql/lib/llvmjit.so":
/nvme/postgresql-12beta3/tmp_install/usr/local/pgsql/lib/llvmjit.so:
undefined symbol: _ZNSt3_V214error_categoryD2Ev
- The symbol C++ library llvm::fatal_error_handler is defined in CLANG
library libclang.so
- Symbol resolution shows up when the shared lib llvmjit.so tries to resolve
symbol llvm::fatal_error_handler, defined in the shared library
libclang.so
- Symbol table entries in CLANG/LLVM library libclang.so
$ objdump –t
$HOME/clang+llvm-8.0.1-powerpc64le-linux-rhel-7.4/lib/libclang.so |grep -i
fatal_error_handler
/home/postgresql-12beta2/clang+llvm-8.0.1-powerpc64le-linux-rhel-7.4/lib/libclang.so:
file format elf64-powerpcle
SYMBOL TABLE:
00000000005ae150 l F .text 0000000000000048 0x60
fatal_error_handler(void*, std::string const&, bool)
000000000220fe30 l F .text 00000000000000cc 0x60
llvm::install_fatal_error_handler(void (*)(void*, std::string const&, bool),
void*)
The flag characters as follows: "l" => The symbol is a local (l)