Extended double precision support in flang
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
The flang compiler allows compiling Fortran code which uses extended double precision intrinsic functions, like `abs`. However when linking with the flang runtime library, the required symbols are not available.
Tested on package https://github.com/fortran-lang/test-drive v0.6.0 with flang 21.1.8 from conda-forge on Windows.
````
LINK: command "D:\bld\test-drive-pkg_1775033357038\_build_env\Library\bin\lld-link.exe /nologo test\CMakeFiles\test-drive-tester.dir\main.f90.obj test\CMakeFiles\test-drive-tester.dir\test_check.F90.obj test\CMakeFiles\test-drive-tester.dir\test_select.F90.obj /out:test\test-drive-tester.exe /implib:test\test-drive-tester.lib /pdb:test-drive-tester.exe.dbg /version:0.0 /machine:x64 -Wl,-defaultlib:D:/bld/test-drive-pkg_1775033357038/_build_env/lib/clang/21/lib/windows/clang_rt.builtins-x86_64.lib /INCREMENTAL:NO /subsystem:console test-drive.lib -libpath:D:/bld/test-drive-pkg_1775033357038/_build_env/Library/lib/clang/21/lib/windows -libpath:D:/bld/test-drive-pkg_1775033357038/_build_env/Library/lib -libpath:D:/bld/test-drive-pkg_1775033357038/_build_env/Library/lib/clang/21/lib/x86_64-pc-windows-msvc /MANIFEST:EMBED,ID=1" failed (exit code 1) with the following output:
lld-link: warning: ignoring unknown argument '-Wl,-defaultlib:D:/bld/test-drive-pkg_1775033357038/_build_env/lib/clang/21/lib/windows/clang_rt.builtins-x86_64.lib'
lld-link: error: undefined symbol: __extendxftf2
>>> referenced by test-drive.lib(testdrive.F90.obj):(_QMtestdrivePcheck_float_xdp)
>>> referenced by test-drive.lib(testdrive.F90.obj):(_QMtestdrivePcheck_float_xdp)
>>> referenced by test-drive.lib(testdrive.F90.obj):(_QMtestdrivePcheck_float_xdp)
>>> referenced 12 more times
lld-link: error: undefined symbol: __trunctfxf2
>>> referenced by test-drive.lib(testdrive.F90.obj):(_QMtestdrivePcheck_float_xdp)
>>> referenced by test-drive.lib(testdrive.F90.obj):(_QMtestdrivePcheck_float_xdp)
>>> referenced by test-drive.lib(testdrive.F90.obj):(_QMtestdrivePcheck_float_xdp)
>>> referenced 7 more times
lld-link: error: undefined symbol: _FortranACAbsF128
>>> referenced by test-drive.lib(testdrive.F90.obj):(_QMtestdrivePcheck_complex_xdp)
>>> referenced by test-drive.lib(testdrive.F90.obj):(_QMtestdrivePcheck_complex_xdp)
>>> referenced by test-drive.lib(testdrive.F90.obj):(_QMtestdrivePcheck_complex_xdp)
>>> referenced 2 more times
````
````
conda list flang
flang: 21.1.8-h1b5488d_0 conda-forge
flang-rt_win-64: 21.1.8-h57928b3_0 conda-forge
flang_impl_win-64: 21.1.8-h719f0c7_0 conda-forge
flang_win-64: 21.1.8-h719f0c7_0 conda-forge
````
````
conda info
active environment : base
active env location : D:\Miniforge
shell level : 1
user config file : C:\Users\VssAdministrator\.condarc
populated config files : D:\Miniforge\.condarc
D:\Miniforge\condarc.d\anaconda-auth.yml
C:\Users\VssAdministrator\.condarc
conda version : 26.1.1
conda-build version : 26.3.0
python version : 3.12.13.final.0
solver : libmamba (default)
virtual packages : __archspec=1=x86_64_v3
__conda=26.1.1=0
__win=10.0.20348=0
base environment : D:\Miniforge (writable)
conda av data dir : D:\Miniforge\etc\conda
conda av metadata url : None
channel URLs : https://conda.anaconda.org/conda-forge/win-64
https://conda.anaconda.org/conda-forge/noarch
package cache : D:\Miniforge\pkgs
C:\Users\VssAdministrator\.conda\pkgs
C:\Users\VssAdministrator\AppData\Local\conda\conda\pkgs
envs directories : D:\Miniforge\envs
C:\Users\VssAdministrator\.conda\envs
C:\Users\VssAdministrator\AppData\Local\conda\conda\envs
temporary directory : C:\Users\VSSADM~1\AppData\Local\Temp
platform : win-64
user-agent : conda/26.1.1 requests/2.33.1 CPython/3.12.13 Windows/2022Server Windows/10.0.20348 solver/libmamba conda-libmamba-solver/25.11.0 libmambapy/2.5.0
administrator : True
netrc file : None
offline mode : False
````
Contributor guide
Assessment
This issue has not been assessed yet.