LinuxSir.cn,穿越时空的Linuxsir!

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

求助 关于交叉编译glibc

[复制链接]
发表于 2007-6-27 17:02:14 | 显示全部楼层 |阅读模式
也许这个帖子应该发在嵌入式版, 不过我问的这个应该属于CLFS.

我想cross-compile glibc, 现在已经有arm-linux的toolchain.
我想问的是只用arm-linux的toolchain可以交叉编译glibc吗? 因为LFS上编译glibc的时候需要其他的一些软件包, 这个在glibc的源码中INSTALL文件有提到:
如:
We recommend installing the following GNU tools before attempting to
build the GNU C library:

   * GNU `make' 3.79 or newer

   * GCC 3.2 or newer

   * GNU `binutils' 2.13 or later

   * GNU `texinfo' 3.12f

   * GNU `awk' 3.0, or some other POSIX awk

   * Perl 5

   * GNU `sed' 3.02 or newer

   

我想问是否需要像CLFS那样做, 但是只是做到编译出GLIBC为止呢?

Thank you in advance.
发表于 2007-6-27 18:43:07 | 显示全部楼层
可以,有对应的内核头文件就行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-27 19:14:46 | 显示全部楼层
谢谢youbest的回答.
我还有一个问题:
      你所指的相应的内核头文件是不这个意思.  比如交叉编译出来的libc的库是运行在ARM的CPU上的.而ARM板上的运行的LINUX的内核是2.6.13, 那么在linux-2.6.13版的内核源代码里的include目录下的文件就是内核头文件了.
因为LFS上在编译glibc之前是安装的linux-libc-headers这个包. 这个包跟源代码中include目录下的有何区别?

Thank you in advance.
回复 支持 反对

使用道具 举报

发表于 2007-6-27 19:41:05 | 显示全部楼层
Post by future_god
谢谢youbest的回答.
我还有一个问题:
      你所指的相应的内核头文件是不这个意思.  比如交叉编译出来的libc的库是运行在ARM的CPU上的.而ARM板上的运行的LINUX的内核是2.6.13, 那么在linux-2.6.13版的内核源代码里的include目录下的文件就是内核头文件了.
因为LFS上在编译glibc之前是安装的linux-libc-headers这个包. 这个包跟源代码中include目录下的有何区别?

Thank you in advance.

不是,是说必须是你的目标架构下的内核头文件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-27 20:11:57 | 显示全部楼层
是ARM板上运行的内核源码目录下的include目录吗?

因为LFS上在编译glibc之前是安装的linux-libc-headers这个包. 这个包跟源代码中include目录下的有何区别?

也许问得太简单了,请大侠不要介意.
回复 支持 反对

使用道具 举报

发表于 2007-6-28 01:50:15 | 显示全部楼层
linux-libc-headers 是净化了的头文件。。。净化了什么我不知道。(我太菜了)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-28 10:14:48 | 显示全部楼层
我在论坛里找到了这么一篇文章.

标题: [八卦故事]内核头文件传奇
http://www.linuxsir.cn/bbs/showthread.php?t=303531
对一些历史性的事情有了一些了解.
还看了这篇文章

标题: 内核头文件为什麽要"净化"?
http://www.linuxsir.cn/bbs/showthread.php?t=260766

得出了这样一个结论结论
  编译glibc时最好用净化过的内核头文件.

但是我要交叉编译的glibc要运行在内核为2.6.13的arm的CPU上,而净化过的内核头文件只到
2.6.12.而且还不是目标架构下的. 我就晕啦.目标架构下的内核头文件哪里去找啊?
而且我试了2.6.13(ARM架构下的内核源代码)的include目录下的头文件.在glibc的configure时用 --with-headers指定的.但是编译时有些文件找不到.



linux-libc-headers 是净化了的头文件。。。净化了什么我不知道。(我太菜了)。

老大太谦虚了哦.
回复 支持 反对

使用道具 举报

发表于 2007-7-2 05:12:01 | 显示全部楼层
不知道你有没有先试试 clfs 的编译方法?

有的东西自己作一下才会有更深刻的体会。

如果你只是单纯编译的话,工具链本身就够了,只有本地需要那些 make 什么的。

(我也不太想知道你想问什么,回答也许会跑题)。
回复 支持 反对

使用道具 举报

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

本版积分规则

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