diff --git a/mesonbuild/scripts/env2mfile.py b/mesonbuild/scripts/env2mfile.py index 57a679c59..a59c1c40c 100755 --- a/mesonbuild/scripts/env2mfile.py +++ b/mesonbuild/scripts/env2mfile.py @@ -147,6 +147,11 @@ deb_os_map = { 'hurd': 'gnu', } +# map from DEB_HOST_ARCH_OS to Meson machine.kernel() +deb_kernel_map = { + 'kfreebsd': 'freebsd', +} + def replace_special_cases(special_cases: T.Mapping[str, str], name: str) -> str: ''' If name is a key in special_cases, replace it with the value, or otherwise @@ -195,7 +200,7 @@ def dpkg_architecture_to_machine_info(output: str, options: T.Any) -> MachineInf host_arch = data['DEB_HOST_GNU_TYPE'] host_os = replace_special_cases(deb_os_map, data['DEB_HOST_ARCH_OS']) host_subsystem = host_os - host_kernel = 'linux' + host_kernel = replace_special_cases(deb_kernel_map, data['DEB_HOST_ARCH_OS']) host_cpu_family = replace_special_cases(deb_cpu_family_map, data['DEB_HOST_GNU_CPU']) host_cpu = replace_special_cases(deb_cpu_map, data['DEB_HOST_ARCH']) host_endian = data['DEB_HOST_ARCH_ENDIAN'] diff --git a/unittests/internaltests.py b/unittests/internaltests.py index 36b124db8..fbcfc1cf5 100644 --- a/unittests/internaltests.py +++ b/unittests/internaltests.py @@ -1935,7 +1935,9 @@ class InternalTests(unittest.TestCase): }, system='gnu', subsystem='gnu', - # TODO: Currently linux, but should be gnu/hurd/mach? + # TODO: Currently hurd; should match whatever happens + # during native builds, but at the moment native builds + # fail when kernel() is called. # https://github.com/mesonbuild/meson/issues/13740 kernel='TODO', # TODO: Currently hurd-i386, but should be i686 @@ -1977,8 +1979,7 @@ class InternalTests(unittest.TestCase): }, system='kfreebsd', subsystem='kfreebsd', - # TODO: Currently linux but should be freebsd - kernel='TODO', + kernel='freebsd', # TODO: Currently kfreebsd-amd64 but should be x86_64 cpu='TODO', cpu_family='x86_64',