Skip to content
Snippets Groups Projects
README 1.51 KiB
Newer Older
  • Learn to ignore specific revisions
  • Dor Laor's avatar
    Dor Laor committed
    0) Install perquisite packages:
       yum install boost-static genromfs
    
    1) make sure all git submodules are uptodate
    
    Christoph Hellwig's avatar
    Christoph Hellwig committed
       -----------------------------------------
    
    
        git submodule update --init
    
    Christoph Hellwig's avatar
    Christoph Hellwig committed
    
    
    Dor Laor's avatar
    Dor Laor committed
    2) build the specially patched libunwind
    
       -------------------------------------
    
    
    Christoph Hellwig's avatar
    Christoph Hellwig committed
        cd external/libunwind
    
    Dor Laor's avatar
    Dor Laor committed
        autoreconf -i
    
    Christoph Hellwig's avatar
    Christoph Hellwig committed
        cp ./src/.libs/libunwind.a ../..
        cd ../..
    
    Dor Laor's avatar
    Dor Laor committed
    4) build the glibc test suite
    
       cd external/glibc-testsuite
       make
       cd ../..
    
    
    Dor Laor's avatar
    Dor Laor committed
    5) build osv
    
    Debugging
    =========
    
    To build with debugging symbols, and preemption off (to not confuse gdb),
    	make -j mode=debug conf-preempt=0
    
    To clean debugging build's results, use
    	make clean mode=debug
    
    To run the debugging build:
    	sh scripts/run.sh debug
    
    To connect a debugger to this run:
    	$ gdb build/debug/loader.elf
    	(gdb) connect
    	(gdb) osv syms
    	(gdb) bt
    
    To put a breakpoint early in the osv run, a useful trick is tell the vm to
    reboot after setting the breakpoint:
    	(gdb) hbreak function_name
    	(gdb) monitor system_reset
    	(gdb) c
    
    Avi Kivity's avatar
    Avi Kivity committed
    
     Tracing
     =======
     Uncomment the "tracing-flags =" line in build.mak, and rebuild.
     Run the program until it aborts, then in gdb:
    
    
    Avi Kivity's avatar
    Avi Kivity committed
     set pagination off
     set logging on
    
     gdb.txt will contain the the trace.
    
    
    Running java benchmarks
    =======================
    
    After running "make", do
        scripts/imgedit.py setargs build/debug/loader.img java.so -jar bench.jar
    
    and then run normally (sh scripts/run.sh).