Ubuntu 12.04LTS 에서 JDK 7 을 컴 파일 합 니 다.

2911 단어 ubuntu
1. mercurial 을 다운로드 하고 소스 루트 디 렉 터 리 에 README - builds. html 파일 이 있 습 니 다. 매우 상세 하 므 로 참고 하 실 수 있 습 니 다.
hg fclone http://hg.openjdk.java.net/jdk7/jdk7
 
2. OpenJDK 6 를 설치 하고 설치 한 곳 을 기록 해 야 합 니 다. 아래 환경 변수 에 사 용 됩 니 다.
저 는 / usr / lib / jvm / java - 1.6.0 - openjdk - amd 64 /
 
3. JDK 7 설치 에 필요 한 의존 패키지
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
http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/a6eef545f1a2
 
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 를 찾 을 수 있 습 니 다. 
OTHERLDLIBS += -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

 
그리고 아주 오 랜 시간 동안 실행 되 었 고 jdk 7 / build / linux - amd 64 를 생 성하 여 버 전 을 살 펴 보 았 습 니 다.
 
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

좋은 웹페이지 즐겨찾기