Displaying 5 results from an estimated 5 matches for "__cxa_guard_abort".
2017 Jun 06
3
libc++ failed to link against musl
...t; LLVM_DEFAULT_TARGET_TRIPLE=x86_64-pc-linux-musl
>> LLVM_TARGET_ARCH=x86_64
>> LLVM_TARGETS_TO_BUILD=X86
>>
>> When linking libc++.so there are a lot of undefined references to __cxa_allocate_exception, __cxa_begin_catch, __cxa_end_catch, __cxa_free_exception, __cxa_guard_abort, __cxa_guard_acquire, __cxa_guard_release, __cxa_pure_virtual, __cxa_rethrow, __cxa_throw, __gxx_personality_v0, _Unwind_Resume, vtable for __cxxabiv1::__class_type_info, vtable for __cxxabiv1::__si_class_type_info, vtable for __cxxabiv1::__vmi_class_type_info. The full output of the linking comman...
2017 Jun 05
3
libc++ failed to link against musl
...CLANG_DEFAULT_RTLIB=compiler-rt
LLVM_DEFAULT_TARGET_TRIPLE=x86_64-pc-linux-musl
LLVM_TARGET_ARCH=x86_64
LLVM_TARGETS_TO_BUILD=X86
When linking libc++.so there are a lot of undefined references to __cxa_allocate_exception, __cxa_begin_catch, __cxa_end_catch, __cxa_free_exception, __cxa_guard_abort, __cxa_guard_acquire, __cxa_guard_release, __cxa_pure_virtual, __cxa_rethrow, __cxa_throw, __gxx_personality_v0, _Unwind_Resume, vtable for __cxxabiv1::__class_type_info, vtable for __cxxabiv1::__si_class_type_info, vtable for __cxxabiv1::__vmi_class_type_info. The full output of the linking comman...
2011 Nov 07
0
[LLVMdev] weak_odr constant versus weak_odr global
...n be folded, we emit that
value as a weak_odr constant. The dynamic initialization code works like this:
if (((char*)guard)[0] == 0) {
if (__cxa_guard_acquire(guard)) {
if (object is zero-initialized) {
try {
... initialize object ...
} catch (...) {
__cxa_guard_abort(guard);
throw;
}
... enqueue dtor with __cxa_atexit ...
}
__cxa_guard_release(guard);
}
}
The zero-initialization check ensures that we never run both the static and
dynamic initialization, unless the static initialization produces the value 0
(which is...
2011 Nov 07
3
[LLVMdev] weak_odr constant versus weak_odr global
2011/11/7 Rafael Espíndola <rafael.espindola at gmail.com>:
> I tried a small variation:
>
> struct S {
> static const int x;
> };
> template<typename T> struct U {
> static const int k;
> };
> template<typename T> const int U<T>::k = T::x;
>
> #ifdef TU1
> extern int f();
> const int S::x = 42;
> int main() {
> return f() +
2020 Mar 25
2
Build Clang/LLVM for AVR
Thank you for both of your input. Yes, I try to cross-compile for AVR, the simple ATMEGA328P used in every Arduino Uno. My main motivation being that I hope to be able to use a couple of STL containers, <functional> and <type_traits> on the MCU. Not sure though if this can be reached by going via the clang route.
Getting back to the compilation: when I run clang with both both