Skip to content

[flang][cuda] Do not create global for derived-type with allocatable device components #146780

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 2, 2025

Conversation

clementval
Copy link
Contributor

derived type with CUDA device allocatable components will be handle via CUDA allocation. Do not create global for them.

@clementval clementval requested review from klausler and wangzpgi July 2, 2025 21:07
@llvmbot llvmbot added flang Flang issues not falling into any other category flang:fir-hlfir flang:semantics labels Jul 2, 2025
@llvmbot
Copy link
Member

llvmbot commented Jul 2, 2025

@llvm/pr-subscribers-flang-fir-hlfir

@llvm/pr-subscribers-flang-semantics

Author: Valentin Clement (バレンタイン クレメン) (clementval)

Changes

derived type with CUDA device allocatable components will be handle via CUDA allocation. Do not create global for them.


Full diff: https://github.com/llvm/llvm-project/pull/146780.diff

5 Files Affected:

  • (modified) flang/include/flang/Evaluate/tools.h (+1-10)
  • (modified) flang/include/flang/Semantics/tools.h (+2)
  • (modified) flang/lib/Evaluate/tools.cpp (+24-5)
  • (modified) flang/lib/Semantics/tools.cpp (+20-1)
  • (added) flang/test/Lower/CUDA/cuda-derived.cuf (+15)
diff --git a/flang/include/flang/Evaluate/tools.h b/flang/include/flang/Evaluate/tools.h
index cad1b634f8924..814fe4cccede6 100644
--- a/flang/include/flang/Evaluate/tools.h
+++ b/flang/include/flang/Evaluate/tools.h
@@ -1286,16 +1286,7 @@ bool CheckForCoindexedObject(parser::ContextualMessages &,
     const std::optional<ActualArgument> &, const std::string &procName,
     const std::string &argName);
 
