红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > Ubuntu

编译Busybox的问题

发布时间:2008-08-10 10:22:06来源:红联作者:iopto
作者:pick_boy
出处:http://blog.chinaunix.net/u2/74524/showart_1108145.html

首先说明一下我的主机环境:
主机:windows XP
虚拟机:Vmware 6.03 Ubuntu8.04
编译器版本:gcc-3.4.1-glibc-2.3.3

首先我用的是Busybox1.11,编译报错,后来再从网上下载一个1.10,编译仍旧报错,错误一样,就是位置不一样,应该是两个版本的文件还是有差别的。错误如下:

这会一看,做的工作太多了,终端上的配置信息没了。

大致是这样:

引用:
miscutils/taskset.c:78: warning: passing arg 2 of `sched_getaffinity'
makes pointer from integer without a cast
miscutils/taskset.c:78: error: too many arguments to function
`sched_getaffinity'
miscutils/taskset.c:86: warning: passing arg 2 of `sched_setaffinity'
makes pointer from integer without a cast
miscutils/taskset.c:86: error: too many arguments to function


http://www.uclibc.org/lists/busybox/2007-September/028730.html

这是我找到问题的相关链接。

以上错误我也从这复制过来的,我的错误一样,不过提示的位置不是在78行与86行,不过这并不影响我们对问题的解决。

出现这个问题的原因是由于一个库中的一个函数与这里调用的一个函数所传递的参数个数不一样的原因,估计是库版本问题,在那些命令上加些宏处理来替换掉那些与库不兼容的函数,我将taskset.c文件中修改的一部分贴出来,大家对着改:

引用:
print_aff:
/* ++ Pb:glibc has 2 params for this func */
#ifdef __GLIBC__ /* ++ */
#warning "GLIBC DEFINED" /* ++ */
if (sched_getaffinity(pid, &mask) ",
* or it was "-p " and we came here
* for the second time (see goto below) */
return EXIT_SUCCESS;
}
*argv = NULL;
current_new += 8; /* "new" */
}
{ /* Affinity was specified, translate it into cpu_set_t */
unsigned i;
/* Do not allow zero mask: */
unsigned long long m = xstrtoull_range(aff, 0, 1, ULLONG_MAX);
enum { CNT_BIT = CPU_SETSIZE
CPU_ZERO(&mask);
for (i = 0; i
/* Set pid's or our own (pid==0) affinity */
/* ++++ Pb: glibc has 2 params for this func */
#ifdef __GLIBC__ /* ++ */
if (sched_setaffinity(pid, &mask)) /* ++ */
#else /* ++ */
if (sched_setaffinity(pid, sizeof(mask), &mask))
#endif /* ++ */
bb_perror_msg_and_die("can't %cet pid %d's affinity", 's', pid);
if (!*argv) /* "-p [...ignored...]" */
goto print_aff; /* print new affinity and exit */
BB_EXECVP(*argv, argv);
bb_simple_perror_msg_and_die(*argv);
}


进行如下修改后就可以顺利编译通过了。

[ 本帖最后由 Growth兆 于 2008-8-11 20:36 编辑 ]
文章评论

共有 0 条评论