LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: bpxyz

新系统,新问题:"sem_post: Invalid argument" (已解决)

[复制链接]
 楼主| 发表于 2007-1-23 19:15:40 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2007-1-23 19:31:53 | 显示全部楼层
futex可是nptl的基础啊
新glibc必不可少的

make defconfig也会有这个东西
参见 http://zh.gentoo-wiki.com/HOWTO_Compile_Kernel

$ grep FUTEX /usr/src/linux/arch/i386/defconfig
CONFIG_FUTEX=y
回复 支持 反对

使用道具 举报

发表于 2007-1-23 19:36:52 | 显示全部楼层
好诡秘啊,这都有。不过解决最好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-23 19:40:14 | 显示全部楼层
这个不是新旧的问题,是人的问题。
每次我编内核都喜欢看那些不认识的条目的帮助,但这次却因为时间乱来,居然把这条给取消了,结果是非常严重的,还好系统可以启动。
看看原由:

General setup -->
    Configure standard kernel features ( for small systems) -->
       [ ] Enable futex support

我居然把这个取消了,我又一次自以为是了。看到for small systems,我就以为可以全不不选。
但这个 Enable futex support 的帮助里说
Disabling this option resulting kernel may not run glibc-based applications correctly.
回复 支持 反对

使用道具 举报

发表于 2007-1-23 19:49:49 | 显示全部楼层
旧的glibc不用futex,因为那时候的内核还没有futex

所以你更应该看看我的这篇文章
http://zh.gentoo-wiki.com/HOWTO_Compile_Kernel
省你很多时间,还不会犯这种错误
回复 支持 反对

使用道具 举报

发表于 2007-1-23 19:57:55 | 显示全部楼层
Post by bpxyz

我居然把这个取消了,我又一次自以为是了。看到for small systems,我就以为可以全不不选。

你误解了
这个small system的选项你根本不该打开
这样下面这一系列的选项都是自动设置为y的
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
提供small system的选项,意在让你在构建小系统的时候对上述功能进行取舍,比如slab相对来说比较耗费空间,小系统就可以不用它,而用小巧的slob
回复 支持 反对

使用道具 举报

发表于 2007-1-23 20:00:31 | 显示全部楼层
http://lwn.net/Articles/157944/
提供一点技术背景,上面这篇文章讲解了slab和slob分别是什么东西
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-27 13:17:28 | 显示全部楼层
多谢版主 :p
回复 支持 反对

使用道具 举报

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

本版积分规则

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