- 
    Bug 
- 
    Resolution: Invalid
- 
     Not Evaluated Not Evaluated
- 
    None
- 
    5.12.4
- 
    None
Build with SDK 10.13
xcrun --show-sdk-version 10.13
kernel/qcore_mac_objc.mm:147:13: error: use of undeclared identifier
      'backtrace_from_fp'
        if (backtrace_from_fp(__builtin_frame_address(0), &frame, 1))
            ^
1 error generated.
SDK 10.13 need for static build with target 10.13.
Application not linked with static builded Qt from SDK 10.14 - error linking function not existed on the platform 10.13. Shared Qt worked with week linked function!
Problem in the QMacAutoReleasePool::QMacAutoReleasePool()
 : pool([[NSAutoreleasePool alloc] init]) with backtrace_from_fp - not exists in the SDK 10.13
QMacAutoReleasePool::QMacAutoReleasePool()
    : pool([[NSAutoreleasePool alloc] init])
{
    Class trackerClass = [QMacAutoReleasePoolTracker class];
#ifdef QT_DEBUG    
    void *poolFrame = nullptr;
    if (__builtin_available(macOS 10.14, iOS 12.0, tvOS 12.0, watchOS 5.0, *)) {
        void *frame;
        if (backtrace_from_fp(__builtin_frame_address(0), &frame, 1))
            poolFrame = frame;
    } else {
        static const int maxFrames = 3;
        void *callstack[maxFrames];
        if (backtrace(callstack, maxFrames) == maxFrames)
            poolFrame = callstack[maxFrames - 1];
    }
Workaround in the attached patch file - made by pattern in this file below in the function bool qt_mac_applicationIsInDarkMode() - add preprocessor quard for exclude code for new platform
QMacAutoReleasePool::QMacAutoReleasePool()
    : pool([[NSAutoreleasePool alloc] init])
{
    Class trackerClass = [QMacAutoReleasePoolTracker class];
#ifdef QT_DEBUG
    void *poolFrame = nullptr;
#if QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_14, __IPHONE_12_0, __TVOS_12_0, __WATCHOS_5_0)
    if (__builtin_available(macOS 10.14, iOS 12.0, tvOS 12.0, watchOS 5.0, *)) {
        void *frame;
        if (backtrace_from_fp(__builtin_frame_address(0), &frame, 1))
            poolFrame = frame;
    } else {
        static const int maxFrames = 3;
        void *callstack[maxFrames];
        if (backtrace(callstack, maxFrames) == maxFrames)
            poolFrame = callstack[maxFrames - 1];
    }
#else
    static const int maxFrames = 3;
    void *callstack[maxFrames];
    if (backtrace(callstack, maxFrames) == maxFrames)
        poolFrame = callstack[maxFrames - 1];
#endif
- relates to
- 
                    QTBUG-122259 [Mac OS] How to build Qt 5.15.11 with threaded opengl support -         
- Open
 
-