Cross-Compiling Iceadtea(OpenJDK)

      经过1个多月的奋斗与煎熬,终于成功在X86体系结构上交叉编译出了Icedtea(Zero部分)。在编译的过程中,遇到了一些困难,希望能将这些解决方法分享出来,希望对正在纠结的你有一定帮助。也希望和你继续深一步的讨论。

      由于LLVM的版本较低,所以不能支持Icedtea(Shark部分),但是交叉编译Zero和Shark的方法大同小异。

      在交叉编译前,请仔细阅读icedtea目录下INSTALL文件和configure --help。

      笔者采用icedtea6-1.9.1+openjdk-6-src-b20-21_jun_2010的组合进行交叉编译。

编译的一些问题:

      由于OpenJDK设计初衷并没有考虑交叉编译,OpenJDK的make脚本会通过检查编译环境自动指定编译环境,我们在Icedtea的configure中配置的工具链环境变量会被修改。我们需要在OpenJDK的make脚本中手动修改。

       OpenJDK编译的过程是通过GNU Classpath/GCJ+ECJ(X86) ----> Bootstrap JDK(X86) ----->final JDK(UniCore32)。Icedtea编译过程封装了这一过程,通过make实际上执行了这两个编译步骤,但是由于第二步编译需要使用修改工具链,我们需要通过make icedtea-against-ecj和make icedtea-against-icedtea来分离这两个编译步骤。

       在OpenJDK编译过程中,会使用到交叉编译出来的可执行文件(sizer.32和test_gamma),但这显然是行不通的,sizer.32需要在UniCore32体系结构上手动运行,然后拷贝sizes.32到x86上,通过修改这部分的脚本重新实

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值