Optionally disable jemalloc Telegram upstream heavily insists you use the jemalloc allocator. This is due to the high memory usage resulting from the glibc allocator. It is unknown why this affects telegram the way it does, but upstream solved the issue by using a different allocator. Initially they used mallocng, now jemalloc. However, other libcs don't necessarily need this, and as such this should be optional. As mallocng is a fork of musl's allocator, and this was used before the switch to jemalloc, the musl allocator should still be OK. Please warn glibc users about disabling jemalloc, don't report bugs about memory usage upstream unless you're using jemalloc. Related info: https://github.com/telegramdesktop/tdesktop/issues/16084 https://github.com/desktop-app/cmake_helpers/pull/91#issuecomment-881788003 --- tdesktop-3.5.2-full.orig/Telegram/CMakeLists.txt +++ tdesktop-3.5.2-full/Telegram/CMakeLists.txt @@ -1358,11 +1358,13 @@ ) endif() - target_link_libraries(Telegram - PRIVATE - desktop-app::linux_jemalloc_helper - $ - ) + if (NOT DESKTOP_APP_DISABLE_JEMALLOC) + target_link_libraries(Telegram + PRIVATE + desktop-app::linux_jemalloc_helper + $ + ) + endif() endif() if (build_macstore) --- tdesktop-3.5.2-full.orig/cmake/CMakeLists.txt +++ tdesktop-3.5.2-full/cmake/CMakeLists.txt @@ -5,7 +5,7 @@ # https://github.com/desktop-app/legal/blob/master/LEGAL add_subdirectory(external) -if (LINUX) +if (LINUX AND NOT DESKTOP_APP_DISABLE_JEMALLOC) add_subdirectory(linux_jemalloc_helper) endif() if (LINUX AND NOT DESKTOP_APP_USE_PACKAGED) --- tdesktop-3.5.2-full.orig/cmake/external/CMakeLists.txt +++ tdesktop-3.5.2-full/cmake/external/CMakeLists.txt @@ -37,7 +37,7 @@ add_checked_subdirectory(hunspell) endif() add_checked_subdirectory(iconv) -if (LINUX) +if (LINUX AND NOT DESKTOP_APP_DISABLE_JEMALLOC) add_checked_subdirectory(jemalloc) endif() add_checked_subdirectory(jpeg) --- tdesktop-3.5.2-full.orig/cmake/variables.cmake +++ tdesktop-3.5.2-full/cmake/variables.cmake @@ -26,6 +26,7 @@ option(DESKTOP_APP_USE_PACKAGED_FONTS "Use preinstalled fonts instead of bundled patched ones." OFF) option(DESKTOP_APP_USE_PACKAGED_RLOTTIE "Find rlottie using CMake instead of bundled patched one." OFF) option(DESKTOP_APP_DISABLE_SPELLCHECK "Disable spellcheck library." OFF) +option(DESKTOP_APP_DISABLE_JEMALLOC "Disable use of the jemalloc allocator (Linux only)." OFF) option(DESKTOP_APP_DISABLE_CRASH_REPORTS "Disable crash report generation." ${no_special_target}) option(DESKTOP_APP_DISABLE_AUTOUPDATE "Disable autoupdate." ${disable_autoupdate}) option(DESKTOP_APP_USE_HUNSPELL_ONLY "Disable system spellchecker and use bundled Hunspell only. (For debugging purposes)" OFF)