from http://blog.163.com/sunbo1992@126/blog/static/163551287201492715340786/ Ubuntu amd64下Xen编译错误解决方案(like centos 7)
编译环境
Ubuntu 14.04 64位
Python错误
Traceback (most recent call last): File "./tools/layoutrom.py", line 630, in <module> main() File "./tools/layoutrom.py", line 607, in main info16 = parseObjDump(infile16, '16') File "./tools/layoutrom.py", line 538, in parseObjDump relocsection = sectionmap[sectionname] KeyError: '.text.asm.out/../src/smp.c.77'
原因是:语言设置为UTF-8
解决方法:使用 LC_ALL=C make命令进行编译
cdefs.h
fatal error: sys/cdefs.h: No such file or directory
原因是:使用的是amd64版本的Ubuntu
解决方法:安装libc6-dev-i386软件包
makeinfo
WARNING: `makeinfo' is missing on your system. You should only need it if
you modified a `.texi' or `.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make' (AIX,
DU, IRIX). You might want to install the `Texinfo' package or
the `GNU make' package. Grab either from any GNU archive site.
原因:未安装makeinfo软件包
解决方法:安装texinfo
tmpback.c语法错误
tpmback.c: In function 'tpmif_change_state':
tpmback.c:350:4: error: format '%d' expects argument of type 'int *', but argument 3 has type 'enum xenbus_state *' [-Werror=format=]
if(sscanf(value, "%d", &readst) != 1) {
^
cc1: all warnings being treated as errors
原因:gcc4.8.2对C99语法支持不好
解决方案:将系统默认的GCC 降级到4.7
具体操作如下:
# xl info
xc: error: Could not obtain handle on privileged command interface (2 = No such file or directory): Internal error
libxl: error: libxl.c:99:libxl_ctx_alloc: cannot open libxc handle: No such file or directory
cannot init xl context
是因为没有挂载 xenfs 的缘故
挂载一下:
# modprobe xenfs