Skip to content

Commit 051bfac

Browse files
committed
flang: libflangrti.so should depend on libompstub.so instead of libomp.so
This commit is a clang part of a change that drops unfortunate dependency of libflangrti.so on libomp.so. For non-OpenMP programs (built without -fopenmp flag) frontend driver instructs the linker to link against libompstub.so library, which exports stubs for all OpenMP runtime library symbols. This is because Flang runtime library contains calls to those symbols (for OpenMP programs, final binary is linked against libomp.so instead). Apart form above, all of the Fortran programs are linked against libflang.so and libflangrti.so. Unfortunately, before this change libflangrti.so was depending on full blown OpenMP runtime library (libomp.so). This change creates two sets of Flang runtime shared objects with following chains of dependencies: 1. libflang.so -> libflangrti.so -> libompstub.so 2. libflang-omp.so -> libflangrti-omp.so -> libomp.so Note that before this commit is applied, relevant commit must be applied on flang repository first. Otherwise all OpenMP Fortran programs will fail to build at link time. Signed-off-by: Paul Osmialowski <[email protected]>
1 parent 4cd0029 commit 051bfac

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

lib/Driver/ToolChain.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -783,13 +783,16 @@ void ToolChain::AddFortranStdlibLibArgs(const ArgList &Args,
783783
if (staticFlangLibs) {
784784
CmdArgs.push_back("-Bstatic");
785785
}
786-
CmdArgs.push_back("-lflang");
787-
CmdArgs.push_back("-lflangrti");
788-
CmdArgs.push_back("-lpgmath");
789786
if( useOpenMP ) {
787+
CmdArgs.push_back("-lflang-omp");
788+
CmdArgs.push_back("-lflangrti-omp");
789+
CmdArgs.push_back("-lpgmath");
790790
CmdArgs.push_back("-lomp");
791791
}
792792
else {
793+
CmdArgs.push_back("-lflang");
794+
CmdArgs.push_back("-lflangrti");
795+
CmdArgs.push_back("-lpgmath");
793796
CmdArgs.push_back("-lompstub");
794797
}
795798
if( staticFlangLibs ) {

0 commit comments

Comments
 (0)