Apologies if something similar already exists or has been discussed
before. If so, I'd appreciate being pointed to the relevant
documentation or discussion.
I'd like to propose an alternative that may complement raising
architecture baselines. Instead of increasing the default baseline for
official binary packages, Debian could make it easier for users to
locally rebuild the distribution with CPU-specific optimization flags
(mostly march, -flto , -fstack-protector-strong etc ). The idea is to
extend APT/dpkg so it can automatically rebuild installed packages and
their dependency graph from source. While the required pieces already
exist, coordinating recursive builds currently requires managing
custom build scripts and manual intervention. Integrating this
workflow into APT would make optimized local builds accessible to
ordinary users without requiring packaging bootstrapping expertise.
A possible workflow could be:
1. Install a minimal Debian system.
2. Enable an optional "source-based package management" mode that:
* configures source repositories,
* installs the compiler toolchain and build dependencies,
* allows user-defined or Debian-recommended compiler flags.
3. Rebuild installed packages (e.g. `apt reinstall '~i'`), with APT automatically resolving build dependencies, rebuilding packages from
source, and reinstalling them.
4. Continue using the same mechanism for future
`upgrade`/`full-upgrade` operations.
Potential benefits:
* No need for managing multiple micro-architectures
* No major space requirements
* Server all variety of users (scientific computing, security focused e
tc)
* Will this reduce efforts in bootstrapping ?
A few anticipated concerns:
* Why not implement this as an external script?
Most of the required functionality already exists. However,
integrating the workflow into APT would provide a more consistent user experience, reduce duplicated tooling, and make the feature accessible
to a broader audience instead of only advanced users.
* Why not simply use a source-based distribution?
Source-based distributions certainly provide this capability, but
Debian's strengths are different: long-term stability, well-maintained packaging, conservative updates, and extensive security support. I
value those and still want the option to optimize packages for my own
hardware.
* Would this increase unsupported bug reports due to custom compiler fl ags?
That is a legitimate concern. One possible approach would be to
provide a small number of supported optimization profiles (or simply
default to the distribution's standard flags), while clearly
documenting that bug reports resulting from unsupported compiler flags
should first be reproduced using the supported configuration before
being reported.
I realize this would represent a significant enhancement to APT and
would require careful design. Nevertheless, it seems like a possible
way to satisfy users who want hardware-specific optimization without
requiring Debian to change the default architecture baseline for
everyone.
Regards,
Vipul
On Oct 26, 2025, at 5:40?AM, Bastian Blank <waldi@debian.org> wro
te:
?Hi
We never did a real discussion about architecture baselines before, but I
think
we should do that. We also don't have any guidelines what we as Debian w
ant to
actually support. But given that we are a general purpose distribution,
we
have to find a balance.
As a general guidance I would like to aim for a ten to 15 years support r
ange
at release time. The cutoff in respect to the expected 2027 release date
of
Forky would therefor be 2012 to 2017. More time is given for widely used architectures, less for more specialized ones.
Bastian
# Current architecture baseline
Only three architectures set an explicit baseline in gcc-12 (Bookworm) an
d
gcc-15 (Forky):
* armhf: armv7-a+fp
* i386: i686
* s390: z196
All other architectures use the default values.
# Proposal for architecture baseline
## amd64 (and i386)
* x86-64-v2: Supported since around 2008[^x86]. Used in RedHat 9[^redhat9
x86].
* x86-64-v3: Supported since around 2013-2015[^x86]. Used in RedHat
10[^redhat10].
I propose to use the x86-64-v2 baseline in Forky. It gives us more then
the 15
years and everyone else already switched to it or even a newer variant. Factoring in a possible LTS for Trixie, this means that x86-64-v1 will st
op
being supported by Debian in 2030.
## ppc64el
* POWER8: Launched in 2014[^power8].
* POWER9: Launched in 2017[^power9]. Used in RedHat 9[^redhat9] and
10[^redhat10].
I propose to use the POWER9 baseline in Forky. The Debian infrastructure
seems
to be comprised of all POWER9s. This means POWER8 will stop being suppor
ted in
2028.
## s390x
* z14: Launched in 2017[^z14]. Used by RedHat 10[^redhat10].
* z15: Launched in 2019[^z15]. Used by next Ubuntu.
I propose to use the z15 baseline in Forky. Yes, this is less then ten y
ears,
but s390 is such a niche architecture and all we do is best (often not ev
en
this) effort support. The Debian infrastructure is documented to be at l
east
z15, all accesible system are actually z16. This means that z14 and olde
r will
stop being support in 2028.
# How to see supported baseline
The dynamic linker of glibc can show what microarchiture level it conside
rs
supported on the current CPU. The "supported" marker is relevant in this
case.
## amd64
```
% /usr/lib64/ld-linux-x86-64.so.2 --help | sed -n '/^Subdirectories of gl
ibc-hwcaps/,$p'
Subdirectories of glibc-hwcaps directories, in priority order:
x86-64-v4
x86-64-v3 (supported, searched)
x86-64-v2 (supported, searched)
```
## ppc64el
```
% /usr/lib64/ld64.so.2 --help | sed -n '/^Subdirectories of glibc-hwcaps/
,$p'
Subdirectories of glibc-hwcaps directories, in priority order:
power10
power9 (supported, searched)
```
## s390x
```
% /usr/lib/ld64.so.1 --help | sed -n '/^Subdirectories of glibc-hwcaps/,/
^ z15/p'
Subdirectories of glibc-hwcaps directories, in priority order:
z16 (supported, searched)
z15 (supported, searched)
```
[^power8]: https://en.wikipedia.org/wiki/POWER8
[^power9]: https://en.wikipedia.org/wiki/POWER9
[^x86]: https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
[^z14]: https://en.wikipedia.org/wiki/IBM_z14_(microprocessor)
[^z15]: https://en.wikipedia.org/wiki/IBM_z15_(microprocessor)
[^redhat9]: https://docs.redhat.com/en/documentation/red_hat_enterprise_l
inux/9/html/9.0_release_notes/architectures
[^redhat9x86]: https://developers.redhat.com/blog/2021/01/05/building-red
-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level
[^redhat10]: https://docs.redhat.com/en/documentation/red_hat_enterprise_
linux/10/html/considerations_in_adopting_rhel_10/architectures
--
Spock: The odds of surviving another attack are 13562190123 to 1, Captain
.
--- PyGate Linux v1.5.19
* Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)