From 05db24154d32fb3f1584edb6035e5b56a8d6664e Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Fri, 13 Nov 2009 06:36:08 +0000 Subject: [PATCH] 2009-11-13 Zoltan Varga * mini-amd64.c (emit_call_body): Disable usage of near calls when running under XEN. Fixes #522894. svn path=/trunk/mono/; revision=146109 --- mono/mini/ChangeLog | 3 +++ mono/mini/mini-amd64.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/mono/mini/ChangeLog b/mono/mini/ChangeLog index 2f91205f711..0fbceb4d443 100644 --- a/mono/mini/ChangeLog +++ b/mono/mini/ChangeLog @@ -1,5 +1,8 @@ 2009-11-13 Zoltan Varga + * mini-amd64.c (emit_call_body): Disable usage of near calls when running + under XEN. Fixes #522894. + * patch-info.h: Add LLVM_IMT_TRAMPOLINE. * mini-llvm.c aot-compiler.c aot-runtime.c mini.c: Add support for making diff --git a/mono/mini/mini-amd64.c b/mono/mini/mini-amd64.c index fb291d5fbb4..0d0061eaeca 100644 --- a/mono/mini/mini-amd64.c +++ b/mono/mini/mini-amd64.c @@ -2570,6 +2570,10 @@ emit_call_body (MonoCompile *cfg, guint8 *code, guint32 patch_type, gconstpointe near_call = FALSE; #endif + /* The 64bit XEN kernel does not honour the MAP_32BIT flag. (#522894) */ + if (optimize_for_xen) + near_call = FALSE; + if (near_call) { /* * Align the call displacement to an address divisible by 4 so it does -- 2.25.1