Message ID | 20230624142211.8888-3-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | accel: Re-enable WHPX cross-build on case sensitive filesystems | expand |
On Sat, Jun 24, 2023 at 04:22:11PM +0200, Philippe Mathieu-Daudé wrote: > Since MinGW commit 395dcfdea ("rename hyper-v headers and def > files to lower case") [*], WinHvPlatform.h and WinHvEmulation.h > got respectively renamed as winhvplatform.h / winhvemulation.h. > > The mingw64-headers package included in the Fedora version we > use for CI does include this commit; and meson fails to detect > these present-but-renamed headers while cross-building (on > case-sensitive filesystems). > > Use the renamed header in order to detect and successfully > cross-build with the WHPX accelerator. > > Note, on Windows hosts, the libraries are still named as > WinHvPlatform.dll and WinHvEmulation.dll, so we don't bother > renaming the definitions used by load_whp_dispatch_fns() in > target/i386/whpx/whpx-all.c. > > [*] https://sourceforge.net/p/mingw-w64/mingw-w64/ci/395dcfdea > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > meson.build | 4 ++-- > target/i386/whpx/whpx-internal.h | 4 ++-- > target/i386/whpx/whpx-all.c | 4 ++-- > 3 files changed, 6 insertions(+), 6 deletions(-) Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel
diff --git a/meson.build b/meson.build index 6ef78ea278..fc3c14a810 100644 --- a/meson.build +++ b/meson.build @@ -661,8 +661,8 @@ endif if get_option('whpx').allowed() and targetos == 'windows' if get_option('whpx').enabled() and host_machine.cpu() != 'x86_64' error('WHPX requires 64-bit host') - elif cc.has_header('WinHvPlatform.h', required: get_option('whpx')) and \ - cc.has_header('WinHvEmulation.h', required: get_option('whpx')) + elif cc.has_header('winhvplatform.h', required: get_option('whpx')) and \ + cc.has_header('winhvemulation.h', required: get_option('whpx')) accelerators += 'CONFIG_WHPX' endif endif diff --git a/target/i386/whpx/whpx-internal.h b/target/i386/whpx/whpx-internal.h index 06429d8ccd..6633e9c4ca 100644 --- a/target/i386/whpx/whpx-internal.h +++ b/target/i386/whpx/whpx-internal.h @@ -2,8 +2,8 @@ #define TARGET_I386_WHPX_INTERNAL_H #include <windows.h> -#include <WinHvPlatform.h> -#include <WinHvEmulation.h> +#include <winhvplatform.h> +#include <winhvemulation.h> typedef enum WhpxBreakpointState { WHPX_BP_CLEARED = 0, diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c index 0903327ac5..9ee04ee650 100644 --- a/target/i386/whpx/whpx-all.c +++ b/target/i386/whpx/whpx-all.c @@ -31,8 +31,8 @@ #include "whpx-internal.h" #include "whpx-accel-ops.h" -#include <WinHvPlatform.h> -#include <WinHvEmulation.h> +#include <winhvplatform.h> +#include <winhvemulation.h> #define HYPERV_APIC_BUS_FREQUENCY (200000000ULL)
Since MinGW commit 395dcfdea ("rename hyper-v headers and def files to lower case") [*], WinHvPlatform.h and WinHvEmulation.h got respectively renamed as winhvplatform.h / winhvemulation.h. The mingw64-headers package included in the Fedora version we use for CI does include this commit; and meson fails to detect these present-but-renamed headers while cross-building (on case-sensitive filesystems). Use the renamed header in order to detect and successfully cross-build with the WHPX accelerator. Note, on Windows hosts, the libraries are still named as WinHvPlatform.dll and WinHvEmulation.dll, so we don't bother renaming the definitions used by load_whp_dispatch_fns() in target/i386/whpx/whpx-all.c. [*] https://sourceforge.net/p/mingw-w64/mingw-w64/ci/395dcfdea Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- meson.build | 4 ++-- target/i386/whpx/whpx-internal.h | 4 ++-- target/i386/whpx/whpx-all.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-)