LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1210|回复: 6

内核编译错误:smp.h "smp_send_reschedule"

[复制链接]
发表于 2008-1-6 18:51:03 | 显示全部楼层 |阅读模式
我好像没动过内核源代码,gcc也没动过
但是莫名奇妙的就出现了以下问题:

  1. /usr/src/linux-2.6.22-gentoo-r8/include/linux/smp.h:29: error: conflicting types for 'smp_send_reschedule'
  2. /usr/src/linux-2.6.22-gentoo-r8/include/asm/smp.h:65: error: previous declaration of 'smp_send_reschedule' was here
  3. In file included from /usr/src/linux-2.6.22-gentoo-r8/include/linux/unistd.h:9,
  4.                  from init/main.c:17:
  5. /usr/src/linux-2.6.22-gentoo-r8/include/asm/unistd.h:360: warning: conflicting types for built-in function '_exit'
复制代码


有人碰到过同样的问题吗?
发表于 2008-1-6 22:36:06 | 显示全部楼层
换新内核
最新的stable是2.6.23-r3
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-7 12:13:18 | 显示全部楼层
嗯,我想过更新新的内核,不过还是想知道这个问题是怎么引起的,很奇怪。。
回复 支持 反对

使用道具 举报

发表于 2008-1-7 13:37:47 | 显示全部楼层
我觉得你给的信息太少,你的gcc是多少版本的
而且“莫名其妙”是怎么回事?是说你以前编译过这个版本的内核,同样的配置这次编译不了了么?
基本上如果过去能编译,现在不能了,那肯定只有两种可能,一个是你改了内核的配置,一个是你的编译环境与以前不同了,没什么莫名其妙的事(除非是遇到bug,这对于比较成熟的package,基本上不可能)
总之是你需要提供别人一个信息,就是怎样的情况下会重现你的问题,否则别人可能没办法给你提任何有帮助的建议。

不过你确实可以考虑换内核了
Post by pamirs;1803936
嗯,我想过更新新的内核,不过还是想知道这个问题是怎么引起的,很奇怪。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-8 12:19:32 | 显示全部楼层
想起来了,我之前在/usr/src目录下面放置了另外一个不同版本的linux内核源码,目录名称是linux-2.4.18,然后进到这个里面执行了make menuconfig,配置完之后,编译是失败的(gcc 4.1.1),然后删除了整个目录,不过我发现我在去原来的内核源码下面执行make menuconfig的时候出来的选项还是原来的内核配置选项,而且上面显示的是linux-2.4.18,于是我很奇怪为什么我的makefile背替换掉了?是什么时候替换掉的?
所以现在我很想知道/usr/src下面是不是只能有一套内核的源码?如果需要另外一套内核源码(比如修改其中的部分代码),大家是怎么做的?
而且再make menuconfig,make应该是读取当前目录下面的makefile吧,那么怎么会把另一个目录的makefile给修改了呢?
我觉得会不会是下面的原因呢?
/urc/src下面有一个符号链接:linux -> linux-2.6.22-gentoo-r8
linux-2.6.22-gentoo-r8这个就是内核目录了,然后我又新建了一个目录
linux-2.4.18,然后在linux-2.4.18下面执行make manuconfig的时候,其实linux链接的还是原来2.6.22的目录,所以就把2.4.18的makefile覆盖了2.6.22里面的了?(还有一点不明白,为什么会这样?)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-8 12:32:58 | 显示全部楼层
还有,编译内核的时候,除了生成内核映像文件,还会在其他哪些目录下面生成别的什么文件吗?比如/lib目录什么的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-8 12:38:39 | 显示全部楼层
刚在/lib/modules下面发现了2.4.18,  2.6.22-gentoo-r8两个目录
2.4.18下面有一个build链接:build -> /usr/src/linux-2.6.22-gentoo-r8

2.6.22.r8下面的build链接也是同样的链接
这个链接是不是有/usr/src下面的linux链接来决定的?

哪位给我详细的介绍一下内核在目录上的要求,内核编译的时候会生成些什么?生成到哪里去了?谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表