From e68f9a28a847f2adf625b52b975fdadc1f27f867 Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Fri, 24 Feb 2023 13:24:08 +0100 Subject: [PATCH] Ensure that protobuf and gRPC libraries are build with -fPIC/PIE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Need to build protobuf and gRPC libraries with PIC/PIE to make them compatible with Qt libraries and executables that are build with PIC PIE. Change-Id: Ie830f359e9e0fa15af65b96330edbf7f3f52df9b Reviewed-by: MÃ¥rten Nordheim Reviewed-by: Konrad Kujawa --- coin/provisioning/common/unix/install_grpc.sh | 11 ++++++++++- coin/provisioning/common/unix/install_protobuf.sh | 13 ++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/coin/provisioning/common/unix/install_grpc.sh b/coin/provisioning/common/unix/install_grpc.sh index 622c2d51..ad758cbf 100644 --- a/coin/provisioning/common/unix/install_grpc.sh +++ b/coin/provisioning/common/unix/install_grpc.sh @@ -93,7 +93,16 @@ echo "Configuring and building gRPC" buildDir="$HOME/build-grpc-$version" mkdir -p "$buildDir" cd "$buildDir" -cmake $targetDir -G"Ninja Multi-Config" -DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebugInfo" -DCMAKE_INSTALL_PREFIX=$installPrefix $extraCMakeArgs $extraOpenSslArg -DgRPC_BUILD_TESTS=OFF -DgRPC_PROTOBUF_PROVIDER="package" -DgRPC_SSL_PROVIDER="package" -DgRPC_ZLIB_PROVIDER="package" +cmake $targetDir -G"Ninja Multi-Config" \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebugInfo" \ + -DCMAKE_INSTALL_PREFIX=$installPrefix \ + $extraCMakeArgs \ + $extraOpenSslArg \ + -DgRPC_BUILD_TESTS=OFF \ + -DgRPC_PROTOBUF_PROVIDER="package" \ + -DgRPC_SSL_PROVIDER="package" \ + -DgRPC_ZLIB_PROVIDER="package" ninja all sudo env "PATH=$PATH" ninja install diff --git a/coin/provisioning/common/unix/install_protobuf.sh b/coin/provisioning/common/unix/install_protobuf.sh index 4288c376..0d4ab8bd 100755 --- a/coin/provisioning/common/unix/install_protobuf.sh +++ b/coin/provisioning/common/unix/install_protobuf.sh @@ -84,7 +84,18 @@ fi buildDir="$HOME/build-protobuf-$version" mkdir "$buildDir" cd "$buildDir" -cmake $targetDir -G"Ninja Multi-Config" -DCMAKE_INSTALL_PREFIX=$installPrefix $extraCMakeArgs -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_EXAMPLES=OFF -Dprotobuf_BUILD_PROTOC_BINARIES=ON -DBUILD_SHARED_LIBS=OFF -Dprotobuf_WITH_ZLIB=OFF -DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebugInfo" -DCMAKE_CROSS_CONFIGS=all -DCMAKE_DEFAULT_CONFIGS=all +cmake $targetDir -G"Ninja Multi-Config" \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DCMAKE_INSTALL_PREFIX=$installPrefix \ + $extraCMakeArgs \ + -Dprotobuf_BUILD_TESTS=OFF \ + -Dprotobuf_BUILD_EXAMPLES=OFF \ + -Dprotobuf_BUILD_PROTOC_BINARIES=ON \ + -DBUILD_SHARED_LIBS=OFF \ + -Dprotobuf_WITH_ZLIB=OFF \ + -DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebugInfo" \ + -DCMAKE_CROSS_CONFIGS=all \ + -DCMAKE_DEFAULT_CONFIGS=all ninja all:all sudo env "PATH=$PATH" ninja install:all