From: Yu Watanabe Date: Mon, 9 Jun 2025 04:37:38 +0000 (+0900) Subject: musl: meson: make musl not define wchar_t in their header X-Git-Tag: v259-rc1~84^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0736854da9dcfd06972b34aa7566e46e2997ca39;p=thirdparty%2Fsystemd.git musl: meson: make musl not define wchar_t in their header Otherwise, musl defines wchar_t as int, which conflicts with the assumption by sd-boot, i.e. wchar_t is 2 bytes. Fixes the following build error: ``` In file included from ../src/boot/efi-log.h:4, from ../src/boot/linux_x86.c:13: ../src/boot/efi.h:19:24: error: conflicting types for 'wchar_t'; have 'short unsigned int' 19 | typedef __WCHAR_TYPE__ wchar_t; | ^~~~~~~ In file included from /usr/include/stddef.h:19, from ../src/boot/efi.h:9: /usr/include/bits/alltypes.h:10:13: note: previous declaration of 'wchar_t' with type 'wchar_t' {aka 'int'} 10 | typedef int wchar_t; | ^~~~~~~ ``` --- diff --git a/src/boot/meson.build b/src/boot/meson.build index ee86af274eb..3d1f66a6582 100644 --- a/src/boot/meson.build +++ b/src/boot/meson.build @@ -182,6 +182,11 @@ if get_option('mode') == 'developer' and get_option('debug') efi_c_args += '-DEFI_DEBUG' endif +if get_option('libc') == 'musl' + # To make musl not define wchar_t as int, rather than short. + efi_c_args += '-D__DEFINED_wchar_t' +endif + efi_c_ld_args = [ '-nostdlib', '-static-pie',