Re: [PATCH 00/12] misc: Remove sprintf() due to macOS deprecation
On Thu, Apr 11, 2024 at 11:38:41AM +0200, Philippe Mathieu-Daudé wrote: > On 11/4/24 00:27, BALATON Zoltan wrote: > > On Wed, 10 Apr 2024, Richard Henderson wrote: > > > On 4/10/24 06:06, Philippe Mathieu-Daudé wrote: > > > > Hi, > > > > > > > > sprintf() is deprecated on Darwin since macOS 13.0 / XCode 14.1, > > > > resulting in painful developper experience. > > > > > > Is snprintf also deprecated? > > > It might be easier to convert some of these fixed buffer cases that > > > way, if allowed. > > > > I had the same thought as some of these might also have performance > > implications (although most of them are in rarely called places). > > I thought GLib/GString was recommended for formatting (IIRC some > previous discussion with Alex / Daniel), so I switched to this > API for style, rather than thinking of performance. Anyway, I'll > respin using sprintf() when the buffer size maths are already done. There are places in QEMU where the strings end up living in a fixed size struct fields, and those would be candidates for sticking with snprint(). For stack allocated string buffers, it is preferrable to switch to g_autofree + g_strdup_printf(), unless there's a compelling performance reason to avoid allocation in a hot path IMHO. With regards, Daniel -- |: https://berrange.com -o-https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o-https://fstop138.berrange.com :| |: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|
Re: [PATCH 00/12] misc: Remove sprintf() due to macOS deprecation
On 11/4/24 00:27, BALATON Zoltan wrote: On Wed, 10 Apr 2024, Richard Henderson wrote: On 4/10/24 06:06, Philippe Mathieu-Daudé wrote: Hi, sprintf() is deprecated on Darwin since macOS 13.0 / XCode 14.1, resulting in painful developper experience. Is snprintf also deprecated? It might be easier to convert some of these fixed buffer cases that way, if allowed. I had the same thought as some of these might also have performance implications (although most of them are in rarely called places). I thought GLib/GString was recommended for formatting (IIRC some previous discussion with Alex / Daniel), so I switched to this API for style, rather than thinking of performance. Anyway, I'll respin using sprintf() when the buffer size maths are already done. Regards, BALATON Zoltan
Re: [PATCH 00/12] misc: Remove sprintf() due to macOS deprecation
On Wed, 10 Apr 2024, Richard Henderson wrote: On 4/10/24 06:06, Philippe Mathieu-Daudé wrote: Hi, sprintf() is deprecated on Darwin since macOS 13.0 / XCode 14.1, resulting in painful developper experience. Is snprintf also deprecated? It might be easier to convert some of these fixed buffer cases that way, if allowed. I had the same thought as some of these might also have performance implications (although most of them are in rarely called places). Regards, BALATON Zoltan
Re: [PATCH 00/12] misc: Remove sprintf() due to macOS deprecation
On 4/10/24 06:06, Philippe Mathieu-Daudé wrote: Hi, sprintf() is deprecated on Darwin since macOS 13.0 / XCode 14.1, resulting in painful developper experience. Is snprintf also deprecated? It might be easier to convert some of these fixed buffer cases that way, if allowed. r~
[PATCH 00/12] misc: Remove sprintf() due to macOS deprecation
Hi, sprintf() is deprecated on Darwin since macOS 13.0 / XCode 14.1, resulting in painful developper experience. Suggestion to avoid the super-noisy warning on macOS forum are [*]: * use -Wno-deprecated-declarations on the whole build * surgically add #pragma clang diagnostic around each use. None of these options seem reasonable, so we are somehow forced to spend time converting each sprintf() call, even if they are safe enough. I'm so tired of seeing them than I started the conversion. This is the first part. Help for the rest is welcomed. Regards, Phil. [*] https://forums.developer.apple.com/forums/thread/714675 Philippe Mathieu-Daudé (12): ui/console-vc: Replace sprintf() by g_strdup_printf() hw/vfio/pci: Replace sprintf() by g_strdup_printf() hw/ppc/spapr: Replace sprintf() by g_strdup_printf() hw/mips/malta: Replace sprintf() by g_string_append_printf() system/qtest: Replace sprintf() by g_string_append_printf() util/hexdump: Rename @offset argument in qemu_hexdump_line() util/hexdump: Have qemu_hexdump_line() return heap allocated buffer util/hexdump: Replace sprintf() by g_string_append_printf() hw/scsi/scsi-disk: Use qemu_hexdump_line() to avoid sprintf() hw/ide/atapi: Use qemu_hexdump_line() to avoid sprintf() hw/dma/pl330: Use qemu_hexdump_line() to avoid sprintf() backends/tpm: Use qemu_hexdump_line() to avoid sprintf() include/qemu/cutils.h | 17 ++--- backends/tpm/tpm_util.c | 24 hw/dma/pl330.c | 12 +++- hw/ide/atapi.c | 8 ++-- hw/mips/malta.c | 22 +- hw/ppc/spapr.c | 4 ++-- hw/scsi/scsi-disk.c | 8 ++-- hw/vfio/pci.c | 7 +++ hw/virtio/vhost-vdpa.c | 11 ++- system/qtest.c | 8 +++- ui/console-vc.c | 4 ++-- util/hexdump.c | 33 ++--- 12 files changed, 76 insertions(+), 82 deletions(-) -- 2.41.0