Skip to content

Conversation

@razvanlupusoru
Copy link
Contributor

This PR adds a new utility function to check whether symbols used in OpenACC regions are legal for offloading. Functions must be marked with acc routine or be built-in intrinsics. Global symbols must be marked with acc declare.

The utility is designed to be extensible, and the OpenACCSupport analysis has been updated to allow handling of additional symbols that do not necessarily use OpenACC attributes but are marked in a way that still guarantees the symbol will be available when offloading. For example, in the Flang implementation, CUF attributes can be validated as legal symbols.

This PR adds a new utility function to check whether symbols
used in OpenACC regions are legal for offloading. Functions must
be marked with `acc routine` or be built-in intrinsics. Global
symbols must be marked with `acc declare`.

The utility is designed to be extensible, and the OpenACCSupport
analysis has been updated to allow handling of additional symbols
that do not necessarily use OpenACC attributes but are marked in
a way that still guarantees the symbol will be available when
offloading. For example, in the Flang implementation, CUF
attributes can be validated as legal symbols.
@llvmbot
Copy link
Member

llvmbot commented Nov 13, 2025

@llvm/pr-subscribers-openacc
@llvm/pr-subscribers-mlir-openacc

@llvm/pr-subscribers-mlir

Author: Razvan Lupusoru (razvanlupusoru)

Changes

This PR adds a new utility function to check whether symbols used in OpenACC regions are legal for offloading. Functions must be marked with acc routine or be built-in intrinsics. Global symbols must be marked with acc declare.

The utility is designed to be extensible, and the OpenACCSupport analysis has been updated to allow handling of additional symbols that do not necessarily use OpenACC attributes but are marked in a way that still guarantees the symbol will be available when offloading. For example, in the Flang implementation, CUF attributes can be validated as legal symbols.


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

5 Files Affected:

  • (modified) mlir/include/mlir/Dialect/OpenACC/Analysis/OpenACCSupport.h (+36-1)
  • (modified) mlir/include/mlir/Dialect/OpenACC/OpenACCUtils.h (+10)
  • (modified) mlir/lib/Dialect/OpenACC/Analysis/OpenACCSupport.cpp (+7)
  • (modified) mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp (+50)
  • (modified) mlir/unittests/Dialect/OpenACC/OpenACCUtilsTest.cpp (+239)
