diff --git a/Makefile b/Makefile index a3136390..f028a53f 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ $(TARGETS_CONFIG): %-config: $(TARGETS): %: $(RELEASE_DIR) %-config @echo "build $@" $(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) 2>&1 | tee logs/buildroot_$@_output.txt - rsync -ah --progress $(BUILDROOT)/output/images/sdcard.img $(RELEASE_DIR)/OpenVoiceOS_$@.img + rsync -ah --progress $(BUILDROOT)/output/images/disk.img $(RELEASE_DIR)/OpenVoiceOS_$@.img xz -3 -T0 -v -f $(RELEASE_DIR)/OpenVoiceOS_$@.img # Do not clean when building for one target diff --git a/buildroot-external/Config.in b/buildroot-external/Config.in index a4bf756f..f2ff14c0 100644 --- a/buildroot-external/Config.in +++ b/buildroot-external/Config.in @@ -98,7 +98,6 @@ endmenu source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/librem/Config.in" source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/lottie-qml/Config.in" source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ncpamixer/Config.in" - source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/neon2sse/Config.in" source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/opencl_headers/Config.in" source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/openfec/Config.in" source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/openfst/Config.in" diff --git a/buildroot-external/configs/ova_64-base_defconfig b/buildroot-external/configs/ova_64-base_defconfig index 596df9f7..78b7aa94 100644 --- a/buildroot-external/configs/ova_64-base_defconfig +++ b/buildroot-external/configs/ova_64-base_defconfig @@ -339,6 +339,7 @@ BR2_PACKAGE_PYTHON_FLASK_JSONRPC=y BR2_PACKAGE_PYTHON_FLASK_LOGIN=y BR2_PACKAGE_PYTHON_FLASK_SQLALCHEMY=y BR2_PACKAGE_PYTHON_FLATBUFFERS=y +BR2_PACKAGE_PYTHON_GREENLET=y BR2_PACKAGE_PYTHON_HUMANIZE=y BR2_PACKAGE_PYTHON_JSON_SCHEMA_VALIDATOR=y BR2_PACKAGE_PYTHON_JSONMODELS=y @@ -546,6 +547,7 @@ BR2_PACKAGE_PA_VOLUME=y BR2_PACKAGE_PICOTTS=y BR2_PACKAGE_SNAPCAST=y BR2_PACKAGE_SNAPCAST_SERVER=y +BR2_PACKAGE_TENSORFLOW_LITE=y BR2_PACKAGE_PYTHON_ADAPT_PARSER=y BR2_PACKAGE_PYTHON_ASTRAL=y BR2_PACKAGE_PYTHON_AUDIO_METADATA=y diff --git a/buildroot-external/package/cpuinfo/0001-Enable-CXX-only-when-needed-for-tests-benchmarks.patch b/buildroot-external/package/cpuinfo/0001-Enable-CXX-only-when-needed-for-tests-benchmarks.patch new file mode 100644 index 00000000..30afd3d7 --- /dev/null +++ b/buildroot-external/package/cpuinfo/0001-Enable-CXX-only-when-needed-for-tests-benchmarks.patch @@ -0,0 +1,40 @@ +From 66dbf4fbe202318860caeab3b1ef9c2fe70e2c4c Mon Sep 17 00:00:00 2001 +From: James Hilliard +Date: Sun, 29 Jan 2023 16:55:08 -0700 +Subject: [PATCH] Enable CXX only when needed for tests/benchmarks + +Signed-off-by: James Hilliard +[Upstream status: +https://github.com/pytorch/cpuinfo/pull/133] +--- + CMakeLists.txt | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9f4d1d1..9e1c153 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,7 +3,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.5 FATAL_ERROR) + # ---[ Setup project + PROJECT( + cpuinfo +- LANGUAGES C CXX ++ LANGUAGES C + ) + + # ---[ Options. +@@ -103,6 +103,12 @@ ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Windows|WindowsStore|CYGWIN|MSYS|Darwin| + ENDIF() + ENDIF() + ++IF(CPUINFO_SUPPORTED_PLATFORM) ++ IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS OR CPUINFO_BUILD_BENCHMARKS) ++ ENABLE_LANGUAGE(CXX) ++ ENDIF() ++ENDIF() ++ + # ---[ Download deps + SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps + CACHE PATH "Confu-style dependencies source directory") +-- +2.34.1 diff --git a/buildroot-external/package/cpuinfo/Config.in b/buildroot-external/package/cpuinfo/Config.in index 2300b745..257480f0 100644 --- a/buildroot-external/package/cpuinfo/Config.in +++ b/buildroot-external/package/cpuinfo/Config.in @@ -1,8 +1,17 @@ +config BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS + bool + default y if BR2_aarch64 + default y if BR2_arm + default y if BR2_i386 + default y if BR2_x86_64 + config BR2_PACKAGE_CPUINFO bool "cpuinfo" - depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS help - cpuinfo is a library to detect essential for performance - optimization information about host CPU. + CPU INFOrmation library, cpuinfo is a library to detect + essential for performance optimization information about + host CPU. https://github.com/pytorch/cpuinfo diff --git a/buildroot-external/package/cpuinfo/cpuinfo.hash b/buildroot-external/package/cpuinfo/cpuinfo.hash index c3f70fa9..7dd0d571 100644 --- a/buildroot-external/package/cpuinfo/cpuinfo.hash +++ b/buildroot-external/package/cpuinfo/cpuinfo.hash @@ -1,4 +1,4 @@ # Locally calculated -sha256 0936848904943381b2c01321101614776e43d583840ee0f3ceeea1e3fb7405f7 cpuinfo-de2fa78ebb431db98489e78603e4f77c1f6c5c57.tar.gz +sha256 cf243e7ac07cd5e2ac58dcb29f8a9047b7887452212aead2ddf1ceda45cc66dd cpuinfo-eb4a6674bfe9cf91b63b9817412ae5f6862c8432.tar.gz # License files, locally calculated sha256 8e7e60636c3aa0cb03571a1a841ce5697f9551ff92b3c426c2561613d15ade70 LICENSE diff --git a/buildroot-external/package/cpuinfo/cpuinfo.mk b/buildroot-external/package/cpuinfo/cpuinfo.mk index eb186cf1..11b34656 100644 --- a/buildroot-external/package/cpuinfo/cpuinfo.mk +++ b/buildroot-external/package/cpuinfo/cpuinfo.mk @@ -4,15 +4,16 @@ # ################################################################################ -CPUINFO_VERSION = de2fa78ebb431db98489e78603e4f77c1f6c5c57 +CPUINFO_VERSION = eb4a6674bfe9cf91b63b9817412ae5f6862c8432 CPUINFO_SITE = $(call github,pytorch,cpuinfo,$(CPUINFO_VERSION)) CPUINFO_LICENSE = BSD-2-Clause CPUINFO_LICENSE_FILES = LICENSE CPUINFO_INSTALL_STAGING = YES -CPUINFO_SUPPORTS_IN_SOURCE_BUILD = NO - -CPUINFO_CONF_OPTS = -DCPUINFO_BUILD_UNIT_TESTS=OFF \ - -DCPUINFO_BUILD_MOCK_TESTS=OFF \ - -DCPUINFO_BUILD_BENCHMARKS=OFF +CPUINFO_CONF_OPTS = \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DCPUINFO_LIBRARY_TYPE:STRING=shared \ + -DCPUINFO_BUILD_UNIT_TESTS=OFF \ + -DCPUINFO_BUILD_MOCK_TESTS=OFF \ + -DCPUINFO_BUILD_BENCHMARKS=OFF $(eval $(cmake-package)) diff --git a/buildroot-external/package/farmhash/.farmhash.mk.swp b/buildroot-external/package/farmhash/.farmhash.mk.swp deleted file mode 100644 index cea6947e..00000000 Binary files a/buildroot-external/package/farmhash/.farmhash.mk.swp and /dev/null differ diff --git a/buildroot-external/package/farmhash/Config.in b/buildroot-external/package/farmhash/Config.in index 0ad16f93..ef228987 100644 --- a/buildroot-external/package/farmhash/Config.in +++ b/buildroot-external/package/farmhash/Config.in @@ -1,7 +1,12 @@ config BR2_PACKAGE_FARMHASH bool "farmhash" depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 help FarmHash, a family of hash functions. https://github.com/google/farmhash + +comment "farmhash needs a toolchain w/ C++11" + depends on !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 diff --git a/buildroot-external/package/fp16/0001-CMake-don-t-enable-CXX-unless-building-tests-benchma.patch b/buildroot-external/package/fp16/0001-CMake-don-t-enable-CXX-unless-building-tests-benchma.patch new file mode 100644 index 00000000..b3c5219d --- /dev/null +++ b/buildroot-external/package/fp16/0001-CMake-don-t-enable-CXX-unless-building-tests-benchma.patch @@ -0,0 +1,48 @@ +From eba14b5277ed8f155eb333f4bbe9f99366e3dece Mon Sep 17 00:00:00 2001 +From: James Hilliard +Date: Sun, 29 Jan 2023 21:43:50 -0700 +Subject: [PATCH] CMake: don't enable CXX unless building tests/benchmarks + +We only need CXX support when building tests/benchmarks. + +Fixes: +CMake Error at CMakeLists.txt:6 (PROJECT): + No CMAKE_CXX_COMPILER could be found. + + Tell CMake where to find the compiler by setting either the environment + variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path + to the compiler, or to the compiler name if it is in the PATH. + +Signed-off-by: James Hilliard +[Upstream status: +https://github.com/Maratyszcza/FP16/pull/22] +--- + CMakeLists.txt | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5e7d127..8028c07 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,13 +3,17 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR) + INCLUDE(GNUInstallDirs) + + # ---[ Project +-PROJECT(FP16 C CXX) ++PROJECT(FP16 C) + + # ---[ Options. + OPTION(FP16_BUILD_TESTS "Build FP16 unit tests" ON) + OPTION(FP16_BUILD_BENCHMARKS "Build FP16 micro-benchmarks" ON) + + # ---[ CMake options ++IF(FP16_BUILD_TESTS OR FP16_BUILD_BENCHMARKS) ++ ENABLE_LANGUAGE(CXX) ++ENDIF() ++ + IF(FP16_BUILD_TESTS) + ENABLE_TESTING() + ENDIF() +-- +2.34.1 + diff --git a/buildroot-external/package/fp16/fp16.hash b/buildroot-external/package/fp16/fp16.hash index 7b7feada..63634eb2 100644 --- a/buildroot-external/package/fp16/fp16.hash +++ b/buildroot-external/package/fp16/fp16.hash @@ -1 +1,4 @@ +# Locally calculated sha256 a91f4770ff9c39f4d72e339c379f566b3bbb359fa66122d85fc0bae3dde7abc7 fp16-0a92994d729ff76a58f692d3028ca1b64b145d91.tar.gz +# License files, locally calculated +sha256 17e4f539024be2749ee729d1e2f01d24cef12ece8c9bf18e91a4349be29c80bf LICENSE diff --git a/buildroot-external/package/fp16/fp16.mk b/buildroot-external/package/fp16/fp16.mk index bb1f3e0b..80710523 100644 --- a/buildroot-external/package/fp16/fp16.mk +++ b/buildroot-external/package/fp16/fp16.mk @@ -6,18 +6,15 @@ FP16_VERSION = 0a92994d729ff76a58f692d3028ca1b64b145d91 FP16_SITE = $(call github,Maratyszcza,FP16,$(FP16_VERSION)) -FP16_LICENSE = BSD-2-Clause +FP16_LICENSE = MIT FP16_LICENSE_FILES = LICENSE - -FP16_SUPPORTS_IN_SOURCE_BUILD = NO -FP16_DEPENDENCIES = psimd - -FP16_CONF_OPTS = -DCMAKE_SYSTEM_NAME=Linux \ - -DCMAKE_SYSTEM_PROCESSOR=aarch64 \ - -DFP16_BUILD_TESTS=OFF \ - -DFP16_BUILD_BENCHMARKS=OFF - FP16_INSTALL_STAGING = YES +# Only installs a header FP16_INSTALL_TARGET = NO +FP16_DEPENDENCIES = psimd +FP16_CONF_OPTS = \ + -DFP16_BUILD_TESTS=OFF \ + -DFP16_BUILD_BENCHMARKS=OFF \ + -DPSIMD_SOURCE_DIR="$(PSIMD_DIR)" $(eval $(cmake-package)) diff --git a/buildroot-external/package/gemmlowp/Config.in b/buildroot-external/package/gemmlowp/Config.in index 24ba6e97..379450d1 100644 --- a/buildroot-external/package/gemmlowp/Config.in +++ b/buildroot-external/package/gemmlowp/Config.in @@ -1,7 +1,12 @@ config BR2_PACKAGE_GEMMLOWP bool "gemmlowp" depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 help Low-precision matrix multiplication. https://github.com/google/gemmlowp + +comment "gemmlowp needs a toolchain w/ C++11" + depends on !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 diff --git a/buildroot-external/package/gemmlowp/gemmlowp.mk b/buildroot-external/package/gemmlowp/gemmlowp.mk index 1a36fc48..9489dccb 100644 --- a/buildroot-external/package/gemmlowp/gemmlowp.mk +++ b/buildroot-external/package/gemmlowp/gemmlowp.mk @@ -9,6 +9,7 @@ GEMMLOWP_SITE = $(call github,google,gemmlowp,$(GEMMLOWP_VERSION)) GEMMLOWP_LICENSE = Apache-2.0 GEMMLOWP_LICENSE_FILES = LICENSE GEMMLOWP_INSTALL_STAGING = YES +# Only installs a header GEMMLOWP_INSTALL_TARGET = NO GEMMLOWP_SUBDIR = contrib diff --git a/buildroot-external/package/neon2sse/Config.in b/buildroot-external/package/neon2sse/Config.in deleted file mode 100644 index 51144588..00000000 --- a/buildroot-external/package/neon2sse/Config.in +++ /dev/null @@ -1,6 +0,0 @@ -config BR2_PACKAGE_NEON2SSE - bool "neon2sse" - help - NEON_2_SSE.h file is intended to simplify ARM->IA32 porting. - - https://github.com/intel/ARM_NEON_2_x86_SSE diff --git a/buildroot-external/package/neon2sse/neon2sse.hash b/buildroot-external/package/neon2sse/neon2sse.hash deleted file mode 100644 index 68c27f10..00000000 --- a/buildroot-external/package/neon2sse/neon2sse.hash +++ /dev/null @@ -1,4 +0,0 @@ -# Locally calculated -sha256 019fbc7ec25860070a1d90e12686fc160cfb33e22aa063c80f52b363f1361e9d neon2sse-a15b489e1222b2087007546b4912e21293ea86ff.tar.gz -# License files, locally calculated -sha256 7022f51b439a5915e933ecc270c83e24ca0cb2cceeb08b0132dcd4dbb03ed2dc LICENSE diff --git a/buildroot-external/package/neon2sse/neon2sse.mk b/buildroot-external/package/neon2sse/neon2sse.mk deleted file mode 100644 index 763367ee..00000000 --- a/buildroot-external/package/neon2sse/neon2sse.mk +++ /dev/null @@ -1,16 +0,0 @@ -################################################################################ -# -# neon2see -# -################################################################################ - -NEON2SSE_VERSION = a15b489e1222b2087007546b4912e21293ea86ff -NEON2SSE_SITE = $(call github,intel,arm_neon_2_x86_sse,$(NEON2SSE_VERSION)) - -NEON2SSE_LICENSE = BSD-2-Clause -NEON2SSE_LICENSE_FILES = LICENSE - -NEON2SSE_INSTALL_STAGING = YES -NEON2SSE_INSTALL_TARGET = NO - -$(eval $(cmake-package)) diff --git a/buildroot-external/package/psimd/fp16.hash b/buildroot-external/package/psimd/fp16.hash deleted file mode 100644 index f1b50b75..00000000 --- a/buildroot-external/package/psimd/fp16.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 x fp16-0a92994d729ff76a58f692d3028ca1b64b145d91.tar.gz diff --git a/buildroot-external/package/psimd/psimd.hash b/buildroot-external/package/psimd/psimd.hash new file mode 100644 index 00000000..5692e79b --- /dev/null +++ b/buildroot-external/package/psimd/psimd.hash @@ -0,0 +1,4 @@ +# Locally calculated +sha256 f6c4dab91ae9a03b3019e7cab0572743afd0e1b6e75b97fcca50259c737c924e psimd-072586a71b55b7f8c584153d223e95687148a900.tar.gz +# License files, locally calculated +sha256 984ce1e0b8ee89d234e28b960381f240e03a07a8031f35012f9c3256f56964e2 LICENSE diff --git a/buildroot-external/package/psimd/psimd.mk b/buildroot-external/package/psimd/psimd.mk index 923076f0..be0090a3 100644 --- a/buildroot-external/package/psimd/psimd.mk +++ b/buildroot-external/package/psimd/psimd.mk @@ -6,12 +6,10 @@ PSIMD_VERSION = 072586a71b55b7f8c584153d223e95687148a900 PSIMD_SITE = $(call github,Maratyszcza,psimd,$(PSIMD_VERSION)) -PSIMD_LICENSE = BSD-2-Clause +PSIMD_LICENSE = MIT PSIMD_LICENSE_FILES = LICENSE - -PSIMD_SUPPORTS_IN_SOURCE_BUILD = NO - PSIMD_INSTALL_STAGING = YES +# Only installs a header PSIMD_INSTALL_TARGET = NO $(eval $(cmake-package)) diff --git a/buildroot-external/package/pthreadpool/pthreadpool.hash b/buildroot-external/package/pthreadpool/pthreadpool.hash index 418c69a2..8f151325 100644 --- a/buildroot-external/package/pthreadpool/pthreadpool.hash +++ b/buildroot-external/package/pthreadpool/pthreadpool.hash @@ -1 +1,4 @@ -sha256 b4ad5741bec475b695afe90f94bdb5b8e3d23197e9dd144a7d3230b6e5f5eb56 pthreadpool-545ebe9f225aec6dca49109516fac02e973a3de2.tar.gz +# Locally calculated +sha256 6b0018ce7c926b718ed3ecbed1e48c8a083df60529b33ef2c7232260d3c32f61 pthreadpool-edeb5d6b967bef092ff195ab40e216fa5ac11f61.tar.gz +# License files, locally calculated +sha256 57814a606b4d0fb087d9a534919084b6c11b58a4174cb5a4aef200187780dc3a LICENSE diff --git a/buildroot-external/package/pthreadpool/pthreadpool.mk b/buildroot-external/package/pthreadpool/pthreadpool.mk index a25b2960..75327951 100644 --- a/buildroot-external/package/pthreadpool/pthreadpool.mk +++ b/buildroot-external/package/pthreadpool/pthreadpool.mk @@ -4,20 +4,30 @@ # ################################################################################ -PTHREADPOOL_VERSION = 545ebe9f225aec6dca49109516fac02e973a3de2 +PTHREADPOOL_VERSION = edeb5d6b967bef092ff195ab40e216fa5ac11f61 PTHREADPOOL_SITE = $(call github,Maratyszcza,pthreadpool,$(PTHREADPOOL_VERSION)) PTHREADPOOL_LICENSE = BSD-2-Clause PTHREADPOOL_LICENSE_FILES = LICENSE - -PTHREADPOOL_DEPENDENCIES = fxdiv -PTHREADPOOL_SUPPORTS_IN_SOURCE_BUILD = NO - -PTHREADPOOL_CONF_OPTS = -DCMAKE_SYSTEM_NAME=Linux \ - -DCMAKE_SYSTEM_PROCESSOR=aarch64 \ - -DPTHREADPOOL_LIBRARY_TYPE=shared \ - -DPTHREADPOOL_BUILD_TESTS=OFF \ - -DPTHREADPOOL_BUILD_BENCHMARKS=OFF - PTHREADPOOL_INSTALL_STAGING = YES +PTHREADPOOL_DEPENDENCIES = fxdiv + +PTHREADPOOL_CFLAGS = $(TARGET_CFLAGS) +PTHREADPOOL_CXXFLAGS = $(TARGET_CXXFLAGS) + +ifeq ($(BR2_PACKAGE_CPUINFO),y) +PTHREADPOOL_DEPENDENCIES += cpuinfo +PTHREADPOOL_CFLAGS += -DPTHREADPOOL_USE_CPUINFO=1 +PTHREADPOOL_CXXFLAGS += -DPTHREADPOOL_USE_CPUINFO=1 +else +PTHREADPOOL_CFLAGS += -DPTHREADPOOL_USE_CPUINFO=0 +PTHREADPOOL_CXXFLAGS += -DPTHREADPOOL_USE_CPUINFO=0 +endif + +PTHREADPOOL_CONF_OPTS = \ + -DCMAKE_C_FLAGS="$(PTHREADPOOL_CFLAGS)" \ + -DCMAKE_CXX_FLAGS="$(PTHREADPOOL_CXXFLAGS)" \ + -DFXDIV_SOURCE_DIR="$(FXDIV_DIR)" \ + -DPTHREADPOOL_BUILD_TESTS=OFF \ + -DPTHREADPOOL_BUILD_BENCHMARKS=OFF $(eval $(cmake-package)) diff --git a/buildroot-external/package/ruy/Config.in b/buildroot-external/package/ruy/Config.in index 21b9e1dd..cc137a40 100644 --- a/buildroot-external/package/ruy/Config.in +++ b/buildroot-external/package/ruy/Config.in @@ -1,13 +1,22 @@ +config BR2_PACKAGE_RUY_ARCH_SUPPORTS + bool + default y if BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS + config BR2_PACKAGE_RUY bool "ruy" + depends on BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS depends on BR2_INSTALL_LIBSTDCPP - select BR2_PACKAGE_CPUINFO + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14 + depends on BR2_TOOLCHAIN_HAS_THREADS # cpuinfo + select BR2_PACKAGE_CPUINFO help - ruy is a matrix multiplication library. - Its focus is to cover the matrix multiplication - needs of neural network inference engines. - - Its initial user has been TensorFlow Lite, where - it is used by default on the ARM CPU architecture. + Ruy is a matrix multiplication library. Its focus is to cover + the matrix multiplication needs of neural network inference + engines. Its initial user has been TensorFlow Lite, where it + is used by default on the ARM CPU architecture. https://github.com/google/ruy + +comment "ruy needs a toolchain w/ C++14, threads" + depends on !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/buildroot-external/package/ruy/ruy.hash b/buildroot-external/package/ruy/ruy.hash index 98266b58..675b457b 100644 --- a/buildroot-external/package/ruy/ruy.hash +++ b/buildroot-external/package/ruy/ruy.hash @@ -1,4 +1,4 @@ # Locally calculated -sha256 4da8572946007603378c5d0280f48c5b77f4d38763209f5306b57c7513d9a82e ruy-3168a5c8f4c447fd8cea94078121ee2e2cd87df0.tar.gz +sha256 e151a5b55059a6e83ded001787e1a8889ba1e5e4eaa5bc836b9b660e7e1cb519 ruy-21a85fef159f9942f636a43b14c64b481c2a05b2.tar.gz # License files, locally calculated sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE diff --git a/buildroot-external/package/ruy/ruy.mk b/buildroot-external/package/ruy/ruy.mk index 60135b8e..e73c3693 100644 --- a/buildroot-external/package/ruy/ruy.mk +++ b/buildroot-external/package/ruy/ruy.mk @@ -4,16 +4,14 @@ # ################################################################################ -RUY_VERSION = 3168a5c8f4c447fd8cea94078121ee2e2cd87df0 +RUY_VERSION = 21a85fef159f9942f636a43b14c64b481c2a05b2 RUY_SITE = $(call github,google,ruy,$(RUY_VERSION)) RUY_LICENSE = Apache-2 RUY_LICENSE_FILES = LICENSE +RUY_INSTALL_STAGING = YES RUY_DEPENDENCIES = cpuinfo -RUY_SUPPORTS_IN_SOURCE_BUILD = NO RUY_CONF_OPTS = -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DRUY_FIND_CPUINFO=ON \ -DRUY_MINIMAL_BUILD=ON -RUY_INSTALL_STAGING = YES - $(eval $(cmake-package)) diff --git a/buildroot-external/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch b/buildroot-external/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch new file mode 100644 index 00000000..99db29e3 --- /dev/null +++ b/buildroot-external/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch @@ -0,0 +1,74 @@ +From d8451a9048d09692994c40a6f9bc928e70ed79b5 Mon Sep 17 00:00:00 2001 +From: James Hilliard +Date: Mon, 28 Nov 2022 21:36:34 -0700 +Subject: [PATCH] Add SYSTEM_FARMHASH cmake config flag + +Since farmhash does not install a cmake package we need to +search for the library and headers to use the provided +version. + +Signed-off-by: James Hilliard +[james.hilliard1@gmail.com: backport from upstream commit +d8451a9048d09692994c40a6f9bc928e70ed79b5] +--- + tensorflow/lite/g3doc/guide/build_cmake.md | 1 + + .../tools/cmake/modules/Findfarmhash.cmake | 30 +++++++++++++++---- + 2 files changed, 26 insertions(+), 5 deletions(-) + +diff --git a/tensorflow/lite/g3doc/guide/build_cmake.md b/tensorflow/lite/g3doc/guide/build_cmake.md +index 6950a365bb8..6de955e70b0 100644 +--- a/tensorflow/lite/g3doc/guide/build_cmake.md ++++ b/tensorflow/lite/g3doc/guide/build_cmake.md +@@ -81,6 +81,7 @@ variables to point to your library installations. + ```sh + cmake ../tensorflow_src/tensorflow/lite -DTFLITE_ENABLE_INSTALL=ON \ + -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \ ++ -DSYSTEM_FARMHASH=ON \ + -Dabsl_DIR=/lib/cmake/absl \ + -DEigen3_DIR=/share/eigen3/cmake \ + -DFlatbuffers_DIR=/lib/cmake/flatbuffers \ +diff --git a/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake b/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake +index 1b0dc28f624..97b43298f13 100644 +--- a/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake ++++ b/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake +@@ -13,12 +13,32 @@ + # See the License for the specific language governing permissions and + # limitations under the License. + +-# tensorflow-lite uses find_package for this package, so override the system +-# installation and build from source instead. +-include(farmhash) +-if(farmhash_POPULATED) ++# tensorflow-lite uses find_package for this package, so build from ++# source if the system version is not enabled. ++ ++if(SYSTEM_FARMHASH) ++ include(FindPackageHandleStandardArgs) ++ find_path(FARMHASH_ROOT_DIR NAMES include/farmhash.h) ++ find_library(FARMHASH_LIB NAMES farmhash PATHS ${FARMHASH_ROOT_DIR}/lib ${FARMHASH_LIB_PATH}) ++ find_path(FARMHASH_INCLUDE_DIRS NAMES farmhash.h PATHS ${FARMHASH_ROOT_DIR}/include) ++ find_package_handle_standard_args(farmhash DEFAULT_MSG FARMHASH_LIB FARMHASH_INCLUDE_DIRS) ++endif() ++ ++if(farmhash_FOUND) ++ add_library(farmhash SHARED IMPORTED GLOBAL) ++ set_target_properties(farmhash PROPERTIES ++ IMPORTED_LOCATION ${FARMHASH_LIB} ++ INTERFACE_INCLUDE_DIRECTORIES ${FARMHASH_INCLUDE_DIRS} ++ ) ++else() ++ include(farmhash) ++ if(farmhash_POPULATED) ++ get_target_property(FARMHASH_INCLUDE_DIRS farmhash INTERFACE_DIRECTORIES) ++ endif() ++endif() ++ ++if(farmhash_FOUND OR farmhash_POPULATED) + set(FARMHASH_FOUND TRUE) +- get_target_property(FARMHASH_INCLUDE_DIRS farmhash INTERFACE_DIRECTORIES) + add_library(farmhash::farmhash ALIAS farmhash) + set(FARMHASH_LIBRARIES farmhash::farmhash) + endif() +-- +2.34.1 + diff --git a/buildroot-external/package/tensorflow-lite/0002-Fix-FindFlatBuffers-cmake-file.patch b/buildroot-external/package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch similarity index 100% rename from buildroot-external/package/tensorflow-lite/0002-Fix-FindFlatBuffers-cmake-file.patch rename to buildroot-external/package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch diff --git a/buildroot-external/package/tensorflow-lite/0004-Do-not-search-for-XNNPACK.patch b/buildroot-external/package/tensorflow-lite/0004-Do-not-search-for-XNNPACK.patch deleted file mode 100644 index c26c3a12..00000000 --- a/buildroot-external/package/tensorflow-lite/0004-Do-not-search-for-XNNPACK.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 5fc3c283ac382e564152d71ad7c711cf758e52a0 Mon Sep 17 00:00:00 2001 -From: j1nx -Date: Wed, 7 Dec 2022 17:19:58 +0100 -Subject: [PATCH 1/1] Do not search for XNNPACK We will take care of that - everything will be installed. (No clue yet how to solve this) - ---- - tensorflow/lite/CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt -index 273b80de71a..13cd59dac7b 100644 ---- a/tensorflow/lite/CMakeLists.txt -+++ b/tensorflow/lite/CMakeLists.txt -@@ -398,8 +398,8 @@ else() - ) - endif() - if(TFLITE_ENABLE_XNNPACK) -- find_package(fp16_headers REQUIRED) -- find_package(XNNPACK REQUIRED) -+ #find_package(fp16_headers REQUIRED) -+ #find_package(XNNPACK REQUIRED) - populate_tflite_source_vars("delegates/xnnpack" - TFLITE_DELEGATES_XNNPACK_SRCS - FILTER ".*(_test|_tester)\\.(cc|h)" --- -2.34.1 - diff --git a/buildroot-external/package/tensorflow-lite/0003-Don-t-link-tensorflow-lite-against-gemmlowp.patch b/buildroot-external/package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch similarity index 100% rename from buildroot-external/package/tensorflow-lite/0003-Don-t-link-tensorflow-lite-against-gemmlowp.patch rename to buildroot-external/package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch diff --git a/buildroot-external/package/tensorflow-lite/Config.in b/buildroot-external/package/tensorflow-lite/Config.in index 447025d0..8685ec0c 100644 --- a/buildroot-external/package/tensorflow-lite/Config.in +++ b/buildroot-external/package/tensorflow-lite/Config.in @@ -1,35 +1,36 @@ +config BR2_PACKAGE_TENSORFLOW_LITE_ARCH_SUPPORTS + bool + default y if BR2_aarch64 + default y if BR2_arm + default y if BR2_i386 + default y if BR2_x86_64 + depends on BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS + config BR2_PACKAGE_TENSORFLOW_LITE - bool "tensorflow-lite" - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9 - depends on BR2_TOOLCHAIN_USES_GLIBC - depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_SHARED_LIBS - depends on ( BR2_arm && BR2_ARM_CPU_ARMV7A ) || ( BR2_aarch64 && BR2_ARM_CPU_ARMV8A ) - select BR2_PACKAGE_CPUINFO - select BR2_PACKAGE_EIGEN - select BR2_PACKAGE_FARMHASH - select BR2_PACKAGE_FFT2D - select BR2_PACKAGE_FLATBUFFERS - select BR2_PACKAGE_GEMMLOWP - select BR2_PACKAGE_LIBABSEIL_CPP - select BR2_PACKAGE_NEON2SSE - select BR2_PACKAGE_RUY - select BR2_PACKAGE_XNNPACK - select BR2_PACKAGE_OPENCL_HEADERS - select BR2_PACKAGE_VULKAN_HEADERS - help - Tensorflow Lite dynamic library and headers: Inference engine to run previously trained machine learning models. + bool "tensorflow-lite" + depends on BR2_PACKAGE_TENSORFLOW_LITE_ARCH_SUPPORTS + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 + depends on BR2_TOOLCHAIN_HAS_THREADS # cpuinfo + depends on BR2_TOOLCHAIN_USES_GLIBC + depends on BR2_SHARED_LIBS + select BR2_PACKAGE_CPUINFO + select BR2_PACKAGE_EIGEN + select BR2_PACKAGE_FARMHASH + select BR2_PACKAGE_FFT2D + select BR2_PACKAGE_FLATBUFFERS + select BR2_PACKAGE_GEMMLOWP + select BR2_PACKAGE_LIBABSEIL_CPP + select BR2_PACKAGE_NEON_2_SSE + select BR2_PACKAGE_RUY if BR2_PACKAGE_RUY_ARCH_SUPPORTS + select BR2_PACKAGE_XNNPACK if BR2_PACKAGE_XNNPACK_ARCH_SUPPORTS + help + Tensorflow Lite dynamic library and headers: Inference engine + to run previously trained machine learning models. -comment "tensorflow-lite needs needs a toolchain w/ gcc >= 9" - depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_9 - -comment "tensorflow-lite needs a toolchain w/ glibc, C++, threads" - depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP || \ - !BR2_TOOLCHAIN_HAS_THREADS +comment "tensorflow-lite needs a toolchain w/ glibc, C++17, threads" + depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || !BR2_TOOLCHAIN_HAS_THREADS comment "tensorflow-lite needs a toolchain w/ shared libraries" - depends on !BR2_SHARED_LIBS - -comment "tensorflow-lite in buildroot currently only supports arm + armv7a cpu or arm64 + armv8a cpu targets" - depends on ( BR2_arm && !BR2_ARM_CPU_ARMV7A ) || ( BR2_aarch64 && !BR2_ARM_CPU_ARMV8A) || (!BR2_arm && !BR2_aarch64) + depends on !BR2_SHARED_LIBS diff --git a/buildroot-external/package/tensorflow-lite/tensorflow-lite.hash b/buildroot-external/package/tensorflow-lite/tensorflow-lite.hash index e575590e..7d903570 100644 --- a/buildroot-external/package/tensorflow-lite/tensorflow-lite.hash +++ b/buildroot-external/package/tensorflow-lite/tensorflow-lite.hash @@ -1,4 +1,4 @@ # Locally calculated -sha256 99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48 tensorflow-lite-v2.11.0.tar.gz +sha256 99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48 tensorflow-lite-2.11.0.tar.gz # License files, locally calculated sha256 71c6915d04265772a0339bed47276942c678b45cc01534210ebe6984fd1aec65 LICENSE diff --git a/buildroot-external/package/tensorflow-lite/tensorflow-lite.mk b/buildroot-external/package/tensorflow-lite/tensorflow-lite.mk index 0e110620..fcc20d04 100644 --- a/buildroot-external/package/tensorflow-lite/tensorflow-lite.mk +++ b/buildroot-external/package/tensorflow-lite/tensorflow-lite.mk @@ -4,29 +4,24 @@ # ################################################################################ -TENSORFLOW_LITE_VERSION = v2.11.0 -TENSORFLOW_LITE_SITE = $(call github,tensorflow,tensorflow,$(TENSORFLOW_LITE_VERSION)) -TENSORFLOW_LITE_SUBDIR = tensorflow/lite +TENSORFLOW_LITE_VERSION = 2.11.0 +TENSORFLOW_LITE_SITE = $(call github,tensorflow,tensorflow,v$(TENSORFLOW_LITE_VERSION)) +TENSORFLOW_LITE_INSTALL_STAGING = YES TENSORFLOW_LITE_LICENSE = Apache-2.0 TENSORFLOW_LITE_LICENSE_FILES = LICENSE - -TENSORFLOW_LITE_INSTALL_STAGING = YES +TENSORFLOW_LITE_SUBDIR = tensorflow/lite TENSORFLOW_LITE_SUPPORTS_IN_SOURCE_BUILD = NO TENSORFLOW_LITE_DEPENDENCIES += \ host-pkgconf \ - host-flatbuffers \ - cpuinfo \ - eigen \ - farmhash \ - fft2d \ - flatbuffers \ - gemmlowp \ - libabseil-cpp \ - neon2sse \ - ruy \ - xnnpack \ - opencl_headers \ - vulkan-headers + host-flatbuffers \ + cpuinfo \ + eigen \ + farmhash \ + fft2d \ + flatbuffers \ + gemmlowp \ + libabseil-cpp \ + neon-2-sse TENSORFLOW_LITE_CONF_OPTS = \ -DCMAKE_C_FLAGS="$(TARGET_CFLAGS) -funsafe-math-optimizations \ @@ -39,25 +34,36 @@ TENSORFLOW_LITE_CONF_OPTS = \ -I$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy/core/include \ -I$(STAGING_DIR)/usr/include/pybind11 \ -I$(STAGING_DIR)/usr/include/gemmlowp" \ + -Dabsl_DIR=$(STAGING_DIR)/usr/lib/cmake/absl \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ - -Dabsl_DIR=$(STAGING_DIR)/usr/lib/cmake/absl \ - -DEigen3_DIR=$(STAGING_DIR)/usr/share/eigen3/cmake \ - -DFARMHASH_SOURCE_DIR=$(FARMHASH_DIR) \ - -Dfarmhash_DIR=$(STAGING_DIR)/usr/lib \ - -DFETCHCONTENT_FULLY_DISCONNECTED=ON \ - -DFETCHCONTENT_QUIET=OFF \ - -DFFT2D_SOURCE_DIR=$(STAGING_DIR)/usr/include/fft2d \ - -DFlatBuffers_DIR=$(STAGING_DIR)/usr/lib/cmake/flatbuffers \ - -DNEON_2_SSE_DIR=$(STAGING_DIR)/usr/lib/cmake/NEON_2_SSE \ - -DTFLITE_ENABLE_EXTERNAL_DELEGATE=ON \ - -DTFLITE_ENABLE_GPU=OFF \ - -DTFLITE_ENABLE_INSTALL=ON \ - -DTFLITE_ENABLE_MMAP=ON \ - -DTFLITE_ENABLE_NNAPI=OFF \ - -DTFLITE_ENABLE_RUY=ON \ - -DTFLITE_ENABLE_XNNPACK=ON + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DEigen3_DIR=$(STAGING_DIR)/usr/share/eigen3/cmake \ + -DFETCHCONTENT_FULLY_DISCONNECTED=ON \ + -DFETCHCONTENT_QUIET=OFF \ + -DFFT2D_SOURCE_DIR=$(STAGING_DIR)/usr/include/fft2d \ + -DFlatBuffers_DIR=$(STAGING_DIR)/usr/lib/cmake/flatbuffers \ + -DNEON_2_SSE_DIR=$(STAGING_DIR)/usr/lib/cmake/NEON_2_SSE \ + -DSYSTEM_FARMHASH=ON \ + -DTFLITE_ENABLE_EXTERNAL_DELEGATE=ON \ + -DTFLITE_ENABLE_GPU=OFF \ + -DTFLITE_ENABLE_INSTALL=ON \ + -DTFLITE_ENABLE_MMAP=ON \ + -DTFLITE_ENABLE_NNAPI=OFF + +ifeq ($(BR2_PACKAGE_RUY),y) +TENSORFLOW_LITE_DEPENDENCIES += ruy +TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_RUY=ON +else +TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_RUY=OFF +endif + +ifeq ($(BR2_PACKAGE_XNNPACK),y) +TENSORFLOW_LITE_DEPENDENCIES += xnnpack +TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_XNNPACK=ON -Dxnnpack_POPULATED=ON +else +TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_XNNPACK=OFF +endif TENSORFLOW_LITE_MAKE_OPTS += _pywrap_tensorflow_interpreter_wrapper benchmark_model @@ -74,7 +80,7 @@ endef define TENSORFLOW_LITE_INSTALL_TFLITE_RUNTIME mkdir -p $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime - mkdir -p $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.11.0-py3.10.egg-info + mkdir -p $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-${TENSORFLOW_LITE_VERSION}-py$(PYTHON3_VERSION_MAJOR).egg-info $(INSTALL) -D -m 755 $(@D)/$(TENSORFLOW_LITE_SUBDIR)/buildroot-build/_pywrap_tensorflow_interpreter_wrapper.so \ $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime/ @@ -95,19 +101,19 @@ define TENSORFLOW_LITE_INSTALL_TFLITE_RUNTIME $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime/ $(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime/dependency_links.txt \ - $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.11.0-py3.10.egg-info/ + $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-${TENSORFLOW_LITE_VERSION}-py$(PYTHON3_VERSION_MAJOR).egg-info/ $(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime/PKG-INFO \ - $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.11.0-py3.10.egg-info/ + $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-${TENSORFLOW_LITE_VERSION}-py$(PYTHON3_VERSION_MAJOR).egg-info/ $(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime/requires.txt \ - $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.11.0-py3.10.egg-info/ + $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-${TENSORFLOW_LITE_VERSION}-py$(PYTHON3_VERSION_MAJOR).egg-info/ $(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime/SOURCES.txt \ - $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.11.0-py3.10.egg-info/ + $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-${TENSORFLOW_LITE_VERSION}-py$(PYTHON3_VERSION_MAJOR).egg-info/ $(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/tensorflow-lite/tflite_runtime/top_level.txt \ - $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-2.11.0-py3.10.egg-info/ + $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/tflite_runtime-${TENSORFLOW_LITE_VERSION}-py$(PYTHON3_VERSION_MAJOR).egg-info/ endef diff --git a/buildroot-external/package/tensorflow-lite/tflite_runtime/PKG-INFO b/buildroot-external/package/tensorflow-lite/tflite_runtime/PKG-INFO index bb4fe8bd..07303e97 100644 --- a/buildroot-external/package/tensorflow-lite/tflite_runtime/PKG-INFO +++ b/buildroot-external/package/tensorflow-lite/tflite_runtime/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tflite-runtime -Version: 2.10.0 +Version: 2.11.0 Summary: TensorFlow Lite is for mobile and embedded devices. Home-page: https://www.tensorflow.org/lite/ Author: Google, LLC @@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 Classifier: Topic :: Scientific/Engineering Classifier: Topic :: Scientific/Engineering :: Mathematics Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence diff --git a/buildroot-external/package/xnnpack/Config.in b/buildroot-external/package/xnnpack/Config.in index 472ec412..1b186ac0 100644 --- a/buildroot-external/package/xnnpack/Config.in +++ b/buildroot-external/package/xnnpack/Config.in @@ -1,11 +1,27 @@ +config BR2_PACKAGE_XNNPACK_ARCH_SUPPORTS + bool + default y if BR2_aarch64 + default y if BR2_arm + default y if BR2_i386 + default y if BR2_x86_64 + depends on BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS + config BR2_PACKAGE_XNNPACK bool "xnnpack" - select BR2_PACKAGE_CLOG + depends on BR2_PACKAGE_XNNPACK_ARCH_SUPPORTS + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14 + depends on BR2_TOOLCHAIN_HAS_THREADS # cpuinfo select BR2_PACKAGE_CPUINFO - select BR2_PACKAGE_PTHREADPOOL select BR2_PACKAGE_FP16 + select BR2_PACKAGE_FXDIV + select BR2_PACKAGE_PTHREADPOOL help - High-efficiency floating-point neural network - inference operators for mobile, server, and Web + XNNPACK is a highly optimized solution for neural network + inference on ARM, x86, WebAssembly, and RISC-V platforms. https://github.com/google/XNNPACK + +comment "xnnpack needs a toolchain w/ C++14, threads" + depends on !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/buildroot-external/package/xnnpack/xnnpack.hash b/buildroot-external/package/xnnpack/xnnpack.hash index bf74211c..e31eb690 100644 --- a/buildroot-external/package/xnnpack/xnnpack.hash +++ b/buildroot-external/package/xnnpack/xnnpack.hash @@ -1 +1,4 @@ -sha256 5016bf69478ebbd2ea424f95aa011cebbc820025719ce24e32f4a974ed7e9863 xnnpack-a50369c0fdd15f0f35b1a91c964644327a88d480.tar.gz +# Locally calculated +sha256 fb519d082e5fcaa11e849386ad00e38b9ebde2cc9363032394516cd0d00295c3 xnnpack-e4b2b942b4a6d84b680ed690fee42ae99865945c.tar.gz +# License files, locally calculated +sha256 63f519e15726f4c4f830bd958f694c84fecb4e0a4cacc527d2696bb71ef95ada LICENSE diff --git a/buildroot-external/package/xnnpack/xnnpack.mk b/buildroot-external/package/xnnpack/xnnpack.mk index 7056a4ad..6d5748a2 100644 --- a/buildroot-external/package/xnnpack/xnnpack.mk +++ b/buildroot-external/package/xnnpack/xnnpack.mk @@ -4,20 +4,17 @@ # ################################################################################ -XNNPACK_VERSION = a50369c0fdd15f0f35b1a91c964644327a88d480 +XNNPACK_VERSION = e4b2b942b4a6d84b680ed690fee42ae99865945c XNNPACK_SITE = $(call github,google,XNNPACK,$(XNNPACK_VERSION)) - -XNNPACK_LICENSE = BSD-2-Clause +XNNPACK_LICENSE = BSD-3-Clause XNNPACK_LICENSE_FILES = LICENSE - -XNNPACK_DEPENDENCIES = clog cpuinfo pthreadpool fp16 - XNNPACK_INSTALL_STAGING = YES -XNNPACK_SUPPORTS_IN_SOURCE_BUILD = NO - -XNNPACK_CONF_OPTS = -DXNNPACK_BUILD_TESTS=OFF \ - -DXNNPACK_BUILD_BENCHMARKS=OFF \ - -DXNNPACK_USE_SYSTEM_LIBS=ON \ - -DXNNPACK_USE_SYSTEM_LIBS=ON +XNNPACK_DEPENDENCIES = cpuinfo fp16 fxdiv pthreadpool +XNNPACK_CONF_OPTS = \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DXNNPACK_LIBRARY_TYPE:STRING=shared \ + -DXNNPACK_BUILD_TESTS=OFF \ + -DXNNPACK_BUILD_BENCHMARKS=OFF \ + -DXNNPACK_USE_SYSTEM_LIBS=ON $(eval $(cmake-package))