Skip to content

Commit 3119bdb

Browse files
committed
[Flang][CMake] Add explicit libFortranCommon dependency for f18 etc.
When I tried Solaris builds with `-DBUILD_SHARED_LIBS=ON`, some commands failed to link: [ 94%] Linking CXX executable ../../../../bin/f18 Undefined first referenced symbol in file Fortran::common::IntrinsicTypeDefaultKinds::set_sizeIntegerKind(int) CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) Fortran::common::IntrinsicTypeDefaultKinds::set_subscriptIntegerKind(int) CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) Fortran::common::EnumIndexToString[abi:cxx11](int, char const*) CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) Fortran::common::IntrinsicTypeDefaultKinds::set_defaultIntegerKind(int) CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) Fortran::common::IntrinsicTypeDefaultKinds::IntrinsicTypeDefaultKinds() CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) Fortran::common::IntrinsicTypeDefaultKinds::set_defaultRealKind(int) CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) ld: fatal: symbol referencing errors This patch fixes this by adding explicit dependencies on `libFortranCommon` to the affected commands. Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`, and `x86-64-pc-linux-gnu`. Differential Revision: https://reviews.llvm.org/D78761
1 parent 89f6a23 commit 3119bdb

File tree

3 files changed

+5
-0
lines changed

3 files changed

+5
-0
lines changed

flang/tools/f18-parse-demo/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ add_flang_tool(f18-parse-demo
55

66
target_link_libraries(f18-parse-demo
77
PRIVATE
8+
FortranCommon
89
FortranParser
910
)

flang/tools/f18/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ add_flang_tool(f18
55

66
target_link_libraries(f18
77
PRIVATE
8+
FortranCommon
89
FortranParser
910
FortranEvaluate
1011
FortranSemantics

flang/unittests/Evaluate/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ add_executable(expression-test
4141
)
4242

4343
target_link_libraries(expression-test
44+
FortranCommon
4445
FortranEvaluateTesting
4546
FortranEvaluate
4647
FortranSemantics
@@ -64,6 +65,7 @@ add_executable(intrinsics-test
6465
)
6566

6667
target_link_libraries(intrinsics-test
68+
FortranCommon
6769
FortranEvaluateTesting
6870
FortranEvaluate
6971
FortranDecimal
@@ -130,6 +132,7 @@ add_executable(folding-test
130132
)
131133

132134
target_link_libraries(folding-test
135+
FortranCommon
133136
FortranEvaluateTesting
134137
FortranEvaluate
135138
FortranSemantics

0 commit comments

Comments
 (0)