diff --git a/board/cubietech/cubieboard1/patches/linux/linux.hash b/board/cubietech/cubieboard1/patches/linux/linux.hash index 450cb124234b..2e30d90bb1be 100644 --- a/board/cubietech/cubieboard1/patches/linux/linux.hash +++ b/board/cubietech/cubieboard1/patches/linux/linux.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 39207fce1ce42838e085261bae0af5ce4a0843aa777cfc0f5c49bc7729602bcd linux-6.12.5.tar.xz +sha256 9423f4bfb4d875417e39cb0b017b5499fea47da56119f0cd28a201735d898f14 linux-6.12.14.tar.xz diff --git a/board/cubietech/cubieboard1/patches/uboot/uboot.hash b/board/cubietech/cubieboard1/patches/uboot/uboot.hash index 904fa56c02a3..50674352d71d 100644 --- a/board/cubietech/cubieboard1/patches/uboot/uboot.hash +++ b/board/cubietech/cubieboard1/patches/uboot/uboot.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 b28daf4ac17e43156363078bf510297584137f6df50fced9b12df34f61a92fb0 u-boot-2024.10.tar.bz2 +sha256 cdef7d507c93f1bbd9f015ea9bc21fa074268481405501945abc6f854d5b686f u-boot-2025.01.tar.bz2 diff --git a/board/cubietech/cubieboard2/patches/linux/linux.hash b/board/cubietech/cubieboard2/patches/linux/linux.hash index 450cb124234b..2e30d90bb1be 100644 --- a/board/cubietech/cubieboard2/patches/linux/linux.hash +++ b/board/cubietech/cubieboard2/patches/linux/linux.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 39207fce1ce42838e085261bae0af5ce4a0843aa777cfc0f5c49bc7729602bcd linux-6.12.5.tar.xz +sha256 9423f4bfb4d875417e39cb0b017b5499fea47da56119f0cd28a201735d898f14 linux-6.12.14.tar.xz diff --git a/board/cubietech/cubieboard2/patches/uboot/uboot.hash b/board/cubietech/cubieboard2/patches/uboot/uboot.hash index 904fa56c02a3..50674352d71d 100644 --- a/board/cubietech/cubieboard2/patches/uboot/uboot.hash +++ b/board/cubietech/cubieboard2/patches/uboot/uboot.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 b28daf4ac17e43156363078bf510297584137f6df50fced9b12df34f61a92fb0 u-boot-2024.10.tar.bz2 +sha256 cdef7d507c93f1bbd9f015ea9bc21fa074268481405501945abc6f854d5b686f u-boot-2025.01.tar.bz2 diff --git a/boot/xilinx-embeddedsw/Config.in b/boot/xilinx-embeddedsw/Config.in index 757ff59e359a..b0691d7e7b75 100644 --- a/boot/xilinx-embeddedsw/Config.in +++ b/boot/xilinx-embeddedsw/Config.in @@ -1,7 +1,7 @@ config BR2_TARGET_XILINX_EMBEDDEDSW bool "xilinx-embeddedsw" depends on BR2_aarch64 - depends on BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH = "microblazeel-xilinx-elf" + depends on BR2_TOOLCHAIN_BARE_METAL_BUILDROOT help Build boot firmware applications from source for Xilinx boards. Users can mix and match applications to be built diff --git a/configs/cubieboard1_defconfig b/configs/cubieboard1_defconfig index 6fcdfecfb7b8..4a4d932f320d 100644 --- a/configs/cubieboard1_defconfig +++ b/configs/cubieboard1_defconfig @@ -8,7 +8,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/cubietech/cubieboard1/genimage.cfg" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.5" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.14" BR2_LINUX_KERNEL_DEFCONFIG="sunxi" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun4i-a10-cubieboard" @@ -18,7 +18,7 @@ BR2_TARGET_ROOTFS_EXT2_4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Cubieboard" BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y diff --git a/configs/cubieboard2_defconfig b/configs/cubieboard2_defconfig index bace740ce939..6161e3a559b6 100644 --- a/configs/cubieboard2_defconfig +++ b/configs/cubieboard2_defconfig @@ -9,7 +9,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/cubietech/cubieboard2/genimage.cfg" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.5" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.14" BR2_LINUX_KERNEL_DEFCONFIG="multi_v7" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun7i-a20-cubieboard2" @@ -19,7 +19,7 @@ BR2_TARGET_ROOTFS_EXT2_4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Cubieboard2" BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y diff --git a/package/assimp/0001-Fix-leak-5762.patch b/package/assimp/0001-Fix-leak-5762.patch new file mode 100644 index 000000000000..a78970e1d345 --- /dev/null +++ b/package/assimp/0001-Fix-leak-5762.patch @@ -0,0 +1,139 @@ +From 4024726eca89331503bdab33d0b9186e901bbc45 Mon Sep 17 00:00:00 2001 +From: Kim Kulling +Date: Sat, 7 Sep 2024 21:02:34 +0200 +Subject: [PATCH] Fix leak (#5762) + +* Fix leak + +* Update utLogger.cpp + +Upstream: https://github.com/assimp/assimp/commit/4024726eca89331503bdab33d0b9186e901bbc45 +Signed-off-by: Peter Korsgaard +--- + code/Common/Assimp.cpp | 13 ++++++--- + fuzz/assimp_fuzzer.cc | 2 +- + test/CMakeLists.txt | 1 + + test/unit/Common/utLogger.cpp | 52 +++++++++++++++++++++++++++++++++++ + 4 files changed, 63 insertions(+), 5 deletions(-) + create mode 100644 test/unit/Common/utLogger.cpp + +diff --git a/code/Common/Assimp.cpp b/code/Common/Assimp.cpp +index ef3ee7b5d..91896e405 100644 +--- a/code/Common/Assimp.cpp ++++ b/code/Common/Assimp.cpp +@@ -359,20 +359,25 @@ void CallbackToLogRedirector(const char *msg, char *dt) { + s->write(msg); + } + ++static LogStream *DefaultStream = nullptr; ++ + // ------------------------------------------------------------------------------------------------ + ASSIMP_API aiLogStream aiGetPredefinedLogStream(aiDefaultLogStream pStream, const char *file) { + aiLogStream sout; + + ASSIMP_BEGIN_EXCEPTION_REGION(); +- LogStream *stream = LogStream::createDefaultStream(pStream, file); +- if (!stream) { ++ if (DefaultStream == nullptr) { ++ DefaultStream = LogStream::createDefaultStream(pStream, file); ++ } ++ ++ if (!DefaultStream) { + sout.callback = nullptr; + sout.user = nullptr; + } else { + sout.callback = &CallbackToLogRedirector; +- sout.user = (char *)stream; ++ sout.user = (char *)DefaultStream; + } +- gPredefinedStreams.push_back(stream); ++ gPredefinedStreams.push_back(DefaultStream); + ASSIMP_END_EXCEPTION_REGION(aiLogStream); + return sout; + } +diff --git a/fuzz/assimp_fuzzer.cc b/fuzz/assimp_fuzzer.cc +index 8178674e8..91ffd9d69 100644 +--- a/fuzz/assimp_fuzzer.cc ++++ b/fuzz/assimp_fuzzer.cc +@@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + using namespace Assimp; + + extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t dataSize) { +- aiLogStream stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT,NULL); ++ aiLogStream stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT, nullptr); + aiAttachLogStream(&stream); + + Importer importer; +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 7b7fd850a..1a45adac7 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -100,6 +100,7 @@ SET( COMMON + unit/Common/utBase64.cpp + unit/Common/utHash.cpp + unit/Common/utBaseProcess.cpp ++ unit/Common/utLogger.cpp + ) + + SET(Geometry +diff --git a/test/unit/Common/utLogger.cpp b/test/unit/Common/utLogger.cpp +new file mode 100644 +index 000000000..932240a7f +--- /dev/null ++++ b/test/unit/Common/utLogger.cpp +@@ -0,0 +1,52 @@ ++/* ++--------------------------------------------------------------------------- ++Open Asset Import Library (assimp) ++--------------------------------------------------------------------------- ++ ++Copyright (c) 2006-2024, assimp team ++ ++All rights reserved. ++ ++Redistribution and use of this software in source and binary forms, ++with or without modification, are permitted provided that the following ++conditions are met: ++ ++* Redistributions of source code must retain the above ++copyright notice, this list of conditions and the ++following disclaimer. ++ ++* Redistributions in binary form must reproduce the above ++copyright notice, this list of conditions and the ++following disclaimer in the documentation and/or other ++materials provided with the distribution. ++ ++* Neither the name of the assimp team, nor the names of its ++contributors may be used to endorse or promote products ++derived from this software without specific prior ++written permission of the assimp team. ++ ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++--------------------------------------------------------------------------- ++*/ ++ ++#include "UnitTestPCH.h" ++#include ++ ++using namespace Assimp; ++class utLogger : public ::testing::Test {}; ++ ++TEST_F(utLogger, aiGetPredefinedLogStream_leak_test) { ++ aiLogStream stream1 = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT, nullptr); ++ aiLogStream stream2 = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT, nullptr); ++ ASSERT_EQ(stream1.callback, stream2.callback); ++} +-- +2.39.5 + diff --git a/package/assimp/0002-Fix-use-after-free-in-the-CallbackToLogRedirector-59.patch b/package/assimp/0002-Fix-use-after-free-in-the-CallbackToLogRedirector-59.patch new file mode 100644 index 000000000000..c4cd2af5aa86 --- /dev/null +++ b/package/assimp/0002-Fix-use-after-free-in-the-CallbackToLogRedirector-59.patch @@ -0,0 +1,39 @@ +From f12e52198669239af525e525ebb68407977f8e34 Mon Sep 17 00:00:00 2001 +From: tyler92 +Date: Wed, 11 Dec 2024 12:17:14 +0200 +Subject: [PATCH] Fix use after free in the CallbackToLogRedirector (#5918) + +The heap-use-after-free vulnerability occurs in the +CallbackToLogRedirector function. During the process of logging, +a previously freed memory region is accessed, leading to a +use-after-free condition. This vulnerability stems from incorrect +memory management, specifically, freeing a log stream and then +attempting to access it later on. + +This patch sets NULL value for The DefaultStream global pointer. + +Co-authored-by: Kim Kulling +Upstream: https://github.com/assimp/assimp/commit/f12e52198669239af525e525ebb68407977f8e34 +Signed-off-by: Peter Korsgaard +--- + code/Common/Assimp.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/code/Common/Assimp.cpp b/code/Common/Assimp.cpp +index 91896e405..22e16bd36 100644 +--- a/code/Common/Assimp.cpp ++++ b/code/Common/Assimp.cpp +@@ -416,6 +416,10 @@ ASSIMP_API aiReturn aiDetachLogStream(const aiLogStream *stream) { + DefaultLogger::get()->detachStream(it->second); + delete it->second; + ++ if ((Assimp::LogStream *)stream->user == DefaultStream) { ++ DefaultStream = nullptr; ++ } ++ + gActiveLogStreams.erase(it); + + if (gActiveLogStreams.empty()) { +-- +2.39.5 + diff --git a/package/assimp/assimp.mk b/package/assimp/assimp.mk index ba0d50603393..a4614a01a283 100644 --- a/package/assimp/assimp.mk +++ b/package/assimp/assimp.mk @@ -12,6 +12,10 @@ ASSIMP_CPE_ID_VENDOR = assimp ASSIMP_DEPENDENCIES = zlib ASSIMP_INSTALL_STAGING = YES +# 0001-Fix-leak-5762.patch +# 0002-Fix-use-after-free-in-the-CallbackToLogRedirector-59.patch +ASSIMP_IGNORE_CVES += CVE-2024-48423 + # relocation truncated to fit: R_68K_GOT16O. We also need to disable # optimizations to not run into "Error: value -43420 out of range" # assembler issues. diff --git a/package/binutils-bare-metal/binutils-bare-metal.mk b/package/binutils-bare-metal/binutils-bare-metal.mk index 3525e9fdf2e6..709d072765c9 100644 --- a/package/binutils-bare-metal/binutils-bare-metal.mk +++ b/package/binutils-bare-metal/binutils-bare-metal.mk @@ -22,13 +22,45 @@ HOST_BINUTILS_BARE_METAL_MAKE_OPTS += MAKEINFO=true HOST_BINUTILS_BARE_METAL_INSTALL_OPTS += MAKEINFO=true install HOST_BINUTILS_BARE_METAL_CONF_OPTS = \ - --target=$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE) \ + --prefix=$(HOST_DIR) \ + --sysconfdir=$(HOST_DIR)/etc \ + --localstatedir=$(HOST_DIR)/var \ + $(if $$($$(PKG)_OVERRIDE_SRCDIR),,--disable-dependency-tracking) \ + $(QUIET) \ --disable-gprof \ --disable-shared \ --enable-lto \ - --enable-static \ --disable-initfini-array \ --disable-multilib \ --disable-werror +define HOST_BINUTILS_BARE_METAL_CONFIGURE_CMDS + $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \ + mkdir -p $(@D)/build-$(arch_tuple) && \ + cd $(@D)/build-$(arch_tuple) && \ + $(HOST_CONFIGURE_OPTS) \ + $(HOST_BINUTILS_BARE_METAL_CONF_ENV) \ + CONFIG_SITE=/dev/null \ + $(@D)/configure \ + $(HOST_BINUTILS_BARE_METAL_CONF_OPTS) \ + --target=$(arch_tuple) + ) +endef + +define HOST_BINUTILS_BARE_METAL_BUILD_CMDS + $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \ + $(HOST_MAKE_ENV) $(MAKE) \ + $(HOST_BINUTILS_BARE_METAL_MAKE_OPTS) \ + -C $(@D)/build-$(arch_tuple) + ) +endef + +define HOST_BINUTILS_BARE_METAL_INSTALL_CMDS + $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \ + $(HOST_MAKE_ENV) $(MAKE) \ + $(HOST_BINUTILS_BARE_METAL_INSTALL_OPTS) \ + -C $(@D)/build-$(arch_tuple) + ) +endef + $(eval $(host-autotools-package)) diff --git a/package/cpp-httplib/cpp-httplib.hash b/package/cpp-httplib/cpp-httplib.hash index 45c221410515..0984bd359b34 100644 --- a/package/cpp-httplib/cpp-httplib.hash +++ b/package/cpp-httplib/cpp-httplib.hash @@ -1,3 +1,3 @@ # Locally computed: -sha256 6ed5894bbbc4a34a0f4c5e962672d0003d2ea099bbadacc66f6dee2b213ff394 cpp-httplib-0.18.0.tar.gz +sha256 c9b9e0524666e1cd088f0874c57c1ce7c0eaa8552f9f4e15c755d5201fc8c608 cpp-httplib-0.19.0.tar.gz sha256 4b45cbe16d7b71b89ae6127e26e0d90a029198ca5e958ad8e3d0b8bbed364d8b LICENSE diff --git a/package/cpp-httplib/cpp-httplib.mk b/package/cpp-httplib/cpp-httplib.mk index 5a02b562b3c1..f3a8710d2084 100644 --- a/package/cpp-httplib/cpp-httplib.mk +++ b/package/cpp-httplib/cpp-httplib.mk @@ -4,7 +4,7 @@ # ################################################################################ -CPP_HTTPLIB_VERSION = 0.18.0 +CPP_HTTPLIB_VERSION = 0.19.0 CPP_HTTPLIB_SITE = $(call github,yhirose,cpp-httplib,v$(CPP_HTTPLIB_VERSION)) CPP_HTTPLIB_LICENSE = MIT CPP_HTTPLIB_LICENSE_FILES = LICENSE diff --git a/package/gcc-bare-metal/gcc-bare-metal.mk b/package/gcc-bare-metal/gcc-bare-metal.mk index adaae6c30773..ec245db35b48 100644 --- a/package/gcc-bare-metal/gcc-bare-metal.mk +++ b/package/gcc-bare-metal/gcc-bare-metal.mk @@ -20,15 +20,9 @@ HOST_GCC_BARE_METAL_DEPENDENCIES = \ host-mpfr \ host-isl -# gcc doesn't support in-tree build, so we create a 'build' -# subdirectory in the gcc sources, and build from there. -define HOST_GCC_BARE_METAL_CONFIGURE_SYMLINK - mkdir -p $(@D)/build - ln -sf ../configure $(@D)/build/configure -endef - -HOST_GCC_BARE_METAL_PRE_CONFIGURE_HOOKS += HOST_GCC_BARE_METAL_CONFIGURE_SYMLINK -HOST_GCC_BARE_METAL_SUBDIR = build +# Don't build documentation. It takes up extra space / build time, +# and sometimes needs specific makeinfo versions to work +HOST_GCC_BARE_METAL_CONF_ENV = MAKEINFO=missing HOST_GCC_BARE_METAL_MAKE_OPTS = \ $(HOST_GCC_COMMON_MAKE_OPTS) \ @@ -38,8 +32,13 @@ HOST_GCC_BARE_METAL_MAKE_OPTS = \ HOST_GCC_BARE_METAL_INSTALL_OPTS = install-gcc install-target-libgcc HOST_GCC_BARE_METAL_CONF_OPTS = \ - --target=$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE) \ - --disable-initfini_array \ + --prefix=$(HOST_DIR) \ + --sysconfdir=$(HOST_DIR)/etc \ + --localstatedir=$(HOST_DIR)/var \ + $(if $$($$(PKG)_OVERRIDE_SRCDIR),,--disable-dependency-tracking) \ + $(QUIET) \ + --disable-shared \ + --disable-initfini-array \ --disable-__cxa_atexit \ --disable-libstdcxx-pch \ --with-newlib \ @@ -54,9 +53,38 @@ HOST_GCC_BARE_METAL_CONF_OPTS = \ --with-gmp=$(HOST_DIR) \ --with-mpc=$(HOST_DIR) \ --with-mpfr=$(HOST_DIR) \ - --with-isl=$(HOST_DIR) \ - --with-sysroot=$(TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT) \ - AR_FOR_TARGET=$(HOST_DIR)/bin/$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE)-ar \ - RANLIB_FOR_TARGET=$(HOST_DIR)/bin/$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE)-ranlib + --with-isl=$(HOST_DIR) + +define HOST_GCC_BARE_METAL_CONFIGURE_CMDS + $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \ + mkdir -p $(@D)/build-$(arch_tuple) && \ + cd $(@D)/build-$(arch_tuple) && \ + $(HOST_CONFIGURE_OPTS) \ + $(HOST_GCC_BARE_METAL_CONF_ENV) \ + CONFIG_SITE=/dev/null \ + $(@D)/configure \ + $(HOST_GCC_BARE_METAL_CONF_OPTS) \ + --target=$(arch_tuple) \ + --with-sysroot=$(HOST_DIR)/$(arch_tuple)/sysroot \ + AR_FOR_TARGET=$(HOST_DIR)/bin/$(arch_tuple)-ar \ + RANLIB_FOR_TARGET=$(HOST_DIR)/bin/$(arch_tuple)-ranlib + ) +endef + +define HOST_GCC_BARE_METAL_BUILD_CMDS + $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \ + $(HOST_MAKE_ENV) $(MAKE) \ + $(HOST_GCC_BARE_METAL_MAKE_OPTS) \ + -C $(@D)/build-$(arch_tuple) + ) +endef + +define HOST_GCC_BARE_METAL_INSTALL_CMDS + $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \ + $(HOST_MAKE_ENV) $(MAKE) \ + $(HOST_GCC_BARE_METAL_INSTALL_OPTS) \ + -C $(@D)/build-$(arch_tuple) + ) +endef $(eval $(host-autotools-package)) diff --git a/package/libosmium/Config.in b/package/libosmium/Config.in index 825e2b7e338a..c2e905cd3784 100644 --- a/package/libosmium/Config.in +++ b/package/libosmium/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_LIBOSMIUM bool "libosmium" depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11 + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14 depends on BR2_TOOLCHAIN_HAS_THREADS # boost depends on BR2_USE_WCHAR # boost select BR2_PACKAGE_BOOST @@ -13,6 +13,6 @@ config BR2_PACKAGE_LIBOSMIUM https://osmcode.org/libosmium/ -comment "libosmium needs a toolchain w/ C++, wchar, threads, gcc >= 4.7" +comment "libosmium needs a toolchain w/ C++, wchar, threads, gcc >= 5" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ - !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || !BR2_TOOLCHAIN_HAS_THREADS + !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/libosmium/libosmium.hash b/package/libosmium/libosmium.hash index 37bcdd267c31..82657d7fe726 100644 --- a/package/libosmium/libosmium.hash +++ b/package/libosmium/libosmium.hash @@ -1,3 +1,3 @@ # Locally calculated -sha256 3d3e0873c6aaabb3b2ef4283896bebf233334891a7a49f4712af30ca6ed72477 libosmium-2.20.0.tar.gz +sha256 5a222e555865f742102d2802a7ad7ef91d6e1c8944c097c70a924214e079c858 libosmium-2.21.0.tar.gz sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 LICENSE diff --git a/package/libosmium/libosmium.mk b/package/libosmium/libosmium.mk index c39e7d0152ba..e5392b06e92e 100644 --- a/package/libosmium/libosmium.mk +++ b/package/libosmium/libosmium.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBOSMIUM_VERSION = 2.20.0 +LIBOSMIUM_VERSION = 2.21.0 LIBOSMIUM_SITE = $(call github,osmcode,libosmium,v$(LIBOSMIUM_VERSION)) LIBOSMIUM_LICENSE = BSL-1.0 LIBOSMIUM_LICENSE_FILES = LICENSE @@ -23,10 +23,6 @@ ifeq ($(BR2_PACKAGE_LIBGEOS),y) LIBOSMIUM_DEPENDENCIES += libgeos endif -ifeq ($(BR2_PACKAGE_PROJ),y) -LIBOSMIUM_DEPENDENCIES += proj -endif - ifeq ($(BR2_PACKAGE_ZLIB),y) LIBOSMIUM_DEPENDENCIES += zlib endif diff --git a/package/newlib-bare-metal/newlib-bare-metal.mk b/package/newlib-bare-metal/newlib-bare-metal.mk index e28e7a717c48..bd740046c9e5 100644 --- a/package/newlib-bare-metal/newlib-bare-metal.mk +++ b/package/newlib-bare-metal/newlib-bare-metal.mk @@ -22,28 +22,49 @@ NEWLIB_BARE_METAL_INSTALL_STAGING = YES NEWLIB_BARE_METAL_INSTALL_TARGET = NO NEWLIB_BARE_METAL_MAKE_OPTS = MAKEINFO=true +NEWLIB_BARE_METAL_CONF_OPTS = \ + --build=$(GNU_HOST_NAME) \ + --prefix=/usr \ + --exec-prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --program-prefix="" \ + $(if $$($$(PKG)_OVERRIDE_SRCDIR),,--disable-dependency-tracking) \ + $(QUIET) \ + --enable-newlib-io-c99-formats \ + --enable-newlib-io-long-long \ + --enable-newlib-io-float \ + --enable-newlib-io-long-double \ + --disable-multilib \ + --with-tooldir=/usr + define NEWLIB_BARE_METAL_CONFIGURE_CMDS - (cd $(@D) && \ + $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \ + mkdir -p $(@D)/build-$(arch_tuple) && \ + cd $(@D)/build-$(arch_tuple) && \ PATH=$(BR_PATH) \ - ./configure \ - --target=$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE) \ - --prefix=/usr \ - --enable-newlib-io-c99-formats \ - --enable-newlib-io-long-long \ - --enable-newlib-io-float \ - --enable-newlib-io-long-double \ - --disable-multilib \ - --with-tooldir=/usr \ + CONFIG_SITE=/dev/null \ + $(@D)/configure \ + $(NEWLIB_BARE_METAL_CONF_OPTS) \ + --target=$(arch_tuple) ) endef define NEWLIB_BARE_METAL_BUILD_CMDS - PATH=$(BR_PATH) $(MAKE1) $(NEWLIB_BARE_METAL_MAKE_OPTS) -C $(@D) + $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \ + PATH=$(BR_PATH) $(MAKE1) \ + $(NEWLIB_BARE_METAL_MAKE_OPTS) \ + -C $(@D)/build-$(arch_tuple) + ) endef define NEWLIB_BARE_METAL_INSTALL_STAGING_CMDS - PATH=$(BR_PATH) $(MAKE1) -C $(@D) $(NEWLIB_BARE_METAL_MAKE_OPTS) \ - DESTDIR=$(TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT) install + $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \ + PATH=$(BR_PATH) $(MAKE1) \ + $(NEWLIB_BARE_METAL_MAKE_OPTS) \ + -C $(@D)/build-$(arch_tuple) \ + DESTDIR=$(HOST_DIR)/$(arch_tuple)/sysroot install + ) endef $(eval $(generic-package)) diff --git a/package/sqlite/sqlite.mk b/package/sqlite/sqlite.mk index 5a8b033ce04f..8016ff1c4c94 100644 --- a/package/sqlite/sqlite.mk +++ b/package/sqlite/sqlite.mk @@ -44,9 +44,12 @@ endif ifeq ($(BR2_PACKAGE_NCURSES)$(BR2_PACKAGE_READLINE),yy) SQLITE_DEPENDENCIES += ncurses readline -else ifeq ($(BR2_PACKAGE_LIBEDIT),y) -SQLITE_DEPENDENCIES += libedit -SQLITE_CONF_OPTS += --disable-readline --editline +SQLITE_CFLAGS += -DHAVE_READLINE=1 +SQLITE_LDFLAGS += -lreadline -lncurses +else ifeq ($(BR2_PACKAGE_NCURSES)$(BR2_PACKAGE_LIBEDIT),yy) +SQLITE_DEPENDENCIES += ncurses libedit +SQLITE_CFLAGS += -DHAVE_EDITLINE=1 +SQLITE_LDFLAGS += -ledit -lncurses else SQLITE_CONF_OPTS += --disable-readline endif @@ -59,10 +62,12 @@ ifeq ($(BR2_PACKAGE_SQLITE_ENABLE_JSON1),) SQLITE_CONF_OPTS += --disable-json endif -SQLITE_CONF_ENV = CFLAGS="$(SQLITE_CFLAGS)" +SQLITE_CONF_ENV = CFLAGS="$(SQLITE_CFLAGS)" LDFLAGS="$(SQLITE_LDFLAGS)" define SQLITE_CONFIGURE_CMDS - (cd $(@D); $(TARGET_CONFIGURE_OPTS) $(SQLITE_CONF_ENV) ./configure \ + (cd $(@D); $(TARGET_CONFIGURE_OPTS) \ + $(if $(BR2_INSTALL_LIBSTDCPP),,CXX=false) \ + $(SQLITE_CONF_ENV) ./configure \ --prefix=/usr \ --host="$(GNU_TARGET_NAME)" \ --build="$(GNU_HOST_NAME)" \ @@ -84,7 +89,8 @@ define SQLITE_INSTALL_TARGET_CMDS endef define HOST_SQLITE_CONFIGURE_CMDS - (cd $(@D); $(HOST_CONFIGURE_OPTS) $(SQLITE_CONF_ENV) ./configure \ + (cd $(@D); $(HOST_CONFIGURE_OPTS) \ + $(SQLITE_CONF_ENV) ./configure \ --prefix=/usr \ --host="$(GNU_HOST_NAME)" \ --build="$(GNU_HOST_NAME)" \ diff --git a/package/timescaledb/timescaledb.hash b/package/timescaledb/timescaledb.hash index f799b0c7f8f2..7c770618b2fc 100644 --- a/package/timescaledb/timescaledb.hash +++ b/package/timescaledb/timescaledb.hash @@ -1,3 +1,3 @@ # Locally calculated -sha256 86248970971ad075e0b5ed64dbba5b190eb8794d6e36b508427a5cc42b20a420 timescaledb-2.18.0.tar.gz +sha256 f293fc54bc76d06c5955ae68e2e8124331bee80aee8b499047afae01b10513ce timescaledb-2.18.1.tar.gz sha256 0378e0948feefd85f579319c74d6e2b671194037f550c7176ef26649d94c895b LICENSE diff --git a/package/timescaledb/timescaledb.mk b/package/timescaledb/timescaledb.mk index 99756cb0b8f7..c1f65d5f3a36 100644 --- a/package/timescaledb/timescaledb.mk +++ b/package/timescaledb/timescaledb.mk @@ -4,7 +4,7 @@ # ################################################################################ -TIMESCALEDB_VERSION = 2.18.0 +TIMESCALEDB_VERSION = 2.18.1 TIMESCALEDB_SITE = $(call github,timescale,timescaledb,$(TIMESCALEDB_VERSION)) TIMESCALEDB_LICENSE = Apache-2.0 TIMESCALEDB_LICENSE_FILES = LICENSE diff --git a/toolchain/Config.in b/toolchain/Config.in index d6ed25ff96c6..94723da14176 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -941,7 +941,7 @@ config BR2_TOOLCHAIN_HAS_LIBQUADMATH comment "Bare metal toolchain" config BR2_TOOLCHAIN_BARE_METAL_BUILDROOT - bool "Build a bare metal toolchain" + bool "Build bare metal toolchains" select BR2_PACKAGE_NEWLIB_BARE_METAL help Select if you need a bare-metal toolchain for building diff --git a/toolchain/toolchain-bare-metal-buildroot/Config.in b/toolchain/toolchain-bare-metal-buildroot/Config.in index 6fe969357f6f..c86c5d725c6b 100644 --- a/toolchain/toolchain-bare-metal-buildroot/Config.in +++ b/toolchain/toolchain-bare-metal-buildroot/Config.in @@ -1,10 +1,16 @@ if BR2_TOOLCHAIN_BARE_METAL_BUILDROOT config BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH - string "architecture tuple" + string "list of architecture tuples" help - This option allows to define the architecture tuple for the - bare-metal toolchain. + This option allows to define the list of architecture + tuples for which bare-metal toolchains will be created. + One toolchain will be built for each of the architecture + tuples specified in this option. + + For example, to build both a Microblaze and a RISC-V bare + metal toolchain, use the following definition: + "microblazeel-xilinx-elf riscv32-buldroot-elf" source "package/newlib-bare-metal/Config.in" diff --git a/toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk b/toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk index dbfe30a910d2..71063fcee43b 100644 --- a/toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk +++ b/toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk @@ -6,7 +6,6 @@ TOOLCHAIN_BARE_METAL_BUILDROOT_DEPENDENCIES = newlib-bare-metal TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE = $(call qstrip,$(BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH)) -TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT = $(HOST_DIR)/$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE)/sysroot TOOLCHAIN_BARE_METAL_BUILDROOT_ADD_TOOLCHAIN_DEPENDENCY = NO $(eval $(virtual-package))