require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_GLIBCXX_ATOMIC_LOCK_FREE_H)) {
    eval 'sub _GLIBCXX_ATOMIC_LOCK_FREE_H () {1;}' unless defined(&_GLIBCXX_ATOMIC_LOCK_FREE_H);
    if((defined(&__cplusplus) ? &__cplusplus : undef) >= 201103) {
	eval 'sub ATOMIC_BOOL_LOCK_FREE () { &__GCC_ATOMIC_BOOL_LOCK_FREE;}' unless defined(&ATOMIC_BOOL_LOCK_FREE);
	eval 'sub ATOMIC_CHAR_LOCK_FREE () { &__GCC_ATOMIC_CHAR_LOCK_FREE;}' unless defined(&ATOMIC_CHAR_LOCK_FREE);
	eval 'sub ATOMIC_WCHAR_T_LOCK_FREE () { &__GCC_ATOMIC_WCHAR_T_LOCK_FREE;}' unless defined(&ATOMIC_WCHAR_T_LOCK_FREE);
	if(defined(&_GLIBCXX_USE_CHAR8_T)) {
	    eval 'sub ATOMIC_CHAR8_T_LOCK_FREE () { &__GCC_ATOMIC_CHAR8_T_LOCK_FREE;}' unless defined(&ATOMIC_CHAR8_T_LOCK_FREE);
	}
	eval 'sub ATOMIC_CHAR16_T_LOCK_FREE () { &__GCC_ATOMIC_CHAR16_T_LOCK_FREE;}' unless defined(&ATOMIC_CHAR16_T_LOCK_FREE);
	eval 'sub ATOMIC_CHAR32_T_LOCK_FREE () { &__GCC_ATOMIC_CHAR32_T_LOCK_FREE;}' unless defined(&ATOMIC_CHAR32_T_LOCK_FREE);
	eval 'sub ATOMIC_SHORT_LOCK_FREE () { &__GCC_ATOMIC_SHORT_LOCK_FREE;}' unless defined(&ATOMIC_SHORT_LOCK_FREE);
	eval 'sub ATOMIC_INT_LOCK_FREE () { &__GCC_ATOMIC_INT_LOCK_FREE;}' unless defined(&ATOMIC_INT_LOCK_FREE);
	eval 'sub ATOMIC_LONG_LOCK_FREE () { &__GCC_ATOMIC_LONG_LOCK_FREE;}' unless defined(&ATOMIC_LONG_LOCK_FREE);
	eval 'sub ATOMIC_LLONG_LOCK_FREE () { &__GCC_ATOMIC_LLONG_LOCK_FREE;}' unless defined(&ATOMIC_LLONG_LOCK_FREE);
	eval 'sub ATOMIC_POINTER_LOCK_FREE () { &__GCC_ATOMIC_POINTER_LOCK_FREE;}' unless defined(&ATOMIC_POINTER_LOCK_FREE);
    }
}
1;
