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

  • 相关阅读:
    重载运算符
    旅行家的预算(贪心)
    树屋阶梯(卡特兰数+高精除低精+高精乘低精)
    种树 3(差分约束)
    差分约束系统详解
    最优分解方案(贪心+高精乘单精)
    雷达安装(贪心)
    加工生产调度(Johnson算法 双机流水作业调度问题)

    Jquery整理
  • 原文地址:https://www.cnblogs.com/eustoma/p/toolchains.html
Copyright © 2011-2022 走看看