Skip to content

new(gnu.org/gcc/v8): GCC 8 for legacy C++ projects#13070

Open
tannevaled wants to merge 3 commits into
pkgxdev:mainfrom
tannevaled:new/gcc-v8
Open

new(gnu.org/gcc/v8): GCC 8 for legacy C++ projects#13070
tannevaled wants to merge 3 commits into
pkgxdev:mainfrom
tannevaled:new/gcc-v8

Conversation

@tannevaled
Copy link
Copy Markdown
Contributor

Summary

  • New recipe gnu.org/gcc/v8 — GCC 8.x line, parallel to the latest gnu.org/gcc recipe.
  • Many projects vendoring older C++ libraries (RocksDB 6.3.x in cubefs, InnoDB in MySQL 5.7, pre-C++17 codebases) hit gcc 12+'s stricter copy-ctor / std::atomic / std::pair-construction rules. They compile cleanly with gcc 8 (last default-C++14 major).
  • This recipe enables follow-ups like new(cubefs.io): CubeFS — cloud-native distributed storage (from source) #13050 (cubefs) and new(mysql.com/v5_7): MySQL 5.7 legacy (Top 300 #735) #13062 (mysql@5.7) to pin `gnu.org/gcc/v8: '*'` and compile their vendored old C++ from source — keeping the from-source promise without monkey-patching upstream sources.
  • Linux only. Darwin's old-SDK situation makes gcc 8 hard to bring up, and llvm.org clang covers legacy on darwin.

Why

`pkgx +gnu.org/gcc^8` currently returns `ResolveError` — no 8.x bottle exists. This PR adds the recipe so pantry CI builds and bottles gcc 8 for downstream legacy recipes.

Test plan

  • gcc 8.x builds on linux/x86-64 + linux/aarch64
  • `gcc --version` reports "pkgx GCC 8.x.x"
  • `gcc -dumpversion` starts with "8."
  • Downstream test: cubefs.io can build RocksDB 6.3.6 with this gcc

🤖 Generated with Claude Code

Many projects vendoring older C++ libraries (RocksDB 6.3.x in
cubefs, InnoDB in MySQL 5.7, pre-C++17 codebases) hit gcc 12+'s
stricter copy-ctor / atomic / std::pair-construction rules. They
compile cleanly with gcc 8 (last default-C++14 major) but couldn't
build in pantry without a 8.x bottle — pkgx CLI returns
"ResolveError" on `gnu.org/gcc^8`.

This recipe is a thin pin to the 8.x line, parallel to the main
gnu.org/gcc recipe. Linux only — darwin's old-SDK situation makes
gcc 8 hard to bring up there, and llvm.org clang covers legacy on
darwin anyway.

Enables follow-up: cubefs.io (pkgxdev#13050) and mysql.com/v5_7 (pkgxdev#13062)
can pin `gnu.org/gcc/v8: '*'` to compile their vendored old C++.
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