[PATCH] D87341: [flang] Fix check for distinguishable operators/assignments
Richard Barton via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 11 00:48:31 PDT 2020
richard.barton.arm added a comment.
This commit missed adding a dependency from libFortranEvaluate and libFortranSemantics. Adding it back in introduces a circular dependency and so breaks shared library builds.
Here's the failure I see:
9789.701 [508/8/3577] Linking CXX shared library lib/libFortranEvaluate.so.12git
FAILED: : && /usr/local/bin/clang++ -fPIC -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-string-conversion -Wno-unused-command-line-argument -Wstring-conversion -Wcovered-switch-default -Wno-nested-anon-types -O3 -stdlib=libc++ -Wl,-z,defs -Wl,-z,nodelete -Wl,-rpath-link,/home/flang_aarch64_ubuntu_clang/flang-aarch64-ubuntu-clang/build/./lib -Wl,-O3 -Wl,--gc-sections -shared -Wl,-soname,libFortranEvaluate.so.12git -o lib/libFortranEvaluate.so.12git tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/call.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/characteristics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/check-expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/common.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/constant.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/fold.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/fold-character.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/fold-complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/fold-designator.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/fold-integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/fold-logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/fold-real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/formatting.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/host.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/initial-image.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/intrinsics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/intrinsics-library.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/shape.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/static-data.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/tools.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/type.cpp.o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/variable.cpp.o -Wl,-rpath,"\$ORIGIN/../lib" lib/libFortranDecimal.so.12git lib/libFortranParser.so.12git lib/libFortranCommon.so.12git lib/libLLVMSupport.so.12git -Wl,-rpath-link,/home/flang_aarch64_ubuntu_clang/flang-aarch64-ubuntu-clang/build/lib && :
tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/tools.cpp.o: In function `Fortran::evaluate::AttachDeclaration(Fortran::parser::Message&, Fortran::semantics::Symbol const&)':
tools.cpp:(.text._ZN7Fortran8evaluate17AttachDeclarationERNS_6parser7MessageERKNS_9semantics6SymbolE+0xa0): undefined reference to `Fortran::semantics::Scope::GetName() const'
clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
You can see the error on the shared library buildbot (still in the staging instance): http://lab.llvm.org:8014/builders/flang-aarch64-ubuntu-clang/builds/866/steps/build-unified-tree/logs/stdio.
If make libFortranEvaluate depend on libFortranSemantics in CMake, I get this more explicit error:
CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle):
"FortranEvaluate" of type SHARED_LIBRARY
depends on "FortranSemantics" (weak)
"FortranSemantics" of type SHARED_LIBRARY
depends on "FortranEvaluate" (weak)
At least one of these targets is not a STATIC_LIBRARY. Cyclic dependencies are allowed only among static libraries.
CMake Generate step failed. Build files cannot be regenerated correctly.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D87341/new/
https://reviews.llvm.org/D87341
More information about the llvm-commits
mailing list