taichi version 0.6.12 requires libm.so: version `GLIBC_2.27' which is unavailable on Ubuntu 16.04

Created on 23 Jun 2020  路  2Comments  路  Source: taichi-dev/taichi

After upgrading taichi to version 0.6.12 through pip install --upgrade taichi on my Ubuntu 16.04 machine, I got the following error:

ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /xxxxx/envs/taichi/lib/python3.8/site-packages/taichi/core/../lib/taichi_core.so)

I looked a bit and apparently Ubuntu 16.04 supports glibc 2.23 only (see https://launchpad.net/ubuntu/xenial/+source/glibc).

Reverting to the previous version (pip install --upgrade==0.6.11) fixed the issue.

Do you still officially support Ubuntu 16.04?

potential bug

Most helpful comment

Yes, I'm using LLVM 8. Didn't find any entry about either GLIB_2.27 and log2f:

(depshapedimcall) [bate@archit taichi]$ objdump -T build/libtaichi_core.so | grep GLIBC_2.27
(depshapedimcall) [bate@archit taichi]$ objdump -T build/libtaichi_core.so | grep log2f
(depshapedimcall) [bate@archit taichi]$ 

But I did find them in the released version:

(depshapedimcall) [bate@archit taichi]$ objdump -T ~/.local/lib/python3.8/site-packages/taichi/lib/libtaichi_core.so | grep GLIBC_2.27
0000000000000000      DF *UND*  0000000000000000  GLIBC_2.27  log2f
(depshapedimcall) [bate@archit taichi]$ objdump -T ~/.local/lib/python3.8/site-packages/taichi/lib/libtaichi_core.so | grep log2f
0000000000000000      DF *UND*  0000000000000000  GLIBC_2.27  log2f
(depshapedimcall) [bate@archit taichi]$ 

I also found this symbol in my local libLLVM-10.so:

(depshapedimcall) [bate@archit taichi]$ objdump -T /lib/libLLVM-10.so | grep GLIBC_2.27
0000000000000000      DF *UND*  0000000000000000  GLIBC_2.27  log2f
(depshapedimcall) [bate@archit taichi]$ 

All 2 comments

Thanks for reporting. I took a look, and it seems that

>>> objdump -T libtaichi_core.so| grep  GLIBC_2.27
0000000000000000      DF *UND*  0000000000000000  GLIBC_2.27  log2f

It's probably a change between v0.6.12 and v0.6.11 that uses log2f (directly or indirectly.) The change is likely the upgrade from LLVM 8 to LLVM 10. @archibate when you get a chance, if you are still using LLVM 8, could you try to execute objdump -T libtaichi_core.so| grep GLIBC_2.27 and let me know if you get the GLIBC_2.27 log2f entry? Thanks for your help!

Ubuntu 16.04 is old but we still plan to support it for a while.

Yes, I'm using LLVM 8. Didn't find any entry about either GLIB_2.27 and log2f:

(depshapedimcall) [bate@archit taichi]$ objdump -T build/libtaichi_core.so | grep GLIBC_2.27
(depshapedimcall) [bate@archit taichi]$ objdump -T build/libtaichi_core.so | grep log2f
(depshapedimcall) [bate@archit taichi]$ 

But I did find them in the released version:

(depshapedimcall) [bate@archit taichi]$ objdump -T ~/.local/lib/python3.8/site-packages/taichi/lib/libtaichi_core.so | grep GLIBC_2.27
0000000000000000      DF *UND*  0000000000000000  GLIBC_2.27  log2f
(depshapedimcall) [bate@archit taichi]$ objdump -T ~/.local/lib/python3.8/site-packages/taichi/lib/libtaichi_core.so | grep log2f
0000000000000000      DF *UND*  0000000000000000  GLIBC_2.27  log2f
(depshapedimcall) [bate@archit taichi]$ 

I also found this symbol in my local libLLVM-10.so:

(depshapedimcall) [bate@archit taichi]$ objdump -T /lib/libLLVM-10.so | grep GLIBC_2.27
0000000000000000      DF *UND*  0000000000000000  GLIBC_2.27  log2f
(depshapedimcall) [bate@archit taichi]$ 
Was this page helpful?
0 / 5 - 0 ratings