From f9ee961b43c22de35318530b2e532316249cb602 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Fri, 15 Sep 2023 00:51:08 +0200 Subject: [PATCH 1/5] update synocli-devel - update strace to v6.5 - add and fix gdb for qoriq arch - add llvm-9.0 for qoric arch - add binutils-2.32 for OLD_PPC_ARCHS --- cross/binutils-2.32/Makefile | 28 +++++++ cross/binutils-2.32/PLIST | 19 +++++ cross/binutils-2.32/digests | 3 + cross/binutils-latest/Makefile | 38 ++++++++++ cross/{binutils => binutils-latest}/PLIST | 1 + cross/{binutils => binutils-latest}/digests | 0 cross/binutils/Makefile | 35 ++------- cross/gdb-7.12/Makefile | 28 +++---- .../001-fix-sim-ppc-duplicate-symbols.patch | 74 +++++++++++++++++++ .../002-fix-configure-of-sim-ppc.patch | 14 ++++ cross/gdb-latest/Makefile | 12 +-- cross/gdb/Makefile | 7 +- cross/llvm-9.0/Makefile | 11 ++- cross/llvm-latest/Makefile | 2 +- cross/llvm/Makefile | 2 +- cross/strace/Makefile | 2 +- cross/strace/digests | 6 +- diyspk/binutils/Makefile | 3 +- diyspk/gdb/Makefile | 27 +++---- spk/synocli-devel/Makefile | 29 ++++---- 20 files changed, 254 insertions(+), 87 deletions(-) create mode 100644 cross/binutils-2.32/Makefile create mode 100644 cross/binutils-2.32/PLIST create mode 100644 cross/binutils-2.32/digests create mode 100644 cross/binutils-latest/Makefile rename cross/{binutils => binutils-latest}/PLIST (96%) rename cross/{binutils => binutils-latest}/digests (100%) create mode 100644 cross/gdb-7.12/patches/001-fix-sim-ppc-duplicate-symbols.patch create mode 100644 cross/gdb-7.12/patches/002-fix-configure-of-sim-ppc.patch 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..dcdc6adef64 100644 --- a/cross/gdb-7.12/Makefile +++ b/cross/gdb-7.12/Makefile @@ -8,46 +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 -UNSUPPORTED_ARCHS = $(PPC_ARCHS) - GNU_CONFIGURE = 1 CONFIGURE_TARGET = gdb_configure COMPILE_TARGET = gdb_compile INSTALL_TARGET = gdb_install -include ../../mk/spksrc.common.mk - -CONFIGURE_ARGS += $(TC_CONFIGURE_ARGS) -CONFIGURE_ARGS += --prefix=$(INSTALL_PREFIX) -CONFIGURE_ARGS += --enable-host-shared +CONFIGURE_ARGS = --enable-host-shared CONFIGURE_ARGS += --with-system-zlib -ifeq ($(call version_ge, ${TCVERSION}, 7.0),1) -CONFIGURE_ARGS += --localstatedir=$(INSTALL_PREFIX_VAR) -endif include ../../mk/spksrc.cross-cc.mk -# Library is not created under armv5 and armv7 +# Library is not created for 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 +endif + +ifneq ($(findstring $(ARCH),$(ARM_ARCHS)),$(ARCH)) +# binary only created on arm PLIST_TRANSFORM = sed -e 's?bin:bin/run??g' endif + .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..506cc705eaa 100644 --- a/cross/gdb-latest/Makefile +++ b/cross/gdb-latest/Makefile @@ -8,7 +8,7 @@ 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 @@ -19,10 +19,12 @@ UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(PPC_ARCHS) include ../../mk/spksrc.cross-cc.mk -# Library is not created under armv7 -ifeq ($(findstring $(ARCH),$(ARMv7_ARCHS) $(ARMv7L_ARCHS)),$(ARCH)) +# Library is not created for 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 +endif + +ifneq ($(findstring $(ARCH),$(ARM_ARCHS)),$(ARCH)) +# binary only created for arm PLIST_TRANSFORM = sed -e 's?bin:bin/run??g' endif diff --git a/cross/gdb/Makefile b/cross/gdb/Makefile index 3b8fcf9d7b5..ac4745a462b 100644 --- a/cross/gdb/Makefile +++ b/cross/gdb/Makefile @@ -5,8 +5,13 @@ OPTIONAL_DEPENDS += cross/gdb-7.12 include ../../mk/spksrc.main-depends.mk -ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH)) +ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(PPC_ARCHS)),$(ARCH)) DEPENDS += cross/gdb-7.12 else +ifeq ($(call version_lt, $(TC_GCC), 4.8),1) +DEPENDS += cross/gdb-7.12 +else +# A compiler with support for C++11 language features is required. DEPENDS += cross/gdb-latest endif +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/spk/synocli-devel/Makefile b/spk/synocli-devel/Makefile index ff324736e36..1408c8c6830 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,25 +88,27 @@ SPK_COMMANDS += bin/strip ## ## gdb ## -ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH)) +ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(PPC_ARCHS)),$(ARCH)) +OPTIONAL_DESC += ", gdb 7.12.1" +else +ifeq ($(call version_lt, $(TC_GCC), 4.8),1) OPTIONAL_DESC += ", gdb 7.12.1" else OPTIONAL_DESC += ", gdb 13.2" endif +endif 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 +169,6 @@ SPK_COMMANDS += bin/libtree ## SPK_COMMANDS += bin/strace SPK_COMMANDS += bin/strace-log-merge + + +include ../../mk/spksrc.spk.mk From 4bad7fcea76eadc3a1649602d84acc311480380a Mon Sep 17 00:00:00 2001 From: hgy59 Date: Fri, 15 Sep 2023 22:37:54 +0200 Subject: [PATCH 2/5] use prebuilt native/llvm-9.0 - use self hosted prebuilt native/llvm-9.0 - add native/llvm-9.0-build to keep the build code --- native/llvm-9.0-build/Makefile | 56 ++++++++++++++++++++++++++++++++++ native/llvm-9.0-build/digests | 3 ++ native/llvm-9.0/Makefile | 32 +++++-------------- native/llvm-9.0/digests | 6 ++-- 4 files changed, 69 insertions(+), 28 deletions(-) create mode 100644 native/llvm-9.0-build/Makefile create mode 100644 native/llvm-9.0-build/digests 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 From 74d39b6ab7a2a6e15579ff0749d9ba14f62e66b4 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sat, 16 Sep 2023 08:16:52 +0200 Subject: [PATCH 3/5] adjust gdb version selection - choose gdb-latest based on gcc version with c++11 support only --- cross/gdb/Makefile | 6 +----- spk/synocli-devel/Makefile | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/cross/gdb/Makefile b/cross/gdb/Makefile index ac4745a462b..eb500fb0274 100644 --- a/cross/gdb/Makefile +++ b/cross/gdb/Makefile @@ -5,13 +5,9 @@ OPTIONAL_DEPENDS += cross/gdb-7.12 include ../../mk/spksrc.main-depends.mk -ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(PPC_ARCHS)),$(ARCH)) -DEPENDS += cross/gdb-7.12 -else -ifeq ($(call version_lt, $(TC_GCC), 4.8),1) +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 -endif diff --git a/spk/synocli-devel/Makefile b/spk/synocli-devel/Makefile index 1408c8c6830..ed92beee20b 100644 --- a/spk/synocli-devel/Makefile +++ b/spk/synocli-devel/Makefile @@ -88,15 +88,11 @@ SPK_COMMANDS += bin/strip ## ## gdb ## -ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(PPC_ARCHS)),$(ARCH)) -OPTIONAL_DESC += ", gdb 7.12.1" -else -ifeq ($(call version_lt, $(TC_GCC), 4.8),1) +ifeq ($(call version_lt, $(TC_GCC), 4.8.1),1) OPTIONAL_DESC += ", gdb 7.12.1" else OPTIONAL_DESC += ", gdb 13.2" endif -endif SPK_COMMANDS += bin/gcore SPK_COMMANDS += bin/gdb SPK_COMMANDS += bin/gdb-add-index From 3149bc50307737ebb89d3b2c67bb3bdeb253dc2c Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sat, 16 Sep 2023 16:46:08 +0200 Subject: [PATCH 4/5] gdb: disable sim for PPC - gdb-latest: disable sim for PPC --- cross/gdb-7.12/Makefile | 25 +++++++++++++++++-------- cross/gdb-latest/Makefile | 31 ++++++++++++++++++++++++------- 2 files changed, 41 insertions(+), 15 deletions(-) diff --git a/cross/gdb-7.12/Makefile b/cross/gdb-7.12/Makefile index dcdc6adef64..bed60a69d76 100644 --- a/cross/gdb-7.12/Makefile +++ b/cross/gdb-7.12/Makefile @@ -20,18 +20,27 @@ INSTALL_TARGET = gdb_install CONFIGURE_ARGS = --enable-host-shared CONFIGURE_ARGS += --with-system-zlib -include ../../mk/spksrc.cross-cc.mk +include ../../mk/spksrc.cross-common.mk + +PLIST_TRANSFORM_SED_ARGS = -# Library is not created for armv5 and armv7 -ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(ARMv7_ARCHS) $(ARMv7L_ARCHS)),$(ARCH)) -PLIST_TRANSFORM = sed -e 's?lib:lib/libinproctrace.so??g' +# 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 on arm -PLIST_TRANSFORM = sed -e 's?bin:bin/run??g' +# binary only created for arm +PLIST_TRANSFORM_SED_ARGS += -e 's?bin:bin/run??g' endif +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: @@ -40,8 +49,8 @@ gdb_configure: .PHONY: gdb_compile gdb_compile: - @$(RUN) ; cd build ; PATH=$(abspath $(TC_PATH)):$$PATH make + @$(RUN) ; cd build ; PATH=$(abspath $(TC_PATH)):$$PATH $(MAKE) .PHONY: gdb_install gdb_install: - @$(RUN) ; cd build ; PATH=$(abspath $(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-latest/Makefile b/cross/gdb-latest/Makefile index 506cc705eaa..1549ae0cc14 100644 --- a/cross/gdb-latest/Makefile +++ b/cross/gdb-latest/Makefile @@ -12,19 +12,36 @@ 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.cross-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 armv5 and armv7 -ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS) $(ARMv7_ARCHS) $(ARMv7L_ARCHS)),$(ARCH)) -PLIST_TRANSFORM = sed -e 's?lib:lib/libinproctrace.so??g' +# 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 -e 's?bin:bin/run??g' +PLIST_TRANSFORM_SED_ARGS += -e 's?bin:bin/run??g' +endif + +ifneq ($(strip $(PLIST_TRANSFORM_SED_ARGS)),) +PLIST_TRANSFORM = sed $(PLIST_TRANSFORM_SED_ARGS) endif + +include ../../mk/spksrc.cross-cc.mk From f3ce08468853389cdb2ad0c325af2159f567ee42 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Sat, 16 Sep 2023 17:29:50 +0200 Subject: [PATCH 5/5] fix include of spksrc.common.mk --- cross/gdb-7.12/Makefile | 2 +- cross/gdb-latest/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cross/gdb-7.12/Makefile b/cross/gdb-7.12/Makefile index bed60a69d76..a930128221f 100644 --- a/cross/gdb-7.12/Makefile +++ b/cross/gdb-7.12/Makefile @@ -20,7 +20,7 @@ INSTALL_TARGET = gdb_install CONFIGURE_ARGS = --enable-host-shared CONFIGURE_ARGS += --with-system-zlib -include ../../mk/spksrc.cross-common.mk +include ../../mk/spksrc.common.mk PLIST_TRANSFORM_SED_ARGS = diff --git a/cross/gdb-latest/Makefile b/cross/gdb-latest/Makefile index 1549ae0cc14..b0dd9b3e133 100644 --- a/cross/gdb-latest/Makefile +++ b/cross/gdb-latest/Makefile @@ -15,7 +15,7 @@ GNU_CONFIGURE = 1 CONFIGURE_ARGS = --enable-host-shared CONFIGURE_ARGS += --with-system-zlib -include ../../mk/spksrc.cross-common.mk +include ../../mk/spksrc.common.mk ifeq ($(call version_lt, $(TC_GCC), 4.8.1),1) UNSUPPORTED_ARCHS = $(ARCHS)