odin-git
Build times (auto-updated)
- x86_64: 4m6s (2026-10-07 15:35 UTC, MAKEFLAGS=-j6)
- Moved from
local-installtoadapted/on 2026-10-06 (see below) – no longer a bare re-clone, now a real local patch tracked asarch/adapted/odin-git.scripts/install_only_packages’local-install/odin-gitline removed accordingly. - Category (historical, before the move):
local-install(not underarch/— plain upstream AUR package, rebuilt only so archlinuxaba/the cluster gets it too). Local checkout used to live at/data/INSTALL/odin-git. - Found via
yay -Quon the local machine. VCS package — the exact commit/pkgver drifts between whenyay -Qureports an update and when the fresh clone actually happens (saw r18821 inyay -Qu, r18920 by the time of the fresh clone+build a few minutes later). Normal for-gitpackages, not a bug. arch=(x86_64)— literal, no$CARCHparsing trap.- Produces two packages:
odin-gitandodin-git-debug. Large build (~140 MiB installed) — Odin compiler + vendor libs (lua, box2d, stb, glfw, etc. as prebuilt.a/.soblobs). - namcap flags (from upstream’s own PKGBUILD, not ours to fix on a package we
don’t own — re-clone every cycle wipes local edits anyway):
license=('BSD')is not a valid SPDX identifier (should beBSD-3-Clauseor similar); several vendor.solibs lack full RELRO; ausr/lib/odin/vendor/box2d/lib/*.areference to$srcdirleaking into the package. - 2026-08-22: first release to archlinuxaba, r18920.77b970fcf-1, x86_64 only.
LLVM version skew blocks every rebuild (found 2026-10-05, NOT fixable here)
Rebuild during the full -git batch pass failed in build():
./build_odin.sh release
ERROR: No supported llvm-config command found. Set LLVM_CONFIG to proceed. We suggest LLVM 22.
Root cause confirmed by inspecting build_odin.sh directly: it hard-codes
SUPPORTED_LLVM_VERSIONS="22 21 20 19 18 17" and only looks for a bare
llvm-config (accepted if its --version major matches one of those) or
versioned binaries like llvm-config-22. Arch’s extra/llvm is already at
23.1.1-1 and, unlike Debian/Ubuntu, ships only the current unversioned
llvm-config – no llvm-config-18..22 compatibility binaries at all. So
there is currently no llvm-config on this (or any current Arch) system that
build_odin.sh will accept.
Confirmed this isn’t specific to our tree: fetched the AUR’s own current
odin-git PKGBUILD directly (aur.archlinux.org/odin-git.git) – it’s just
make release with no LLVM_CONFIG override either, so the AUR maintainer
hasn’t hit/fixed this yet.
Fixed properly, 2026-10-06: moved to adapted/, pinned llvm22
The local-install re-clone-every-cycle model couldn’t hold a local fix (any
makedepends/LLVM_CONFIG edit gets wiped on the next re-clone – see
[[feedback_local_install_rebuilds]]), so at the user’s request this package
was vendored into arch/adapted/odin-git via
scripts/add_adapted.sh odin-git instead, turning it into a real, persistent
local patch.
No LLVM_CONFIG= override actually needed: makedepends now pulls in
[llvm22],
whose versioned llvm-config-22 binary is exactly what build_odin.sh’s own
auto-detection loop already looks for
(SUPPORTED_LLVM_VERSIONS="22 21 20 19 18 17", checks for llvm-config-$V for
each). Swapping llvm -> llvm22 in makedepends was the only PKGBUILD
change needed. pkgrel bumped 1 -> 1.1 (local packaging-only fix,
adapted/ X.Y scheme per [[feedback_pkgrel_vs_pkgver]]).
Considered llvm19 (existing AUR community package, also within Odin’s
supported range) first since it needs no new build at all – user explicitly
chose to fork llvm22 instead since they intend to upstream it to AUR
themselves. The adapted/llvm19 vendoring was fully reverted (submodule
removed, never committed) once that decision was made.
Confirmed working: built and published clean against the hand-forked llvm22
(r19722.6cfdf2bb3-1, 10m47s). No ABI friction from the system clang++ (23.x)
compiling against llvm22’s headers.
llvm22 dependency now resolves from official extra/, not a fork
2026-10-07: turned out official Arch extra already ships a real
llvm22/llvm22-libs (see [[llvm22]]’s memory file for the full story) –
the entire fork-it-ourselves detour above was unnecessary. User dropped the
hand-forked maintained/llvm22 and its published archlinuxaba packages
entirely once this was found.
No PKGBUILD change needed here beyond fixing a comment that referenced the
now-deleted maintained/llvm22 – makedepends=(... llvm22 ...) already just
names the package, so it now resolves from extra automatically. pkgrel
bumped 1.1 -> 1.2 (comment-only, but kept consistent with this project’s
“any PKGBUILD edit still bumps pkgrel” convention), rebuilt clean against
extra/llvm22 to confirm rather than assuming the already-published build would
keep resolving correctly by luck.
2026-10-07 17:30: pkgrel 1.2 -> 1.3, runtime libLLVM.so.22.1 missing (user report)
User reported
odin: error while loading shared libraries: libLLVM.so.22.1: cannot open shared object file: No such file or directory
at runtime. Cause: depends=(glibc llvm-libs) was wrong – llvm-libs is the
current system LLVM (23.x, ships libLLVM.so.23.1), but this package is built
against llvm22 (see the LLVM-version-skew entries above) via
make release/build_odin.sh’s auto-detected llvm-config-22, which links the
odin binary against libLLVM.so.22.1 specifically – a different soname
llvm-libs doesn’t provide. Fixed by swapping the runtime dep to llvm22-libs
(confirmed via pacman -Fl llvm22-libs that it’s the package actually owning
usr/lib/libLLVM.so.22.1).
Packaging-only fix, pkgrel 1.2 -> 1.3. Rebuilt clean (r19742.774988562, new
HEAD since last build per the usual VCS-package pkgver drift) and published
(x86_64 only), no connection issues in the log.