[Guix packaging] larsbrinkhoff/pdp10-gcc #49

Open
opened 2026-08-14 13:16:42 +00:00 by htayj · 1 comment
htayj commented 2026-08-14 13:16:42 +00:00 (Migrated from github.com)

Candidate

  • Upstream canonical URL: https://github.com/larsbrinkhoff/pdp10-gcc
  • Source pinned commit/release when known: 3c67a2b56b8a02041bdfca00d012bcccbe4168e5 (default-branch snapshot checked 2026-08-14)
  • Target concrete installed deliverable: PDP-10 GCC cross compiler backend
  • Primary category: compiler-toolchain
  • Tags: historical-computing, pdp-10
  • Primary language normalized: C
  • Build system: gnu-build-system
  • SPDX expression: GPL-2.0-only
  • License status: confirmed-free
  • License evidence: The upstream LICENSE/COPYING was previously inspected at the pinned snapshot and identifies GPL-2.0-only.
  • Difficulty: hard — This is a large legacy GCC fork requiring a viable bootstrap, target triplet, and dependency plan.
  • Workflow state: research
  • Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found.

Scope and blockers

Deliver a host cross compiler targeting PDP-10; do not include a guest OS image.

Acceptance checks

  • guix lint -L. <package-name> and guix build -L. <package-name> pass once a package definition exists.
  • Compile a minimal C source for the selected PDP-10 target offline.

Imported from GitHub issue/PR. Originally posted by htayj on 2026-08-14T13:16:42Z.

## Candidate - Upstream canonical URL: https://github.com/larsbrinkhoff/pdp10-gcc - Source pinned commit/release when known: `3c67a2b56b8a02041bdfca00d012bcccbe4168e5` (default-branch snapshot checked 2026-08-14) - Target concrete installed deliverable: PDP-10 GCC cross compiler backend - Primary category: compiler-toolchain - Tags: historical-computing, pdp-10 - Primary language normalized: C - Build system: gnu-build-system - SPDX expression: GPL-2.0-only - License status: confirmed-free - License evidence: The upstream LICENSE/COPYING was previously inspected at the pinned snapshot and identifies GPL-2.0-only. - Difficulty: hard — This is a large legacy GCC fork requiring a viable bootstrap, target triplet, and dependency plan. - Workflow state: research - Existing Guix coverage: Checked 2026-08-14: GNU Guix, Nonguix, Guix Science, Guix HPC, Guix Past, Guix 'R Us, and RDE; no equivalent package with the same upstream origin was found. ## Scope and blockers Deliver a host cross compiler targeting PDP-10; do not include a guest OS image. ## Acceptance checks - `guix lint -L. <package-name>` and `guix build -L. <package-name>` pass once a package definition exists. - Compile a minimal C source for the selected PDP-10 target offline. --- Imported from [GitHub issue/PR](https://github.com/htayj/guix-channel/issues/49). Originally posted by [htayj](https://github.com/htayj) on 2026-08-14T13:16:42Z.
htayj commented 2026-08-25 14:30:17 +00:00 (Migrated from github.com)

Goocastle recorded disposition: implementation-ready.

Created implementation ticket: #610.

Canonical upstream is https://github.com/larsbrinkhoff/pdp10-gcc at fixed revision 3c67a2b56b8a02041bdfca00d012bcccbe4168e5; gcc/version.c identifies the source as GCC 3.2 20020416 (experimental), and the existing channel source snapshot records the codeload origin and Guix hash 1ll89jjpfxfxr4fvxmx5yrjyxhp1zscrj0w2dbirgzr5rm3r9p8c. The root COPYING and gcc/COPYING grant GPL-2.0-only for the compiler; gcc/COPYING.LIB is LGPL-2.1 for library material, boehm-gc/doc/README grants use/copy/modify/distribute with retained notices, libffi/LICENSE is MIT-style, zlib/zlib.h has its permissive zlib grant, and libjava/LIBGCJ_LICENSE is GPL-2.0 with a linking exception. git ls-tree -r at the fixed revision has zero mode-160000 entries, so there are no separately fetched Git submodules requiring independent license evidence; the listed bundled notices are within the one fetched parent origin and must remain available. The source is buildable as a compiler-backend/code-generation package, not as a complete target toolchain: config.sub canonicalizes the selected target to pdp10-unknown-tops20, gcc/config.gcc has the PDP-10 TOPS-20 backend case, and the upstream project page documents historical assembly/link/run through remote TOPS-20/KLH10 tooling and the lack of a full cross-development environment. The pinned tree contains no target binutils/as, target libc, newlib, guest OS, or usable offline target linker, so the package must deliberately build only all-gcc and install-gcc and must not claim object assembly, linking, or execution. No equivalent installable compiler exists in the local channel or current Guix search: larsbrinkhoff-pdp10-gcc-source is preservation-only and SIMH is an emulator. Delivery brief: define pdp10-gcc in a dedicated tay/packages/pdp10-gcc.scm module, import the exact existing source origin from tay/packages/larsbrinkhoff-n-s.scm, use gnu-build-system, version 3.2-20020416, and configure for build/host x86_64-linux with --target=pdp10-unknown-tops20 --enable-languages=c --disable-nls --disable-multilib --disable-shared --disable-threads --disable-libstdc++-v3 --disable-libgcj --disable-checking plus --with-gnu-as only to select the bundled pdp10/gas.h output dialect. Use gcc-toolchain-4.9 as the native C/C++ bootstrap toolchain (it also supplies host binutils), with bison, flex, texinfo, perl, and m4 as explicit native build tools; there are no target inputs or target libc inputs. Install the target-prefixed driver pdp10-unknown-tops20-gcc, cpp, and private cc1 support; if a wrapper is needed for private libexec lookup, set GCC_EXEC_PREFIX or -B only to this output and never add the host as/ld, and make unsupported assemble/link attempts fail rather than silently using host tools. The isolated offline smoke proof is: after guix build -L. pdp10-gcc, create int add(int a,int b){return a+b;} in a temporary directory, invoke the installed pdp10-unknown-tops20-gcc with -S -O0 -ffreestanding to produce a nonempty add.s, and assert PDP-10 mnemonics such as MOVE/ADD/POPJ are present; do not run a target binary or fetch/use a guest image. The implementation issue must then run guix lint -L. pdp10-gcc and guix build -L. pdp10-gcc and report those results; this research does not claim either proof.


