require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_GLIBCXX_BITS_STD_ABS_H)) {
    eval 'sub _GLIBCXX_BITS_STD_ABS_H () {1;}' unless defined(&_GLIBCXX_BITS_STD_ABS_H);
    require 'bits/c++config.ph';
    eval 'sub _GLIBCXX_INCLUDE_NEXT_C_HEADERS () {1;}' unless defined(&_GLIBCXX_INCLUDE_NEXT_C_HEADERS);
    eval {
	my(@REM);
	my(%INCD) = map { $INC{$_} => 1 } (grep { $_ eq "stdlib.ph" } keys(%INC));
	@REM = map { "$_/stdlib.ph" } (grep { not exists($INCD{"$_/stdlib.ph"}) and -f "$_/stdlib.ph" } @INC);
	require "$REM[0]" if @REM;
    };
    warn($@) if $@;
    if(defined(&__CORRECT_ISO_CPP_MATH_H_PROTO)) {
	eval {
	    my(@REM);
	    my(%INCD) = map { $INC{$_} => 1 } (grep { $_ eq "math.ph" } keys(%INC));
	    @REM = map { "$_/math.ph" } (grep { not exists($INCD{"$_/math.ph"}) and -f "$_/math.ph" } @INC);
	    require "$REM[0]" if @REM;
	};
	warn($@) if $@;
    }
    undef(&_GLIBCXX_INCLUDE_NEXT_C_HEADERS) if defined(&_GLIBCXX_INCLUDE_NEXT_C_HEADERS);
    undef(&abs) if defined(&abs);
    unless(defined(&__CORRECT_ISO_CPP_STDLIB_H_PROTO)) {
    }
    if(defined(&_GLIBCXX_USE_LONG_LONG)) {
    }
    unless(defined(&__CORRECT_ISO_CPP_MATH_H_PROTO)) {
    }
    if(defined(&__GLIBCXX_TYPE_INT_N_0)) {
    }
    if(defined(&__GLIBCXX_TYPE_INT_N_1)) {
    }
    if(defined(&__GLIBCXX_TYPE_INT_N_2)) {
    }
    if(defined(&__GLIBCXX_TYPE_INT_N_3)) {
    }
    if(!defined(&__STRICT_ANSI__)  && defined(&_GLIBCXX_USE_FLOAT128)) {
    }
}
1;
