Is anyone else interested in getting these changes into the jdk9 mainstream? It’s been over a month without a response.
> On Feb 15, 2016, at 6:13 PM, Brian Gardner <open...@getsnappy.com> wrote: > > Hello, > I’ve been working on getting jdk9 to build cleanly and compile and run > HelloWorld cleanly on Freebsd. This was following up on a couple patches > released by Magnus Ipse Bursie who works at Oracle. He is interested in > getting some of these changes integrated into to jdk9 mainline. > > Here are his patches: > WebRev for build changes: > http://cr.openjdk.java.net/~ihse/JDK-8147795-build-system-support-for-bsd/webrev.01 > > <http://cr.openjdk.java.net/~ihse/JDK-8147795-build-system-support-for-bsd/webrev.01> > > > To make this compile properly on BSD, some source code changes are also > needed. Here is a simple patch that fixes the compilation show-stoppers. Note > that this is *not* part of this bug. > http://cr.openjdk.java.net/~ihse/JDK-8147795_addendum-bsd-source-patches/webrev.01/ > > <http://cr.openjdk.java.net/~ihse/JDK-8147795_addendum-bsd-source-patches/webrev.01/> > > > > Here are my patches which supplement Magnus’s: > > porting build_vm_def.sh from bsd-port/jdk8 repo, to fix NM errors during build > http://brian.timestudybuddy.com/webrev/hotspot__NM/webrev/ > <http://brian.timestudybuddy.com/webrev/hotspot__NM/webrev/> > Add SUPPORT_RESERVED_STACK_AREA flag for all BSD's > http://brian.timestudybuddy.com/webrev/hotspot__SUPPORT_RESERVED_STACK_AREA/webrev/ > > <http://brian.timestudybuddy.com/webrev/hotspot__SUPPORT_RESERVED_STACK_AREA/webrev/> > porting getthreadid logic from bsd-port/jdk8. calling syscall(SYS_thr_self) > caused pthread_setspecific to be cleared. > http://brian.timestudybuddy.com/webrev/hotspot__os_bsd_cpp__getthreadid/webrev/ > > <http://brian.timestudybuddy.com/webrev/hotspot__os_bsd_cpp__getthreadid/webrev/> > adding in servicability agent ported from bsd-port/jdk8 > http://brian.timestudybuddy.com/webrev/hotspot__sa/webrev/ > <http://brian.timestudybuddy.com/webrev/hotspot__sa/webrev/> > adding classlist.bsd that is identical to classlist.linux, in order to compile > http://brian.timestudybuddy.com/webrev/jdk__classlist-bsd/webrev/ > <http://brian.timestudybuddy.com/webrev/jdk__classlist-bsd/webrev/> > > > > The next patches where less straightforward. When running java I was getting > a ton of messages like: > Thread 832744400 has exited with leftover thread-specific data after 4 > destructor iterations > After doing a lot of digging and debugging on Linux, I found the code path > for Linux was identical for Freebsd and the cleanup destructor was being > executed 4 times just like Freebsd, the difference being that Freebsd would > print out this benign warning while Linux would just ignore it. The problem > is that all threads that are created and initialize TLS current thread data, > must clean them up by explicitly setting the TLS current thread to null. > I’ve come up with two approaches to accomplish this. > > clean up TLS current thread at end of ::run functions similar to how it's > done in openjdk8. > http://brian.timestudybuddy.com/webrev/hotspot__clear_thread_current/webrev/ > <http://brian.timestudybuddy.com/webrev/hotspot__clear_thread_current/webrev/> > clear current thread before exiting java_start to avoid warnings from > leftover pthread_setspecific data > http://brian.timestudybuddy.com/webrev/hotspot__clear_thread_current_alt/webrev/ > > <http://brian.timestudybuddy.com/webrev/hotspot__clear_thread_current_alt/webrev/> > > > With all these patches I’ve accomplished my initial goal of getting Freebsd > to build cleanly and compile and run HelloWorld cleanly on Freebsd > > Thanks, > Brian Gardner >