From 813d86f1b61cfd3e5fad7e2c70b9479257e75f99 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Mon, 13 Jan 2025 01:18:20 +0100 Subject: [PATCH] add SRM 1.3 toolchains (#6318) * add SRM 1.3 toolchains - add toolchains extracted from toolkit from Synology downloads - hawkeye is an early release and seems incorrect * add SRM 1.3 to new build matrix * build.yml: limit manual build to 10 input fields * fix Makefile of armv7-1.3 toolchain * fix check for required SRM versions * add remarks for hawkeye-1.3 toolchain * kernel version of cypress-1.3 verified --- .github/workflows/build.yml | 28 ++++++++++++++++------------ mk/spksrc.archs.mk | 8 ++++++-- mk/spksrc.tc-vers.mk | 4 ++++ toolchain/syno-aarch64-1.3/Makefile | 19 +++++++++++++++++++ toolchain/syno-aarch64-1.3/digests | 3 +++ toolchain/syno-armv7-1.3/Makefile | 19 +++++++++++++++++++ toolchain/syno-armv7-1.3/digests | 3 +++ toolchain/syno-cypress-1.3/Makefile | 16 ++++++++++++++++ toolchain/syno-cypress-1.3/digests | 3 +++ toolchain/syno-dakota-1.3/Makefile | 16 ++++++++++++++++ toolchain/syno-dakota-1.3/digests | 3 +++ toolchain/syno-hawkeye-1.3/Makefile | 24 ++++++++++++++++++++++++ toolchain/syno-hawkeye-1.3/digests | 3 +++ toolchain/syno-ipq806x-1.3/Makefile | 16 ++++++++++++++++ toolchain/syno-ipq806x-1.3/digests | 3 +++ 15 files changed, 154 insertions(+), 14 deletions(-) create mode 100644 toolchain/syno-aarch64-1.3/Makefile create mode 100644 toolchain/syno-aarch64-1.3/digests create mode 100644 toolchain/syno-armv7-1.3/Makefile create mode 100644 toolchain/syno-armv7-1.3/digests create mode 100644 toolchain/syno-cypress-1.3/Makefile create mode 100644 toolchain/syno-cypress-1.3/digests create mode 100644 toolchain/syno-dakota-1.3/Makefile create mode 100644 toolchain/syno-dakota-1.3/digests create mode 100644 toolchain/syno-hawkeye-1.3/Makefile create mode 100644 toolchain/syno-hawkeye-1.3/digests create mode 100644 toolchain/syno-ipq806x-1.3/Makefile create mode 100644 toolchain/syno-ipq806x-1.3/digests diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 73859b2c3ac..9ff53f3d6c5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,23 +3,15 @@ name: Build on: workflow_dispatch: inputs: - package: - description: 'Package to build' - required: true - default: 'adminer' publish: description: 'Publish to repository' required: false default: false type: boolean - # Add a separator as a non-input description - build_settings_description: - description: 'Build Settings (archs to include):' - required: false - default: '' - type: choice - options: - - '---' + package: + description: 'Package to build' + required: true + default: 'adminer' add_noarch_builds: description: 'Include noarch packages' required: false @@ -50,6 +42,11 @@ on: required: false default: false type: boolean + add_srm13_builds: + description: 'Include SRM 1.3 archs' + required: false + default: false + type: boolean add_srm12_builds: description: 'Include SRM 1.2 archs' required: false @@ -141,6 +138,7 @@ jobs: add_dsm71_builds=${{ github.event.inputs.add_dsm71_builds || 'false' }} add_dsm62_builds=${{ github.event.inputs.add_dsm62_builds || 'false' }} add_dsm52_builds=${{ github.event.inputs.add_dsm52_builds || 'false' }} + add_srm13_builds=${{ github.event.inputs.add_srm13_builds || 'false' }} add_srm12_builds=${{ github.event.inputs.add_srm12_builds || 'false' }} has_noarch_packages=$([ -n "${{ needs.prepare.outputs.noarch_packages }}" ] && echo "true" || echo "false") has_arch_packages=$([ -n "${{ needs.prepare.outputs.arch_packages }}" ] && echo "true" || echo "false") @@ -219,6 +217,12 @@ jobs: add_to_matrix "ppc853x-5.2" fi + # Add SRM 1.3 builds + if [ "$add_srm13_builds" == "true" ]; then + add_to_matrix "aarch64-1.3" + add_to_matrix "armv7-1.3" + fi + # Add SRM 1.2 builds if [ "$add_srm12_builds" == "true" ]; then add_to_matrix "armv7-1.2" diff --git a/mk/spksrc.archs.mk b/mk/spksrc.archs.mk index 6216a696a56..6748f93d353 100644 --- a/mk/spksrc.archs.mk +++ b/mk/spksrc.archs.mk @@ -16,7 +16,11 @@ endif # Distinct SRM and DSM archs to allow handling of different TCVERSION ranges. # SRM - Synology Router Manager -SRM_ARMv7_ARCHS = northstarplus ipq806x dakota +SRM_ARMv7_ARCHS = northstarplus ipq806x dakota hawkeye +SRM_ARMv8_ARCHS = cypress +# required in spksrc.pre-check.mk +SRM_ARCHS = $(SRM_ARMv7_ARCHS) $(SRM_ARMv8_ARCHS) + # DSM - all ARMv7 except SRM specific archs DSM_ARMv7_ARCHS = alpine alpine4k armada370 armada375 armada38x armadaxp monaco # comcerto2k is the only ARMv7 arch that uses an GCC (4.9.3) and GLIBC (2.20) @@ -32,7 +36,7 @@ ARMv5_ARCHS = 88f6281 ARMv7_ARCHS = $(GENERIC_ARMv7_ARCH) $(DSM_ARMv7_ARCHS) $(SRM_ARMv7_ARCHS) # hi3535 is not supported by generic ARMv7 arch ARMv7L_ARCHS = hi3535 -ARMv8_ARCHS = $(GENERIC_ARMv8_ARCH) rtd1296 rtd1619b armada37xx +ARMv8_ARCHS = $(GENERIC_ARMv8_ARCH) $(SRM_ARMv8_ARCHS) rtd1296 rtd1619b armada37xx ARM_ARCHS = $(ARMv5_ARCHS) $(ARMv7_ARCHS) $(ARMv7L_ARCHS) $(ARMv8_ARCHS) PPC_ARCHS = powerpc ppc824x ppc853x ppc854x qoriq diff --git a/mk/spksrc.tc-vers.mk b/mk/spksrc.tc-vers.mk index a25421c3868..b82a99b0c04 100644 --- a/mk/spksrc.tc-vers.mk +++ b/mk/spksrc.tc-vers.mk @@ -6,6 +6,10 @@ ifeq ($(TC_VERS),1.2) TC_BUILD = 7742 endif +ifeq ($(TC_VERS),1.3) +TC_BUILD = 9193 +endif + ifeq ($(TC_VERS),4.0) TC_BUILD = 2198 endif diff --git a/toolchain/syno-aarch64-1.3/Makefile b/toolchain/syno-aarch64-1.3/Makefile new file mode 100644 index 00000000000..a53662ddb05 --- /dev/null +++ b/toolchain/syno-aarch64-1.3/Makefile @@ -0,0 +1,19 @@ +TC_NAME = syno-aarch64 + +TC_ARCH = cypress +TC_VERS = 1.3 +TC_TYPE = SRM +# TODO: validate kernel version +TC_KERNEL = 4.4.60 +TC_GLIBC = 2.32 + +TC_DIST = cypress-gcc1030_glibc232_srm-1.3 +TC_EXT = tar.xz +TC_DIST_SITE_URL = https://github.com/SynoCommunity/spksrc/releases/download/ +TC_DIST_SITE_PATH = toolchains%2Fsrm1.3 + +TC_TARGET = aarch64-unknown-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sysroot +TC_EXTRA_CFLAGS = -march=armv8-a -mcpu=cortex-a53+crypto + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-aarch64-1.3/digests b/toolchain/syno-aarch64-1.3/digests new file mode 100644 index 00000000000..5c7d79aa084 --- /dev/null +++ b/toolchain/syno-aarch64-1.3/digests @@ -0,0 +1,3 @@ +cypress-gcc1030_glibc232_srm-1.3.tar.xz SHA1 911984ee0fb2b74d73ee4bf3d061c04c71de0548 +cypress-gcc1030_glibc232_srm-1.3.tar.xz SHA256 9674ad17852b7d959551c5402b5d396cf5d9111650ab903b79b7b2053b269a22 +cypress-gcc1030_glibc232_srm-1.3.tar.xz MD5 90512b5e3644406af8ce15b0ff444b4d diff --git a/toolchain/syno-armv7-1.3/Makefile b/toolchain/syno-armv7-1.3/Makefile new file mode 100644 index 00000000000..f75918e52b5 --- /dev/null +++ b/toolchain/syno-armv7-1.3/Makefile @@ -0,0 +1,19 @@ +TC_NAME = syno-armv7 + +# generic toolchain for arm7hf SRM +TC_ARCH = ipq806x dakota +TC_VERS = 1.3 +TC_TYPE = SRM +TC_KERNEL = 4.4.60 +TC_GLIBC = 2.32 + +TC_DIST = ipq806x-gcc1030_glibc232_srm-1.3 +TC_EXT = tar.xz +TC_DIST_SITE_URL = https://github.com/SynoCommunity/spksrc/releases/download/ +TC_DIST_SITE_PATH = toolchains%2Fsrm1.3 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot +TC_EXTRA_CFLAGS = -mhard-float -mfpu=vfpv3-d16 -march=armv7-a -mtune=cortex-a9 + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-armv7-1.3/digests b/toolchain/syno-armv7-1.3/digests new file mode 100644 index 00000000000..11bc15c317a --- /dev/null +++ b/toolchain/syno-armv7-1.3/digests @@ -0,0 +1,3 @@ +ipq806x-gcc1030_glibc232_srm-1.3.tar.xz SHA1 16e65e2c894624209eef5c28fe2355cad45fa208 +ipq806x-gcc1030_glibc232_srm-1.3.tar.xz SHA256 dca25911415d575be5f6746371d3483321727bf6e43d50913b8996b502603030 +ipq806x-gcc1030_glibc232_srm-1.3.tar.xz MD5 262155161fbbb4d9149a72619d0f681a diff --git a/toolchain/syno-cypress-1.3/Makefile b/toolchain/syno-cypress-1.3/Makefile new file mode 100644 index 00000000000..5596d257bfc --- /dev/null +++ b/toolchain/syno-cypress-1.3/Makefile @@ -0,0 +1,16 @@ +TC_ARCH = cypress +TC_VERS = 1.3 +TC_TYPE = SRM +TC_KERNEL = 4.4.60 +TC_GLIBC = 2.32 + +TC_DIST = cypress-gcc1030_glibc232_srm-1.3 +TC_EXT = tar.xz +TC_DIST_SITE_URL = https://github.com/SynoCommunity/spksrc/releases/download/ +TC_DIST_SITE_PATH = toolchains%2Fsrm1.3 + +TC_TARGET = aarch64-unknown-linux-gnu +TC_SYSROOT = $(TC_TARGET)/sysroot +TC_EXTRA_CFLAGS = -march=armv8-a -mcpu=cortex-a53+crypto + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-cypress-1.3/digests b/toolchain/syno-cypress-1.3/digests new file mode 100644 index 00000000000..5c7d79aa084 --- /dev/null +++ b/toolchain/syno-cypress-1.3/digests @@ -0,0 +1,3 @@ +cypress-gcc1030_glibc232_srm-1.3.tar.xz SHA1 911984ee0fb2b74d73ee4bf3d061c04c71de0548 +cypress-gcc1030_glibc232_srm-1.3.tar.xz SHA256 9674ad17852b7d959551c5402b5d396cf5d9111650ab903b79b7b2053b269a22 +cypress-gcc1030_glibc232_srm-1.3.tar.xz MD5 90512b5e3644406af8ce15b0ff444b4d diff --git a/toolchain/syno-dakota-1.3/Makefile b/toolchain/syno-dakota-1.3/Makefile new file mode 100644 index 00000000000..66654a7e468 --- /dev/null +++ b/toolchain/syno-dakota-1.3/Makefile @@ -0,0 +1,16 @@ +TC_ARCH = dakota +TC_VERS = 1.3 +TC_TYPE = SRM +TC_KERNEL = 4.4.60 +TC_GLIBC = 2.32 + +TC_DIST = dakota-gcc1030_glibc232_srm-1.3 +TC_EXT = tar.xz +TC_DIST_SITE_URL = https://github.com/SynoCommunity/spksrc/releases/download/ +TC_DIST_SITE_PATH = toolchains%2Fsrm1.3 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot +TC_EXTRA_CFLAGS = -mhard-float -mfpu=vfpv3-d16 -march=armv7-a + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-dakota-1.3/digests b/toolchain/syno-dakota-1.3/digests new file mode 100644 index 00000000000..6a857dd9a50 --- /dev/null +++ b/toolchain/syno-dakota-1.3/digests @@ -0,0 +1,3 @@ +dakota-gcc1030_glibc232_srm-1.3.tar.xz SHA1 4149ea4426ae1c020fb72b53d9f94dc38d506d7d +dakota-gcc1030_glibc232_srm-1.3.tar.xz SHA256 20c5beab10ee944e40a81ead9ce52c6b79e47cdadceb0c475078677ae7118a80 +dakota-gcc1030_glibc232_srm-1.3.tar.xz MD5 84395d6951f57173f8456c885c90ec6a diff --git a/toolchain/syno-hawkeye-1.3/Makefile b/toolchain/syno-hawkeye-1.3/Makefile new file mode 100644 index 00000000000..3cdf93bb3ec --- /dev/null +++ b/toolchain/syno-hawkeye-1.3/Makefile @@ -0,0 +1,24 @@ +TC_ARCH = hawkeye +TC_VERS = 1.3 +TC_TYPE = SRM +# TODO: validate kernel version +TC_KERNEL = 4.4.60 +TC_GLIBC = 2.32 + +# REMARKS: +# This toolchain seems to be broken. +# +# The toolchain is extracted from ds.hawkeye-1.3.env.tgz provided by Synology. +# Qualcomm Hawkeye IPQ8071A CPU is an ARM 64-bit cpu (4x ARM Cortex A53), +# but the toolchain is armv7 (32-bit) (binary the same as syno-dakota-1.3) +# + +TC_DIST = hawkeye-gcc1030_glibc232_srm-1.3 +TC_EXT = tar.xz +TC_DIST_SITE_URL = https://github.com/SynoCommunity/spksrc/releases/download/ +TC_DIST_SITE_PATH = toolchains%2Fsrm1.3 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-hawkeye-1.3/digests b/toolchain/syno-hawkeye-1.3/digests new file mode 100644 index 00000000000..7801077794e --- /dev/null +++ b/toolchain/syno-hawkeye-1.3/digests @@ -0,0 +1,3 @@ +hawkeye-gcc1030_glibc232_srm-1.3.tar.xz SHA1 4604bc90701910e02ee6531655abb8dfe8359f05 +hawkeye-gcc1030_glibc232_srm-1.3.tar.xz SHA256 797a232dc3f30389f80609dd8047e92bcee70e48f51bb92b73672aa582233458 +hawkeye-gcc1030_glibc232_srm-1.3.tar.xz MD5 c9b9bbf8fc59798030df8ae4608ca2a6 diff --git a/toolchain/syno-ipq806x-1.3/Makefile b/toolchain/syno-ipq806x-1.3/Makefile new file mode 100644 index 00000000000..51fda2e0d18 --- /dev/null +++ b/toolchain/syno-ipq806x-1.3/Makefile @@ -0,0 +1,16 @@ +TC_ARCH = ipq806x +TC_VERS = 1.3 +TC_TYPE = SRM +TC_KERNEL = 4.4.60 +TC_GLIBC = 2.32 + +TC_DIST = ipq806x-gcc1030_glibc232_srm-1.3 +TC_EXT = tar.xz +TC_DIST_SITE_URL = https://github.com/SynoCommunity/spksrc/releases/download/ +TC_DIST_SITE_PATH = toolchains%2Fsrm1.3 + +TC_TARGET = arm-unknown-linux-gnueabi +TC_SYSROOT = $(TC_TARGET)/sysroot +TC_EXTRA_CFLAGS = -mhard-float -mfpu=vfpv3-d16 -march=armv7-a -mtune=cortex-a9 + +include ../../mk/spksrc.tc.mk diff --git a/toolchain/syno-ipq806x-1.3/digests b/toolchain/syno-ipq806x-1.3/digests new file mode 100644 index 00000000000..11bc15c317a --- /dev/null +++ b/toolchain/syno-ipq806x-1.3/digests @@ -0,0 +1,3 @@ +ipq806x-gcc1030_glibc232_srm-1.3.tar.xz SHA1 16e65e2c894624209eef5c28fe2355cad45fa208 +ipq806x-gcc1030_glibc232_srm-1.3.tar.xz SHA256 dca25911415d575be5f6746371d3483321727bf6e43d50913b8996b502603030 +ipq806x-gcc1030_glibc232_srm-1.3.tar.xz MD5 262155161fbbb4d9149a72619d0f681a