Ubuntu 22.04 build fails because RaiSim 2.4.2 binaries require GLIBC 2.38 and GLIBCXX 3.4.32
Description
I am trying to build RaiSim2 on Ubuntu 22.04, which is listed in the installation documentation as a supported platform:
Linux: Ubuntu 22.04 or newer is recommended. x86 builds require AVX2.
However, the current RaiSim 2.4.2 prebuilt libraries appear to require newer GLIBC and libstdc++ symbols that are not available on a standard Ubuntu 22.04 installation.
The build reaches the linking stage, but fails with references to GLIBC_2.38, GLIBCXX_3.4.31, and GLIBCXX_3.4.32.
Environment
- OS: Ubuntu 22.04 LTS
- Architecture: x86_64
- CPU AVX2 support: Yes
- Python: 3.10
- RaiSim version: 2.4.2
- Compiler: GCC/G++ from the standard Ubuntu 22.04 repositories
- GLIBC version: 2.35
- Build type: Release
- Repository:
raisimTech/raisim2Lib
- Commit:
<paste output of git rev-parse HEAD>
Steps to reproduce
git clone https://github.com/raisimTech/raisim2Lib.git
cd raisim2Lib
git submodule update --init --recursive
source ./raisim_env.sh
rm -rf build
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DRAISIM_EXAMPLE=ON \
-DRAISIM_PY=ON
cmake --build build -j2
Actual result
The compilation succeeds, but linking the examples fails:
/usr/bin/ld: ../../raisim/lib/libassimpd.so.6.0.2: undefined reference to `__isoc23_strtoull@GLIBC_2.38'
/usr/bin/ld: ../../raisim/lib/libraisimd.so.2.4.2: undefined reference to `__isoc23_sscanf@GLIBC_2.38'
/usr/bin/ld: ../../raisim/lib/libraisimd.so.2.4.2: undefined reference to `__isoc23_strtoul@GLIBC_2.38'
/usr/bin/ld: ../../raisim/lib/libraisimd.so.2.4.2: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_cold(char*, unsigned long, char const*, unsigned long, unsigned long)@GLIBCXX_3.4.31'
/usr/bin/ld: ../../raisim/lib/openusd/libusd_gf.so: undefined reference to `fmodf@GLIBC_2.38'
/usr/bin/ld: ../../raisim/lib/libraisimd.so.2.4.2: undefined reference to `std::ios_base_library_init()@GLIBCXX_3.4.32'
/usr/bin/ld: ../../raisim/lib/libraisimd.so.2.4.2: undefined reference to `__isoc23_strtol@GLIBC_2.38'
/usr/bin/ld: ../../raisim/lib/libraisimd.so.2.4.2: undefined reference to `fmod@GLIBC_2.38'
collect2: error: ld returned 1 exit status
The same issue occurs while linking both sphere_drop and primitive_grid.
Expected result
The examples should build successfully on a standard Ubuntu 22.04 installation, because Ubuntu 22.04 is listed as a recommended supported platform.
Additional checks
Ubuntu version:
GLIBC version:
ldd --version | head -n 1
AVX2 support:
grep -m1 -o avx2 /proc/cpuinfo
Required symbol versions in the provided RaiSim libraries can also be checked with:
readelf --version-info raisim/lib/libraisim.so.2.4.2 \
| grep -E 'GLIBC_2.38|GLIBCXX_3.4.3[12]'
readelf --version-info raisim/lib/libraisimd.so.2.4.2 \
| grep -E 'GLIBC_2.38|GLIBCXX_3.4.3[12]'
Possible cause
It appears that the distributed Linux binaries may have been built on a newer Linux environment, possibly one providing GLIBC 2.38 and GCC/libstdc++ symbols up to GLIBCXX 3.4.32.
Ubuntu 22.04 normally provides GLIBC 2.35, so binaries that directly depend on GLIBC 2.38 cannot be linked or executed there.
Could you please confirm whether the current RaiSim 2.4.2 Linux binaries are intended to support Ubuntu 22.04?
If Ubuntu 22.04 is still supported, could you provide binaries built against the Ubuntu 22.04 toolchain or an older compatible GLIBC version?
Ubuntu 22.04 build fails because RaiSim 2.4.2 binaries require GLIBC 2.38 and GLIBCXX 3.4.32
Description
I am trying to build RaiSim2 on Ubuntu 22.04, which is listed in the installation documentation as a supported platform:
However, the current RaiSim 2.4.2 prebuilt libraries appear to require newer GLIBC and libstdc++ symbols that are not available on a standard Ubuntu 22.04 installation.
The build reaches the linking stage, but fails with references to
GLIBC_2.38,GLIBCXX_3.4.31, andGLIBCXX_3.4.32.Environment
raisimTech/raisim2Lib<paste output of git rev-parse HEAD>Steps to reproduce
Actual result
The compilation succeeds, but linking the examples fails:
The same issue occurs while linking both
sphere_dropandprimitive_grid.Expected result
The examples should build successfully on a standard Ubuntu 22.04 installation, because Ubuntu 22.04 is listed as a recommended supported platform.
Additional checks
Ubuntu version:
GLIBC version:
ldd --version | head -n 1AVX2 support:
Required symbol versions in the provided RaiSim libraries can also be checked with:
Possible cause
It appears that the distributed Linux binaries may have been built on a newer Linux environment, possibly one providing GLIBC 2.38 and GCC/libstdc++ symbols up to GLIBCXX 3.4.32.
Ubuntu 22.04 normally provides GLIBC 2.35, so binaries that directly depend on GLIBC 2.38 cannot be linked or executed there.
Could you please confirm whether the current RaiSim 2.4.2 Linux binaries are intended to support Ubuntu 22.04?
If Ubuntu 22.04 is still supported, could you provide binaries built against the Ubuntu 22.04 toolchain or an older compatible GLIBC version?