[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Need help with xen-detect patch


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: Benjamin Schweikert <b.schweikert@xxxxxxxxxxxxxx>
  • Date: Wed, 15 Jun 2011 13:28:46 +0200
  • Delivery-date: Wed, 15 Jun 2011 09:12:40 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=wAgY/DA1xyTjoaTfYWVmuyrmFDyzAuJLnrPxsyw9lGQlZjNp0nSajs5irH085xjo4N G4eBFxfIp7RDJsy3UY4g/0zadZcluJCNd8AXgn7KgSL6+ItpPEHu43Q0C9lYT7cvWTI2 vCm2e2HEXD2Oq3tBWQa4Ii0SvqPekirj8B+34=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi,

me and a friend of mine working on a patch with which xen-tools build with the CFLAGS pie/pic and stack-protection. We saw, that everything builds expect of xen-detect. We developed a patch with which xen-detect builds and we can execute the binary after that, but we dont get the right information, that for example we are running a PV fedora domain. Maybe someone, who is better in assembly than we are can give us some hints.

thanx and bye

Ben

xen-detect: Change assembly cpuinfo code that allows this to be built with
-fPIC.

diff -r 4b0692880dfa tools/misc/xen-detect.c
--- a/tools/misc/xen-detect.c Thu May 05 17:40:34 2011 +0100
+++ b/tools/misc/xen-detect.c Fri May 06 17:14:46 2011 +0200
@@ -41,8 +41,20 @@
int pv_context)
{
asm volatile (
- "test %1,%1 ; jz 1f ; ud2a ; .ascii \"xen\" ; 1: cpuid"
- : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx)
+ "test %1,%1 ; jz 1f ; ud2a ; .ascii \"xen\" ;"
+#if defined(__PIC__)&& defined(__i386__)
+ "1: pushl %%ebx;"
+ "cpuid;"
+ "movl %%ebx,%%esi;"
+ "popl %%ebx"
+ : "=S" (*ebx),
+#else
+ "1: cpuid"
+ : "=b" (*ebx),
+#endif
+ "=a" (*eax),
+ "=c" (*ecx),
+ "=d" (*edx)
: "0" (idx), "1" (pv_context) );
}

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.