-inline bool CanCUDASymbolHaveSaveAttr(const Symbol &sym) {
-  if (const auto *details =
-          sym.GetUltimate().detailsIf<semantics::ObjectEntityDetails>()) {
-    if (details->cudaDataAttr() &&
-        *details->cudaDataAttr() != common::CUDADataAttr::Unified) {
-      return false;
-    }
-  }
-  return true;
-}
+bool CanCUDASymbolHaveSaveAttr(const Symbol &sym);
 
 inline bool IsCUDADeviceSymbol(const Symbol &sym) {
   if (const auto *details =
diff --git a/flang/include/flang/Semantics/tools.h b/flang/include/flang/Semantics/tools.h
index f3cfa9b99fb4d..ca58e1065d3e5 100644
--- a/flang/include/flang/Semantics/tools.h
+++ b/flang/include/flang/Semantics/tools.h
@@ -654,6 +654,8 @@ DirectComponentIterator::const_iterator FindAllocatableOrPointerDirectComponent(
     const DerivedTypeSpec &);
 PotentialComponentIterator::const_iterator
 FindPolymorphicAllocatablePotentialComponent(const DerivedTypeSpec &);
+UltimateComponentIterator::const_iterator
+FindCUDADeviceAllocatableUltimateComponent(const DerivedTypeSpec &);
 
 // The LabelEnforce class (given a set of labels) provides an error message if
 // there is a branch to a label which is not in the given set.
diff --git a/flang/lib/Evaluate/tools.cpp b/flang/lib/Evaluate/tools.cpp
index fcacdb93d662b..7e5061d3cb2f5 100644
--- a/flang/lib/Evaluate/tools.cpp
+++ b/flang/lib/Evaluate/tools.cpp
@@ -2173,6 +2173,25 @@ bool IsAutomatic(const Symbol &original) {
   return false;
 }
 
+bool CanCUDASymbolHaveSaveAttr(const Symbol &sym) {
+  if (const auto *details =
+          sym.GetUltimate().detailsIf<semantics::ObjectEntityDetails>()) {
+    const Fortran::semantics::DeclTypeSpec *type{details->type()};
+    const Fortran::semantics::DerivedTypeSpec *derived{
+        type ? type->AsDerived() : nullptr};
+    if (derived) {
+      if (auto iter{FindCUDADeviceAllocatableUltimateComponent(*derived)}) {
+        return false;
+      }
+    }
+    if (details->cudaDataAttr() &&
+        *details->cudaDataAttr() != common::CUDADataAttr::Unified) {
+      return false;
+    }
+  }
+  return true;
+}
+
 bool IsSaved(const Symbol &original) {
   const Symbol &symbol{GetAssociationRoot(original)};
   const Scope &scope{symbol.owner()};
@@ -2195,7 +2214,7 @@ bool IsSaved(const Symbol &original) {
   } else if (scopeKind == Scope::Kind::Module ||
       (scopeKind == Scope::Kind::MainProgram &&
           (symbol.attrs().test(Attr::TARGET) || evaluate::IsCoarray(symbol)) &&
-          Fortran::evaluate::CanCUDASymbolHaveSaveAttr(symbol))) {
+          CanCUDASymbolHaveSaveAttr(symbol))) {
     // 8.5.16p4
     // In main programs, implied SAVE matters only for pointer
     // initialization targets and coarrays.
@@ -2205,7 +2224,7 @@ bool IsSaved(const Symbol &original) {
           (features.IsEnabled(
                common::LanguageFeature::SaveBigMainProgramVariables) &&
               symbol.size() > 32)) &&
-      Fortran::evaluate::CanCUDASymbolHaveSaveAttr(symbol)) {
+      CanCUDASymbolHaveSaveAttr(symbol)) {
     // With SaveBigMainProgramVariables, keeping all unsaved main program
     // variables of 32 bytes or less on the stack allows keeping numerical and
     // logical scalars, small scalar characters or derived, small arrays, and
@@ -2223,15 +2242,15 @@ bool IsSaved(const Symbol &original) {
   } else if (symbol.test(Symbol::Flag::InDataStmt)) {
     return true;
   } else if (const auto *object{symbol.detailsIf<ObjectEntityDetails>()};
-             object && object->init()) {
+      object && object->init()) {
     return true;
   } else if (IsProcedurePointer(symbol) && symbol.has<ProcEntityDetails>() &&
       symbol.get<ProcEntityDetails>().init()) {
     return true;
   } else if (scope.hasSAVE()) {
     return true; // bare SAVE statement
-  } else if (const Symbol * block{FindCommonBlockContaining(symbol)};
-             block && block->attrs().test(Attr::SAVE)) {
+  } else if (const Symbol *block{FindCommonBlockContaining(symbol)};
+      block && block->attrs().test(Attr::SAVE)) {
     return true; // in COMMON with SAVE
   } else {
     return false;
diff --git a/flang/lib/Semantics/tools.cpp b/flang/lib/Semantics/tools.cpp
index d053179448c00..4b1d1b170816d 100644
--- a/flang/lib/Semantics/tools.cpp
+++ b/flang/lib/Semantics/tools.cpp
@@ -1081,6 +1081,19 @@ const Scope *FindCUDADeviceContext(const Scope *scope) {
   });
 }
 
+bool IsDeviceAllocatable(const Symbol &symbol) {
+  if (IsAllocatable(symbol)) {
+    if (const auto *details =
+            symbol.GetUltimate().detailsIf<semantics::ObjectEntityDetails>()) {
+      if (details->cudaDataAttr() &&
+          *details->cudaDataAttr() != common::CUDADataAttr::Pinned) {
+        return true;
+      }
+    }
+  }
+  return false;
+}
+
 std::optional<common::CUDADataAttr> GetCUDADataAttr(const Symbol *symbol) {
   const auto *object{
       symbol ? symbol->detailsIf<ObjectEntityDetails>() : nullptr};
@@ -1426,6 +1439,12 @@ FindPolymorphicAllocatablePotentialComponent(const DerivedTypeSpec &derived) {
       potentials.begin(), potentials.end(), IsPolymorphicAllocatable);
 }
 
+UltimateComponentIterator::const_iterator
+FindCUDADeviceAllocatableUltimateComponent(const DerivedTypeSpec &derived) {
+  UltimateComponentIterator ultimates{derived};
+  return std::find_if(ultimates.begin(), ultimates.end(), IsDeviceAllocatable);
+}
+
 const Symbol *FindUltimateComponent(const DerivedTypeSpec &derived,
     const std::function<bool(const Symbol &)> &predicate) {
   UltimateComponentIterator ultimates{derived};
@@ -1788,4 +1807,4 @@ bool HadUseError(
   }
 }
 
-} // namespace Fortran::semantics
\ No newline at end of file
+} // namespace Fortran::semantics
diff --git a/flang/test/Lower/CUDA/cuda-derived.cuf b/flang/test/Lower/CUDA/cuda-derived.cuf
new file mode 100644
index 0000000000000..670dd1b10896a
--- /dev/null
+++ b/flang/test/Lower/CUDA/cuda-derived.cuf
@@ -0,0 +1,15 @@
+! RUN: bbc -emit-hlfir -fcuda %s -o - | FileCheck %s
+
+module m1
+  type ty_device
+    integer, device, allocatable, dimension(:) :: x
+  end type
+end module
+
+program main
+  use m1
+  type(ty_device) :: a
+end
+
+! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "main"}
+! CHECK: %{{.*}} = fir.alloca !fir.type<_QMm1Tty_device{x:!fir.box<!fir.heap<!fir.array<?xi32>>>}> {bindc_name = "a", uniq_name = "_QFEa"}

