From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mick Jordan Subject: Help with 3.4.x compilation problem Date: Wed, 28 Apr 2010 18:11:29 -0700 Message-ID: <4BD8DCC1.9050409@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; CHARSET=US-ASCII; format=flowed Content-Transfer-Encoding: 7BIT Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com Cc: Derek.Murray@cl.cam.ac.uk List-Id: xen-devel@lists.xenproject.org I am having a problem compiling a tools component of my variant of mini-os against a 3.4.x source tree, having recently migrated from 3.1.4. The problem lies in the header file xenctrl.h, which contains this (new from 3.1.4) code: #if defined(__i386__) || defined(__x86_64__) #include #include #endif Now, this look extremely dubious to me as both 32 and 64 bit headers are not usually included at the same time, but the immediate problem is that the headers cannot be found: [ -e xen ] || ln -sf /import/xen/xen-3.4.2/xen/include/public xen gcc -DPIC -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD -MF .db-xenbus.opic.d -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Werror -Wno-unused -fno-strict-aliasing -I /import/xen/xen-3.4.2/tools/libxc -I /import/xen/xen-3.4.2/tools/xenstore -I. -D_GNU_SOURCE -Wp,-MD,.db-xenbus.opic.d -fPIC -c -o db-xenbus.opic db-xenbus.c gcc -DPIC -O2 -fomit-frame-pointer -m64 -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wno-unused-value -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD -MF .db-frontend.opic.d -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Werror -Wno-unused -fno-strict-aliasing -I /import/xen/xen-3.4.2/tools/libxc -I /import/xen/xen-3.4.2/tools/xenstore -I. -D_GNU_SOURCE -Wp,-MD,.db-frontend.opic.d -fPIC -c -o db-frontend.opic db-frontend.c In file included from db-frontend.c:42: /import/xen/xen-3.4.2/tools/libxc/xenctrl.h:36:32: error: xen/foreign/x86_32.h: No such file or directory /import/xen/xen-3.4.2/tools/libxc/xenctrl.h:37:32: error: xen/foreign/x86_64.h: No such file or directory I've searched the source tree and indeed cannot find any directory named foreign. However, I can find some directories containing the pattern foreign, e.g., tools/include/xen-foreign, so I am guessing that some symbolic link hackery is done in a normal build that sets this up. I say "normal" because, for various reasons, I do not build my mini-os variant inside the Xen tree but rather refer to it via an environment variable. This worked fine in 3.1.4. Times like this I wish there was a developer's manual. Thanks for any help. Mick