From 01ccbd8886ff549fff3239138f5cc6b55e353b91 Mon Sep 17 00:00:00 2001 From: Mark Charlebois Date: Fri, 23 Oct 2015 20:42:15 -0700 Subject: [PATCH] qurt: added HEXAGON_TOOLS_ROOT variable The environment variable HEXAGON_TOOLS_ROOT must be set to the location of the installed HexagonTools. This could be a global install at /opt/HEXAGON_Tools/7.2.10/Tools or it could be a personal install ${HOME}/Qualcomm/HEXAGON_Tools/7.2.10/Tools. The default install path used by the installer is exported in the Vagrantfile. There is still an issue that the hexagon linker fails on mmap of the shared folder. If the shared folder was mounted via NFS for Linux and MacOS the problem would be resolved. Signed-off-by: Mark Charlebois --- Vagrantfile | 2 ++ cmake/toolchains/Toolchain-hexagon-7.2.10.cmake | 17 +++++++++++++++-- src/lib/dspal | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index c24bfe6859..2fbf532b74 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -85,6 +85,8 @@ Vagrant.configure(2) do |config| tar -jxf gcc-arm-none-eabi-4_8-2014q3-20140805-linux.tar.bz2 exportline="export PATH=$HOME/gcc-arm-none-eabi-4_8-2014q3/bin:\$PATH" if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi + exportline2="export HEXAGON_TOOLS_ROOT=$HOME/Qualcomm/HEXAGON_Tools/7.2.10/Tools" + if grep -Fxq "$exportline2" ~/.profile; then echo nothing to do ; else echo $exportline2 >> ~/.profile; fi . ~/.profile popd # setup ccache diff --git a/cmake/toolchains/Toolchain-hexagon-7.2.10.cmake b/cmake/toolchains/Toolchain-hexagon-7.2.10.cmake index 4e27436ec7..1ab6fd4060 100644 --- a/cmake/toolchains/Toolchain-hexagon-7.2.10.cmake +++ b/cmake/toolchains/Toolchain-hexagon-7.2.10.cmake @@ -34,8 +34,12 @@ include(CMakeForceCompiler) list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) include(common/px4_base) -if(NOT HEXAGON_TOOLS_ROOT) - set(HEXAGON_TOOLS_ROOT $ENV{HOME}/Qualcomm/HEXAGON_Tools/7.2.10/Tools) +if ("$ENV{HEXAGON_TOOLS_ROOT}" STREQUAL "") + message(FATAL_ERROR + "The HexagonTools version 7.2.10 must be installed and the environment variable HEXAGON_TOOLS_ROOT must be set" + "(e.g. export HEXAGON_TOOLS_ROOT=/opt/HEXAGON_Tools/7.2.10/Tools)") +else() + set(HEXAGON_TOOLS_ROOT $ENV{HEXAGON_TOOLS_ROOT}) endif() macro (list2string out in) @@ -239,3 +243,12 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) # for libraries and headers in the target directories set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + +# The Hexagon compiler doesn't support the -rdynamic flag and this is set +# in the base cmake scripts. We have to redefine the __linux_compiler_gnu +# macro for cmake 2.8 to work +set(__LINUX_COMPILER_GNU 1) +macro(__linux_compiler_gnu lang) + set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "") +endmacro() + diff --git a/src/lib/dspal b/src/lib/dspal index caf445fe1e..c8e885aac5 160000 --- a/src/lib/dspal +++ b/src/lib/dspal @@ -1 +1 @@ -Subproject commit caf445fe1e54a9631c6d4c6451f23452adb9897c +Subproject commit c8e885aac51aa34855bb3880d3dc916b9e278083