Skip to content

Commit 31760d6

Browse files
th0ma7claude
andcommitted
tvheadend tree: state the compiler floors instead of listing architectures
Seven packages in tvheadend's dependency tree refused work by naming architectures. The reason was never the architecture -- it was the compiler those architectures happen to ship -- and an arch list cannot be lifted by a newer one, which is what OVERLAY_GCC (#7391) will offer. cairo-latest libdrm nghttp3 openexr pngquant3 MIN_GCC_VERSION = 4.8 glib-2.66 glib-latest MIN_GCC_VERSION = 4.6 4.8 is measured, not assumed: on the Synology toolchains core C++11 -- unique_ptr brace-init, std::mutex, lambdas -- fails on gcc 4.6.4 and 4.7.3 and works from 4.8.3. cairo's missing __FLOAT_WORD_ORDER__ follows the same line. 4.6 is where the two glib packages sat already: only the 2008 PowerPC compiler was excluded, ARMv5's 4.6.4 builds them. openexr loses its UNSUPPORTED_ARCHS_TCVERSION = x86-5.2 exception as well: that arch runs gcc 4.7.3 and fails the same check, so the floor already says it. No architecture is freed by this change and every newly excluded one is a DSM 5.2 arch below the floor -- alpine, armada370/375/xp, avoton, braswell, bromolow, cedarview, comcerto2k, evansport, qoriq, x64, x86, all at 4.3.7 to 4.7.3. DSM 6.x and 7.x are untouched. build.yml turns DSM 5.2 on temporarily so CI exercises exactly those; that commit reverts before merge. Left as architecture lists on purpose: llvm-140 and Khronos-SPIRV-LLVM-Translator-140 are x86_64 host tooling, openh264 has no PowerPC support upstream, and c-ares-latest needs IN_NONBLOCK, which no glibc floor can express -- x86-5.2 ships 2.17 without it while 88f6281 ships 2.15 with it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0196PQRxsWa1WR34wj1VUjUL
1 parent 76cea70 commit 31760d6

8 files changed

Lines changed: 26 additions & 12 deletions

File tree

.github/workflows/build.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,10 @@ jobs:
281281
add_dsm70_builds=${{ github.event.inputs.add_dsm70_builds || 'false' }}
282282
add_dsm62_builds=${{ github.event.inputs.add_dsm62_builds || 'false' }}
283283
add_dsm61_builds=${{ github.event.inputs.add_dsm61_builds || 'false' }}
284-
add_dsm52_builds=${{ github.event.inputs.add_dsm52_builds || 'false' }}
284+
# TEMP (revert before merge): activate DSM 5.2 so the archs these floors newly
285+
# exclude are actually exercised. Every arch whose behaviour changes here is a
286+
# 5.2 one; DSM 6.x and 7.x are untouched by this PR.
287+
add_dsm52_builds=${{ github.event.inputs.add_dsm52_builds || 'true' }}
285288
add_srm13_builds=${{ github.event.inputs.add_srm13_builds || 'false' }}
286289
add_srm12_builds=${{ github.event.inputs.add_srm12_builds || 'false' }}
287290
add_noarch_builds=${{ github.event.inputs.add_noarch_builds || 'false' }}

cross/cairo-latest/Makefile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
88

99
DEPENDS = cross/libpng cross/freetype cross/pixman cross/fontconfig cross/glib
1010

11-
# ERROR: Could not get define '__FLOAT_WORD_ORDER__'
12-
UNSUPPORTED_ARCHS = $(OLD_PPC_ARCHS) $(ARMv5_ARCHS)
11+
# gcc only defines __FLOAT_WORD_ORDER__ from 4.8 on these toolchains; without it meson
12+
# stops at "Could not get define '__FLOAT_WORD_ORDER__'". Stated as a floor rather than an
13+
# arch list so a newer compiler lifts it, and so archs nobody tried are covered too:
14+
# x86-5.2 and x64-5.2 (4.7.3) lack the define just as ppc853x (4.3.7) does.
15+
MIN_GCC_VERSION = 4.8
1316

1417
HOMEPAGE = https://www.cairographics.org
1518
COMMENT = Cairo is a 2D graphics library with support for multiple output devices.

cross/glib-2.66/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ HOMEPAGE = https://developer.gnome.org/glib/
1111
COMMENT = General-purpose utility library.
1212
LICENSE = LGPLv2.1+
1313

14-
UNSUPPORTED_ARCHS = $(OLD_PPC_ARCHS)
14+
# Only the 2008 PowerPC compiler (4.3.7) was ever excluded here; ARMv5's 4.6.4 builds it.
15+
MIN_GCC_VERSION = 4.6
1516

1617
# https://docs.gtk.org/glib/building.html
1718
CONFIGURE_ARGS += -Dlibmount=disabled

cross/glib-latest/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ HOMEPAGE = https://developer.gnome.org/glib/
1111
COMMENT = General-purpose utility library.
1212
LICENSE = LGPLv2.1+
1313

14-
UNSUPPORTED_ARCHS = $(OLD_PPC_ARCHS)
14+
# Only the 2008 PowerPC compiler (4.3.7) was ever excluded here; ARMv5's 4.6.4 builds it.
15+
MIN_GCC_VERSION = 4.6
1516

1617
# https://docs.gtk.org/glib/building.html
1718
CONFIGURE_ARGS += -Dgtk_doc=false -Dman=false

cross/libdrm/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
77

88
DEPENDS = cross/libpciaccess
99

10-
UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS)
10+
# Same compiler floor the other meson/C11 users in this tree need. Was an arch list
11+
# covering 4.3.7 and 4.6.4; 4.8.3 builds it.
12+
MIN_GCC_VERSION = 4.8
1113

1214
HOMEPAGE = https://dri.freedesktop.org/wiki/DRM/
1315
COMMENT = Userspace interface to kernel DRM services.

cross/nghttp3/Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
1010

1111
DEPENDS = cross/gnutls
1212

13-
# archs without C++11 support
14-
UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS)
13+
# archs without C++11 support. Measured on the Synology toolchains, core C++11 fails on
14+
# gcc 4.6.4 and 4.7.3 and works from 4.8.3, so the arch list becomes that floor.
15+
MIN_GCC_VERSION = 4.8
1516

1617
HOMEPAGE = https://nghttp2.org/nghttp3/
1718
COMMENT = HTTP/3 library written in C.

cross/openexr/Makefile

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
1111

1212
DEPENDS = cross/zlib
1313

14-
# Toolchains lacking c++11 compiler ar not supported
15-
UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS)
16-
UNSUPPORTED_ARCHS_TCVERSION = x86-5.2
14+
# Toolchains lacking a c++11 compiler are not supported. One floor replaces both the arch
15+
# list and the x86-5.2 exception: that arch runs gcc 4.7.3, which fails the same C++11
16+
# check as the ARMv5 and old PowerPC ones.
17+
MIN_GCC_VERSION = 4.8
1718

1819
HOMEPAGE = https://www.openexr.com/
1920
COMMENT = OpenEXR provides the specification and reference implementation of the EXR file format, the professional-grade image storage format of the motion picture industry.

cross/pngquant3/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ HOMEPAGE = https://pngquant.org/
1515
COMMENT = pngquant is a command-line utility and a library for lossy compression of PNG images.
1616
LICENSE = GPL
1717

18-
UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS)
18+
# "Fails on older gcc for its internal dependencies" (see the -std=c99 workaround below),
19+
# which is a compiler floor, not a property of these architectures.
20+
MIN_GCC_VERSION = 4.8
1921

2022
include ../../mk/spksrc.common.mk
2123

0 commit comments

Comments
 (0)