|
From: | Akihiko Odaki |
Subject: | Re: [RFC PATCH v2 2/6] audio/coreaudio: Remove a deprecation warning on macOS 12 |
Date: | Tue, 11 Jan 2022 03:20:15 +0900 |
User-agent: | Mozilla/5.0 (X11; Linux aarch64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 |
On 2022/01/10 22:22, Peter Maydell wrote:
On Mon, 10 Jan 2022 at 13:14, Christian Schoenebeck <qemu_oss@crudebyte.com> wrote:I'd suggest to use: #if !defined(MAC_OS_VERSION_12_0) || (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_VERSION_12_0) #define kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster #endifThis is also how we do this for existing checks of this sort, like the one in osdep.h for qemu_thread_jit_execute(). -- PMM
If I understand correctly, Many macOS-specific codes already no longer complies with GCC because they depend on modern features GCC doesn't provide. The most problematic construction is block; it is extensively used by Apple's ABI and API and you cannot avoid using it even if you try.
Also, note that MAC_OS_X_VERSION_MAX_ALLOWED defines the upper bound of the supported version. The lower bound should be preferred here because the usage of the new identifier is applied regardless of the version of the host system. It is in contrary to the usage of MAC_OS_X_VERSION_MAX_ALLOWED in osdep.h where the new interfaces are used only for the newer versions. The lower bound is defined as MAC_OS_X_VERSION_MIN_REQUIRED. Practically there is no difference of the two macros because they have the same value in QEMU and kAudioObjectPropertyElementMain is a constant resolved compile-time, but it is still nice to have the code semantically correct.
Regards, Akihiko Odaki
[Prev in Thread] | Current Thread | [Next in Thread] |