| From 832765d12879fabf799dd80af6e8fee9cd298934 Mon Sep 17 00:00:00 2001 |
| From: Adam Duskett <Aduskett@gmail.com> |
| Date: Tue, 21 Jul 2020 13:08:50 -0700 |
| Subject: [PATCH] force position independent code |
| |
| Without this option, programs building for arm64 or x86-64 will fail when |
| attempting to link to the built libraries with the following (abbreviated) |
| error: |
| |
| "relocation against `.rodata' can not be used when making a shared object; |
| recompile with -fPIC." |
| |
| Because libabseil-cpp builds static libraries, it is better to set the |
| POSITION_INDEPENDENT_CODE to ON instead of forcing fPIC, as forcing fPIC may |
| cause relocation errors when shared libraries link against the built static |
| libraries. |
| |
| Signed-off-by: Adam Duskett <Aduskett@gmail.com> |
| [Dario: make the patch to be applied with fuzz factor 0] |
| Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> |
| --- |
| CMake/AbseilHelpers.cmake | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake |
| index 3bd33ce8718d..7f269bd20c21 100644 |
| --- a/CMake/AbseilHelpers.cmake |
| +++ b/CMake/AbseilHelpers.cmake |
| @@ -292,6 +292,8 @@ Cflags: -I\${includedir}${PC_CFLAGS}\n") |
| target_compile_features(${_NAME} PUBLIC ${ABSL_INTERNAL_CXX_STD_FEATURE}) |
| endif() |
| |
| + # Without this setting, other programs such as GRPC will fail when linking. |
| + set_property(TARGET ${_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON) |
| # When being installed, we lose the absl_ prefix. We want to put it back |
| # to have properly named lib files. This is a no-op when we are not being |
| # installed. |
| -- |
| 2.43.0 |
| |