blob: a6ca9c0f0e9eed57c472f090e04c700d328fd272 [file] [log] [blame]
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