Skip to content

fix(gnu.org/gcc): add Debian multi-arch triplet symlinks (addresses #8423)#13083

Open
tannevaled wants to merge 2 commits into
pkgxdev:mainfrom
tannevaled:fix/gcc-multiarch-symlinks
Open

fix(gnu.org/gcc): add Debian multi-arch triplet symlinks (addresses #8423)#13083
tannevaled wants to merge 2 commits into
pkgxdev:mainfrom
tannevaled:fix/gcc-multiarch-symlinks

Conversation

@tannevaled
Copy link
Copy Markdown
Contributor

Summary

  • Adds `x86_64-linux-gnu-gcc` / `aarch64-linux-gnu-gcc` (+ matching g++, ar, nm, etc.) as symlinks to the plain tool names in `{{prefix}}/bin`.
  • Linux only — darwin doesn't use this convention.

Why

Many Linux build systems probe for the architecture-prefixed binary names (`$ARCH-linux-gnu-gcc`) before falling back to plain `gcc`:

  • autoconf default `AC_PROG_CC`
  • Python distutils / setuptools
  • pip C-extension wheels (numpy, lxml, cryptography, pillow, ...)
  • scikit-build, meson, cmake on some templates

Without these, `pkgx install gcc` works on Fedora-style rootfs but fails on Ubuntu/Debian-style rootfs even though gcc IS on PATH.

Addresses the first of two issues raised in #8423.

Out of scope

The second issue in #8423 — `stdlib.h: No such file or directory` on Fedora — is the libc-headers gap. pkgx's gcc relies on the system glibc-devel for /usr/include/. That requires a separate `gnu.org/glibc` bottle + runtime dep wiring; see the bklibcvenv-pattern follow-ups (#12968 and brewkit#348).

🤖 Generated with Claude Code

Many Linux build systems (autoconf, distutils, setuptools, pip build
backends, scikit-build, etc.) probe for the architecture-prefixed
binary names — `x86_64-linux-gnu-gcc`, `aarch64-linux-gnu-g++`, etc. —
before falling back to plain `gcc`. Without these symlinks, pip-install
of any Python C-extension wheel fails on Ubuntu/Debian rootfs even
when `gcc` IS on PATH.

Addresses one of the two complaints in pkgxdev#8423.

The other issue raised there (`stdlib.h: No such file or directory`
on Fedora) is the libc-headers gap — pkgx's gcc relies on the system
glibc-devel for /usr/include/stdlib.h etc. That requires a separate
gnu.org/glibc bottle + runtime dep wiring; see bklibcvenv-pattern
follow-ups (pkgxdev#12968 and brewkit#348).
Multi-arch triplet symlinks (pkgxdev#13083 / pkgxdev#8423) atop the now-merged
multi-distributable URL block and darwin/x86-64 libgcc_s codesign.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant