diff --git a/cross/binutils-2.32/Makefile b/cross/binutils-2.32/Makefile
new file mode 100644
index 00000000000..9b0e8f75d59
--- /dev/null
+++ b/cross/binutils-2.32/Makefile
@@ -0,0 +1,28 @@
+PKG_NAME = binutils
+PKG_VERS = 2.32
+PKG_EXT = tar.xz
+PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
+PKG_DIST_SITE = https://ftp.gnu.org/gnu/binutils
+PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
+
+DEPENDS = cross/zlib cross/mpfr
+
+HOMEPAGE = https://www.gnu.org/software/binutils/
+COMMENT = GNU Binutils
+LICENSE = GPLv2/LGPLv2
+
+GNU_CONFIGURE = 1
+
+CONFIGURE_ARGS += --enable-host-shared
+CONFIGURE_ARGS += --with-system-zlib
+CONFIGURE_ARGS += --enable-gold=yes
+
+include ../../mk/spksrc.archs.mk
+
+# embedspu is a tool to "Embed an SPU ELF executable into a PowerPC object file"
+# and hence built only for PPC_ARCHS.
+ifneq ($(findstring $(ARCH),$(PPC_ARCHS)),$(ARCH))
+PLIST_TRANSFORM = sed -e '/bin\/embedspu/d'
+endif
+
+include ../../mk/spksrc.cross-cc.mk
diff --git a/cross/binutils-2.32/PLIST b/cross/binutils-2.32/PLIST
new file mode 100644
index 00000000000..22ecc82ece9
--- /dev/null
+++ b/cross/binutils-2.32/PLIST
@@ -0,0 +1,19 @@
+bin:bin/addr2line
+bin:bin/ar
+bin:bin/as
+bin:bin/c++filt
+bin:bin/dwp
+bin:bin/elfedit
+bin:bin/embedspu
+bin:bin/gprof
+bin:bin/ld
+bin:bin/ld.bfd
+bin:bin/ld.gold
+bin:bin/nm
+bin:bin/objcopy
+bin:bin/objdump
+bin:bin/ranlib
+bin:bin/readelf
+bin:bin/size
+bin:bin/strings
+bin:bin/strip
diff --git a/cross/binutils-2.32/digests b/cross/binutils-2.32/digests
new file mode 100644
index 00000000000..03c432df2bd
--- /dev/null
+++ b/cross/binutils-2.32/digests
@@ -0,0 +1,3 @@
+binutils-2.32.tar.xz SHA1 cd45a512af1c8a508976c1beb4f5825b3bb89f4d
+binutils-2.32.tar.xz SHA256 0ab6c55dd86a92ed561972ba15b9b70a8b9f75557f896446c82e8b36e473ee04
+binutils-2.32.tar.xz MD5 0d174cdaf85721c5723bf52355be41e6
diff --git a/cross/binutils-latest/Makefile b/cross/binutils-latest/Makefile
new file mode 100644
index 00000000000..c956ba4ad73
--- /dev/null
+++ b/cross/binutils-latest/Makefile
@@ -0,0 +1,38 @@
+PKG_NAME = binutils
+PKG_VERS = 2.40
+PKG_EXT = tar.xz
+PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
+PKG_DIST_SITE = https://ftp.gnu.org/gnu/binutils
+PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
+
+DEPENDS = cross/zlib cross/mpfr
+
+HOMEPAGE = https://www.gnu.org/software/binutils/
+COMMENT = GNU Binutils
+LICENSE = GPLv2/LGPLv2
+
+GNU_CONFIGURE = 1
+
+CONFIGURE_ARGS += --enable-host-shared
+CONFIGURE_ARGS += --with-system-zlib
+CONFIGURE_ARGS += --enable-gold=yes
+
+include ../../mk/spksrc.archs.mk
+
+# embedspu is a tool to "Embed an SPU ELF executable into a PowerPC object file"
+# and hence built only for PPC_ARCHS.
+# gprofng fails to build on i686 and does not build on other 32-bit archs.
+ifeq ($(findstring $(ARCH),$(64bit_ARCHS)),$(ARCH))
+PLIST_TRANSFORM = sed -e '/bin\/embedspu/d'
+else
+CONFIGURE_ARGS += --disable-gprofng
+PLIST_TRANSFORM = sed -e '/bin\/gprofng/d' -e '/bin\/gp\-/d' -e '/lib\/gprofng/d'
+ifneq ($(findstring $(ARCH),$(PPC_ARCHS)),$(ARCH))
+PLIST_TRANSFORM += -e '/bin\/embedspu/d'
+endif
+endif
+
+# Avoid conflicts with gdb
+CONFIGURE_ARGS += --includedir=$(INSTALL_PREFIX)/include/binutils
+
+include ../../mk/spksrc.cross-cc.mk
diff --git a/cross/binutils/PLIST b/cross/binutils-latest/PLIST
similarity index 96%
rename from cross/binutils/PLIST
rename to cross/binutils-latest/PLIST
index c1df069c35e..94f1c5b97d7 100644
--- a/cross/binutils/PLIST
+++ b/cross/binutils-latest/PLIST
@@ -4,6 +4,7 @@ bin:bin/as
bin:bin/c++filt
bin:bin/dwp
bin:bin/elfedit
+bin:bin/embedspu
bin:bin/gp-archive
bin:bin/gp-collect-app
rsc:bin/gp-display-html
diff --git a/cross/binutils/digests b/cross/binutils-latest/digests
similarity index 100%
rename from cross/binutils/digests
rename to cross/binutils-latest/digests
diff --git a/cross/binutils/Makefile b/cross/binutils/Makefile
index 2bb3646cae0..d41a457b49c 100644
--- a/cross/binutils/Makefile
+++ b/cross/binutils/Makefile
@@ -1,31 +1,12 @@
-PKG_NAME = binutils
-PKG_VERS = 2.40
-PKG_EXT = tar.xz
-PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
-PKG_DIST_SITE = https://ftp.gnu.org/gnu/binutils
-PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
+PKG_NAME = binutils-main
-DEPENDS = cross/zlib cross/gmp cross/mpfr
+OPTIONAL_DEPENDS = cross/binutils-latest
+OPTIONAL_DEPENDS += cross/binutils-2.32
-HOMEPAGE = https://www.gnu.org/software/binutils/
-COMMENT = GNU Binutils
-LICENSE = GPLv2/LGPLv2
+include ../../mk/spksrc.main-depends.mk
-GNU_CONFIGURE = 1
-
-include ../../mk/spksrc.archs.mk
-
-CONFIGURE_ARGS += --enable-host-shared
-CONFIGURE_ARGS += --with-system-zlib
-CONFIGURE_ARGS += --enable-gold=yes
-
-# Fails to build on i686 and does not build on other 32-bit archs
-ifneq ($(findstring $(ARCH),$(64bit_ARCHS)),$(ARCH))
-CONFIGURE_ARGS += --disable-gprofng
-PLIST_TRANSFORM = sed -e '/bin\/gprofng/d' -e '/bin\/gp\-/d' -e '/lib\/gprofng/d'
+ifeq ($(findstring $(ARCH),$(OLD_PPC_ARCHS)),$(ARCH))
+DEPENDS = cross/binutils-2.32
+else
+DEPENDS = cross/binutils-latest
endif
-
-# Avoid conflicts with gdb
-CONFIGURE_ARGS += --includedir=$(INSTALL_PREFIX)/include/binutils
-
-include ../../mk/spksrc.cross-cc.mk
diff --git a/cross/gdb-7.12/Makefile b/cross/gdb-7.12/Makefile
index e55336d56c9..a930128221f 100644
--- a/cross/gdb-7.12/Makefile
+++ b/cross/gdb-7.12/Makefile
@@ -8,46 +8,49 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
DEPENDS = cross/zlib cross/libexpat cross/gmp cross/ncursesw cross/mpfr
HOMEPAGE = https://www.gnu.org/software/gdb/
-COMMENT = The GNU Project Debugger
+COMMENT = The GNU Project Debugger.
LICENSE = GPLv2/LGPLv2
-UNSUPPORTED_ARCHS = $(PPC_ARCHS)
-
GNU_CONFIGURE = 1
CONFIGURE_TARGET = gdb_configure
COMPILE_TARGET = gdb_compile
INSTALL_TARGET = gdb_install
+CONFIGURE_ARGS = --enable-host-shared
+CONFIGURE_ARGS += --with-system-zlib
+
include ../../mk/spksrc.common.mk
-CONFIGURE_ARGS += $(TC_CONFIGURE_ARGS)
-CONFIGURE_ARGS += --prefix=$(INSTALL_PREFIX)
-CONFIGURE_ARGS += --enable-host-shared
-CONFIGURE_ARGS += --with-system-zlib
-ifeq ($(call version_ge, ${TCVERSION}, 7.0),1)
-CONFIGURE_ARGS += --localstatedir=$(INSTALL_PREFIX_VAR)
+PLIST_TRANSFORM_SED_ARGS =
+
+# Library is not created for 32-bit non intel archs
+ifeq ($(findstring $(ARCH),$(32bit_ARCHS)),$(ARCH))
+ifneq ($(findstring $(ARCH),$(i686_ARCHS)),$(ARCH))
+PLIST_TRANSFORM_SED_ARGS += -e 's?lib:lib/libinproctrace.so??g'
+endif
endif
-include ../../mk/spksrc.cross-cc.mk
+ifneq ($(findstring $(ARCH),$(ARM_ARCHS)),$(ARCH))
+# binary only created for arm
+PLIST_TRANSFORM_SED_ARGS += -e 's?bin:bin/run??g'
+endif
-# Library is not created under armv5 and armv7
-ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(ARMv7_ARCHS) $(ARMv7L_ARCHS)),$(ARCH))
-PLIST_TRANSFORM = sed -e 's?lib:lib/libinproctrace.so??g'
-# binary only created on armv7
-else
-PLIST_TRANSFORM = sed -e 's?bin:bin/run??g'
+ifneq ($(strip $(PLIST_TRANSFORM_SED_ARGS)),)
+PLIST_TRANSFORM = sed $(PLIST_TRANSFORM_SED_ARGS)
endif
+include ../../mk/spksrc.cross-cc.mk
+
.PHONY: gdb_configure
gdb_configure:
@$(RUN) mkdir -p build
- @$(RUN) ; cd build ; PATH=$(TC_PATH):$$PATH CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)" CXXFLAGS="$(CXXFLAGS)" $(WORK_DIR)/$(PKG_DIR)/configure $(CONFIGURE_ARGS)
+ @$(RUN) ; cd build ; PATH=$(abspath $(TC_PATH)):$$PATH CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)" CXXFLAGS="$(CXXFLAGS)" $(WORK_DIR)/$(PKG_DIR)/configure $(REAL_CONFIGURE_ARGS)
.PHONY: gdb_compile
gdb_compile:
- @$(RUN) ; cd build ; PATH=$(TC_PATH):$$PATH make
+ @$(RUN) ; cd build ; PATH=$(abspath $(TC_PATH)):$$PATH $(MAKE)
.PHONY: gdb_install
gdb_install:
- @$(RUN) ; cd build ; PATH=$(TC_PATH):$$PATH make install DESTDIR=$(INSTALL_DIR)
+ @$(RUN) ; cd build ; PATH=$(abspath $(TC_PATH)):$$PATH $(MAKE) install DESTDIR=$(INSTALL_DIR)
diff --git a/cross/gdb-7.12/patches/001-fix-sim-ppc-duplicate-symbols.patch b/cross/gdb-7.12/patches/001-fix-sim-ppc-duplicate-symbols.patch
new file mode 100644
index 00000000000..78c0241d77c
--- /dev/null
+++ b/cross/gdb-7.12/patches/001-fix-sim-ppc-duplicate-symbols.patch
@@ -0,0 +1,74 @@
+# fix duplicate symbols in sim/ppc sources
+# - declare 'extern' to avoid allocation of the symbols for each file that includes sim/ppc/ld-insn.h
+# - allocate those variables in sim/ppc/ld-insn.c only
+#
+--- sim/ppc/ld-insn.h.orig 2014-06-11 16:34:42.000000000 +0000
++++ sim/ppc/ld-insn.h 2023-09-12 13:47:17.677392900 +0000
+@@ -200,25 +200,25 @@
+ table_include *includes,
+ cache_table **cache_rules);
+
+-model *models;
+-model *last_model;
++extern model *models;
++extern model *last_model;
+
+-insn *model_macros;
+-insn *last_model_macro;
++extern insn *model_macros;
++extern insn *last_model_macro;
+
+-insn *model_functions;
+-insn *last_model_function;
++extern insn *model_functions;
++extern insn *last_model_function;
+
+-insn *model_internal;
+-insn *last_model_internal;
++extern insn *model_internal;
++extern insn *last_model_internal;
+
+-insn *model_static;
+-insn *last_model_static;
++extern insn *model_static;
++extern insn *last_model_static;
+
+-insn *model_data;
+-insn *last_model_data;
++extern insn *model_data;
++extern insn *last_model_data;
+
+-int max_model_fields_len;
++extern int max_model_fields_len;
+
+ extern void insn_table_insert_insn
+ (insn_table *table,
+--- sim/ppc/ld-insn.c.orig 2014-06-11 16:34:42.000000000 +0000
++++ sim/ppc/ld-insn.c 2023-09-12 14:04:28.924210287 +0000
+@@ -28,6 +28,26 @@
+
+ #include "igen.h"
+
++model *models;
++model *last_model;
++
++insn *model_macros;
++insn *last_model_macro;
++
++insn *model_functions;
++insn *last_model_function;
++
++insn *model_internal;
++insn *last_model_internal;
++
++insn *model_static;
++insn *last_model_static;
++
++insn *model_data;
++insn *last_model_data;
++
++int max_model_fields_len;
++
+ static void
+ update_depth(insn_table *entry,
+ lf *file,
diff --git a/cross/gdb-7.12/patches/002-fix-configure-of-sim-ppc.patch b/cross/gdb-7.12/patches/002-fix-configure-of-sim-ppc.patch
new file mode 100644
index 00000000000..fc4b3ad4e35
--- /dev/null
+++ b/cross/gdb-7.12/patches/002-fix-configure-of-sim-ppc.patch
@@ -0,0 +1,14 @@
+# fix configure for sim/ppc
+# - avoid the use of target CPPFLAGS for build
+#
+--- sim/ppc/configure.orig 2016-08-01 15:50:21.000000000 +0000
++++ sim/ppc/configure 2023-09-13 10:14:14.609339863 +0000
+@@ -7707,7 +7707,7 @@
+ *) realsrcdir=../${srcdir};;
+ esac
+ saved_CFLAGS="${CFLAGS}"
+- CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
++ CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" CPPFLAGS="" \
+ LDFLAGS="${LDFLAGS_FOR_BUILD}" \
+ ${realsrcdir}/configure \
+ --enable-languages=${enable_languages-all} \
diff --git a/cross/gdb-latest/Makefile b/cross/gdb-latest/Makefile
index a9080eb9750..b0dd9b3e133 100644
--- a/cross/gdb-latest/Makefile
+++ b/cross/gdb-latest/Makefile
@@ -8,21 +8,40 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
DEPENDS = cross/zlib cross/libexpat cross/gmp cross/ncursesw cross/mpfr
HOMEPAGE = https://www.gnu.org/software/gdb/
-COMMENT = The GNU Project Debugger
+COMMENT = The GNU Project Debugger.
LICENSE = GPLv2/LGPLv2
GNU_CONFIGURE = 1
-CONFIGURE_ARGS += --enable-host-shared
+CONFIGURE_ARGS = --enable-host-shared
CONFIGURE_ARGS += --with-system-zlib
-UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(PPC_ARCHS)
+include ../../mk/spksrc.common.mk
-include ../../mk/spksrc.cross-cc.mk
+ifeq ($(call version_lt, $(TC_GCC), 4.8.1),1)
+UNSUPPORTED_ARCHS = $(ARCHS)
+endif
+
+ifeq ($(findstring $(ARCH),$(PPC_ARCHS)),$(ARCH))
+# sim/ppc is broken
+CONFIGURE_ARGS += --disable-sim
+endif
+
+PLIST_TRANSFORM_SED_ARGS =
+
+# Library is not created for 32-bit non intel archs
+ifeq ($(findstring $(ARCH),$(32bit_ARCHS)),$(ARCH))
+ifneq ($(findstring $(ARCH),$(i686_ARCHS)),$(ARCH))
+PLIST_TRANSFORM_SED_ARGS += -e 's?lib:lib/libinproctrace.so??g'
+endif
+endif
+
+ifneq ($(findstring $(ARCH),$(ARM_ARCHS)),$(ARCH))
+# binary only created for arm
+PLIST_TRANSFORM_SED_ARGS += -e 's?bin:bin/run??g'
+endif
-# Library is not created under armv7
-ifeq ($(findstring $(ARCH),$(ARMv7_ARCHS) $(ARMv7L_ARCHS)),$(ARCH))
-PLIST_TRANSFORM = sed -e 's?lib:lib/libinproctrace.so??g'
-# binary only created on armv7
-else
-PLIST_TRANSFORM = sed -e 's?bin:bin/run??g'
+ifneq ($(strip $(PLIST_TRANSFORM_SED_ARGS)),)
+PLIST_TRANSFORM = sed $(PLIST_TRANSFORM_SED_ARGS)
endif
+
+include ../../mk/spksrc.cross-cc.mk
diff --git a/cross/gdb/Makefile b/cross/gdb/Makefile
index 3b8fcf9d7b5..eb500fb0274 100644
--- a/cross/gdb/Makefile
+++ b/cross/gdb/Makefile
@@ -5,8 +5,9 @@ OPTIONAL_DEPENDS += cross/gdb-7.12
include ../../mk/spksrc.main-depends.mk
-ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH))
+ifeq ($(call version_lt, $(TC_GCC), 4.8.1),1)
DEPENDS += cross/gdb-7.12
else
+# A compiler with support for C++11 language features is required.
DEPENDS += cross/gdb-latest
endif
diff --git a/cross/llvm-9.0/Makefile b/cross/llvm-9.0/Makefile
index e3e70fa5eb8..8d019354ad5 100644
--- a/cross/llvm-9.0/Makefile
+++ b/cross/llvm-9.0/Makefile
@@ -6,10 +6,10 @@ PKG_DIST_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$
PKG_DIR = $(PKG_NAME)-project-$(PKG_VERS)
HOMEPAGE = https://llvm.org/
-COMMENT = The LLVM Project is a collection of modular and reusable compiler and toolchain technologies
-LICENSE = Apache License v2.0 with LLVM Exceptions
+COMMENT = The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
+LICENSE = Apache v2.0 with LLVM Exceptions
-UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(PPC_ARCHS)
+UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS)
CMAKE_USE_NINJA = 1
# Using LLVM project source need to change to llvm sub-directory
@@ -124,6 +124,11 @@ CMAKE_ARGS += -DLLVM_TARGETS_TO_BUILD=X86
CMAKE_ARGS += -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld'
endif
+ifeq ($(findstring $(ARCH),$(PPC_ARCHS)),$(ARCH))
+CMAKE_ARGS += -DLLVM_TARGETS_TO_BUILD=PowerPC
+CMAKE_ARGS += -DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld'
+endif
+
include ../../mk/spksrc.cross-cmake.mk
ifeq ($(call version_lt, $(TC_GCC), 5.1),1)
diff --git a/cross/llvm-latest/Makefile b/cross/llvm-latest/Makefile
index 6eb299f9cc8..a3d3e01ad06 100644
--- a/cross/llvm-latest/Makefile
+++ b/cross/llvm-latest/Makefile
@@ -7,7 +7,7 @@ PKG_DIR = $(PKG_NAME)-project-$(PKG_VERS).src
HOMEPAGE = https://llvm.org/
COMMENT = The LLVM Project is a collection of modular and reusable compiler and toolchain technologies
-LICENSE = Apache License v2.0 with LLVM Exceptions
+LICENSE = Apache v2.0 with LLVM Exceptions
REQUIRED_MIN_DSM = 7.0
UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(PPC_ARCHS) comcerto2k
diff --git a/cross/llvm/Makefile b/cross/llvm/Makefile
index 540d1b6542b..36435d08c78 100644
--- a/cross/llvm/Makefile
+++ b/cross/llvm/Makefile
@@ -1,6 +1,6 @@
PKG_NAME = llvm-main
-UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(PPC_ARCHS)
+UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS)
OPTIONAL_DEPENDS = cross/llvm-latest
OPTIONAL_DEPENDS += cross/llvm-9.0
diff --git a/cross/strace/Makefile b/cross/strace/Makefile
index 25529eb8333..b0101d152e8 100644
--- a/cross/strace/Makefile
+++ b/cross/strace/Makefile
@@ -1,5 +1,5 @@
PKG_NAME = strace
-PKG_VERS = 6.4
+PKG_VERS = 6.5
PKG_EXT = tar.xz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://github.com/strace/strace/releases/download/v$(PKG_VERS)
diff --git a/cross/strace/digests b/cross/strace/digests
index 063a8956a89..2c937602609 100644
--- a/cross/strace/digests
+++ b/cross/strace/digests
@@ -1,3 +1,3 @@
-strace-6.4.tar.xz SHA1 e8e1e23f8d731c6c81eb929e6454846f01bad2ff
-strace-6.4.tar.xz SHA256 27987dbac57fdfd260c6db4dc8328df35c95c6867c8a3d4371d59cdcf4eb9238
-strace-6.4.tar.xz MD5 b6e5842f27b5cc9022c8bd7238435a6a
+strace-6.5.tar.xz SHA1 9a887797c47a1d91e0c74bca4965f42204103ebf
+strace-6.5.tar.xz SHA256 dfb051702389e1979a151892b5901afc9e93bbc1c70d84c906ade3224ca91980
+strace-6.5.tar.xz MD5 e2a7651192053b4df3acd4cea0ec64ef
diff --git a/diyspk/binutils/Makefile b/diyspk/binutils/Makefile
index 82acf423388..50b73195a54 100644
--- a/diyspk/binutils/Makefile
+++ b/diyspk/binutils/Makefile
@@ -5,8 +5,7 @@ SPK_REV = 1
DEPENDS = cross/binutils
MAINTAINER = SynoCommunity
-DESCRIPTION = GNU Binutils
-DISPLAY_NAME = binutils
+DESCRIPTION = GNU Binutils.
STARTABLE = no
HOMEPAGE = https://www.gnu.org/software/binutils/
diff --git a/diyspk/gdb/Makefile b/diyspk/gdb/Makefile
index 74333db6871..8a52670f3d8 100644
--- a/diyspk/gdb/Makefile
+++ b/diyspk/gdb/Makefile
@@ -2,30 +2,31 @@ SPK_NAME = gdb
SPK_REV = 1
SPK_ICON = src/gdb.png
-MAINTAINER = th0ma7
-DESCRIPTION = The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, C, C++, Objective-C, Free Pascal, Fortran, Go and partially others.
-STARTABLE = no
-
-HOMEPAGE = https://www.sourceware.org/gdb/
-LICENSE = GPLv2
-
-UNSUPPORTED_ARCHS = $(PPC_ARCHS)
+DEPENDS = cross/gdb
include ../../mk/spksrc.archs.mk
-
ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH))
-DEPENDS = cross/gdb-legacy
SPK_VERS = 7.12.1
else
-DEPENDS = cross/gdb
-SPK_VERS = 12.1
+ifeq ($(call version_lt, $(TC_GCC), 4.8),1)
+SPK_VERS = 7.12.1
+else
+SPK_VERS = 13.2
+endif
endif
+MAINTAINER = th0ma7
+DESCRIPTION = The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, C, C++, Objective-C, Free Pascal, Fortran, Go and partially others.
+STARTABLE = no
+
+HOMEPAGE = https://www.sourceware.org/gdb/
+LICENSE = GPLv2
+
SPK_COMMANDS = bin/gcore
SPK_COMMANDS += bin/gdb
SPK_COMMANDS += bin/gdb-add-index
SPK_COMMANDS += bin/gdbserver
-ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(ARMv7_ARCHS) $(ARMv7L_ARCHS)),$(ARCH))
+ifeq ($(findstring $(ARCH),$(ARM_ARCHS)),$(ARCH))
SPK_COMMANDS += bin/run
endif
diff --git a/native/llvm-9.0-build/Makefile b/native/llvm-9.0-build/Makefile
new file mode 100644
index 00000000000..14ea74720f2
--- /dev/null
+++ b/native/llvm-9.0-build/Makefile
@@ -0,0 +1,56 @@
+PKG_NAME = llvm
+PKG_VERS = 9.0.1
+PKG_EXT = tar.xz
+PKG_DIST_NAME = $(PKG_NAME)-project-$(PKG_VERS).$(PKG_EXT)
+PKG_DIST_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$(PKG_VERS)
+PKG_DIR = $(PKG_NAME)-project-$(PKG_VERS)
+
+# REMARKS:
+# This was the original native/llvm-9.0/Makefile
+# Since it takes a huge amount of resources to build this, we started to host the
+# output on https://github.com/SynoCommunity/spksrc/releases/tag/native%2Fllvm
+#
+# This Makefile is kept to build it again
+# and has one additional target to build the archive (make build-archive)
+#
+# The main reason to build llvm from source is, that other prebuilt packages
+# do not contain the binary "clang-tblgen" that is mandatory to build cross/llvm-9.0.
+#
+
+DEPENDS =
+
+HOMEPAGE = https://llvm.org/
+COMMENT = The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
+LICENSE = Apache License v2.0 with LLVM Exceptions
+
+CMAKE_USE_NINJA = 1
+POST_INSTALL_TARGET = llvm_post_install
+
+# Using LLVM project source need to change to llvm sub-directory
+CMAKE_DIR = $(WORK_DIR)/$(PKG_DIR)/llvm
+
+CMAKE_ARGS += -DCMAKE_BUILD_TYPE=MinSizeRel
+CMAKE_ARGS += -DLLVM_ENABLE_ASSERTIONS=ON
+CMAKE_ARGS += -DLLVM_BUILD_LLVM_DYLIB=ON
+CMAKE_ARGS += -DLLVM_LINK_LLVM_DYLIB=ON
+CMAKE_ARGS += -DBUILD_SHARED_LIBS=OFF
+CMAKE_ARGS += -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
+CMAKE_ARGS += -DLLVM_ENABLE_PROJECTS='clang'
+CMAKE_ARGS += -DLLVM_TARGETS_TO_BUILD=X86
+
+include ../../mk/spksrc.native-cmake.mk
+
+.PHONY: llvm_post_install
+llvm_post_install:
+ $(RUN) install -m 755 build/bin/llvm-config $(STAGING_INSTALL_PREFIX)/bin/llvm-config
+ $(RUN) install -m 755 build/bin/llvm-tblgen $(STAGING_INSTALL_PREFIX)/bin/llvm-tblgen
+ $(RUN) install -m 755 build/bin/clang-tblgen $(STAGING_INSTALL_PREFIX)/bin/clang-tblgen
+
+
+.PHONY: build-archive
+build-archive:
+ @$(MSG) "Build archive of install folder"
+ifeq ($(wildcard work-native/install/usr/local/bin/*),)
+ $(error "Installation not found. Please call make first.")
+endif
+ cd work-native && tar -czf ../native-$(PKG_NAME)-$(PKG_VERS).tar.gz ./install/*
diff --git a/native/llvm-9.0-build/digests b/native/llvm-9.0-build/digests
new file mode 100644
index 00000000000..9c761ee0dc5
--- /dev/null
+++ b/native/llvm-9.0-build/digests
@@ -0,0 +1,3 @@
+llvm-project-9.0.1.tar.xz SHA1 2e59097a784f1e45dfa483dbf90281c86819a21f
+llvm-project-9.0.1.tar.xz SHA256 ea241c807e949c24615691a5271e20bcaaa404b28a5f6deb462f9c22b478489b
+llvm-project-9.0.1.tar.xz MD5 b4268e733dfe352960140dc07ef2efcb
diff --git a/native/llvm-9.0/Makefile b/native/llvm-9.0/Makefile
index 74aadf68121..519205968d1 100644
--- a/native/llvm-9.0/Makefile
+++ b/native/llvm-9.0/Makefile
@@ -1,9 +1,9 @@
PKG_NAME = llvm
PKG_VERS = 9.0.1
-PKG_EXT = tar.xz
-PKG_DIST_NAME = $(PKG_NAME)-project-$(PKG_VERS).$(PKG_EXT)
-PKG_DIST_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$(PKG_VERS)
-PKG_DIR = $(PKG_NAME)-project-$(PKG_VERS)
+PKG_EXT = tar.gz
+PKG_DIST_NAME = native-$(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
+PKG_DIST_SITE = https://github.com/SynoCommunity/spksrc/releases/download/native%2Fllvm
+EXTRACT_PATH = $(WORK_DIR)
DEPENDS =
@@ -11,25 +11,7 @@ HOMEPAGE = https://llvm.org/
COMMENT = The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
LICENSE = Apache License v2.0 with LLVM Exceptions
-CMAKE_USE_NINJA = 1
-POST_INSTALL_TARGET = llvm_post_install
+# extracted directly into install folder
+INSTALL_TARGET = nop
-# Using LLVM project source need to change to llvm sub-directory
-CMAKE_DIR = $(WORK_DIR)/$(PKG_DIR)/llvm
-
-CMAKE_ARGS += -DCMAKE_BUILD_TYPE=MinSizeRel
-CMAKE_ARGS += -DLLVM_ENABLE_ASSERTIONS=ON
-CMAKE_ARGS += -DLLVM_BUILD_LLVM_DYLIB=ON
-CMAKE_ARGS += -DLLVM_LINK_LLVM_DYLIB=ON
-CMAKE_ARGS += -DBUILD_SHARED_LIBS=OFF
-CMAKE_ARGS += -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
-CMAKE_ARGS += -DLLVM_ENABLE_PROJECTS='clang'
-CMAKE_ARGS += -DLLVM_TARGETS_TO_BUILD=X86
-
-include ../../mk/spksrc.native-cmake.mk
-
-.PHONY: llvm_post_install
-llvm_post_install:
- $(RUN) install -m 755 build/bin/llvm-config $(STAGING_INSTALL_PREFIX)/bin/llvm-config
- $(RUN) install -m 755 build/bin/llvm-tblgen $(STAGING_INSTALL_PREFIX)/bin/llvm-tblgen
- $(RUN) install -m 755 build/bin/clang-tblgen $(STAGING_INSTALL_PREFIX)/bin/clang-tblgen
+include ../../mk/spksrc.native-install.mk
diff --git a/native/llvm-9.0/digests b/native/llvm-9.0/digests
index 9c761ee0dc5..f7c8d6c5593 100644
--- a/native/llvm-9.0/digests
+++ b/native/llvm-9.0/digests
@@ -1,3 +1,3 @@
-llvm-project-9.0.1.tar.xz SHA1 2e59097a784f1e45dfa483dbf90281c86819a21f
-llvm-project-9.0.1.tar.xz SHA256 ea241c807e949c24615691a5271e20bcaaa404b28a5f6deb462f9c22b478489b
-llvm-project-9.0.1.tar.xz MD5 b4268e733dfe352960140dc07ef2efcb
+native-llvm-9.0.1.tar.gz SHA1 6d7e1f2a110ef3922edab15db9e796174e588f3a
+native-llvm-9.0.1.tar.gz SHA256 2cc09cd5df2e81e97950ac34cc9b10bacc791ff9d3ac046c1933ef781b734ca2
+native-llvm-9.0.1.tar.gz MD5 a38761dd62cd2632f94489abf6074a2e
diff --git a/spk/synocli-devel/Makefile b/spk/synocli-devel/Makefile
index ff324736e36..ed92beee20b 100644
--- a/spk/synocli-devel/Makefile
+++ b/spk/synocli-devel/Makefile
@@ -1,11 +1,11 @@
SPK_NAME = synocli-devel
-SPK_VERS = 1.1
-SPK_REV = 2
+SPK_VERS = 1.2
+SPK_REV = 3
SPK_ICON = src/synocli-devel.png
-CHANGELOG = "1. Update LLVM to version 16.0.6
2. Update gdb to version 13.2
3. Update binutils to version 2.40
4. Include libtree 3.3.1 as ldd replacement
5. Include strace 6.4"
+CHANGELOG = "1. Update strace to v6.5.
2. Add support for PPC archs."
MAINTAINER = SynoCommunity
-DESCRIPTION = SynoCli Development Tools provides a set of command-line utilities for system development and debugging: automake 1.65.5, autoconf 2.71, binutils 2.40$(OPTIONAL_DESC), make 4.4.1, pkg-config 0.29.2, libtree 3.1.1, strace 6.4
+DESCRIPTION = SynoCli Development Tools provides a set of command-line utilities for system development and debugging: automake 1.65.5, autoconf 2.71, binutils 2.40$(OPTIONAL_DESC), make 4.4.1, pkg-config 0.29.2, libtree 3.1.1, strace 6.5
DISPLAY_NAME = SynoCli Development Tools
STARTABLE = no
@@ -14,13 +14,11 @@ LICENSE = Each tool is licensed under it\'s respective license.
SPK_DEPENDS = "Perl"
-UNSUPPORTED_ARCHS = $(PPC_ARCHS)
-
OPTIONAL_DEPENDS = cross/llvm
-include ../../mk/spksrc.archs.mk
+include ../../mk/spksrc.common.mk
-ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH))
+ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(OLD_PPC_ARCHS)),$(ARCH))
DEPENDS += cross/llvm
endif
@@ -90,7 +88,7 @@ SPK_COMMANDS += bin/strip
##
## gdb
##
-ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH))
+ifeq ($(call version_lt, $(TC_GCC), 4.8.1),1)
OPTIONAL_DESC += ", gdb 7.12.1"
else
OPTIONAL_DESC += ", gdb 13.2"
@@ -99,16 +97,14 @@ SPK_COMMANDS += bin/gcore
SPK_COMMANDS += bin/gdb
SPK_COMMANDS += bin/gdb-add-index
SPK_COMMANDS += bin/gdbserver
-ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(ARMv7_ARCHS) $(ARMv7L_ARCHS)),$(ARCH))
+ifeq ($(findstring $(ARCH),$(ARM_ARCHS)),$(ARCH))
SPK_COMMANDS += bin/run
endif
-include ../../mk/spksrc.spk.mk
-
##
## LLVM
##
-ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH))
+ifneq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(OLD_PPC_ARCHS)),$(ARCH))
ifeq ($(call version_ge, $(TC_GCC), 5.1),1)
OPTIONAL_DESC += ", LLVM 16.0.6"
SPK_COMMANDS += bin/clang-16
@@ -169,3 +165,6 @@ SPK_COMMANDS += bin/libtree
##
SPK_COMMANDS += bin/strace
SPK_COMMANDS += bin/strace-log-merge
+
+
+include ../../mk/spksrc.spk.mk