Reading this again, I wonder: What is the purpose of _ALLBSD_SOURCE in a file under 'src/os/bsd'? Are there platforms that are 'bad', but do not define _ALLBSD_SOURCE?
/Staffan On 15 feb 2012, at 16:16, Daniel D. Daugherty wrote: > The _ALLBSD_SOURCE symbol is defined by the HotSpot Makefile infrastructure. > It is used to identify code specific to the BSD family of OSes. > The __APPLE__ symbol is defined by the Apple compiler(s) and it is used to > identify code specific to MacOS X. > > Typically you'll see something like: > > #ifdef _ALLBSD_SOURCE > > <code that works on all BSDs> > > #ifdef __APPLE__ > <code specific to MacOS X> > #else > <code for other BSDs> > #endif // __APPLE__ > #endif // _ALLBSD_SOURCE > > As for building on non-MacOS X BSDs, that would be nice, but we > don't have the infrastructure to do it. > > Dan > > On 2/15/12 6:57 AM, Mikael Gerdin wrote: >> Hi Staffan, >> >> It looks like you're adding Mac-specific stuff like thread_t and calls to >> ::mach_thread_self() inside _ALLBSD_SOURCE #ifdefs, are you sure this won't >> break BSD builds? >> Does the OSX compiler define _ALLBSD_SOURCE or is that for >> (free|net|open)bsd? >> It's too bad we don't do regular builds on any of the BSDs, otherwise this >> would have been easier to figure out. >> >> /Mikael >> >> >> On 2012-02-15 11:29, Staffan Larsen wrote: >>> Please review the following change: >>> >>> Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7132070 >>> >>> Webrev: http://cr.openjdk.java.net/~sla/7132070/webrev.00/ >>> >>> This changes the value returned by OSThread::thread_id() and >>> os::current_thread_id() on macosx to return the mach thread_t instead of >>> pthread_t. There is a separate method OSThread:pthread_id() that returns >>> the pthread_t. >>> >>> The reason for this change is both that JFR would like a 4 byte value >>> for thread id, and that SA requires access to the thread_t. >>> >>> Thanks, >>> /Staffan >>