From 673f4590cd6639fc3ecb17cd4af8c73f5e86a55e Mon Sep 17 00:00:00 2001 From: John Maddock Date: Wed, 31 Oct 2001 13:06:25 +0000 Subject: [PATCH] Added test support for BOOST_HAS_SGI_TYPE_TRAITS, added test for -lrt in configure script. [SVN r11488] --- configure | 153 ++++++++++++++++++----------- test/boost_has_sgi_type_traits.ipp | 34 +++++++ test/config_info.cpp | 1 + test/config_test.cpp | 8 +- test/has_sgi_type_traits_fail.cpp | 36 +++++++ test/has_sgi_type_traits_pass.cpp | 36 +++++++ test/regression.cfg | 2 + tools/configure.in | 13 +-- 8 files changed, 215 insertions(+), 68 deletions(-) create mode 100644 test/boost_has_sgi_type_traits.ipp create mode 100644 test/has_sgi_type_traits_fail.cpp create mode 100644 test/has_sgi_type_traits_pass.cpp diff --git a/configure b/configure index 89c9d49e..42c380b0 100644 --- a/configure +++ b/configure @@ -1550,6 +1550,58 @@ EOF fi ac_cv_lib_m=ac_cv_lib_m_main +echo "$as_me:1553: checking for main in -lrt" >&5 +echo $ECHO_N "checking for main in -lrt... $ECHO_C" >&6 +if test "${ac_cv_lib_rt_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line 1561 "configure" +#include "confdefs.h" + +int +main () +{ +main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:1573: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:1576: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:1579: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:1582: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_rt_main=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_rt_main=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:1593: result: $ac_cv_lib_rt_main" >&5 +echo "${ECHO_T}$ac_cv_lib_rt_main" >&6 +if test $ac_cv_lib_rt_main = yes; then + cat >>confdefs.h <&5 + echo "$as_me:1623: checking $title (pass expected) " >&5 echo $ECHO_N "checking $title (pass expected) ... $ECHO_C" >&6 else - echo "$as_me:1574: checking $title " >&5 + echo "$as_me:1626: checking $title " >&5 echo $ECHO_N "checking $title ... $ECHO_C" >&6 fi cat >conftest.$ac_ext <<_ACEOF -#line 1578 "configure" +#line 1630 "configure" #include "confdefs.h" #include @@ -1603,24 +1655,24 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:1606: \"$ac_link\"") >&5 +if { (eval echo "$as_me:1658: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:1609: \$? = $ac_status" >&5 + echo "$as_me:1661: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:1612: \"$ac_try\"") >&5 + { (eval echo "$as_me:1664: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1615: \$? = $ac_status" >&5 + echo "$as_me:1667: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - echo "$as_me:1617: result: OK" >&5 + echo "$as_me:1669: result: OK" >&5 echo "${ECHO_T}OK" >&6 else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 -echo "$as_me:1623: result: Failed" >&5 +echo "$as_me:1675: result: Failed" >&5 echo "${ECHO_T}Failed" >&6 required_defs="$macroname $required_defs" @@ -1630,10 +1682,10 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext if test $enable_test = 'yes'; then ac_ext=$use_ac_ext - echo "$as_me:1633: checking $title (fail expected) " >&5 + echo "$as_me:1685: checking $title (fail expected) " >&5 echo $ECHO_N "checking $title (fail expected) ... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line 1636 "configure" +#line 1688 "configure" #include "confdefs.h" #include @@ -1661,25 +1713,25 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:1664: \"$ac_link\"") >&5 +if { (eval echo "$as_me:1716: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:1667: \$? = $ac_status" >&5 + echo "$as_me:1719: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:1670: \"$ac_try\"") >&5 + { (eval echo "$as_me:1722: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1673: \$? = $ac_status" >&5 + echo "$as_me:1725: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - echo "$as_me:1675: result: failed" >&5 + echo "$as_me:1727: result: failed" >&5 echo "${ECHO_T}failed" >&6 required_undefs="$macroname $required_undefs" else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 -echo "$as_me:1682: result: OK" >&5 +echo "$as_me:1734: result: OK" >&5 echo "${ECHO_T}OK" >&6 fi @@ -1706,10 +1758,10 @@ for file in ./test/boost_has*.cxx; do ac_ext=$use_ac_ext if test $enable_test = 'yes'; then - echo "$as_me:1709: checking $title (pass expected) " >&5 + echo "$as_me:1761: checking $title (pass expected) " >&5 echo $ECHO_N "checking $title (pass expected) ... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line 1712 "configure" +#line 1764 "configure" #include "confdefs.h" #include @@ -1737,34 +1789,34 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:1740: \"$ac_link\"") >&5 +if { (eval echo "$as_me:1792: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:1743: \$? = $ac_status" >&5 + echo "$as_me:1795: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:1746: \"$ac_try\"") >&5 + { (eval echo "$as_me:1798: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1749: \$? = $ac_status" >&5 + echo "$as_me:1801: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - echo "$as_me:1751: result: OK" >&5 + echo "$as_me:1803: result: OK" >&5 echo "${ECHO_T}OK" >&6 else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 -echo "$as_me:1757: result: Failed" >&5 +echo "$as_me:1809: result: Failed" >&5 echo "${ECHO_T}Failed" >&6 required_undefs="$macroname $required_undefs" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - echo "$as_me:1764: checking $title (fail expected) " >&5 + echo "$as_me:1816: checking $title (fail expected) " >&5 echo $ECHO_N "checking $title (fail expected) ... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line 1767 "configure" +#line 1819 "configure" #include "confdefs.h" #include @@ -1792,19 +1844,19 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:1795: \"$ac_link\"") >&5 +if { (eval echo "$as_me:1847: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:1798: \$? = $ac_status" >&5 + echo "$as_me:1850: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:1801: \"$ac_try\"") >&5 + { (eval echo "$as_me:1853: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1804: \$? = $ac_status" >&5 + echo "$as_me:1856: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - echo "$as_me:1807: result: failed" >&5 + echo "$as_me:1859: result: failed" >&5 echo "${ECHO_T}failed" >&6 required_defs="$macroname $required_defs" @@ -1812,7 +1864,7 @@ else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 - echo "$as_me:1815: result: OK" >&5 + echo "$as_me:1867: result: OK" >&5 echo "${ECHO_T}OK" >&6 fi @@ -1821,10 +1873,10 @@ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext else ac_ext=$use_ac_ext - echo "$as_me:1824: checking $title" >&5 + echo "$as_me:1876: checking $title" >&5 echo $ECHO_N "checking $title... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line 1827 "configure" +#line 1879 "configure" #include "confdefs.h" #include @@ -1848,19 +1900,19 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:1851: \"$ac_link\"") >&5 +if { (eval echo "$as_me:1903: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:1854: \$? = $ac_status" >&5 + echo "$as_me:1906: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:1857: \"$ac_try\"") >&5 + { (eval echo "$as_me:1909: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1860: \$? = $ac_status" >&5 + echo "$as_me:1912: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - echo "$as_me:1863: result: Yes" >&5 + echo "$as_me:1915: result: Yes" >&5 echo "${ECHO_T}Yes" >&6 required_defs="$macroname $required_defs" @@ -1868,7 +1920,7 @@ else echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 - echo "$as_me:1871: result: no" >&5 + echo "$as_me:1923: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1944,17 +1996,6 @@ for name in $required_defs; do echo '#define '"$name" >> user.hpp done -cat << EOF - -Adjustments to boost configuration have been written to -user.hpp, copy this to boost/config/user.hpp to use "as is", -or define BOOST_SITE_CONFIG to point to its location. - -TREAT THIS FILE WITH CARE. -Autoconf generated options are not infallible! - -EOF - cat_conts=`cat user.hpp` ac_config_commands="$ac_config_commands default" @@ -2013,7 +2054,7 @@ rm -f confdef2opt.sed : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:2016: creating $CONFIG_STATUS" >&5 +{ echo "$as_me:2057: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL @@ -2178,7 +2219,7 @@ cat >>$CONFIG_STATUS <<\EOF echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header - { { echo "$as_me:2181: error: ambiguous option: $1 + { { echo "$as_me:2222: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} @@ -2197,7 +2238,7 @@ Try \`$0 --help' for more information." >&2;} ac_need_defaults=false;; # This is an error. - -*) { { echo "$as_me:2200: error: unrecognized option: $1 + -*) { { echo "$as_me:2241: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} @@ -2242,7 +2283,7 @@ do case "$ac_config_target" in # Handling of arguments. "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - *) { { echo "$as_me:2245: error: invalid argument: $ac_config_target" >&5 + *) { { echo "$as_me:2286: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac diff --git a/test/boost_has_sgi_type_traits.ipp b/test/boost_has_sgi_type_traits.ipp new file mode 100644 index 00000000..6c5fcef9 --- /dev/null +++ b/test/boost_has_sgi_type_traits.ipp @@ -0,0 +1,34 @@ +// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and +// distribute this software is granted provided this copyright notice appears +// in all copies. This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. + +// MACRO: BOOST_HAS_SGI_TYPE_TRAITS +// TITLE: SGI style +// DESCRIPTION: The standard library has it's own type_traits implementation. + +#include + + +namespace boost_has_sgi_type_traits{ + +struct foo_type{}; + +int test() +{ + ::__true_type t; + ::__false_type f; + typedef ::__type_traits::has_trivial_destructor td; + typedef ::__type_traits::has_trivial_assignment_operator ta; + typedef ::__type_traits::has_trivial_copy_constructor tc; + typedef ::__type_traits::has_trivial_default_constructor tdc; + typedef ::__type_traits::is_POD_type isp; + + return 0; +} + +} + + + + diff --git a/test/config_info.cpp b/test/config_info.cpp index 67d68c66..df69b4bf 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -836,6 +836,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_HAS_PTHREAD_YIELD); PRINT_MACRO(BOOST_HAS_PTHREADS); PRINT_MACRO(BOOST_HAS_SCHED_YIELD); + PRINT_MACRO(BOOST_HAS_SGI_TYPE_TRAITS); PRINT_MACRO(BOOST_HAS_STDINT_H); PRINT_MACRO(BOOST_HAS_SLIST); PRINT_MACRO(BOOST_HAS_STLP_USE_FACET); diff --git a/test/config_test.cpp b/test/config_test.cpp index a9ad8627..fabc17d1 100644 --- a/test/config_test.cpp +++ b/test/config_test.cpp @@ -10,7 +10,7 @@ // Do not edit this file, it was generated automatically by // ../tools/generate from boost_*.cxx on -// Wed Oct 17 12:10:00 2001 +// Wed Oct 31 12:19:39 2001 #include #define BOOST_INCLUDE_MAIN @@ -287,6 +287,11 @@ namespace boost_has_pthreads = empty_boost; #else namespace boost_has_sched_yield = empty_boost; #endif +#ifdef BOOST_HAS_SGI_TYPE_TRAITS +#include "boost_has_sgi_type_traits.cxx" +#else +namespace boost_has_sgi_type_traits = empty_boost; +#endif #ifdef BOOST_HAS_SLIST #include "boost_has_slist.cxx" #else @@ -371,6 +376,7 @@ int test_main( int, char *[] ) BOOST_TEST(0 == boost_has_stlp_use_facet::test()); BOOST_TEST(0 == boost_has_stdint_h::test()); BOOST_TEST(0 == boost_has_slist::test()); + BOOST_TEST(0 == boost_has_sgi_type_traits::test()); BOOST_TEST(0 == boost_has_sched_yield::test()); BOOST_TEST(0 == boost_has_pthreads::test()); BOOST_TEST(0 == boost_has_pthread_yield::test()); diff --git a/test/has_sgi_type_traits_fail.cpp b/test/has_sgi_type_traits_fail.cpp new file mode 100644 index 00000000..534eeaaf --- /dev/null +++ b/test/has_sgi_type_traits_fail.cpp @@ -0,0 +1,36 @@ + +// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and +// distribute this software is granted provided this copyright notice appears +// in all copies. This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. + +// Test file for macro BOOST_HAS_SGI_TYPE_TRAITS +// This file should not compile, if it does then +// BOOST_HAS_SGI_TYPE_TRAITS may be defined. +// see boost_has_sgi_type_traits.cxx for more details + +// Do not edit this file, it was generated automatically by +// ../tools/generate from boost_has_sgi_type_traits.cxx on +// Wed Oct 31 12:19:39 2001 + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include +#include "test.hpp" + +#ifndef BOOST_HAS_SGI_TYPE_TRAITS +#include "boost_has_sgi_type_traits.cxx" +#else +#error "this file should not compile" +#endif + +int cpp_main( int, char *[] ) +{ + return boost_has_sgi_type_traits::test(); +} + diff --git a/test/has_sgi_type_traits_pass.cpp b/test/has_sgi_type_traits_pass.cpp new file mode 100644 index 00000000..e3f45915 --- /dev/null +++ b/test/has_sgi_type_traits_pass.cpp @@ -0,0 +1,36 @@ + +// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and +// distribute this software is granted provided this copyright notice appears +// in all copies. This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. + +// Test file for macro BOOST_HAS_SGI_TYPE_TRAITS +// This file should compile, if it does not then +// BOOST_HAS_SGI_TYPE_TRAITS should not be defined. +// see boost_has_sgi_type_traits.cxx for more details + +// Do not edit this file, it was generated automatically by +// ../tools/generate from boost_has_sgi_type_traits.cxx on +// Wed Oct 31 12:19:39 2001 + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include +#include "test.hpp" + +#ifdef BOOST_HAS_SGI_TYPE_TRAITS +#include "boost_has_sgi_type_traits.cxx" +#else +namespace boost_has_sgi_type_traits = empty_boost; +#endif + +int cpp_main( int, char *[] ) +{ + return boost_has_sgi_type_traits::test(); +} + diff --git a/test/regression.cfg b/test/regression.cfg index 849289a6..f0be64ae 100644 --- a/test/regression.cfg +++ b/test/regression.cfg @@ -113,6 +113,8 @@ run libs/config/test/has_pthreads_pass.cpp link-fail libs/config/test/has_pthreads_fail.cpp run libs/config/test/has_sched_yield_pass.cpp link-fail libs/config/test/has_sched_yield_fail.cpp +run libs/config/test/has_sgi_type_traits_pass.cpp +link-fail libs/config/test/has_sgi_type_traits_fail.cpp run libs/config/test/has_slist_pass.cpp link-fail libs/config/test/has_slist_fail.cpp run libs/config/test/has_stdint_h_pass.cpp diff --git a/tools/configure.in b/tools/configure.in index 44a2699b..f88db297 100644 --- a/tools/configure.in +++ b/tools/configure.in @@ -85,6 +85,7 @@ dnl without these some of the tests may fail: AC_HAVE_LIBRARY(pthread) AC_HAVE_LIBRARY(m) +AC_HAVE_LIBRARY(rt) # # enumerate test files and test each one: @@ -351,17 +352,6 @@ for name in $required_defs; do echo '#define '"$name" >> user.hpp done -cat << EOF - -Adjustments to boost configuration have been written to -user.hpp, copy this to boost/config/user.hpp to use "as is", -or define BOOST_SITE_CONFIG to point to its location. - -TREAT THIS FILE WITH CARE. -Autoconf generated options are not infallible! - -EOF - cat_conts=`cat user.hpp` AC_OUTPUT( @@ -398,3 +388,4 @@ fi +