Skip to content

Update ROCKNIX to support GCC 15.x/16#2916

Open
marshallward wants to merge 4 commits into
ROCKNIX:nextfrom
marshallward:arch-dev-v2
Open

Update ROCKNIX to support GCC 15.x/16#2916
marshallward wants to merge 4 commits into
ROCKNIX:nextfrom
marshallward:arch-dev-v2

Conversation

@marshallward

@marshallward marshallward commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • What is the goal of this PR?

Several tools are updated and patched to permit building on the latest GCC compilers (later 15.x, 16).

  • a4d5cc2 Cmake: Disable GHS in bootstrap

    GreenHells is removed from the bootstrap stage of CMake. It should be available in the final build (although unlikely to be needed).

  • 0cfc6b2 ncurses: Disable C++ and TERMINFO

    TERMINFO should not be read from the build environment, which can cause issues with less mainstream terminal emulators (e.g. Kitty). This PR unsets TERMINFO related content within the build.

  • f0869c0 m4: Update to 1.4.21
    bfb1ec7 gettext: Update to 1.0
    13de8ec elfutils: Update to 0.195
    e17532c security updates: nspr 4.39, nss 3.125
    a302703 binutils 2.46 update

    Newer GCCs enforce C23 more strictly, which did not match use of _Generic() in gnulib in several projects. This was quickly updated in most projects, but requires an update of the ROCKNIX packages.

    In gettext, additional legacy issues requiring patches are no longer needed, and the patches were removed.

  • a39434f SPIRV-tools: patch an uninitialized variable

    Contained an uninitialized variable, which was failing -Werror builds. This adds an initialization test as a patch.

  • 073bac8 Fluidsynth: Add rpaths

    I encountered a dylib linking issue here. Perhaps the container worked around this with environment variables, but I was able to fix it by adding the toolchain to the RPATH.

  • fbec52f grub: Patch to handle str* API changes

    Several functions which accept const str * now require the return result to be const str *. This is now enforced more strictly in GCC. This patch modifies the definitions of the respective outputs.

Testing

SM8250 build was tested, build was verified and was able to successfully boot kernel and launch EmulationStation on Retroid Pocket 5.

AI Usage

Did you use AI tools to help write this code?

GPT 5.5 chatbot debugging support but no code generation.

@marshallward

Copy link
Copy Markdown
Contributor Author

I see the error about not touching content in packages/. Is this meant to always match the parent repo? (I think LibreELEC?)

What's the right thing to do here? Should that content go through them?

@r3claimer

Copy link
Copy Markdown
Contributor

Updating packages outside of the projects/ROCKNIX folder will break syncing with up stream libre elec.

* Build host without C++ bindings
* Unset TERMINFO and TERMINFO_DIR to prevent tic reading user environ
Patch to get around an uninitialized variable warning.
Updates to several glibc str*() functions now expect inputs and output
const state to match.  This patch adds a patch to grub to correct these
arguments.
@marshallward

Copy link
Copy Markdown
Contributor Author

PR has been updated to only update ROCKNIX packages.

Is https://github.com/LibreELEC/LibreELEC.tv the place to verify upstream packages?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants