I am in the process of porting the dalvik VM to a glibc based ARM SoC. I have done (hopefully) most of the the porting. Now when I start dalvikvm I am getting an error when dexopt is trying to optimize the core.jar file.
The things I have done for porting. 1. Using 2.6.24 (backported ashmem). This is the only change in kernel I did. 2. I copied the core.jar from the regular Andriod build environment (ARM target). I am assuming that core.jar is machine independent. I added a few debug statements on my own. The error is when dexopt is trying to perform SwapEverythingButHeaderAndMap(). Specifcally when fixing the endianess for the Type List. Any clues? The log I am seeing r...@172:/system/bin# dalvikvm -Xbootclasspath:/system/framework/ core.jar -verbose V( 5288) VM init args (2): (dalvikvm) V( 5288) 0: '-Xbootclasspath:/system/framework/core.jar' (dalvikvm) V( 5288) 1: '-verbose' (dalvikvm) V( 5288) VM options (2): (dalvikvm) V( 5288) 0: '-Xbootclasspath:/system/framework/core.jar' (dalvikvm) V( 5288) 1: '-verbose' (dalvikvm) V( 5288) Using executionMode 2 (dalvikvm) V( 5288) mterp: interp is 16384 bytes, sisters are 2608 bytes (dalvikvm) V( 5288) Creating VM heap of size 2097152 (dalvikvm-heap) V( 5288) threadid=3: interp stack at 0x40016000 (dalvikvm) V( 5288) Opening archive '/system/framework/core.jar' 0xbe953b04 (dalvikvm) V( 5288) +++ numEntries=26 cdOffset=1557197 (dalvikvm) V( 5288) Couldn't open /system/framework/core.odex: No such file or directory (dalvikvm) V( 5288) Cache file for '/system/framework/core.jar' 'classes.dex' is '/data/dalvik-cache/sys...@framework@core....@classes.dex' (dalvikvm) V( 5288) dvmDexCacheStatus: Checking cache for /system/framework/ core.jar (/data/dalvik-cache/sys...@framework@core....@classes.dex) (dalvikvm) V( 5288) DexOpt: locking cache file /data/dalvik-cache/ sys...@framework@core....@classes.dex (fd=4, boot=1) (dalvikvm) V( 5288) DexOpt: locked cache file (dalvikvm) V( 5288) checking deps, expecting vfy=1 opt=1 (dalvikvm) W( 5288) DexOpt: incorrect opt magic number (0xff ff ff ff) (dalvikvm) D( 5288) Stale deps in cache file; removing and retrying (dalvikvm) V( 5288) DexOpt: locking cache file /data/dalvik-cache/ sys...@framework@core....@classes.dex (fd=4, boot=1) (dalvikvm) V( 5288) DexOpt: locked cache file (dalvikvm) V( 5288) DexOpt: successfully initialized new cache file (dalvikvm) D( 5288) DexOpt: --- BEGIN 'core.jar' (bootstrap=1) --- (dalvikvm) W( 5289) ANDROID_ROOT not set, defaulting to /system (dalvikvm) V( 5288) DexOpt: waiting for verify+opt, pid=5289 (dalvikvm) V( 5289) Creating VM heap of size 2097152 (dalvikvm-heap) V( 5289) threadid=3: interp stack at 0x40016000 (dalvikvm) V( 5289) Continuing optimization (/system/framework/core.jar, isb=1, vfy=1, opt=1) (dalvikvm) V( 5289) +++ swapping bytes:1 (dalvikvm) V( 5289) +++ swapping and verifying (dalvikvm) V( 5289) I am here:0 (dalvikvm) V( 5289) Map count = 17 (dalvikvm) V( 5289) Type: 0 (dalvikvm) V( 5289) Type: 1 (dalvikvm) V( 5289) Type: 2 (dalvikvm) V( 5289) Type: 3 (dalvikvm) V( 5289) Type: 4 (dalvikvm) V( 5289) Type: 5 (dalvikvm) V( 5289) Type: 6 (dalvikvm) V( 5289) Type: 1003 (dalvikvm) V( 5289) Type: 2001 (dalvikvm) V( 5289) Type: 2006 (dalvikvm) V( 5289) Type: 1001 (dalvikvm) V( 5289) Type list Count=1 (dalvikvm) V( 5289) Type list Count=2 (dalvikvm) V( 5289) Type list Count=11 (dalvikvm) V( 5289) Type list Count=813 (dalvikvm) V( 5289) Type list Count=262375 (dalvikvm) W( 5289) Bad index: (pType->typeIdx)(49280) > (state->pHeader- >typeIdsSize)(2910) (dalvikvm) E( 5289) Trouble with item 4 @ offset 0x2393e4 (dalvikvm) E( 5289) Swap of section type 1001 failed (dalvikvm) E( 5289) ERROR: Byte swap + verify failed (dalvikvm) E( 5289) Optimization failed (dalvikvm) W( 5288) DexOpt: --- END 'core.jar' --- status=0xff00, process failed (dalvikvm) E( 5288) Unable to extract+optimize DEX from '/system/framework/ core.jar' (dalvikvm) V( 5288) Closing archive 0xbe953b04 (dalvikvm) V( 5288) munmap(0x41530000, 1559732) succeeded (dalvikvm) D( 5288) Failed on '/system/framework/core.jar' (boot=1) (dalvikvm) V( 5288) VM shutting down (dalvikvm) D( 5288) VM cleaning up (dalvikvm) W( 5288) JNI_CreateJavaVM failed (dalvikvm) Dalvik VM init failed (check log file) --~--~---------~--~----~------------~-------~--~----~ unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---