@clementval clementval force-pushed the cuf_derived_global branch from 9ca53db to 2578891 Compare July 2, 2025 22:15
@clementval clementval merged commit e873ce3 into llvm:main Jul 2, 2025
7 of 9 checks passed
@clementval clementval deleted the cuf_derived_global branch July 2, 2025 22:43
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 3, 2025

LLVM Buildbot has detected a new failure on builder amdgpu-offload-rhel-8-cmake-build-only running on rocm-docker-rhel-8 while building flang at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/204/builds/14222

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: '../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py --jobs=32' (failure)
...
[7824/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExpr.cpp.o
[7825/7899] Building CXX object tools/flang/tools/fir-lsp-server/CMakeFiles/fir-lsp-server.dir/fir-lsp-server.cpp.o
[7826/7899] Building CXX object tools/flang/tools/fir-opt/CMakeFiles/fir-opt.dir/fir-opt.cpp.o
[7827/7899] Building CXX object tools/flang/tools/tco/CMakeFiles/tco.dir/tco.cpp.o
[7828/7899] Building CXX object tools/flang/tools/bbc/CMakeFiles/bbc.dir/bbc.cpp.o
[7829/7899] Building CXX object tools/flang/lib/Parser/CMakeFiles/FortranParser.dir/openmp-parsers.cpp.o
[7830/7899] Linking CXX shared library lib/libFortranParser.so.21.0git
[7831/7899] Creating library symlink lib/libFortranParser.so
[7832/7899] Linking CXX executable bin/f18-parse-demo
[7833/7899] Linking CXX shared library lib/libFortranEvaluate.so.21.0git
FAILED: lib/libFortranEvaluate.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-ctad-maybe-unsupported -fno-semantic-interposition -fpch-preprocess -O3 -DNDEBUG -fno-semantic-interposition  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libFortranEvaluate.so.21.0git -o lib/libFortranEvaluate.so.21.0git tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/call.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/characteristics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/check-expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/common.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/constant.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-character.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-designator.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-reduction.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/formatting.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/host.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/initial-image.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics-library.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/shape.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/static-data.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/target.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/type.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/variable.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib:"  lib/libFortranDecimal.so.21.0git  lib/libFortranParser.so.21.0git  -lquadmath  lib/libFortranSupport.so.21.0git  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib && :
tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o: In function `Fortran::semantics::CanCUDASymbolHaveSaveAttr(Fortran::semantics::Symbol const&) [clone .localalias.12]':
tools.cpp:(.text._ZN7Fortran9semantics25CanCUDASymbolHaveSaveAttrERKNS0_6SymbolE+0x7c): undefined reference to `Fortran::semantics::FindCUDADeviceAllocatableUltimateComponent(Fortran::semantics::DerivedTypeSpec const&)'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
['ninja'] exited with return code 1.
The build step threw an exception...
Traceback (most recent call last):
  File "../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py", line 50, in step
    yield
  File "../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py", line 41, in main
    run_command(["ninja"])
  File "../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py", line 63, in run_command
    util.report_run_cmd(cmd, cwd=directory)
  File "/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-zorg/zorg/buildbot/builders/annotated/util.py", line 49, in report_run_cmd
    subprocess.check_call(cmd, shell=shell, *args, **kwargs)
  File "/usr/lib64/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ninja']' returned non-zero exit status 1.
@@@STEP_FAILURE@@@
Step 7 (build cmake config) failure: build cmake config (failure)
...
[7824/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExpr.cpp.o
[7825/7899] Building CXX object tools/flang/tools/fir-lsp-server/CMakeFiles/fir-lsp-server.dir/fir-lsp-server.cpp.o
[7826/7899] Building CXX object tools/flang/tools/fir-opt/CMakeFiles/fir-opt.dir/fir-opt.cpp.o
[7827/7899] Building CXX object tools/flang/tools/tco/CMakeFiles/tco.dir/tco.cpp.o
[7828/7899] Building CXX object tools/flang/tools/bbc/CMakeFiles/bbc.dir/bbc.cpp.o
[7829/7899] Building CXX object tools/flang/lib/Parser/CMakeFiles/FortranParser.dir/openmp-parsers.cpp.o
[7830/7899] Linking CXX shared library lib/libFortranParser.so.21.0git
[7831/7899] Creating library symlink lib/libFortranParser.so
[7832/7899] Linking CXX executable bin/f18-parse-demo
[7833/7899] Linking CXX shared library lib/libFortranEvaluate.so.21.0git
FAILED: lib/libFortranEvaluate.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-ctad-maybe-unsupported -fno-semantic-interposition -fpch-preprocess -O3 -DNDEBUG -fno-semantic-interposition  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libFortranEvaluate.so.21.0git -o lib/libFortranEvaluate.so.21.0git tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/call.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/characteristics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/check-expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/common.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/constant.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-character.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-designator.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-reduction.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/formatting.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/host.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/initial-image.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics-library.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/shape.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/static-data.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/target.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/type.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/variable.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib:"  lib/libFortranDecimal.so.21.0git  lib/libFortranParser.so.21.0git  -lquadmath  lib/libFortranSupport.so.21.0git  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib && :
tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o: In function `Fortran::semantics::CanCUDASymbolHaveSaveAttr(Fortran::semantics::Symbol const&) [clone .localalias.12]':
tools.cpp:(.text._ZN7Fortran9semantics25CanCUDASymbolHaveSaveAttrERKNS0_6SymbolE+0x7c): undefined reference to `Fortran::semantics::FindCUDADeviceAllocatableUltimateComponent(Fortran::semantics::DerivedTypeSpec const&)'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
['ninja'] exited with return code 1.
The build step threw an exception...
Traceback (most recent call last):
  File "../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py", line 50, in step
    yield
  File "../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py", line 41, in main
    run_command(["ninja"])
  File "../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py", line 63, in run_command
    util.report_run_cmd(cmd, cwd=directory)
  File "/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-zorg/zorg/buildbot/builders/annotated/util.py", line 49, in report_run_cmd
    subprocess.check_call(cmd, shell=shell, *args, **kwargs)
  File "/usr/lib64/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ninja']' returned non-zero exit status 1.
program finished with exit code 0
elapsedTime=348.852245

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 3, 2025

LLVM Buildbot has detected a new failure on builder amdgpu-offload-ubuntu-22-cmake-build-only running on rocm-docker-ubu-22 while building flang at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/203/builds/15409

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: '../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py --jobs=32' (failure)
...
[7504/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/pointer-assignment.cpp.o
[7505/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/openmp-utils.cpp.o
[7506/7899] Building CXX object tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-integer.cpp.o
[7507/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/tools.cpp.o
[7508/7899] Building CXX object tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o
[7509/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/scope.cpp.o
[7510/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/mod-file.cpp.o
[7511/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/symbol.cpp.o
[7512/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/resolve-names-utils.cpp.o
[7513/7899] Linking CXX shared library lib/libFortranEvaluate.so.21.0git
FAILED: lib/libFortranEvaluate.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-ctad-maybe-unsupported -fno-semantic-interposition -fpch-preprocess -O3 -DNDEBUG -fno-semantic-interposition  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libFortranEvaluate.so.21.0git -o lib/libFortranEvaluate.so.21.0git tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/call.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/characteristics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/check-expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/common.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/constant.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-character.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-designator.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-reduction.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/formatting.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/host.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/initial-image.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics-library.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/shape.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/static-data.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/target.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/type.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/variable.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib:"  lib/libFortranDecimal.so.21.0git  lib/libFortranParser.so.21.0git  -lquadmath  lib/libFortranSupport.so.21.0git  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib && :
/usr/bin/ld: tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o: in function `Fortran::semantics::CanCUDASymbolHaveSaveAttr(Fortran::semantics::Symbol const&) [clone .localalias]':
tools.cpp:(.text._ZN7Fortran9semantics25CanCUDASymbolHaveSaveAttrERKNS0_6SymbolE+0x76): undefined reference to `Fortran::semantics::FindCUDADeviceAllocatableUltimateComponent(Fortran::semantics::DerivedTypeSpec const&)'
collect2: error: ld returned 1 exit status
[7514/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/unparse-with-symbols.cpp.o
[7515/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/check-omp-structure.cpp.o
[7516/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/runtime-type-info.cpp.o
[7517/7899] Building CXX object tools/flang/lib/FrontendTool/CMakeFiles/flangFrontendTool.dir/ExecuteCompilerInvocation.cpp.o
[7518/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Coarray.cpp.o
[7519/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ComponentPath.cpp.o
[7520/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/type.cpp.o
[7521/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/CallInterface.cpp.o
[7522/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/resolve-directives.cpp.o
[7523/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Allocatable.cpp.o
[7524/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/HlfirIntrinsics.cpp.o
[7525/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertType.cpp.o
[7526/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/LoweringOptions.cpp.o
[7527/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/IterationSpace.cpp.o
[7528/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertProcedureDesignator.cpp.o
[7529/7899] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/IntrinsicCall.cpp.o
[7530/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertCall.cpp.o
[7531/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertArrayConstructor.cpp.o
[7532/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertConstant.cpp.o
[7533/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/CustomIntrinsicCall.cpp.o
[7534/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Mangler.cpp.o
[7535/7899] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/cmake_pch.hxx.gch
[7536/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/IO.cpp.o
[7537/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/semantics.cpp.o
[7538/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Bridge.cpp.o
[7539/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/HostAssociations.cpp.o
[7540/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertVariable.cpp.o
[7541/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/expression.cpp.o
[7542/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExprToHLFIR.cpp.o
[7543/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Atomic.cpp.o
[7544/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/resolve-names.cpp.o
[7545/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenACC.cpp.o
[7546/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExpr.cpp.o
ninja: build stopped: subcommand failed.
Step 7 (build cmake config) failure: build cmake config (failure)
...
[7504/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/pointer-assignment.cpp.o
[7505/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/openmp-utils.cpp.o
[7506/7899] Building CXX object tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-integer.cpp.o
[7507/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/tools.cpp.o
[7508/7899] Building CXX object tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o
[7509/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/scope.cpp.o
[7510/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/mod-file.cpp.o
[7511/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/symbol.cpp.o
[7512/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/resolve-names-utils.cpp.o
[7513/7899] Linking CXX shared library lib/libFortranEvaluate.so.21.0git
FAILED: lib/libFortranEvaluate.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-ctad-maybe-unsupported -fno-semantic-interposition -fpch-preprocess -O3 -DNDEBUG -fno-semantic-interposition  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libFortranEvaluate.so.21.0git -o lib/libFortranEvaluate.so.21.0git tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/call.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/characteristics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/check-expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/common.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/constant.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-character.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-designator.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-reduction.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/formatting.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/host.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/initial-image.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics-library.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/shape.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/static-data.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/target.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/type.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/variable.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib:"  lib/libFortranDecimal.so.21.0git  lib/libFortranParser.so.21.0git  -lquadmath  lib/libFortranSupport.so.21.0git  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib && :
/usr/bin/ld: tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o: in function `Fortran::semantics::CanCUDASymbolHaveSaveAttr(Fortran::semantics::Symbol const&) [clone .localalias]':
tools.cpp:(.text._ZN7Fortran9semantics25CanCUDASymbolHaveSaveAttrERKNS0_6SymbolE+0x76): undefined reference to `Fortran::semantics::FindCUDADeviceAllocatableUltimateComponent(Fortran::semantics::DerivedTypeSpec const&)'
collect2: error: ld returned 1 exit status
[7514/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/unparse-with-symbols.cpp.o
[7515/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/check-omp-structure.cpp.o
[7516/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/runtime-type-info.cpp.o
[7517/7899] Building CXX object tools/flang/lib/FrontendTool/CMakeFiles/flangFrontendTool.dir/ExecuteCompilerInvocation.cpp.o
[7518/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Coarray.cpp.o
[7519/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ComponentPath.cpp.o
[7520/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/type.cpp.o
[7521/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/CallInterface.cpp.o
[7522/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/resolve-directives.cpp.o
[7523/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Allocatable.cpp.o
[7524/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/HlfirIntrinsics.cpp.o
[7525/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertType.cpp.o
[7526/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/LoweringOptions.cpp.o
[7527/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/IterationSpace.cpp.o
[7528/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertProcedureDesignator.cpp.o
[7529/7899] Building CXX object tools/flang/lib/Optimizer/Builder/CMakeFiles/FIRBuilder.dir/IntrinsicCall.cpp.o
[7530/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertCall.cpp.o
[7531/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertArrayConstructor.cpp.o
[7532/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertConstant.cpp.o
[7533/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/CustomIntrinsicCall.cpp.o
[7534/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Mangler.cpp.o
[7535/7899] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/cmake_pch.hxx.gch
[7536/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/IO.cpp.o
[7537/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/semantics.cpp.o
[7538/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Bridge.cpp.o
[7539/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/HostAssociations.cpp.o
[7540/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertVariable.cpp.o
[7541/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/expression.cpp.o
[7542/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExprToHLFIR.cpp.o
[7543/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Atomic.cpp.o
[7544/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/resolve-names.cpp.o
[7545/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenACC.cpp.o
[7546/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExpr.cpp.o
ninja: build stopped: subcommand failed.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 3, 2025

LLVM Buildbot has detected a new failure on builder amdgpu-offload-rhel-9-cmake-build-only running on rocm-docker-rhel-9 while building flang at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/205/builds/14199

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: '../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py --jobs=32' (failure)
...
[7512/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertCall.cpp.o
[7513/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/HlfirIntrinsics.cpp.o
[7514/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertType.cpp.o
[7515/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertProcedureDesignator.cpp.o
[7516/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertArrayConstructor.cpp.o
[7517/7899] Linking CXX shared library lib/libFortranParser.so.21.0git
[7518/7899] Creating library symlink lib/libFortranParser.so
[7519/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertConstant.cpp.o
[7520/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/LoweringOptions.cpp.o
[7521/7899] Linking CXX shared library lib/libFortranEvaluate.so.21.0git
FAILED: lib/libFortranEvaluate.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-ctad-maybe-unsupported -fno-semantic-interposition -fpch-preprocess -O3 -DNDEBUG -fno-semantic-interposition  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libFortranEvaluate.so.21.0git -o lib/libFortranEvaluate.so.21.0git tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/call.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/characteristics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/check-expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/common.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/constant.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-character.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-designator.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-reduction.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/formatting.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/host.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/initial-image.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics-library.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/shape.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/static-data.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/target.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/type.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/variable.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib:"  lib/libFortranDecimal.so.21.0git  lib/libFortranParser.so.21.0git  -lquadmath  lib/libFortranSupport.so.21.0git  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib && :
/usr/bin/ld: tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o: in function `Fortran::semantics::CanCUDASymbolHaveSaveAttr(Fortran::semantics::Symbol const&) [clone .localalias]':
tools.cpp:(.text._ZN7Fortran9semantics25CanCUDASymbolHaveSaveAttrERKNS0_6SymbolE+0x5e): undefined reference to `Fortran::semantics::FindCUDADeviceAllocatableUltimateComponent(Fortran::semantics::DerivedTypeSpec const&)'
collect2: error: ld returned 1 exit status
[7522/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/IterationSpace.cpp.o
[7523/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/CustomIntrinsicCall.cpp.o
[7524/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Bridge.cpp.o
[7525/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/resolve-directives.cpp.o
[7526/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/HostAssociations.cpp.o
[7527/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Mangler.cpp.o
[7528/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Runtime.cpp.o
[7529/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertVariable.cpp.o
[7530/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/IO.cpp.o
[7531/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Support/PrivateReductionUtils.cpp.o
[7532/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/SymbolMap.cpp.o
[7533/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/ReductionProcessor.cpp.o
[7534/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExprToHLFIR.cpp.o
[7535/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/semantics.cpp.o
[7536/7899] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/CompilerInvocation.cpp.o
[7537/7899] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/CompilerInstance.cpp.o
[7538/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/expression.cpp.o
[7539/7899] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/CodeGenOptions.cpp.o
[7540/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Atomic.cpp.o
[7541/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Utils.cpp.o
[7542/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/resolve-names.cpp.o
[7543/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/VectorSubscripts.cpp.o
[7544/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/unparse-with-symbols.cpp.o
[7545/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/ClauseProcessor.cpp.o
[7546/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/type.cpp.o
[7547/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Decomposer.cpp.o
[7548/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Support/Utils.cpp.o
[7549/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenACC.cpp.o
[7550/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/OpenMP.cpp.o
[7551/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Clauses.cpp.o
[7552/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/PFTBuilder.cpp.o
[7553/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/DataSharingProcessor.cpp.o
[7554/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExpr.cpp.o
ninja: build stopped: subcommand failed.
Step 7 (build cmake config) failure: build cmake config (failure)
...
[7512/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertCall.cpp.o
[7513/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/HlfirIntrinsics.cpp.o
[7514/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertType.cpp.o
[7515/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertProcedureDesignator.cpp.o
[7516/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertArrayConstructor.cpp.o
[7517/7899] Linking CXX shared library lib/libFortranParser.so.21.0git
[7518/7899] Creating library symlink lib/libFortranParser.so
[7519/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertConstant.cpp.o
[7520/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/LoweringOptions.cpp.o
[7521/7899] Linking CXX shared library lib/libFortranEvaluate.so.21.0git
FAILED: lib/libFortranEvaluate.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-ctad-maybe-unsupported -fno-semantic-interposition -fpch-preprocess -O3 -DNDEBUG -fno-semantic-interposition  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libFortranEvaluate.so.21.0git -o lib/libFortranEvaluate.so.21.0git tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/call.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/characteristics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/check-expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/common.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/constant.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/expression.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-character.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-complex.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-designator.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/fold-reduction.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/formatting.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/host.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/initial-image.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/integer.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/intrinsics-library.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/logical.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/real.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/shape.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/static-data.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/target.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/type.cpp.o tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/variable.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib:"  lib/libFortranDecimal.so.21.0git  lib/libFortranParser.so.21.0git  -lquadmath  lib/libFortranSupport.so.21.0git  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib && :
/usr/bin/ld: tools/flang/lib/Evaluate/CMakeFiles/FortranEvaluate.dir/tools.cpp.o: in function `Fortran::semantics::CanCUDASymbolHaveSaveAttr(Fortran::semantics::Symbol const&) [clone .localalias]':
tools.cpp:(.text._ZN7Fortran9semantics25CanCUDASymbolHaveSaveAttrERKNS0_6SymbolE+0x5e): undefined reference to `Fortran::semantics::FindCUDADeviceAllocatableUltimateComponent(Fortran::semantics::DerivedTypeSpec const&)'
collect2: error: ld returned 1 exit status
[7522/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/IterationSpace.cpp.o
[7523/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/CustomIntrinsicCall.cpp.o
[7524/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Bridge.cpp.o
[7525/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/resolve-directives.cpp.o
[7526/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/HostAssociations.cpp.o
[7527/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Mangler.cpp.o
[7528/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Runtime.cpp.o
[7529/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertVariable.cpp.o
[7530/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/IO.cpp.o
[7531/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Support/PrivateReductionUtils.cpp.o
[7532/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/SymbolMap.cpp.o
[7533/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/ReductionProcessor.cpp.o
[7534/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExprToHLFIR.cpp.o
[7535/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/semantics.cpp.o
[7536/7899] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/CompilerInvocation.cpp.o
[7537/7899] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/CompilerInstance.cpp.o
[7538/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/expression.cpp.o
[7539/7899] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/CodeGenOptions.cpp.o
[7540/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Atomic.cpp.o
[7541/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Utils.cpp.o
[7542/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/resolve-names.cpp.o
[7543/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/VectorSubscripts.cpp.o
[7544/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/unparse-with-symbols.cpp.o
[7545/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/ClauseProcessor.cpp.o
[7546/7899] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/type.cpp.o
[7547/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Decomposer.cpp.o
[7548/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Support/Utils.cpp.o
[7549/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenACC.cpp.o
[7550/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/OpenMP.cpp.o
[7551/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Clauses.cpp.o
[7552/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/PFTBuilder.cpp.o
[7553/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/DataSharingProcessor.cpp.o
[7554/7899] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExpr.cpp.o
ninja: build stopped: subcommand failed.

clementval added a commit that referenced this pull request Jul 3, 2025
clementval added a commit that referenced this pull request Jul 7, 2025
…atable device components (#147402)

Reviewed in #146780

derived type with CUDA device allocatable components will be handle via
CUDA allocation. Do not create global for them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
flang:fir-hlfir flang:semantics flang Flang issues not falling into any other category
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants