1352222 发表于 2016-1-9 15:54:26

Ubuntu amd64下Xen编译错误解决方案

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 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
具体操作如下:

[*]使用apt-get安装特定版本的GCC
sudo apt-get install gcc-4.7

[*]使用update-alternatives配置版本
下述命令将特定版本的GCC 列为GCC  的选项
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40
下述命令设置选择哪个版本的GCC 作为默认的GCC 
sudo update-alternatives --config gcc

[*]xl报错
# 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

# mount -t xenfs xenfs /proc/xen



[*]启动Domain0


# /etc/init.d/xencommons start
页: [1]
查看完整版本: Ubuntu amd64下Xen编译错误解决方案