diff --git a/mlir/include/mlir/Dialect/OpenACC/Analysis/OpenACCSupport.h b/mlir/include/mlir/Dialect/OpenACC/Analysis/OpenACCSupport.h
index d9b2646b753f3..7be525e87a695 100644
--- a/mlir/include/mlir/Dialect/OpenACC/Analysis/OpenACCSupport.h
+++ b/mlir/include/mlir/Dialect/OpenACC/Analysis/OpenACCSupport.h
@@ -58,8 +58,10 @@
 namespace mlir {
 namespace acc {
 
-// Forward declaration for RecipeKind enum
+// Forward declarations
 enum class RecipeKind : uint32_t;
+bool isValidSymbolUse(Operation *user, SymbolRefAttr symbol,
+                      Operation **definingOpPtr);
 
 namespace detail {
 /// This class contains internal trait classes used by OpenACCSupport.
@@ -79,11 +81,27 @@ struct OpenACCSupportTraits {
 
     // Used to report a case that is not supported by the implementation.
     virtual InFlightDiagnostic emitNYI(Location loc, const Twine &message) = 0;
+
+    /// Check if a symbol use is valid for use in an OpenACC region.
+    virtual bool isValidSymbolUse(Operation *user, SymbolRefAttr symbol,
+                                  Operation **definingOpPtr) = 0;
   };
 
+  /// SFINAE helpers to detect if implementation has optional methods
+  template <typename ImplT, typename... Args>
+  using isValidSymbolUse_t =
+      decltype(std::declval<ImplT>().isValidSymbolUse(std::declval<Args>()...));
+
+  template <typename ImplT>
+  using has_isValidSymbolUse =
+      llvm::is_detected<isValidSymbolUse_t, ImplT, Operation *, SymbolRefAttr,
+                        Operation **>;
+
   /// This class wraps a concrete OpenACCSupport implementation and forwards
   /// interface calls to it. This provides type erasure, allowing different
   /// implementation types to be used interchangeably without inheritance.
+  /// Methods can be optionally implemented; if not present, default behavior
+  /// is used.
   template <typename ImplT>
   class Model final : public Concept {
   public:
@@ -102,6 +120,14 @@ struct OpenACCSupportTraits {
       return impl.emitNYI(loc, message);
     }
 
+    bool isValidSymbolUse(Operation *user, SymbolRefAttr symbol,
+                          Operation **definingOpPtr) final {
+      if constexpr (has_isValidSymbolUse<ImplT>::value)
+        return impl.isValidSymbolUse(user, symbol, definingOpPtr);
+      else
+        return acc::isValidSymbolUse(user, symbol, definingOpPtr);
+    }
+
   private:
     ImplT impl;
   };
@@ -154,6 +180,15 @@ class OpenACCSupport {
   ///         unsupported case.
   InFlightDiagnostic emitNYI(Location loc, const Twine &message);
 
+  /// Check if a symbol use is valid for use in an OpenACC region.
+  ///
+  /// \param user The operation using the symbol.
+  /// \param symbol The symbol reference being used.
+  /// \param definingOpPtr Optional output parameter to receive the defining op.
+  /// \return true if the symbol use is valid, false otherwise.
+  bool isValidSymbolUse(Operation *user, SymbolRefAttr symbol,
+                        Operation **definingOpPtr = nullptr);
+
   /// Signal that this analysis should always be preserved so that
   /// underlying implementation registration is not lost.
   bool isInvalidated(const AnalysisManager::PreservedAnalyses &pa) {
diff --git a/mlir/include/mlir/Dialect/OpenACC/OpenACCUtils.h b/mlir/include/mlir/Dialect/OpenACC/OpenACCUtils.h
index 964735755c4a3..2852e0917c3fb 100644
--- a/mlir/include/mlir/Dialect/OpenACC/OpenACCUtils.h
+++ b/mlir/include/mlir/Dialect/OpenACC/OpenACCUtils.h
@@ -52,6 +52,16 @@ std::string getRecipeName(mlir::acc::RecipeKind kind, mlir::Type type);
 // base `array` from an operation that only accesses a subarray.
 mlir::Value getBaseEntity(mlir::Value val);
 
+/// Check if a symbol use is valid for use in an OpenACC region.
+/// This includes looking for various attributes such as `acc.routine_info`
+/// and `acc.declare` attributes.
+/// \param user The operation using the symbol
+/// \param symbol The symbol reference being used
+/// \param definingOpPtr Optional output parameter to receive the defining op
+/// \return true if the symbol use is valid, false otherwise
+bool isValidSymbolUse(mlir::Operation *user, mlir::SymbolRefAttr symbol,
+                      mlir::Operation **definingOpPtr = nullptr);
+
 } // namespace acc
 } // namespace mlir
 
diff --git a/mlir/lib/Dialect/OpenACC/Analysis/OpenACCSupport.cpp b/mlir/lib/Dialect/OpenACC/Analysis/OpenACCSupport.cpp
index 40e769e7068cf..1d775fb975738 100644
--- a/mlir/lib/Dialect/OpenACC/Analysis/OpenACCSupport.cpp
+++ b/mlir/lib/Dialect/OpenACC/Analysis/OpenACCSupport.cpp
@@ -41,5 +41,12 @@ InFlightDiagnostic OpenACCSupport::emitNYI(Location loc, const Twine &message) {
   return mlir::emitError(loc, "not yet implemented: " + message);
 }
 
+bool OpenACCSupport::isValidSymbolUse(Operation *user, SymbolRefAttr symbol,
+                                      Operation **definingOpPtr) {
+  if (impl)
+    return impl->isValidSymbolUse(user, symbol, definingOpPtr);
+  return acc::isValidSymbolUse(user, symbol, definingOpPtr);
+}
+
 } // namespace acc
 } // namespace mlir
diff --git a/mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp b/mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
index fbac28e740750..aebc248e02ea0 100644
--- a/mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
+++ b/mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
@@ -9,8 +9,11 @@
 #include "mlir/Dialect/OpenACC/OpenACCUtils.h"
 
 #include "mlir/Dialect/OpenACC/OpenACC.h"
+#include "mlir/IR/SymbolTable.h"
+#include "mlir/Interfaces/FunctionInterfaces.h"
 #include "mlir/Interfaces/ViewLikeInterface.h"
 #include "llvm/ADT/TypeSwitch.h"
+#include "llvm/IR/Intrinsics.h"
 #include "llvm/Support/Casting.h"
 
 mlir::Operation *mlir::acc::getEnclosingComputeOp(mlir::Region &region) {
@@ -155,3 +158,50 @@ mlir::Value mlir::acc::getBaseEntity(mlir::Value val) {
 
   return val;
 }
+
+bool mlir::acc::isValidSymbolUse(mlir::Operation *user,
+                                 mlir::SymbolRefAttr symbol,
+                                 mlir::Operation **definingOpPtr) {
+  mlir::Operation *definingOp =
+      mlir::SymbolTable::lookupNearestSymbolFrom(user, symbol);
+
+  // If there are no defining ops, we have no way to ensure validity because
+  // we cannot check for any attributes.
+  if (!definingOp)
+    return false;
+
+  if (definingOpPtr)
+    *definingOpPtr = definingOp;
+
+  // Check if the defining op is a recipe (private, reduction, firstprivate).
+  // Recipes are valid as they get materialized before being offloaded to
+  // device. They are only instructions for how to materialize.
+  if (mlir::isa<mlir::acc::PrivateRecipeOp, mlir::acc::ReductionRecipeOp,
+                mlir::acc::FirstprivateRecipeOp>(definingOp))
+    return true;
+
+  // Check if the defining op is a function
+  if (auto func =
+          mlir::dyn_cast_if_present<mlir::FunctionOpInterface>(definingOp)) {
+    // If this symbol is actually an acc routine - then it is expected for it
+    // to be offloaded - therefore it is valid.
+    if (func->hasAttr(mlir::acc::getRoutineInfoAttrName()))
+      return true;
+
+    // If this symbol is a call to an LLVM intrinsic, then it is likely valid.
+    // Check the following:
+    // 1. The function is private
+    // 2. The function has no body
+    // 3. Name starts with "llvm."
+    // 4. The function's name is a valid LLVM intrinsic name
+    if (func.getVisibility() == mlir::SymbolTable::Visibility::Private &&
+        func.getFunctionBody().empty() && func.getName().starts_with("llvm.") &&
+        llvm::Intrinsic::lookupIntrinsicID(func.getName()) !=
+            llvm::Intrinsic::not_intrinsic)
+      return true;
+  }
+
+  // A declare attribute is needed for symbol references.
+  bool hasDeclare = definingOp->hasAttr(mlir::acc::getDeclareAttrName());
+  return hasDeclare;
+}
diff --git a/mlir/unittests/Dialect/OpenACC/OpenACCUtilsTest.cpp b/mlir/unittests/Dialect/OpenACC/OpenACCUtilsTest.cpp
index 6f4e30585b2c9..8b1f532bbe5c0 100644
--- a/mlir/unittests/Dialect/OpenACC/OpenACCUtilsTest.cpp
+++ b/mlir/unittests/Dialect/OpenACC/OpenACCUtilsTest.cpp
@@ -674,3 +674,242 @@ TEST_F(OpenACCUtilsTest, getBaseEntityChainedSubviews) {
   Value ultimateBase = getBaseEntity(baseEntity);
   EXPECT_EQ(ultimateBase, baseMemref);
 }
+
+//===----------------------------------------------------------------------===//
+// isValidSymbolUse Tests
+//===----------------------------------------------------------------------===//
+
+TEST_F(OpenACCUtilsTest, isValidSymbolUseNoDefiningOp) {
+  // Create a memref.get_global that references a non-existent global
+  auto memrefType = MemRefType::get({10}, b.getI32Type());
+  llvm::StringRef globalName = "nonexistent_global";
+  SymbolRefAttr nonExistentSymbol = SymbolRefAttr::get(&context, globalName);
+
+  OwningOpRef<memref::GetGlobalOp> getGlobalOp =
+      memref::GetGlobalOp::create(b, loc, memrefType, globalName);
+
+  Operation *definingOp = nullptr;
+  bool result =
+      isValidSymbolUse(getGlobalOp.get(), nonExistentSymbol, &definingOp);
+
+  EXPECT_FALSE(result);
+  EXPECT_EQ(definingOp, nullptr);
+}
+
+TEST_F(OpenACCUtilsTest, isValidSymbolUseRecipe) {
+  // Create a module to hold the recipe
+  OwningOpRef<ModuleOp> module = ModuleOp::create(loc);
+  Block *moduleBlock = module->getBody();
+
+  OpBuilder::InsertionGuard guard(b);
+  b.setInsertionPointToStart(moduleBlock);
+
+  // Create a private recipe (any recipe type would work)
+  auto i32Type = b.getI32Type();
+  llvm::StringRef recipeName = "test_recipe";
+  OwningOpRef<PrivateRecipeOp> recipeOp =
+      PrivateRecipeOp::create(b, loc, recipeName, i32Type);
+
+  // Create a value to privatize
+  auto memrefTy = MemRefType::get({10}, b.getI32Type());
+  OwningOpRef<memref::AllocaOp> allocOp =
+      memref::AllocaOp::create(b, loc, memrefTy);
+  TypedValue<PointerLikeType> varPtr =
+      cast<TypedValue<PointerLikeType>>(allocOp->getResult());
+
+  // Create a private op as the user operation
+  OwningOpRef<PrivateOp> privateOp = PrivateOp::create(
+      b, loc, varPtr, /*structured=*/true, /*implicit=*/false);
+
+  // Create a symbol reference to the recipe
+  SymbolRefAttr recipeSymbol = SymbolRefAttr::get(&context, recipeName);
+
+  Operation *definingOp = nullptr;
+  bool result = isValidSymbolUse(privateOp.get(), recipeSymbol, &definingOp);
+
+  EXPECT_TRUE(result);
+  EXPECT_EQ(definingOp, recipeOp.get());
+}
+
+TEST_F(OpenACCUtilsTest, isValidSymbolUseFunctionWithRoutineInfo) {
+  // Create a module to hold the function
+  OwningOpRef<ModuleOp> module = ModuleOp::create(loc);
+  Block *moduleBlock = module->getBody();
+
+  OpBuilder::InsertionGuard guard(b);
+  b.setInsertionPointToStart(moduleBlock);
+
+  // Create a function with routine_info attribute
+  auto funcType = b.getFunctionType({}, {});
+  llvm::StringRef funcName = "routine_func";
+  OwningOpRef<func::FuncOp> funcOp =
+      func::FuncOp::create(b, loc, funcName, funcType);
+
+  // Add routine_info attribute with a reference to a routine
+  SmallVector<SymbolRefAttr> routineRefs = {
+      SymbolRefAttr::get(&context, "acc_routine")};
+  funcOp.get()->setAttr(getRoutineInfoAttrName(),
+                        RoutineInfoAttr::get(&context, routineRefs));
+
+  // Create a call operation that uses the function symbol
+  SymbolRefAttr funcSymbol = SymbolRefAttr::get(&context, funcName);
+  OwningOpRef<func::CallOp> callOp = func::CallOp::create(
+      b, loc, funcSymbol, funcType.getResults(), ValueRange{});
+
+  Operation *definingOp = nullptr;
+  bool result = isValidSymbolUse(callOp.get(), funcSymbol, &definingOp);
+
+  EXPECT_TRUE(result);
+  EXPECT_NE(definingOp, nullptr);
+}
+
+TEST_F(OpenACCUtilsTest, isValidSymbolUseLLVMIntrinsic) {
+  // Create a module to hold the function
+  OwningOpRef<ModuleOp> module = ModuleOp::create(loc);
+  Block *moduleBlock = module->getBody();
+
+  OpBuilder::InsertionGuard guard(b);
+  b.setInsertionPointToStart(moduleBlock);
+
+  // Create a private function with LLVM intrinsic name
+  auto funcType = b.getFunctionType({b.getF32Type()}, {b.getF32Type()});
+  llvm::StringRef intrinsicName = "llvm.sqrt.f32";
+  OwningOpRef<func::FuncOp> funcOp =
+      func::FuncOp::create(b, loc, intrinsicName, funcType);
+
+  // Set visibility to private (required for intrinsics)
+  funcOp->setPrivate();
+
+  // Create a call operation that uses the intrinsic
+  SymbolRefAttr funcSymbol = SymbolRefAttr::get(&context, intrinsicName);
+  OwningOpRef<func::CallOp> callOp = func::CallOp::create(
+      b, loc, funcSymbol, funcType.getResults(), ValueRange{});
+
+  Operation *definingOp = nullptr;
+  bool result = isValidSymbolUse(callOp.get(), funcSymbol, &definingOp);
+
+  EXPECT_TRUE(result);
+  EXPECT_NE(definingOp, nullptr);
+}
+
+TEST_F(OpenACCUtilsTest, isValidSymbolUseFunctionNotIntrinsic) {
+  // Create a module to hold the function
+  OwningOpRef<ModuleOp> module = ModuleOp::create(loc);
+  Block *moduleBlock = module->getBody();
+
+  OpBuilder::InsertionGuard guard(b);
+  b.setInsertionPointToStart(moduleBlock);
+
+  // Create a private function that looks like intrinsic but isn't
+  auto funcType = b.getFunctionType({}, {});
+  llvm::StringRef funcName = "llvm.not_a_real_intrinsic";
+  OwningOpRef<func::FuncOp> funcOp =
+      func::FuncOp::create(b, loc, funcName, funcType);
+  funcOp->setPrivate();
+
+  // Create a call operation that uses the function
+  SymbolRefAttr funcSymbol = SymbolRefAttr::get(&context, funcName);
+  OwningOpRef<func::CallOp> callOp = func::CallOp::create(
+      b, loc, funcSymbol, funcType.getResults(), ValueRange{});
+
+  Operation *definingOp = nullptr;
+  bool result = isValidSymbolUse(callOp.get(), funcSymbol, &definingOp);
+
+  // Should be false because it's not a valid intrinsic and has no
+  // acc.routine_info attr
+  EXPECT_FALSE(result);
+  EXPECT_NE(definingOp, nullptr);
+}
+
+TEST_F(OpenACCUtilsTest, isValidSymbolUseWithDeclareAttr) {
+  // Create a module to hold a function
+  OwningOpRef<ModuleOp> module = ModuleOp::create(loc);
+  Block *moduleBlock = module->getBody();
+
+  OpBuilder::InsertionGuard guard(b);
+  b.setInsertionPointToStart(moduleBlock);
+
+  // Create a function with declare attribute
+  auto funcType = b.getFunctionType({}, {});
+  llvm::StringRef funcName = "declared_func";
+  OwningOpRef<func::FuncOp> funcOp =
+      func::FuncOp::create(b, loc, funcName, funcType);
+
+  // Add declare attribute
+  funcOp.get()->setAttr(
+      getDeclareAttrName(),
+      DeclareAttr::get(&context,
+                       DataClauseAttr::get(&context, DataClause::acc_copy)));
+
+  // Create a call operation that uses the function
+  SymbolRefAttr funcSymbol = SymbolRefAttr::get(&context, funcName);
+  OwningOpRef<func::CallOp> callOp = func::CallOp::create(
+      b, loc, funcSymbol, funcType.getResults(), ValueRange{});
+
+  Operation *definingOp = nullptr;
+  bool result = isValidSymbolUse(callOp.get(), funcSymbol, &definingOp);
+
+  EXPECT_TRUE(result);
+  EXPECT_NE(definingOp, nullptr);
+}
+
+TEST_F(OpenACCUtilsTest, isValidSymbolUseWithoutValidAttributes) {
+  // Create a module to hold a function
+  OwningOpRef<ModuleOp> module = ModuleOp::create(loc);
+  Block *moduleBlock = module->getBody();
+
+  OpBuilder::InsertionGuard guard(b);
+  b.setInsertionPointToStart(moduleBlock);
+
+  // Create a function without any special attributes
+  auto funcType = b.getFunctionType({}, {});
+  llvm::StringRef funcName = "regular_func";
+  OwningOpRef<func::FuncOp> funcOp =
+      func::FuncOp::create(b, loc, funcName, funcType);
+
+  // Create a call operation that uses the function
+  SymbolRefAttr funcSymbol = SymbolRefAttr::get(&context, funcName);
+  OwningOpRef<func::CallOp> callOp = func::CallOp::create(
+      b, loc, funcSymbol, funcType.getResults(), ValueRange{});
+
+  Operation *definingOp = nullptr;
+  bool result = isValidSymbolUse(callOp.get(), funcSymbol, &definingOp);
+
+  // Should be false - no routine_info, not an intrinsic, no declare attribute
+  EXPECT_FALSE(result);
+  EXPECT_NE(definingOp, nullptr);
+}
+
+TEST_F(OpenACCUtilsTest, isValidSymbolUseNullDefiningOpPtr) {
+  // Create a module to hold a recipe
+  OwningOpRef<ModuleOp> module = ModuleOp::create(loc);
+  Block *moduleBlock = module->getBody();
+
+  OpBuilder::InsertionGuard guard(b);
+  b.setInsertionPointToStart(moduleBlock);
+
+  // Create a private recipe
+  auto i32Type = b.getI32Type();
+  llvm::StringRef recipeName = "test_recipe";
+  OwningOpRef<PrivateRecipeOp> recipeOp =
+      PrivateRecipeOp::create(b, loc, recipeName, i32Type);
+
+  // Create a value to privatize
+  auto memrefTy = MemRefType::get({10}, b.getI32Type());
+  OwningOpRef<memref::AllocaOp> allocOp =
+      memref::AllocaOp::create(b, loc, memrefTy);
+  TypedValue<PointerLikeType> varPtr =
+      cast<TypedValue<PointerLikeType>>(allocOp->getResult());
+
+  // Create a private op as the user operation
+  OwningOpRef<PrivateOp> privateOp = PrivateOp::create(
+      b, loc, varPtr, /*structured=*/true, /*implicit=*/false);
+
+  // Create a symbol reference to the recipe
+  SymbolRefAttr recipeSymbol = SymbolRefAttr::get(&context, recipeName);
+
+  // Call without definingOpPtr (nullptr)
+  bool result = isValidSymbolUse(privateOp.get(), recipeSymbol, nullptr);
+
+  EXPECT_TRUE(result);
+}

Copy link
Contributor

@clementval clementval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@vzakhari vzakhari left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@razvanlupusoru razvanlupusoru merged commit afd1ffb into llvm:main Nov 14, 2025
14 checks passed
@llvm-ci
Copy link
Collaborator

llvm-ci commented Nov 14, 2025

LLVM Buildbot has detected a new failure on builder flang-aarch64-sharedlibs running on linaro-flang-aarch64-sharedlibs while building mlir at step 5 "build-unified-tree".

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

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
228.375 [66/6/7931] Creating library symlink lib/libFIROpenACCSupport.so
228.395 [65/6/7932] Linking CXX shared library lib/libFIRAnalysis.so.22.0git
228.404 [64/6/7933] Creating library symlink lib/libFIRAnalysis.so
228.440 [62/7/7934] Linking CXX shared library lib/libFIROpenMPSupport.so.22.0git
228.447 [61/7/7935] Creating library symlink lib/libFIROpenMPSupport.so
228.689 [59/8/7936] Linking CXX shared library lib/libFIRTestOpenACCInterfaces.so.22.0git
228.698 [58/8/7937] Linking CXX shared library lib/libFIROpenACCAnalysis.so.22.0git
228.701 [57/8/7938] Creating library symlink lib/libFIRTestOpenACCInterfaces.so
228.705 [57/7/7939] Creating library symlink lib/libFIROpenACCAnalysis.so
229.007 [56/7/7940] Linking CXX shared library lib/libFIROpenACCTransforms.so.22.0git
FAILED: lib/libFIROpenACCTransforms.so.22.0git 
: && /usr/local/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-string-conversion -Wno-ctad-maybe-unsupported -Wno-unused-command-line-argument -Wstring-conversion           -Wcovered-switch-default -Wno-nested-anon-types -Xclang -fno-pch-timestamp -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libFIROpenACCTransforms.so.22.0git -o lib/libFIROpenACCTransforms.so.22.0git tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCRecipeBufferization.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/lib:"  lib/libFIROpenACCAnalysis.so.22.0git  lib/libFIRAnalysis.so.22.0git  lib/libHLFIRDialect.so.22.0git  lib/libFIRDialect.so.22.0git  lib/libMLIROpenACCDialect.so.22.0git  lib/libMLIROpenACCMPCommon.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferStridedMetadataInterface.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/lib && :
/usr/bin/ld: tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o: in function `mlir::acc::detail::OpenACCSupportTraits::Model<fir::acc::FIROpenACCSupportAnalysis>::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)':
ACCInitializeFIRAnalyses.cpp:(.text._ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_[_ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_]+0xc): undefined reference to `mlir::acc::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
229.165 [56/6/7941] Linking CXX shared library lib/libFIRCodeGen.so.22.0git
229.760 [56/5/7942] Linking CXX shared library lib/libFlangOpenMPTransforms.so.22.0git
230.864 [56/4/7943] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/PFTBuilder.cpp.o
231.319 [56/3/7944] Linking CXX executable bin/fir-lsp-server
233.920 [56/2/7945] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/check-omp-atomic.cpp.o
316.303 [56/1/7946] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExpr.cpp.o
ninja: build stopped: subcommand failed.

@razvanlupusoru
Copy link
Contributor Author

The following follow-up change attempts to resolve shared library build failures:
#168117

@llvm-ci
Copy link
Collaborator

llvm-ci commented Nov 14, 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 mlir at step 4 "annotate".

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

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)
...
[7945/8205] Building CXX object tools/dsymutil/CMakeFiles/dsymutil.dir/MachODebugMapParser.cpp.o
[7946/8205] Creating library symlink lib/libFIROpenMPSupport.so
[7947/8205] Linking CXX shared library lib/libFIROpenACCAnalysis.so.22.0git
[7948/8205] Creating library symlink lib/libFIROpenACCAnalysis.so
[7949/8205] Building CXX object tools/dsymutil/CMakeFiles/dsymutil.dir/MachOUtils.cpp.o
[7950/8205] Linking CXX shared library lib/libFIRTestOpenACCInterfaces.so.22.0git
[7951/8205] Creating library symlink lib/libFIRTestOpenACCInterfaces.so
[7952/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/AlgebraicSimplification.cpp.o
[7953/8205] Building CXX object tools/dsymutil/CMakeFiles/dsymutil.dir/Reproducer.cpp.o
[7954/8205] Linking CXX shared library lib/libFIROpenACCTransforms.so.22.0git
FAILED: lib/libFIROpenACCTransforms.so.22.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-array-bounds -Wno-stringop-overread -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,libFIROpenACCTransforms.so.22.0git -o lib/libFIROpenACCTransforms.so.22.0git tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCRecipeBufferization.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib:"  lib/libFIROpenACCAnalysis.so.22.0git  lib/libFIRAnalysis.so.22.0git  lib/libHLFIRDialect.so.22.0git  lib/libFIRDialect.so.22.0git  lib/libMLIROpenACCDialect.so.22.0git  lib/libMLIROpenACCMPCommon.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferStridedMetadataInterface.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib && :
/usr/bin/ld: tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o: in function `mlir::acc::detail::OpenACCSupportTraits::Model<fir::acc::FIROpenACCSupportAnalysis>::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)':
ACCInitializeFIRAnalyses.cpp:(.text._ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_[_ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_]+0xa): undefined reference to `mlir::acc::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)'
collect2: error: ld returned 1 exit status
[7955/8205] Building CXX object tools/dsymutil/CMakeFiles/dsymutil.dir/SwiftModule.cpp.o
[7956/8205] Building CXX object tools/dsymutil/CMakeFiles/dsymutil.dir/RelocationMap.cpp.o
[7957/8205] Linking CXX shared library lib/libFIRCodeGen.so.22.0git
[7958/8205] Linking CXX executable bin/fir-lsp-server
[7959/8205] Building CXX object tools/flang/test/lib/Analysis/AliasAnalysis/CMakeFiles/FIRTestAnalysis.dir/TestAliasAnalysis.cpp.o
[7960/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/StackReclaim.cpp.o
[7961/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SimplifyIntrinsics.cpp.o
[7962/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/VScaleAttr.cpp.o
[7963/8205] Building CXX object tools/flang/lib/Optimizer/OpenMP/CMakeFiles/FlangOpenMPTransforms.dir/GenericLoopConversion.cpp.o
[7964/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/AddDebugInfo.cpp.o
[7965/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/LoopVersioning.cpp.o
[7966/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/DebugTypeGenerator.cpp.o
[7967/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/FunctionAttr.cpp.o
[7968/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Clauses.cpp.o
[7969/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/OptimizeArrayRepacking.cpp.o
[7970/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SimplifyFIROperations.cpp.o
[7971/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/ConvertComplexPow.cpp.o
[7972/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SetRuntimeCallAttributes.cpp.o
[7973/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/GenRuntimeCallsForTest.cpp.o
[7974/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/MIFOpConversion.cpp.o
[7975/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Support/Utils.cpp.o
[7976/8205] Building CXX object tools/flang/lib/Optimizer/OpenMP/CMakeFiles/FlangOpenMPTransforms.dir/DoConcurrentConversion.cpp.o
[7977/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExpr.cpp.o
[7978/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/PolymorphicOpConversion.cpp.o
[7979/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/OpenMP.cpp.o
[7980/8205] Building CXX object tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o
[7981/8205] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/check-omp-atomic.cpp.o
[7982/8205] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/FrontendActions.cpp.o
[7983/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/PFTBuilder.cpp.o
[7984/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/DataSharingProcessor.cpp.o
[7985/8205] Building CXX object tools/flang/tools/flang-driver/CMakeFiles/flang.dir/fc1_main.cpp.o
[7986/8205] Building CXX object tools/flang/tools/bbc/CMakeFiles/bbc.dir/bbc.cpp.o
[7987/8205] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/ParserActions.cpp.o
ninja: build stopped: subcommand failed.
Step 7 (build cmake config) failure: build cmake config (failure)
...
[7945/8205] Building CXX object tools/dsymutil/CMakeFiles/dsymutil.dir/MachODebugMapParser.cpp.o
[7946/8205] Creating library symlink lib/libFIROpenMPSupport.so
[7947/8205] Linking CXX shared library lib/libFIROpenACCAnalysis.so.22.0git
[7948/8205] Creating library symlink lib/libFIROpenACCAnalysis.so
[7949/8205] Building CXX object tools/dsymutil/CMakeFiles/dsymutil.dir/MachOUtils.cpp.o
[7950/8205] Linking CXX shared library lib/libFIRTestOpenACCInterfaces.so.22.0git
[7951/8205] Creating library symlink lib/libFIRTestOpenACCInterfaces.so
[7952/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/AlgebraicSimplification.cpp.o
[7953/8205] Building CXX object tools/dsymutil/CMakeFiles/dsymutil.dir/Reproducer.cpp.o
[7954/8205] Linking CXX shared library lib/libFIROpenACCTransforms.so.22.0git
FAILED: lib/libFIROpenACCTransforms.so.22.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-array-bounds -Wno-stringop-overread -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,libFIROpenACCTransforms.so.22.0git -o lib/libFIROpenACCTransforms.so.22.0git tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCRecipeBufferization.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib:"  lib/libFIROpenACCAnalysis.so.22.0git  lib/libFIRAnalysis.so.22.0git  lib/libHLFIRDialect.so.22.0git  lib/libFIRDialect.so.22.0git  lib/libMLIROpenACCDialect.so.22.0git  lib/libMLIROpenACCMPCommon.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferStridedMetadataInterface.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib && :
/usr/bin/ld: tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o: in function `mlir::acc::detail::OpenACCSupportTraits::Model<fir::acc::FIROpenACCSupportAnalysis>::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)':
ACCInitializeFIRAnalyses.cpp:(.text._ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_[_ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_]+0xa): undefined reference to `mlir::acc::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)'
collect2: error: ld returned 1 exit status
[7955/8205] Building CXX object tools/dsymutil/CMakeFiles/dsymutil.dir/SwiftModule.cpp.o
[7956/8205] Building CXX object tools/dsymutil/CMakeFiles/dsymutil.dir/RelocationMap.cpp.o
[7957/8205] Linking CXX shared library lib/libFIRCodeGen.so.22.0git
[7958/8205] Linking CXX executable bin/fir-lsp-server
[7959/8205] Building CXX object tools/flang/test/lib/Analysis/AliasAnalysis/CMakeFiles/FIRTestAnalysis.dir/TestAliasAnalysis.cpp.o
[7960/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/StackReclaim.cpp.o
[7961/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SimplifyIntrinsics.cpp.o
[7962/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/VScaleAttr.cpp.o
[7963/8205] Building CXX object tools/flang/lib/Optimizer/OpenMP/CMakeFiles/FlangOpenMPTransforms.dir/GenericLoopConversion.cpp.o
[7964/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/AddDebugInfo.cpp.o
[7965/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/LoopVersioning.cpp.o
[7966/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/DebugTypeGenerator.cpp.o
[7967/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/FunctionAttr.cpp.o
[7968/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Clauses.cpp.o
[7969/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/OptimizeArrayRepacking.cpp.o
[7970/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SimplifyFIROperations.cpp.o
[7971/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/ConvertComplexPow.cpp.o
[7972/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SetRuntimeCallAttributes.cpp.o
[7973/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/GenRuntimeCallsForTest.cpp.o
[7974/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/MIFOpConversion.cpp.o
[7975/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Support/Utils.cpp.o
[7976/8205] Building CXX object tools/flang/lib/Optimizer/OpenMP/CMakeFiles/FlangOpenMPTransforms.dir/DoConcurrentConversion.cpp.o
[7977/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExpr.cpp.o
[7978/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/PolymorphicOpConversion.cpp.o
[7979/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/OpenMP.cpp.o
[7980/8205] Building CXX object tools/flang/lib/Optimizer/HLFIR/Transforms/CMakeFiles/HLFIRTransforms.dir/LowerHLFIRIntrinsics.cpp.o
[7981/8205] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/check-omp-atomic.cpp.o
[7982/8205] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/FrontendActions.cpp.o
[7983/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/PFTBuilder.cpp.o
[7984/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/DataSharingProcessor.cpp.o
[7985/8205] Building CXX object tools/flang/tools/flang-driver/CMakeFiles/flang.dir/fc1_main.cpp.o
[7986/8205] Building CXX object tools/flang/tools/bbc/CMakeFiles/bbc.dir/bbc.cpp.o
[7987/8205] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/ParserActions.cpp.o
ninja: build stopped: subcommand failed.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Nov 14, 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 mlir at step 4 "annotate".

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

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)
...
[7918/8205] Building CXX object tools/flang/lib/Optimizer/OpenMP/CMakeFiles/FlangOpenMPTransforms.dir/AutomapToTargetData.cpp.o
[7919/8205] Creating library symlink lib/libFIRAnalysis.so
[7920/8205] Linking CXX shared library lib/libFIROpenACCSupport.so.22.0git
[7921/8205] Creating library symlink lib/libFIROpenACCSupport.so
[7922/8205] Linking CXX shared library lib/libFIROpenMPSupport.so.22.0git
[7923/8205] Linking CXX shared library lib/libFIRTestOpenACCInterfaces.so.22.0git
[7924/8205] Creating library symlink lib/libFIROpenMPSupport.so
[7925/8205] Linking CXX shared library lib/libFIROpenACCAnalysis.so.22.0git
[7926/8205] Creating library symlink lib/libFIROpenACCAnalysis.so
[7927/8205] Linking CXX shared library lib/libFIROpenACCTransforms.so.22.0git
FAILED: lib/libFIROpenACCTransforms.so.22.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-array-bounds -Wno-stringop-overread -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,libFIROpenACCTransforms.so.22.0git -o lib/libFIROpenACCTransforms.so.22.0git tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCRecipeBufferization.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib:"  lib/libFIROpenACCAnalysis.so.22.0git  lib/libFIRAnalysis.so.22.0git  lib/libHLFIRDialect.so.22.0git  lib/libFIRDialect.so.22.0git  lib/libMLIROpenACCDialect.so.22.0git  lib/libMLIROpenACCMPCommon.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferStridedMetadataInterface.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib && :
/usr/bin/ld: tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o: in function `mlir::acc::detail::OpenACCSupportTraits::Model<fir::acc::FIROpenACCSupportAnalysis>::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)':
ACCInitializeFIRAnalyses.cpp:(.text._ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_[_ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_]+0xe): undefined reference to `mlir::acc::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)'
collect2: error: ld returned 1 exit status
[7928/8205] Linking CXX shared library lib/libFIRCodeGen.so.22.0git
[7929/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Decomposer.cpp.o
[7930/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertConstant.cpp.o
[7931/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertArrayConstructor.cpp.o
[7932/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/DebugTypeGenerator.cpp.o
[7933/8205] Building CXX object tools/flang/lib/Optimizer/OpenMP/CMakeFiles/FlangOpenMPTransforms.dir/GenericLoopConversion.cpp.o
[7934/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/VScaleAttr.cpp.o
[7935/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/CUFDeviceGlobal.cpp.o
[7936/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/FunctionAttr.cpp.o
[7937/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/ExternalNameConversion.cpp.o
[7938/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SetRuntimeCallAttributes.cpp.o
[7939/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/StackReclaim.cpp.o
[7940/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SimplifyFIROperations.cpp.o
[7941/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/LoopVersioning.cpp.o
[7942/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/GenRuntimeCallsForTest.cpp.o
[7943/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/ConvertComplexPow.cpp.o
[7944/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/OptimizeArrayRepacking.cpp.o
[7945/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SimplifyIntrinsics.cpp.o
[7946/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/MIFOpConversion.cpp.o
[7947/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Support/Utils.cpp.o
[7948/8205] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/check-omp-atomic.cpp.o
[7949/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Clauses.cpp.o
[7950/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/OpenMP.cpp.o
[7951/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExprToHLFIR.cpp.o
[7952/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/PolymorphicOpConversion.cpp.o
[7953/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/PFTBuilder.cpp.o
[7954/8205] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/FrontendActions.cpp.o
[7955/8205] Building CXX object tools/flang/tools/flang-driver/CMakeFiles/flang.dir/fc1_main.cpp.o
[7956/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Bridge.cpp.o
[7957/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/DataSharingProcessor.cpp.o
[7958/8205] Building CXX object tools/flang/tools/bbc/CMakeFiles/bbc.dir/bbc.cpp.o
[7959/8205] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/ParserActions.cpp.o
[7960/8205] 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)
...
[7918/8205] Building CXX object tools/flang/lib/Optimizer/OpenMP/CMakeFiles/FlangOpenMPTransforms.dir/AutomapToTargetData.cpp.o
[7919/8205] Creating library symlink lib/libFIRAnalysis.so
[7920/8205] Linking CXX shared library lib/libFIROpenACCSupport.so.22.0git
[7921/8205] Creating library symlink lib/libFIROpenACCSupport.so
[7922/8205] Linking CXX shared library lib/libFIROpenMPSupport.so.22.0git
[7923/8205] Linking CXX shared library lib/libFIRTestOpenACCInterfaces.so.22.0git
[7924/8205] Creating library symlink lib/libFIROpenMPSupport.so
[7925/8205] Linking CXX shared library lib/libFIROpenACCAnalysis.so.22.0git
[7926/8205] Creating library symlink lib/libFIROpenACCAnalysis.so
[7927/8205] Linking CXX shared library lib/libFIROpenACCTransforms.so.22.0git
FAILED: lib/libFIROpenACCTransforms.so.22.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-array-bounds -Wno-stringop-overread -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,libFIROpenACCTransforms.so.22.0git -o lib/libFIROpenACCTransforms.so.22.0git tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCRecipeBufferization.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib:"  lib/libFIROpenACCAnalysis.so.22.0git  lib/libFIRAnalysis.so.22.0git  lib/libHLFIRDialect.so.22.0git  lib/libFIRDialect.so.22.0git  lib/libMLIROpenACCDialect.so.22.0git  lib/libMLIROpenACCMPCommon.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferStridedMetadataInterface.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  lib/libLLVMCore.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib && :
/usr/bin/ld: tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o: in function `mlir::acc::detail::OpenACCSupportTraits::Model<fir::acc::FIROpenACCSupportAnalysis>::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)':
ACCInitializeFIRAnalyses.cpp:(.text._ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_[_ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_]+0xe): undefined reference to `mlir::acc::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)'
collect2: error: ld returned 1 exit status
[7928/8205] Linking CXX shared library lib/libFIRCodeGen.so.22.0git
[7929/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Decomposer.cpp.o
[7930/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertConstant.cpp.o
[7931/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertArrayConstructor.cpp.o
[7932/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/DebugTypeGenerator.cpp.o
[7933/8205] Building CXX object tools/flang/lib/Optimizer/OpenMP/CMakeFiles/FlangOpenMPTransforms.dir/GenericLoopConversion.cpp.o
[7934/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/VScaleAttr.cpp.o
[7935/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/CUFDeviceGlobal.cpp.o
[7936/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/FunctionAttr.cpp.o
[7937/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/ExternalNameConversion.cpp.o
[7938/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SetRuntimeCallAttributes.cpp.o
[7939/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/StackReclaim.cpp.o
[7940/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SimplifyFIROperations.cpp.o
[7941/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/LoopVersioning.cpp.o
[7942/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/GenRuntimeCallsForTest.cpp.o
[7943/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/ConvertComplexPow.cpp.o
[7944/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/OptimizeArrayRepacking.cpp.o
[7945/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/SimplifyIntrinsics.cpp.o
[7946/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/MIFOpConversion.cpp.o
[7947/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Support/Utils.cpp.o
[7948/8205] Building CXX object tools/flang/lib/Semantics/CMakeFiles/FortranSemantics.dir/check-omp-atomic.cpp.o
[7949/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/Clauses.cpp.o
[7950/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/OpenMP.cpp.o
[7951/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/ConvertExprToHLFIR.cpp.o
[7952/8205] Building CXX object tools/flang/lib/Optimizer/Transforms/CMakeFiles/FIRTransforms.dir/PolymorphicOpConversion.cpp.o
[7953/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/PFTBuilder.cpp.o
[7954/8205] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/FrontendActions.cpp.o
[7955/8205] Building CXX object tools/flang/tools/flang-driver/CMakeFiles/flang.dir/fc1_main.cpp.o
[7956/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/Bridge.cpp.o
[7957/8205] Building CXX object tools/flang/lib/Lower/CMakeFiles/FortranLower.dir/OpenMP/DataSharingProcessor.cpp.o
[7958/8205] Building CXX object tools/flang/tools/bbc/CMakeFiles/bbc.dir/bbc.cpp.o
[7959/8205] Building CXX object tools/flang/lib/Frontend/CMakeFiles/flangFrontend.dir/ParserActions.cpp.o
[7960/8205] 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 Nov 14, 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 mlir at step 4 "annotate".

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

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)
...
[8131/8205] Creating library symlink lib/libFIROpenACCSupport.so
[8132/8205] Linking CXX shared library lib/libFIRAnalysis.so.22.0git
[8133/8205] Creating library symlink lib/libFIRAnalysis.so
[8134/8205] Linking CXX shared library lib/libFortranUtils.so.22.0git
[8135/8205] Creating library symlink lib/libFortranUtils.so
[8136/8205] Linking CXX shared library lib/libFIRTestOpenACCInterfaces.so.22.0git
[8137/8205] Linking CXX shared library lib/libFIROpenACCAnalysis.so.22.0git
[8138/8205] Creating library symlink lib/libFIROpenACCAnalysis.so
[8139/8205] Creating library symlink lib/libFIRTestOpenACCInterfaces.so
[8140/8205] Linking CXX shared library lib/libFIROpenACCTransforms.so.22.0git
FAILED: lib/libFIROpenACCTransforms.so.22.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-array-bounds -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,libFIROpenACCTransforms.so.22.0git -o lib/libFIROpenACCTransforms.so.22.0git tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCRecipeBufferization.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib:"  lib/libFIROpenACCAnalysis.so.22.0git  lib/libFIRAnalysis.so.22.0git  lib/libHLFIRDialect.so.22.0git  lib/libFIRDialect.so.22.0git  lib/libMLIROpenACCDialect.so.22.0git  lib/libMLIROpenACCMPCommon.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferStridedMetadataInterface.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  -lpthread  lib/libLLVMCore.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib && :
tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o: In function `mlir::acc::detail::OpenACCSupportTraits::Model<fir::acc::FIROpenACCSupportAnalysis>::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)':
ACCInitializeFIRAnalyses.cpp:(.text._ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_[_ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_]+0xa): undefined reference to `mlir::acc::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)'
collect2: error: ld returned 1 exit status
[8141/8205] Linking CXX shared library lib/libFIRCodeGen.so.22.0git
[8142/8205] Linking CXX shared library lib/libFlangOpenMPTransforms.so.22.0git
[8143/8205] Linking CXX executable bin/fir-lsp-server
[8144/8205] Linking CXX shared library lib/libFortranSemantics.so.22.0git
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 62, in step
    yield
  File "../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py", line 53, in main
    run_command(["ninja"])
  File "../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py", line 75, 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)
...
[8131/8205] Creating library symlink lib/libFIROpenACCSupport.so
[8132/8205] Linking CXX shared library lib/libFIRAnalysis.so.22.0git
[8133/8205] Creating library symlink lib/libFIRAnalysis.so
[8134/8205] Linking CXX shared library lib/libFortranUtils.so.22.0git
[8135/8205] Creating library symlink lib/libFortranUtils.so
[8136/8205] Linking CXX shared library lib/libFIRTestOpenACCInterfaces.so.22.0git
[8137/8205] Linking CXX shared library lib/libFIROpenACCAnalysis.so.22.0git
[8138/8205] Creating library symlink lib/libFIROpenACCAnalysis.so
[8139/8205] Creating library symlink lib/libFIRTestOpenACCInterfaces.so
[8140/8205] Linking CXX shared library lib/libFIROpenACCTransforms.so.22.0git
FAILED: lib/libFIROpenACCTransforms.so.22.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-array-bounds -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,libFIROpenACCTransforms.so.22.0git -o lib/libFIROpenACCTransforms.so.22.0git tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCRecipeBufferization.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib:"  lib/libFIROpenACCAnalysis.so.22.0git  lib/libFIRAnalysis.so.22.0git  lib/libHLFIRDialect.so.22.0git  lib/libFIRDialect.so.22.0git  lib/libMLIROpenACCDialect.so.22.0git  lib/libMLIROpenACCMPCommon.so.22.0git  lib/libMLIRLLVMDialect.so.22.0git  lib/libMLIRPtrMemorySpaceInterfaces.so.22.0git  lib/libMLIRMemRefDialect.so.22.0git  lib/libMLIRArithUtils.so.22.0git  lib/libMLIRComplexDialect.so.22.0git  lib/libMLIRDialectUtils.so.22.0git  lib/libMLIRArithDialect.so.22.0git  lib/libMLIRInferIntRangeCommon.so.22.0git  lib/libMLIRShapedOpInterfaces.so.22.0git  lib/libMLIRCastInterfaces.so.22.0git  lib/libMLIRDialect.so.22.0git  lib/libMLIRUBDialect.so.22.0git  lib/libMLIRMemorySlotInterfaces.so.22.0git  lib/libMLIRMemOpInterfaces.so.22.0git  lib/libMLIRValueBoundsOpInterface.so.22.0git  lib/libMLIRDestinationStyleOpInterface.so.22.0git  lib/libMLIRPass.so.22.0git  lib/libMLIRAnalysis.so.22.0git  lib/libMLIRControlFlowInterfaces.so.22.0git  lib/libMLIRDataLayoutInterfaces.so.22.0git  lib/libMLIRInferStridedMetadataInterface.so.22.0git  lib/libMLIRInferIntRangeInterface.so.22.0git  lib/libMLIRLoopLikeInterface.so.22.0git  lib/libMLIRPresburger.so.22.0git  lib/libMLIRViewLikeInterface.so.22.0git  lib/libMLIRFunctionInterfaces.so.22.0git  lib/libMLIRCallInterfaces.so.22.0git  lib/libMLIRInferTypeOpInterface.so.22.0git  lib/libMLIRSideEffectInterfaces.so.22.0git  lib/libMLIRIR.so.22.0git  lib/libMLIRSupport.so.22.0git  -lpthread  lib/libLLVMCore.so.22.0git  lib/libLLVMBinaryFormat.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib && :
tools/flang/lib/Optimizer/OpenACC/Transforms/CMakeFiles/FIROpenACCTransforms.dir/ACCInitializeFIRAnalyses.cpp.o: In function `mlir::acc::detail::OpenACCSupportTraits::Model<fir::acc::FIROpenACCSupportAnalysis>::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)':
ACCInitializeFIRAnalyses.cpp:(.text._ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_[_ZN4mlir3acc6detail20OpenACCSupportTraits5ModelIN3fir3acc25FIROpenACCSupportAnalysisEE16isValidSymbolUseEPNS_9OperationENS_13SymbolRefAttrEPS9_]+0xa): undefined reference to `mlir::acc::isValidSymbolUse(mlir::Operation*, mlir::SymbolRefAttr, mlir::Operation**)'
collect2: error: ld returned 1 exit status
[8141/8205] Linking CXX shared library lib/libFIRCodeGen.so.22.0git
[8142/8205] Linking CXX shared library lib/libFlangOpenMPTransforms.so.22.0git
[8143/8205] Linking CXX executable bin/fir-lsp-server
[8144/8205] Linking CXX shared library lib/libFortranSemantics.so.22.0git
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 62, in step
    yield
  File "../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py", line 53, in main
    run_command(["ninja"])
  File "../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py", line 75, 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=442.769012

pranavk added a commit that referenced this pull request Nov 17, 2025
pranavk added a commit that referenced this pull request Nov 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants