Description:
can not link jemalloc or tcmalloc in debian 11.5
gcc (Debian 10.2.1-6) 10.2.1 20210110
g++ (Debian 10.2.1-6) 10.2.1 20210110
cmake version 3.18.4
OS: debian 11.5
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_BOOST=../boost/boost_1_77_0 -DCMAKE_EXE_LINKER_FLAGS="-ljemalloc" -DFORCE_INSOURCE_BUILD=1 -DCMAKE_INSTALL_PREFIX=mysql
no -ljemalloc in CMAKE_EXE_LINKER_FLAGS , the output is:
-- CMAKE_BUILD_TYPE: RelWithDebInfo
-- COMPILE_DEFINITIONS: _GNU_SOURCE;_FILE_OFFSET_BITS=64;RAPIDJSON_NO_SIZETYPEDEFINE;RAPIDJSON_SCHEMA_USE_INTERNALREGEX=0;RAPIDJSON_SCHEMA_USE_STDREGEX=1;BOOST_NO_CXX98_FUNCTION_BASE;HAVE_CONFIG_H;__STDC_LIMIT_MACROS;__STDC_FORMAT_MACROS;_USE_MATH_DEFINES;LZ4_DISABLE_DEPRECATE_WARNINGS;HAVE_TLSv13
-- CMAKE_C_FLAGS: -fno-omit-frame-pointer -ftls-model=initial-exec -g -O2 -ffile-prefix-map=/home/xingying01/innosql-8.0.32/bld_5=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Wwrite-strings -Wjump-misses-init -Wstringop-truncation -Wmissing-include-dirs
-- CMAKE_CXX_FLAGS: -std=c++17 -fno-omit-frame-pointer -ftls-model=initial-exec -g -O2 -ffile-prefix-map=/home/xingying01/innosql-8.0.32/bld_5=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wimplicit-fallthrough=5 -Wstringop-truncation -Wsuggest-override -Wmissing-include-dirs -Wextra-semi -Wlogical-op
-- CMAKE_CXX_FLAGS_DEBUG: -DSAFE_MUTEX -DENABLED_DEBUG_SYNC -g
-- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -g1
-- CMAKE_CXX_FLAGS_RELEASE: -ffunction-sections -fdata-sections -O3 -DNDEBUG
-- CMAKE_CXX_FLAGS_MINSIZEREL: -ffunction-sections -fdata-sections -Os -DNDEBUG
-- CMAKE_C_LINK_FLAGS:
-- CMAKE_CXX_LINK_FLAGS:
-- CMAKE_EXE_LINKER_FLAGS -Wl,-z,relro
-- CMAKE_MODULE_LINKER_FLAGS -Wl,-z,relro
-- CMAKE_SHARED_LINKER_FLAGS -Wl,-z,relro
-- Configuring done
-- Generating done
ldd mysqld, no libjemalloc.so in it:
linux-vdso.so.1 (0x00007ffe50da9000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f83fdecd000)
libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f83fde3a000)
libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f83fdb46000)
libprotobuf-lite.so.3.19.4 => /home/xingying01/innosql-8.0.32/bld_4/library_output_directory/libprotobuf-lite.so.3.19.4 (0x00007f83fdaa8000)
libaio.so.1 => /lib/x86_64-linux-gnu/libaio.so.1 (0x00007f83fdaa3000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f83fda7f000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f83fda79000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f83fd8ac000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f83fd768000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f83fd74e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f83fd579000)
/lib64/ld-linux-x86-64.so.2 (0x00007f84026ec000)
How to repeat:
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_BOOST=../boost/boost_1_77_0 -DCMAKE_EXE_LINKER_FLAGS="-ljemalloc" -DFORCE_INSOURCE_BUILD=1 -DCMAKE_INSTALL_PREFIX=mysql
Suggested fix:
modify CMakeLists.txt