Build OpenJdk

1  ,下載源代碼  nuget html

2,說明文檔java

http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.htmlbash

2,安裝 Cygwin數據結構

 http://www.cygwin.com/框架

輸入源 :函數

 http://mirrors.163.com/cygwin/https://mirrors.163.com/.help/cygwin.html工具


3, 轉換文件格式oop

find common/autoconf/ -name "*" | xargs dos2unix
單元測試


bash ./configure --enable-debug --with-target-bits=64  --with-freetype=/cygdrive/c/freetype-2.9.1  --with-tools-dir="/cygdrive/C/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin"
測試

bash ./configure --enable-debug --with-target-bits=64  --with-freetype=/cygdrive/c/freetype-2.9.1





完成

image



JVM VS 項目生成

https://www.jianshu.com/p/5a5eaff760dd

image


調試

https://www.jianshu.com/p/e85f93cc74cb

-Djava.class.path=C:\JavaCode Test1


├─agent                            Serviceability Agent的客戶端實現
├─make                             用來build出HotSpot的各類配置文件
├─src                              HotSpot VM的源代碼
│  ├─cpu                            CPU相關代碼(彙編器、模板解釋器、ad文件、部分runtime函數在這裏實現)
│  ├─os                             操做系相關代碼
│  ├─os_cpu                         操做系統+CPU的組合相關的代碼
│  └─share                          平臺無關的共通代碼
│      ├─tools                        工具
│      │  ├─hsdis                      反彙編插件
│      │  ├─IdealGraphVisualizer       將server編譯器的中間代碼可視化的工具
│      │  ├─launcher                   啓動程序「java」
│      │  ├─LogCompilation             將-XX:+LogCompilation輸出的日誌(hotspot.log)整理成更容易閱讀的格式的工具
│      │  └─ProjectCreator             生成Visual Studio的project文件的工具
│      └─vm                           HotSpot VM的核心代碼
│          ├─adlc                       平臺描述文件(上面的cpu或os_cpu裏的*.ad文件)的編譯器
│          ├─asm                        彙編器接口
│          ├─c1                         client編譯器(又稱「C1」)
│          ├─ci                         動態編譯器的公共服務/從動態編譯器到VM的接口
│          ├─classfile                  類文件的處理(包括類加載和系統符號表等)
│          ├─code                       動態生成的代碼的管理
│          ├─compiler                   從VM調用動態編譯器的接口
│          ├─gc_implementation          GC的實現
│          │  ├─concurrentMarkSweep      Concurrent Mark Sweep GC的實現
│          │  ├─g1                       Garbage-First GC的實現(不使用老的分代式GC框架)
│          │  ├─parallelScavenge         ParallelScavenge GC的實現(server VM默認,不使用老的分代式GC框架)
│          │  ├─parNew                   ParNew GC的實現
│          │  └─shared                   GC的共通實現
│          ├─gc_interface               GC的接口
│          ├─interpreter                解釋器,包括「模板解釋器」(官方版在用)和「C++解釋器」(官方版不在用)
│          ├─libadt                     一些抽象數據結構
│          ├─memory                     內存管理相關(老的分代式GC框架也在這裏)
│          ├─oops                       HotSpot VM的對象系統的實現
│          ├─opto                       server編譯器(又稱「C2」或「Opto」)
│          ├─prims                      HotSpot VM的對外接口,包括部分標準庫的native部分和JVMTI實現
│          ├─runtime                    運行時支持庫(包括線程管理、編譯器調度、鎖、反射等)
│          ├─services                   主要是用來支持JMX之類的管理功能的接口
│          ├─shark                      基於LLVM的JIT編譯器(官方版裏沒有使用)
│          └─utilities                  一些基本的工具類
└─test                             單元測試



http://hllvm.group.iteye.com/group/topic/26998


常見錯誤

1,

Vi 下顯示

^M

VS 看到的

image


2,VS 2010用英文的  ,用中文的有些問題,沒深究,換也英文的




參考:

http://www.cnblogs.com/lighten/p/5906359.html


https://my.oschina.net/langxSpirit/blog/1624428

相關文章
相關標籤/搜索