Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2026-04

Cross-compiling

2 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Kevin Lyda

tl;dr Is there a docker image(s) with an fpc compiler that supports a slew of platforms?

For April Fools Day this year I released a command.com shell for Unix[0]. It included a version of the Turbo Pascal 3.0 "IDE" and it was released for a slew of platforms. This is rather easy to accomplish with the go tool - you just set some environment variables and it works.

I'm winding down my career and have a number of fun projects in mind. My goal this year was to release one written in Pascal - one that would be fun, but also hopefully useful. But I ran out of time so I did the simpler Go one. Now that I've slipped the release date a year I'd like to make sure I can release it just as polished as I did for the silly one I did this year. And part of that involves releasing for all the mainstream OS's: linux, freebsd, openbsd, netbsd, ilumos, aix and darwin. And also all the mainstream architectures: riscv64, arm64, ppc, i386 and amd64. Now, fpc might not support all thes, but it likely supports many of them and I'd ideally like to build them all in one runner. I can install the forgejo runner on a slew of libvirt machines and configure them all, but that's a rather heavy solution.

I'm working on building an fpc cross compiler[2] for a number of architectures, but am I triodding well-trodden ground? Does something like this already exist? I can't find anything, but maybe I'm not looking in the right places. What I've built[3] supports:

fpc -Px86_64 -Tlinux
fpc -Paarch64 -Tlinux
fpc -Parm -Tlinux
fpc -Pi386 -Tlinux
fpc -Ppowerpc64 -Tlinux
fpc -Pmipsel -Tlinux
fpc -Px86_64 -Tfreebsd
fpc -Px86_64 -Tnetbsd
fpc -Px86_64 -Topenbsd

I think I'd need to do darwin on an actual Mac and not sure what other architectures are supported for the *BSDs. It's a large container as it is.

As an aside, if there's someone out there wanting to collaborate on a TUI application that would have a filesystem focus, please reach out. I'm not close to that part, but I might be later in the year and I've honestly never made one. Alternatively, if folks could suggest good tview TUI applications to read, that would be great.

Thanks,

Kevin

[0]: https://codeberg.org/lyda/command-com/releases [1]:
https://codeberg.org/lyda/command-com/src/branch/main/.forgejo/workflows/release.yml [2]: https://codeberg.org/lyda/fpc-docker
[3]: https://codeberg.org/lyda/fpc-docker/packages

Kevin Lyda Galway, Ireland

Reply by email

Karl-Michael Schindler
Show quoted text 66 lines
Date: Fri, 3 Apr 2026 23:55:19 +0100 From: Kevin Lyda To: FPC-Pascal users discussions Subject: [fpc-pascal] Cross-compiling Message-ID: Content-Type: text/plain; charset="utf-8" tl;dr Is there a docker image(s) with an fpc compiler that supports a slew of platforms? For April Fools Day this year I released a command.com shell for Unix[0]. It included a version of the Turbo Pascal 3.0 "IDE" and it was released for a slew of platforms. This is rather easy to accomplish with the go tool - you just set some environment variables and it works. I'm winding down my career and have a number of fun projects in mind. My goal this year was to release one written in Pascal - one that would be fun, but also hopefully useful. But I ran out of time so I did the simpler Go one. Now that I've slipped the release date a year I'd like to make sure I can release it just as polished as I did for the silly one I did this year. And part of that involves releasing for all the mainstream OS's: linux, freebsd, openbsd, netbsd, ilumos, aix and darwin. And also all the mainstream architectures: riscv64, arm64, ppc, i386 and amd64. Now, fpc might not support all thes, but it likely supports many of them and I'd ideally like to build them all in one runner. I can install the forgejo runner on a slew of libvirt machines and configure them all, but that's a rather heavy solution. I'm working on building an fpc cross compiler[2] for a number of architectures, but am I triodding well-trodden ground? Does something like this already exist? I can't find anything, but maybe I'm not looking in the right places. What I've built[3] supports: fpc -Px86_64 -Tlinux fpc -Paarch64 -Tlinux fpc -Parm -Tlinux fpc -Pi386 -Tlinux fpc -Ppowerpc64 -Tlinux fpc -Pmipsel -Tlinux fpc -Px86_64 -Tfreebsd fpc -Px86_64 -Tnetbsd fpc -Px86_64 -Topenbsd I think I'd need to do darwin on an actual Mac and not sure what other architectures are supported for the *BSDs. It's a large container as it is. As an aside, if there's someone out there wanting to collaborate on a TUI application that would have a filesystem focus, please reach out. I'm not close to that part, but I might be later in the year and I've honestly never made one. Alternatively, if folks could suggest good tview TUI applications to read, that would be great. Thanks, Kevin [0]: https://codeberg.org/lyda/command-com/releases [1]: https://codeberg.org/lyda/command-com/src/branch/main/.forgejo/workflows/release.yml [2]: https://codeberg.org/lyda/fpc-docker [3]: https://codeberg.org/lyda/fpc-docker/packages -- Kevin Lyda Galway, Ireland

Slightly related: I maintain the package description for Freepascal for macports, a package manager for macOS. It also includes a couple of cross-compilers. I also did this with fink, a similar package manager, but stopped doing so in favor of macports.

You can find the macports package description file here: https://github.com/macports/macports-ports/blob/master/lang/fpc/Portfile

I do not really know docker, and you may not need cross compiling, But in case, have a look at this page about binutils and complete the table, if you figured out missing platforms: https://wiki.lazarus.freepascal.org/Binutils

Have fun - Michael.

Reply by email