On 9/14/26 03:09, Valentin Lefebvre via Patches for the config.guess and config.sub scripts wrote:
Dear GNU config maintainers,

I am writing to propose a patch that improves how config.guess resolves the vendor field in target triplets, with a specific focus on easing the distribution packaging process for downstream maintainers.

Background & Motivation:
For over two decades, openSUSE have carried downstream patches (historically known as automake-SuSE.patch since 2001) targeting config.guess. The purpose of these patches is to ensure that a plain ./config.guess run on our systems returns the correct distribution-branded vendor name (e.g., aarch64-suse-linux-gnu instead of aarch64-unknown-linux-gnu) to match our compiler toolchain's target definitions. This has been added following the `automake` package.

However, carrying a 500+ line patch that replaces "-unknown-" across hundreds of case matches is extremely fragile and painful to maintain. As upstream structures evolve, downstream patches inevitably suffer from merge conflicts and silently miss new or changed targets.

The Solution: Dynamic VENDOR_GUESS
The attached patch replaces hardcoded -unknown- strings in target triplets with a dynamic ${VENDOR_GUESS} variable.

Key changes in this patch:
 1. Dynamic Initialization: It initializes VENDOR_GUESS based on system-wide and environment configurations. It auto-detects SUSE/openSUSE systems by checking /etc/os-release, /etc/SuSE-release, or the chroot /.buildenv file, defaulting it to suse. Otherwise, it falls back to unknown (or pc on i?86 systems).  2. Ecosystem-wide Benefits: Other distributions (e.g., Fedora, Debian, Alpine, etc.) can easily add their own file-based detection blocks to this initialization list to customize their canonical output.

I would love to hear your thoughts and feedback on integrating this model. Thank you for your time and continued maintenance of these core GNU build tools.

[...]

As I mentioned earlier when this was proposed at the Automake list, I believe that this proposal represents a fundamental misunderstanding of the purpose of GNU configuration tuples.

GNU configuration tuples are meant to name ABIs, and building for a different configuration tuple implies building for a different (presumably incompatible) ABI.  The VENDOR field was intended to name a *hardware* vendor, to account for different vendors using the same CPU architecture with different supporting logic.

The VENDOR field is *not* intended as a place to put distribution branding.  Setting VENDOR to "suse" (or "fedora" or "debian", etc.) is claiming that each distribution has its own unique ABI and amounts to thoroughly fracturing GNU/Linux.

Not only should this not be integrated upstream, but openSuSE should drop those patches entirely and revert to using the standard configuration tuples.


-- Jacob

Reply via email to