[CP】disable libunwind under aarch64

This commit is contained in:
obdev
2022-11-01 03:05:14 +00:00
committed by wangzelin.wzl
parent 3b3f41d34f
commit d687c3f8a7
8 changed files with 14 additions and 6 deletions

View File

@ -17,7 +17,6 @@ repo=http://yum.tbsite.net/taobao/7/aarch64/test/ob-deploy/
devdeps-gtest-1.8.0-132022101316.el7.aarch64.rpm
devdeps-isa-l-static-2.22.0-22022092915.el7.aarch64.rpm
devdeps-libcurl-static-7.29.0-32022093010.el7.aarch64.rpm
devdeps-libunwind-static-1.6.2-222022100410.el7.aarch64.rpm
devdeps-mariadb-connector-c-3.1.12-12022100422.el7.aarch64.rpm
devdeps-libaio-0.3.112-12022092915.el7.aarch64.rpm
devdeps-rapidjson-1.1.0-12022100410.el7.aarch64.rpm

View File

@ -12,7 +12,6 @@ repo=http://mirrors.aliyun.com/oceanbase/community/stable/el/8/aarch64/
devdeps-gtest-1.8.0-132022101316.el8.aarch64.rpm
devdeps-isa-l-static-2.22.0-22022092915.el8.aarch64.rpm
devdeps-libcurl-static-7.29.0-32022093010.el8.aarch64.rpm
devdeps-libunwind-static-1.6.2-222022100410.el8.aarch64.rpm
devdeps-mariadb-connector-c-3.1.12-12022100422.el8.aarch64.rpm
devdeps-libaio-0.3.112-12022092915.el8.aarch64.rpm
devdeps-rapidjson-1.1.0-12022100410.el8.aarch64.rpm

View File

@ -72,9 +72,9 @@ else()
-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D_NO_EXCEPTION
-DOCI_LINK_RUNTIME
-Wall -Wextra -Wformat -Werror
-Wno-deprecated
-Wno-sign-compare
-Wno-psabi
-Wno-deprecated
-Wno-sign-compare
-Wno-psabi
-Wno-attributes
-Wno-nonnull-compare
-Wno-parentheses
@ -121,7 +121,7 @@ target_link_libraries(oblib_base_base_base
${DEP_DIR}/lib/libssl.a
${DEP_DIR}/lib/libcrypto.a
${LGPL_DEPS}
${DEP_DIR}/lib/libunwind.a
$<$<STREQUAL:"${ARCHITECTURE}","x86_64">:${DEP_DIR}/lib/libunwind.a>
${DEP_DIR}/lib/libz.a
-L${DEP_DIR}/var/usr/lib64
-L${DEP_DIR}/var/usr/lib

View File

@ -10,6 +10,7 @@
* See the Mulan PubL v2 for more details.
*/
#ifdef __x86_64__
#include "lib/signal/ob_libunwind.h"
#include "lib/signal/safe_snprintf.h"
#define UNW_LOCAL_ONLY
@ -106,3 +107,4 @@ int8_t get_frame_info(unw_cursor_t *cursor, uintptr_t *ip)
*ip = uip - (r == 0);
return 1;
}
#endif

View File

@ -157,7 +157,9 @@ void coredump_cb(int sig, siginfo_t *si, void *context)
// backtrace
char bt[256];
int64_t len = 0;
#ifdef __x86_64__
safe_backtrace(bt, sizeof(bt) - 1, &len);
#endif
bt[len++] = '\0';
// extra
const ObFatalErrExtraInfoGuard *extra_info = nullptr; // TODO: May deadlock, ObFatalErrExtraInfoGuard::get_thd_local_val_ptr();

View File

@ -65,7 +65,9 @@ int ObSigBTOnlyProcessor::prepare()
int64_t count = 0;
count = safe_snprintf(buf_ + pos_, len - pos_, "tid: %ld, tname: %s, lbt: ", tid, tname);
pos_ += count;
#ifdef __x86_64__
safe_backtrace(buf_ + pos_, len - pos_, &count);
#endif
pos_ += count;
buf_[pos_++] = '\n';
return ret;

View File

@ -44,7 +44,9 @@ void crash_restore_handler(int sig, siginfo_t *s, void *p)
if (SIGSEGV == sig || SIGABRT == sig ||
SIGBUS == sig || SIGFPE == sig) {
int64_t len = 0;
#ifdef __x86_64__
safe_backtrace(crash_restore_buffer, 255, &len);
#endif
crash_restore_buffer[len++] = '\0';
siglongjmp(*g_jmp, 1);
} else {

View File

@ -33,6 +33,7 @@ bool g_inited = false;
int send_request_and_wait(ObSigRequestCode code, int exclude_tid)
{
int ret = OB_SUCCESS;
#ifdef __x86_64__
DTraceId trace_id = DTraceId::gen_trace_id();
DTraceIdGuard trace_guard(trace_id);
ObSigRequest req;
@ -93,6 +94,7 @@ int send_request_and_wait(ObSigRequestCode code, int exclude_tid)
}
}
}
#endif
return ret;
}