File gcc10.patch of Package python-onnxruntime

From e86214e5c00ffbb95b85478c111c8eb21de94fe9 Mon Sep 17 00:00:00 2001
From: Changming Sun <chasun@microsoft.com>
Date: Wed, 13 May 2020 11:52:59 -0700
Subject: [PATCH] Fix the tensorflow performance test (#3847)

---
 onnxruntime/test/onnx/heap_buffer.h         |  1 +
 onnxruntime/test/perftest/main.cc           |  2 ++
 onnxruntime/test/perftest/tf_test_session.h | 13 +++++++------
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/onnxruntime/test/onnx/heap_buffer.h b/onnxruntime/test/onnx/heap_buffer.h
index b4abf131b1..380a65b5aa 100644
--- a/onnxruntime/test/onnx/heap_buffer.h
+++ b/onnxruntime/test/onnx/heap_buffer.h
@@ -4,6 +4,7 @@
 #pragma once
 #include <vector>
 #include <memory>
+#include <stdlib.h>
 
 namespace onnxruntime {
 namespace test {
diff --git a/onnxruntime/test/perftest/main.cc b/onnxruntime/test/perftest/main.cc
index f6001eb234..9feaa78789 100644
--- a/onnxruntime/test/perftest/main.cc
+++ b/onnxruntime/test/perftest/main.cc
@@ -8,12 +8,14 @@
 #include "performance_runner.h"
 
 using namespace onnxruntime;
+const OrtApi* g_ort = NULL;
 
 #ifdef _WIN32
 int real_main(int argc, wchar_t* argv[]) {
 #else
 int real_main(int argc, char* argv[]) {
 #endif
+  g_ort = OrtGetApiBase()->GetApi(ORT_API_VERSION);
   perftest::PerformanceTestConfig test_config;
   if (!perftest::CommandLineParser::ParseArguments(test_config, argc, argv)) {
     perftest::CommandLineParser::ShowUsage();
diff --git a/onnxruntime/test/perftest/tf_test_session.h b/onnxruntime/test/perftest/tf_test_session.h
index 01ada76630..760c685b96 100644
--- a/onnxruntime/test/perftest/tf_test_session.h
+++ b/onnxruntime/test/perftest/tf_test_session.h
@@ -7,6 +7,7 @@
 #include "test_configuration.h"
 #include "tensorflow/c/c_api.h"
 #include "test_session.h"
+extern const OrtApi* g_ort;
 
 namespace onnxruntime {
 namespace perftest {
@@ -117,21 +118,21 @@ class TensorflowTestSession : public TestSession {
 
     TF_Status* s = TF_NewStatus();
     void* input_buffer = nullptr;
-    ORT_THROW_ON_ERROR(OrtGetTensorMutableData(const_cast<OrtValue*>(value), &input_buffer));
+    Ort::ThrowOnError(g_ort->GetTensorMutableData(value, &input_buffer));
     assert(input_buffer != nullptr);
     OrtTensorTypeAndShapeInfo* shape = nullptr;
-    ORT_THROW_ON_ERROR(OrtGetTensorTypeAndShape(value, &shape));
+    Ort::ThrowOnError(g_ort->GetTensorTypeAndShape(value, &shape));
     size_t buffer_length = 0;
     std::vector<int64_t> dims;
     size_t dim_count;
-    ORT_THROW_ON_ERROR(OrtGetDimensionsCount(shape, &dim_count));
+    Ort::ThrowOnError(g_ort->GetDimensionsCount(shape, &dim_count));
     dims.resize(dim_count);
-    ORT_THROW_ON_ERROR(OrtGetDimensions(shape, dims.data(), dim_count));
+    Ort::ThrowOnError(g_ort->GetDimensions(shape, dims.data(), dim_count));
     size_t ele_count;
-    ORT_THROW_ON_ERROR(OrtGetTensorShapeElementCount(shape, &ele_count));
+    Ort::ThrowOnError(g_ort->GetTensorShapeElementCount(shape, &ele_count));
     TF_DataType tf_datatype;
     ONNXTensorElementDataType element_type;
-    ORT_THROW_ON_ERROR(OrtGetTensorElementType(shape, &element_type));
+    Ort::ThrowOnError(g_ort->GetTensorElementType(shape, &element_type));
     switch (element_type) {
       case ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT:  // maps to c type float
         buffer_length = ele_count * sizeof(float);
openSUSE Build Service is sponsored by