Re: LTO and F33

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 10/2/20 6:31 AM, Vitaly Zaitsev via devel wrote:
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:

I would suggest looking for any uses of -fPIE when compiling the C/C++ sources.  PIE allows local binding for some object acceses (and again, its local binding of objects that runs afoul of key aspects of the QT libraries).


The package I've been looking at (nextcloud) has this gem in a couple of its CMakeLists.txt files:


 if(UNIX AND NOT APPLE)
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE")
  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
 endif()

Which means we pass -fPIE when building .o files and thus the flag is ultimately passed through to LTO compiles which in turn enables the problematic symbol binding.  -fPIC is the right thing for QT applications given the way the library works.  Note that in the case of nextcloud, I don't think that was a global setting across the entire package -- it was used in just specific subdirectories and thus didn't show up in every invocation of the compiler.


Note that compiling the objects with -fPIC still allows creating a PIE executable via the -pie option at link time.  This is critically important from a security standpoint.

jeff

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux