This is an automated email from the ASF dual-hosted git repository.
colinlee pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/develop by this push:
new 658ee5bf fix compile on old gcc. (#670)
658ee5bf is described below
commit 658ee5bf39b4c954f543b263ba6e4ae4295fda32
Author: Colin Lee <[email protected]>
AuthorDate: Fri Dec 26 14:49:01 2025 +0800
fix compile on old gcc. (#670)
---
cpp/.gitignore | 1 -
cpp/README.md | 2 +-
cpp/cmake/ToolChain.cmake | 36 ++++++++++++++++++++++++++++++++++++
cpp/src/common/db_common.h | 15 +++++++++++++++
4 files changed, 52 insertions(+), 2 deletions(-)
diff --git a/cpp/.gitignore b/cpp/.gitignore
index d73b742b..3dc8c5ba 100644
--- a/cpp/.gitignore
+++ b/cpp/.gitignore
@@ -5,4 +5,3 @@ build/
.settings/
.vscode/
cmake-build-debug/
-cmake*/
\ No newline at end of file
diff --git a/cpp/README.md b/cpp/README.md
index dced6c8c..a98792ea 100644
--- a/cpp/README.md
+++ b/cpp/README.md
@@ -75,7 +75,7 @@ Modify the Toolchain File `cmake/ToolChain.cmake`, define the
following variable
In the `cpp/` directory, run the following commands to create the build
directory and start the compilation:
```
mkdir build && cd build
-cmake .. -DToolChian=ON
+cmake .. -DToolChain=ON
make
```
diff --git a/cpp/cmake/ToolChain.cmake b/cpp/cmake/ToolChain.cmake
new file mode 100644
index 00000000..f52be293
--- /dev/null
+++ b/cpp/cmake/ToolChain.cmake
@@ -0,0 +1,36 @@
+#[[
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+]]
+
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR aarch64)
+
+## Modify
+set(CMAKE_C_COMPILER
/home/tsfile/dev/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc
CACHE STRING "Path to the C compiler" FORCE)
+set(CMAKE_CXX_COMPILER
/home/colin/dev/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++
CACHE STRING "Path to the C++ compiler" FORCE)
+message(STATUS "using cxx compiler ${CMAKE_CXX_COMPILER}")
+message(STATUS "using c compiler ${CMAKE_C_COMPILER}")
+## Modify
+set(CMAKE_FIND_ROOT_PATH
/home/tsfile/dev/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi)
+
+
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
\ No newline at end of file
diff --git a/cpp/src/common/db_common.h b/cpp/src/common/db_common.h
index 215abf3d..8c637c3d 100644
--- a/cpp/src/common/db_common.h
+++ b/cpp/src/common/db_common.h
@@ -20,7 +20,9 @@
#ifndef COMMON_DB_COMMON_H
#define COMMON_DB_COMMON_H
+#include <functional>
#include <iostream>
+#include <type_traits>
#include <unordered_set>
#include "common/allocator/my_string.h"
@@ -94,7 +96,20 @@ enum CompressionType : uint8_t {
extern const char* s_data_type_names[8];
extern const char* s_encoding_names[12];
extern const char* s_compression_names[8];
+} // namespace common
+#if defined(__GLIBCXX__) && (__GNUC__ < 7)
+namespace std {
+template <>
+struct hash<common::TSDataType> {
+ size_t operator()(common::TSDataType v) const noexcept {
+ return static_cast<size_t>(static_cast<uint8_t>(v));
+ }
+};
+} // namespace std
+#endif
+
+namespace common {
FORCE_INLINE const char* get_data_type_name(TSDataType type) {
ASSERT(type >= BOOLEAN && type <= STRING);
return s_data_type_names[type];