cloog
Build times (auto-updated)
- x86_64: 51s (2026-09-25 11:34 UTC, MAKEFLAGS=-j6)
- armv7h: 7m22s (2026-09-25 11:53 UTC, remote, MAKEFLAGS=-j1)
- aarch64: 2m11s (2026-09-25 11:53 UTC, remote, MAKEFLAGS=-j1)
- i686: 53s (2026-09-25 11:33 UTC, MAKEFLAGS=-j6)
- pentium4: 52s (2026-09-25 11:35 UTC, MAKEFLAGS=-j6)
- armv6h: 18m23s (2026-09-25 11:53 UTC, remote, serial)
Category: adapted/ (moved from local-install/ 2026-09-25 – the
pentium4 addition and the TEXI2DVI patch below were already real local
deviations, not an unmodified upstream copy; see
[[feedback_local_adaptions_go_in_adapted]]). Dependency of gcc47
(depends=('cloog' ...)) and needs osl (also adapted/) as its own
dependency.
Library that generates loops for scanning polyhedra.
Build notes (2026-08-17)
- Upstream AUR PKGBUILD declares
arch=('i686' 'x86_64' 'armv7h'), no pentium4. Addedpentium4(pkgrel1->1.1, local-install X.Y scheme) — build itself is straightforward once dependencies are right (see below). makedepends=('texlive-core' 'texlive-bin' 'texlive-plaingeneric')breaks dependency resolution on this host:texlive-binconflicts withtexlive-basicin the official archlinux32extrarepo (both provide/usr/bin/ebb,/usr/bin/extractbb), so pacman refuses to install it as a build dependency — this hit i686 and pentium4 (whose chroots pullextrapackages from the official 32-bit mirror) but not x86_64 the first time around.- Simply dropping
texlive-*frommakedependsisn’t enough:make(plainall),make check, ANDmake installall transitively depend ondoc/cloog.pdf, built viatexi2dvi(an automakedist_pdf_DATA/pdf_DATASUBDIRS rule) — sobuild()/check()/package()all fail without a workingtexbinary once texlive is gone. Fixed by passingTEXI2DVI=true(no-op) on all threemakeinvocations, same trick asgcc47’sMAKEINFO=':'— seememory/gcc47.md. Took three separate build/check/package failures to catch all three call sites; if touching this PKGBUILD again and something similar recurs, checkinstall-recursive/check-recursivetargets too, not just the main build. - pkgrel history:
1->1.1(pentium4 arch addition) ->1.2(texlive removal + TEXI2DVI fix, a second local deviation). - Needs
oslbuilt for pentium4 first (a dependency), seememory/osl.md.
2026-09-25: aarch64/armv6h added (gcc47 ARM chain); i686/pentium4 hung on a stuck local chroot
pkgrel 1.2 -> 1.3, added aarch64/armv6h to arch=() (armv7h
was already upstream-declared but never actually built/published until
this pass either). Needs osl and libisl built for the same new
archs first – see [[osl]] and [[libisl]].
i686 and pentium4 chroot builds both hung indefinitely (55+ min,
zero I/O) at the exact same step: pacman -S --asdeps osl inside the
chroot, after successfully downloading/verifying the package –
stuck specifically in “Processing package changes… installing osl”
with no forward progress. x86_64 (same host, same package) and the
remote ARM boards were unaffected. Root cause: a completely
unrelated, independently-running build job on this same host
(extra-staging-i686-build, not ours – someone else’s official Arch
32-bit staging rebuild, observed running continuously for over an
hour via ps aux) sharing the same /var/cache/archbuild32 bind
mount that every local i686/pentium4 chroot uses – real disk/cache
contention, not a bug in osl/cloog themselves. Confirmed by manually
reproducing outside the pipeline (systemd-nspawn ... pacman -S osl
directly): hung once under a timeout 60, then completed cleanly in
~20s on a subsequent attempt with no changes on our end – purely
timing-dependent on that other job’s I/O pattern, not deterministic.
Fixed by: sudo kill -9 on the specific stuck pacman PIDs (found by
checking /proc/<pid>/io for all-zero rchar/wchar after several
minutes – a genuine hang shows literally zero I/O, not just “slow”).
repo_build.sh’s per-arch loop treats the resulting failure like any
other and moves on to the next arch automatically – no restart of the
whole pipeline needed. Do not use pkill -P <backgrounded-PID> to
target a stuck child buried inside a long chain of nohup’d
processes – that backgrounded PID is the top of the entire
oksh/makechrootpkg/pacman chain (this project’s background jobs are
never truly detached from the launching shell), so -P only reaches
its immediate child, not the actual stuck leaf process; find and kill
the specific stuck PID directly instead (via ps//proc/<pid>/io).
Update 2026-09-25 (later, during gcc47’s own build): the exact
same hang pattern recurred TWICE more, now on gcc47 itself, again
only on i686 – once installing cloog+ppl together (6.5 hours
stuck, not just 55 min), confirmed hung via the same zero-I/O check
plus /proc/<pid>/stack showing futex_do_wait (blocked on an
internal libalpm/curl condition variable, not visibly a DNS/connect
issue – both mirror.archlinux32.org and our own repo host were
directly reachable from the host at the time). This happened well
after the earlier extra-staging-i686-build contention job had
already finished, so that job was not the (sole) root cause –
revise the earlier theory: this looks like a genuine, recurring
flakiness specific to this host’s archlinuxaba-i686 (and
archlinuxaba-pentium4) chroot’s package-installation path, not
(only) shared-cache contention with unrelated jobs. Root cause still
not nailed down – three occurrences now, all on 32-bit chroots, all
zero I/O, all recovered cleanly by sudo kill -9 on the specific
stuck pacman PIDs. If a 32-bit chroot install step exceeds ~5
minutes with a static log tail, check /proc/<pid>/io immediately –
don’t wait an hour “just in case” like the first occurrence did.
Separately: after killing the stuck i686 build, this run’s
repo_release.sh log went silent right after “proceeding to
sign/publish the 3 arch(s) that did succeed” – no step 2/3
(sign/publish) output ever appeared, even though repo_build.sh
itself always exit 0s in that situation (by design, see its own
comment) and the build artifacts were correctly copied back to
arch/adapted/cloog/ by repo_build_staged.sh. Cause not fully
root-caused (something about the nohup’d background chain’s
stdout/log stopped flushing further output, possibly connected to the
same-session kill/pkill activity above disturbing the wrong
process group) – worked around by manually running
scripts/repo_sign.sh + scripts/repo_publish.sh directly against
the already-built *.pkg.tar.* files sitting in the pkgdir, exactly
mirroring what repo_release.sh would have done. If a
repo_release.sh log ever goes silent after a partial-failure
WARNING with no sign/publish following, check whether the pkg files
already exist unsigned in the pkgdir before assuming the whole run
needs a full retry – signing/publishing by hand from existing
artifacts is faster and doesn’t risk re-triggering the same chroot
contention.