Ensure that protobuf and gRPC libraries are build with -fPIC/PIE

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 <marten.nordheim@qt.io>
Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io>
This commit is contained in:
Alexey Edelev
2023-02-24 13:24:08 +01:00
parent 671da8181e
commit e68f9a28a8
2 changed files with 22 additions and 2 deletions

View File

@@ -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

View File

@@ -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