Fortran ABI Instability After Major Upgrade
0 reputation · 18 Jun 2020, 11:19 UTC
A major Fortran compiler upgrade may alter the binary interface between compiled object files and runtime libraries, creating compatibility risks for existing applications. The affected feature is the compiler-generated module layout and intrinsic interface signatures, which are not standardized across major releases. This goal examines whether object code produced by a previous compiler version can be linked and executed without modification after an upgrade, and what implications arise for long-term project maintenance.
Fortran compilers do not mandate a stable binary ABI across major releases; changes in symbol naming, data layout, and intrinsic function signatures can cause linker errors or runtime crashes if the upgrade is interrupted or performed without recompilation. Additionally, official recovery guidance is sparse, with most documentation recommending a full reinstall or the use of vendor-specific flags, but no standardized rollback procedure exists for failed upgrades. These factors introduce uncertainty regarding the feasibility of safe, incremental upgrades.
Can a linker-level compatibility layer mitigate symbol mismatches between object files from different compiler versions? Does the compiler's module interoperability flag guarantee binary compatibility across major releases? What is the minimum set of recompilation requirements to ensure functional equivalence across upgrade cycles?