… | |
… | |
32 | AC_AIX |
32 | AC_AIX |
33 | AC_GNU_SOURCE |
33 | AC_GNU_SOURCE |
34 | AC_ISC_POSIX |
34 | AC_ISC_POSIX |
35 | AC_LANG(C++) |
35 | AC_LANG(C++) |
36 | |
36 | |
|
|
37 | LINKER="$CXX" |
37 | dnl check whether we can link with gcc -lsupc++ |
38 | dnl check whether we can link with gcc -lsupc++ |
38 | if test x$GCC = xyes && test x$GXX = xyes; then |
39 | if test x$GCC = xyes && test x$GXX = xyes; then |
39 | dnl FreeBSD (at least up to 5.3) has a broken GCC, workaround it |
40 | dnl FreeBSD (at least up to 5.3) has a broken GCC, workaround it |
40 | AC_MSG_CHECKING([for working libsupc++]) |
41 | AC_MSG_CHECKING([for working libsupc++]) |
41 | save_CXX="$CXX" |
42 | save_CXX="$CXX" |
42 | save_LIBS="$LIBS" |
43 | save_LIBS="$LIBS" |
43 | CXX="$CC" |
44 | CXX="$CC" |
44 | LIBS="$LIBS -lsupc++" |
45 | LIBS="$LIBS -lsupc++" |
45 | LINKER="$CC" |
|
|
46 | AC_LINK_IFELSE( |
46 | AC_LINK_IFELSE( |
47 | [AC_LANG_PROGRAM([struct test { }; void f() try { throw new test; } catch (...) { throw; }],[])], |
47 | [AC_LANG_PROGRAM([struct test { }; void f() try { throw new test; } catch (...) { throw; }],[])], |
48 | [AC_MSG_RESULT(ok)], |
48 | [AC_MSG_RESULT(ok) |
|
|
49 | LINKER="$CC"], |
49 | [ |
50 | [ |
50 | AC_MSG_RESULT([no, making everything bigger and slower]) |
51 | AC_MSG_RESULT([no, making everything bigger and slower]) |
51 | LIBS="$save_LIBS" |
52 | LIBS="$save_LIBS" |
52 | LINKER="$save_CXX" |
|
|
53 | ] |
53 | ] |
54 | ) |
54 | ) |
55 | CXX="$save_CXX" |
55 | CXX="$save_CXX" |
56 | fi |
56 | fi |
57 | AC_SUBST(LINKER,[$LINKER]) |
57 | AC_SUBST(LINKER,[$LINKER]) |