diff --git a/src/csharp/Grpc.Core.NativeDebug/Grpc.Core.NativeDebug.csproj b/src/csharp/Grpc.Core.NativeDebug/Grpc.Core.NativeDebug.csproj index f2b773816a7..122d8ef0b18 100644 --- a/src/csharp/Grpc.Core.NativeDebug/Grpc.Core.NativeDebug.csproj +++ b/src/csharp/Grpc.Core.NativeDebug/Grpc.Core.NativeDebug.csproj @@ -2,7 +2,7 @@ The gRPC Authors Copyright 2015 The gRPC Authors - Debug symbols for the native library contained in Grpc.Core + Debug symbols for the grpc_csharp_ext native library contained in Grpc.Core https://github.com/grpc/grpc.github.io/raw/master/img/grpc_square_reverse_4x.png Apache-2.0 https://github.com/grpc/grpc @@ -18,6 +18,14 @@ + + runtimes/linux-x64/native/libgrpc_csharp_ext.x64.dbginfo.so + true + + + runtimes/linux-arm64/native/libgrpc_csharp_ext.arm64.dbginfo.so + true + runtimes/win-x86/native/grpc_csharp_ext.x86.dll true diff --git a/tools/dockerfile/grpc_artifact_python_manylinux2014_aarch64/Dockerfile b/tools/dockerfile/grpc_artifact_python_manylinux2014_aarch64/Dockerfile index c5c0d46332b..db98443797e 100644 --- a/tools/dockerfile/grpc_artifact_python_manylinux2014_aarch64/Dockerfile +++ b/tools/dockerfile/grpc_artifact_python_manylinux2014_aarch64/Dockerfile @@ -26,3 +26,10 @@ RUN /opt/python/cp36-cp36m/bin/pip install --upgrade cython RUN /opt/python/cp37-cp37m/bin/pip install --upgrade cython RUN /opt/python/cp38-cp38/bin/pip install --upgrade cython RUN /opt/python/cp39-cp39/bin/pip install --upgrade cython + +# the dockcross docker image sets variables like CC, CXX etc. +# to point to the crosscompilation toolchain, but doesn't set corresponding +# variables for the "strip" and "objcopy" tools. +# see https://github.com/dockcross/dockcross/blob/4349cb4999401cbf22a90f46f5052d29be240e50/manylinux2014-aarch64/Dockerfile.in#L23 +ENV STRIP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-strip \ + OBJCOPY=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-objcopy diff --git a/tools/internal_ci/linux/grpc_build_artifacts.cfg b/tools/internal_ci/linux/grpc_build_artifacts.cfg index 1e04a1e7880..433860ffe32 100644 --- a/tools/internal_ci/linux/grpc_build_artifacts.cfg +++ b/tools/internal_ci/linux/grpc_build_artifacts.cfg @@ -16,7 +16,7 @@ # Location of the continuous shell script in repository. build_file: "grpc/tools/internal_ci/linux/grpc_build_artifacts.sh" -timeout_mins: 120 +timeout_mins: 180 action { define_artifacts { regex: "**/*sponge_log.*" diff --git a/tools/run_tests/artifacts/build_artifact_csharp.sh b/tools/run_tests/artifacts/build_artifact_csharp.sh index bcec73951aa..3ea389fe4b5 100755 --- a/tools/run_tests/artifacts/build_artifact_csharp.sh +++ b/tools/run_tests/artifacts/build_artifact_csharp.sh @@ -26,7 +26,23 @@ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ ../.. make grpc_csharp_ext -j2 + +if [ -f "libgrpc_csharp_ext.so" ] +then + # in case we are in a crosscompilation environment + STRIP=${STRIP:-strip} + OBJCOPY=${OBJCOPY:-objcopy} + + # The .so file with all debug symbols is too large to + # package in the default nuget package. + # But we still want to keep the version with symbols + # to include it in a special "debug" package. + cp libgrpc_csharp_ext.so libgrpc_csharp_ext.dbginfo.so + ${STRIP} --strip-unneeded libgrpc_csharp_ext.so + ${OBJCOPY} --add-gnu-debuglink=libgrpc_csharp_ext.dbginfo.so libgrpc_csharp_ext.so +fi + cd ../.. mkdir -p "${ARTIFACTS_OUT}" -cp cmake/build/libgrpc_csharp_ext.so "${ARTIFACTS_OUT}" || cp cmake/build/libgrpc_csharp_ext.dylib "${ARTIFACTS_OUT}" +cp cmake/build/libgrpc_csharp_ext.so cmake/build/libgrpc_csharp_ext.dbginfo.so "${ARTIFACTS_OUT}" || cp cmake/build/libgrpc_csharp_ext.dylib "${ARTIFACTS_OUT}"