`
jaychang
  • 浏览: 731187 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

编译openjdk7

 
阅读更多
我是用linux x64 6u45来作为BOOT_JDK,编译openjdk7,ant用的是1.9.4
build.sh脚本如下:

 

 sudo apt-get install libfreetype6-dev

 

注释openjdk/hotspot/make/linux/Makefile文件的以下内容,

check_os_version:
#ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)
#       $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1;
#endif

 否则会报以下错误:

make[6]: Entering directory `/opt/openjdk/build-debug/hotspot/outputdir'
>&2 echo "*** This OS is not supported:" `uname -a`; exit 1;
*** This OS is not supported: Linux ThinkPad-Edge-E431 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

 

make sanity的时候,注意在 /etc/profile里配置ANT的bin目录

WARNING: LANG has been set to zh_CN.UTF-8, this can cause build failures. 
         Try setting LANG to 'C'. 
 
ERROR: Your CLASSPATH environment variable is set.  This will 
       most likely cause the build to fail.  Please unset it 
       and start your build again. 
 
ERROR: Your JAVA_HOME environment variable is set.  This will 
       most likely cause the build to fail.  Please unset it 
       and start your build again. 
 
Exiting because of the above error(s). 
 
make: *** [post-sanity] 错误 1
root@ThinkPad-Edge-E431:/opt/openjdk# unset JAVA_HOME 
root@ThinkPad-Edge-E431:/opt/openjdk# unset CLASSPATH
root@ThinkPad-Edge-E431:/opt/openjdk# make sanity

 

 后来又碰到问题 还没解决:

Note: Recompile with -Xlint:unchecked for details.
/usr/local/jdk1.6/bin/jar cfm /opt/openjdk/build/../build-debug/btjars/hasher.jar /opt/openjdk/build/../build-debug/btclasses/hasher_manifest.mf \
	    -C /opt/openjdk/build/../build-debug/btclasses build/tools/hasher \
	    -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m || rm -f /opt/openjdk/build/../build-debug/btjars/hasher.jar
=========================================================
BUILDTOOL:                hasher
PACKAGE:                  build.tools.hasher
BUILDTOOL_SOURCE_ROOT:    ../../tools/src
BUILTTOOL_MAINCLASS:      build.tools.hasher.Hasher
BUILDTOOL_JAR_FILE:       /opt/openjdk/build/../build-debug/btjars/hasher.jar
=========================================================
make[5]: Leaving directory `/opt/openjdk/jdk/make/tools/hasher_classes'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/tools/jarreorder'
/bin/echo -e "Main-Class: build.tools.jarreorder.JarReorder" > /opt/openjdk/build/../build-debug/btclasses/jarreorder_manifest.mf
/usr/local/jdk1.6/bin/javac  -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii -source 6 -target 6 -XDignore.symbol.file=true -d /opt/openjdk/build/../build-debug/btclasses \
	    -sourcepath ../../tools/src ../../tools/src/build/tools/jarreorder/JarReorder.java
/usr/local/jdk1.6/bin/jar cfm /opt/openjdk/build/../build-debug/btjars/jarreorder.jar /opt/openjdk/build/../build-debug/btclasses/jarreorder_manifest.mf \
	    -C /opt/openjdk/build/../build-debug/btclasses build/tools/jarreorder \
	    -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m || rm -f /opt/openjdk/build/../build-debug/btjars/jarreorder.jar
=========================================================
BUILDTOOL:                jarreorder
PACKAGE:                  build.tools.jarreorder
BUILDTOOL_SOURCE_ROOT:    ../../tools/src
BUILTTOOL_MAINCLASS:      build.tools.jarreorder.JarReorder
BUILDTOOL_JAR_FILE:       /opt/openjdk/build/../build-debug/btjars/jarreorder.jar
=========================================================
make[5]: Leaving directory `/opt/openjdk/jdk/make/tools/jarreorder'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/tools/jarsplit'
/bin/echo -e "Main-Class: build.tools.jarsplit.JarSplit" > /opt/openjdk/build/../build-debug/btclasses/jarsplit_manifest.mf
/usr/local/jdk1.6/bin/javac  -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii -source 6 -target 6 -XDignore.symbol.file=true -d /opt/openjdk/build/../build-debug/btclasses \
	    -sourcepath ../../tools/src ../../tools/src/build/tools/jarsplit/JarSplit.java
Note: ../../tools/src/build/tools/jarsplit/JarSplit.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
/usr/local/jdk1.6/bin/jar cfm /opt/openjdk/build/../build-debug/btjars/jarsplit.jar /opt/openjdk/build/../build-debug/btclasses/jarsplit_manifest.mf \
	    -C /opt/openjdk/build/../build-debug/btclasses build/tools/jarsplit \
	    -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m || rm -f /opt/openjdk/build/../build-debug/btjars/jarsplit.jar
=========================================================
BUILDTOOL:                jarsplit
PACKAGE:                  build.tools.jarsplit
BUILDTOOL_SOURCE_ROOT:    ../../tools/src
BUILTTOOL_MAINCLASS:      build.tools.jarsplit.JarSplit
BUILDTOOL_JAR_FILE:       /opt/openjdk/build/../build-debug/btjars/jarsplit.jar
=========================================================
make[5]: Leaving directory `/opt/openjdk/jdk/make/tools/jarsplit'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/tools/javazic'
/bin/echo -e "Main-Class: build.tools.javazic.Main" > /opt/openjdk/build/../build-debug/btclasses/javazic_manifest.mf
/usr/local/jdk1.6/bin/javac  -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii -source 6 -target 6 -XDignore.symbol.file=true -d /opt/openjdk/build/../build-debug/btclasses \
	    -sourcepath ../../tools/src ../../tools/src/build/tools/javazic/Main.java
/usr/local/jdk1.6/bin/jar cfm /opt/openjdk/build/../build-debug/btjars/javazic.jar /opt/openjdk/build/../build-debug/btclasses/javazic_manifest.mf \
	    -C /opt/openjdk/build/../build-debug/btclasses build/tools/javazic \
	    -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m || rm -f /opt/openjdk/build/../build-debug/btjars/javazic.jar
=========================================================
BUILDTOOL:                javazic
PACKAGE:                  build.tools.javazic
BUILDTOOL_SOURCE_ROOT:    ../../tools/src
BUILTTOOL_MAINCLASS:      build.tools.javazic.Main
BUILDTOOL_JAR_FILE:       /opt/openjdk/build/../build-debug/btjars/javazic.jar
=========================================================
make[5]: Leaving directory `/opt/openjdk/jdk/make/tools/javazic'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/tools/jdwpgen'
/bin/echo -e "Main-Class: build.tools.jdwpgen.Main" > /opt/openjdk/build/../build-debug/btclasses/jdwpgen_manifest.mf
/usr/local/jdk1.6/bin/javac  -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii -source 6 -target 6 -XDignore.symbol.file=true -d /opt/openjdk/build/../build-debug/btclasses \
	    -sourcepath ../../tools/src ../../tools/src/build/tools/jdwpgen/Main.java
/usr/local/jdk1.6/bin/jar cfm /opt/openjdk/build/../build-debug/btjars/jdwpgen.jar /opt/openjdk/build/../build-debug/btclasses/jdwpgen_manifest.mf \
	    -C /opt/openjdk/build/../build-debug/btclasses build/tools/jdwpgen \
	    -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m || rm -f /opt/openjdk/build/../build-debug/btjars/jdwpgen.jar
=========================================================
BUILDTOOL:                jdwpgen
PACKAGE:                  build.tools.jdwpgen
BUILDTOOL_SOURCE_ROOT:    ../../tools/src
BUILTTOOL_MAINCLASS:      build.tools.jdwpgen.Main
BUILDTOOL_JAR_FILE:       /opt/openjdk/build/../build-debug/btjars/jdwpgen.jar
=========================================================
make[5]: Leaving directory `/opt/openjdk/jdk/make/tools/jdwpgen'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/tools/makeclasslist'
/bin/echo -e "Main-Class: build.tools.makeclasslist.MakeClasslist" > /opt/openjdk/build/../build-debug/btclasses/makeclasslist_manifest.mf
/usr/local/jdk1.6/bin/javac  -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii -source 6 -target 6 -XDignore.symbol.file=true -d /opt/openjdk/build/../build-debug/btclasses \
	    -sourcepath ../../tools/src ../../tools/src/build/tools/makeclasslist/MakeClasslist.java
Note: ../../tools/src/build/tools/makeclasslist/MakeClasslist.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
/usr/local/jdk1.6/bin/jar cfm /opt/openjdk/build/../build-debug/btjars/makeclasslist.jar /opt/openjdk/build/../build-debug/btclasses/makeclasslist_manifest.mf \
	    -C /opt/openjdk/build/../build-debug/btclasses build/tools/makeclasslist \
	    -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m || rm -f /opt/openjdk/build/../build-debug/btjars/makeclasslist.jar
=========================================================
BUILDTOOL:                makeclasslist
PACKAGE:                  build.tools.makeclasslist
BUILDTOOL_SOURCE_ROOT:    ../../tools/src
BUILTTOOL_MAINCLASS:      build.tools.makeclasslist.MakeClasslist
BUILDTOOL_JAR_FILE:       /opt/openjdk/build/../build-debug/btjars/makeclasslist.jar
=========================================================
make[5]: Leaving directory `/opt/openjdk/jdk/make/tools/makeclasslist'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/tools/strip_properties'
/bin/echo -e "Main-Class: build.tools.stripproperties.StripProperties" > /opt/openjdk/build/../build-debug/btclasses/stripproperties_manifest.mf
/usr/local/jdk1.6/bin/javac  -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii -source 6 -target 6 -XDignore.symbol.file=true -d /opt/openjdk/build/../build-debug/btclasses \
	    -sourcepath ../../tools/src ../../tools/src/build/tools/stripproperties/StripProperties.java
/usr/local/jdk1.6/bin/jar cfm /opt/openjdk/build/../build-debug/btjars/stripproperties.jar /opt/openjdk/build/../build-debug/btclasses/stripproperties_manifest.mf \
	    -C /opt/openjdk/build/../build-debug/btclasses build/tools/stripproperties \
	    -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m || rm -f /opt/openjdk/build/../build-debug/btjars/stripproperties.jar
