Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
accel: Re-enable WHPX cross-build on case sensitive filesystems
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>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20230624142211.8888-3-philmd@linaro.org>
  • Loading branch information
philmd committed Jun 28, 2023
1 parent 098bfc0 commit 641b841
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions meson.build
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions target/i386/whpx/whpx-all.c
Expand Up @@ -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)

Expand Down
4 changes: 2 additions & 2 deletions target/i386/whpx/whpx-internal.h
Expand Up @@ -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,
Expand Down

0 comments on commit 641b841

Please sign in to comment.