Tencent / matrix

Matrix is a plugin style, non-invasive APM system developed by WeChat.
Other
11.65k stars 1.89k forks source link

Mac M1 支持问题 #826

Open GhostWarlock opened 1 year ago

GhostWarlock commented 1 year ago

Mac M1 编译失败


异常类型:编译失败 平台判断问题

matrix版本:2.1.0

问题描述:在max m1 设备下编译,__arm64__ 宏会被处理为 ios 系统,相关代码编译不过,例如:
static const struct class_t *decodeIsaPointer(const void *const isaPointer) {
#if ISA_TAG_MASK
    uintptr_t isa = (uintptr_t)isaPointer;
    if (isa & ISA_TAG_MASK) {
#if defined(__arm64__)
        if (floor(kCFCoreFoundationVersionNumber) <= kCFCoreFoundationVersionNumber_iOS_8_x_Max) {
            return (const struct class_t *)(isa & ISA_MASK_OLD);
        }
        return (const struct class_t *)(isa & ISA_MASK);
#else
        return (const struct class_t *)(isa & ISA_MASK);
#endif
    }
#endif
    return (const struct class_t *)isaPointer;
}
报错 kCFCoreFoundationVersionNumber_iOS_8_x_Max 未定义
请问有计划支持上 M1 吗?
tamwei commented 1 year ago

https://github.com/kstenerud/KSCrash/pull/404

#if TARGET_OS_IOS
        if (floor(kCFCoreFoundationVersionNumber) <= kCFCoreFoundationVersionNumber_iOS_8_x_Max) {
            return (const struct class_t *)(isa & ISA_MASK_OLD);
        }
#endif