… | |
… | |
83 | $iface = lc $1 if $r =~ /(\S)/; |
83 | $iface = lc $1 if $r =~ /(\S)/; |
84 | |
84 | |
85 | if ($iface eq "u") { |
85 | if ($iface eq "u") { |
86 | $DEFINE .= " -DCORO_UCONTEXT"; |
86 | $DEFINE .= " -DCORO_UCONTEXT"; |
87 | print "\nUsing ucontext implementation\n\n"; |
87 | print "\nUsing ucontext implementation\n\n"; |
|
|
88 | conftest("TEST_makecontext"); |
88 | } elsif ($iface eq "s") { |
89 | } elsif ($iface eq "s") { |
89 | $DEFINE .= " -DCORO_SJLJ"; |
90 | $DEFINE .= " -DCORO_SJLJ"; |
90 | print "\nUsing setjmp/longjmp/sigaltstack implementation\n\n"; |
91 | print "\nUsing setjmp/longjmp/sigaltstack implementation\n\n"; |
|
|
92 | conftest("TEST_sigaltstack"); |
91 | } elsif ($iface eq "l") { |
93 | } elsif ($iface eq "l") { |
92 | $DEFINE .= " -DCORO_LINUX"; |
94 | $DEFINE .= " -DCORO_LINUX"; |
93 | print "\nUsing linux-specific implementation\n\n"; |
95 | print "\nUsing linux-specific implementation\n\n"; |
94 | } elsif ($iface eq "i") { |
96 | } elsif ($iface eq "i") { |
95 | $DEFINE .= " -DCORO_IRIX"; |
97 | $DEFINE .= " -DCORO_IRIX"; |
… | |
… | |
123 | 'SemaphoreSet.pm' => '$(INST_LIBDIR)/SemaphoreSet.pm', |
125 | 'SemaphoreSet.pm' => '$(INST_LIBDIR)/SemaphoreSet.pm', |
124 | 'RWLock.pm' => '$(INST_LIBDIR)/RWLock.pm', |
126 | 'RWLock.pm' => '$(INST_LIBDIR)/RWLock.pm', |
125 | }, |
127 | }, |
126 | ); |
128 | ); |
127 | |
129 | |
|
|
130 | sub conftest { |
|
|
131 | my $type = shift; |
|
|
132 | |
|
|
133 | print "\nTrying to detect stack growth direction (for $type)\n"; |
|
|
134 | print "You might see some warnings, this should not concern you.\n\n"; |
|
|
135 | system "$Config{cc} $Config{ccflags} -D$type libcoro/conftest.c"; |
|
|
136 | |
|
|
137 | my $res = qx<./a.out>; |
|
|
138 | $res =~ s/\s+$//; |
|
|
139 | my ($sp, $ss) = split /,/, $res; |
|
|
140 | |
|
|
141 | print "\n\n*****************************************************************************\n"; |
|
|
142 | print "If the testsuite fails PLEASE provide the following information\n"; |
|
|
143 | print "to Marc Lehmann <pcg\@goof.com>: operating system name, version,\n"; |
|
|
144 | print "architecture name and this string '$sp|$ss'. Thanks a lot!\n";#d# |
|
|
145 | print "*****************************************************************************\n\n"; |
|
|
146 | |
|
|
147 | unlink "a.out"; |
|
|
148 | } |
128 | |
149 | |
129 | |
150 | |