diff --git a/pkgs/by-name/on/onnxruntime/package.nix b/pkgs/by-name/on/onnxruntime/package.nix index 7ec342370d9a..3a04c92bf309 100644 --- a/pkgs/by-name/on/onnxruntime/package.nix +++ b/pkgs/by-name/on/onnxruntime/package.nix @@ -132,10 +132,6 @@ effectiveStdenv.mkDerivation (finalAttrs: { # https://github.com/microsoft/onnxruntime/issues/9155 # Patch adapted from https://gitlab.alpinelinux.org/alpine/aports/-/raw/462dfe0eb4b66948fe48de44545cc22bb64fdf9f/community/onnxruntime/0001-Remove-MATH_NO_EXCEPT-macro.patch ./remove-MATH_NO_EXCEPT-macro.patch - - # Fix build of ignored outputs after Protobuf 34 added `[[nodiscard]]` to - # many functions. - ./protobuf34-nodiscard.patch ]; postPatch = '' @@ -272,9 +268,11 @@ effectiveStdenv.mkDerivation (finalAttrs: { cmakeDir = "../cmake"; cmakeFlags = [ + # Library updates and similar often cause build failures with -Werror. + # There is utility in this for upstream, but for Nixpkgs it mostly causes + # churn to work around, so we make warnings non-fatal. + "--compile-no-warning-as-error" (lib.cmakeBool "ABSL_ENABLE_INSTALL" true) - # leads to failing builds, which isn't particularly useful for Nixpkgs - (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-Wno-error=unused-variable -Wno-error=deprecated") (lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true) (lib.cmakeBool "FETCHCONTENT_QUIET" false) (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_ABSEIL_CPP" "${abseil-cpp_202508.src}") @@ -300,8 +298,6 @@ effectiveStdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "onnxruntime_ENABLE_PYTHON" true) ] ++ lib.optionals cudaSupport [ - # Werror and cudnn_frontend deprecations make for a bad time. - "--compile-no-warning-as-error" (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_CUTLASS" "${cutlass-src}") (lib.cmakeFeature "onnxruntime_CUDNN_HOME" "${cudaPackages.cudnn}") (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaArchitecturesString) diff --git a/pkgs/by-name/on/onnxruntime/protobuf34-nodiscard.patch b/pkgs/by-name/on/onnxruntime/protobuf34-nodiscard.patch deleted file mode 100644 index 23e68d06ae77..000000000000 --- a/pkgs/by-name/on/onnxruntime/protobuf34-nodiscard.patch +++ /dev/null @@ -1,194 +0,0 @@ -diff --git a/onnxruntime/core/framework/graph_partitioner.cc b/onnxruntime/core/framework/graph_partitioner.cc -index 9cb2111670..8a3ec5bab9 100644 ---- a/onnxruntime/core/framework/graph_partitioner.cc -+++ b/onnxruntime/core/framework/graph_partitioner.cc -@@ -966,7 +966,7 @@ static Status CreateEpContextModel(const ExecutionProviders& execution_providers - - AllocatorPtr allocator = output_buffer_holder->buffer_allocator; - IAllocatorUniquePtr buffer = IAllocator::MakeUniquePtr(allocator, buffer_size); -- model_proto.SerializeToArray(buffer.get(), static_cast(buffer_size)); -+ ORT_RETURN_IF_NOT(model_proto.SerializeToArray(buffer.get(), static_cast(buffer_size)), "Failed to serialize to array"); - - *output_buffer_holder->buffer_size_ptr = buffer_size; - *output_buffer_holder->buffer_ptr = buffer.release(); -@@ -979,7 +979,7 @@ static Status CreateEpContextModel(const ExecutionProviders& execution_providers - auto out_stream_buf = std::make_unique(*output_write_func_holder); - std::ostream out_stream(out_stream_buf.get()); - -- model_proto.SerializeToOstream(&out_stream); -+ ORT_RETURN_IF_NOT(model_proto.SerializeToOstream(&out_stream), "Failed to serialize to out stream"); - out_stream.flush(); - ORT_RETURN_IF_ERROR(out_stream_buf->GetStatus()); - } else { -diff --git a/onnxruntime/python/onnxruntime_pybind_schema.cc b/onnxruntime/python/onnxruntime_pybind_schema.cc -index 8cb617fe52..254fc1abf9 100644 ---- a/onnxruntime/python/onnxruntime_pybind_schema.cc -+++ b/onnxruntime/python/onnxruntime_pybind_schema.cc -@@ -163,7 +163,7 @@ void addOpSchemaSubmodule(py::module& m) { - "_default_value", - [](ONNX_NAMESPACE::OpSchema::Attribute* attr) -> py::bytes { - std::string out; -- attr->default_value.SerializeToString(&out); -+ (void)attr->default_value.SerializeToString(&out); - return out; - }) - .def_readonly("required", &ONNX_NAMESPACE::OpSchema::Attribute::required); -diff --git a/onnxruntime/test/ep_graph/test_ep_graph.cc b/onnxruntime/test/ep_graph/test_ep_graph.cc -index 055b255132..3925db8ac7 100644 ---- a/onnxruntime/test/ep_graph/test_ep_graph.cc -+++ b/onnxruntime/test/ep_graph/test_ep_graph.cc -@@ -261,7 +261,7 @@ TEST(EpGraphTest, SerializeToProto_InputModelHasExternalIni) { - handle_initializer_data)); - - std::ofstream ofs(serialized_model_path, std::ios::binary); -- model_proto.SerializeToOstream(&ofs); -+ ASSERT_TRUE(model_proto.SerializeToOstream(&ofs)); - ofs.flush(); - - ASSERT_TRUE(std::filesystem::exists(serialized_model_path)); -@@ -395,7 +395,7 @@ TEST(EpGraphTest, SerializeToProto_Mnist) { - handle_initializer_data)); - - std::ofstream ofs(serialized_model_path, std::ios::binary); -- model_proto.SerializeToOstream(&ofs); -+ ASSERT_TRUE(model_proto.SerializeToOstream(&ofs)); - ofs.flush(); - - ASSERT_TRUE(std::filesystem::exists(serialized_model_path)); -@@ -525,7 +525,7 @@ TEST(EpGraphTest, SerializeToProto_ConstantOfShape) { - handle_initializer_data)); - - std::ofstream ofs(serialized_model_path, std::ios::binary); -- model_proto.SerializeToOstream(&ofs); -+ ASSERT_TRUE(model_proto.SerializeToOstream(&ofs)); - ofs.flush(); - - ASSERT_TRUE(std::filesystem::exists(serialized_model_path)); -@@ -590,7 +590,7 @@ TEST(EpGraphTest, SerializeToProto_3LayerSubgraphs) { - ASSERT_CXX_ORTSTATUS_OK(OrtEpUtils::OrtGraphToProto(test_graph->GetOrtGraph(), model_proto)); - - std::ofstream ofs(serialized_model_path, std::ios::binary); -- model_proto.SerializeToOstream(&ofs); -+ ASSERT_TRUE(model_proto.SerializeToOstream(&ofs)); - ofs.flush(); - - ASSERT_TRUE(std::filesystem::exists(serialized_model_path)); -diff --git a/onnxruntime/test/ir/graph_test.cc b/onnxruntime/test/ir/graph_test.cc -index 4d80cb7047..c69ac46c05 100644 ---- a/onnxruntime/test/ir/graph_test.cc -+++ b/onnxruntime/test/ir/graph_test.cc -@@ -1244,7 +1244,7 @@ TEST_F(GraphTest, GraphConstruction_CheckGraphInputOutputOrderMaintained) { - auto proto = model.ToProto(); - std::string s1; - // std::stringstream s1; -- model.ToProto().SerializeToString(&s1); -+ ASSERT_TRUE(model.ToProto().SerializeToString(&s1)); - - ModelProto model_proto; - // const bool result = model_proto.ParseFromIstream(&s1); -@@ -1313,7 +1313,7 @@ TEST_F(GraphTest, UnusedInitializerAndNodeArgsAreIgnored) { - auto proto = model.ToProto(); - std::string s1; - // std::stringstream s1; -- model.ToProto().SerializeToString(&s1); -+ ASSERT_TRUE(model.ToProto().SerializeToString(&s1)); - - ModelProto model_proto; - const bool result = model_proto.ParseFromString(s1); -@@ -1342,7 +1342,7 @@ TEST_F(GraphTest, UnusedSparseInitializerIsIgnored) { - ConstructASimpleAddGraph(*m_graph, nullptr); - auto* m_sparse_initializer = m_graph->add_sparse_initializer(); - ConstructSparseTensor("unused_sparse_initializer", *m_sparse_initializer); -- model_proto.SerializeToString(&s1); -+ ASSERT_TRUE(model_proto.SerializeToString(&s1)); - } - - ModelProto model_proto_1; -@@ -1940,7 +1940,7 @@ TEST_F(GraphTest, SparseInitializerHandling) { - ConstructASimpleAddGraph(*m_graph, nullptr); - auto* m_sparse_initializer = m_graph->add_sparse_initializer(); - ConstructSparseTensor(input_initializer_name, *m_sparse_initializer); -- model_proto.SerializeToString(&s1); -+ ASSERT_TRUE(model_proto.SerializeToString(&s1)); - } - - ModelProto model_proto_sparse; -diff --git a/onnxruntime/test/optimizer/nchwc_optimizer_test.cc b/onnxruntime/test/optimizer/nchwc_optimizer_test.cc -index fc0ba86c7f..b086040212 100644 ---- a/onnxruntime/test/optimizer/nchwc_optimizer_test.cc -+++ b/onnxruntime/test/optimizer/nchwc_optimizer_test.cc -@@ -185,7 +185,7 @@ void NchwcOptimizerTester(const std::function& bu - - // Serialize the model to a string. - std::string model_data; -- model.ToProto().SerializeToString(&model_data); -+ ASSERT_TRUE(model.ToProto().SerializeToString(&model_data)); - - auto run_model = [&](TransformerLevel level, std::vector& fetches) { - SessionOptions session_options; -diff --git a/onnxruntime/test/providers/compare_provider_test_utils.cc b/onnxruntime/test/providers/compare_provider_test_utils.cc -index 6312014387..578d72cb09 100644 ---- a/onnxruntime/test/providers/compare_provider_test_utils.cc -+++ b/onnxruntime/test/providers/compare_provider_test_utils.cc -@@ -83,7 +83,7 @@ void CompareOpTester::CompareWithCPU(const std::string& target_provider_type, - - // first run with cpu - std::string s1; -- model.ToProto().SerializeToString(&s1); -+ ASSERT_TRUE(model.ToProto().SerializeToString(&s1)); - std::istringstream model_proto_str(s1); - - ASSERT_STATUS_OK(cpu_session_object.Load(model_proto_str)); -@@ -104,7 +104,7 @@ void CompareOpTester::CompareWithCPU(const std::string& target_provider_type, - ASSERT_STATUS_OK(target_session_object.RegisterExecutionProvider(std::move(target_execution_provider))); - - std::string s2; -- tp_model.ToProto().SerializeToString(&s2); -+ ASSERT_TRUE(tp_model.ToProto().SerializeToString(&s2)); - std::istringstream model_proto_str1(s2); - ASSERT_STATUS_OK(target_session_object.Load(model_proto_str1)); - -@@ -159,7 +159,7 @@ void CompareOpTester::CompareEPs(const std::shared_ptr& sour - - // first run with source provider - std::string s1; -- model.ToProto().SerializeToString(&s1); -+ ASSERT_TRUE(model.ToProto().SerializeToString(&s1)); - std::istringstream model_proto_str(s1); - - ASSERT_STATUS_OK(source_session_object.Load(model_proto_str)); -@@ -181,7 +181,7 @@ void CompareOpTester::CompareEPs(const std::shared_ptr& sour - ASSERT_STATUS_OK(target_session_object.RegisterExecutionProvider(target_execution_provider)); - - std::string s2; -- tp_model.ToProto().SerializeToString(&s2); -+ ASSERT_TRUE(tp_model.ToProto().SerializeToString(&s2)); - std::istringstream model_proto_str1(s2); - ASSERT_STATUS_OK(target_session_object.Load(model_proto_str1)); - -diff --git a/onnxruntime/test/unittest_util/graph_transform_test_builder.cc b/onnxruntime/test/unittest_util/graph_transform_test_builder.cc -index 5caafa0f37..327463c615 100644 ---- a/onnxruntime/test/unittest_util/graph_transform_test_builder.cc -+++ b/onnxruntime/test/unittest_util/graph_transform_test_builder.cc -@@ -158,7 +158,7 @@ void TransformerTester(const std::function& buil - - // Serialize the model to a string. - std::string model_data; -- model.ToProto().SerializeToString(&model_data); -+ ASSERT_TRUE(model.ToProto().SerializeToString(&model_data)); - std::shared_ptr ep_shared = ep ? std::move(ep) : nullptr; - - auto run_model = [&](TransformerLevel level, std::vector& fetches, -diff --git a/onnxruntime/test/optimizer/transpose_optimizer_test.cc b/onnxruntime/test/optimizer/transpose_optimizer_test.cc -index 9e9e9e9e9e..8e8e8e8e8e 100644 ---- a/onnxruntime/test/optimizer/transpose_optimizer_test.cc -+++ b/onnxruntime/test/optimizer/transpose_optimizer_test.cc -@@ -4532,7 +4532,7 @@ TEST(TransposeOptimizerTests, RegressionTest_Permute1DConstantEmptyPerm) { - - // Serialize the model to a string. - std::string model_data; -- model.ToProto().SerializeToString(&model_data); -+ ASSERT_TRUE(model.ToProto().SerializeToString(&model_data)); - - SessionOptions session_options; - session_options.graph_optimization_level = TransformerLevel::Level1;