Repository navigation
Build with GCC 16 and release 2.9 - #25
Merged
Merged
Conversation
CI now runs in amigadev/crosstools:m68k-amigaos-gcc10 (GCC 16.2.1b), pinned by digest. The image has no native C compiler and its /usr/bin/as and ld are the m68k tools, so CI installs the native gcc and the Makefile links the unit tests through a directory of native as/ld symlinks. The package test reads icon tooltypes with tr instead of binutils strings, which the image lacks. Two AHI labels that newer vasm reports as directive conflicts are fixed; the driver binaries are unchanged.
mhiuae.library's ROMTag was in the data hunk; it is now const and lands in the first code hunk, as the InitResident autodoc requires. host-download's size header and host-shell's console size report parsers could overflow a signed long on long digit runs.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves the build to
amigadev/crosstools:m68k-amigaos-gcc10, which despite its tag ships AmigaPorts GCC 16.2.1b (-mlraon by default) and vasm 2.0f. It also fixes the problems that came up while reviewing the code for the new compiler, and bumps the release to 2.9.Toolchain and CI
sha256:7d2598ff…, built 2026-11-02). The 2.7host-quitcrash came from an unannounced image change, so the release binaries should not move unless the pin moves./usr/bin/asand/usr/bin/ldpoint at the m68k tools. CI installsgcc-<arch>-linux-gnu. The Makefile now gives the native compiler abuild/host-bin/directory holding symlinks to the triplet-prefixed nativeas/ld. The old-B<prefix> -fuse-ld=bfdtrick depended on an unprefixed nativeld.bfd, which this image no longer has.tests/test_package_layout.shreads icon tooltypes withtrinstead ofstrings, because the image has no host binutils..gitattributesforces LF line endings. Without it, a Windows checkout broke the shell tests and would put CRLF into the packagedInstall,READMEand guide. README and RELEASING drop the manual LF advice and show the Docker command with the native compiler install.Warnings
GCC 16 builds every C file with no warnings under
-Wall -Wextra. vasm 2.0f reported twowarning 41label/directive clashes:uae.audio.asm: a column-1Evenwas parsed as a label, so it never aligned anything. It is now the indentedEvendirective its neighbour already uses.UAESND.asm: the unreferencedend:label is renamed tofileend:.All four AHI outputs are byte-identical to master's.
Fixes
mhiuae.library: the ROMTag sat in the data hunk with both GCC 6.5 and GCC 16. It is nowconstand lands in the first code hunk, where theInitResidentautodoc says a disk-based library's ROMTag must be.host-download: the size-header parser overflowed a signedlongon sizes of 2 GB or more. Such sizes are now treated as unknown.host-shell: the console window-size report parser overflowed on long digit runs from type-ahead. Fields stop growing at 1000; valid reports parse as before.Checked but left alone:
uae_pragmas.hcontains no inline asm, because trap calls go through thecalltrapfunction pointer. That means the GCC 16 asm operand/clobber hazard doesn't apply. The NDK inline stubs are GCC 16 safe.host-quitstill starts withjra _start, has no libc references and emits no 020+ instructions.Verification
make clean all test packagein the pinned image after installing the native compiler: exit 0, no compiler or assembler warnings,Host-Tools-2.9.lhaproduced.fd0872d9a, Linux build, AROS ROM, 68020), booting a directory that holds the GCC 16 binaries (built before the 2.9 version bump):host-infoprinted the host details.host-env set/getround-tripped a value.host-pathtranslated a path.OpenLibrary("MHI/mhiuae.library")returned the library at version 2.8 with the right ID string, and closing it worked.host-quitclosed Amiberry in about 10 s (twice).