diff --git a/CMakeLists.txt b/CMakeLists.txt index 22578597b758bac523e14093f73ce4cf29306bfa..59d7e9e5208194ab53f5bd1a20105641d1624884 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,7 +70,7 @@ if (OS_ARCH STREQUAL "aarch64") endif (USE_H1620) add_compile_options(-mtune=cortex-a72 -fsigned-char -g -ggdb3 -march=armv8-a+crc -funwind-tables) -else () +elseif (OS_ARCH STREQUAL "x86_64") add_compile_options(-msse4.2 ) endif () Add_Definitions(-DWSEC_COMPILE_CAC_OPENSSL -DWSEC_AES_GCM_SUPPORT -DWSEC_USE_OPENSSL_110 -DWSEC_COMPILE_SDP) diff --git a/build/linux/opengauss/build.sh b/build/linux/opengauss/build.sh index 5a6273c235d8cbfc297b289c5574bd6e73114b3b..973f745c8a7dbaf199a54fa99179c9ca9536a38b 100644 --- a/build/linux/opengauss/build.sh +++ b/build/linux/opengauss/build.sh @@ -99,6 +99,8 @@ export OUT_PACKAGE=cbb # gcc version if [[ -d "${binarylib_dir}/buildtools/gcc10.3" ]]; then gcc_version="10.3" +elif [[ -d "${binarylib_dir}/buildtools/gcc8.3" ]];then + gcc_version="8.3" else gcc_version="7.3" fi diff --git a/src/cm_concurrency/cm_spinlock.h b/src/cm_concurrency/cm_spinlock.h index 83bdc17ab48cc70f71fa1b687f97c36a36fe838f..6045291ff153e99d0ebdc71a6aa207e70059f9bd 100644 --- a/src/cm_concurrency/cm_spinlock.h +++ b/src/cm_concurrency/cm_spinlock.h @@ -77,7 +77,7 @@ typedef struct st_spin_statis_instance { uint64 ss_wait_usecs; } spin_statis_instance_t; -#if defined(__arm__) || defined(__aarch64__) +#if defined(__arm__) || defined(__aarch64__) || defined(__loongarch__) #define fas_cpu_pause() \ { \ __asm__ volatile("nop"); \ diff --git a/src/cm_concurrency/cm_thread.c b/src/cm_concurrency/cm_thread.c index 78a6eaa95a217e37df89ae0ce5a714cc060276ca..896d39e7801fcd2e7c65d8ac3d6178985e58e4f3 100644 --- a/src/cm_concurrency/cm_thread.c +++ b/src/cm_concurrency/cm_thread.c @@ -303,6 +303,9 @@ uint32 cm_get_current_thread_id(void) #define __SYS_GET_SPID 186 #elif (defined __aarch64__) #define __SYS_GET_SPID 178 +#elif (defined __loongarch__) +#include +#define __SYS_GET_SPID SYS_gettid #endif #define gettid() syscall(__SYS_GET_SPID) diff --git a/src/cm_utils/cm_checksum.h b/src/cm_utils/cm_checksum.h index 27bd397c3f592f1e9f2bbf6daeaaed525ce17ff7..c3130a57a576fa9fb3a403561da4da32a651d237 100644 --- a/src/cm_utils/cm_checksum.h +++ b/src/cm_utils/cm_checksum.h @@ -38,7 +38,7 @@ #define CM_HAVE_SSE4_2 #include #define CM_HAVE__CPUID -#else +#elif defined(__i386__) || defined(__x86_64__) #include #define CM_HAVE_SSE4_2 #include diff --git a/src/cm_utils/cm_memory.h b/src/cm_utils/cm_memory.h index bbc7174cfb93b90c9b014e9d0db16efd4a929ef7..5542a6ccf606d01e8f632e7ce7c3d666f30be06c 100644 --- a/src/cm_utils/cm_memory.h +++ b/src/cm_utils/cm_memory.h @@ -57,12 +57,18 @@ extern "C" { __asm__ volatile("dmb ish" :: \ : "memory"); \ } -#else +#elif defined(__i386__) || defined(__x86_64__) #define CM_MFENCE \ { \ __asm__ volatile("mfence" :: \ : "memory"); \ } +#elif defined(__loongarch__) +#define CM_MFENCE \ + { \ + __asm__ volatile("" :: \ + : "memory"); \ + } #endif