zoukankan      html  css  js  c++  java
  • 编译hotspot8

    编译hotspot8

    ubuntu desktop 18 全新准备与编译过程再记录下:

     # 建议使用此gcc和g++版本,过高版本比如gcc7或引发编译报错
     sudo apt-get install gcc-4.8
     sudo apt-get install g++-4.8
     
     # 安装相关依赖
    sudo apt-get install  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
     
    
     #安装JDK8 并设置path  安装CDT 
     scp simon@172.16.106.122:/Users/simon/002.tools/jdk-8u211-linux-x64.tar.gz ./
    gedit ~/.profile 
    export JAVA_HOME=/home/simon/002.tools/jdk1.8.0_211
    export  PATH="$PATH:$JAVA_HOME/bin"
    source ~/.profile
    java -version  
    scp simon@172.16.106.122:/Users/simon/002.tools/eclipse-cpp-2019-06-R-linux-gtk-x86_64.tar.gz ./
    
    # 安装版本管理工具 取代码用 切换到相应tag
    cd /home/simon/600.self/03.code/02.cpp/hotspot-jdk8-b120/
    # 这是我本地目录,对应的你自己创建就好
    sudo apt-get install mercurial
    # 获取代码 如果因为网络等问题取不下来,fanqiang吧
    hg clone http://hg.openjdk.java.net/jdk8/jdk8
    # 取好后切换到jdk8-b120分支 需要在目录 /home/simon/600.self/03.code/02.cpp/hotspot-jdk8-b120/jdk8下
    hg up jdk8-b120
    # 查看一下
    hg identify
    # 输出这个就对了  cd3825b29830 jdk8-b120
    cd jdk8
    chmod +x get_source.sh
    sh get_source.sh
    
    # 编译3.82的make cmake代码到 ftp://ftp.gnu.org/gnu/make/make-3.82.tar.gz取 假设我放在/home/simon/002.tools/make-3.82
    cd /home/simon/002.tools/make-3.82
    # 修改下面这个文件  否则编译make报错
    gedit glob/glob.c
    # 将 211行  232行注释掉
    #// #if !defined __alloca && !defined __GNU_LIBRARY__
    #// #endif
    
    # 准备编译make3.82
    chmod +x configure
    ./configure
    make
    ./make --version
    
    # 将系统的默认make链接成3.82版本
    cd /usr/bin/
    sudo ln -s  /home/simon/002.tools/make-3.82/make make-3.82
    sudo rm make
    sudo ln -s make-3.82 make
    make --version
    # 如果看到的是3.82就可以了
    
    # 确认gcc和g++是4.8版本  如果是7.x版本 或会引发如下错误:
    # error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
    cd /usr/bin
    sudo rm gcc
    sudo ln -s gcc-4.8 gcc
    # g++同样操作即可
    cd /usr/bin
    sudo rm g++
    sudo ln -s g++-4.8 g++
    
    # 修改hotspot/make/linux/makefiles/gcc.make 文件207 行 WARNINGS_ARE_ERRORS = -Werror 改成 WARNINGS_ARE_ERRORS = -Wno-all
    
    # 编译hotspot
    # 修改支持的os版本检查
    cd /home/simon/600.self/03.code/02.cpp/hotspot-jdk8-b120/jdk8
    gedit hotspot/make/linux/Makefile
    # 修改SUPPORTED_OS_VERSION =...   加上4%    不然4.x的内核不支持
    # 如果存在build目录则删除
    rm -rf build/
    chmod +x configure
    ./configure --with-debug-level=slowdebug
    
    nohup make all &
    tail -f nohup.out
    

    解压调试符号包并调试:

    # 编译到最后 Exception in thread "main" java.lang.VerifyError: class jdk.nashorn.internal.objects.ScriptFunctionImpl 这种报错就忽略好了 不影响hotspot编译
    # 编译好了后 解压调试符号表,
    cd /home/simon/600.self/03.code/02.cpp/hotspot-jdk8-b120/jdk8/build/linux-x86_64-normal-server-slowdebug/jdk/lib/amd64/server 
    unzip libjvm.diz
    

    配合CDT使用,爽的飞起。

  • 相关阅读:
    spring多个context:property-placeholder不生效问题
    JAVA中自定义properties文件介绍
    spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。
    web.xml文件头声明各个版本参考
    Java 组件化(gradle)
    阿里开源框架-JarsLink-【JAVA的模块化开发框架】
    二gradle创建SSM项目——Hello word
    一gradle创建SSM项目——依赖包
    微信开发学习总结(二)——微信开发入门
    js函数声明的三种方式
  • 原文地址:https://www.cnblogs.com/simoncook/p/11198117.html
Copyright © 2011-2022 走看看