From 1abe9d015727af86ae5c9b2f8c923d06ab6346b0 Mon Sep 17 00:00:00 2001 From: luozihao <1165977584@qq.com> Date: Wed, 31 May 2023 15:22:22 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=BC=96=E8=AF=91=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../communication/libcomm_utils/libcomm_thread.cpp | 8 ++++---- src/gausskernel/optimizer/commands/trigger.cpp | 12 ++++++------ src/gausskernel/runtime/executor/execMain.cpp | 8 ++++---- src/gausskernel/runtime/executor/execReplication.cpp | 8 ++++---- src/gausskernel/runtime/executor/nodeLockRows.cpp | 8 ++++---- src/gausskernel/runtime/executor/nodeModifyTable.cpp | 4 ++-- .../runtime/opfusion/opfusion_selectforupdate.cpp | 4 ++-- src/gausskernel/storage/access/heap/tuptoaster.cpp | 12 ++++++------ src/gausskernel/storage/access/redo/redo_heapam.cpp | 12 ++++++------ src/gausskernel/storage/access/table/tableam.cpp | 4 ++-- src/gausskernel/storage/access/ustore/knl_uscan.cpp | 4 ++-- .../storage/access/ustore/knl_utuptoaster.cpp | 4 ++-- src/gausskernel/storage/large_object/inv_api.cpp | 8 ++++---- src/gausskernel/storage/smgr/smgr.cpp | 2 +- 14 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp index 523ddc512..0d37ff4dd 100644 --- a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp +++ b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp @@ -2417,7 +2417,7 @@ ThreadId startCommSenderFlow(void) #else switch ((comm_sender_flower_pid = fork_process())) { #endif - case -1: + case (ThreadId)-1: ereport(LOG, (errmsg("could not fork comm sender flower process: %m"))); return 0; #ifndef EXEC_BACKEND @@ -2454,7 +2454,7 @@ ThreadId startCommReceiverFlow() #else switch ((comm_receiver_flower_pid = fork_process())) { #endif - case -1: + case (ThreadId)-1: ereport(LOG, (errmsg("could not fork comm sender flower process: %m"))); return 0; #ifndef EXEC_BACKEND @@ -2488,7 +2488,7 @@ ThreadId startCommAuxiliary() #else switch ((comm_auxiliary_pid = fork_process())) { #endif - case -1: + case (ThreadId)-1: ereport(LOG, (errmsg("could not fork comm auxiliary flower process: %m"))); return 0; #ifndef EXEC_BACKEND @@ -2522,7 +2522,7 @@ ThreadId startCommReceiver(int* tid) switch ((comm_receiver_pid = fork_process())) #endif { - case -1: + case (ThreadId)-1: ereport(LOG, (errmsg("could not fork comm receiver process: %m"))); return 0; #ifndef EXEC_BACKEND diff --git a/src/gausskernel/optimizer/commands/trigger.cpp b/src/gausskernel/optimizer/commands/trigger.cpp index b818f58f4..7d945c741 100644 --- a/src/gausskernel/optimizer/commands/trigger.cpp +++ b/src/gausskernel/optimizer/commands/trigger.cpp @@ -3056,9 +3056,9 @@ HeapTuple GetTupleForTrigger(EState* estate, EPQState* epqstate, ResultRelInfo* UHeapTupleData uheaptupdata; utuple = &uheaptupdata; - struct { + union { UHeapDiskTupleData hdr; - char data[MaxPossibleUHeapTupleSize]; + char data[MaxPossibleUHeapTupleSize + sizeof(UHeapDiskTupleData)]; } tbuf; errno_t errorNo = EOK; @@ -4043,13 +4043,13 @@ static void AfterTriggerExecute(AfterTriggerEvent event, Relation rel, Oid oldPa HeapTuple rs_tuple2 = NULL; bool is_remote_relation = (RelationGetLocInfo(rel) != NULL); #endif - struct { + union { HeapTupleHeaderData hdr; - char data[MaxHeapTupleSize]; + char data[MaxHeapTupleSize + sizeof(HeapTupleHeaderData)]; } tbuf1 = {0}; - struct { + union { HeapTupleHeaderData hdr; - char data[MaxHeapTupleSize]; + char data[MaxHeapTupleSize + sizeof(HeapTupleHeaderData)]; } tbuf2 = {0}; /* diff --git a/src/gausskernel/runtime/executor/execMain.cpp b/src/gausskernel/runtime/executor/execMain.cpp index 494b55e8e..472637ce5 100755 --- a/src/gausskernel/runtime/executor/execMain.cpp +++ b/src/gausskernel/runtime/executor/execMain.cpp @@ -3063,9 +3063,9 @@ HeapTuple heap_lock_updated(CommandId cid, Relation relation, int lockmode, Item HeapTuple copyTuple = NULL; HeapTupleData tuple; SnapshotData SnapshotDirty; - struct { + union { HeapTupleHeaderData hdr; - char data[MaxHeapTupleSize]; + char data[MaxHeapTupleSize + sizeof(HeapTupleHeaderData)]; } tbuf; errno_t errorno = EOK; errorno = memset_s(&tbuf, sizeof(tbuf), 0, sizeof(tbuf)); @@ -3523,9 +3523,9 @@ void EvalPlanQualFetchRowMarksUHeap(EPQState *epqstate) void EvalPlanQualFetchRowMarks(EPQState *epqstate) { ListCell *l = NULL; - struct { + union { HeapTupleHeaderData hdr; - char data[MaxHeapTupleSize]; + char data[MaxHeapTupleSize + sizeof(HeapTupleHeaderData)]; } tbuf; errno_t errorno = EOK; errorno = memset_s(&tbuf, sizeof(tbuf), 0, sizeof(tbuf)); diff --git a/src/gausskernel/runtime/executor/execReplication.cpp b/src/gausskernel/runtime/executor/execReplication.cpp index 0f53e3221..d0e627e15 100644 --- a/src/gausskernel/runtime/executor/execReplication.cpp +++ b/src/gausskernel/runtime/executor/execReplication.cpp @@ -340,9 +340,9 @@ static bool RelationFindReplTupleByIndex(EState *estate, Relation rel, Relation Tuple locktup; HeapTupleData heaplocktup; UHeapTupleData UHeaplocktup; - struct { + union { UHeapDiskTupleData hdr; - char data[MaxPossibleUHeapTupleSize]; + char data[MaxPossibleUHeapTupleSize + sizeof(UHeapDiskTupleData)]; } tbuf; ItemPointer tid = tableam_tops_get_t_self(targetRel, outslot->tts_tuple); @@ -512,9 +512,9 @@ static bool RelationFindReplTupleSeq(Relation rel, LockTupleMode lockmode, Tuple Tuple locktup = NULL; HeapTupleData heaplocktup; UHeapTupleData UHeaplocktup; - struct { + union { UHeapDiskTupleData hdr; - char data[MaxPossibleUHeapTupleSize]; + char data[MaxPossibleUHeapTupleSize + sizeof(UHeapDiskTupleData)]; } tbuf; ItemPointer tid = tableam_tops_get_t_self(rel, outslot->tts_tuple); diff --git a/src/gausskernel/runtime/executor/nodeLockRows.cpp b/src/gausskernel/runtime/executor/nodeLockRows.cpp index 328b0c625..2de8c7707 100755 --- a/src/gausskernel/runtime/executor/nodeLockRows.cpp +++ b/src/gausskernel/runtime/executor/nodeLockRows.cpp @@ -110,9 +110,9 @@ lnext: bool isNull = false; bool rowMovement = false; HeapTupleData tuple; - struct { + union { HeapTupleHeaderData hdr; - char data[MaxHeapTupleSize]; + char data[MaxHeapTupleSize + sizeof(HeapTupleHeaderData)]; } tbuf; Buffer buffer; @@ -321,9 +321,9 @@ lnext: * If we need to do EvalPlanQual testing, do so. */ if (epq_started) { - struct { + union { HeapTupleHeaderData hdr; - char data[MaxHeapTupleSize]; + char data[MaxHeapTupleSize + sizeof(HeapTupleHeaderData)]; } tbuf; /* diff --git a/src/gausskernel/runtime/executor/nodeModifyTable.cpp b/src/gausskernel/runtime/executor/nodeModifyTable.cpp index 168543742..99a2cc66b 100644 --- a/src/gausskernel/runtime/executor/nodeModifyTable.cpp +++ b/src/gausskernel/runtime/executor/nodeModifyTable.cpp @@ -1949,9 +1949,9 @@ end:; HeapTupleData del_tuple; Buffer del_buffer; - struct { + union { HeapTupleHeaderData hdr; - char data[MaxHeapTupleSize]; + char data[MaxHeapTupleSize + sizeof(HeapTupleHeaderData)]; } tbuf; errno_t errorNo = EOK; errorNo = memset_s(&tbuf, sizeof(tbuf), 0, sizeof(tbuf)); diff --git a/src/gausskernel/runtime/opfusion/opfusion_selectforupdate.cpp b/src/gausskernel/runtime/opfusion/opfusion_selectforupdate.cpp index 4d3480d08..cd92452ef 100644 --- a/src/gausskernel/runtime/opfusion/opfusion_selectforupdate.cpp +++ b/src/gausskernel/runtime/opfusion/opfusion_selectforupdate.cpp @@ -223,9 +223,9 @@ unsigned long SelectForUpdateFusion::ExecSelectForUpdate(Relation rel, ResultRel HeapTupleData newtuple; InitPartitionByScanFusion(rel, &partRel, &part, m_c_local.m_estate, m_local.m_scan); - struct { + union { HeapTupleHeaderData hdr; - char data[MaxHeapTupleSize]; + char data[MaxHeapTupleSize + sizeof(HeapTupleHeaderData)]; } tbuf; errno_t errorno = EOK; diff --git a/src/gausskernel/storage/access/heap/tuptoaster.cpp b/src/gausskernel/storage/access/heap/tuptoaster.cpp index 770f1411e..580b08f28 100644 --- a/src/gausskernel/storage/access/heap/tuptoaster.cpp +++ b/src/gausskernel/storage/access/heap/tuptoaster.cpp @@ -1491,9 +1491,9 @@ void toast_huge_concat_varlenas_internal(Relation toastrel, Relation toastidx, t struct varatt_external first_toast_pointer; char *data = NULL; int32 data_all; - struct { + union { struct varlena hdr; - char data[TOAST_MAX_CHUNK_SIZE]; /* make struct big enough */ + char data[TOAST_MAX_CHUNK_SIZE + sizeof(struct varlena) + sizeof(int32)]; /* make struct big enough */ int32 align_it; /* ensure struct is aligned well enough */ } chunk_data; int32 chunk_size; @@ -1605,9 +1605,9 @@ void toast_huge_fetch_and_append_datum(Relation toastrel, Relation toastidx, tex bool toast_isnull[3]; char *data_all = NULL; int32 data_size; - struct { + union { struct varlena hdr; - char data[TOAST_MAX_CHUNK_SIZE]; /* make struct big enough */ + char data[TOAST_MAX_CHUNK_SIZE + sizeof(struct varlena) + sizeof(int32)]; /* make struct big enough */ int32 align_it; /* ensure struct is aligned well enough */ } chunk_data; int32 chunk_size; @@ -1967,9 +1967,9 @@ Datum toast_save_datum(Relation rel, Datum value, struct varlena *oldexternal, i CommandId mycid = GetCurrentCommandId(true); struct varlena *result = NULL; struct varatt_external toast_pointer; - struct { + union { struct varlena hdr; - char data[TOAST_MAX_CHUNK_SIZE]; /* make struct big enough */ + char data[TOAST_MAX_CHUNK_SIZE + sizeof(struct varlena) + sizeof(int32)]; /* make struct big enough */ int32 align_it; /* ensure struct is aligned well enough */ } chunk_data; int32 chunk_size; diff --git a/src/gausskernel/storage/access/redo/redo_heapam.cpp b/src/gausskernel/storage/access/redo/redo_heapam.cpp index c74b0334f..ff01c545f 100755 --- a/src/gausskernel/storage/access/redo/redo_heapam.cpp +++ b/src/gausskernel/storage/access/redo/redo_heapam.cpp @@ -337,9 +337,9 @@ void HeapXlogInsertOperatorPage(RedoBufferInfo *buffer, void *recorddata, bool i uint32 newlen; HeapTupleHeader htup; xl_heap_header xlhdr; - struct { + union { HeapTupleHeaderData hdr; - char data[MaxHeapTupleSize]; + char data[MaxHeapTupleSize + sizeof(HeapTupleHeaderData)]; } tbuf; if (isinit) { @@ -416,9 +416,9 @@ void HeapXlogMultiInsertOperatorPage(RedoBufferInfo *buffer, const void *recored BlockNumber blkno = buffer->blockinfo.blkno; TransactionId pd_xid_base = InvalidTransactionId; - struct { + union { HeapTupleHeaderData hdr; - char data[MaxHeapTupleSize]; + char data[MaxHeapTupleSize + sizeof(HeapTupleHeaderData)]; } tbuf; errno_t rc = memset_s(&tbuf, sizeof(tbuf), 0, sizeof(tbuf)); @@ -597,9 +597,9 @@ void HeapXlogUpdateOperatorNewpage(RedoBufferInfo *buffer, void *recorddata, boo OffsetNumber maxoff; xl_heap_header xlhdr; TransactionId pd_xid_base = InvalidTransactionId; - struct { + union { HeapTupleHeaderData hdr; - char data[MaxHeapTupleSize]; + char data[MaxHeapTupleSize + sizeof(HeapTupleHeaderData)]; } tbuf; HeapTupleHeader htup; uint32 newlen; diff --git a/src/gausskernel/storage/access/table/tableam.cpp b/src/gausskernel/storage/access/table/tableam.cpp index 7962512ee..4a443a26a 100644 --- a/src/gausskernel/storage/access/table/tableam.cpp +++ b/src/gausskernel/storage/access/table/tableam.cpp @@ -996,9 +996,9 @@ bool UHeapamTupleFetch(Relation relation, Snapshot snapshot, HeapTuple tuple, Bu UHeapTupleData uheaptupdata; UHeapTuple uheaptup = &uheaptupdata; - struct { + union { UHeapDiskTupleData hdr; - char data[MaxPossibleUHeapTupleSize]; + char data[MaxPossibleUHeapTupleSize + sizeof(UHeapDiskTupleData)]; } tbuf; errno_t errorNo = EOK; diff --git a/src/gausskernel/storage/access/ustore/knl_uscan.cpp b/src/gausskernel/storage/access/ustore/knl_uscan.cpp index ced4067b3..4c8779c93 100644 --- a/src/gausskernel/storage/access/ustore/knl_uscan.cpp +++ b/src/gausskernel/storage/access/ustore/knl_uscan.cpp @@ -1123,9 +1123,9 @@ void UHeapRestRpos(TableScanDesc sscan) UHeapTuple utuple; UHeapTupleData uheaptupdata; utuple = &uheaptupdata; - struct { + union { UHeapDiskTupleData hdr; - char data[MaxPossibleUHeapTupleSize]; + char data[MaxPossibleUHeapTupleSize + sizeof(UHeapDiskTupleData)]; } tbuf; errno_t errorNo = EOK; diff --git a/src/gausskernel/storage/access/ustore/knl_utuptoaster.cpp b/src/gausskernel/storage/access/ustore/knl_utuptoaster.cpp index efd6613e3..8240de04d 100644 --- a/src/gausskernel/storage/access/ustore/knl_utuptoaster.cpp +++ b/src/gausskernel/storage/access/ustore/knl_utuptoaster.cpp @@ -651,9 +651,9 @@ static Datum UHeapToastSaveDatum(Relation rel, Datum value, struct varlena *olde CommandId mycid = GetCurrentCommandId(true); struct varlena *result = NULL; struct varatt_external toastPointer; - struct { + union { struct varlena hdr; - char data[UTOAST_MAX_CHUNK_SIZE]; /* make struct big enough */ + char data[UTOAST_MAX_CHUNK_SIZE + sizeof(struct varlena) + sizeof(int32)]; /* make struct big enough */ int32 align_it; /* ensure struct is aligned well enough */ } chunkData; int32 chunkSize; diff --git a/src/gausskernel/storage/large_object/inv_api.cpp b/src/gausskernel/storage/large_object/inv_api.cpp index 1f69c5dc9..2dfb89aa2 100644 --- a/src/gausskernel/storage/large_object/inv_api.cpp +++ b/src/gausskernel/storage/large_object/inv_api.cpp @@ -497,9 +497,9 @@ int inv_write(LargeObjectDesc* obj_desc, const char* buf, int nbytes) bool neednextpage = true; bytea* datafield = NULL; bool pfreeit = false; - struct { + union { bytea hdr; - char data[LOBLKSIZE]; /* make struct big enough */ + char data[LOBLKSIZE + sizeof(bytea) + sizeof(int32)]; /* make struct big enough */ int32 align_it; /* ensure struct is aligned well enough */ } workbuf; char* workb = VARDATA(&workbuf.hdr); @@ -672,9 +672,9 @@ void inv_truncate(LargeObjectDesc* obj_desc, int len) SysScanDesc sd; HeapTuple oldtuple; Form_pg_largeobject olddata; - struct { + union { bytea hdr; - char data[LOBLKSIZE]; /* make struct big enough */ + char data[LOBLKSIZE + sizeof(bytea) + sizeof(int32)]; /* make struct big enough */ int32 align_it; /* ensure struct is aligned well enough */ } workbuf; char* workb = VARDATA(&workbuf.hdr); diff --git a/src/gausskernel/storage/smgr/smgr.cpp b/src/gausskernel/storage/smgr/smgr.cpp index 861c34c33..22b6c2406 100755 --- a/src/gausskernel/storage/smgr/smgr.cpp +++ b/src/gausskernel/storage/smgr/smgr.cpp @@ -948,7 +948,7 @@ ScalarToDatum GetTransferFuncByTypeOid(Oid attTypeOid) return convertScalarToDatumT; } default: { - return convertScalarToDatumT<-2>; + return convertScalarToDatumT<((Oid)-2)>; } } } From 43476d6a6b8e29ab3c95a5ea3e9faedcbb1df68a Mon Sep 17 00:00:00 2001 From: luozihao <1165977584@qq.com> Date: Wed, 31 May 2023 19:37:58 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=BC=96=E8=AF=91=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/script/cmake_package_mini.sh | 2 ++ build/script/utils/common.sh | 12 +++++++++++- build/script/utils/make_compile.sh | 4 ++-- configure | 2 ++ src/Makefile.global.in | 1 + src/Makefile.global.in_for_llt | 1 + src/gausskernel/Makefile | 30 +++++++++++++++--------------- 7 files changed, 34 insertions(+), 18 deletions(-) diff --git a/build/script/cmake_package_mini.sh b/build/script/cmake_package_mini.sh index a2eb58469..5453c3dba 100644 --- a/build/script/cmake_package_mini.sh +++ b/build/script/cmake_package_mini.sh @@ -271,6 +271,8 @@ read_mpp_version if [ "$gcc_version" = "7.3.0" ]; then gcc_version=${gcc_version:0:3} +elif [ "$gcc_version" = "10.3.0" ] || [ "$gcc_version" = "10.3.1" ]; then + gcc_version=${gcc_version:0:4} else echo "Unknown gcc version $gcc_version" exit 1 diff --git a/build/script/utils/common.sh b/build/script/utils/common.sh index 98b655871..d26786c80 100644 --- a/build/script/utils/common.sh +++ b/build/script/utils/common.sh @@ -98,7 +98,17 @@ declare INSTALL_TOOLS_DIR=${binarylib_dir}/install_tools declare UNIX_ODBC="${BINARYLIBS_PATH}/unixodbc" # Comment 编译相关 -gcc_version="7.3" +if [ -d "${USE_CCACHE}$BUILD_TOOLS_PATH/gcc10.3" ]; then + gcc_version="10.3" +else + gcc_version="7.3" +fi + +if [ "$PLATFORM_ARCH"X == "aarch64"X ] && [ "$gcc_version" == "10.3" ]; then + gcc_sub_version="1" +else + gcc_sub_version="0" +fi ccache -V >/dev/null 2>&1 && USE_CCACHE="ccache " ENABLE_CCACHE="--enable-ccache" export CC="${USE_CCACHE}$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/bin/gcc" export CXX="${USE_CCACHE}$BUILD_TOOLS_PATH/gcc$gcc_version/gcc/bin/g++" diff --git a/build/script/utils/make_compile.sh b/build/script/utils/make_compile.sh index ad39690df..6056eac1e 100644 --- a/build/script/utils/make_compile.sh +++ b/build/script/utils/make_compile.sh @@ -146,7 +146,7 @@ function install_gaussdb() else enable_readline="--without-readline" fi - shared_opt="--gcc-version=${gcc_version}.0 --prefix="${BUILD_DIR}" --3rd=${binarylib_dir} --enable-thread-safety ${enable_readline} --without-zlib" + shared_opt="--gcc-version=${gcc_version}.${gcc_sub_version} --prefix="${BUILD_DIR}" --3rd=${binarylib_dir} --enable-thread-safety ${enable_readline} --without-zlib" if [ "$product_mode"x == "opengauss"x ]; then if [ "$version_mode"x == "release"x ]; then # configure -D__USE_NUMA -D__ARM_LSE with arm opengauss mode @@ -166,7 +166,7 @@ function install_gaussdb() ./configure $shared_opt CFLAGS="-O0 ${GAUSSDB_EXTRA_FLAGS}" --enable-mot --enable-debug --enable-cassert CC=g++ $extra_config_opt >> "$LOG_FILE" 2>&1 fi elif [ "$product_mode"x == "lite"x ]; then - shared_opt="--gcc-version=${gcc_version}.0 --prefix="${BUILD_DIR}" --3rd=${binarylib_dir} --enable-thread-safety ${enable_readline} --without-zlib --without-gssapi --without-krb5" + shared_opt="--gcc-version=${gcc_version}.${gcc_sub_version} --prefix="${BUILD_DIR}" --3rd=${binarylib_dir} --enable-thread-safety ${enable_readline} --without-zlib --without-gssapi --without-krb5" if [ "$version_mode"x == "release"x ]; then # configure -D__USE_NUMA -D__ARM_LSE with arm single mode if [ "$PLATFORM_ARCH"X == "aarch64"X ] ; then diff --git a/configure b/configure index dda7653bf..7ddd22972 100755 --- a/configure +++ b/configure @@ -725,6 +725,7 @@ LDFLAGS CFLAGS CC CC_VERSION +SUB_CC_VERSION enable_dtrace enable_gstrace DTRACEFLAGS @@ -30097,6 +30098,7 @@ NEW_GCC=$gcc_version if test x"$GCC" = x"yes" ; then cc_string=`${CC} --version | sed q` CC_VERSION=`${CC} --version | sed q | awk -F')' '{print $2}' | awk '{print $1}'` + SUB_CC_VERSION=`${CC} --version | sed q | awk -F')' '{print $2}' | awk -F'.3' '{print $2}'` case $cc_string in [A-Za-z]*) ;; *) cc_string="GCC $cc_string";; esac if test "$enable_default_gcc" = yes && test "$CC_VERSION" = "$NEW_GCC"; then $as_echo "$as_myself: error: current GCC version is not old GCC version; Please remove environment variable to use old GCC" >&2 diff --git a/src/Makefile.global.in b/src/Makefile.global.in index e6c9beb21..7fc127d58 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -40,6 +40,7 @@ vpath_build = @vpath_build@ abs_top_srcdir = @abs_top_srcdir@ CC_VERSION = @CC_VERSION@ +SUB_CC_VERSION = @SUB_CC_VERSION@ ifneq ($(vpath_build),yes) top_srcdir = $(top_builddir) diff --git a/src/Makefile.global.in_for_llt b/src/Makefile.global.in_for_llt index b212944a6..a60496776 100755 --- a/src/Makefile.global.in_for_llt +++ b/src/Makefile.global.in_for_llt @@ -40,6 +40,7 @@ vpath_build = @vpath_build@ abs_top_srcdir = @abs_top_srcdir@ CC_VERSION = @CC_VERSION@ +SUB_CC_VERSION = @SUB_CC_VERSION@ ifneq ($(vpath_build),yes) top_srcdir = $(top_builddir) diff --git a/src/gausskernel/Makefile b/src/gausskernel/Makefile index de33342d2..b54aaad78 100755 --- a/src/gausskernel/Makefile +++ b/src/gausskernel/Makefile @@ -174,7 +174,7 @@ JARPLJAVA = pljava.jar ############################################################################## ifeq ($(enable_mot), yes) LIBS += -latomic -lmot_engine -lmasstree - LDFLAGS += -L$(top_builddir)/src/gausskernel/storage/mot/core/bin -L$(MASSTREE_LIB_PATH) -L$(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64 + LDFLAGS += -L$(top_builddir)/src/gausskernel/storage/mot/core/bin -L$(MASSTREE_LIB_PATH) -L$(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64 CXXFLAGS += -I$(JEMALLOC_INCLUDE_PATH) endif @@ -629,28 +629,28 @@ ifeq ($(enable_mot), yes) cp -d $(MASSTREE_LIB_PATH)/libmasstree* '$(DESTDIR)$(libdir)/' endif ifeq ($(with_3rd), NONE) - cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libstdc++.so.6 '$(DESTDIR)$(libdir)/' - cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libgcc_s.so.1 '$(DESTDIR)$(libdir)/' - cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libgomp.so* '$(DESTDIR)$(libdir)/' + cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libstdc++.so.6 '$(DESTDIR)$(libdir)/' + cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libgcc_s.so.1 '$(DESTDIR)$(libdir)/' + cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libgomp.so* '$(DESTDIR)$(libdir)/' ifeq ($(enable_mot), yes) - cp -d $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libatomic.so* '$(DESTDIR)$(libdir)/' + cp -d $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libatomic.so* '$(DESTDIR)$(libdir)/' endif ifeq ($(enable_thread_check), yes) - cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libtsan.so '$(DESTDIR)$(libdir)/' - cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libtsan.so.0 '$(DESTDIR)$(libdir)/' - cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libtsan.so.0.0.0 '$(DESTDIR)$(libdir)/' + cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libtsan.so '$(DESTDIR)$(libdir)/' + cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libtsan.so.0 '$(DESTDIR)$(libdir)/' + cp $(top_builddir)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libtsan.so.0.0.0 '$(DESTDIR)$(libdir)/' endif else - cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libstdc++.so.6 '$(DESTDIR)$(libdir)/' - cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libgcc_s.so.1 '$(DESTDIR)$(libdir)/' - cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libgomp.so* '$(DESTDIR)$(libdir)/' + cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libstdc++.so.6 '$(DESTDIR)$(libdir)/' + cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libgcc_s.so.1 '$(DESTDIR)$(libdir)/' + cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libgomp.so* '$(DESTDIR)$(libdir)/' ifeq ($(enable_mot), yes) - cp -d $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libatomic.so* '$(DESTDIR)$(libdir)/' + cp -d $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libatomic.so* '$(DESTDIR)$(libdir)/' endif ifeq ($(enable_thread_check), yes) - cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libtsan.so '$(DESTDIR)$(libdir)/' - cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libtsan.so.0 '$(DESTDIR)$(libdir)/' - cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst .0,,$(CC_VERSION))/gcc/lib64/libtsan.so.0.0.0 '$(DESTDIR)$(libdir)/' + cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libtsan.so '$(DESTDIR)$(libdir)/' + cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libtsan.so.0 '$(DESTDIR)$(libdir)/' + cp $(with_3rd)/$(BUILD_TOOLS_PATH)/gcc$(subst $(SUB_CC_VERSION),,$(CC_VERSION))/gcc/lib64/libtsan.so.0.0.0 '$(DESTDIR)$(libdir)/' endif endif endif