A first look at the compiler and runtime work we are doing for Delphi on Linux Intel 64-bit.
Feature Preview: This blog post is based on a pre-release version of the RAD Studio software and it has been written with specific permission by Embarcadero. No feature is committed until the product GA release.
At Embarcadero, we are doing significant work on the Delphi compiler for Linux Intel 64-bit. The current compiler is based on LLVM 3.3, which was released a long time ago. The new compiler moves to LLVM version 20.1 and it uses the same general compiler backend we introduced in RAD Studio 13.1 for Delphi on Windows Arm64EC.
The work, which is nearing completion and should ship in the next release, is not a simple update to an internal component. Moving across so many LLVM releases required changes in the compiler front end, the generated intermediate representation, exception handling, linking, and debug information. The result is a much more current Linux toolchain and, more importantly, one we can continue improving over time by steadily adopting newer LLVM versions.
While we are focused on Linux web servers and web services, the new compiler is also going to support Linux client applications development with FMXLinux.
Table of Contents
A New Backend and Linker
The reworked compiler uses a customized version of LLVM’s LLD linker, replacing GNU gold linker. It also produces DWARF 5 debug information instead of DWARF 2. We’ve made corresponding changes in the compiler front end so that the debugger receives better information about source locations, variables, and Delphi types.
The Delphi Linux compiler will be available as both a 32-bit and a 64-bit executable. In practical terms, this means you can build Linux Intel 64-bit applications directly from the 64-bit RAD Studio IDE, along with Win64 and Windows Arm64EC projects. However, you can also keep using the 32-bit IDE. The 64-bit version removes the address-space limitations of a 32-bit process for both the compiler and the IDE for larger projects..

Adding the Linux 64-bit target platform to a Delphi application in the 64-bit IDE
Optimized Linux Applications
This compiler work also allows us to take advantage of the latest LLVM optimizations. The old compiler used LLVM for code generation, but it could not pass Delphi code through the newer LLVM intermediate-representation optimizers. We have changed the front end, including the handling of Delphi exceptions, so these optimizations can now be applied to Release builds.
In our internal tests, a number of small benchmarks run between two and four times faster, with a few specific cases showing larger improvements. Benchmarks are not applications, of course, and results will vary with the code. Still, this is code generated from the same Delphi source you are currently using for Linux applications (and in most cases also the code you can use for Windows targets).
Memory Management and the Linux Baseline
The R&D team is also making rpmalloc available as an optional memory manager for Linux Intel 64-bit. It performs particularly well when many threads allocate memory at the same time. While its performance gains are significant, it isn’t intended to be the answer for every application as it generally uses more memory and doesn’t offer the same leak-reporting facilities as Delphi’s traditional memory managers.
The updated toolchain uses glibc 2.31 as its runtime baseline. Applications produced with it are therefore not expected to run on older Linux distributions (for example Ubuntu versions older than 20.04, released in 2020).
A New Delphi Linux
Our plan is for the new Linux compiler to fully replace the existing one. There is still work and testing underway, but I’m personally very happy with the reworked Linux platform support in Delphi, and beta testers have given us positive feedback about it. By the way, notice that the Delphi Linux compiler will remain available only in the Enterprise and Architect editions of Delphi and RAD Studio.
There is more to come in 13.2. I plan to cover some of the shared LLVM-20 compiler improvements in another blog post. Stay tuned.
Feature Preview: This blog post is based on a pre-release version of the RAD Studio software and it has been written with specific permission by Embarcadero. No feature is committed until the product GA release.
Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Free Delphi Community Edition Free C++Builder Community Edition





