MPACK 0.6.5のリリース準備を行っているが、Cコンパイラの__attribute__サポートを要求するようにした。嗚呼ポータビリティ...といいつつメジャーどころであるgcc, iccなどがサポートしているので問題ないだろう。PGIなどはサポートしていないらしい(さくっと無視するとのこと)仕方ないのでconfigureで調べることにした。これで./configureが落ちたらあなたのC++コンパイラは腐っている。速やかにgccかよいコンパイラにとりかえるべし。以下の私が作ったpublic domainのコードを参考のこと。
AC_MSG_CHECKING([whether gcc __attribute__ ((constructor)) extension works]) AC_TRY_RUN([ #if STDC_HEADERS #include <stdio.h> #include <stdlib.h> #endif int isexistattribute = 1; void init() __attribute__((constructor)); void init() { isexistattribute = 0; } int main() { exit(isexistattribute);} ],[AC_MSG_RESULT([yes])], [AC_MSG_ERROR([your compiler doesn't support gcc __attribute__((constructor)) ]) ])