Sure! https://build.chromium.org/p/chromium.fyi/builders/ClangToTMacASan/builds/8565/steps/gclient%20runhooks/logs/stdio has the invocations to build llvm/clang/compiler/rt, and https://build.chromium.org/p/chromium.fyi/builders/ClangToTMacASan/builds/8565/steps/compile/logs/stdio is the actual build using that setup.
On Wed, Jan 25, 2017 at 1:57 PM, Asiri Rathnayake < asiri.rathnay...@gmail.com> wrote: > @Nico: could you let me know your build configuration? (cmake options) > > I'm surprised this went unnoticed for so long. > > Thanks. > > / Asiri > > On 25 Jan 2017 5:52 p.m., "Asiri Rathnayake" <asiri.rathnay...@gmail.com> > wrote: > >> (including cfe-commits) >> >> On Wed, Jan 25, 2017 at 5:51 PM, Asiri Rathnayake < >> asiri.rathnay...@gmail.com> wrote: >> >>> Hi Nico, >>> >>> On Wed, Jan 25, 2017 at 5:32 PM, Nico Weber via cfe-commits < >>> cfe-commits@lists.llvm.org> wrote: >>> >>>> Is it intentional that this change affects >>>> non-LIBCXX_HAS_EXTERNAL_THREAD_API builds at all?# >>>> >>> >>> Nope. But I'm not sure how this got broken on Mac. >>> >>> IIRC, <pthread.h> defines mach_port_t type on Mac, which gets included >>> when _LIBCPP_HAS_THREAD_API_PTHREAD is defined (which is what we expect >>> to be the case on Mac, normally). >>> >>> I'll have to build this on a Mac tomorrow. Hopefully that's OK? >>> >>> Cheers, >>> >>> / Asiri >>> >>> >>> >>>> >>>> On Wed, Jan 25, 2017 at 12:31 PM, Nico Weber <tha...@chromium.org> >>>> wrote: >>>> >>>>> This breaks all our mac builds with: >>>>> >>>>> /b/c/b/ClangToTMac__dbg_/src/third_party/llvm-build/Release+ >>>>> Asserts/bin/../include/c++/v1/__threading_support:154:1: error: >>>>> unknown type name 'mach_port_t' >>>>> mach_port_t __libcpp_thread_get_port(); >>>>> >>>>> On Tue, Jan 3, 2017 at 7:59 AM, Asiri Rathnayake via cfe-commits < >>>>> cfe-commits@lists.llvm.org> wrote: >>>>> >>>>>> Author: asiri >>>>>> Date: Tue Jan 3 06:59:50 2017 >>>>>> New Revision: 290889 >>>>>> >>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=290889&view=rev >>>>>> Log: >>>>>> [libcxx] Add build/test support for the externally threaded libc++abi >>>>>> variant >>>>>> >>>>>> Differential revision: https://reviews.llvm.org/D27576 >>>>>> >>>>>> Reviewers: EricWF >>>>>> >>>>>> Modified: >>>>>> libcxx/trunk/CMakeLists.txt >>>>>> libcxx/trunk/include/__threading_support >>>>>> libcxx/trunk/test/CMakeLists.txt >>>>>> libcxx/trunk/test/libcxx/test/config.py >>>>>> libcxx/trunk/test/lit.site.cfg.in >>>>>> >>>>>> Modified: libcxx/trunk/CMakeLists.txt >>>>>> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/CMakeLists. >>>>>> txt?rev=290889&r1=290888&r2=290889&view=diff >>>>>> ============================================================ >>>>>> ================== >>>>>> --- libcxx/trunk/CMakeLists.txt (original) >>>>>> +++ libcxx/trunk/CMakeLists.txt Tue Jan 3 06:59:50 2017 >>>>>> @@ -221,14 +221,21 @@ if(LIBCXX_ENABLE_THREADS AND NOT LIBCXX_ >>>>>> " when LIBCXX_ENABLE_THREADS is also set to >>>>>> OFF.") >>>>>> endif() >>>>>> >>>>>> -if(LIBCXX_HAS_PTHREAD_API AND NOT LIBCXX_ENABLE_THREADS) >>>>>> - message(FATAL_ERROR "LIBCXX_HAS_PTHREAD_API can only be set to ON" >>>>>> - " when LIBCXX_ENABLE_THREADS is also set to >>>>>> ON.") >>>>>> +if(NOT LIBCXX_ENABLE_THREADS) >>>>>> + if(LIBCXX_HAS_PTHREAD_API) >>>>>> + message(FATAL_ERROR "LIBCXX_HAS_PTHREAD_API can only be set to >>>>>> ON" >>>>>> + " when LIBCXX_ENABLE_THREADS is also set to >>>>>> ON.") >>>>>> + endif() >>>>>> + if(LIBCXX_HAS_EXTERNAL_THREAD_API) >>>>>> + message(FATAL_ERROR "LIBCXX_HAS_EXTERNAL_THREAD_API can only be >>>>>> set to ON" >>>>>> + " when LIBCXX_ENABLE_THREADS is also set to >>>>>> ON.") >>>>>> + endif() >>>>>> endif() >>>>>> >>>>>> -if(LIBCXX_HAS_EXTERNAL_THREAD_API AND NOT LIBCXX_ENABLE_THREADS) >>>>>> - message(FATAL_ERROR "LIBCXX_HAS_EXTERNAL_THREAD_API can only be >>>>>> set to ON" >>>>>> - " when LIBCXX_ENABLE_THREADS is also set to >>>>>> ON.") >>>>>> +if(LIBCXX_HAS_PTHREAD_API AND LIBCXX_HAS_EXTERNAL_THREAD_API) >>>>>> + message(FATAL_ERROR "The options LIBCXX_HAS_EXTERNAL_THREAD_API" >>>>>> + "and LIBCXX_HAS_PTHREAD_API cannot be both" >>>>>> + "set to ON at the same time.") >>>>>> endif() >>>>>> >>>>>> # Ensure LLVM_USE_SANITIZER is not specified when >>>>>> LIBCXX_GENERATE_COVERAGE >>>>>> >>>>>> Modified: libcxx/trunk/include/__threading_support >>>>>> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/__t >>>>>> hreading_support?rev=290889&r1=290888&r2=290889&view=diff >>>>>> ============================================================ >>>>>> ================== >>>>>> --- libcxx/trunk/include/__threading_support (original) >>>>>> +++ libcxx/trunk/include/__threading_support Tue Jan 3 06:59:50 2017 >>>>>> @@ -67,7 +67,11 @@ typedef pthread_mutex_t __libcpp_mutex_t >>>>>> typedef pthread_cond_t __libcpp_condvar_t; >>>>>> #define _LIBCPP_CONDVAR_INITIALIZER PTHREAD_COND_INITIALIZER >>>>>> >>>>>> -// THread ID >>>>>> +// Execute once >>>>>> +typedef pthread_once_t __libcpp_exec_once_flag; >>>>>> +#define _LIBCPP_EXEC_ONCE_INITIALIZER PTHREAD_ONCE_INIT >>>>>> + >>>>>> +// Thread id >>>>>> typedef pthread_t __libcpp_thread_id; >>>>>> >>>>>> // Thread >>>>>> @@ -110,7 +114,17 @@ int __libcpp_condvar_timedwait(__libcpp_ >>>>>> _LIBCPP_THREAD_ABI_VISIBILITY >>>>>> int __libcpp_condvar_destroy(__libcpp_condvar_t* __cv); >>>>>> >>>>>> -// Thread ID >>>>>> +// Execute once >>>>>> +_LIBCPP_THREAD_ABI_VISIBILITY >>>>>> +int __libcpp_execute_once(__libcpp_exec_once_flag *flag, >>>>>> + void (*init_routine)(void)); >>>>>> + >>>>>> +// Thread id >>>>>> +#if defined(__APPLE__) && !defined(__arm__) >>>>>> +_LIBCPP_THREAD_ABI_VISIBILITY >>>>>> +mach_port_t __libcpp_thread_get_port(); >>>>>> +#endif >>>>>> + >>>>>> _LIBCPP_THREAD_ABI_VISIBILITY >>>>>> bool __libcpp_thread_id_equal(__libcpp_thread_id t1, >>>>>> __libcpp_thread_id t2); >>>>>> >>>>>> @@ -145,7 +159,7 @@ _LIBCPP_THREAD_ABI_VISIBILITY >>>>>> void *__libcpp_tls_get(__libcpp_tls_key __key); >>>>>> >>>>>> _LIBCPP_THREAD_ABI_VISIBILITY >>>>>> -void __libcpp_tls_set(__libcpp_tls_key __key, void *__p); >>>>>> +int __libcpp_tls_set(__libcpp_tls_key __key, void *__p); >>>>>> >>>>>> #if defined(_LIBCPP_HAS_THREAD_API_PTHREAD) || \ >>>>>> defined(_LIBCPP_BUILDING_THREAD_API_EXTERNAL_PTHREAD) >>>>>> @@ -221,6 +235,19 @@ int __libcpp_condvar_destroy(__libcpp_co >>>>>> return pthread_cond_destroy(__cv); >>>>>> } >>>>>> >>>>>> +// Execute once >>>>>> +int __libcpp_execute_once(__libcpp_exec_once_flag *flag, >>>>>> + void (*init_routine)(void)) { >>>>>> + return pthread_once(flag, init_routine); >>>>>> +} >>>>>> + >>>>>> +// Thread id >>>>>> +#if defined(__APPLE__) && !defined(__arm__) >>>>>> +mach_port_t __libcpp_thread_get_port() { >>>>>> + return pthread_mach_thread_np(pthread_self()); >>>>>> +} >>>>>> +#endif >>>>>> + >>>>>> // Returns non-zero if the thread ids are equal, otherwise 0 >>>>>> bool __libcpp_thread_id_equal(__libcpp_thread_id t1, >>>>>> __libcpp_thread_id t2) >>>>>> { >>>>>> @@ -276,9 +303,9 @@ void *__libcpp_tls_get(__libcpp_tls_key >>>>>> return pthread_getspecific(__key); >>>>>> } >>>>>> >>>>>> -void __libcpp_tls_set(__libcpp_tls_key __key, void *__p) >>>>>> +int __libcpp_tls_set(__libcpp_tls_key __key, void *__p) >>>>>> { >>>>>> - pthread_setspecific(__key, __p); >>>>>> + return pthread_setspecific(__key, __p); >>>>>> } >>>>>> >>>>>> #endif // _LIBCPP_HAS_THREAD_API_PTHREAD >>>>>> >>>>>> Modified: libcxx/trunk/test/CMakeLists.txt >>>>>> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/CMakeL >>>>>> ists.txt?rev=290889&r1=290888&r2=290889&view=diff >>>>>> ============================================================ >>>>>> ================== >>>>>> --- libcxx/trunk/test/CMakeLists.txt (original) >>>>>> +++ libcxx/trunk/test/CMakeLists.txt Tue Jan 3 06:59:50 2017 >>>>>> @@ -55,18 +55,20 @@ configure_file( >>>>>> ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg >>>>>> @ONLY) >>>>>> >>>>>> +set(LIBCXX_TEST_DEPS "") >>>>>> + >>>>>> if (LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY) >>>>>> - set(experimental_dep cxx_experimental) >>>>>> + set(LIBCXX_TEST_DEPS cxx_experimental) >>>>>> endif() >>>>>> >>>>>> if (LIBCXX_HAS_EXTERNAL_THREAD_API) >>>>>> - set(external_threads_dep cxx_external_threads) >>>>>> + list(APPEND LIBCXX_TEST_DEPS cxx_external_threads) >>>>>> endif() >>>>>> >>>>>> add_lit_testsuite(check-cxx >>>>>> "Running libcxx tests" >>>>>> ${CMAKE_CURRENT_BINARY_DIR} >>>>>> - DEPENDS cxx ${experimental_dep} ${external_threads_dep}) >>>>>> + DEPENDS cxx ${LIBCXX_TEST_DEPS}) >>>>>> >>>>>> add_custom_target(check-libcxx DEPENDS check-cxx) >>>>>> >>>>>> >>>>>> Modified: libcxx/trunk/test/libcxx/test/config.py >>>>>> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx >>>>>> /test/config.py?rev=290889&r1=290888&r2=290889&view=diff >>>>>> ============================================================ >>>>>> ================== >>>>>> --- libcxx/trunk/test/libcxx/test/config.py (original) >>>>>> +++ libcxx/trunk/test/libcxx/test/config.py Tue Jan 3 06:59:50 2017 >>>>>> @@ -579,10 +579,6 @@ class Configuration(object): >>>>>> self.cxx.link_flags += [abs_path] >>>>>> else: >>>>>> self.cxx.link_flags += ['-lc++'] >>>>>> - # This needs to come after -lc++ as we want its unresolved >>>>>> thread-api symbols >>>>>> - # to be picked up from this one. >>>>>> - if self.get_lit_bool('libcxx_external_thread_api', >>>>>> default=False): >>>>>> - self.cxx.link_flags += ['-lc++external_threads'] >>>>>> >>>>>> def configure_link_flags_abi_library(self): >>>>>> cxx_abi = self.get_lit_conf('cxx_abi', 'libcxxabi') >>>>>> @@ -611,6 +607,8 @@ class Configuration(object): >>>>>> 'C++ ABI setting %s unsupported for tests' % cxx_abi) >>>>>> >>>>>> def configure_extra_library_flags(self): >>>>>> + if self.get_lit_bool('cxx_ext_threads', default=False): >>>>>> + self.cxx.link_flags += ['-lc++external_threads'] >>>>>> self.target_info.add_cxx_link_flags(self.cxx.link_flags) >>>>>> >>>>>> def configure_color_diagnostics(self): >>>>>> >>>>>> Modified: libcxx/trunk/test/lit.site.cfg.in >>>>>> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/lit.si >>>>>> te.cfg.in?rev=290889&r1=290888&r2=290889&view=diff >>>>>> ============================================================ >>>>>> ================== >>>>>> --- libcxx/trunk/test/lit.site.cfg.in (original) >>>>>> +++ libcxx/trunk/test/lit.site.cfg.in Tue Jan 3 06:59:50 2017 >>>>>> @@ -28,7 +28,7 @@ config.has_libatomic = "@LIBC >>>>>> config.use_libatomic = "@LIBCXX_HAVE_CXX_ATOMICS_WITH >>>>>> _LIB@" >>>>>> >>>>>> config.libcxxabi_shared = "@LIBCXXABI_ENABLE_SHARED@" >>>>>> -config.libcxx_external_thread_api = "@LIBCXX_HAS_EXTERNAL_THREAD_A >>>>>> PI@" >>>>>> +config.cxx_ext_threads = "@LIBCXX_HAS_EXTERNAL_THREAD_API@" >>>>>> >>>>>> # Let the main config do the real work. >>>>>> config.loaded_site_config = True >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> cfe-commits mailing list >>>>>> cfe-commits@lists.llvm.org >>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>>>>> >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> cfe-commits mailing list >>>> cfe-commits@lists.llvm.org >>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>>> >>>> >>> >>
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits