Switch Raspberry Pi building to unofficial GCC 6.5 toolchain

PiperOrigin-RevId: 267155769
This commit is contained in:
Pete Warden 2019-09-04 08:15:44 -07:00 committed by Terry Heo
parent ef48214f85
commit ca64e3bad7
5 changed files with 35 additions and 41 deletions

View File

@ -3,56 +3,56 @@ package(default_visibility = ["//visibility:public"])
filegroup( filegroup(
name = "gcc", name = "gcc",
srcs = [ srcs = [
"bin/arm-linux-gnueabihf-gcc", "bin/arm-rpi-linux-gnueabihf-gcc",
], ],
) )
filegroup( filegroup(
name = "ar", name = "ar",
srcs = [ srcs = [
"bin/arm-linux-gnueabihf-ar", "bin/arm-rpi-linux-gnueabihf-ar",
], ],
) )
filegroup( filegroup(
name = "ld", name = "ld",
srcs = [ srcs = [
"bin/arm-linux-gnueabihf-ld", "bin/arm-rpi-linux-gnueabihf-ld",
], ],
) )
filegroup( filegroup(
name = "nm", name = "nm",
srcs = [ srcs = [
"bin/arm-linux-gnueabihf-nm", "bin/arm-rpi-linux-gnueabihf-nm",
], ],
) )
filegroup( filegroup(
name = "objcopy", name = "objcopy",
srcs = [ srcs = [
"bin/arm-linux-gnueabihf-objcopy", "bin/arm-rpi-linux-gnueabihf-objcopy",
], ],
) )
filegroup( filegroup(
name = "objdump", name = "objdump",
srcs = [ srcs = [
"bin/arm-linux-gnueabihf-objdump", "bin/arm-rpi-linux-gnueabihf-objdump",
], ],
) )
filegroup( filegroup(
name = "strip", name = "strip",
srcs = [ srcs = [
"bin/arm-linux-gnueabihf-strip", "bin/arm-rpi-linux-gnueabihf-strip",
], ],
) )
filegroup( filegroup(
name = "as", name = "as",
srcs = [ srcs = [
"bin/arm-linux-gnueabihf-as", "bin/arm-rpi-linux-gnueabihf-as",
], ],
) )

View File

@ -43,8 +43,8 @@ TENSORFLOW_DIR = os.environ['TENSORFLOW_SRC_ROOT']
# Setup cross compiling # Setup cross compiling
TARGET = os.environ.get('TENSORFLOW_TARGET', None) TARGET = os.environ.get('TENSORFLOW_TARGET', None)
if TARGET == 'rpi': if TARGET == 'rpi':
os.environ['CXX'] = 'arm-linux-gnueabihf-g++' os.environ['CXX'] = 'arm-rpi-linux-gnueabihf-g++'
os.environ['CC'] = 'arm-linux-gnueabihf-gcc' os.environ['CC'] = 'arm-rpi-linux-gnueabihf-gcc'
elif TARGET == 'aarch64': elif TARGET == 'aarch64':
os.environ['CXX'] = 'aarch64-linux-gnu-g++' os.environ['CXX'] = 'aarch64-linux-gnu-g++'
os.environ['CC'] = 'aarch64-linux-gnu-gcc' os.environ['CC'] = 'aarch64-linux-gnu-gcc'

View File

@ -57,11 +57,11 @@ TOOLCHAIN_INSTALL_PATH=/tmp/toolchain_install/
sudo rm -rf ${TOOLCHAIN_INSTALL_PATH} sudo rm -rf ${TOOLCHAIN_INSTALL_PATH}
mkdir ${TOOLCHAIN_INSTALL_PATH} mkdir ${TOOLCHAIN_INSTALL_PATH}
cd ${TOOLCHAIN_INSTALL_PATH} cd ${TOOLCHAIN_INSTALL_PATH}
curl -L https://github.com/raspberrypi/tools/archive/0e906ebc527eab1cdbf7adabff5b474da9562e9f.tar.gz -o toolchain.tar.gz curl -L https://github.com/rvagg/rpi-newer-crosstools/archive/eb68350c5c8ec1663b7fe52c742ac4271e3217c5.tar.gz -o toolchain.tar.gz
tar xzf toolchain.tar.gz tar xzf toolchain.tar.gz
mv tools-0e906ebc527eab1cdbf7adabff5b474da9562e9f/ tools mv rpi-newer-crosstools-eb68350c5c8ec1663b7fe52c742ac4271e3217c5 tools
CROSSTOOL_CC=${TOOLCHAIN_INSTALL_PATH}/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc CROSSTOOL_CC=${TOOLCHAIN_INSTALL_PATH}/tools/x64-gcc-6.5.0/arm-rpi-linux-gnueabihf/bin/arm-rpi-linux-gnueabihf-gcc
OPENBLAS_SRC_PATH=/tmp/openblas_src/ OPENBLAS_SRC_PATH=/tmp/openblas_src/
sudo rm -rf ${OPENBLAS_SRC_PATH} sudo rm -rf ${OPENBLAS_SRC_PATH}

View File

@ -180,11 +180,11 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""):
tf_http_archive( tf_http_archive(
name = "arm_compiler", name = "arm_compiler",
build_file = clean_dep("//:arm_compiler.BUILD"), build_file = clean_dep("//:arm_compiler.BUILD"),
sha256 = "4c622a5c7b9feb9615d4723b03a13142a7f3f813f9296861d5401282b9fbea96", sha256 = "b9e7d50ffd9996ed18900d041d362c99473b382c0ae049b2fce3290632d2656f",
strip_prefix = "tools-0e906ebc527eab1cdbf7adabff5b474da9562e9f/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf", strip_prefix = "rpi-newer-crosstools-eb68350c5c8ec1663b7fe52c742ac4271e3217c5/x64-gcc-6.5.0/arm-rpi-linux-gnueabihf/",
urls = [ urls = [
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/raspberrypi/tools/archive/0e906ebc527eab1cdbf7adabff5b474da9562e9f.tar.gz", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/rvagg/rpi-newer-crosstools/archive/eb68350c5c8ec1663b7fe52c742ac4271e3217c5.tar.gz",
"https://github.com/raspberrypi/tools/archive/0e906ebc527eab1cdbf7adabff5b474da9562e9f.tar.gz", "https://github.com/rvagg/rpi-newer-crosstools/archive/eb68350c5c8ec1663b7fe52c742ac4271e3217c5.tar.gz",
], ],
) )

View File

