LinuxSir.cn,穿越时空的Linuxsir!

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

[求助]glibc2.7编译不通过,大家帮忙看看哈,已经折腾了一天了,没有解决,只好上来求助了。

[复制链接]
发表于 2008-10-18 23:03:22 | 显示全部楼层 |阅读模式
照着手册
http://lamp.linux.gov.cn/Linux/LFS-6.2/index.html
一步一步的做哈,不是很顺利,但总迈过去了两步哈。但是还是跨不过去第三步哈。
现在正在做的步骤http://lamp.linux.gov.cn/Linux/LFS-6.2/chapter05/glibc.html

做到make这一步的时候:
In file included from ../nptl/sysdeps/pthread/allocalim.h:21,
                 from ../include/alloca.h:20,
                 from ../stdlib/stdlib.h:497,
                 from ../include/stdlib.h:8,
                 from ../nptl/sysdeps/i386/i686/../tls.h:28,
                 from ../nptl/sysdeps/i386/i686/tls.h:34,
                 from ../include/tls.h:6,
                 from ../sysdeps/unix/sysv/linux/i386/sysdep.h:30,
                 from <stdin>:1:
../include/limits.h:125:26: error: limits.h: No such file or directory
make[2]: *** [/mnt/lfs/sources/glibc-build/tcb-offsets.h] Error 1
make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.7/csu'
make[1]: *** [csu/subdir_lib] Error 2
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.7'
make: *** [all] Error 2
就是limits.h文件找不到哈。
我的系统是ubuntu8.04
$ uname -a
Linux pjincz 2.6.24-21-rt #1 SMP PREEMPT RT Mon Aug 25 19:24:40 UTC 2008 i686 GNU/Linux
附件里是我运行../glibc-2.7/configure --prefix=/tools --disable-profile --enable-add-ons --enable-kernel=2.6.0 --with-binutils=/tools/bin --without-gd --with-headers=/tools/include --without-selinux的日志
刚开始的时候遇到过awk的问题,不过安装完gawk3.1.6后就没有这个问题了。

下面是一些我尝试过的解决方法(都没有成功哈)

export C_INCLUDE_PATH="/tools/include" (问题依旧)

export C_INCLUDE_PATH="/tools/include/linux"
问题变为/mnt/lfs/sources/glibc-2.7/iconv/gconv_db.c找不到INT_MAX符号

发现INT_MAX被定义在/mnt/lfs/sources/glibc-2.7/include/limits.h于是乎
export C_INCLUDE_PATH="/mnt/lfs/sources/glibc-2.7/include/"
问题变为编译/mnt/lfs/sources/glibc-2.7/include/limits.h #include_next<limits.h>时找不到文件

export C_INCLUDE_PATH="/mnt/lfs/sources/glibc-2.7/include/:/tools/include/linux"
问题回到INT_MAX未定义

export C_INCLUDE_PATH="/tools/include/linux:/mnt/lfs/sources/glibc-2.7/include/"
问题变为limits.h死循环包含

打开/mnt/lfs/sources/glibc-2.7/include/limits.h,将#include_next<limits.h>明确改为#include<linux/limits.h>
问题依旧为INT_MAX未找到
export C_INCLUDE_PATH="/mnt/lfs/sources/glibc-2.7/include/:/tools/include"
但是我打开看gconv_db.c中明确的包含了limits.h。而且/mnt/lfs/sources/glibc-2.7/include/limits.h明确的定义了INT_MAX

@_@实在没招了,宏本来就够恐怖了。鬼知道是不是哪条#if语句引起的。大家谁遇到过不,帮忙看看哈。
要是实在还没招,我就硬来了,呵呵,直接在出错的地方前面#define一个INT_MAX

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2008-10-19 01:10:41 | 显示全部楼层
总感觉是打了不该打的补丁。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-19 12:00:44 | 显示全部楼层
^_^ 没有打任何补丁哈
回复 支持 反对

使用道具 举报

发表于 2008-10-19 23:59:16 | 显示全部楼层
用 lfs 6.2 的手冊的方法 編譯glibc2.7     寒一個  ==!!!

如果lz 想用 glibc2.7 請參照 svn 版的 lfs 手冊 (2008年10月前的版本),
懷疑lz 沒有在  configure 前

  1. echo "CFLAGS += -march=i486 -mtune=native" > configparms       
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-20 21:16:05 | 显示全部楼层
^_^ 瞎折腾哈。。。。。我这人最能折腾了。。。。
马上看看2.7的手册去 嘿嘿。谢谢RTL帮忙哈。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-20 22:11:11 | 显示全部楼层
@_@ 就找到关于安装glibc2.8的不稳定日编译版
然后按照上面说的方法重新来了一次,还是limits.h文件找不到。。。
我就晕了哈。看样子不行阿,得老老实实的先按照手册走一边再说 ^_^
我再研究研究哈。不行的话就推倒重来了@_@
回复 支持 反对

使用道具 举报

发表于 2008-10-20 22:26:27 | 显示全部楼层
换宿主系统吧!

如果那不准就先用 livecd,至少先有个可以确认没问题的宿主。

如果您用 livecd 做宿主,按您的步骤做仍有问题,那就是您自己的问题,
否则可以确认 ubuntu 8.04 不适合做宿主,这样也可以提醒后来者。
回复 支持 反对

使用道具 举报

发表于 2008-10-21 22:58:29 | 显示全部楼层
好象是路径有问题,但是limits.h这个文件是有的,只不程度里面定义了一个宏的问题,把这个路径交错引用了,导致找不到,在源码里面手动一下路径就好了,我也是这样搞过来的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-22 20:37:09 | 显示全部楼层
谢谢大家帮忙哈,我现在正在犹豫,要不要继续这样折腾下去哈,还是先求稳,完全按照手册做一次。

^_^要不大家给点意见。
回复 支持 反对

使用道具 举报

发表于 2008-10-22 20:49:35 | 显示全部楼层
我觉得LFS就是个折腾的过程,如果只是按照手册一路copy下去而不明白其中的很多东西,LFS成功了也没有什么意思
回复 支持 反对

使用道具 举报

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

本版积分规则

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