use ExtUtils::MakeMaker; use 5.005; use Config; $|=1; $DEFINE = ""; print <= 2.5) stop working with this implementation again. i IRIX. For some reason, SGI really does not like to follow the single unix specification (does that surprise you?), so this workaround might be needed (it's fast), although [s] and [u] should also work now. w Microsoft Windows. Try this on Microsoft Windows, although, as there is no standard on how to do this under windows, this might work only on cygwin or specific versions of msvc. Your problem, your fix, our patch. For most systems, the default chosen should be OK. If you experience problems then you should experiment with this setting and/or turn off optimizations (make OPTIMIZE=-O0). EOF retry: my $r = prompt "Use which implementation,\n" . "et/longjump, context, ssembly, rix, inux or indows?", $iface; $iface = lc $1 if $r =~ /(\S)/; if ($iface eq "u") { $DEFINE .= " -DCORO_UCONTEXT"; print "\nUsing ucontext implementation\n\n"; conftest("TEST_makecontext"); } elsif ($iface eq "s") { $DEFINE .= " -DCORO_SJLJ"; print "\nUsing setjmp/longjmp/sigaltstack implementation\n\n"; conftest("TEST_sigaltstack"); } elsif ($iface eq "l") { $DEFINE .= " -DCORO_LINUX"; print "\nUsing linux-specific implementation\n\n"; } elsif ($iface eq "i") { $DEFINE .= " -DCORO_IRIX"; print "\nUsing irix-specific implementation\n\n"; } elsif ($iface eq "w") { $DEFINE .= " -DCORO_LOSER"; print "\nUsing windows-specific implementation\n\n"; } elsif ($iface eq "a") { $DEFINE .= " -DCORO_ASM"; print "\nUsing handcoded assembly implementation\n\n"; } else { print "\nUnknown implementation \"$iface\"\n"; goto retry; } print < header file available. Valgrind support is completely optional, so the default of disabling it is the safe choice. EOF my $valgrind = prompt ("Enable valgrind support (y/n)?", -r "/usr/include/valgrind/valgrind.h" ? "y" : "n"); $DEFINE .= " -DCORO_USE_VALGRIND=1" if $valgrind =~ /[yY]/; print < "Coro::State", VERSION_FROM => "State.pm", DEFINE => $DEFINE, DIR => [], ); sub conftest { my $type = shift; print "\nTrying to detect stack growth direction (for $type)\n"; print "You might see some warnings, this should not concern you.\n\n"; system "$Config{cc} $Config{ccflags} -D$type libcoro/conftest.c"; my $res = qx<./a.out>; $res =~ s/\s+$//; my ($sp, $ss) = split /,/, $res; print "\n\n*****************************************************************************\n"; print "If the testsuite fails PLEASE provide the following information\n"; print "to Marc Lehmann : operating system name, version,\n"; print "architecture name and this string '$sp|$ss'. Thanks a lot!\n";#d# print "*****************************************************************************\n\n"; unlink "a.out"; unlink "conftestval"; } print <