Skip to content

Commit a0a7178

Browse files
committed
replace abhiTronix with official cross-compiler
linking with abhiTronix cross-compiler (GCC 6.3.0) fails for shared libs (invalid string offset ... for section `.strtab`)
1 parent f18bb7d commit a0a7178

File tree

5 files changed

+9
-21
lines changed

5 files changed

+9
-21
lines changed

.github/workflows/build-release.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ jobs:
2525
echo "TAG=${TAG}" >> $GITHUB_ENV
2626
echo "BASE_DIR=${BASE_DIR}" >> $GITHUB_ENV
2727
echo "SYSROOT_PREFIX=${SYSROOT_PREFIX}" >> $GITHUB_ENV
28+
echo "CROSS_COMPILER_INSTALL_DIR=${CROSS_COMPILER_INSTALL_DIR}" >> $GITHUB_ENV
2829
echo "CROSS_COMPILER_ROOT=${CROSS_COMPILER_ROOT}" >> $GITHUB_ENV
2930
echo "TOOLCHAIN_FILE=${TOOLCHAIN_FILE}" >> $GITHUB_ENV
3031
echo "GRPC_CPACK_CONFIG_FILE=${GRPC_CPACK_CONFIG_FILE}" >> $GITHUB_ENV
@@ -33,9 +34,7 @@ jobs:
3334
echo "GRPC_SOURCE_DIR=${GRPC_SOURCE_DIR}" >> $GITHUB_ENV
3435
echo "GRPC_HOST_BUILD_DIR=${GRPC_HOST_BUILD_DIR}" >> $GITHUB_ENV
3536
echo "GRPC_GUEST_BUILD_DIR=${GRPC_GUEST_BUILD_DIR}" >> $GITHUB_ENV
36-
echo "CROSS_COMPILER_PACKAGE_FILE=${CROSS_COMPILER_PACKAGE_FILE}" >> $GITHUB_ENV
37-
echo "CROSS_COMPILER_BASE_URL=${CROSS_COMPILER_BASE_URL}" >> $GITHUB_ENV
38-
echo "CROSS_COMPILER_RELATIVE_URL=${CROSS_COMPILER_RELATIVE_URL}" >> $GITHUB_ENV
37+
echo "CROSS_COMPILER_GIT_REPOSITORY=${CROSS_COMPILER_GIT_REPOSITORY}" >> $GITHUB_ENV
3938
echo "GRPC_PACKAGE_VERSION=${GRPC_PACKAGE_VERSION}" >> $GITHUB_ENV
4039
echo "GRPC_HOST_PACKAGE_NAME=${GRPC_HOST_PACKAGE_NAME}" >> $GITHUB_ENV
4140
echo "GRPC_HOST_DEBIAN_PACKAGE_NAME=${GRPC_HOST_DEBIAN_PACKAGE_NAME}" >> $GITHUB_ENV

01_set_env_vars_common_grpc.sh

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ export TAG=$(head -n 1 $TAG_FILENAME)
77
# directories and files
88
export BASE_DIR=$(pwd)
99
export SYSROOT_PREFIX=/tmp/raspberrypi_root
10-
export CROSS_COMPILER_ROOT=/opt/cross-pi-gcc-6.3.0-0
10+
export CROSS_COMPILER_INSTALL_DIR=${BASE_DIR}/raspberry-tools
11+
export CROSS_COMPILER_ROOT=${CROSS_COMPILER_INSTALL_DIR}/arm-bcm2708/arm-linux-gnueabihf
1112
export TOOLCHAIN_FILE=${BASE_DIR}/rpi-toolchain.cmake
1213
export GRPC_CPACK_CONFIG_FILE=${BASE_DIR}/CPackConfig-grpc.cmake
1314

@@ -19,9 +20,7 @@ export GRPC_HOST_BUILD_DIR=${BASE_DIR}/build/linux-x64
1920
export GRPC_GUEST_BUILD_DIR=${BASE_DIR}/build/rpi-arm32v6/grpc
2021

2122
# URLs
22-
export CROSS_COMPILER_PACKAGE_FILE=cross-gcc-6.3.0-pi_0-1.tar.gz
23-
export CROSS_COMPILER_BASE_URL=https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains
24-
export CROSS_COMPILER_RELATIVE_URL=Stretch/GCC%206.3.0/Raspberry%20Pi%201%2C%20Zero/${CROSS_COMPILER_PACKAGE_FILE}/download
23+
export CROSS_COMPILER_GIT_REPOSITORY=https://github.com/raspberrypi/tools.git
2524

2625
# gRPC package version and names
2726
export GRPC_PACKAGE_VERSION=${TAG#v}

04_install_prerequisites.sh

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
# check required environment variables
66
source utils.sh
7-
check_env_var CROSS_COMPILER_ROOT
8-
check_env_var CROSS_COMPILER_RELATIVE_URL
7+
check_env_var CROSS_COMPILER_INSTALL_DIR
8+
check_env_var CROSS_COMPILER_GIT_REPOSITORY
99

1010
set -ex
1111

@@ -23,13 +23,7 @@ if [ ! -f /usr/bin/cmake ]; then
2323
fi
2424

2525
# install cross-compiler for Raspberry Pi
26-
# (https://github.com/abhiTronix/raspberry-pi-cross-compilers)
27-
mkdir -p ${CROSS_COMPILER_ROOT}
28-
29-
if [ ! -f ${CROSS_COMPILER_PACKAGE_FILE} ]; then
30-
curl -L -o ${CROSS_COMPILER_PACKAGE_FILE} ${CROSS_COMPILER_BASE_URL}/${CROSS_COMPILER_RELATIVE_URL}
31-
fi
32-
tar -xzf ${CROSS_COMPILER_PACKAGE_FILE} -C ${CROSS_COMPILER_ROOT} --strip-components 1
26+
git clone ${CROSS_COMPILER_GIT_REPOSITORY} ${CROSS_COMPILER_INSTALL_DIR}
3327

3428
# install prerequisite build tools and dev packages
3529
sudo apt install make g++

09_build_grpc_armhf.sh

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ cmake \
4040
${GRPC_SOURCE_DIR}
4141

4242

43-
# set directories where libraries should be searched for
44-
export LD_LIBRARY_PATH=${CROSS_COMPILER_ROOT}/lib:$LD_LIBRARY_PATH
45-
4643
# compile and preinstall for packaging
4744
make -j8 preinstall
4845

@@ -60,7 +57,7 @@ cp ${GRPC_SYSROOT_PACKAGE_NAME}.tar.gz ${BASE_DIR}
6057

6158
# set up cross-compilation for guest installation
6259
cmake \
63-
-DCMAKE_TOOLCHAIN_FILE=${BASE_DIR}/rpi-toolchain.cmake \
60+
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
6461
-DCMAKE_BUILD_TYPE=Release \
6562
-DBUILD_SHARED_LIBS=ON \
6663
-DCMAKE_INSTALL_PREFIX=${GUEST_INSTALL_PREFIX} \

rpi-toolchain.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,4 @@ endif()
1818
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armhf")
1919
set(CMAKE_C_COMPILER ${devel_root}/bin/arm-linux-gnueabihf-gcc)
2020
set(CMAKE_CXX_COMPILER ${devel_root}/bin/arm-linux-gnueabihf-g++)
21-
set(CMAKE_C_FLAGS "-march=armv6 -mfloat-abi=hard -mfpu=vfp")
2221
set(CMAKE_CXX_FLAGS "-I${install_root}/include")

0 commit comments

Comments
 (0)