`
kingquake21
  • 浏览: 268528 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Ubuntu12.04LTS上编译JDK7

 
阅读更多

1、下载mercurial,源码根目录有个文件README-builds.html,非常详细,可以参考

hg fclone http://hg.openjdk.java.net/jdk7/jdk7

 

2、要先安装OpenJDK6,记录一下安装的地方,在下面的环境变量里面会用到

我的是/usr/lib/jvm/java-1.6.0-openjdk-amd64/

 

3、安装JDK7所需要的依赖包

sudo apt-get build-dep openjdk-7

 

4、源码中有一个bug,需要修改一下,在编译时发现会与glibc中的一个定义冲突

src/share/vm/runtime/interfaceSupport.hpp:430:0: error: "__LEAF" redefined [-Werror]

/usr/include/x86_64-linux-gnu/sys/cdefs.h:44:0: note: this is the location of the previous definition

 

5、在编译时会遇到和"javax/sound/jsoundalsa"相关的一个错误,网上搜了一下这个貌似是openjdk的一个bug,有人提供了补丁http://mail.openjdk.java.net/pipermail/build-dev/2012-January/005382.html。只需要修改openjdk/jdk/make/javax/sound/jsoundalsa目录下的Makefile文件,找到LDFLAGS += -lasound 

修改为:OTHER_LDLIBS += -lasound

 

6、设置如下环境变量

 

#!/bin/bash  
  
export LANG=C  
export ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk-amd64/
export ALLOW_DOWNLOADS=true                                                                                                                    
export USE_PRECOMPILED_HEADER=true  
export SKIP_DEBUG_BUILD=false  
export SKIP_FASTDEBUG_BUILD=true  
export DISABLE_HOTSPOT_OS_VERSION_CHECK=true  
export DEBUG_NAME=debug  
unset CLASSPATH  
unset JAVA_HOME           
  
make sanity  && make

 

然后执行了挺长一段时间,就生成了jdk7/build/linux-amd64,察看版本

 

openjdk version "1.7.0-internal-debug"

OpenJDK Runtime Environment (build 1.7.0-internal-debug-wz_2012_12_25_15_46-b00)

OpenJDK 64-Bit Server VM (build 21.0-b17-jvmg, mixed mode)

 

 

参考:

http://lc87624.iteye.com/blog/1542354

http://blog.csdn.net/kindazrael/article/details/7266314

 

 

如果只想单独编译hotspot,可以这样:

bash:~/mercurial/$hg clone http://hg.openjdk.java.net/jdk7/hotspot/hotspot

bash:~/mercurial/$cd hotspot/make

bash:~/mercurial/hotspot/make$LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk/ HOTSPOT_BUILD_JOBS=5 ARCH_DATA_MODEL=64 ALT_OUTPUTDIR=../../build/hotspot_debug make jvmg jvmg1 2>&1 | tee ../../build/hotspot_debug

 

分享到:
评论

相关推荐

    Ubuntu12.04安装JDK1.7

    本指南将详细介绍如何在 Ubuntu 12.04 上安装 JDK 1.7。 #### 二、准备工作 在开始安装之前,请确保已更新系统,并安装了必要的依赖项。可以通过以下命令更新系统: ```bash sudo apt-get update sudo apt-get ...

    Android_Build_Environment_on_Ubuntu_12.04_64-bit_Installation_SOP.pdf

    4. **安装步骤**:文档详细介绍了在Ubuntu 12.04 64位系统上安装Android编译环境的步骤,包括操作系统的要求、内存和磁盘空间要求、编译工具的安装、JDK(Java开发工具包)的安装、以及对软件源的配置等。...

    Ubuntu 12.04 搭建Android开发环境.rar

    在本文中,我们将深入探讨如何在Ubuntu 12.04 LTS(长期支持版)上搭建完整的Android开发环境。Ubuntu作为一个流行的Linux发行版,为开发者提供了稳定且强大的平台,是许多程序员首选的操作系统。Android开发则需要...

    Ubuntu编译android4.4源码

    1. Ubuntu版本选择:在编译Android源码时,选择Ubuntu 12.04.5 LTS版本,主要是因为它是Android官方编译推荐使用的系统版本。在文档中提到Ubuntu 14.04存在一些兼容性问题,比如vmware-tools安装后屏幕自适应问题、...

    A20 Android编译服务器搭建

    本文以A20处理器平台为例,详细介绍了如何在Ubuntu 12.04 LTS环境下搭建Android编译环境。 首先,我们要了解编译平台的选择。在这个案例中,编译平台采用了I7-4770四核处理器,16GB DDR3 1600MHz内存和500GB硬盘,...

    全志 Android编译服务器系统安装标准手册

    根据提供的文件内容,本知识点将详细介绍全志Android编译服务器系统安装标准手册中的内容,重点关注Ubuntu Server 12.04 LTS的操作系统安装步骤。 1. **下载Ubuntu Server 12.04 LTS** - 访问Ubuntu官方网站并下载...

    jdk-6u33-linux-x64.bin

    Android编译服务器系统安装标准手册(发布版)-Ubuntu12.04x64LTS_20130608-2_.pdf 全志的android编译服务器搭建手册需要用到的JDK

    Ubuntu eclipse 操作手册 经典

    3. Ubuntu12.04静态ip的设置方法:在Ubuntu12.04中设置静态IP地址是一个常见的网络配置任务,使得每次启动时系统能够获得同一IP地址,这对于开发和调试环境非常重要。文档中提供了详细步骤,包括编辑/etc/network/...

    高通编译环境搭建

    首先,需要在计算机上安装 Ubuntu 12.04 LTS 64 位版本的操作系统。Ubuntu 是一款广泛使用的 Linux 发行版,它提供了丰富的开发工具和支持库,非常适合用于搭建高通平台下的编译环境。 ##### 2.2 安装必要软件包 ...

    Android ROM定制学习笔记

    在这份笔记中,我们将使用 Ubuntu Linux 12.04 LTS 作为开发环境,并使用 Android 4.2.2 和 Linux 3.X 的源代码版本。我们将从构建编译环境开始,安装和配置 Android 开发环境,选择编译目标,执行编译,直到将编译...

Global site tag (gtag.js) - Google Analytics