@ -331,17 +331,13 @@ def _impl(ctx):
flags = [ flags = [
"-std=c++11", "-std=c++11",
"-isystem", "-isystem",
"%{ARM_COMPILER_PATH}%/arm-linux-gnueabihf/include/c++/4.9.3/", "%{ARM_COMPILER_PATH}%/lib/gcc/arm-rpi-linux-gnueabihf/6.5.0/include",
"-isystem", "-isystem",
"%{ARM_COMPILER_PATH}%/arm-linux-gnueabihf/sysroot/usr/include/", "%{ARM_COMPILER_PATH}%/lib/gcc/arm-rpi-linux-gnueabihf/6.5.0/include-fixed",
"-isystem", "-isystem",
"%{ARM_COMPILER_PATH}%/arm-linux-gnueabihf/libc/usr/include/", "%{ARM_COMPILER_PATH}%/arm-rpi-linux-gnueabihf/sysroot/usr/include/",
"-isystem", "-isystem",
"%{ARM_COMPILER_PATH}%/lib/gcc/arm-linux-gnueabihf/4.9.3/include", "%{ARM_COMPILER_PATH}%/arm-rpi-linux-gnueabihf/include/c++/6.5.0/",
"-isystem",
"%{ARM_COMPILER_PATH}%/lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed",
"-isystem",
"%{ARM_COMPILER_PATH}%/local_include",
"-isystem", "-isystem",
"%{PYTHON_INCLUDE_PATH}%", "%{PYTHON_INCLUDE_PATH}%",
"-isystem", "-isystem",
@ -563,12 +559,10 @@ def _impl(ctx):
if (ctx.attr.cpu == "armeabi"): if (ctx.attr.cpu == "armeabi"):
cxx_builtin_include_directories = [ cxx_builtin_include_directories = [
"%{ARM_COMPILER_PATH}%/arm-linux-gnueabihf/include/c++/4.9.3/", "%{ARM_COMPILER_PATH}%/lib/gcc/arm-rpi-linux-gnueabihf/6.5.0/include",
"%{ARM_COMPILER_PATH}%/arm-linux-gnueabihf/sysroot/usr/include/", "%{ARM_COMPILER_PATH}%/lib/gcc/arm-rpi-linux-gnueabihf/6.5.0/include-fixed",
"%{ARM_COMPILER_PATH}%/arm-linux-gnueabihf/libc/usr/include/", "%{ARM_COMPILER_PATH}%/arm-rpi-linux-gnueabihf/sysroot/usr/include/",
"%{ARM_COMPILER_PATH}%/lib/gcc/arm-linux-gnueabihf/4.9.3/include", "%{ARM_COMPILER_PATH}%/arm-rpi-linux-gnueabihf/include/c++/6.5.0/",
"%{ARM_COMPILER_PATH}%/lib/gcc/arm-linux-gnueabihf/4.9.3/include-fixed",
"%{ARM_COMPILER_PATH}%/local_include",
"/usr/include", "/usr/include",
"/tmp/openblas_install/include/", "/tmp/openblas_install/include/",
] ]
@ -585,44 +579,44 @@ def _impl(ctx):
tool_paths = [ tool_paths = [
tool_path( tool_path(
name = "ar", name = "ar",
path = "%{ARM_COMPILER_PATH}%/bin/arm-linux-gnueabihf-ar", path = "%{ARM_COMPILER_PATH}%/bin/arm-rpi-linux-gnueabihf-ar",
), ),
tool_path(name = "compat-ld", path = "/bin/false"), tool_path(name = "compat-ld", path = "/bin/false"),
tool_path( tool_path(
name = "cpp", name = "cpp",
path = "%{ARM_COMPILER_PATH}%/bin/arm-linux-gnueabihf-cpp", path = "%{ARM_COMPILER_PATH}%/bin/arm-rpi-linux-gnueabihf-cpp",
), ),
tool_path( tool_path(
name = "dwp", name = "dwp",
path = "%{ARM_COMPILER_PATH}%/bin/arm-linux-gnueabihf-dwp", path = "%{ARM_COMPILER_PATH}%/bin/arm-rpi-linux-gnueabihf-dwp",
), ),
tool_path( tool_path(
name = "gcc", name = "gcc",
path = "%{ARM_COMPILER_PATH}%/bin/arm-linux-gnueabihf-gcc", path = "%{ARM_COMPILER_PATH}%/bin/arm-rpi-linux-gnueabihf-gcc",
), ),
tool_path( tool_path(
name = "gcov", name = "gcov",
path = "%{ARM_COMPILER_PATH}%/bin/arm-linux-gnueabihf-gcov", path = "%{ARM_COMPILER_PATH}%/bin/arm-rpi-linux-gnueabihf-gcov",
), ),
tool_path( tool_path(
name = "ld", name = "ld",
path = "%{ARM_COMPILER_PATH}%/bin/arm-linux-gnueabihf-ld", path = "%{ARM_COMPILER_PATH}%/bin/arm-rpi-linux-gnueabihf-ld",
), ),
tool_path( tool_path(
name = "nm", name = "nm",
path = "%{ARM_COMPILER_PATH}%/bin/arm-linux-gnueabihf-nm", path = "%{ARM_COMPILER_PATH}%/bin/arm-rpi-linux-gnueabihf-nm",
), ),
tool_path( tool_path(
name = "objcopy", name = "objcopy",
path = "%{ARM_COMPILER_PATH}%/bin/arm-linux-gnueabihf-objcopy", path = "%{ARM_COMPILER_PATH}%/bin/arm-rpi-linux-gnueabihf-objcopy",
), ),
tool_path( tool_path(
name = "objdump", name = "objdump",
path = "%{ARM_COMPILER_PATH}%/bin/arm-linux-gnueabihf-objdump", path = "%{ARM_COMPILER_PATH}%/bin/arm-rpi-linux-gnueabihf-objdump",
), ),
tool_path( tool_path(
name = "strip", name = "strip",
path = "%{ARM_COMPILER_PATH}%/bin/arm-linux-gnueabihf-strip", path = "%{ARM_COMPILER_PATH}%/bin/arm-rpi-linux-gnueabihf-strip",
), ),
] ]
elif (ctx.attr.cpu == "local"): elif (ctx.attr.cpu == "local"):