=========================================================
BUILDTOOL:                stripproperties
PACKAGE:                  build.tools.stripproperties
BUILDTOOL_SOURCE_ROOT:    ../../tools/src
BUILTTOOL_MAINCLASS:      build.tools.stripproperties.StripProperties
BUILDTOOL_JAR_FILE:       /opt/openjdk/build/../build-debug/btjars/stripproperties.jar
=========================================================
make[5]: Leaving directory `/opt/openjdk/jdk/make/tools/strip_properties'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/tools/spp'
/bin/echo -e "Main-Class: build.tools.spp.Spp" > /opt/openjdk/build/../build-debug/btclasses/spp_manifest.mf
/usr/local/jdk1.6/bin/javac  -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii -source 6 -target 6 -XDignore.symbol.file=true -d /opt/openjdk/build/../build-debug/btclasses \
	    -sourcepath ../../tools/src ../../tools/src/build/tools/spp/Spp.java
/usr/local/jdk1.6/bin/jar cfm /opt/openjdk/build/../build-debug/btjars/spp.jar /opt/openjdk/build/../build-debug/btclasses/spp_manifest.mf \
	    -C /opt/openjdk/build/../build-debug/btclasses build/tools/spp \
	    -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m || rm -f /opt/openjdk/build/../build-debug/btjars/spp.jar
=========================================================
BUILDTOOL:                spp
PACKAGE:                  build.tools.spp
BUILDTOOL_SOURCE_ROOT:    ../../tools/src
BUILTTOOL_MAINCLASS:      build.tools.spp.Spp
BUILDTOOL_JAR_FILE:       /opt/openjdk/build/../build-debug/btjars/spp.jar
=========================================================
make[5]: Leaving directory `/opt/openjdk/jdk/make/tools/spp'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/tools/CharsetMapping'
/bin/echo -e "Main-Class: build.tools.charsetmapping.Main" > /opt/openjdk/build/../build-debug/btclasses/charsetmapping_manifest.mf
/usr/local/jdk1.6/bin/javac  -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii -source 6 -target 6 -XDignore.symbol.file=true -d /opt/openjdk/build/../build-debug/btclasses \
	    -sourcepath ../../tools/src ../../tools/src/build/tools/charsetmapping/Main.java
/usr/local/jdk1.6/bin/jar cfm /opt/openjdk/build/../build-debug/btjars/charsetmapping.jar /opt/openjdk/build/../build-debug/btclasses/charsetmapping_manifest.mf \
	    -C /opt/openjdk/build/../build-debug/btclasses build/tools/charsetmapping \
	    -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m || rm -f /opt/openjdk/build/../build-debug/btjars/charsetmapping.jar
=========================================================
BUILDTOOL:                charsetmapping
PACKAGE:                  build.tools.charsetmapping
BUILDTOOL_SOURCE_ROOT:    ../../tools/src
BUILTTOOL_MAINCLASS:      build.tools.charsetmapping.Main
BUILDTOOL_JAR_FILE:       /opt/openjdk/build/../build-debug/btjars/charsetmapping.jar
=========================================================
make[5]: Leaving directory `/opt/openjdk/jdk/make/tools/CharsetMapping'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/tools/generate_nimbus'
/bin/mkdir -p /opt/openjdk/build/../build-debug/btclasses/build/tools/generatenimbus/resources
rm -f /opt/openjdk/build/../build-debug/btclasses/build/tools/generatenimbus/resources/Defaults.template /opt/openjdk/build/../build-debug/btclasses/build/tools/generatenimbus/resources/PainterImpl.template /opt/openjdk/build/../build-debug/btclasses/build/tools/generatenimbus/resources/StateImpl.template
/bin/cp ../../../src/share/classes/javax/swing/plaf/nimbus/Defaults.template ../../../src/share/classes/javax/swing/plaf/nimbus/PainterImpl.template ../../../src/share/classes/javax/swing/plaf/nimbus/StateImpl.template /opt/openjdk/build/../build-debug/btclasses/build/tools/generatenimbus/resources
/bin/echo -e "Main-Class: build.tools.generatenimbus.Generator" > /opt/openjdk/build/../build-debug/btclasses/generatenimbus_manifest.mf
/usr/local/jdk1.6/bin/javac  -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii -source 6 -target 6 -XDignore.symbol.file=true -d /opt/openjdk/build/../build-debug/btclasses \
	    -sourcepath ../../tools/src ../../tools/src/build/tools/generatenimbus/Generator.java ../../tools/src/build/tools/generatenimbus/ObjectFactory.java ../../tools/src/build/tools/generatenimbus/Paint.java ../../tools/src/build/tools/generatenimbus/SynthModel.java ../../tools/src/build/tools/generatenimbus/UIDefault.java ../../tools/src/build/tools/generatenimbus/UIStyle.java
/usr/local/jdk1.6/bin/jar cfm /opt/openjdk/build/../build-debug/btjars/generatenimbus.jar /opt/openjdk/build/../build-debug/btclasses/generatenimbus_manifest.mf \
	    -C /opt/openjdk/build/../build-debug/btclasses build/tools/generatenimbus \
	    -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m || rm -f /opt/openjdk/build/../build-debug/btjars/generatenimbus.jar
=========================================================
BUILDTOOL:                generatenimbus
PACKAGE:                  build.tools.generatenimbus
BUILDTOOL_SOURCE_ROOT:    ../../tools/src
BUILTTOOL_MAINCLASS:      build.tools.generatenimbus.Generator
BUILDTOOL_JAR_FILE:       /opt/openjdk/build/../build-debug/btjars/generatenimbus.jar
=========================================================
make[5]: Leaving directory `/opt/openjdk/jdk/make/tools/generate_nimbus'
Done Processing SUBDIRS: addjsum buildmetaindex commentchecker compile_font_config compile_properties dir_diff dtdbuilder generate_break_iterator GenerateCharacter generatecurrencydata hasher_classes jarreorder jarsplit javazic jdwpgen makeclasslist strip_properties spp CharsetMapping generate_nimbus     
make[4]: Leaving directory `/opt/openjdk/jdk/make/tools'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[4]: Entering directory `/opt/openjdk/jdk/make/java'
Begin Processing SUBDIRS: version jvm redist verify fdlibm java sun_nio jli main zip security math util text net nio jar jexec awt applet beans  management npt java_crw_demo java_hprof_demo logging instrument invoke sql rmi 
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/java/version'
/bin/mkdir -p /opt/openjdk/build/../build-debug/gensrc/sun/misc
rm -f /opt/openjdk/build/../build-debug/gensrc/sun/misc/Version.java
rm -f /opt/openjdk/build/../build-debug/gensrc/sun/misc/Version.java.temp
/bin/sed -e 's/@@launcher_name@@/openjdk/g' \
	    -e 's/@@java_version@@/1.7.0-internal-debug/g' \
	    -e 's/@@java_runtime_version@@/1.7.0-internal-debug-root_2017_10_22_12_28-b00/g' \
	    -e 's/@@java_runtime_name@@/OpenJDK Runtime Environment/g' \
	../../../src/share/classes/sun/misc/Version.java.template > /opt/openjdk/build/../build-debug/gensrc/sun/misc/Version.java.temp
make[5]: Leaving directory `/opt/openjdk/jdk/make/java/version'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/java/jvm'
/bin/mkdir -p /opt/openjdk/build/../build-debug/include
rm -f /opt/openjdk/build/../build-debug/include/jni.h
/bin/cp ../../../src/share/javavm/export/jni.h /opt/openjdk/build/../build-debug/include/jni.h
/bin/mkdir -p /opt/openjdk/build/../build-debug/include/linux
rm -f /opt/openjdk/build/../build-debug/include/linux/jni_md.h
/bin/cp ../../../src/solaris/javavm/export/jni_md.h /opt/openjdk/build/../build-debug/include/linux/jni_md.h
/bin/mkdir -p /opt/openjdk/build/../build-debug/include
rm -f /opt/openjdk/build/../build-debug/include/jvmti.h
/bin/cp ../../../src/share/javavm/export/jvmti.h /opt/openjdk/build/../build-debug/include/jvmti.h
/bin/mkdir -p /opt/openjdk/build/../build-debug/include
rm -f /opt/openjdk/build/../build-debug/include/jvmticmlr.h
/bin/cp ../../../src/share/javavm/export/jvmticmlr.h /opt/openjdk/build/../build-debug/include/jvmticmlr.h
/bin/mkdir -p /opt/openjdk/build/../build-debug/include
rm -f /opt/openjdk/build/../build-debug/include/classfile_constants.h
/bin/cp ../../../src/share/javavm/export/classfile_constants.h /opt/openjdk/build/../build-debug/include/classfile_constants.h
/bin/mkdir -p /opt/openjdk/build/../build-debug/lib/amd64
rm -f /opt/openjdk/build/../build-debug/lib/amd64/jvm.cfg
/bin/cp ../../../src/solaris/bin/amd64/jvm.cfg /opt/openjdk/build/../build-debug/lib/amd64/jvm.cfg
make[5]: Leaving directory `/opt/openjdk/jdk/make/java/jvm'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/java/redist'
Begin Processing SUBDIRS:  fonts    sajdi
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[6]: Entering directory `/opt/openjdk/jdk/make/java/redist/fonts'
make[6]: Nothing to be done for `all'.
make[6]: Leaving directory `/opt/openjdk/jdk/make/java/redist/fonts'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[6]: Entering directory `/opt/openjdk/jdk/make/java/redist/sajdi'
ASSEMBLY_IMPORT: /opt/openjdk/build/../build-debug/lib/sa-jdi.jar
/bin/mkdir -p /opt/openjdk/build/../build-debug/lib
rm -f /opt/openjdk/build/../build-debug/lib/sa-jdi.jar
/bin/cp /opt/openjdk/build-debug/hotspot/import/lib/sa-jdi.jar /opt/openjdk/build/../build-debug/lib/sa-jdi.jar
ASSEMBLY_IMPORT: /opt/openjdk/build/../build-debug/lib/amd64/libsaproc.so
/bin/mkdir -p /opt/openjdk/build/../build-debug/lib/amd64
rm -f /opt/openjdk/build/../build-debug/lib/amd64/libsaproc.so
/bin/cp /opt/openjdk/build-debug/hotspot/import/jre/lib/amd64/libsaproc.so /opt/openjdk/build/../build-debug/lib/amd64/libsaproc.so
ASSEMBLY_IMPORT: /opt/openjdk/build/../build-debug/lib/amd64/libsaproc.diz
/bin/mkdir -p /opt/openjdk/build/../build-debug/lib/amd64
rm -f /opt/openjdk/build/../build-debug/lib/amd64/libsaproc.diz
/bin/cp /opt/openjdk/build-debug/hotspot/import/jre/lib/amd64/libsaproc.diz /opt/openjdk/build/../build-debug/lib/amd64/libsaproc.diz
make[6]: Leaving directory `/opt/openjdk/jdk/make/java/redist/sajdi'
Done Processing SUBDIRS:  fonts    sajdi
ASSEMBLY_IMPORT: /opt/openjdk/build/../build-debug/lib/amd64/server/libjvm.so
/bin/mkdir -p /opt/openjdk/build/../build-debug/lib/amd64/server
rm -f /opt/openjdk/build/../build-debug/lib/amd64/server/libjvm.so
/bin/cp /opt/openjdk/build-debug/hotspot/import/jre/lib/amd64/server/libjvm.so /opt/openjdk/build/../build-debug/lib/amd64/server/libjvm.so
Checking for mapfile use in: /opt/openjdk/build/../build-debug/lib/amd64/server/libjvm.so
Library loads for: /opt/openjdk/build/../build-debug/lib/amd64/server/libjvm.so
	linux-vdso.so.1 =>  (0x00002b7a633ad000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00002b7a6482f000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002b7a64b35000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002b7a64d3a000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002b7a64f58000)
	/lib64/ld-linux-x86-64.so.2 (0x000055919936c000)
RUNPATH for: /opt/openjdk/build/../build-debug/lib/amd64/server/libjvm.so
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [ld-linux-x86-64.so.2]
ASSEMBLY_IMPORT: /opt/openjdk/build/../build-debug/lib/amd64/server/Xusage.txt
/bin/mkdir -p /opt/openjdk/build/../build-debug/lib/amd64/server
rm -f /opt/openjdk/build/../build-debug/lib/amd64/server/Xusage.txt
/bin/cp /opt/openjdk/build-debug/hotspot/import/jre/lib/amd64/server/Xusage.txt /opt/openjdk/build/../build-debug/lib/amd64/server/Xusage.txt
ASSEMBLY_IMPORT: /opt/openjdk/build/../build-debug/lib/amd64/server/libjvm.diz
/bin/mkdir -p /opt/openjdk/build/../build-debug/lib/amd64/server
rm -f /opt/openjdk/build/../build-debug/lib/amd64/server/libjvm.diz
/bin/cp /opt/openjdk/build-debug/hotspot/import/jre/lib/amd64/server/libjvm.diz /opt/openjdk/build/../build-debug/lib/amd64/server/libjvm.diz
ASSEMBLY_IMPORT: /opt/openjdk/build/../build-debug/lib/amd64/libjsig.so
/bin/mkdir -p /opt/openjdk/build/../build-debug/lib/amd64
rm -f /opt/openjdk/build/../build-debug/lib/amd64/libjsig.so
/bin/cp /opt/openjdk/build-debug/hotspot/import/jre/lib/amd64/libjsig.so /opt/openjdk/build/../build-debug/lib/amd64/libjsig.so
Checking for mapfile use in: /opt/openjdk/build/../build-debug/lib/amd64/libjsig.so
INFO: File was not built with a mapfile: /opt/openjdk/build/../build-debug/lib/amd64/libjsig.so
Library loads for: /opt/openjdk/build/../build-debug/lib/amd64/libjsig.so
	linux-vdso.so.1 =>  (0x00007fff20b81000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002aac3decb000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002aac3e0cf000)
	/lib64/ld-linux-x86-64.so.2 (0x000055a6f9082000)
RUNPATH for: /opt/openjdk/build/../build-debug/lib/amd64/libjsig.so
 0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
ASSEMBLY_IMPORT: /opt/openjdk/build/../build-debug/lib/amd64/libjsig.diz
/bin/mkdir -p /opt/openjdk/build/../build-debug/lib/amd64
rm -f /opt/openjdk/build/../build-debug/lib/amd64/libjsig.diz
/bin/cp /opt/openjdk/build-debug/hotspot/import/jre/lib/amd64/libjsig.diz /opt/openjdk/build/../build-debug/lib/amd64/libjsig.diz
/bin/ln -s  ../libjsig.so /opt/openjdk/build/../build-debug/lib/amd64/server/libjsig.so
/bin/ln -s ../libjsig.debuginfo /opt/openjdk/build/../build-debug/lib/amd64/server/libjsig.debuginfo
( cd  /opt/openjdk/build/../build-debug/lib/amd64/server ; \
	 /usr/bin/zip -y libjsig.diz libjsig.debuginfo ; \
	 rm -f libjsig.debuginfo ; \
	)
  adding: libjsig.debuginfo (stored 0%)
/usr/local/jdk1.6/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx512m -Xms512m -XX:PermSize=32m -XX:MaxPermSize=160m -jar /opt/openjdk/build/../build-debug/btjars/addjsum.jar \
	    ../../tools/sharing/classlist.linux /opt/openjdk/build/../build-debug/lib/classlist.temp
/bin/mv /opt/openjdk/build/../build-debug/lib/classlist.temp /opt/openjdk/build/../build-debug/lib/classlist
if [ "" = "" ] ; then /bin/mkdir -p /opt/openjdk/build/../build-debug/lib ; ( cd  /NOT-SET/re/jdk/1.7.0/promoted/latest/binaries/linux-amd64 && /bin/cp lib/orb.idl lib/ir.idl /opt/openjdk/build/../build-debug/lib ) ; fi 
/bin/sh: 1: cd: can't cd to /NOT-SET/re/jdk/1.7.0/promoted/latest/binaries/linux-amd64
make[5]: *** [/opt/openjdk/build/../build-debug/tmp/java/components_imported] Error 2
make[5]: Leaving directory `/opt/openjdk/jdk/make/java/redist'
make[4]: *** [all] Error 1
make[4]: Leaving directory `/opt/openjdk/jdk/make/java'
make[3]: *** [all] Error 1
make[3]: Leaving directory `/opt/openjdk/jdk/make'
make[2]: *** [jdk-build] Error 2
make[2]: Leaving directory `/opt/openjdk'
make[1]: *** [generic_debug_build] Error 2
make[1]: Leaving directory `/opt/openjdk'
make: *** [build_debug_image] Error 2

 

