On Fri, Sep 14, 2018 at 02:26:58PM -0400, Jacob Stiffler wrote:
> From: Qin Su <q...@ti.com>
> 
> Arm NN SDK is a set of open-source Linux software and tools that enables
> machine learning workloads on power-efficient devices. Arm NN takes Caffe,
> TensorFlow network frameworks, translate them to the internal Arm NN
> formatand then, through the Compute Library, deploy them efficiently on
> Cortex-A CPUs.
> 
> Signed-off-by: Qin Su <q...@ti.com>
> Signed-off-by: Jacob Stiffler <j-stiff...@ti.com>
> ---
> Changes from v6:
> * Add SUMMARY
> * Add "Upstream-Status" to patches

Thanks again for all the fixes and cleanups! Especially detailed 
Upstream-status.


> Changes from previous versions:
> * Add "_git" suffix to recipe name.
> * Add version.
> * Add branch option for SRC_URI.
> * Remove bash-completion package as the file is not present.
> 
>  .../armnn/0001-stdlib-issue-work-around.patch      | 61 
> ++++++++++++++++++++++
>  .../0002-enable-use-of-boost-shared-library.patch  | 37 +++++++++++++
>  .../recipes-support/armnn/armnn_git.bb             | 46 ++++++++++++++++
>  3 files changed, 144 insertions(+)
>  create mode 100755 
> meta-arago-extras/recipes-support/armnn/armnn/0001-stdlib-issue-work-around.patch
>  create mode 100755 
> meta-arago-extras/recipes-support/armnn/armnn/0002-enable-use-of-boost-shared-library.patch
>  create mode 100644 meta-arago-extras/recipes-support/armnn/armnn_git.bb
> 
> diff --git 
> a/meta-arago-extras/recipes-support/armnn/armnn/0001-stdlib-issue-work-around.patch
>  
> b/meta-arago-extras/recipes-support/armnn/armnn/0001-stdlib-issue-work-around.patch
> new file mode 100755
> index 0000000..cf83532
> --- /dev/null
> +++ 
> b/meta-arago-extras/recipes-support/armnn/armnn/0001-stdlib-issue-work-around.patch
> @@ -0,0 +1,61 @@
> +From 3691057b51010c1bd979998c460ad7b43f97496f Mon Sep 17 00:00:00 2001
> +From: Qin Su <q...@ti.com>
> +Date: Fri, 10 Aug 2018 11:02:14 -0400
> +Subject: [PATCH] stdlib issue work around
> +
> +Upstream-Status: Pending
> +Need to invesitate whether this is appropriate, or if cmake should be
> +fixed. This is currently an open issue on the cmake project [1].
> +
> +[1] https://gitlab.kitware.com/cmake/cmake/issues/16291
> +
> +Signed-off-by: Qin Su <q...@ti.com>
> +---
> + cmake/GlobalConfig.cmake | 28 ++++++++++++++++++++++++++++
> + 1 file changed, 28 insertions(+)
> + mode change 100644 => 100755 cmake/GlobalConfig.cmake
> +
> +diff --git a/cmake/GlobalConfig.cmake b/cmake/GlobalConfig.cmake
> +old mode 100644
> +new mode 100755
> +index 2dbeada..2b88c16
> +--- a/cmake/GlobalConfig.cmake
> ++++ b/cmake/GlobalConfig.cmake
> +@@ -47,6 +47,34 @@ elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC)
> +     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /MP")
> +     add_definitions(-DNOMINMAX=1 -DNO_STRICT=1)
> + endif()
> ++
> ++# Ensure that the default include system directories are added to the list 
> of CMake implicit includes.
> ++# This workarounds an issue that happens when using GCC 6 and using system 
> includes (-isystem).
> ++# For more details check: https://bugs.webkit.org/show_bug.cgi?id=161697
> ++macro(DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _compiler _flags _result)
> ++    file(WRITE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy" "\n")
> ++    separate_arguments(_buildFlags UNIX_COMMAND "${_flags}")
> ++    execute_process(COMMAND ${_compiler} ${_buildFlags} -v -E -x ${_lang} 
> -dD dummy
> ++                    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles 
> OUTPUT_QUIET
> ++                    ERROR_VARIABLE _gccOutput)
> ++    file(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy")
> ++    if ("${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n 
> *End of (search) list")
> ++        set(${_result} ${CMAKE_MATCH_1})
> ++        string(REPLACE "\n" " " ${_result} "${${_result}}")
> ++        separate_arguments(${_result})
> ++    endif ()
> ++endmacro()
> ++
> ++if (CMAKE_COMPILER_IS_GNUCC)
> ++   DETERMINE_GCC_SYSTEM_INCLUDE_DIRS("c" "${CMAKE_C_COMPILER}" 
> "${CMAKE_C_FLAGS}" SYSTEM_INCLUDE_DIRS)
> ++   set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES 
> ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES} ${SYSTEM_INCLUDE_DIRS})
> ++endif ()
> ++
> ++if (CMAKE_COMPILER_IS_GNUCXX)
> ++   DETERMINE_GCC_SYSTEM_INCLUDE_DIRS("c++" "${CMAKE_CXX_COMPILER}" 
> "${CMAKE_CXX_FLAGS}" SYSTEM_INCLUDE_DIRS)
> ++   set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES 
> ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES} ${SYSTEM_INCLUDE_DIRS})
> ++endif ()
> ++
> + if("${CMAKE_SYSTEM_NAME}" STREQUAL Android)
> +     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -llog")
> +     set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -llog")
> +--
> +1.9.1
> +
> diff --git 
> a/meta-arago-extras/recipes-support/armnn/armnn/0002-enable-use-of-boost-shared-library.patch
>  
> b/meta-arago-extras/recipes-support/armnn/armnn/0002-enable-use-of-boost-shared-library.patch
> new file mode 100755
> index 0000000..50c2e1d
> --- /dev/null
> +++ 
> b/meta-arago-extras/recipes-support/armnn/armnn/0002-enable-use-of-boost-shared-library.patch
> @@ -0,0 +1,37 @@
> +From 34a7ec821b11f7bed3dd644bf341cbaf6023516b Mon Sep 17 00:00:00 2001
> +From: Qin Su <q...@ti.com>
> +Date: Tue, 11 Sep 2018 17:11:07 -0400
> +Subject: [PATCH] enable use of boost shared library
> +
> +Upstream-Status: Inappropriate [configuration]
> +This is a hack to modify hard coded configuration. If anything, it
> +should be made configurable.
> +
> +Signed-off-by: Qin Su <q...@ti.com>
> +---
> + cmake/GlobalConfig.cmake | 6 ++++--
> + 1 file changed, 4 insertions(+), 2 deletions(-)
> + mode change 100644 => 100755 cmake/GlobalConfig.cmake
> +
> +diff --git a/cmake/GlobalConfig.cmake b/cmake/GlobalConfig.cmake
> +old mode 100644
> +new mode 100755
> +index 2dbeada..a5a1113
> +--- a/cmake/GlobalConfig.cmake
> ++++ b/cmake/GlobalConfig.cmake
> +@@ -96,8 +96,10 @@ endif()
> + set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules 
> ${CMAKE_MODULE_PATH})
> +
> + # Boost
> +-add_definitions("-DBOOST_ALL_NO_LIB") # Turn off auto-linking as we specify 
> the libs manually
> +-set(Boost_USE_STATIC_LIBS ON)
> ++#add_definitions("-DBOOST_ALL_NO_LIB") # Turn off auto-linking as we 
> specify the libs manually
> ++#set(Boost_USE_STATIC_LIBS ON)
> ++add_definitions(-DBOOST_ALL_DYN_LINK) # use shared library
> ++set(Boost_USE_STATIC_LIBS OFF)
> + find_package(Boost 1.59 REQUIRED COMPONENTS unit_test_framework system 
> filesystem log program_options)
> + include_directories(SYSTEM "${Boost_INCLUDE_DIR}")
> + link_directories(${Boost_LIBRARY_DIR})
> +--
> +1.9.1
> +
> diff --git a/meta-arago-extras/recipes-support/armnn/armnn_git.bb 
> b/meta-arago-extras/recipes-support/armnn/armnn_git.bb
> new file mode 100644
> index 0000000..3bd4c82
> --- /dev/null
> +++ b/meta-arago-extras/recipes-support/armnn/armnn_git.bb
> @@ -0,0 +1,46 @@
> +SUMMARY = "ARM Neural Network SDK"
> +DESCRIPTION = "Linux software and tools to enable machine learning 
> (Caffe/Tensorflow) workloads on power-efficient devices"
> +LICENSE = "MIT"
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=3e14a924c16f7d828b8335a59da64074"
> +
> +PV = "20180502"
> +
> +BRANCH = "master"
> +SRCREV = "4c7098bfeab1ffe1cdc77f6c15548d3e73274746"
> +
> +S = "${WORKDIR}/git"
> +
> +inherit cmake
> +
> +SRC_URI = " \
> +    git://github.com/ARM-software/armnn.git;branch=${BRANCH} \
> +    file://0001-stdlib-issue-work-around.patch \
> +    file://0002-enable-use-of-boost-shared-library.patch \
> +"
> +
> +DEPENDS = " \
> +    boost \
> +    protobuf \
> +    stb \
> +    arm-compute-library \
> +    armnn-caffe \
> +    armnn-tensorflow \
> +"
> +
> +EXTRA_OECMAKE=" \
> +    -DBUILD_SHARED_LIBS=ON -DREGISTER_INSTALL_PREFIX=OFF \
> +    -DARMCOMPUTE_ROOT=${STAGING_DIR_HOST}${datadir}/arm-compute-library \
> +    
> -DARMCOMPUTE_BUILD_DIR=${STAGING_DIR_HOST}${datadir}/arm-compute-library/build
>  \
> +    -DCAFFE_GENERATED_SOURCES=${STAGING_DIR_HOST}${datadir}/armnn-caffe \
> +    -DTF_GENERATED_SOURCES=${STAGING_DIR_HOST}${datadir}/armnn-tensorflow \
> +    -DBUILD_CAFFE_PARSER=1 -DBUILD_TF_PARSER=1 \
> +    -DARMCOMPUTENEON=1 \
> +    -DBUILD_TESTS=1 -DPROFILING=1 \
> +    -DTHIRD_PARTY_INCLUDE_DIRS=${STAGING_DIR_HOST}${includedir} \
> +"
> +
> +CXXFLAGS += "-fopenmp"
> +LIBS += "-larmpl_lp64_mp"
> +
> +FILES_${PN}-dev += "{libdir}/cmake/*"
> +INSANE_SKIP_${PN}-dev = "dev-elf"
> -- 
> 2.7.4
> 
> _______________________________________________
> meta-arago mailing list
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
_______________________________________________
meta-arago mailing list
meta-arago@arago-project.org
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to