Page MenuHomePhabricator

[CMAKE] Use CMake built-in to set PIC and PIE
ClosedPublic

Authored by Fabien on Thu, Sep 26, 14:24.

Details

Summary

This diff makes proper use of the cmake POSITION_INDEPENDENT_CODE
property to enforce building PIC/PIE.
Because this property does not enforce PIE before version 3.14, the
previous method is kept as a fallback, so the behavior is unchanged.

Test Plan
mkdir buildcmake && cd buildcmake
cmake -GNinja ..
ninja check-security

Check there is no error with both cmake < 3.14 and >= 3.14.

Check it works when cross building for windows (no PIC nor PIE
required), requires D4155 to succeed:

rm -rf *
cmake -GNinja .. -DBUILD_BITCOIN_SEEDER=OFF \
  -DCMAKE_TOOLCHAIN_FILE=../cmake/platforms/Win64.cmake
ninja check-security

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

Fabien created this revision.Thu, Sep 26, 14:24
Herald added a reviewer: Restricted Project. · View Herald TranscriptThu, Sep 26, 14:24
deadalnix accepted this revision.Fri, Sep 27, 12:53
This revision is now accepted and ready to land.Fri, Sep 27, 12:53
This revision was automatically updated to reflect the committed changes.