<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Dec 4, 2008, at 12:35 AM, Ben Evans wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Apologies if this is not the right place to ask (or if there are basic docs somewhere which I have failed to find on my own).<br><br>I've been following the build instructions at:<br><br><a href="http://wikis.sun.com/display/mlvm/Building">http://wikis.sun.com/display/mlvm/Building</a><br> <br>and trying to build with b33 of OpenJDK7, from the bsd port, to then build via:<br><br><a href="http://landonf.bikemonkey.org/code/java/SoyLatte_Meets_OpenJDK.20080819.html">http://landonf.bikemonkey.org/code/java/SoyLatte_Meets_OpenJDK.20080819.html</a><br> <br>(I have successfully built a vanilla OpenJDK7 and aside from some known problems with the test suite, seem to have it self-hosting).</blockquote><div><br></div><div>I currently develop mlvm on Solaris over VMWare on my MacBook (OSX 10.4 though). I'm excited to see you working on OSX builds. The bad news is, you are the pioneer.</div><div><br></div><div>I've given you full write permissions on the mlvm wiki, in case you want to share your experiences more fully.</div><br><blockquote type="cite">Unfortunately, the patches for invokedynamic do not seem to apply against my bsd src tree.</blockquote><div><br></div><div>The patches in the mlvm repositories are based against whatever recent JDK version somebody (me, in practice) has refreshed them against.</div><div><br></div><div>The .hg/patches/series file advertises (by convention) which build each patch applies to.</div><div><br></div><div>In the mlvm/hotspot repo, the patches are refreshed to b38 but in practice they should work against neighboring builds, including b40. The patches in mlvm/jdk are refreshed to b34, which is close enough to b38. See:</div><div><div> <a href="http://hg.openjdk.java.net/mlvm/mlvm/hotspot/file/tip/series">http://hg.openjdk.java.net/mlvm/mlvm/hotspot/file/tip/series</a></div><div><div> <a href="http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/series">http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/series</a></div><div><br></div></div></div><div>Your $guards variable probably says b40 (based on the reading of .hgtags by make/current-release.sh). Change it to mention all the builds the patches expect, both b34 and b38. This amounts to a manual override that says "yes, I know this base is not exactly what the patches want, and I'll take responsibility for the consequences". You might have patch mismatches to fix and/or build problems.</div><div><br></div><div>One big change: You'll have to manually delete anonk.patch from the patches/hotspot/series if you are building against a JDK that has anonk in it. (I pushed that recently out of the patch repo.)</div><div><br></div><div>If you want more direct access to the guard state, just do this:</div><div> head patches/*/guards</div><div><br></div><div>Patches are controlled by a flat text file you can vi or emacs.</div><div><br></div><div>If you would like to refresh the patches to b40, please send me meta-patchs (hg diff -R patches/{hotspot,jdk}). There's a little bit of paperwork: You'll need to sign the SCA (<a href="https://sca.dev.java.net">https://sca.dev.java.net</a>/) and it would help to have your java.net handle (evansben?).</div><div><br></div><div>I'll probably do the next mlvm push in a week or two. (I'm doing a round of spec work which will sooner or later show up in the RI.)</div><br><blockquote type="cite">Eg, after applying the patches via:<br> <br>CatBasket:sources boxcat$ sh patches/make/each-patch-repo.sh hg qselect --reapply $guards<br><br>the only matches I have are:<br><br>CatBasket:jdk boxcat$ grep -rin methodhandle . | grep -v patches<br>./src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java:87: initMethodHandles();<br> ./src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java:215: private static void initMethodHandles() throws ClassNotFoundException {<br>CatBasket:jdk boxcat$ pwd<br>/Users/boxcat/projects/jdk7-b33/sources/jdk<br> CatBasket:jdk boxcat$ <br></blockquote></div><br><div>Try this command to see which guards are enabled:</div><div> sh patches/make/each-patch-repo.sh hg qguard</div><div><div> head patches/*/guards # quick & dirty form</div><div><br></div><div>Try this command to see which patches are (therefore) enabled:</div><div><div> sh patches/make/each-patch-repo.sh hg qseries</div><div><br></div><div>Let me know which of these comments helps, if any do.</div><div><br></div><div>Best wishes,</div><div>-- John</div><div></div></div></div></body></html>