[PATCH] D78761: [Flang][CMake] Add explicit libFortranCommon dependency for f18 etc.

Rainer Orth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 23 15:15:10 PDT 2020


ro created this revision.
ro added reviewers: DavidTruby, sscalpone.
ro added a project: Flang.
Herald added subscribers: fedor.sergeev, mgorny, jyknight.
Herald added a reviewer: jdoerfert.
Herald added a project: LLVM.

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`.   Ok for master?


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D78761

Files:
  flang/tools/f18-parse-demo/CMakeLists.txt
  flang/tools/f18/CMakeLists.txt
  flang/unittests/Evaluate/CMakeLists.txt


Index: flang/unittests/Evaluate/CMakeLists.txt
===================================================================
--- flang/unittests/Evaluate/CMakeLists.txt
+++ flang/unittests/Evaluate/CMakeLists.txt
@@ -41,6 +41,7 @@
 )
 
 target_link_libraries(expression-test
+  FortranCommon
   FortranEvaluateTesting
   FortranEvaluate
   FortranSemantics
@@ -64,6 +65,7 @@
 )
 
 target_link_libraries(intrinsics-test
+  FortranCommon
   FortranEvaluateTesting
   FortranEvaluate
   FortranDecimal
@@ -130,6 +132,7 @@
 )
 
 target_link_libraries(folding-test
+  FortranCommon
   FortranEvaluateTesting
   FortranEvaluate
   FortranSemantics
Index: flang/tools/f18/CMakeLists.txt
===================================================================
--- flang/tools/f18/CMakeLists.txt
+++ flang/tools/f18/CMakeLists.txt
@@ -5,6 +5,7 @@
 
 target_link_libraries(f18
   PRIVATE
+  FortranCommon
   FortranParser
   FortranEvaluate
   FortranSemantics
Index: flang/tools/f18-parse-demo/CMakeLists.txt
===================================================================
--- flang/tools/f18-parse-demo/CMakeLists.txt
+++ flang/tools/f18-parse-demo/CMakeLists.txt
@@ -5,5 +5,6 @@
 
 target_link_libraries(f18-parse-demo
   PRIVATE
+  FortranCommon
   FortranParser
   )


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D78761.259550.patch
Type: text/x-patch
Size: 1252 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200423/b96a4a51/attachment.bin>


More information about the llvm-commits mailing list