观察make santity的结果:

root@ThinkPad-Edge-E431:/opt/openjdk# make sanity
( cd  ./jdk/make && \
	  make sanity HOTSPOT_IMPORT_CHECK=false JDK_TOPDIR=/opt/openjdk/jdk JDK_MAKE_SHARED_DIR=/opt/openjdk/jdk/make/common/shared EXTERNALSANITYCONTROL=true SOURCE_LANGUAGE_VERSION=7 TARGET_CLASS_VERSION=7 MILESTONE=internal BUILD_NUMBER=b00 JDK_BUILD_NUMBER=b00 FULL_VERSION=1.7.0-internal-root_2017_10_22_13_49-b00 PREVIOUS_JDK_VERSION=1.6.0 JDK_VERSION=1.7.0 JDK_MKTG_VERSION=7 JDK_MAJOR_VERSION=1 JDK_MINOR_VERSION=7 JDK_MICRO_VERSION=0 PREVIOUS_MAJOR_VERSION=1 PREVIOUS_MINOR_VERSION=6 PREVIOUS_MICRO_VERSION=0 ARCH_DATA_MODEL=64 COOKED_BUILD_NUMBER=0 ANT_HOME="/usr/local/ant1.9.4" ALT_OUTPUTDIR=/opt/openjdk/build/linux-amd64 ALT_LANGTOOLS_DIST=/opt/openjdk/build/linux-amd64/langtools/dist ALT_CORBA_DIST=/opt/openjdk/build/linux-amd64/corba/dist ALT_JAXP_DIST=/opt/openjdk/build/linux-amd64/jaxp/dist ALT_JAXWS_DIST=/opt/openjdk/build/linux-amd64/jaxws/dist ALT_HOTSPOT_IMPORT_PATH=/opt/openjdk/build/linux-amd64/hotspot/import BUILD_HOTSPOT=true ; )
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
/bin/sh: 1: [: Illegal number: /bin/sh:
/bin/sh: 1: [: Illegal number: /bin/sh:
/bin/sh: 1: [: Illegal number: 1:
/bin/sh: 1: [: Illegal number: 1:
/bin/sh: 1: [: Illegal number: /NO_BOOTDIR/bin/java:
/bin/sh: 1: [: Illegal number: /NO_BOOTDIR/bin/java:
/bin/sh: 1: [: Illegal number: Error:
/bin/sh: 1: [: Illegal number: Error:
/bin/sh: 1: [: Illegal number: JAVA_HOME
/bin/sh: 1: [: Illegal number: JAVA_HOME
/bin/sh: 1: [: Illegal number: is
/bin/sh: 1: [: Illegal number: is
make[1]: 正在进入目录 `/opt/openjdk/jdk/make'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[1]:正在离开目录 `/opt/openjdk/jdk/make'

Build Machine Information:
   build machine = ThinkPad-Edge-E431

Build Directory Structure:
   CWD = /opt/openjdk
   TOPDIR = .
   LANGTOOLS_TOPDIR = ./langtools
   JAXP_TOPDIR = ./jaxp
   JAXWS_TOPDIR = ./jaxws
   CORBA_TOPDIR = ./corba
   HOTSPOT_TOPDIR = ./hotspot
   JDK_TOPDIR = ./jdk

Build Directives:
   BUILD_LANGTOOLS = true 
   BUILD_JAXP = true 
   BUILD_JAXWS = true 
   BUILD_CORBA = true 
   BUILD_HOTSPOT = true 
   BUILD_JDK    = true 
   DEBUG_CLASSFILES =  
   DEBUG_BINARIES =  

Hotspot Settings: 
      HOTSPOT_BUILD_JOBS  =  
      HOTSPOT_OUTPUTDIR   = /opt/openjdk/build/linux-amd64/hotspot/outputdir 
      HOTSPOT_EXPORT_PATH = /opt/openjdk/build/linux-amd64/hotspot/import 
 



Bootstrap Settings:
  BOOTDIR = /NO_BOOTDIR
    ALT_BOOTDIR = 
  BOOT_VER = /bin/sh: 1: /NO_BOOTDIR/bin/java: not found [requires at least 1.6]
  OUTPUTDIR = /opt/openjdk/build/linux-amd64
    ALT_OUTPUTDIR = /opt/openjdk/build/linux-amd64
  ABS_OUTPUTDIR = /opt/openjdk/build/linux-amd64
 
Build Tool Settings:
  SLASH_JAVA = /NOT-SET
    ALT_SLASH_JAVA = 
  VARIANT = OPT
  JDK_DEVTOOLS_DIR = /NOT-SET/devtools
    ALT_JDK_DEVTOOLS_DIR = 
  ANT_HOME = /usr/local/ant1.9.4
  UNIXCOMMAND_PATH = /bin/
    ALT_UNIXCOMMAND_PATH = 
  COMPILER_PATH = /usr/bin/
    ALT_COMPILER_PATH = 
  DEVTOOLS_PATH = /usr/bin/
    ALT_DEVTOOLS_PATH = 
  UNIXCCS_PATH = /usr/ccs/bin/
    ALT_UNIXCCS_PATH = 
  USRBIN_PATH = /usr/bin/
    ALT_USRBIN_PATH = 
  COMPILER_NAME = GCC4
  COMPILER_VERSION = GCC4
  CC_VER = 4.8 [requires at least 4.3.0]
  ZIP_VER = 3.0 [requires at least 2.2]
  UNZIP_VER = 6.00 [requires at least 5.12]
  ANT_VER = Error: JAVA_HOME is not defined correctly.   We cannot execute /NO_BOOTDIR/bin/java [requires at least 1.7.1]
  TEMPDIR = /opt/openjdk/build/linux-amd64/tmp
 
Build Directives:
  OPENJDK = true
  USE_HOTSPOT_INTERPRETER_MODE = 
  PEDANTIC = 
  DEV_ONLY = 
  NO_DOCS = 
  NO_IMAGES = 
  TOOLS_ONLY = 
  INSANE = 
  COMPILE_APPROACH = parallel
  PARALLEL_COMPILE_JOBS = 2
    ALT_PARALLEL_COMPILE_JOBS = 
  FASTDEBUG = 
  COMPILER_WARNINGS_FATAL = false
  COMPILER_WARNING_LEVEL = 
  SHOW_ALL_WARNINGS = 
  INCREMENTAL_BUILD = false
  CC_HIGHEST_OPT = 
  CC_HIGHER_OPT = 
  CC_LOWER_OPT = 
  CXXFLAGS =  -O2 -fPIC -DCC_NOEX -W -Wall  -Wno-unused -Wno-parentheses -fno-omit-frame-pointer -D_LITTLE_ENDIAN  
  CFLAGS =  -O2   -fno-strict-aliasing -fPIC -W -Wall  -Wno-unused -Wno-parentheses -pipe -fno-omit-frame-pointer -D_LITTLE_ENDIAN  
  BOOT_JAVA_CMD = /NO_BOOTDIR/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx512m -Xms512m -XX:PermSize=32m -XX:MaxPermSize=160m
  BOOT_JAVAC_CMD = /NO_BOOTDIR/bin/javac  -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii -source 6 -target 6 -XDignore.symbol.file=true
  BOOT_JAR_CMD = /NO_BOOTDIR/bin/jar
  BOOT_JARSIGNER_CMD = /NO_BOOTDIR/bin/jarsigner
  JAVAC_CMD = /NOT-SET/re/jdk/1.7.0/promoted/latest/binaries/linux-amd64/bin/javac  -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m  -source 7 -target 7 -encoding ascii -Xbootclasspath:/opt/openjdk/build/linux-amd64/classes 
  JAVAH_CMD = /NOT-SET/re/jdk/1.7.0/promoted/latest/binaries/linux-amd64/bin/javah -bootclasspath /opt/openjdk/build/linux-amd64/classes
  JAVADOC_CMD = /NOT-SET/re/jdk/1.7.0/promoted/latest/binaries/linux-amd64/bin/javadoc -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -bootclasspath /opt/openjdk/build/linux-amd64/classes
 
Build Platform Settings:
  USER = root
  PLATFORM = linux
  ARCH = amd64
  LIBARCH = amd64
  ARCH_FAMILY = amd64
  ARCH_DATA_MODEL = 64
  ARCHPROP = amd64
  ALSA_VERSION = 1.0.27.2
  OS_VERSION = 4.4.0-31-generic [requires at least 2.6]
  OS_VARIANT_NAME = Ubuntu
  OS_VARIANT_VERSION = 14.04
  MB_OF_MEMORY = 15618
 
GNU Make Settings:
  MAKE = make
  MAKE_VER = 3.81 [requires at least 3.81]
  MAKECMDGOALS = sanity
  MAKEFLAGS = w
  SHELL = /bin/sh
 
Target Build Versions:
  JDK_VERSION = 1.7.0
  MILESTONE = internal
  RELEASE = 1.7.0-internal
  FULL_VERSION = 1.7.0-internal-root_2017_10_22_13_49-b00
  BUILD_NUMBER = b00
 
External File/Binary Locations:
  USRJDKINSTANCES_PATH = /opt/java
  BUILD_JDK_IMPORT_PATH = /NOT-SET/re/jdk/1.7.0/promoted/latest/binaries
    ALT_BUILD_JDK_IMPORT_PATH = 
  JDK_IMPORT_PATH = /NOT-SET/re/jdk/1.7.0/promoted/latest/binaries/linux-amd64
    ALT_JDK_IMPORT_PATH = 
  LANGTOOLS_DIST = 
    ALT_LANGTOOLS_DIST = /opt/openjdk/build/linux-amd64/langtools/dist
  CORBA_DIST = 
    ALT_CORBA_DIST = /opt/openjdk/build/linux-amd64/corba/dist
  JAXP_DIST = 
    ALT_JAXP_DIST = /opt/openjdk/build/linux-amd64/jaxp/dist
  JAXWS_DIST = 
    ALT_JAXWS_DIST = /opt/openjdk/build/linux-amd64/jaxws/dist
  HOTSPOT_DOCS_IMPORT_PATH = /NO_DOCS_DIR
    ALT_HOTSPOT_DOCS_IMPORT_PATH = 
  HOTSPOT_IMPORT_PATH = /opt/openjdk/build/linux-amd64/hotspot/import
    ALT_HOTSPOT_IMPORT_PATH = /opt/openjdk/build/linux-amd64/hotspot/import
  HOTSPOT_SERVER_PATH = /opt/openjdk/build/linux-amd64/hotspot/import/jre/lib/amd64/server
    ALT_HOTSPOT_SERVER_PATH = 
  CACERTS_FILE = ./../src/share/lib/security/cacerts
    ALT_CACERTS_FILE = 
  CUPS_HEADERS_PATH = /usr/include
    ALT_CUPS_HEADERS_PATH = 
 
OpenJDK-specific settings:
  FREETYPE_HEADERS_PATH = /usr/include
    ALT_FREETYPE_HEADERS_PATH = 
  FREETYPE_LIB_PATH = /usr/lib
    ALT_FREETYPE_LIB_PATH = 
 
Previous JDK Settings:
  PREVIOUS_RELEASE_PATH = 
    ALT_PREVIOUS_RELEASE_PATH = 
  PREVIOUS_JDK_VERSION = 1.6.0
    ALT_PREVIOUS_JDK_VERSION = 
  PREVIOUS_JDK_FILE = 
    ALT_PREVIOUS_JDK_FILE = 
  PREVIOUS_JRE_FILE = 
    ALT_PREVIOUS_JRE_FILE = 
  PREVIOUS_RELEASE_IMAGE = 
    ALT_PREVIOUS_RELEASE_IMAGE = 


WARNING: LANG has been set to zh_CN.UTF-8, this can cause build failures. 
         Try setting LANG to 'C'. 
 
Sanity check passed.

 发现有些环境变量的值中存在NOT-SET关键词

 

 对比这位兄弟写的build.sh

https://ayonel.me/index.php/2017/01/05/compile_openjdk/这位兄弟写的还不错

发现,自己这里少配了ALT_JDK_IMPORT_PATH这个环境变量,配上后,果然上述错误就没有了

 

但是又出现了一个新的错误:

省略。。。
j64_g/TimeZone_md.o    /opt/openjdk/build/../build-debug/tmp/java/java.lang/java/obj64_g/FileSystemPreferences.o   -L/opt/openjdk/build/../build-debug/lib/amd64/server -ljvm -lverify    -ldl -L/opt/openjdk/build/../build-debug/tmp/java/java.lang/java/obj64_g/../../../fdlibm/obj64_g -lfdlibm.amd64   -lc
Checking for mapfile use in: /opt/openjdk/build/../build-debug/lib/amd64/libjava.so
INFO: File was not built with a mapfile: /opt/openjdk/build/../build-debug/lib/amd64/libjava.so
Library loads for: /opt/openjdk/build/../build-debug/lib/amd64/libjava.so
	linux-vdso.so.1 =>  (0x00007ffe65aef000)
	libjvm.so => not found
	libverify.so => /opt/openjdk/build/../build-debug/lib/amd64/libverify.so (0x00002b39c5ce7000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002b39c5efc000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002b39c6100000)
	/lib64/ld-linux-x86-64.so.2 (0x000055f8102ad000)
	libjvm.so => not found
RUNPATH for: /opt/openjdk/build/../build-debug/lib/amd64/libjava.so
 0x0000000000000001 (NEEDED)             Shared library: [libjvm.so]
 0x0000000000000001 (NEEDED)             Shared library: [libverify.so]
 0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN]
/bin/mkdir -p /opt/openjdk/build/../build-debug/lib
rm -f /opt/openjdk/build/../build-debug/lib/content-types.properties
/bin/cp ../../../src/solaris/lib/content-types.properties /opt/openjdk/build/../build-debug/lib/content-types.properties
/bin/mkdir -p /opt/openjdk/build/../build-debug/lib
rm -f /opt/openjdk/build/../build-debug/lib/calendars.properties
/bin/cp ../../../src/share/lib/calendars.properties /opt/openjdk/build/../build-debug/lib/calendars.properties
rm -f /opt/openjdk/build/../build-debug/lib/currency.data
/usr/local/jdk1.6/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx512m -Xms512m -XX:PermSize=32m -XX:MaxPermSize=160m -jar /opt/openjdk/build/../build-debug/btjars/generatecurrencydata.jar -o /opt/openjdk/build/../build-debug/lib/currency.data.temp \
		< ../../../src/share/classes/java/util/CurrencyData.properties
Error: time is more than 10 years from present: 1136059200000
java.lang.RuntimeException: time is more than 10 years from present: 1136059200000
	at build.tools.generatecurrencydata.GenerateCurrencyData.makeSpecialCaseEntry(GenerateCurrencyData.java:285)
	at build.tools.generatecurrencydata.GenerateCurrencyData.buildMainAndSpecialCaseTables(GenerateCurrencyData.java:225)
	at build.tools.generatecurrencydata.GenerateCurrencyData.main(GenerateCurrencyData.java:154)
make[5]: *** [/opt/openjdk/build/../build-debug/lib/currency.data] Error 1
make[5]: Leaving directory `/opt/openjdk/jdk/make/java/java'
make[4]: *** [all] Error 1
make[4]: Leaving directory `/opt/openjdk/jdk/make/java'
make[3]: *** [all] Error 1
make[3]: Leaving directory `/opt/openjdk/jdk/make'
make[2]: *** [jdk-build] Error 2
make[2]: Leaving directory `/opt/openjdk'
make[1]: *** [generic_debug_build] Error 2
make[1]: Leaving directory `/opt/openjdk'
make: *** [build_debug_image] Error 2

 看到关键语句:

src/share/classes/java/util/CurrencyData.properties
Error: time is more than 10 years from present: 1136059200000

解决办法:

修改CurrencyData.properties(路径:jdk/src/share/classes/java/util/CurrencyData.properties)

修改108行
AZ=AZM;2009-12-31-20-00-00;AZN
修改381行
MZ=MZM;2009-06-30-22-00-00;MZN
修改443行
RO=ROL;2009-06-30-21-00-00;RON
修改535行
TR=TRL;2009-12-31-22-00-00;TRY
修改561行
VE=VEB;2009-01-01-04-00-00;VEF

 时间的问题解决了,重新执行./build.sh又发现了一个错误

INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[7]: Entering directory `/opt/openjdk/jdk/make/launchers'
=========================================================
LAUNCHER:        policytool
MAIN_CLASS:      sun.security.tools.policytool.PolicyTool
ALL_ARGS:        -J-ms8m  sun.security.tools.policytool.PolicyTool 
=========================================================
/usr/bin/gcc  -g   -fno-strict-aliasing -fPIC -W -Wall  -Wno-unused -Wno-parentheses -pipe -fno-omit-frame-pointer -D_LITTLE_ENDIAN   -DDEBUG -DLOGGING  -DARCH='"amd64"' -Damd64 -DLINUX -DRELEASE='"1.7.0-internal-debug"' -DFULL_VERSION='"1.7.0-internal-debug-root_2017_10_22_14_06-b00"' -DJDK_MAJOR_VERSION='"1"' -DJDK_MINOR_VERSION='"7"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -D_LP64=1 -I. -I/opt/openjdk/build/../build-debug/tmp/sun/launcher/policytool/CClassHeaders -I../../src/solaris/javavm/export -I../../src/share/javavm/export -I../../src/share/bin -I../../src/solaris/bin -I../../src/share/native/java/util/zip/zlib-1.1.3 -DMAIN_CLASS='"sun.security.tools.policytool.PolicyTool"' -DJAVA_ARGS='{ "-J-ms8m", "sun.security.tools.policytool.PolicyTool",  }' -DLAUNCHER_NAME='"openjdk"' -DPROGNAME='"policytool"'    -c -o /opt/openjdk/build/../build-debug/tmp/sun/launcher/policytool/obj64_g/main.o \
		-DRELEASE='"1.7.0-internal-debug"' -DFULL_VERSION='"1.7.0-internal-debug-root_2017_10_22_14_06-b00"' -DJDK_MAJOR_VERSION='"1"' -DJDK_MINOR_VERSION='"7"' ../../src/share/bin/main.c
Rebuilding /opt/openjdk/build/../build-debug/bin/policytool because of /opt/openjdk/build/../build-debug/tmp/sun/launcher/policytool/obj64_g/main.o
/usr/bin/gcc -o /opt/openjdk/build/../build-debug/bin/policytool -Xlinker -version-script=../java/main/java/mapfile-amd64  -Wl,--hash-style=both -Xlinker -z -Xlinker defs -L/opt/openjdk/build/../build-debug/lib/amd64 -Wl,-soname=lib.so  -L /opt/openjdk/build/../build-debug/lib/amd64/jli  -Wl,--allow-shlib-undefined -Wl,-rpath -Wl,\$ORIGIN/../lib/amd64/jli \
	/opt/openjdk/build/../build-debug/tmp/sun/launcher/policytool/obj64_g/main.o -lpthread  -L/usr/X11R6//lib64 -lX11 -ljli  -ldl -lc
/usr/bin/ld: cannot find -lX11
collect2: error: ld returned 1 exit status
make[7]: *** [/opt/openjdk/build/../build-debug/bin/policytool] Error 1
make[7]: Leaving directory `/opt/openjdk/jdk/make/launchers'
make[6]: *** [build] Error 2
make[6]: Leaving directory `/opt/openjdk/jdk/make/sun/security/tools'
make[5]: *** [all] Error 1
make[5]: Leaving directory `/opt/openjdk/jdk/make/sun/security'
make[4]: *** [all] Error 1
make[4]: Leaving directory `/opt/openjdk/jdk/make/sun'
make[3]: *** [all] Error 1
make[3]: Leaving directory `/opt/openjdk/jdk/make'
make[2]: *** [jdk-build] Error 2
make[2]: Leaving directory `/opt/openjdk'
make[1]: *** [generic_debug_build] Error 2
make[1]: Leaving directory `/opt/openjdk'
make: *** [build_debug_image] Error 2

 

然后按照缺啥补啥的策略,安装以下库

apt-get install libX11-dev

 

继续报错:

/src/solaris/native/sun/awt/../java2d -I../../../src/share/native/sun/awt/../java2d/loops -I../../../src/share/native/sun/awt/../java2d/pipe -I../../../src/share/native/sun/awt/../java2d/opengl -I../../../src/solaris/native/sun/awt/../java2d/opengl -I../../../src/solaris/native/sun/awt/../java2d/x11 -I../../../src/share/native/sun/awt/../dc/doe -I../../../src/share/native/sun/awt/../dc/path -I../../../src/solaris/native/sun/awt/../jdga -I../../../src/solaris/native/sun/awt   -c -o /opt/openjdk/build/../build-debug/tmp/sun/sun.awt/awt/obj64_g/Region.o  ../../../src/share/native/sun/awt/../java2d/pipe/Region.c
/usr/bin/gcc  -g   -fno-strict-aliasing -fPIC -W -Wall  -Wno-unused -Wno-parentheses -pipe -fno-omit-frame-pointer -D_LITTLE_ENDIAN -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES -DMLIB_NO_LIBSUNMATH  -DDEBUG -DLOGGING  -DARCH='"amd64"' -Damd64 -DLINUX -DRELEASE='"1.7.0-internal-debug"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -D_LP64=1 -I. -I/opt/openjdk/build/../build-debug/tmp/sun/sun.awt/awt/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/sun/awt -I../../../src/solaris/native/sun/awt   -I/usr/X11R6//include -I/usr/X11R6//include/X11/extensions -I../../../src/solaris/native/sun/awt/font  -I../../../src/share/native/sun/awt/debug -I../../../src/share/native/sun/awt/../font -I../../../src/solaris/native/sun/awt/../font -I../../../src/share/native/sun/awt/image -I../../../src/share/native/sun/awt/image/cvutils -I../../../src/share/native/sun/awt/shell -I../../../src/share/native/sun/awt/medialib -I../../../src/solaris/native/sun/awt/medialib -I../../../src/share/native/sun/awt/../java2d -I../../../src/solaris/native/sun/awt/../java2d -I../../../src/share/native/sun/awt/../java2d/loops -I../../../src/share/native/sun/awt/../java2d/pipe -I../../../src/share/native/sun/awt/../java2d/opengl -I../../../src/solaris/native/sun/awt/../java2d/opengl -I../../../src/solaris/native/sun/awt/../java2d/x11 -I../../../src/share/native/sun/awt/../dc/doe -I../../../src/share/native/sun/awt/../dc/path -I../../../src/solaris/native/sun/awt/../jdga -I../../../src/solaris/native/sun/awt   -c -o /opt/openjdk/build/../build-debug/tmp/sun/sun.awt/awt/obj64_g/BufImgSurfaceData.o  ../../../src/share/native/sun/awt/image/BufImgSurfaceData.c
In file included from ../../../src/solaris/native/sun/awt/color.h:28:0,
                 from ../../../src/solaris/native/sun/awt/img_util_md.h:26,
                 from ../../../src/share/native/sun/awt/image/BufImgSurfaceData.c:31:
../../../src/solaris/native/sun/awt/awt.h:38:27: fatal error: X11/Intrinsic.h: No such file or directory
 #include <X11/Intrinsic.h>
                           ^
compilation terminated.
/usr/bin/gcc  -g   -fno-strict-aliasing -fPIC -W -Wall  -Wno-unused -Wno-parentheses -pipe -fno-omit-frame-pointer -D_LITTLE_ENDIAN -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES -DMLIB_NO_LIBSUNMATH  -DDEBUG -DLOGGING  -DARCH='"amd64"' -Damd64 -DLINUX -DRELEASE='"1.7.0-internal-debug"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -D_LP64=1 -I. -I/opt/openjdk/build/../build-debug/tmp/sun/sun.awt/awt/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/sun/awt -I../../../src/solaris/native/sun/awt   -I/usr/X11R6//include -I/usr/X11R6//include/X11/extensions -I../../../src/solaris/native/sun/awt/font  -I../../../src/share/native/sun/awt/debug -I../../../src/share/native/sun/awt/../font -I../../../src/solaris/native/sun/awt/../font -I../../../src/share/native/sun/awt/image -I../../../src/share/native/sun/awt/image/cvutils -I../../../src/share/native/sun/awt/shell -I../../../src/share/native/sun/awt/medialib -I../../../src/solaris/native/sun/awt/medialib -I../../../src/share/native/sun/awt/../java2d -I../../../src/solaris/native/sun/awt/../java2d -I../../../src/share/native/sun/awt/../java2d/loops -I../../../src/share/native/sun/awt/../java2d/pipe -I../../../src/share/native/sun/awt/../java2d/opengl -I../../../src/solaris/native/sun/awt/../java2d/opengl -I../../../src/solaris/native/sun/awt/../java2d/x11 -I../../../src/share/native/sun/awt/../dc/doe -I../../../src/share/native/sun/awt/../dc/path -I../../../src/solaris/native/sun/awt/../jdga -I../../../src/solaris/native/sun/awt   -c -o /opt/openjdk/build/../build-debug/tmp/sun/sun.awt/awt/obj64_g/Disposer.o  ../../../src/share/native/sun/awt/../java2d/Disposer.c
/usr/bin/gcc  -g   -fno-strict-aliasing -fPIC -W -Wall  -Wno-unused -Wno-parentheses -pipe -fno-omit-frame-pointer -D_LITTLE_ENDIAN -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES -DMLIB_NO_LIBSUNMATH  -DDEBUG -DLOGGING  -DARCH='"amd64"' -Damd64 -DLINUX -DRELEASE='"1.7.0-internal-debug"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -D_LP64=1 -I. -I/opt/openjdk/build/../build-debug/tmp/sun/sun.awt/awt/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/sun/awt -I../../../src/solaris/native/sun/awt   -I/usr/X11R6//include -I/usr/X11R6//include/X11/extensions -I../../../src/solaris/native/sun/awt/font  -I../../../src/share/native/sun/awt/debug -I../../../src/share/native/sun/awt/../font -I../../../src/solaris/native/sun/awt/../font -I../../../src/share/native/sun/awt/image -I../../../src/share/native/sun/awt/image/cvutils -I../../../src/share/native/sun/awt/shell -I../../../src/share/native/sun/awt/medialib -I../../../src/solaris/native/sun/awt/medialib -I../../../src/share/native/sun/awt/../java2d -I../../../src/solaris/native/sun/awt/../java2d -I../../../src/share/native/sun/awt/../java2d/loops -I../../../src/share/native/sun/awt/../java2d/pipe -I../../../src/share/native/sun/awt/../java2d/opengl -I../../../src/solaris/native/sun/awt/../java2d/opengl -I../../../src/solaris/native/sun/awt/../java2d/x11 -I../../../src/share/native/sun/awt/../dc/doe -I../../../src/share/native/sun/awt/../dc/path -I../../../src/solaris/native/sun/awt/../jdga -I../../../src/solaris/native/sun/awt   -c -o /opt/openjdk/build/../build-debug/tmp/sun/sun.awt/awt/obj64_g/Trace.o  ../../../src/share/native/sun/awt/../java2d/Trace.c
/usr/bin/gcc  -g   -fno-strict-aliasing -fPIC -W -Wall  -Wno-unused -Wno-parentheses -pipe -fno-omit-frame-pointer -D_LITTLE_ENDIAN -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES -DMLIB_NO_LIBSUNMATH  -DDEBUG -DLOGGING  -DARCH='"amd64"' -Damd64 -DLINUX -DRELEASE='"1.7.0-internal-debug"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -D_LP64=1 -I. -I/opt/openjdk/build/../build-debug/tmp/sun/sun.awt/awt/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/sun/awt -I../../../src/solaris/native/sun/awt   -I/usr/X11R6//include -I/usr/X11R6//include/X11/extensions -I../../../src/solaris/native/sun/awt/font  -I../../../src/share/native/sun/awt/debug -I../../../src/share/native/sun/awt/../font -I../../../src/solaris/native/sun/awt/../font -I../../../src/share/native/sun/awt/image -I../../../src/share/native/sun/awt/image/cvutils -I../../../src/share/native/sun/awt/shell -I../../../src/share/native/sun/awt/medialib -I../../../src/solaris/native/sun/awt/medialib -I../../../src/share/native/sun/awt/../java2d -I../../../src/solaris/native/sun/awt/../java2d -I../../../src/share/native/sun/awt/../java2d/loops -I../../../src/share/native/sun/awt/../java2d/pipe -I../../../src/share/native/sun/awt/../java2d/opengl -I../../../src/solaris/native/sun/awt/../java2d/opengl -I../../../src/solaris/native/sun/awt/../java2d/x11 -I../../../src/share/native/sun/awt/../dc/doe -I../../../src/share/native/sun/awt/../dc/path -I../../../src/solaris/native/sun/awt/../jdga -I../../../src/solaris/native/sun/awt   -c -o /opt/openjdk/build/../build-debug/tmp/sun/sun.awt/awt/obj64_g/GraphicsPrimitiveMgr.o  ../../../src/share/native/sun/awt/../java2d/loops/GraphicsPrimitiveMgr.c
make[6]: *** [/opt/openjdk/build/../build-debug/tmp/sun/sun.awt/awt/obj64_g/BufImgSurfaceData.o] Error 1
make[6]: *** Waiting for unfinished jobs....
make[6]: Leaving directory `/opt/openjdk/jdk/make/sun/awt'
make[5]: *** [library_parallel_compile] Error 2
make[5]: Leaving directory `/opt/openjdk/jdk/make/sun/awt'
make[4]: *** [all] Error 1
make[4]: Leaving directory `/opt/openjdk/jdk/make/sun'
make[3]: *** [all] Error 1
make[3]: Leaving directory `/opt/openjdk/jdk/make'
make[2]: *** [jdk-build] Error 2
make[2]: Leaving directory `/opt/openjdk'
make[1]: *** [generic_debug_build] Error 2
make[1]: Leaving directory `/opt/openjdk'
make: *** [build_debug_image] Error 2
root@ThinkPad-Edge-E431:/opt/openjdk# sudo apt-get install libxt-dev

 根据http://blog.caoxudong.info/blog/2014/01/21/build_openjdk_in_ubuntu文章所说,需要

 sudo apt-get install libxt-dev

 后续还发现一些头文件缺失,按照http://blog.caoxudong.info/blog/2014/01/21/build_openjdk_in_ubuntu继续安装,我这里就直接把文章引过来了

 

 

 以上坑填完了,编译了差不多15分钟,又来一个报错,╮(╯▽╰)╭,这回感觉是翻遍整个网络都找不到答案了

省略。。。
# Running javac:
/usr/local/jdk1.6/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx512m -Xms512m -XX:PermSize=32m -XX:MaxPermSize=160m -Xbootclasspath/p:/opt/openjdk/build/langtools/dist/bootstrap/lib/javac.jar -jar /opt/openjdk/build/langtools/dist/bootstrap/lib/javac.jar -g -source 7 -target 7 -encoding ascii -Xbootclasspath:/opt/openjdk/build/classes -sourcepath /opt/openjdk/build/gensrc:../../../../../src/solaris/classes:../../../../../src/share/classes -d /opt/openjdk/build/classes @/opt/openjdk/build/tmp/sun/com.sun.net.httpserver/.classes.list.filtered
make[5]: Leaving directory `/opt/openjdk/jdk/make/com/sun/net/httpserver'
INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
INFO: STRIP_POLICY=min_strip
INFO: ZIP_DEBUGINFO_FILES=1
make[5]: Entering directory `/opt/openjdk/jdk/make/com/sun/jmx'
/bin/mkdir -p /opt/openjdk/build/classes/javax/management/remote/rmi
rm -f /opt/openjdk/build/classes/javax/management/remote/rmi/RMIConnectionImpl_Stub.class
/opt/openjdk/build/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx512m -Xms512m -XX:PermSize=32m -XX:MaxPermSize=160m -cp /opt/openjdk/build/classes sun.rmi.rmic.Main -classpath "/opt/openjdk/build/classes"    \
                -d /opt/openjdk/build/classes              \
                -v1.2                           \
                -keepgenerated                  \
                javax.management.remote.rmi.RMIConnectionImpl
/bin/mkdir -p /opt/openjdk/build/gensrc/javax/management/remote/rmi
/bin/cp       /opt/openjdk/build/classes/javax/management/remote/rmi/RMIConnectionImpl_Stub.java                                     \
                    /opt/openjdk/build/gensrc/javax/management/remote/rmi
/opt/openjdk/build/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx512m -Xms512m -XX:PermSize=32m -XX:MaxPermSize=160m -cp /opt/openjdk/build/classes sun.rmi.rmic.Main -classpath "/opt/openjdk/build/classes"    \
                -d /opt/openjdk/build/classes              \
                -iiop -v1.2                     \
                -emitPermissionCheck            \
                javax.management.remote.rmi.RMIConnectionImpl
-emitPermissionCheck is an invalid option or argument.
Usage: rmic <options> <class names>

where <options> includes:
  -keep          Do not delete intermediate generated source files
  -keepgenerated (same as "-keep")
  -v1.1          Create stubs/skeletons for 1.1 stub protocol version
  -vcompat       Create stubs/skeletons compatible with both
                           1.1 and 1.2 stub protocol versions
  -v1.2          (default) Create stubs for 1.2 stub protocol version only
  -iiop          Create stubs for IIOP. When present, <options> also includes:

                   -always           Create stubs even when they appear current
                   -alwaysgenerate   (same as "-always")
                   -nolocalstubs     Do not create stubs optimized for same process

  -idl           Create IDL. When present, <options> also includes:

                   -noValueMethods   Do not generate methods for valuetypes 
                   -always           Create IDL even when it appears current
                   -alwaysgenerate   (same as "-always")

  -g             Generate debugging info
  -nowarn        Generate no warnings
  -nowrite       Do not write compiled classes to the file system
  -verbose       Output messages about what the compiler is doing
  -classpath <path>      Specify where to find input class files
  -bootclasspath <path>  Override location of bootstrap class files
  -extdirs <path>        Override location of installed extensions
  -d <directory>         Specify where to place generated class files
  -J<runtime flag>       Pass argument to the java interpreter

make[5]: *** [/opt/openjdk/build/classes/javax/management/remote/rmi/RMIConnectionImpl_Stub.class] Error 1
make[5]: Leaving directory `/opt/openjdk/jdk/make/com/sun/jmx'
make[4]: *** [all] Error 1
make[4]: Leaving directory `/opt/openjdk/jdk/make/com/sun'
make[3]: *** [all] Error 1
make[3]: Leaving directory `/opt/openjdk/jdk/make/com'
make[2]: *** [all] Error 1
make[2]: Leaving directory `/opt/openjdk/jdk/make'
make[1]: *** [jdk-build] Error 2
make[1]: Leaving directory `/opt/openjdk'
make: *** [build_product_image] Error 2

 

 一直卡在这个问题上,也不是办法,换了个源码版本

wget http://download.java.net/openjdk/jdk7u40/promoted/b43/openjdk-7u40-fcs-src-b43-26_aug_2013.zip

,再编译下,还是用的那个build.sh脚步,编译成功了,有时间给社区去提下这个问题

RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/jstat
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
Checking for mapfile use in: /opt/openjdk/build/j2sdk-image/bin/javap
Library loads for: /opt/openjdk/build/j2sdk-image/bin/javap
	linux-vdso.so.1 =>  (0x00007ffcc9df9000)
	libjli.so => /opt/openjdk/build/j2sdk-image/bin/../jre/lib/amd64/jli/libjli.so (0x00002ab6e9613000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002ab6e9847000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002ab6e9c0c000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002ab6e9e10000)
	/lib64/ld-linux-x86-64.so.2 (0x000055e4bc09a000)
RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/javap
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
Checking for mapfile use in: /opt/openjdk/build/j2sdk-image/bin/jhat
Library loads for: /opt/openjdk/build/j2sdk-image/bin/jhat
	linux-vdso.so.1 =>  (0x00007ffe017d5000)
	libjli.so => /opt/openjdk/build/j2sdk-image/bin/../jre/lib/amd64/jli/libjli.so (0x00002b30c4438000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002b30c466c000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002b30c4a31000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002b30c4c35000)
	/lib64/ld-linux-x86-64.so.2 (0x00005563b6ba1000)
RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/jhat
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
Checking for mapfile use in: /opt/openjdk/build/j2sdk-image/bin/apt
Library loads for: /opt/openjdk/build/j2sdk-image/bin/apt
	linux-vdso.so.1 =>  (0x00007fffe1d34000)
	libjli.so => /opt/openjdk/build/j2sdk-image/bin/../jre/lib/amd64/jli/libjli.so (0x00002b905cf25000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002b905d159000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002b905d51e000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002b905d722000)
	/lib64/ld-linux-x86-64.so.2 (0x000056405d275000)
RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/apt
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
Checking for mapfile use in: /opt/openjdk/build/j2sdk-image/bin/wsimport
Library loads for: /opt/openjdk/build/j2sdk-image/bin/wsimport
	linux-vdso.so.1 =>  (0x00007ffec19ea000)
	libjli.so => /opt/openjdk/build/j2sdk-image/bin/../jre/lib/amd64/jli/libjli.so (0x00002b277340b000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002b277363f000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002b2773a04000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002b2773c08000)
	/lib64/ld-linux-x86-64.so.2 (0x0000559c16d3f000)
RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/wsimport
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
Checking for mapfile use in: /opt/openjdk/build/j2sdk-image/bin/rmid
Library loads for: /opt/openjdk/build/j2sdk-image/bin/rmid
	linux-vdso.so.1 =>  (0x00007ffcabd98000)
	libjli.so => /opt/openjdk/build/j2sdk-image/bin/../jre/lib/amd64/jli/libjli.so (0x00002b3e22052000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002b3e22286000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002b3e2264b000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002b3e2284f000)
	/lib64/ld-linux-x86-64.so.2 (0x0000560f9eeff000)
RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/rmid
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
Checking for mapfile use in: /opt/openjdk/build/j2sdk-image/bin/orbd
Library loads for: /opt/openjdk/build/j2sdk-image/bin/orbd
	linux-vdso.so.1 =>  (0x00007ffd241fa000)
	libjli.so => /opt/openjdk/build/j2sdk-image/bin/../jre/lib/amd64/jli/libjli.so (0x00002b72883a3000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002b72885d7000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002b728899c000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002b7288ba0000)
	/lib64/ld-linux-x86-64.so.2 (0x0000564ad1272000)
RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/orbd
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
Checking for mapfile use in: /opt/openjdk/build/j2sdk-image/bin/jar
Library loads for: /opt/openjdk/build/j2sdk-image/bin/jar
	linux-vdso.so.1 =>  (0x00007ffd2f7fb000)
	libjli.so => /opt/openjdk/build/j2sdk-image/bin/../jre/lib/amd64/jli/libjli.so (0x00002ad66df97000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002ad66e1cb000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002ad66e590000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002ad66e794000)
	/lib64/ld-linux-x86-64.so.2 (0x0000563d9fc07000)
RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/jar
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
Checking for mapfile use in: /opt/openjdk/build/j2sdk-image/bin/rmiregistry
Library loads for: /opt/openjdk/build/j2sdk-image/bin/rmiregistry
	linux-vdso.so.1 =>  (0x00007fffb113e000)
	libjli.so => /opt/openjdk/build/j2sdk-image/bin/../jre/lib/amd64/jli/libjli.so (0x00002b8c0825f000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002b8c08493000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002b8c08858000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002b8c08a5c000)
	/lib64/ld-linux-x86-64.so.2 (0x0000562096ee5000)
RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/rmiregistry
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
Checking for mapfile use in: /opt/openjdk/build/j2sdk-image/bin/idlj
Library loads for: /opt/openjdk/build/j2sdk-image/bin/idlj
	linux-vdso.so.1 =>  (0x00007fffbd3cd000)
	libjli.so => /opt/openjdk/build/j2sdk-image/bin/../jre/lib/amd64/jli/libjli.so (0x00002af17f710000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002af17f944000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002af17fd09000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002af17ff0d000)
	/lib64/ld-linux-x86-64.so.2 (0x0000556b7e19f000)
RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/idlj
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
Checking for mapfile use in: /opt/openjdk/build/j2sdk-image/bin/policytool
Library loads for: /opt/openjdk/build/j2sdk-image/bin/policytool
	linux-vdso.so.1 =>  (0x00007ffdeedf3000)
	libjli.so => /opt/openjdk/build/j2sdk-image/bin/../jre/lib/amd64/jli/libjli.so (0x00002b8c25b1f000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002b8c25d53000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002b8c26118000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002b8c2631c000)
	/lib64/ld-linux-x86-64.so.2 (0x0000557ced20b000)
RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/policytool
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
Checking for mapfile use in: /opt/openjdk/build/j2sdk-image/bin/jcmd
Library loads for: /opt/openjdk/build/j2sdk-image/bin/jcmd
	linux-vdso.so.1 =>  (0x00007fffee516000)
	libjli.so => /opt/openjdk/build/j2sdk-image/bin/../jre/lib/amd64/jli/libjli.so (0x00002ac277084000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00002ac2772b8000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00002ac27767d000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00002ac277881000)
	/lib64/ld-linux-x86-64.so.2 (0x000056337d75b000)
RUNPATH for: /opt/openjdk/build/j2sdk-image/bin/jcmd
 0x0000000000000001 (NEEDED)             Shared library: [libjli.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]
rm -f /opt/openjdk/build/tmp/jdk-bin-files.list
>>>Making sec-files @ Sun Oct 22 20:42:51 CST 2017 ...
/bin/mkdir -p .
rm -f sec-files
rm -f /opt/openjdk/build/tmp/sec-bin.zip
cd  /opt/openjdk/build && \
		/usr/bin/zip -rq9 /opt/openjdk/build/tmp/sec-bin.zip classes/javax/net classes/javax/security/cert classes/com/sun/net/ssl classes/com/sun/security/cert classes/sun/net/www/protocol/https classes/sun/security/pkcs12 classes/sun/security/ssl classes/sun/security/krb5/*.class classes/sun/security/krb5/internal/*.class classes/sun/security/krb5/internal/ccache classes/sun/security/krb5/internal/crypto classes/sun/security/krb5/internal/ktab classes/sun/security/krb5/internal/rcache classes/sun/security/krb5/internal/util classes/sun/security/jgss/spi/GSSContextSpi.class
>>>Making sec-files-win @ Sun Oct 22 20:42:51 CST 2017 ...
>>>Making jgss-files @ Sun Oct 22 20:42:51 CST 2017 ...
>>>Making server-jdk-image @ Sun Oct 22 20:42:51 CST 2017 ...
rm -f -r /opt/openjdk/build/j2sdk-server-image
/bin/cp -r /opt/openjdk/build/j2sdk-image /opt/openjdk/build/j2sdk-server-image
rm -f -r /opt/openjdk/build/j2sdk-server-image/demo
rm -f -r /opt/openjdk/build/j2sdk-server-image/sample
rm -f /opt/openjdk/build/j2sdk-server-image/bin/jcontrol
rm -f /opt/openjdk/build/j2sdk-server-image/jre/bin/jcontrol
rm -f /opt/openjdk/build/j2sdk-server-image/man/ja_JP.UTF-8/man1/javaws.1
rm -f /opt/openjdk/build/j2sdk-server-image/man/man1/javaws.1
>>>Finished making images @ Sun Oct 22 20:42:51 CST 2017 ...
make[2]: Leaving directory `/opt/openjdk/jdk/make'
########################################################################
##### Leaving jdk for target(s) sanity all  images                 #####
########################################################################
##### Build time 00:06:21 jdk for target(s) sanity all  images     #####
########################################################################

#-- Build times ----------
Target debug_build
Start 2017-10-22 20:30:29
End   2017-10-22 20:42:51
00:05:26 hotspot
00:06:21 jdk
00:00:35 langtools
00:12:22 TOTAL
-------------------------
make[1]: Leaving directory `/opt/openjdk'

 

 

 

对于debug版,可以用下面的命令来查看编绎出来的java示持哪些JVM的配置项:

 

./java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version

 /opt/openjdk/build-debug/bin/java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version

如果是非debug,则可以使用下面的命令来输出可用的JVM配置项:

 

./java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version

 

 

 

可以了

This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb) file /opt/openjdk/build
build/       build-debug/ build.sh     
(gdb) file /opt/openjdk/build/
^A�                      bundles/                 gensrc/                  j2sdk-server-image/      sanityCheckWarnings.txt
bin/                     classes/                 hotspot/                 langtools/               source-bundles/
btbins/                  demo/                    impsrc/                  lib/                     source_tips
btclasses/               democlasses/             include/                 linux-amd64/             symbols/
btjars/                  demos-bundles/           j2re-image/              sample/                  tmp/
build.log                gennativesrc/            j2sdk-image/             sanityCheckMessages.txt  
(gdb) file /opt/openjdk/build/hotspot/
import/    outputdir/ 
(gdb) file /opt/openjdk/build/hotspot/outputdir/linux_amd64_
linux_amd64_compiler2/ linux_amd64_docs/      
(gdb) file /opt/openjdk/build/hotspot/outputdir/linux_amd64_compiler2/
debug/           fastdebug/       generated/       jvmg/            optimized/       product/         profiled/        shared_dirs.lst
(gdb) file /opt/openjdk/build/hotspot/outputdir/linux_amd64_compiler2/jvmg/gamma 
Reading symbols from /opt/openjdk/build/hotspot/outputdir/linux_amd64_compiler2/jvmg/gamma...done.
(gdb) en
enable  end     
(gdb) set args A 1987
(gdb) break main
Breakpoint 1 at 0x402ff3: file /opt/openjdk/hotspot/src/share/tools/launcher/java.c, line 228.
(gdb) run
Starting program: /opt/openjdk/build/hotspot/outputdir/linux_amd64_compiler2/jvmg/gamma A 1987
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Breakpoint 1, main (argc=3, argv=0x7fffffffdc58) at /opt/openjdk/hotspot/src/share/tools/launcher/java.c:228
228	{
(gdb) 

 

 

 后来吧/etc/profile改了下:

#export JAVA_HOME=/usr/local/jdk1.8
export JAVA_HOME=/opt/openjdk/build/j2sdk-image
export ANT_HOME=/usr/local/ant1.9.4
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$ANT_HOME/bin:$PATH

 还有是把/opt/openjdk/build/hotspot/outputdir/linux_amd64_compiler2/jvmg/目录下的env.sh改了下,

注意/opt/openjdk/build/hotspot/outputdir/linux_amd64_compiler2/jvmg/gamma的运行依赖/opt/openjdk/build/hotspot/outputdir/linux_amd64_compiler2/jvmg/libjvm.so

# Generated by /opt/openjdk/hotspot/make/linux/makefiles/buildtree.make
: ${JAVA_HOME:=/usr/local/jdk1.6}
CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/jre/lib/i18n.jar
HOTSPOT_BUILD_USER="root in hotspot"
export JAVA_HOME CLASSPATH HOTSPOT_BUILD_USER
LD_LIBRARY_PATH=/opt/openjdk/build/hotspot/outputdir/linux_amd64_compiler2/jvmg:$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/native_threads
export LD_LIBARAY_PATH
~                           

 

打印jvmpath值 $4 = "/opt/openjdk/build/hotspot/outputdir/linux_amd64_compiler2/jvmg/libjvm.so", '\000' <repeats 751 times>...

 

(gdb) set environment LD_LIBRARY_PATH=/opt/openjdk/build/hotspot/outputdir/linux_amd64_compiler2/jvmg:$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/native_threads

 

 

(gdb) 
281	    ifn.GetDefaultJavaVMInitArgs = 0;
(gdb) 
283	    if (_launcher_debug)
(gdb) 
285	    if (!LoadJavaVM(jvmpath, &ifn)) {
(gdb) 
288	    if (_launcher_debug) {
(gdb) 
300	    progname = *argv;
(gdb) 
301	    if ((s = strrchr(progname, FILE_SEPARATOR)) != 0) {
(gdb) 
302	        progname = s + 1;
(gdb) 
306	    ++argv;
(gdb) 
307	    --argc;
(gdb) 
318	    if ((s = getenv("CLASSPATH")) == 0) {
(gdb) 
322	    SetClassPath(s);
(gdb) 
329	    if (!ParseArguments(&argc, &argv, &jarfile, &classname, &ret, jvmpath)) {
(gdb) 
334	    if (jarfile != 0) {
(gdb) 
339	    SetJavaCommandLineProp(classname, jarfile, argc, argv);
(gdb) 
342	    SetJavaLauncherProp();
(gdb) p *jarfile
Cannot access memory at address 0x0
(gdb) p jarfile
$1 = 0x0
(gdb) p classname
$2 = 0x7fffffffe037 "A"
(gdb) p ret
$3 = 1
(gdb) p jvmpath
$4 = "/opt/openjdk/build/hotspot/outputdir/linux_amd64_compiler2/jvmg/libjvm.so", '\000' <repeats 751 times>...

 

 

本机环境如下:

[henry@henry-ubuntu:~/program/java/oracle_jdk/jdk1.7.0_51]$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode)

[henry@henry-ubuntu:~/workspace/openjdk/openjdk-7u40-fcs-src-b43-26_aug_2013/openjdk]$ uname -a
Linux henry-ubuntu 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386 GNU/Linux

默认全部编译

主要参考文档:README-builds.html,在源代码目录就有。

过程:

  1. 安装mercurial

  2. 下载某个repository(repository与project的区别,参见http://openjdk.java.net/guide/repositories.html

  3. 执行脚本get_source.sh以获取源代码。

  4. 设置基本环境变量。

    export LANG=C 
    export ALT_BOOTDIR=$JAVA_HOME 
    export JAVA_HOME= 
    export CLASSPATH=
    
  5. 相关依赖库

    5.1 安装CUPs,如果安装的时候制定了自定义目录,则还需要配置环境变量ALT_CUPS_HEADERS_PATH

    sudo apt-get install cups-common
    sudo apt-get install libcups2-dev
    

    5.2 安装FreeType,需要2.3以上的版本。如果安装的时候制定了自定义目录,则还需要配置环境变量ALT_FREETYPE_LIB_PATHALT_FREETYPE_HEADERS_PATH

    sudo apt-get install libfreetype6
    sudo apt-get install libfreetype6-dev
    

    5.3 安装ALSA,这个就不要自定义安装了

    sudo apt-get alsa-base
    sudo apt-get alsa-utils
    sudo apt-get install libclalsadrv2
    sudo apt-get install libclalsadrv-dev
    
  6. 至此make sanity应该可以通过了,然后make。

  7. make时的错误

    • 找不到gawk

        sudo apt-get install gawk
      
    • 找不到X11库,执行

        sudo apt-get install libx11-dev 
      
    • fatal error: X11/extensions/shape.h: No such file or directory,执行

        sudo apt-get install libxext-dev
      
    • fatal error: X11/extensions/Xrender.h: No such file or directory,执行

        sudo apt-get install libxrender-dev
      
    • fatal error: X11/extensions/XTest.h: No such file or directory,执行

        sudo apt-get install libxtst-dev
      
    • fatal error: X11/Intrinsic.h: No such file or directory,执行

        sudo apt-get install libxt-dev
      

    如果还有缺少库的情况,可以到这里http://packages.ubuntu.com/搜索。

  8. 继续make时的错误

    • 权限错误

        /home/henry/program/java/oracle_jdk/jdk1.7.0_51/bin/javac -g -encoding ascii -source 6 -target 6 -classpath /home/henry/program/java/oracle_jdk/jdk1.7.0_51/lib/tools.jar -sourcepath /media/sf_win7_e_drive/workspace/openjdk/openjdk-7u6-fcs-src-b24-28_aug_2012/openjdk/hotspot/agent/src/share/classes -d /media/sf_win7_e_drive/workspace/openjdk/openjdk-7u6-fcs-src-b24-28_aug_2012/openjdk/build/linux-i586/hotspot/outputdir/linux_i486_compiler2/product/../generated/saclasses @/media/sf_win7_e_drive/workspace/openjdk/openjdk-7u6-fcs-src-b24-28_aug_2012/openjdk/build/linux-i586/hotspot/outputdir/linux_i486_compiler2/product/../generated/agent.classes.list
              
        warning: [options] bootstrap class path not set in conjunction with -source 1.6
        /media/sf_win7_e_drive/workspace/openjdk/openjdk-7u6-fcs-src-b24-28_aug_2012/openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/coff/COFFFileParser.java:333: error: error while writing COFFFileParser.COFFFileImpl.COFFHeaderImpl.OptionalHeaderWindowsSpecificFieldsImpl: /media/sf_win7_e_drive/workspace/openjdk/openjdk-7u6-fcs-src-b24-28_aug_2012/openjdk/build/linux-i586/hotspot/outputdir/linux_i486_compiler2/product/../generated/saclasses/sun/jvm/hotspot/debugger/win32/coff/COFFFileParser$COFFFileImpl$COFFHeaderImpl$OptionalHeaderWindowsSpecificFieldsImpl.class (Operation not permitted)
              
        class OptionalHeaderWindowsSpecificFieldsImpl implements OptionalHeaderWindowsSpecificFields {
        ^
              
        Note: Some input files use unchecked or unsafe operations.
        Note: Recompile with -Xlint:unchecked for details.
      

      没找到具体原因,猜测是与使用了virtualbox,并将编译编译结果输出到windows的共享目录相关。

      变通方法,设置ALT_OUTPUTDIR变量,将编译结果输出到virtualbox的虚拟硬盘中,重新make。

    • 找不到类

        cd linux_i486_compiler2/product && ./test_gamma
        Using java runtime at: /home/henry/program/java/oracle_jdk/jdk1.7.0_51/jre
        Error occurred during initialization of VM
        java/lang/NoClassDefFoundError: java/lang/invoke/AdapterMethodHandle
      

      在classpath中确实没找到AdapterMethodHandle这个类,从下面两个邮件列表中的问题看,应该是新旧两个虚拟机不兼容,所以重新下载源码(openjdk-7u40-fcs-src-b43-26_aug_2013)再编译

  9. make成功

    32bit

    #-- Build times ----------
    Target all_product_build
    Start 2014-01-21 19:50:53
    End   2014-01-21 20:31:48
    00:00:20 corba
    00:01:26 hotspot
    00:01:08 jaxp
    00:01:48 jaxws
    00:35:25 jdk
    00:00:48 langtools
    00:40:55 TOTAL
    

    64bit

    #-- Build times ----------
    Target all_product_build
    Start 2014-01-26 14:36:02
    End   2014-01-26 16:31:03
    00:07:00 corba
    00:37:02 hotspot
    00:02:48 jaxp
    00:04:15 jaxws
    01:01:14 jdk
    00:02:41 langtools
    01:55:01 TOTAL
    

    电脑矬真是苦逼,时间长的令人发指。

  10. 运行一下

32bit

    [henry@henry-ubuntu:~/program/java/openjdk/openjdk-7u40-fcs-src-b43-26_aug_2013/bin]$ ./java -version
    openjdk version "1.7.0-internal"
    OpenJDK Runtime Environment (build 1.7.0-internal-henry_2014_01_21_09_17-b00)
    OpenJDK Client VM (build 24.0-b56, mixed mode)

64bit

    [henry@ubuntu:~/program/java/open_jdk/jdk7u40]$ bin/java -version
    openjdk version "1.7.0-internal"
    OpenJDK Runtime Environment (build 1.7.0-internal-henry_2014_01_26_14_35-b00)
    OpenJDK 64-Bit Server VM (build 24.0-b56, mixed mode)

定制化编译

openjdk的编译参数

//TODO: 定制化编译openjdk的某个部分
分享到:
评论

相关推荐

    编译OpenJDK7资料夹.rar

    本资料夹包含的内容是关于在Linux环境下编译OpenJDK7的完整过程及可能遇到的问题解决方法。 首先,要编译OpenJDK7,你需要一个Linux环境,因为OpenJDK主要是为类Unix系统设计的。推荐使用Ubuntu或Debian这样的基于...

    编译OpenJDK7源码相关软件

    内含1.apache-ant-1.9.13-bin.zip 2.jdk-6u45-linux-x64.bin 3.openjdk-7u6-fcs-src-b24-28_aug_2012.zip 4.freetype-2.3.12.tar.gz

    Win7下编译openjdk8源代码 完整版本 原创

    在介绍如何在Windows 7环境下编译OpenJDK 8源代码之前,有必要了解一些基础知识和前提条件。OpenJDK是Java平台的开源实现,其中包括JVM(Java虚拟机)和Java类库。OpenJDK的源代码使用C和C++编写,支持跨平台编译。...

    java jdk1.7源码包,用于centos7使用jdk1.7编译openjdk1.8的 1.7版本

    为了在CentOS 7上使用JDK 1.7编译OpenJDK 1.8,你需要遵循以下步骤: 1. **安装依赖**:确保系统已安装了必要的编译工具,如GCC、make等,并安装OpenJDK 1.7作为构建环境。 2. **下载源码**:获取到`jdk7u-dev-b...

    openjdk7-master.zip

    通过解压"openjdk7-master.zip",你可以自行编译OpenJDK7,了解其内部机制,并进行自定义优化或扩展。这对于Java开发者来说,是提高技能、深入学习Java底层原理的绝佳途径。你可以学习到如何配置和构建OpenJDK,如何...

    OPENJDK编译之后版本

    OPENJDK-7 windows编译之后版本

    ubuntu源码编译OpenJdk8

    由于编译 OpenJDK 需要一个现有的 JDK 环境作为引导(bootstrap),因此首先需要下载 JDK 7 并安装。 - **下载地址**: 通过指定的链接下载 JDK 7。 - **步骤**: 完成下载后,解压缩文件 `tar -zxvf jdk-7u80-linux-...

    Ubuntu 16.04.5 LTS下编译openjdk-7u75

    ### Ubuntu 16.04.5 LTS 下编译 openjdk-7u75 的详细步骤 #### 一、概述 在 Linux 环境下,尤其是 Ubuntu 系统上,有时我们需要从源码编译特定版本的 JDK 来满足项目需求或进行深入的研究与学习。本文将详细介绍...

    Openjdk7master.zip

    在本资料中,我们重点关注的是 OpenJDK 7 的源码,特别是一个名为 "Openjdk7master.zip" 的压缩包。这个压缩包包含了 OpenJDK 7 主分支的所有源代码,供开发者在 Ubuntu 系统上学习和研究。Ubuntu 是一款基于 Debian...

    Ubuntu如何轻松编译openJDK详解

    例如,编译OpenJDK 8时,需要JDK 7u7以上的版本,但不能是JDK 8。你可以通过Ubuntu的软件中心或官网下载对应的Bootstrap JDK并安装。 然后,我们需要下载OpenJDK的源代码。在终端中输入`sudo hg clone ...

    openjdk源码编译.zip

    本文将深入探讨如何编译OpenJDK源码,以及涉及到的相关工具和步骤。 首先,我们关注到"CLion-2021.1.tar.gz",这是JetBrains公司开发的C++和Python等语言的跨平台集成开发环境(IDE)。虽然OpenJDK主要用C++和Java...

    已编译好的windows版openjdk7 part2

    已编译好的java.net官网的windows版的openjdk7下载 part2 请下载共2part以后放在同一个文件夹里面解压(推荐360压缩,我是用这个加压的) 所有下载链接: http://blog.csdn.net/qgmzzn1/article/details/16918153

    jdk7u-dev.zip

    openJDK7源码下载 ...cd jdk7u-dev chmod 755 get_source.sh ./get_source.sh 之后需要下载corba、hotspot、jaxp、...另外提一句,最好还是编译openJDK8吧,编译openJDK7实在是太痛苦了,各种相关软件支持整得人一头包

    openjdk7Andjdk7.7z

    标题中的"openjdk7Andjdk7.7z"表明这是一个关于OpenJDK 7的压缩文件,其中可能包含了OpenJDK 7的源代码以及一个特定版本的Boot JDK。描述中提到,这是在CentOS系统上编译OpenJDK时会用到的资源,具体包括了OpenJDk 7...

    OpenJdk-7.zip

    在Ubuntu中,使用OpenJDK-7进行Java开发,开发者可以利用各种IDE(如IntelliJ IDEA、Eclipse)或命令行工具编写、编译和运行Java程序。此外,还可以通过`update-alternatives`命令来设置默认的Java版本,以便在多个...

    编译调试jvm, openjdk8源码, openjdk7, make3.81源码

    本资源包包含了与这个主题相关的关键元素:OpenJDK8和OpenJDK7的源码,以及make 3.81的源码,这些都是构建和调试JVM的重要工具。 首先,OpenJDK是Java Development Kit的开源实现,它提供了Java运行环境和开发工具...

    openjdk7的langtools源码

    《深入剖析OpenJDK7的LangTools源码》 OpenJDK7是Java开发的一个开源实现,它提供了Java运行环境的基础构建块。LangTools作为OpenJDK7的一部分,扮演着至关重要的角色,它是Java语言工具集的核心,包含了编译器、...

    openjdk6 源代码

    openjdk6 源代码,分开也上传一份,省得太大了。

    centos7安装openjdk1.7文档说明

    CentOS 7 安装 OpenJDK 1.7 需要经过多个步骤,包括安装编译库、下载 OpenJDK 源代码、安装 Boot JDK、配置环境变量、解压 OpenJDK 压缩文件、编译 OpenJDK 等。下面是详细的安装步骤: 安装编译库 在 CentOS 7 中...

    openjdk7 for ubuntu64bit

    标题“openjdk7 for ubuntu64bit”指出我们要讨论的是OpenJDK 7在Ubuntu 64位操作系统上的安装和使用。OpenJDK(Open Java Development Kit)是Java开发工具包的一个开源实现,它提供了Java运行环境(JRE)和Java...

Global site tag (gtag.js) - Google Analytics