On 01.10.2020 22:48, Jeff Law wrote:
What you want to do to fix this is force -fPIC into the build flags. That inhibits local symbol resolution and the copy relocs that are so problematical for QT. You can see examples of how to do this in the clementine package.
Telegram Desktop already uses -fPIC:
[242/754] /usr/bin/g++ -DDESKTOP_APP_DISABLE_CRASH_REPORTS -DDESKTOP_APP_USE_PACKAGED -DDESKTOP_APP_USE_PACKAGED_FONTS -DNDEBUG -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_WAYLANDCLIENT_LIB -DQT_WIDGETS_LIB -DQT_XKBCOMMON_SUPPORT_LIB -ITelegram/lib_ui/lib_ui_autogen/include -ITelegram/lib_ui/gen -I../Telegram/lib_ui -I../Telegram/lib_ui/emoji_suggestions -I../Telegram/lib_base -I../Telegram/lib_rpl -I../Telegram/lib_crl -isystem /usr/include/qt5/QtCore/5.15.1 -isystem /usr/include/qt5/QtCore/5.15.1/QtCore -isystem /usr/include/qt5/QtGui/5.15.1 -isystem /usr/include/qt5/QtGui/5.15.1/QtGui -isystem /usr/include/qt5/QtXkbCommonSupport/5.15.1 -isystem /usr/include/qt5/QtXkbCommonSupport/5.15.1/QtXkbCommonSupport -isystem /usr/include/qt5/QtWaylandClient/5.15.1 -isystem /usr/include/qt5/QtWaylandClient/5.15.1/QtWaylandClient -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtXkbCommonSupport -isystem /usr/include/qt5/QtWaylandClient -isystem ../Telegram/ThirdParty/variant/include -isystem /usr/share -O2 -fexceptions -g1 -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -DNDEBUG -fPIC -fno-strict-aliasing -pipe -Wall -W -Wno-unused-variable -Wno-unused-parameter -Wno-unused-function -Wno-switch -Wno-comment -Wno-unused-but-set-variable -Wno-missing-field-initializers -Wno-sign-compare -Wno-attributes -Wno-parentheses -Wno-stringop-overflow -Wno-maybe-uninitialized -Wno-error=class-memaccess -Wno-register -std=gnu++17 -Winvalid-pch -include /builddir/build/BUILD/tdesktop-2.3.2-full/x86_64-redhat-linux-gnu/Telegram/lib_ui/CMakeFiles/lib_ui.dir/cmake_pch.hxx -MD -MT Telegram/lib_ui/CMakeFiles/lib_ui.dir/ui/text/text.cpp.o -MF Telegram/lib_ui/CMakeFiles/lib_ui.dir/ui/text/text.cpp.o.d -o Telegram/lib_ui/CMakeFiles/lib_ui.dir/ui/text/text.cpp.o -c ../Telegram/lib_ui/ui/text/text.cpp