环境:
操作系统: Ubuntu 18.04.1 LTS / Ubuntu 16.04 TLS
内核: 4.4.0 / 4.15.0-142-generic
make版本: 3.8.1
gcc: 4.6.4
g++: 4.6.4
资源链接:
openjdk8: http://hg.openjdk.java.net/jdk8/jdk8/
or:
hg clone http://hg.openjdk.java.net/jdk8/jdk8
gcc: https://askubuntu.com/questions/1084930/install-gcc-4-4-7-on-ubuntu-18-04
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ trusty main'
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ trusty universe'
sudo apt update
sudo apt install gcc-4.6
sudo apt install g++-4.6
make 3.81: https://gnu-make.soft32.com/
注意:Ubuntu18.10安装不了g++4.6, libc6-dev和预装的冲突,强行重装libc6-dev 如若中途报错会直接搞崩操作系统,有风险。
依赖:
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
sudo apt-get install libcups2-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libasound2-dev
文件修改:
内核版本校验:
“./hotspot/make/linux/MakeFile” 文件,找到 SUPPORTED_OS_VERSION 变量定义的地方,在后面追加 "4%"
编译警告:
hotspot/make/linux/makefiles/gcc.make
200行左右:
WARNINGS_ARE_ERRORS=-Werror
改为
WARNINGS_ARE_ERRORS=-Wno-error
configure配置:
--with-target-bits | 32位/64位 |
--with-freetype | freetype目录 |
--with-jvm-variants=server,client | 设置要构建的JVM的变体,目前可以选择server,client,minimal,core,zero,zeroshark,custom |
--with-boot-jdk | bootstrap jdk |
--with-boot-jdk-jvmargs | bootstrap jdk 参数 |
--with-debug-level | release,fastdebug,slowdebug(optimized) |
--disable-zip-debug-info | 禁止压缩调试信息 |
注意
注意环境变量,不要有CLASSPATH, JAVA_HOME等,查看/etc/environment /etc/profile ~/.bashrc 等。
结果
debug: