zoukankan      html  css  js  c++  java
  • 关于android toolchain

    大家好,
    我初涉及底层开发,有一个疑问,想请大家解惑。
    是关于gnu toolchain 和 arm-linux-abi toochain
    为什么android kernel需要用到arm-linux-abi toochain编译 而android root filesystem却使用gnu toolchain。
    两套工具链编译出来的有什么不同?
    我原以为arm-linux- toolchain仅仅是征对arm做了专门的指令优化, 而gnu是通用的,支持各种体系,编译出来的都是硬件体系结构的机器指令。abi则是交叉编译器的一些兼容标准。但是昨天一个做linux驱动的朋友告诉我说,arm-linux-编译出来的是目标机器指令, 而gnu编译出来的是Linux可执行代码, Linux负责解释执行这些可执行代码。
    突然就觉得很晕。那如果没有linux, 是不是gnu编译出来的就不裸奔在arm之上了?
    到底是他说错了 还是我理解有问题 或者有其他的真相,请大家指教。谢谢!
    底层, 编译, 驱动
    相关帖子
    android4.0源码编译调试出错/bin/bash: prebuilt/linux-x86/toolchain/arm...
    查看更多>>
    分享到:
    QQ空间
    腾讯微博
    腾讯朋友
    淘帖0
    分享0
    收藏0
    好评0
    差评0
    转发到微博
    相关帖子

    • Android的MediaPlayer架构介绍• eoe团队招募队员啦(更新:6.13)• 求助:向上的迷茫• 本人常使用的android网址整理• 对社区的版块做了一些调整,大家提意见!• Widget 的浮动效果• 转行android• Android底层结构:SDK Service线程知多少• 咱做斑竹了~~~• openGL介绍
    回复 举报
    monet

    21
    主题
    1
    好友
    1767
    积分
    退休版主


    精华0帖子257e币345 元
    发消息
    沙发
    发表于 2010-8-26 12:48:59 |只看该作者
    回复 1# Richard007lin

    android 的toolchain是经过优化的,因为android使用的是bionic而不是标准的libc,所以不可以替代使用。至于你朋友说的,我觉得是错误的。
    回复 举报
    Fendy

    28
    主题
    2
    好友
    1247
    积分
    No.4 中级开发者

    升级 91.17%

    精华0帖子215e币393 元
    发消息
    板凳
    发表于 2010-8-26 15:59:29 |只看该作者

    http://blogimg.chinaunix.net/blog/upfile/071003002142.pdf
    回复 举报
    boxpei

    4
    主题
    0
    好友
    2844
    积分
    No.6 江湖开发者

    升级 14.33%

    精华0帖子451e币436 元
    发消息
    地板
    发表于 2010-8-26 17:32:45 |只看该作者
    本帖最后由 boxpei 于 2010-8-26 17:34 编辑


    搞清楚一点就好。toochain是干什么的?
    是为了在与目标机不同的环境下编译出能在目标机上执行的代码。
    比如说在x86机器的linux下编译能跑在arm上的android的内核,那么只要找到一个linux-86 -arm的toochain就可以。这个也可以用android源码自带的toolchain。理由是因为内核并不需要用到bionic。
    如果编译android,那就要用android自带的toolchain,因为如斑竹所说,android用的c库是bionic而不是标准的libc,而且加载库使用的/system/bin/linker而不是常用的/lib/ld.so; 因此用其他的toolchain则只能编译成静态的才能跑。当然如果能够制作出兼容bionic的toolchain出来理论上也是能用的,不过没看到过成功的例子。
    说错的地方请拍砖。
    工作是生活的一部分。
    回复 举报
    Richard007lin

    21
    主题
    0
    好友
    332
    积分
    No.3 秀才开发者

    升级 8%

    精华1帖子54e币70 元
    发消息
    5楼
    发表于 2010-8-27 14:24:47 |只看该作者
    回复 4# boxpei
    感觉你说得很对 但是没有说到我疑问的地方 哈哈
    我关注的是gnu toolchain和 arm-linux toolchain编译的差距
    回复 举报
    boxpei

    4
    主题
    0
    好友
    2844
    积分
    No.6 江湖开发者

    升级 14.33%

    精华0帖子451e币436 元
    发消息
    6楼
    发表于 2010-8-27 14:57:40 |只看该作者
    不知道你说的这两个toolchain具体指的是哪个?我暂且按照下面这么理解不知道猜对没有?

    你用你说的gnu toolchain?(非android提供的?) 或者arm-linux toolchain?(android提供的的toolchain?)编译android内核都是可以的,但是编译内核之上android部分只能用android提供的toolchain(你说的arm-linux toolchain?)
    你问的是为什么用gnu toolchain 编译android根文件系统,而用arm-linux-abi toochain编译android-kernal,目标对象本身就不同,怎么去比较?另外,对于根文件系统,这一点斑竹也说过了,因为bionic的缘故,你用非android标准的toolchain去编译,编译出来的东西应该是不行的。
    如果你说两者都用来编译kernal,有何不同?那我上面已经说过了,应该都可以的。

    如果说错了,请拍砖。

    http://www.eoeandroid.com/thread-30834-1-1.html

  • 相关阅读:
    HDU 1800 Flying to the Mars 字典树,STL中的map ,哈希树
    字典树 HDU 1075 What Are You Talking About
    字典树 HDU 1251 统计难题
    最小生成树prim算法 POJ2031
    POJ 1287 Networking 最小生成树
    次小生成树 POJ 2728
    最短路N题Tram SPFA
    poj2236 并查集
    POJ 1611并查集
    Number Sequence
  • 原文地址:https://www.cnblogs.com/eustoma/p/toolchains.html
Copyright © 2011-2022 走看看