Signature of exit() on C++

e$B$-$7$b$H$G$9e(B

trunk(rev. 14078) e$B$G!"$3$N$h$&$Ke(B mecab-ruby e$B$Ne(B make
e$B$G%3%1$^$9!#e(B

$ make
g++ -I. -I/usr/local/include/ruby-1.9/i686-linux
-I/usr/local/include/ruby-1.9 -I. -DHAVE_MECAB_H -D_FILE_OFFSET_BITS=64
-fPIC -g -O2 -c MeCab_wrap.cpp
/usr/include/stdlib.h:646: error: declaration of e$B!Fe(Bvoid exit(int)
throw ()e$B!Ge(B throws different exceptions
/usr/local/include/ruby-1.9/i686-linux/ruby/config.h:9: error: from
previous declaration e$B!Fe(Bvoid exit(int)e$B!Ge(B
make: *** [MeCab_wrap.o] Error 1

e$B4X78$"$k$+$I$&$+$o$+$j$^$;$s$,!"e(BFedora Core 6 e$B$G$9!#e(B
$ rpm -qf /usr/include/stdlib.h
glibc-headers-2.5-18.fc6
$ rpm -qf /usr/bin/g++
gcc-c+±4.1.2-13.fc6

e$B4X78$7$F$$$k%X%C%@$N5-=R$O$3$s$J46$8$G$9!#e(B

/usr/include/stdlib.h
646 extern void exit (int __status) __THROW attribute
((noreturn));

/usr/local/include/ruby-1.9/i686-linux/ruby/config.h
8 #ifdef __cplusplus
9 void exit (int);
10 #endif

Ruby e$B$NB&$NLdBj$N$h$&$K;W$$$^$7$?$N$G$3$A$i$KEj$2$^$7$?!#e(B
e$BB>$Ne(B C++ e$B$J3HD%%b%8%e!<%k$G$OBg>fIW$J$N$G$7$g$&$+!)e(B

e$B$J$+$@$G$9!#e(B

At Sun, 2 Dec 2007 22:08:11 +0900,
KISHIMOTO, Makoto wrote in [ruby-dev:32434]:

Ruby e$B$NB&$NLdBj$N$h$&$K;W$$$^$7$?$N$G$3$A$i$KEj$2$^$7$?!#e(B
e$BB>$Ne(B C++ e$B$J3HD%%b%8%e!<%k$G$OBg>fIW$J$N$G$7$g$&$+!)e(B

e$B;d$N$H$3$m$G$Oe(Bconfig.he$B$K$O%W%j%W%m%;%C%5L?Na0J30$O$J$$$N$G$9$,!"e(B
e$B$I$N%P!<%8%g%s$Ne(Bautoconfe$B$r;H$C$?$N$G$7$g$&$+!#e(B

/usr/local/include/ruby-1.9/i686-linux/ruby/config.h
8 #ifdef __cplusplus
9 void exit (int);
10 #endif

Ruby e$B$NB&$NLdBj$N$h$&$K;W$$$^$7$?$N$G$3$A$i$KEj$2$^$7$?!#e(B
e$BB>$Ne(B C++ e$B$J3HD%%b%8%e!<%k$G$OBg>fIW$J$N$G$7$g$&$+!)e(B

e$B;d$N$H$3$m$G$Oe(Bconfig.he$B$K$O%W%j%W%m%;%C%5L?Na0J30$O$J$$$N$G$9$,!"e(B
e$B$I$N%P!<%8%g%s$Ne(Bautoconfe$B$r;H$C$?$N$G$7$g$&$+!#e(B

2.59 e$B$G$7$?!#Aa$9$.$^$7$?$+e(B…

$ autoconf --version
autoconf (GNU Autoconf) 2.59
$ rpm -q autoconf
autoconf-2.59-12

2.61e$B$G$Oe(Bexit()e$B$N@k8@<+BN$7$J$/$J$C$F$$$k$h$&$G$9$,!"e(Bsnapshote$B$K$"e(B
e$B$ke(Bconfiguree$B$be(B2.59e$B$G:n$i$l$?$b$N$G!"e(Bstd::exit()e$B$de(Bthrow ()e$B$D$-$N@ke(B
e$B8@$b;n$7$F$$$k$h$&$K8+$($^$9!#0lEY!"e(BCXXe$B$rL@<($7$Fe(Bconfiguree$B$r;n$7e(B
e$B$F$_$F$b$i$($^$;$s$+!#e(B

e$B:rLk$N%9%J%C%W%7%g%C%H$G!“e(BCXX=g++ …/configure
e$B$7$F$_$^$7$?$,$3$s$J46$8$G$9!#e(B
e$B!J$$$D$N%9%J%C%W%7%g%C%H$+$r3NG’$9$kJ}K!$O$”$k$N$G$7$g$&$+!)!Ke(B

$ head -15 .ext/include/i686-linux/ruby/config.h

#define PACKAGE_NAME “”
#define PACKAGE_TARNAME “”
#define PACKAGE_VERSION “”
#define PACKAGE_STRING “”
#define PACKAGE_BUGREPORT “”
#define USE_BUILTIN_FRAME_ADDRESS 1
#ifdef __cplusplus
extern “C” void std::exit (int) throw (); using std::exit;
#endif
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1

e$B$J$+$@$G$9!#e(B

At Mon, 3 Dec 2007 00:12:40 +0900,
KISHIMOTO, Makoto wrote in [ruby-dev:32436]:

e$B;d$N$H$3$m$G$Oe(Bconfig.he$B$K$O%W%j%W%m%;%C%5L?Na0J30$O$J$$$N$G$9$,!"e(B
e$B$I$N%P!<%8%g%s$Ne(Bautoconfe$B$r;H$C$?$N$G$7$g$&$+!#e(B

2.59 e$B$G$7$?!#Aa$9$.$^$7$?$+e(B…

$ autoconf --version
autoconf (GNU Autoconf) 2.59
$ rpm -q autoconf
autoconf-2.59-12

2.61e$B$G$Oe(Bexit()e$B$N@k8@<+BN$7$J$/$J$C$F$$$k$h$&$G$9$,!"e(Bsnapshote$B$K$"e(B
e$B$ke(Bconfiguree$B$be(B2.59e$B$G:n$i$l$?$b$N$G!"e(Bstd::exit()e$B$de(Bthrow
()e$B$D$-$N@ke(B
e$B8@$b;n$7$F$$$k$h$&$K8+$($^$9!#0lEY!"e(BCXXe$B$rL@<($7$Fe(Bconfiguree$B$r;n$7e(B
e$B$F$_$F$b$i$($^$;$s$+!#e(B

e$B$J$+$@$G$9!#e(B

At Mon, 3 Dec 2007 13:10:07 +0900,
KISHIMOTO, Makoto wrote in [ruby-dev:32440]:

2.61e$B$G$Oe(Bexit()e$B$N@k8@<+BN$7$J$/$J$C$F$$$k$h$&$G$9$,!"e(Bsnapshote$B$K$"e(B
e$B$ke(Bconfiguree$B$be(B2.59e$B$G:n$i$l$?$b$N$G!"e(Bstd::exit()e$B$de(Bthrow ()e$B$D$-$N@ke(B
e$B8@$b;n$7$F$$$k$h$&$K8+$($^$9!#0lEY!"e(BCXXe$B$rL@<($7$Fe(Bconfiguree$B$r;n$7e(B
e$B$F$_$F$b$i$($^$;$s$+!#e(B

e$B:rLk$N%9%J%C%W%7%g%C%H$G!"e(BCXX=g++ …/configure e$B$7$F$_$^$7$?$,$3$s$J46$8$G$9!#e(B

e$B$*$=$i$/F1$8%9%J%C%W%7%g%C%H$@$H;W$$$^$9$,!"<j85$G;n$7$?$H$3$me(B
CXXe$B$r;XDj$7$J$/$F$bF1$87k2L$K$J$j$^$7$?!#e(B

e$B$`$7$m!"e(B[ruby-dev:32434]e$B$G$Oe(Bg++e$B$,;H$o$l$F$$$k$N$Ke(BC++e$B7A<0$N@k8@$Ke(B
e$B$J$C$F$$$J$$$3$H$,IT;W5D$G$9!#e(Btrunke$B$r%3%s%Q%$%k$7$?$H$-$K$be(Bg++e$B$,e(B
e$B;H$($k>uBV$@$C$?$N$G$7$g$&$+!#e(B

e$B!J$$$D$N%9%J%C%W%7%g%C%H$+$r3NG’$9$kJ}K!$O$"$k$N$G$7$g$&$+!)!Ke(B

e$BD>@%j%S%8%g%s$rD4$Y$kJ}K!$O$“$j$^$;$s!#%A%'%C%/%”%&%H$5$l$?D>8ee(B
e$B$Ke(Bconfiguree$B$,@8@.$5$l$F$$$k$O$:$J$N$G!"$=$N;~9o$+$iD4$Y$k$7$+$Je(B
e$B$$$G$7$g$&!#e(B

$ svn info -r{“$(find ruby/configure -printf “%TY-%Tm-%Td %TT”)”}
http://svn.ruby-lang.org/repos/ruby/trunk
e$B%Q%9e(B: trunk
URL: http://svn.ruby-lang.org/repos/ruby/trunk
e$B%j%]%8%H%j$N%k!<%He(B: http://svn.ruby-lang.org/repos/ruby
e$B%j%]%8%H%je(B UUID: b2dd03c8-39d4-4d8f-98ff-823fe69b080e
e$B%j%S%8%g%se(B: 14088
e$B%N!<%I<oJLe(B: e$B%G%#%l%/%H%je(B
e$B:G=*JQ99<Te(B: akr
e$B:G=*JQ99%j%S%8%g%se(B: 14088
e$B:G=*JQ99F|;~e(B: 2007-12-03 00:46:21 +0900 (e$B7ne(B, 03 12e$B7ne(B
2007)

e$B$`$7$m!"e(B[ruby-dev:32434]e$B$G$Oe(Bg++e$B$,;H$o$l$F$$$k$N$Ke(BC++e$B7A<0$N@k8@$Ke(B
e$B$J$C$F$$$J$$$3$H$,IT;W5D$G$9!#e(Btrunke$B$r%3%s%Q%$%k$7$?$H$-$K$be(Bg++e$B$,e(B
e$B;H$($k>uBV$@$C$?$N$G$7$g$&$+!#e(B

e$B$*A{$,$;$7$^$7$?!#%S%s%4$G$7$?e(B

mecab-ruby e$B$re(B make e$B$7$h$&$H$7$Fe(B g++
e$B$,L5$+$C$?$N$GF~$l$?5-21$,e(B
e$B$"$j$^$9$N$G!"$=$&$$$&$3$H$G$7$?e(B
e$B!Je(Bg++e$B$,F~$C$F$J$$4D6-$C$F$J$s$J$s$@$h!"$H8@$o$l$=$&e(B…e$B!Ke(B