[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH v3 5/7] audio/coreaudio: Remove a deprecation warning on
|
From: |
Roman Bolshakov |
|
Subject: |
Re: [RFC PATCH v3 5/7] audio/coreaudio: Remove a deprecation warning on macOS 12 |
|
Date: |
Wed, 12 Jan 2022 09:57:36 +0300 |
On Mon, Jan 10, 2022 at 02:09:59PM +0100, Philippe Mathieu-Daudé wrote:
> When building on macOS 12 we get:
>
> audio/coreaudio.c:50:5: error: 'kAudioObjectPropertyElementMaster' is
> deprecated: first deprecated in macOS 12.0 [-Werror,-Wdeprecated-declarations]
> kAudioObjectPropertyElementMaster
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> kAudioObjectPropertyElementMain
>
> /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardwareBase.h:208:5:
> note: 'kAudioObjectPropertyElementMaster' has been explicitly marked
> deprecated here
> kAudioObjectPropertyElementMaster
> API_DEPRECATED_WITH_REPLACEMENT("kAudioObjectPropertyElementMain",
> macos(10.0, 12.0), ios(2.0, 15.0), watchos(1.0, 8.0), tvos(9.0, 15.0)) =
> kAudioObjectPropertyElementMain
> ^
>
> Replace by kAudioObjectPropertyElementMain, redefining it to
> kAudioObjectPropertyElementMaster if not available, using
> Clang __is_identifier() feature (coreaudio is restricted to
> macOS).
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> Checkpatch:
>
> WARNING: architecture specific defines should be avoided
> #10: FILE: audio/coreaudio.c:47:
> +#if !__is_identifier(kAudioObjectPropertyElementMain) /* macOS >= 12.0 */
>
> Should we define __is_identifier() to 0 for GCC on macOS?
> ---
> audio/coreaudio.c | 16 ++++++++++------
> 1 file changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/audio/coreaudio.c b/audio/coreaudio.c
> index d8a21d3e507..73cbfd479ac 100644
> --- a/audio/coreaudio.c
> +++ b/audio/coreaudio.c
> @@ -44,10 +44,14 @@ typedef struct coreaudioVoiceOut {
> bool enabled;
> } coreaudioVoiceOut;
>
> +#if !__is_identifier(kAudioObjectPropertyElementMain) /* macOS >= 12.0 */
> +#define kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster
> +#endif
Christian and Akihiko are right you need to replace it with macOS version
wrappers:
diff --git a/audio/coreaudio.c b/audio/coreaudio.c
index 73cbfd479a..7367a2ffd4 100644
--- a/audio/coreaudio.c
+++ b/audio/coreaudio.c
@@ -44,7 +44,8 @@ typedef struct coreaudioVoiceOut {
bool enabled;
} coreaudioVoiceOut;
-#if !__is_identifier(kAudioObjectPropertyElementMain) /* macOS >= 12.0 */
+#if !defined(MAC_OS_VERSION_12_0) || \
+ (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_VERSION_12_0)
#define kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster
#endif
And in the patch 6 you'd do likewise:
diff --git a/block/file-posix.c b/block/file-posix.c
index 1d0512026c..c0038629a1 100644
--- a/block/file-posix.c
+++ b/block/file-posix.c
@@ -3325,7 +3325,8 @@ BlockDriver bdrv_file = {
static kern_return_t GetBSDPath(io_iterator_t mediaIterator, char *bsdPath,
CFIndex maxPathSize, int flags);
-#if !__is_identifier(IOMainPort) /* macOS >= 12.0 */
+#if !defined(MAC_OS_VERSION_12_0) || \
+ (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_VERSION_12_0)
#define IOMainPort IOMasterPort
#endif
This way it the build would work also on older macOS.
Two more issues are left:
1. Linker has corrupted paths to clang directory (happens on all macOS
versions).
Monterey:
[732/737] Linking target qemu-system-mips-unsigned
ld: warning: directory not found for option
'-Lns/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.0.0'
[733/737] Linking target qemu-system-mips64-unsigned
ld: warning: directory not found for option
'-Lns/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.0.0'
[737/737] Generating qemu-system-mips64 with a custom command
Catalina:
ld: warning: directory not found for option
'-Lveloper/CommandLineTools/usr/lib/clang/11.0.0'
[102/105] Linking target qemu-system-or1k-unsigned
ld: warning: directory not found for option
'-Lveloper/CommandLineTools/usr/lib/clang/11.0.0'
[104/105] Linking target qemu-system-ppc-unsigned
ld: warning: directory not found for option
'-Lveloper/CommandLineTools/usr/lib/clang/11.0.0'
[105/105] Generating qemu-system-ppc with a custom command
2. QEMU tests show FENV_ACCESS warning on Monterey:
[409/771] Compiling C object
tests/fp/libtestfloat.a.p/berkeley-testfloat-3_source_test_az_f128_rx.c.o
../tests/fp/berkeley-testfloat-3/source/test_az_f128_rx.c:49:14: warning:
'#pragma FENV_ACCESS' is not supported on this target - ignored
[-Wignored-pragmas]
#pragma STDC FENV_ACCESS ON
^
1 warning generated.
[410/771] Compiling C object
tests/fp/libtestfloat.a.p/berkeley-testfloat-3_source_test_abcz_f128.c.o
../tests/fp/berkeley-testfloat-3/source/test_abcz_f128.c:48:14: warning:
'#pragma FENV_ACCESS' is not supported on this target - ignored
[-Wignored-pragmas]
#pragma STDC FENV_ACCESS ON
^
1 warning generated.
Regards,
Roman
> +
> static const AudioObjectPropertyAddress voice_addr = {
> kAudioHardwarePropertyDefaultOutputDevice,
> kAudioObjectPropertyScopeGlobal,
> - kAudioObjectPropertyElementMaster
> + kAudioObjectPropertyElementMain
> };
>
> static OSStatus coreaudio_get_voice(AudioDeviceID *id)
> @@ -69,7 +73,7 @@ static OSStatus coreaudio_get_framesizerange(AudioDeviceID
> id,
> AudioObjectPropertyAddress addr = {
> kAudioDevicePropertyBufferFrameSizeRange,
> kAudioDevicePropertyScopeOutput,
> - kAudioObjectPropertyElementMaster
> + kAudioObjectPropertyElementMain
> };
>
> return AudioObjectGetPropertyData(id,
> @@ -86,7 +90,7 @@ static OSStatus coreaudio_get_framesize(AudioDeviceID id,
> UInt32 *framesize)
> AudioObjectPropertyAddress addr = {
> kAudioDevicePropertyBufferFrameSize,
> kAudioDevicePropertyScopeOutput,
> - kAudioObjectPropertyElementMaster
> + kAudioObjectPropertyElementMain
> };
>
> return AudioObjectGetPropertyData(id,
> @@ -103,7 +107,7 @@ static OSStatus coreaudio_set_framesize(AudioDeviceID id,
> UInt32 *framesize)
> AudioObjectPropertyAddress addr = {
> kAudioDevicePropertyBufferFrameSize,
> kAudioDevicePropertyScopeOutput,
> - kAudioObjectPropertyElementMaster
> + kAudioObjectPropertyElementMain
> };
>
> return AudioObjectSetPropertyData(id,
> @@ -121,7 +125,7 @@ static OSStatus coreaudio_set_streamformat(AudioDeviceID
> id,
> AudioObjectPropertyAddress addr = {
> kAudioDevicePropertyStreamFormat,
> kAudioDevicePropertyScopeOutput,
> - kAudioObjectPropertyElementMaster
> + kAudioObjectPropertyElementMain
> };
>
> return AudioObjectSetPropertyData(id,
> @@ -138,7 +142,7 @@ static OSStatus coreaudio_get_isrunning(AudioDeviceID id,
> UInt32 *result)
> AudioObjectPropertyAddress addr = {
> kAudioDevicePropertyDeviceIsRunning,
> kAudioDevicePropertyScopeOutput,
> - kAudioObjectPropertyElementMaster
> + kAudioObjectPropertyElementMain
> };
>
> return AudioObjectGetPropertyData(id,
> --
> 2.33.1
- [RFC PATCH v3 2/7] ui/cocoa: Remove allowedFileTypes restriction in SavePanel, (continued)
- [RFC PATCH v3 2/7] ui/cocoa: Remove allowedFileTypes restriction in SavePanel, Philippe Mathieu-Daudé, 2022/01/10
- [RFC PATCH v3 3/7] hvf: Make hvf_get_segments() / hvf_put_segments() local, Philippe Mathieu-Daudé, 2022/01/10
- [RFC PATCH v3 4/7] hvf: Remove deprecated hv_vcpu_flush() calls, Philippe Mathieu-Daudé, 2022/01/10
- [RFC PATCH v3 5/7] audio/coreaudio: Remove a deprecation warning on macOS 12, Philippe Mathieu-Daudé, 2022/01/10
- [RFC PATCH v3 6/7] block/file-posix: Remove a deprecation warning on macOS 12, Philippe Mathieu-Daudé, 2022/01/10
- [RFC PATCH v3 7/7] gitlab-ci: Support macOS 12 via cirrus-run, Philippe Mathieu-Daudé, 2022/01/10
- Re: [RFC PATCH v3 0/7] host: Support macOS 12, Roman Bolshakov, 2022/01/10