Sorry Thomas the all important: src/os/posix/vm/threadLocalStorage_posix.cpp
was missing from the webrev. Now adding. David ----- On 12/11/2015 2:47 AM, Thomas Stüfe wrote:
On Wed, Nov 11, 2015 at 5:36 PM, Thomas Stüfe <thomas.stu...@gmail.com <mailto:thomas.stu...@gmail.com>> wrote: Hi David, I get build errors on all my platforms. I think the change misses #include "runtime/threadLocalStorage.hpp" in a couple of places, at least thread.cpp and possible also the os_xx_yy.cpp files. Sorry, I have to correct myself. It is a linker error, I do not find the implementations for the ThreadLocalStorage class methods anywhere. I applied your patch atop a freshly synced hs-rt repo: - .../hotspot $ hg log -l 3 changeset: 9317:3b23f69bc887 8132510__thread_davids_change qbase qtip tip user: stuefe date: Wed Nov 11 16:12:14 2015 +0100 summary: imported patch 8132510__thread_davids_change changeset: 9316:f17e5edbe761 qparent user: tschatzl date: Tue Nov 10 11:07:15 2015 +0100 summary: 8140689: Skip last young-only gc if nothing to do in the mixed gc phase Reviewed-by: mgerdin, drwhite on AIX I get: ld: 0711-317 ERROR: Undefined symbol: .ThreadLocalStorage::thread() ld: 0711-317 ERROR: Undefined symbol: .ThreadLocalStorage::is_initialized() ld: 0711-317 ERROR: Undefined symbol: .ThreadLocalStorage::set_thread(Thread*) ld: 0711-317 ERROR: Undefined symbol: .ThreadLocalStorage::init() Am I building wrong? Regards, Thomas Will take another look tomorrow. Thanks, Thomas On Wed, Nov 11, 2015 at 9:19 AM, David Holmes <david.hol...@oracle.com <mailto:david.hol...@oracle.com>> wrote: Hi Thomas, Okay here's the next revision: http://cr.openjdk.java.net/~dholmes/8132510/webrev.v5/ I've reinstated a basic ThreadLocalStorage class which will only need two implementations: a POSIX one, and a Windows one (still TBD). This class is always initialized and ThreadLocalStorage::thread() is used from the signal handlers (as today). For platforms that don't have __thread support they can define USE_LIBRARY_BASED_TLS_ONLY at build time to only use the ThreadLocalStorage implementation. Obviously still need to get some performance numbers. I'd appreciate it if you could retest AIX, though as all platforms currently use pthread_get/setspecific I'm confident there will be no platform issues. Thanks, David