Imported from GitHub comment. Originally posted by htayj on 2026-08-25T14:30:17Z.

<!-- goocastle-disposition:sequential-reviewer:49:1:implementation-ready --> Goocastle recorded disposition: implementation-ready. Created implementation ticket: #610. Canonical upstream is https://github.com/larsbrinkhoff/pdp10-gcc at fixed revision 3c67a2b56b8a02041bdfca00d012bcccbe4168e5; gcc/version.c identifies the source as GCC 3.2 20020416 (experimental), and the existing channel source snapshot records the codeload origin and Guix hash 1ll89jjpfxfxr4fvxmx5yrjyxhp1zscrj0w2dbirgzr5rm3r9p8c. The root COPYING and gcc/COPYING grant GPL-2.0-only for the compiler; gcc/COPYING.LIB is LGPL-2.1 for library material, boehm-gc/doc/README grants use/copy/modify/distribute with retained notices, libffi/LICENSE is MIT-style, zlib/zlib.h has its permissive zlib grant, and libjava/LIBGCJ_LICENSE is GPL-2.0 with a linking exception. git ls-tree -r at the fixed revision has zero mode-160000 entries, so there are no separately fetched Git submodules requiring independent license evidence; the listed bundled notices are within the one fetched parent origin and must remain available. The source is buildable as a compiler-backend/code-generation package, not as a complete target toolchain: config.sub canonicalizes the selected target to pdp10-unknown-tops20, gcc/config.gcc has the PDP-10 TOPS-20 backend case, and the upstream project page documents historical assembly/link/run through remote TOPS-20/KLH10 tooling and the lack of a full cross-development environment. The pinned tree contains no target binutils/as, target libc, newlib, guest OS, or usable offline target linker, so the package must deliberately build only all-gcc and install-gcc and must not claim object assembly, linking, or execution. No equivalent installable compiler exists in the local channel or current Guix search: larsbrinkhoff-pdp10-gcc-source is preservation-only and SIMH is an emulator. Delivery brief: define pdp10-gcc in a dedicated tay/packages/pdp10-gcc.scm module, import the exact existing source origin from tay/packages/larsbrinkhoff-n-s.scm, use gnu-build-system, version 3.2-20020416, and configure for build/host x86_64-linux with --target=pdp10-unknown-tops20 --enable-languages=c --disable-nls --disable-multilib --disable-shared --disable-threads --disable-libstdc++-v3 --disable-libgcj --disable-checking plus --with-gnu-as only to select the bundled pdp10/gas.h output dialect. Use gcc-toolchain-4.9 as the native C/C++ bootstrap toolchain (it also supplies host binutils), with bison, flex, texinfo, perl, and m4 as explicit native build tools; there are no target inputs or target libc inputs. Install the target-prefixed driver pdp10-unknown-tops20-gcc, cpp, and private cc1 support; if a wrapper is needed for private libexec lookup, set GCC_EXEC_PREFIX or -B only to this output and never add the host as/ld, and make unsupported assemble/link attempts fail rather than silently using host tools. The isolated offline smoke proof is: after guix build -L. pdp10-gcc, create int add(int a,int b){return a+b;} in a temporary directory, invoke the installed pdp10-unknown-tops20-gcc with -S -O0 -ffreestanding to produce a nonempty add.s, and assert PDP-10 mnemonics such as MOVE/ADD/POPJ are present; do not run a target binary or fetch/use a guest image. The implementation issue must then run guix lint -L. pdp10-gcc and guix build -L. pdp10-gcc and report those results; this research does not claim either proof. --- Imported from [GitHub comment](https://github.com/htayj/guix-channel/issues/49#issuecomment-5411937113). Originally posted by [htayj](https://github.com/htayj) on 2026-08-25T14:30:17Z.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tay/guix-channel#49
No description provided.