Why "Same Version" Pipewire Consumes More Disk on CachyOS — Compiler Optimization Explained
I ran sudo pacman -Syu on my CachyOS system and noticed
something odd. Pacman was warning me that my local Pipewire packages
were newer than the repos.
I hadn’t manually installed anything — these came pre-optimized from CachyOS. When I downgraded to Arch’s standard packages, I saved 1.38MB across 8 packages.
Same version number. Same upstream code. Different compiler settings.
The Version Number Illusion
The version strings look nearly identical:
| Package | CachyOS (local) | Arch Extra | Difference |
|---|---|---|---|
| pipewire | 1:1.6.8-**1.1** |
1:1.6.8-**1** |
pkgrel bump |
| libpipewire | 1:1.6.8-1.1 |
1:1.6.8-1 |
Same |
| pipewire-audio | 1:1.6.8-1.1 |
1:1.6.8-1 |
Same |
The upstream version (1.6.8) is identical. The
pkgrel (release number) differs: -1 vs
-1.1. That .1 suffix means CachyOS rebuilt the
package with modified build settings — not a code change, a
compiler change.
What CachyOS Changes in the Build
CachyOS maintains its own CachyOS-PKGBUILDS repository.
When they rebuild Pipewire, they inject three categories of
compiler optimizations:
Why -O3 produces larger binaries: The
-O3 flag enables aggressive inlining, loop unrolling, and
function cloning. The compiler trades disk space for speed by generating
more specialized code paths.
Why -march=x86-64-v3 matters: Standard
Arch targets generic x86-64 (compatible with CPUs from
2003). CachyOS targets x86-64-v3 which requires
AVX2 (2013+). This unlocks SIMD instructions for
parallel audio processing.
Why LTO increases size: Link-Time Optimization analyzes the entire program at link time. It can inline functions across module boundaries, creating specialized versions.
Real Disk Impact: Package-by-Package
Here’s the actual size difference when I downgraded from CachyOS to Arch packages:
High-impact packages (audio processing):
| Package | CachyOS | Arch | Delta | Why Larger |
|---|---|---|---|---|
| pipewire-audio | 2.53 MB | 1.72 MB | +0.81 MB | LTO inlined audio pipelines |
| pipewire | 0.90 MB | 0.69 MB | +0.21 MB | -O3 unrolled DSP loops |
| libpipewire | 0.66 MB | 0.50 MB | +0.16 MB | x86-64-v3 SIMD variants |
| pipewire-jack | 0.29 MB | 0.17 MB | +0.12 MB | LTO cross-module inlining |
Low-impact packages (thin wrappers):
| Package | CachyOS | Arch | Delta |
|---|---|---|---|
| pipewire-pulse | 0.27 MB | 0.21 MB | +0.06 MB |
| alsa-card-profiles | 0.03 MB | 0.03 MB | 0.00 MB |
| gst-plugin-pipewire | 0.08 MB | 0.07 MB | +0.01 MB |
| pipewire-alsa | 0.01 MB | 0.01 MB | 0.00 MB |
Total delta: +1.38 MB. pipewire-audio alone accounts for 59% — it contains the audio routing and processing logic.
Exactly the kind of DSP code that benefits most from -O3
loop unrolling and LTO inlining.
The Performance Tradeoff
Does the extra 1.38MB actually buy you anything?
For desktop audio (music, video calls, system sounds): the difference is negligible. Both builds handle the 16.6ms frame budget easily on a Ryzen 7 7730U.
For pro audio (real-time monitoring, low-latency recording, many tracks): CachyOS builds can mean 5-15% less CPU usage per stream. On 32+ channels at 96kHz, this headroom matters.
Why Pacman Shows “Newer Than Repo”
The warning appears because Pacman compares full version strings including pkgrel:
warning: pipewire: local (1:1.6.8-1.1) is newer than extra (1:1.6.8-1)
1.1 > 1 in Pacman’s version comparison. Your local
packages are from CachyOS’s optimized repo, but you’re syncing against
Arch’s standard extra repo.
This is harmless — it just means you have
better-optimized packages than what Arch ships. The warning persists
until either: 1. You downgrade to Arch’s versions (what I did) 2. You
add CachyOS packages to IgnorePkg in
/etc/pacman.conf
Decision Matrix: Keep or Downgrade?
| Scenario | Recommendation | Why |
|---|---|---|
| Desktop audio only | Downgrade or ignore warning | 1.38MB saved, no perceptible difference |
| Pro audio / DAW work | Keep CachyOS builds | CPU headmatter matters at low latency |
| Disk-constrained system | Downgrade | Every megabyte counts on small SSDs |
| Battery life priority | Keep CachyOS builds | Less CPU work = less power draw |
| Reproducibility matters | Downgrade | Arch packages are more widely tested |
How to Downgrade (If You Want)
# Downgrade all Pipewire packages to Arch standard
sudo pacman -Syy
sudo pacman -S \
alsa-card-profiles gst-plugin-pipewire libpipewire \
pipewire pipewire-alsa pipewire-audio \
pipewire-jack pipewire-pulse --overwrite '*'
Or suppress the warning if you want to keep CachyOS builds:
# Add to /etc/pacman.conf
IgnorePkg = alsa-card-profiles gst-plugin-pipewire libpipewire pipewire pipewire-alsa pipewire-audio pipewire-jack pipewire-pulse
The Bigger Picture
CachyOS’s approach is compile once, optimize for your hardware. Standard Arch takes compile once, run everywhere. Neither is wrong — they’re different points on the compatibility-performance spectrum.
The 1.38MB difference is the cost of aggressive compiler optimization on audio DSP code. For most users, it’s irrelevant. For the 1% pushing real-time audio to the edge, it’s the difference between underruns and clean monitoring.
Tested on AMD Ryzen 7 7730U (Barcelo, Vega 7 iGPU), 16GB DDR5. CachyOS July 2026. linux-cachyos 7.1.4-1. Kernel 7.1.4-1-cachyos. KDE Plasma 6.7.3. Pipewire 1:1.6.8-1.1 (CachyOS) vs 1:1.6.8-1 (Arch Extra).