diff -Nrc3pad gcc-3.1/gcc/cp/ChangeLog gcc-3.1.1/gcc/cp/ChangeLog *** gcc-3.1/gcc/cp/ChangeLog Wed May 15 02:19:33 2002 --- gcc-3.1.1/gcc/cp/ChangeLog Thu Jul 25 23:35:12 2002 *************** *** 1,6 **** ! 2002-05-14 Release Manager ! * GCC 3.1 Released. 2002-05-14 Release Manager --- 1,153 ---- ! 2002-07-25 Release Manager ! * GCC 3.1.1 Released. ! ! 2002-07-12 Mark Mitchell ! ! * class.c (add_method): Correct handling of conversion operators. ! ! 2002-07-11 Mark Mitchell ! ! PR c++/7224 ! * class.c (add_method): Simplify. ! ! 2002-07-11 Jason Merrill ! ! PR c++/7279 ! * tree.c (cp_copy_res_decl_for_inlining): Also copy ! TREE_ADDRESSABLE. ! ! 2002-07-10 Jason Merrill ! ! PR c++/6255 ! * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than ! modifying the old one. ! ! 2002-07-08 Kriang Lerdsuwanakij ! ! * pt.c (can_complete_type_without_circularity): Add static to ! function definition. ! ! 2002-07-05 Jim Wilson ! ! * decl.c (mark_named_label_lists): Add missing & in call to ! mark_binding_level. ! ! 2002-07-05 Jason Merrill ! ! * cvt.c (cp_convert_to_pointer): Call force_fit_type for null ! pointers. ! ! PR optimization/7145 ! * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL. ! ! 2002-05-18 Jason Merrill ! ! PR c++/6611 ! * decl2.c (import_export_decl): If we clear ! DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set. ! ! 2002-07-03 Kriang Lerdsuwanakij ! ! PR c++/6944 ! * init.c (build_aggr_init): Remove qualifiers of init before calling ! build_vec_init. ! (build_vec_init): Flatten multi-dimensional array during cleanup. ! (build_vec_delete_1): Abort if the type of each element is array. ! ! 2002-07-02 Kriang Lerdsuwanakij ! ! PR c++/6716 ! * pt.c (can_complete_type_without_circularity): New function. ! (instantiate_class_template): Use it. ! * typeck2.c (incomplete_type_error): Improve error message ! due to incomplete fields. ! ! 2002-07-01 Mark Mitchell ! ! PR c++/7112 ! * mangle.c (write_expression): Add mangling for sizeof when ! applied to a type. ! * operators.def: Remove stale comment. ! ! 2002-06-27 Mark Mitchell ! ! PR c++/6695 ! * pt.c (tsubst_friend_class): Substitute into the context of the ! friend before using it. ! ! 2002-06-23 Matt Thomas ! ! * decl.c (finish_function): Change "#ifdef VMS_TARGET" to ! "#if VMS_TARGET". ! ! 2002-06-20 Richard Henderson ! ! PR c++/6747 ! * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early. ! Call put_var_into_stack. ! ! 2002-06-20 Kriang Lerdsuwanakij ! ! PR c++/6892 ! * pt.c (tsubst_expr): Handle FILE_STMT. ! ! 2002-06-20 Kriang Lerdsuwanakij ! ! PR c++/6723 ! * pt.c (lookup_template_class): Don't build complete argument of ! BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template ! argument. ! ! 2002-06-16 Richard Henderson ! ! PR opt/6793 ! * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test ! after template instantiation. ! ! 2002-06-07 H.J. Lu (hjl@gnu.org) ! ! * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT. ! ! 2002-05-23 Neil Booth ! ! * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. ! * cp-tree.h (cxx_post_options): Kill. ! * cp-lex.c (cxx_post_options): Kill. ! ! 2002-05-19 Kriang Lerdsuwanakij ! ! * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing. ! ! 2002-05-19 Kriang Lerdsuwanakij ! ! PR c++/186, DR 259 ! * pt.c (do_decl_instantiation): Don't complain explicit ! instantiation after explicit specialization. ! (do_type_instantiation): Likewise. ! ! 2002-05-09 Jason Merrill ! ! * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P. ! ! 2002-05-15 Alexandre Oliva ! ! * cp-tree.h (struct lang_type): Added non_zero_init. ! (CLASSTYPE_NON_ZERO_INIT_P): New macro. ! (zero_init_p, force_store_init_value, build_forced_zero_init): Declare. ! * class.c (check_field_decls): Test non_zero_init. ! * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for ! zero-to-NULL conversions. ! * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a ! type that needs zero-initialization without zeros. ! (check_initializer_decl): Compute zero-initializer for types ! that require a non-trivial one. ! * init.c (build_forced_zero_init): New function. ! (build_default_init): Use it. ! * tree.c (zero_init_p): New function. ! * typeck2.c (force_store_init_value): New function. ! (process_init_constructor): Create non-trivial zero-initializers ! for array members and class fields. 2002-05-14 Release Manager *************** *** 34,39 **** --- 181,187 ---- 2002-04-30 Jason Merrill + PR debug/6436 * decl.c (grokdeclarator): Don't override TYPE_NAME of an anonymous class with a typedef if there are attributes. *************** *** 171,182 **** 2002-04-11 Andrew Haley ! * typeck.c (type_after_usual_arithmetic_conversions): ! If two types have the same variant, return immediately. ! When two floating-point operands are the same precision: ! convert to float if one of the operands is float; ! if neither operand is one of the standard types, return the type ! of the first operand. 2002-04-12 Richard Sandiford --- 319,330 ---- 2002-04-11 Andrew Haley ! * typeck.c (type_after_usual_arithmetic_conversions): ! If two types have the same variant, return immediately. ! When two floating-point operands are the same precision: ! convert to float if one of the operands is float; ! if neither operand is one of the standard types, return the type ! of the first operand. 2002-04-12 Richard Sandiford diff -Nrc3pad gcc-3.1/gcc/cp/Make-lang.in gcc-3.1.1/gcc/cp/Make-lang.in *** gcc-3.1/gcc/cp/Make-lang.in Sat Mar 16 00:59:04 2002 --- gcc-3.1.1/gcc/cp/Make-lang.in Thu May 23 17:57:42 2002 *************** cp/spew.o: cp/spew.c $(CXX_TREE_H) cp/pa *** 251,257 **** cp/lex.o: cp/lex.c $(CXX_TREE_H) cp/parse.h flags.h cp/lex.h c-pragma.h \ toplev.h output.h mbchar.h $(GGC_H) input.h diagnostic.h cp/operators.def \ $(TM_P_H) ! cp/cp-lang.o: cp/cp-lang.c $(CXX_TREE_H) toplev.h langhooks.h langhooks-def.h \ c-common.h cp/decl.o: cp/decl.c $(CXX_TREE_H) flags.h cp/lex.h cp/decl.h stack.h \ output.h $(EXPR_H) except.h toplev.h hash.h $(GGC_H) $(RTL_H) \ --- 251,257 ---- cp/lex.o: cp/lex.c $(CXX_TREE_H) cp/parse.h flags.h cp/lex.h c-pragma.h \ toplev.h output.h mbchar.h $(GGC_H) input.h diagnostic.h cp/operators.def \ $(TM_P_H) ! cp/cp-lang.o: cp/cp-lang.c $(CXX_TREE_H) toplev.h langhooks.h $(LANGHOOKS_DEF_H) \ c-common.h cp/decl.o: cp/decl.c $(CXX_TREE_H) flags.h cp/lex.h cp/decl.h stack.h \ output.h $(EXPR_H) except.h toplev.h hash.h $(GGC_H) $(RTL_H) \ diff -Nrc3pad gcc-3.1/gcc/cp/class.c gcc-3.1.1/gcc/cp/class.c *** gcc-3.1/gcc/cp/class.c Tue Apr 30 21:53:02 2002 --- gcc-3.1.1/gcc/cp/class.c Fri Jul 12 07:55:28 2002 *************** add_method (type, method, error_p) *** 973,1041 **** fns = OVL_NEXT (fns)) { tree fn = OVL_CURRENT (fns); ! if (TREE_CODE (fn) != TREE_CODE (method)) continue; ! if (TREE_CODE (method) != TEMPLATE_DECL) ! { ! /* [over.load] Member function declarations with the ! same name and the same parameter types cannot be ! overloaded if any of them is a static member ! function declaration. ! [namespace.udecl] When a using-declaration brings names ! from a base class into a derived class scope, member ! functions in the derived class override and/or hide member ! functions with the same name and parameter types in a base ! class (rather than conflicting). */ ! if ((DECL_STATIC_FUNCTION_P (fn) ! != DECL_STATIC_FUNCTION_P (method)) ! || using) ! { ! tree parms1 = TYPE_ARG_TYPES (TREE_TYPE (fn)); ! tree parms2 = TYPE_ARG_TYPES (TREE_TYPE (method)); ! int same = 1; ! /* Compare the quals on the 'this' parm. Don't compare ! the whole types, as used functions are treated as ! coming from the using class in overload resolution. */ ! if (using ! && ! DECL_STATIC_FUNCTION_P (fn) ! && ! DECL_STATIC_FUNCTION_P (method) ! && (TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms1))) ! != TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms2))))) ! same = 0; ! if (! DECL_STATIC_FUNCTION_P (fn)) ! parms1 = TREE_CHAIN (parms1); ! if (! DECL_STATIC_FUNCTION_P (method)) ! parms2 = TREE_CHAIN (parms2); ! if (same && compparms (parms1, parms2)) ! { ! if (using && DECL_CONTEXT (fn) == type) ! /* Defer to the local function. */ ! return; ! else ! error ("`%#D' and `%#D' cannot be overloaded", ! fn, method); ! } } } - - if (!decls_match (fn, method)) - continue; - - /* There has already been a declaration of this method - or member template. */ - cp_error_at ("`%D' has already been declared in `%T'", - method, type); - - /* We don't call duplicate_decls here to merge the - declarations because that will confuse things if the - methods have inline definitions. In particular, we - will crash while processing the definitions. */ - return; } } --- 973,1032 ---- fns = OVL_NEXT (fns)) { tree fn = OVL_CURRENT (fns); ! tree parms1; ! tree parms2; ! bool same = 1; ! if (TREE_CODE (fn) != TREE_CODE (method)) continue; ! /* [over.load] Member function declarations with the ! same name and the same parameter types cannot be ! overloaded if any of them is a static member ! function declaration. ! [namespace.udecl] When a using-declaration brings names ! from a base class into a derived class scope, member ! functions in the derived class override and/or hide member ! functions with the same name and parameter types in a base ! class (rather than conflicting). */ ! parms1 = TYPE_ARG_TYPES (TREE_TYPE (fn)); ! parms2 = TYPE_ARG_TYPES (TREE_TYPE (method)); ! /* Compare the quals on the 'this' parm. Don't compare ! the whole types, as used functions are treated as ! coming from the using class in overload resolution. */ ! if (! DECL_STATIC_FUNCTION_P (fn) ! && ! DECL_STATIC_FUNCTION_P (method) ! && (TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms1))) ! != TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms2))))) ! same = 0; ! if (! DECL_STATIC_FUNCTION_P (fn)) ! parms1 = TREE_CHAIN (parms1); ! if (! DECL_STATIC_FUNCTION_P (method)) ! parms2 = TREE_CHAIN (parms2); ! if (same && compparms (parms1, parms2) ! && (!DECL_CONV_FN_P (fn) ! || same_type_p (TREE_TYPE (TREE_TYPE (fn)), ! TREE_TYPE (TREE_TYPE (method))))) ! { ! if (using && DECL_CONTEXT (fn) == type) ! /* Defer to the local function. */ ! return; ! else ! { ! cp_error_at ("`%#D' and `%#D' cannot be overloaded", ! method, fn, method); ! ! /* We don't call duplicate_decls here to merge ! the declarations because that will confuse ! things if the methods have inline ! definitions. In particular, we will crash ! while processing the definitions. */ ! return; } } } } *************** check_field_decls (t, access_decls, empt *** 3410,3415 **** --- 3401,3409 ---- to be allowed in POD structs. */ CLASSTYPE_NON_POD_P (t) = 1; + if (! zero_init_p (type)) + CLASSTYPE_NON_ZERO_INIT_P (t) = 1; + /* If any field is const, the structure type is pseudo-const. */ if (CP_TYPE_CONST_P (type)) { diff -Nrc3pad gcc-3.1/gcc/cp/cp-lang.c gcc-3.1.1/gcc/cp/cp-lang.c *** gcc-3.1/gcc/cp/cp-lang.c Wed Dec 5 23:48:14 2001 --- gcc-3.1.1/gcc/cp/cp-lang.c Thu May 23 17:57:42 2002 *************** *** 1,5 **** /* Language-dependent hooks for C++. ! Copyright 2001 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GNU CC. --- 1,5 ---- /* Language-dependent hooks for C++. ! Copyright 2001, 2002 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GNU CC. *************** static HOST_WIDE_INT cxx_get_alias_set P *** 43,49 **** #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION cxx_decode_option #undef LANG_HOOKS_POST_OPTIONS ! #define LANG_HOOKS_POST_OPTIONS cxx_post_options #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET cxx_get_alias_set #undef LANG_HOOKS_EXPAND_CONSTANT --- 43,49 ---- #undef LANG_HOOKS_DECODE_OPTION #define LANG_HOOKS_DECODE_OPTION cxx_decode_option #undef LANG_HOOKS_POST_OPTIONS ! #define LANG_HOOKS_POST_OPTIONS c_common_post_options #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET cxx_get_alias_set #undef LANG_HOOKS_EXPAND_CONSTANT diff -Nrc3pad gcc-3.1/gcc/cp/cp-tree.h gcc-3.1.1/gcc/cp/cp-tree.h *** gcc-3.1/gcc/cp/cp-tree.h Tue Apr 23 21:51:13 2002 --- gcc-3.1.1/gcc/cp/cp-tree.h Thu May 23 17:57:42 2002 *************** struct lang_type *** 1245,1250 **** --- 1245,1252 ---- unsigned is_partial_instantiation : 1; unsigned java_interface : 1; + unsigned non_zero_init : 1; + /* When adding a flag here, consider whether or not it ought to apply to a template instance if it applies to the template. If so, make sure to copy it in instantiate_class_template! */ *************** struct lang_type *** 1252,1258 **** /* There are some bits left to fill out a 32-bit word. Keep track of this by updating the size of this bitfield whenever you add or remove a flag. */ ! unsigned dummy : 8; int vsize; --- 1254,1260 ---- /* There are some bits left to fill out a 32-bit word. Keep track of this by updating the size of this bitfield whenever you add or remove a flag. */ ! unsigned dummy : 7; int vsize; *************** struct lang_type *** 1500,1508 **** #define CLASSTYPE_HAS_MUTABLE(NODE) (TYPE_LANG_SPECIFIC (NODE)->has_mutable) #define TYPE_HAS_MUTABLE_P(NODE) (cp_has_mutable_p (NODE)) ! /* Nonzero means that this class type is a non-POD class. */ #define CLASSTYPE_NON_POD_P(NODE) (TYPE_LANG_SPECIFIC (NODE)->non_pod_class) /* Nonzero if this class is "nearly empty", i.e., contains only a virtual function table pointer. */ #define CLASSTYPE_NEARLY_EMPTY_P(NODE) \ --- 1502,1515 ---- #define CLASSTYPE_HAS_MUTABLE(NODE) (TYPE_LANG_SPECIFIC (NODE)->has_mutable) #define TYPE_HAS_MUTABLE_P(NODE) (cp_has_mutable_p (NODE)) ! /* Nonzero means that this class type is a non-POD class. */ #define CLASSTYPE_NON_POD_P(NODE) (TYPE_LANG_SPECIFIC (NODE)->non_pod_class) + /* Nonzero means that this class contains pod types whose default + initialization is not a zero initialization (namely, pointers to + data members). */ + #define CLASSTYPE_NON_ZERO_INIT_P(NODE) (TYPE_LANG_SPECIFIC (NODE)->non_zero_init) + /* Nonzero if this class is "nearly empty", i.e., contains only a virtual function table pointer. */ #define CLASSTYPE_NEARLY_EMPTY_P(NODE) \ *************** extern tree build_aggr_init PARAMS ((t *** 3900,3905 **** --- 3907,3913 ---- extern int is_aggr_type PARAMS ((tree, int)); extern tree get_aggr_from_typedef PARAMS ((tree, int)); extern tree get_type_value PARAMS ((tree)); + extern tree build_forced_zero_init PARAMS ((tree)); extern tree build_member_call PARAMS ((tree, tree, tree)); extern tree build_offset_ref PARAMS ((tree, tree)); extern tree resolve_offset_ref PARAMS ((tree)); *************** extern int cp_type_qual_from_rid *** 3953,3959 **** extern const char *cxx_init PARAMS ((const char *)); extern void cxx_finish PARAMS ((void)); extern void cxx_init_options PARAMS ((void)); - extern void cxx_post_options PARAMS ((void)); /* in method.c */ extern void init_method PARAMS ((void)); --- 3961,3966 ---- *************** extern void end_input PARAMS ((void)) *** 4212,4217 **** --- 4219,4225 ---- /* in tree.c */ extern void init_tree PARAMS ((void)); extern int pod_type_p PARAMS ((tree)); + extern int zero_init_p PARAMS ((tree)); extern tree canonical_type_variant PARAMS ((tree)); extern void unshare_base_binfos PARAMS ((tree)); extern int member_p PARAMS ((tree)); *************** extern int abstract_virtuals_error PARA *** 4357,4362 **** --- 4365,4371 ---- #define my_friendly_assert(EXP, N) (void) \ (((EXP) == 0) ? (fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0) : 0) + extern tree force_store_init_value PARAMS ((tree, tree)); extern tree store_init_value PARAMS ((tree, tree)); extern tree digest_init PARAMS ((tree, tree, tree *)); extern tree build_scoped_ref PARAMS ((tree, tree)); diff -Nrc3pad gcc-3.1/gcc/cp/cvt.c gcc-3.1.1/gcc/cp/cvt.c *** gcc-3.1/gcc/cp/cvt.c Wed Apr 24 22:40:59 2002 --- gcc-3.1.1/gcc/cp/cvt.c Fri Jul 5 22:11:38 2002 *************** *** 1,6 **** /* Language-level data type conversion for GNU C++. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,6 ---- /* Language-level data type conversion for GNU C++. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** cp_convert_to_pointer (type, expr, force *** 249,254 **** --- 249,256 ---- else expr = build_int_2 (0, 0); TREE_TYPE (expr) = type; + /* Fix up the representation of -1 if appropriate. */ + force_fit_type (expr, 0); return expr; } *************** convert_to_pointer_force (type, expr) *** 285,297 **** register tree intype = TREE_TYPE (expr); register enum tree_code form = TREE_CODE (intype); - if (integer_zerop (expr)) - { - expr = build_int_2 (0, 0); - TREE_TYPE (expr) = type; - return expr; - } - if (form == POINTER_TYPE) { intype = TYPE_MAIN_VARIANT (intype); --- 287,292 ---- diff -Nrc3pad gcc-3.1/gcc/cp/decl.c gcc-3.1.1/gcc/cp/decl.c *** gcc-3.1/gcc/cp/decl.c Fri May 3 18:55:23 2002 --- gcc-3.1.1/gcc/cp/decl.c Tue Jul 9 23:46:07 2002 *************** mark_named_label_lists (labs, uses) *** 1970,1976 **** for (; l; l = l->next) { ggc_mark (l); ! mark_binding_level (l->binding_level); ggc_mark_tree (l->old_value); ggc_mark_tree (l->label_decl); ggc_mark_tree (l->bad_decls); --- 1970,1976 ---- for (; l; l = l->next) { ggc_mark (l); ! mark_binding_level (&l->binding_level); ggc_mark_tree (l->old_value); ggc_mark_tree (l->label_decl); ggc_mark_tree (l->bad_decls); *************** lookup_name_real (name, prefer_type, non *** 6101,6107 **** if (got_scope && got_scope != type && val && TREE_CODE (val) == TYPE_DECL && TREE_CODE (TREE_TYPE (val)) == TYPENAME_TYPE) ! TYPE_CONTEXT (TREE_TYPE (val)) = got_scope; } } else --- 6101,6113 ---- if (got_scope && got_scope != type && val && TREE_CODE (val) == TYPE_DECL && TREE_CODE (TREE_TYPE (val)) == TYPENAME_TYPE) ! { ! val = TREE_TYPE (val); ! val = build_typename_type (got_scope, name, ! TYPENAME_TYPE_FULLNAME (val), ! TREE_TYPE (val)); ! val = TYPE_STUB_DECL (val); ! } } } else *************** obscure_complex_init (decl, init) *** 7605,7611 **** NULL_TREE); else #endif ! DECL_INITIAL (decl) = error_mark_node; return init; } --- 7611,7623 ---- NULL_TREE); else #endif ! { ! if (zero_init_p (TREE_TYPE (decl))) ! DECL_INITIAL (decl) = error_mark_node; ! /* Otherwise, force_store_init_value will have already stored a ! zero-init initializer in DECL_INITIAL, that should be ! retained. */ ! } return init; } *************** check_initializer (decl, init) *** 7851,7858 **** --- 7863,7878 ---- if (init) init = obscure_complex_init (decl, init); } + else if (!DECL_EXTERNAL (decl) && !zero_init_p (type)) + { + force_store_init_value (decl, build_forced_zero_init (type)); + + if (init) + goto process_init; + } else if (init) { + process_init: if (TYPE_HAS_CONSTRUCTOR (type) || TYPE_NEEDS_CONSTRUCTING (type)) { if (TREE_CODE (type) == ARRAY_TYPE) *************** finish_function (flags) *** 14222,14228 **** if (DECL_MAIN_P (current_function_decl)) { /* Make it so that `main' always returns 0 by default. */ ! #ifdef VMS_TARGET finish_return_stmt (integer_one_node); #else finish_return_stmt (integer_zero_node); --- 14242,14248 ---- if (DECL_MAIN_P (current_function_decl)) { /* Make it so that `main' always returns 0 by default. */ ! #if VMS_TARGET finish_return_stmt (integer_one_node); #else finish_return_stmt (integer_zero_node); diff -Nrc3pad gcc-3.1/gcc/cp/decl2.c gcc-3.1.1/gcc/cp/decl2.c *** gcc-3.1/gcc/cp/decl2.c Wed Apr 17 17:13:39 2002 --- gcc-3.1.1/gcc/cp/decl2.c Thu Jul 4 10:57:18 2002 *************** int flag_weak = 1; *** 376,382 **** /* Nonzero to use __cxa_atexit, rather than atexit, to register destructors for local statics and global objects. */ ! int flag_use_cxa_atexit; /* Maximum template instantiation depth. This limit is rather arbitrary, but it exists to limit the time it takes to notice --- 376,382 ---- /* Nonzero to use __cxa_atexit, rather than atexit, to register destructors for local statics and global objects. */ ! int flag_use_cxa_atexit = DEFAULT_USE_CXA_ATEXIT; /* Maximum template instantiation depth. This limit is rather arbitrary, but it exists to limit the time it takes to notice *************** import_export_decl (decl) *** 2497,2503 **** comdat_linkage (decl); } else ! DECL_NOT_REALLY_EXTERN (decl) = 0; } else if (DECL_FUNCTION_MEMBER_P (decl)) { --- 2497,2506 ---- comdat_linkage (decl); } else ! { ! DECL_EXTERNAL (decl) = 1; ! DECL_NOT_REALLY_EXTERN (decl) = 0; ! } } else if (DECL_FUNCTION_MEMBER_P (decl)) { *************** import_export_decl (decl) *** 2513,2518 **** --- 2516,2524 ---- && ! flag_implement_inlines && !DECL_VINDEX (decl))); + if (!DECL_NOT_REALLY_EXTERN (decl)) + DECL_EXTERNAL (decl) = 1; + /* Always make artificials weak. */ if (DECL_ARTIFICIAL (decl) && flag_weak) comdat_linkage (decl); diff -Nrc3pad gcc-3.1/gcc/cp/error.c gcc-3.1.1/gcc/cp/error.c *** gcc-3.1/gcc/cp/error.c Wed May 1 16:29:27 2002 --- gcc-3.1.1/gcc/cp/error.c Sun May 19 11:04:37 2002 *************** dump_type (t, flags) *** 474,480 **** case TYPEOF_TYPE: output_add_string (scratch_buffer, "__typeof ("); dump_expr (TYPE_FIELDS (t), flags & ~TFF_EXPR_IN_PARENS); ! print_left_paren (scratch_buffer); break; default: --- 474,480 ---- case TYPEOF_TYPE: output_add_string (scratch_buffer, "__typeof ("); dump_expr (TYPE_FIELDS (t), flags & ~TFF_EXPR_IN_PARENS); ! print_right_paren (scratch_buffer); break; default: diff -Nrc3pad gcc-3.1/gcc/cp/init.c gcc-3.1.1/gcc/cp/init.c *** gcc-3.1/gcc/cp/init.c Thu May 2 20:02:41 2002 --- gcc-3.1.1/gcc/cp/init.c Wed Jul 3 15:02:09 2002 *************** *** 1,6 **** /* Handle initialization things in C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,6 ---- /* Handle initialization things in C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** initialize_vtbl_ptrs (addr) *** 176,181 **** --- 176,219 ---- dfs_marked_real_bases_queue_p, type); } + /* Types containing pointers to data members cannot be + zero-initialized with zeros, because the NULL value for such + pointers is -1. + + TYPE is a type that requires such zero initialization. The + returned value is the initializer. */ + + tree + build_forced_zero_init (type) + tree type; + { + tree init = NULL; + + if (AGGREGATE_TYPE_P (type) && !TYPE_PTRMEMFUNC_P (type)) + { + /* This is a default initialization of an aggregate, but not one of + non-POD class type. We cleverly notice that the initialization + rules in such a case are the same as for initialization with an + empty brace-initialization list. */ + init = build (CONSTRUCTOR, NULL_TREE, NULL_TREE, NULL_TREE); + } + else if (TREE_CODE (type) == REFERENCE_TYPE) + /* --if T is a reference type, no initialization is performed. */ + return NULL_TREE; + else + { + init = integer_zero_node; + + if (TREE_CODE (type) == ENUMERAL_TYPE) + /* We must make enumeral types the right type. */ + init = fold (build1 (NOP_EXPR, type, init)); + } + + init = digest_init (type, init, 0); + + return init; + } + /* [dcl.init]: To default-initialize an object of type T means: *************** build_default_init (type) *** 202,229 **** anything with a CONSTRUCTOR for arrays here, as that would imply copy-initialization. */ return NULL_TREE; - else if (AGGREGATE_TYPE_P (type) && !TYPE_PTRMEMFUNC_P (type)) - { - /* This is a default initialization of an aggregate, but not one of - non-POD class type. We cleverly notice that the initialization - rules in such a case are the same as for initialization with an - empty brace-initialization list. */ - init = build (CONSTRUCTOR, NULL_TREE, NULL_TREE, NULL_TREE); - } - else if (TREE_CODE (type) == REFERENCE_TYPE) - /* --if T is a reference type, no initialization is performed. */ - return NULL_TREE; - else - { - init = integer_zero_node; - - if (TREE_CODE (type) == ENUMERAL_TYPE) - /* We must make enumeral types the right type. */ - init = fold (build1 (NOP_EXPR, type, init)); - } ! init = digest_init (type, init, 0); ! return init; } /* Subroutine of emit_base_init. */ --- 240,247 ---- anything with a CONSTRUCTOR for arrays here, as that would imply copy-initialization. */ return NULL_TREE; ! return build_forced_zero_init (type); } /* Subroutine of emit_base_init. */ *************** build_aggr_init (exp, init, flags) *** 1165,1175 **** return error_mark_node; } if (cp_type_quals (type) != TYPE_UNQUALIFIED) ! { ! TREE_TYPE (exp) = TYPE_MAIN_VARIANT (type); ! if (init) ! TREE_TYPE (init) = TYPE_MAIN_VARIANT (itype); ! } stmt_expr = build_vec_init (exp, init, init && same_type_p (TREE_TYPE (init), TREE_TYPE (exp))); --- 1183,1191 ---- return error_mark_node; } if (cp_type_quals (type) != TYPE_UNQUALIFIED) ! TREE_TYPE (exp) = TYPE_MAIN_VARIANT (type); ! if (itype && cp_type_quals (itype) != TYPE_UNQUALIFIED) ! TREE_TYPE (init) = TYPE_MAIN_VARIANT (itype); stmt_expr = build_vec_init (exp, init, init && same_type_p (TREE_TYPE (init), TREE_TYPE (exp))); *************** build_vec_delete_1 (base, maxindex, type *** 2575,2580 **** --- 2591,2600 ---- This is also the containing expression returned by this function. */ tree controller = NULL_TREE; + /* We should only have 1-D arrays here. */ + if (TREE_CODE (type) == ARRAY_TYPE) + abort (); + if (! IS_AGGR_TYPE (type) || TYPE_HAS_TRIVIAL_DESTRUCTOR (type)) { loop = integer_zero_node; *************** build_vec_init (base, init, from_array) *** 2988,2999 **** && from_array != 2) { tree e; finish_compound_stmt (/*has_no_scope=*/1, try_body); finish_cleanup_try_block (try_block); ! e = build_vec_delete_1 (rval, ! cp_build_binary_op (MINUS_EXPR, maxindex, ! iterator), type, sfk_base_destructor, /*use_global_delete=*/0); --- 3008,3027 ---- && from_array != 2) { tree e; + tree m = cp_build_binary_op (MINUS_EXPR, maxindex, iterator); + + /* Flatten multi-dimensional array since build_vec_delete only + expects one-dimensional array. */ + if (TREE_CODE (type) == ARRAY_TYPE) + { + m = cp_build_binary_op (MULT_EXPR, m, + array_type_nelts_total (type)); + type = strip_array_types (type); + } finish_compound_stmt (/*has_no_scope=*/1, try_body); finish_cleanup_try_block (try_block); ! e = build_vec_delete_1 (rval, m, type, sfk_base_destructor, /*use_global_delete=*/0); diff -Nrc3pad gcc-3.1/gcc/cp/lex.c gcc-3.1.1/gcc/cp/lex.c *** gcc-3.1/gcc/cp/lex.c Fri Mar 29 20:30:55 2002 --- gcc-3.1.1/gcc/cp/lex.c Thu May 23 17:57:44 2002 *************** *** 1,6 **** /* Separate lexical analyzer for GNU C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,6 ---- /* Separate lexical analyzer for GNU C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** static const char *const cplus_tree_code *** 237,249 **** }; #undef DEFTREECODE - /* Post-switch processing. */ - void - cxx_post_options () - { - c_common_post_options (); - } - /* Initialization before switch parsing. */ void cxx_init_options () --- 237,242 ---- diff -Nrc3pad gcc-3.1/gcc/cp/mangle.c gcc-3.1.1/gcc/cp/mangle.c *** gcc-3.1/gcc/cp/mangle.c Thu Apr 25 01:04:55 2002 --- gcc-3.1.1/gcc/cp/mangle.c Tue Jul 2 03:14:24 2002 *************** write_expression (expr) *** 1818,1823 **** --- 1818,1829 ---- write_mangled_name (expr); write_char ('E'); } + else if (TREE_CODE (expr) == SIZEOF_EXPR + && TYPE_P (TREE_OPERAND (expr, 0))) + { + write_string ("st"); + write_type (TREE_OPERAND (expr, 0)); + } else { int i; *************** write_expression (expr) *** 1856,1861 **** --- 1862,1868 ---- write_expression (TREE_OPERAND (expr, 0)); break; + /* Handle pointers-to-members specially. */ case SCOPE_REF: write_type (TREE_OPERAND (expr, 0)); diff -Nrc3pad gcc-3.1/gcc/cp/operators.def gcc-3.1.1/gcc/cp/operators.def *** gcc-3.1/gcc/cp/operators.def Sun Dec 16 16:07:00 2001 --- gcc-3.1.1/gcc/cp/operators.def Tue Jul 2 03:14:24 2002 *************** *** 5,11 **** non-overloadable operators (like the `?:' ternary operator). Writtey by Mark Mitchell ! Copyright (C) 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. --- 5,11 ---- non-overloadable operators (like the `?:' ternary operator). Writtey by Mark Mitchell ! Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU CC. *************** Boston, MA 02111-1307, USA. */ *** 46,55 **** mangled under the new ABI. For `operator +', for example, this would be "pl". - OLD_MANGLING - - Analogous, but for the old ABI. - ARITY The arity of the operator, or -1 if any arity is allowed. (As --- 46,51 ---- diff -Nrc3pad gcc-3.1/gcc/cp/pt.c gcc-3.1.1/gcc/cp/pt.c *** gcc-3.1/gcc/cp/pt.c Tue Apr 30 19:43:56 2002 --- gcc-3.1.1/gcc/cp/pt.c Mon Jul 8 15:09:44 2002 *************** static tree build_template_decl PARAMS ( *** 134,139 **** --- 134,140 ---- static int mark_template_parm PARAMS ((tree, void *)); static tree tsubst_friend_function PARAMS ((tree, tree)); static tree tsubst_friend_class PARAMS ((tree, tree)); + static int can_complete_type_without_circularity PARAMS ((tree)); static tree get_bindings_real PARAMS ((tree, tree, tree, int, int, int)); static int template_decl_level PARAMS ((tree)); static tree maybe_get_template_decl_from_type_decl PARAMS ((tree)); *************** lookup_template_class (d1, arglist, in_d *** 3942,3951 **** The template parameter level of T and U are one level larger than of TT. To proper process the default argument of U, say when an instantiation `TT' is seen, we need to build the full ! arguments containing {int} as the innermost level. Outer levels ! can be obtained from `current_template_args ()'. */ ! if (processing_template_decl) arglist = add_to_template_args (current_template_args (), arglist); arglist2 = coerce_template_parms (parmlist, arglist, template, --- 3943,3958 ---- The template parameter level of T and U are one level larger than of TT. To proper process the default argument of U, say when an instantiation `TT' is seen, we need to build the full ! arguments containing {int} as the innermost level. Outer levels, ! available when not appearing as default template argument, can be ! obtained from `current_template_args ()'. ! Suppose that TT is later substituted with std::vector. The above ! instantiation is `TT >' with TT at ! level 1, and T at level 2, while the template arguments at level 1 ! becomes {std::vector} and the inner level 2 is {int}. */ ! ! if (current_template_parms) arglist = add_to_template_args (current_template_args (), arglist); arglist2 = coerce_template_parms (parmlist, arglist, template, *************** tsubst_friend_class (friend_tmpl, args) *** 4805,4811 **** if (TREE_CODE (context) == NAMESPACE_DECL) push_nested_namespace (context); else ! push_nested_class (context, 2); } /* First, we look for a class template. */ --- 4812,4818 ---- if (TREE_CODE (context) == NAMESPACE_DECL) push_nested_namespace (context); else ! push_nested_class (tsubst (context, args, tf_none, NULL_TREE), 2); } /* First, we look for a class template. */ *************** tsubst_friend_class (friend_tmpl, args) *** 4877,4882 **** --- 4884,4908 ---- return friend_type; } + /* Returns zero if TYPE cannot be completed later due to circularity. + Otherwise returns one. */ + + static int + can_complete_type_without_circularity (type) + tree type; + { + if (type == NULL_TREE || type == error_mark_node) + return 0; + else if (COMPLETE_TYPE_P (type)) + return 1; + else if (TREE_CODE (type) == ARRAY_TYPE && TYPE_DOMAIN (type)) + return can_complete_type_without_circularity (TREE_TYPE (type)); + else if (CLASS_TYPE_P (type) && TYPE_BEING_DEFINED (TYPE_MAIN_VARIANT (type))) + return 0; + else + return 1; + } + tree instantiate_class_template (type) tree type; *************** instantiate_class_template (type) *** 5197,5203 **** if (DECL_INITIALIZED_IN_CLASS_P (r)) check_static_variable_definition (r, TREE_TYPE (r)); } ! /* R will have a TREE_CHAIN if and only if it has already been processed by finish_member_declaration. This can happen if, for example, it is a TYPE_DECL for a class-scoped --- 5223,5242 ---- if (DECL_INITIALIZED_IN_CLASS_P (r)) check_static_variable_definition (r, TREE_TYPE (r)); } ! else if (TREE_CODE (r) == FIELD_DECL) ! { ! /* Determine whether R has a valid type and can be ! completed later. If R is invalid, then it is replaced ! by error_mark_node so that it will not be added to ! TYPE_FIELDS. */ ! tree rtype = TREE_TYPE (r); ! if (!can_complete_type_without_circularity (rtype)) ! { ! incomplete_type_error (r, rtype); ! r = error_mark_node; ! } ! } ! /* R will have a TREE_CHAIN if and only if it has already been processed by finish_member_declaration. This can happen if, for example, it is a TYPE_DECL for a class-scoped *************** instantiate_class_template (type) *** 5278,5283 **** --- 5317,5324 ---- --processing_template_decl; } + /* Now that TYPE_FIELDS and TYPE_METHODS are set up. We can + instantiate templates used by this class. */ for (t = TYPE_FIELDS (type); t; t = TREE_CHAIN (t)) if (TREE_CODE (t) == FIELD_DECL) { *************** tsubst_expr (t, args, complain, in_decl) *** 7487,7492 **** --- 7528,7538 ---- finish_label_stmt (DECL_NAME (LABEL_STMT_LABEL (t))); break; + case FILE_STMT: + input_filename = FILE_STMT_FILENAME (t); + add_stmt (build_nt (FILE_STMT, FILE_STMT_FILENAME_NODE (t))); + break; + case GOTO_STMT: prep_stmt (t); tmp = GOTO_DESTINATION (t); *************** tsubst_expr (t, args, complain, in_decl) *** 7502,7513 **** case ASM_STMT: prep_stmt (t); ! finish_asm_stmt (ASM_CV_QUAL (t), ! tsubst_expr (ASM_STRING (t), args, complain, in_decl), ! tsubst_expr (ASM_OUTPUTS (t), args, complain, in_decl), ! tsubst_expr (ASM_INPUTS (t), args, complain, in_decl), ! tsubst_expr (ASM_CLOBBERS (t), args, complain, ! in_decl)); break; case TRY_BLOCK: --- 7548,7560 ---- case ASM_STMT: prep_stmt (t); ! tmp = finish_asm_stmt ! (ASM_CV_QUAL (t), ! tsubst_expr (ASM_STRING (t), args, complain, in_decl), ! tsubst_expr (ASM_OUTPUTS (t), args, complain, in_decl), ! tsubst_expr (ASM_INPUTS (t), args, complain, in_decl), ! tsubst_expr (ASM_CLOBBERS (t), args, complain, in_decl)); ! ASM_INPUT_P (tmp) = ASM_INPUT_P (t); break; case TRY_BLOCK: *************** do_decl_instantiation (declspecs, declar *** 9501,9512 **** if (DECL_TEMPLATE_SPECIALIZATION (result)) { ! /* [temp.spec] ! No program shall both explicitly instantiate and explicitly ! specialize a template. */ ! pedwarn ("explicit instantiation of `%#D' after", result); ! cp_pedwarn_at ("explicit specialization here", result); return; } else if (DECL_EXPLICIT_INSTANTIATION (result)) --- 9548,9563 ---- if (DECL_TEMPLATE_SPECIALIZATION (result)) { ! /* DR 259 [temp.spec]. ! Both an explicit instantiation and a declaration of an explicit ! specialization shall not appear in a program unless the explicit ! instantiation follows a declaration of the explicit specialization. ! ! For a given set of template parameters, if an explicit ! instantiation of a template appears after a declaration of an ! explicit specialization for that template, the explicit ! instantiation has no effect. */ return; } else if (DECL_EXPLICIT_INSTANTIATION (result)) *************** do_type_instantiation (t, storage, compl *** 9636,9650 **** if (CLASSTYPE_TEMPLATE_SPECIALIZATION (t)) { ! /* [temp.spec] ! No program shall both explicitly instantiate and explicitly ! specialize a template. */ ! if (complain & tf_error) ! { ! error ("explicit instantiation of `%#T' after", t); ! cp_error_at ("explicit specialization here", t); ! } return; } else if (CLASSTYPE_EXPLICIT_INSTANTIATION (t)) --- 9687,9702 ---- if (CLASSTYPE_TEMPLATE_SPECIALIZATION (t)) { ! /* DR 259 [temp.spec]. ! Both an explicit instantiation and a declaration of an explicit ! specialization shall not appear in a program unless the explicit ! instantiation follows a declaration of the explicit specialization. ! ! For a given set of template parameters, if an explicit ! instantiation of a template appears after a declaration of an ! explicit specialization for that template, the explicit ! instantiation has no effect. */ return; } else if (CLASSTYPE_EXPLICIT_INSTANTIATION (t)) diff -Nrc3pad gcc-3.1/gcc/cp/tree.c gcc-3.1.1/gcc/cp/tree.c *** gcc-3.1/gcc/cp/tree.c Thu Apr 25 00:14:25 2002 --- gcc-3.1.1/gcc/cp/tree.c Thu Jul 11 21:13:08 2002 *************** *** 1,6 **** /* Language-dependent node constructors for parse phase of GNU compiler. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,6 ---- /* Language-dependent node constructors for parse phase of GNU compiler. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** pod_type_p (t) *** 1898,1903 **** --- 1898,1924 ---- return 1; } + /* Returns 1 iff zero initialization of type T means actually storing + zeros in it. */ + + int + zero_init_p (t) + tree t; + { + t = strip_array_types (t); + + /* NULL pointers to data members are initialized with -1. */ + if (TYPE_PTRMEM_P (t)) + return 0; + + /* Classes that contain types that can't be zero-initialized, cannot + be zero-initialized themselves. */ + if (CLASS_TYPE_P (t) && CLASSTYPE_NON_ZERO_INIT_P (t)) + return 0; + + return 1; + } + /* Table of valid C++ attributes. */ const struct attribute_spec cp_attribute_table[] = { *************** cp_cannot_inline_tree_fn (fnp) *** 2147,2153 **** && TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (fn))) { fn = *fnp = instantiate_decl (fn, /*defer_ok=*/0); ! return TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (fn)); } if (varargs_function_p (fn)) --- 2168,2175 ---- && TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (fn))) { fn = *fnp = instantiate_decl (fn, /*defer_ok=*/0); ! if (TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (fn))) ! return 1; } if (varargs_function_p (fn)) *************** cp_copy_res_decl_for_inlining (result, f *** 2262,2267 **** --- 2284,2294 ---- DECL_SOURCE_FILE (var) = DECL_SOURCE_FILE (nrv); DECL_SOURCE_LINE (var) = DECL_SOURCE_LINE (nrv); DECL_ABSTRACT_ORIGIN (var) = DECL_ORIGIN (nrv); + /* Don't lose initialization info. */ + DECL_INITIAL (var) = DECL_INITIAL (nrv); + /* Don't forget that it needs to go in the stack. */ + TREE_ADDRESSABLE (var) = TREE_ADDRESSABLE (nrv); + splay_tree_insert (decl_map, (splay_tree_key) nrv, (splay_tree_value) var); diff -Nrc3pad gcc-3.1/gcc/cp/typeck.c gcc-3.1.1/gcc/cp/typeck.c *** gcc-3.1/gcc/cp/typeck.c Thu Apr 25 00:14:24 2002 --- gcc-3.1.1/gcc/cp/typeck.c Thu Jun 20 23:25:11 2002 *************** mark_addressable (exp) *** 4806,4814 **** { register tree x = exp; - if (TREE_ADDRESSABLE (x) == 1) - return 1; - while (1) switch (TREE_CODE (x)) { --- 4806,4811 ---- *************** mark_addressable (exp) *** 4827,4832 **** --- 4824,4831 ---- TREE_ADDRESSABLE (x) = 1; /* so compiler doesn't die later */ return 1; } + /* FALLTHRU */ + case VAR_DECL: /* Caller should not be trying to mark initialized constant fields addressable. */ *************** mark_addressable (exp) *** 4834,4839 **** --- 4833,4839 ---- || DECL_IN_AGGR_P (x) == 0 || TREE_STATIC (x) || DECL_EXTERNAL (x), 314); + /* FALLTHRU */ case CONST_DECL: case RESULT_DECL: *************** mark_addressable (exp) *** 4842,4847 **** --- 4842,4848 ---- warning ("address requested for `%D', which is declared `register'", x); TREE_ADDRESSABLE (x) = 1; + put_var_into_stack (x); return 1; case FUNCTION_DECL: diff -Nrc3pad gcc-3.1/gcc/cp/typeck2.c gcc-3.1.1/gcc/cp/typeck2.c *** gcc-3.1/gcc/cp/typeck2.c Wed Feb 13 17:32:24 2002 --- gcc-3.1.1/gcc/cp/typeck2.c Tue Jul 2 15:50:35 2002 *************** *** 1,7 **** /* Report error messages, build initializers, and perform some front-end optimizations for C++ compiler. Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. --- 1,7 ---- /* Report error messages, build initializers, and perform some front-end optimizations for C++ compiler. Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. *************** incomplete_type_error (value, type) *** 196,202 **** return; if (value != 0 && (TREE_CODE (value) == VAR_DECL ! || TREE_CODE (value) == PARM_DECL)) { cp_error_at ("`%D' has incomplete type", value); decl = 1; --- 196,203 ---- return; if (value != 0 && (TREE_CODE (value) == VAR_DECL ! || TREE_CODE (value) == PARM_DECL ! || TREE_CODE (value) == FIELD_DECL)) { cp_error_at ("`%D' has incomplete type", value); decl = 1; *************** retry: *** 211,217 **** case ENUMERAL_TYPE: if (!decl) error ("invalid use of undefined type `%#T'", type); ! cp_error_at ("forward declaration of `%#T'", type); break; case VOID_TYPE: --- 212,221 ---- case ENUMERAL_TYPE: if (!decl) error ("invalid use of undefined type `%#T'", type); ! if (!TYPE_TEMPLATE_INFO (type)) ! cp_error_at ("forward declaration of `%#T'", type); ! else ! cp_error_at ("declaration of `%#T'", type); break; case VOID_TYPE: *************** store_init_value (decl, init) *** 420,425 **** --- 424,451 ---- DECL_INITIAL (decl) = value; return NULL_TREE; } + + /* Same as store_init_value, but used for known-to-be-valid static + initializers. Used to introduce a static initializer even in data + structures that may require dynamic initialization. */ + + tree + force_store_init_value (decl, init) + tree decl, init; + { + tree type = TREE_TYPE (decl); + int needs_constructing = TYPE_NEEDS_CONSTRUCTING (type); + + TYPE_NEEDS_CONSTRUCTING (type) = 0; + + init = store_init_value (decl, init); + if (init) + abort (); + + TYPE_NEEDS_CONSTRUCTING (type) = needs_constructing; + + return init; + } /* Digest the parser output INIT as an initializer for type TYPE. Return a C expression of type TYPE to represent the initial value. *************** process_init_constructor (type, init, el *** 732,737 **** --- 758,765 ---- next1 = build (CONSTRUCTOR, NULL_TREE, NULL_TREE, NULL_TREE); next1 = digest_init (TREE_TYPE (type), next1, 0); } + else if (! zero_init_p (TREE_TYPE (type))) + next1 = build_forced_zero_init (TREE_TYPE (type)); else /* The default zero-initialization is fine for us; don't add anything to the CONSTRUCTOR. */ *************** process_init_constructor (type, init, el *** 848,856 **** && (!init || TREE_HAS_CONSTRUCTOR (init))) warning ("missing initializer for member `%D'", field); ! /* The default zero-initialization is fine for us; don't ! add anything to the CONSTRUCTOR. */ ! continue; } if (next1 == error_mark_node) --- 876,887 ---- && (!init || TREE_HAS_CONSTRUCTOR (init))) warning ("missing initializer for member `%D'", field); ! if (! zero_init_p (TREE_TYPE (field))) ! next1 = build_forced_zero_init (TREE_TYPE (field)); ! else ! /* The default zero-initialization is fine for us; don't ! add anything to the CONSTRUCTOR. */ ! continue; } if (next1 == error_mark_node) diff -Nrc3pad gcc-3.1/libstdc++-v3/ChangeLog gcc-3.1.1/libstdc++-v3/ChangeLog *** gcc-3.1/libstdc++-v3/ChangeLog Wed May 15 02:25:24 2002 --- gcc-3.1.1/libstdc++-v3/ChangeLog Thu Jul 25 23:40:22 2002 *************** *** 1,7 **** ! 2002-05-14 Release Manager ! * GCC 3.1 Released. 2002-05-14 Release Manager * GCC 3.1 Released. --- 1,619 ---- ! 2002-07-25 Release Manager ! * GCC 3.1.1 Released. ! ! 2002-07-20 Phil Edwards ! ! Bulk documentation merge (copy) from trunk. ! * docs/doxygen/TODO, docs/doxygen/run_doxygen, docs/doxygen/tables.html, ! docs/doxygen/user.cfg.in, docs/html/Makefile, ! docs/html/documentation.html, docs/html/17_intro/porting.html, ! docs/html/17_intro/porting.texi, docs/html/23_containers/howto.html, ! docs/html/ext/howto.html, docs/html/ext/lwg-active.html, ! docs/html/ext/lwg-defects.html, docs/html/faq/index.html, ! docs/html/faq/index.txt: Merge from trunk. ! ! 2002-07-16 Andreas Schwab ! ! * libsupc++/new (set_new_handler): Declare to not throw any ! exceptions. ! * libsupc++/new_handler.cc (set_new_handler): Likewise. ! ! 2002-07-15 Rainer Orth ! ! * config/os/solaris/solaris2.5/bits/ctype_base.h (ctype_base): Fix ! print to match vendor . ! ! 2002-07-03 Steev Wilcox ! ! PR libstdc++/7057 ! * include/ext/stl_hashtable.h: Fix. ! * testsuite/ext/hash_map.cc: New. ! ! 2002-07-03 Benjamin Kosnik ! ! PR libstdc++/7097 ! * include/c/std_cwchar.h: Fix. ! ! 2002-07-03 Jack Reeves ! Kenny Simpson ! Phil Edwards ! ! PR libstdc++/3946 ! * testsuite/20_util/auto_ptr.cc (test08): New test. ! * include/std/std_memory.h (auto_ref_ptr): Make constructor explicit. ! (auto_ptr::operator auto_ptr_ref): Fix typo. ! General reformatting and doxygenating of the whole file. ! ! 2002-07-03 Phil Edwards ! ! PR libstdc++/7173 ! * acinclude.m4: Simplify determination of gcc_version, and move ! up to GLIBCPP_CONFIGURE. ! * configure.in (release_VERSION): Really remove. ! (AM_INIT_AUTOMAKE, AM_CONFIG_HEADER): Move after GLIBCPP_CONFIGURE. ! * aclocal.m4, configure: Regenerate. ! ! 2002-07-02 Phil Edwards ! ! * docs/html/configopts.html, docs/html/install.html: Tweaks. ! * include/ext/algorithm, include/ext/hash_map, include/ext/hash_set, ! include/ext/iterator, include/ext/numeric, include/ext/rb_tree, ! include/ext/slist, include/ext/stl_rope.h: Add doxygen hooks. ! ! 2002-06-28 Benjamin Kosnik ! ! * include/c_compatibility: New. ! * include/c_compatibility/assert.h: New. ! * include/c_compatibility/ctype.h: New. ! * include/c_compatibility/errno.h: New. ! * include/c_compatibility/float.h: New. ! * include/c_compatibility/iso646.h: New. ! * include/c_compatibility/limits.h: New. ! * include/c_compatibility/locale.h: New. ! * include/c_compatibility/math.h: New. ! * include/c_compatibility/setjmp.h: New. ! * include/c_compatibility/signal.h: New. ! * include/c_compatibility/stdarg.h: New. ! * include/c_compatibility/stddef.h: New. ! * include/c_compatibility/stdio.h: New. ! * include/c_compatibility/stdlib.h: New. ! * include/c_compatibility/string.h: New. ! * include/c_compatibility/time.h: New. ! * include/c_compatibility/wchar.h: New. ! * include/c_compatibility/wctype.h: New. ! ! * include/c/std_cerrno.h: Get out of the way... define errno. ! * include/c/std_cmath.h: Add abs, modf overloads. ! Undefine C99 isms. Still not sure how to deal with this sanely. ! * include/c/std_csetjmp.h: Tweak. ! * include/c/std_cwchar.h: Include cstddef for size_t. ! ! * include/c_std/std_cmath.h: Remove extra function. ! ! Pendantic std usage in testsuites. ! * testsuite/17_intro/header_cstdlib.cc (test01): Qualify ldiv_t ! with std. ! * testsuite/17_intro/header_cwchar.cc: Tweak. ! * testsuite/22_locale/codecvt_members_char_char.cc (test03): Use ! std::setlocale. ! * testsuite/22_locale/ctype_to_wchar_t.cc (test05): Same. ! * testsuite/22_locale/ctype_to_char.cc (test05): Same. ! * testsuite/22_locale/ctype_is_wchar_t.cc (test05): Same. ! * testsuite/22_locale/ctype_is_char.cc (test05): Same. ! * testsuite/22_locale/codecvt_members_wchar_t_char.cc (test03): Same. ! * testsuite/22_locale/time_get_members_wchar_t.cc (test08): Same. ! * testsuite/22_locale/time_get_members_char.cc (test08): Same. ! * testsuite/22_locale/time_put_members_wchar_t.cc (test04): Same. ! * testsuite/22_locale/time_put_members_char.cc (test04): Same. ! * testsuite/22_locale/num_put_members_wchar_t.cc (test04): Same. ! * testsuite/22_locale/num_put_members_char.cc (test04): Same. ! * testsuite/22_locale/numpunct_members_wchar_t.cc (test03): Same. ! * testsuite/22_locale/numpunct_members_char.cc (test03): Same. ! * testsuite/22_locale/num_get_members_wchar_t.cc: Same. ! * testsuite/22_locale/num_get_members_char.cc: Same. ! * testsuite/22_locale/money_put_members_wchar_t.cc (test07): Same. ! * testsuite/22_locale/money_put_members_char.cc (test07): Same. ! * testsuite/22_locale/moneypunct_members_wchar_t.cc (test03): Same. ! * testsuite/22_locale/moneypunct_members_char.cc (test03): Same. ! * testsuite/22_locale/money_get_members_wchar_t.cc (test08): Same. ! * testsuite/22_locale/money_get_members_char.cc (test08): Same. ! * testsuite/22_locale/messages_members_char.cc (test03): Same. ! * testsuite/22_locale/collate_members_wchar_t.cc (test04): Same. ! * testsuite/22_locale/collate_members_char.cc (test04): Same. ! * testsuite/26_numerics/fabs_inline.cc: Use std::printf. ! * testsuite/27_io/istream_seeks.cc (test02): Qualify abort. ! * testsuite/27_io/istream_extractor_arith.cc (test11): Qualify strtol. ! ! 2002-06-28 Benjamin Kosnik ! ! * libsupc++/Makefile.am (libsupc__convenience_la_SOURCES): Add ! c_sources. ! ! 2002-06-28 Benjamin Kosnik ! ! * src/ext-inst.cc (__gnu_cxx): Use instead of std:: for extensions. ! Use size_type instead of unsigned long. ! ! 2002-06-28 Steve Ellcey ! ! * src/ext-inst.cc (_S_fetch): Add explicit templates for char and ! wchar types. ! (_S_min_len): Ditto. ! ! 2002-06-28 Benjamin Kosnik ! ! * include/Makefile.am: Add rules. ! * include/Makefile.in: Regenerate. ! ! * acinclude.m4: Define GLIBCPP_C_HEADERS_COMPATIBILITY. ! * aclocal.m4: Regenerate. ! * configure: Regenerate. ! * configure.target (c_model, c_compatibility): Add. ! ! * libsupc++/Makefile.am (c_sources): New. ! (libsupc___la_SOURCES): Add c_sources. ! (LTCOMPILE): Remove INCLUDES. ! (GCC_INCLUDES): New. ! (C_COMPILE): New, like COMPILE but without INCLUDES. ! (cxa_demangle.o): Use C_COMPILE. ! (dyn-string.o): Use C_COMPILE. ! ! * include/c/std_cstdarg.h: Define __need___va_list. ! * include/c/std_cstddef.h: Define need_size_t, need_ptrdiff_t, ! need_NULL, need_offsetof. ! ! 2002-06-28 Benjamin Kosnik ! ! * include/c/std_cwchar.h: Guard. Add mbstate_t bits. ! * include/c/std_cwctype.h: Guard. ! ! * libsupc++/eh_alloc.cc: Tweak include order. ! * libsupc++/pure.cc: Use cstdio. ! * libsupc++/new_op.cc: Remove malloc forward declaration, as ! cstdlib brings it in. Use std::malloc. ! ! * src/Makefile.am (sources): Remove cmath.cc. ! * src/Makefile.in: Regenerate. ! * src/cmath.cc: Remove. ! ! 2002-06-27 Benjamin Kosnik ! ! * configure.in (INTERFACE): Remove. ! (release_VERSION): Remove. ! * acinclude.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Change include placement. ! (libstdcxx_interface): Change. Use gcc methods to determine version. ! * configure: Regenerate. ! * aclocal.m4: Regenerate. ! ! 2002-06-27 Benjamin Kosnik ! ! * acinclude.m4: Fix last checkin. ! * aclocal.m4: Regenerate. ! * configure: Regenerate. ! ! 2002-06-25 DJ Delorie ! ! * acinclude.m4 (GLIBCPP_CONFIGURE): Split out ! GLIBCPP_TOPREL_CONFIGURE. ! * aclocal.m4: Likewise. ! * configure.in: Call it before AC_CANONICAL_SYSTEM. ! * configure: Regenerate. ! ! 2002-06-20 David Edelsohn ! ! * configure.target (CPULIMITSH): Use powerpc directory for rs6000. ! ! 2002-06-14 J.T. Conklin ! ! * configure.in (target_alias): Fix. ! * configure: Regenerate. ! * aclocal.m4: Regenerate. ! ! 2002-06-11 J.T. Conklin ! Benjamin Kosnik ! ! * configure.target: Set os_include_dir to config/os/qnx/qnx6.1 ! under *-qnx6.[12]*. ! * configure.in: Add support for *-qnx6.[12]*. ! * configure: Regenerate. ! ! * config/os/qnx, config/os/qnx/qnx6.1, config/os/qnx/qnx6.1/bits: ! New directories. ! * config/os/qnx/qnx6.1/bits/ctype_base.h, ctype_inline.h, ! ctype_noninline.h, os_defines.h: New files. ! ! 2002-06-10 Steve Ellcey ! ! * src/locale-inst.cc (__codecvt_abstract_base): ! Put inside _GLIBCPP_USE_WCHAR_T ifdef. ! * include/bits/istream.tcc (basic_istream): Ditto. ! (ws) Ditto. ! (operator>>) Ditto. ! * include/bits/ostream.tcc (basic_ostream): Ditto. ! (endl): Ditto. ! (ends): Ditto. ! (flush): Ditto. ! (operator<<): Ditto. ! ! 2002-06-08 Paolo Carlini ! ! * testsuite/backwards/strstream_members.cc: New. ! ! 2002-06-08 Benjamin Kosnik ! ! * include/backwards/strstream: Format. ! * src/strstream.cc: Format. ! ! 2002-06-08 Andreas Schwab ! ! * src/strstream.cc (strstreambuf::overflow): Set _M_buf, ! _M_buf_size and _M_buf_size_opt to the new buffer and size. ! ! 2002-06-08 Benjamin Kosnik ! ! * config/os/generic/bits/ctype_noninline.h: Tweak format. ! ! 2002-06-05 David Edelsohn ! ! * config/os/aix/bits/ctype_noninline.h (do_toupper,do_tolower): ! Call external symbol. ! ! 2002-06-05 Paolo Carlini ! ! * testsuite/22_locale/money_get_members_char.cc ! (test02): Add decimal point to long double constants. ! * testsuite/22_locale/money_get_members_wchar_t.cc ! (test02): Likewise. ! * testsuite/22_locale/money_put_members_char.cc ! (test02, test03, test06): Likewise. ! * testsuite/22_locale/money_put_members_wchar_t.cc: ! (test02, test03, test06): Likewise. ! * testsuite/22_locale/num_get_members_char.cc: ! (test02, test01): Likewise; suffix long long constants with LL. ! * testsuite/22_locale/num_get_members_wchar_t.cc: ! (test02, test01): Likewise. ! * testsuite/22_locale/num_put_members_char.cc: ! (test02, test01): Likewise. ! * testsuite/22_locale/num_put_members_wchar_t.cc: ! (test02, test01): Likewise. ! ! 2002-06-04 Paolo Carlini ! Gaby Dos Reis ! ! * include/bits/basic_string.tcc ! (basic_string::_S_construct(forward_iterator_tag): ! Fix typo in null pointer check. ! * testsuite/21_strings/ctor_copy_dtor.cc: Add test04. ! ! 2002-06-03 Marc Espie ! ! * config/cpu/m68k/bits/atomicity.h(__exchange_and_add): Fix inline ! assembly for old assemblers. ! ! 2002-05-31 Marcus Meissner ! ! PR libstdc++/6886 ! * include/bits/stl_bvector.h: Use UL suffix for unsigned longs. ! * testsuite/23_containers/vector_bool.cc (test02): New test. ! ! 2002-05-31 John David Anglin ! ! * config/os/gnu-linux/bits/os_defines.h (__glibcpp_long_bits): Define ! to 64 for hppa 64-bit port. ! (__glibcpp_long_double_bits): Define to 64 for all hppa ports. ! ! 2002-05-30 Marc Espie ! ! * configure.in: Always check for sys/types.h. ! * configure: Regenerate. ! ! 2002-05-28 Nick Clifton ! ! * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): ! Rebuild the wrapper file every time this proc is called. ! ! 2002-05-28 Loren J. Rittle ! ! libstdc++/6641 ! * include/bits/c++config (__USE_MALLOC): Report case where ! the user improperly defined it on the command line. ! ! 2002-05-27 Benjamin Kosnik ! ! * src/misc-inst.cc: Define unnecessary algorithm ! instantiations. Break apart instantiations into groupings below. ! * src/fstream-inst.cc: New. ! * src/io-inst.cc: New. ! * src/istream-inst.cc: New. ! * src/ostream-inst.cc: New. ! * src/streambuf-inst.cc: New. ! * src/sstream-inst.cc: New. ! * src/Makefile.am (sources): Add files. ! * src/Makefile.in: Regenerate. ! ! * acinclude.m4: Work around automake 1.4-p5 bug, change ! AM_GNU_GETTEXT in comments to AM-GNU-GETTEXT. ! ! 2002-05-27 Benjamin Kosnik ! ! PR libstdc++/6795. ! * config/os/solaris/solaris2.6/bits/ctype_noninline.h ! (classic_table): Fix. ! * config/os/solaris/solaris2.5/bits/ctype_noninline.h: Same. ! ! 2002-05-27 Benjamin Kosnik ! ! * testsuite/22_locale/ctype_is_wchar_t.cc: Guard with ! _GLIBCPP_USE_WCHAR_T. ! * testsuite/22_locale/ctype_narrow_wchar_t.cc: Same. ! * testsuite/22_locale/ctype_to_wchar_t.cc: Same. ! * testsuite/22_locale/ctype_widen_wchar_t.cc: Same. ! ! 2002-05-26 Carlo Wood ! Paolo Carlini ! ! PR libstdc++/6811 ! * config/locale/ieee_1003.1-2001/codecvt_specializations.h ! (__enc_traits::operator=): add missing return statement. ! ! 2002-05-24 Phil Edwards ! ! PR libstdc++/6282 ! * include/std/std_bitset.h (_Base_biteset<0>): New specialization. ! (operator>>): If nothing was extracted, don't fail in the ! zero-length case. ! * testsuite/23_containers/bitset_ctor.cc (test02): New test. ! ! 2002-05-24 Benjamin Kosnik ! ! PR libstdc++/6701 ! * testsuite/22_locale/ctype_narrow_char.cc: New. ! * testsuite/22_locale/ctype_narrow_wchar_t.cc: New. ! * testsuite/22_locale/ctype_widen_char.cc: New. ! * testsuite/22_locale/ctype_widen_wchar_t.cc: New. ! * testsuite/22_locale/ctype_members_char.cc: Move some bits into... ! * testsuite/22_locale/ctype_is_char.cc: ...this. ! * testsuite/22_locale/ctype_to_char.cc: ...and this. ! * testsuite/22_locale/ctype_members_wchar_t.cc: Move some bits into... ! * testsuite/22_locale/ctype_is_wchar_t.cc: ...this. ! * testsuite/22_locale/ctype_to_wchar_t.cc: ...and this. ! ! * testsuite/22_locale/ctype_scan_wchar_t.cc: Should pass. ! ! 2002-05-24 Dale Peakall ! ! PR libstdc++/6701 ! * config/locale/gnu/ctype_members.cc (ctype::do_narrow): Fix. ! * config/locale/generic/ctype_members.cc: Same. ! ! 2002-05-24 Benjamin Kosnik ! ! PR libstdc++/6750 ! * include/bits/ostream.tcc (ostream::operator<<(const char*)): Fix ! for empty string literal. ! (ostream::operator<<(const _CharT*)): Same. ! (ostream::operator<<(const char*)): Same. ! (ostream::operator<<(streambuf*)): Same. ! * testsuite/27_io/ostream_inserter_char.cc (test08): Add tests. ! * testsuite/27_io/ostream_inserter_other.cc (test02): Modify. ! ! 2002-05-23 Rainer Orth ! ! * configure.in: Update local install.html, configopts.html paths. ! * configure: Regenerate. ! ! * testsuite/testsuite_hooks.h (__set_testsuite_memlimit): Retrieve ! current limits before setting. ! ! * acinclude.m4 (enable_symvers): Quote $LD. ! * aclocal.m4: Regenerate. ! * configure: Likewise. ! Fixes PR target/6755. ! ! 2002-05-23 Benjamin Kosnik ! ! * configure.in (release_VERSION): Update to 3.1.1. ! (libtool_VERSION): Update to 4:1:0. ! * configure: Regenerate. ! ! 2002-05-21 Phil Edwards ! ! * include/bits/stl_pair.h: Tweak comment markup. ! ! 2002-05-21 Phil Edwards ! ! * include/ext/stdio_filebuf.h: Add header guards. Doxygenate. ! ! 2002-05-19 Kaveh R. Ghazi ! ! * configure.in (AC_CHECK_HEADERS): Check for string.h & stdlib.h. ! * libsupc++/Makefile.am (LTCOMPILE): Add $(DEFS). ! * Makefile.in, config.h.in, configure: Regenerate. ! ! * config/os/irix/irix5.2/bits/ctype_noninline.h (classic_table): ! Return __ctype + 1. ! (ctype:_M_table): Initialize to classic_table(), not __ctype. ! ! * config/os/irix/irix5.2/bits/os_defines.h ! (__glibcpp_long_double_bits, __glibcpp_long_bits): Define. ! ! 2002-05-19 Paolo Carlini ! Jakub Jelinek ! ! * testsuite/22_locale/money_get_members_char.cc ! (test01, test02, test04): Use the de_DE@euro named locale ! instead of de_DE to allow for an uniform behaviour with ! both old and Euro-era localedata; tweak some tests. ! * testsuite/22_locale/money_get_members_wchar_t.cc ! (test01, test02, test04): Likewise. ! * testsuite/22_locale/money_put_members_char.cc ! (test01, test02, test04): Likewise. ! * testsuite/22_locale/money_put_members_wchar_t.cc ! (test01, test02, test04): Likewise. ! ! 2002-05-19 Paolo Carlini ! ! * testsuite/22_locale/codecvt_members_char_char.cc ! (test03): Robustify wrt localedata. ! * testsuite/22_locale/codecvt_members_wchar_t_char.cc (test03): Likewise. ! * testsuite/22_locale/collate_members_char.cc (test04): Likewise. ! * testsuite/22_locale/collate_members_wchar_t.cc (test04): Likewise. ! * testsuite/22_locale/ctype_members_char.cc (test05): Likewise. ! * testsuite/22_locale/ctype_members_wchar_t.cc (test04): Likewise. ! * testsuite/22_locale/messages_members_char.cc (test03): Likewise. ! * testsuite/22_locale/money_get_members_char.cc (test08): Likewise. ! * testsuite/22_locale/money_get_members_wchar_t.cc (test08): Likewise. ! * testsuite/22_locale/money_put_members_char.cc (test07): Likewise. ! * testsuite/22_locale/money_put_members_wchar_t.cc (test07): Likewise. ! * testsuite/22_locale/moneypunct_members_char.cc (test03): Likewise. ! * testsuite/22_locale/moneypunct_members_wchar_t.cc (test03): Likewise. ! * testsuite/22_locale/num_get_members_char.cc (test06): Likewise. ! * testsuite/22_locale/num_get_members_wchar_t.cc (test06): Likewise. ! * testsuite/22_locale/num_put_members_char.cc (test04): Add comment. ! * testsuite/22_locale/num_put_members_wchar_t.cc (test04): Likewise. ! * testsuite/22_locale/numpunct_members_char.cc (test03): Likewise. ! * testsuite/22_locale/numpunct_members_wchar_t.cc (test03): Likewise. ! * testsuite/22_locale/time_get_members_char.cc (test08): Likewise. ! * testsuite/22_locale/time_get_members_wchar_t.cc (test08): Likewise. ! * testsuite/22_locale/time_put_members_char.cc (test04): Likewise. ! * testsuite/22_locale/time_put_members_wchar_t.cc (test04): Likewise. ! ! 2002-05-19 Paolo Carlini ! ! Test all the facets for the temporary "C" locale switch issue. ! * testsuite/22_locale/codecvt_members_char_char.cc: Add test03. ! * testsuite/22_locale/codecvt_members_wchar_t_char.cc: Likewise. ! * testsuite/22_locale/collate_members_char.cc: Add test04. ! * testsuite/22_locale/collate_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/ctype_members_char.cc: Add test05. ! * testsuite/22_locale/ctype_members_wchar_t.cc: Add test04. ! * testsuite/22_locale/messages_members_char.cc: Add test03. ! * testsuite/22_locale/money_get_members_char.cc: Add test08. ! * testsuite/22_locale/money_get_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/money_put_members_char.cc: Add test07. ! * testsuite/22_locale/money_put_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/moneypunct_members_char.cc: Add test03. ! * testsuite/22_locale/moneypunct_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/num_get_members_char.cc: Add test06. ! * testsuite/22_locale/num_get_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/numpunct_members_char.cc: Add test03. ! * testsuite/22_locale/numpunct_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/time_get_members_char.cc: Add test08. ! * testsuite/22_locale/time_get_members_wchar_t.cc: Likewise. ! * testsuite/22_locale/time_put_members_char.cc: Add test04. ! * testsuite/22_locale/time_put_members_wchar_t.cc: Likewise. ! ! * testsuite/22_locale/num_put_members_char.cc (test04): Add comment. ! * testsuite/22_locale/num_put_members_wchar_t.cc (test04): Likewise. ! ! 2002-05-19 Benjamin Kosnik ! Paolo Carlini ! ! * testsuite/22_locale/num_put_members_char.cc: Add test04(), ! testing for the locale_facets.tcc entry of the previous commit. ! * testsuite/22_locale/num_put_members_wchar_t.cc: Likewise. ! ! 2002-05-18 Takeshi Kobayakawa ! ! * config/locale/generic/c_locale.cc ! (__convert_to_v(float, double, long double)): ! Fix the temporary switch to the "C" locale, saving and ! restoring in the proper way the current locale. ! * config/locale/generic/time_members.cc ! (__timepunct::_M_put): Likewise. ! * config/locale/gnu/messages_members.cc ! (messages::do_get): Likewise. ! * config/locale/gnu/messages_members.h ! (messages<_CharT>::do_get): Likewise. ! * config/locale/gnu/time_members.cc ! (__timepunct::_M_put): Likewise. ! * include/bits/locale_facets.tcc (__convert_from_v): Likewise. ! ! 2002-05-18 Paolo Carlini ! Nathan Myers ! Philip Martin ! ! * include/bits/basic_string.h ! (replace(i1, i2, _CharT* k1, _CharT* k2), ! replace(i2, i2, const _CharT* k1, const _CharT* k2), ! replace(i1, i2, iterator k1, iterator k2, ! replace(i1, i2, const_iterator k1, const_iterator k2): ! New specializations to optimize for the common cases of ! pointers and iterators. ! (replace(pos, n1, s, n2)): Tweak. ! * include/bits/basic_string.tcc: Tweak comments. ! * testsuite/21_strings/replace.cc (test05): New tests. ! ! 2002-05-18 Benjamin Kosnik + * config/os/solaris/solaris2.5/bits/os_defines.h: Remove + _G_USING_THUNKS. + * config/os/solaris/solaris2.6/bits/os_defines.h: Same. + * config/os/solaris/solaris2.7/bits/os_defines.h: Same. + + 2002-05-18 Benjamin Kosnik + + * docs/html/17_intro/RELEASE-NOTES (New): Update. + + 2002-05-18 Benjamin Kosnik + + PR libstdc++/6518 + * include/bits/ostream.tcc (ostream::operator<<(const char*)): Fix + for null case. + (ostream::operator<<(const _CharT*)): Same. + (ostream::operator<<(const char*)): Same. + * testsuite/27_io/ostream_inserter_char.cc (test07): Add test. + + 2002-05-18 Benjamin Kosnik + + PR libstdc++/6594 + * src/strstream.cc (strstreambuf): Fix leak. + + 2002-05-18 Benjamin Kosnik + + * testsuite/22_locale/ctype_scan_char.cc: Tweak. + * testsuite/22_locale/ctype_scan_wchar_t.cc: New. + + * docs/html/install.html: Fix. + + 2002-05-18 Kaveh R. Ghazi + + * config/os/irix/irix5.2/bits/ctype_inline.h: Cast to unsigned + char. + + * config/os/irix/irix5.2/bits/ctype_inline.h (scan_is, scan_not): + Fix typo, use this->is() rather than manually (and perhaps + incorrectly) inlining it. + * config/os/irix/irix6.5/bits/ctype_inline.h (scan_is, scan_not): + Likewise. + * testsuite/22_locale/ctype_scan_char.cc: New file. + + 2002-05-18 Benjamin Kosnik + + * include/bits/fstream.tcc + (basic_filebuf::_M_allocate_internal_buffer): Remove extraneous + try/catch blocks. + * src/localename.cc (locale::_Impl::_M_install_facet): Same. + + * docs/html/install.html: Tweak, add bits about required locales + for the 22_locale tests when using the gnu model. + + * testsuite/27_io/istream_sentry.cc: Tweak. + + 2002-05-16 Phil Edwards + + * docs/html/faq/index.html: Update not-a-bug list with basic_file.h. + * docs/html/faq/index.txt: Regenerate. + + 2002-05-15 Paolo Carlini + + PR libstdc++/6648 + * include/bits/istream.tcc (istream::getline, ignore): + Upon __idelim (__delim) call sbumpc() not snextc(). + * testsuite/27_io/narrow_stream_objects.cc: + Add test08 and test09. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/libstdc++-v3/Makefile.in gcc-3.1.1/libstdc++-v3/Makefile.in *** gcc-3.1/libstdc++-v3/Makefile.in Tue Apr 2 02:46:03 2002 --- gcc-3.1.1/libstdc++-v3/Makefile.in Fri Jun 28 08:20:38 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,107 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 75,92 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 112,133 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 97,113 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 150,156 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = 1.3 cygnus --- 130,135 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/acinclude.m4 gcc-3.1.1/libstdc++-v3/acinclude.m4 *** gcc-3.1/libstdc++-v3/acinclude.m4 Thu Apr 4 21:35:31 2002 --- gcc-3.1.1/libstdc++-v3/acinclude.m4 Wed Jul 3 22:47:34 2002 *************** *** 1,9 **** dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_CONFIGURE ! AC_DEFUN(GLIBCPP_CONFIGURE, [ ! dnl Default to --enable-multilib AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], [case "${enableval}" in --- 1,10 ---- dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_TOPREL_CONFIGURE ! AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [ ! dnl Default to --enable-multilib (this is also passed by default ! dnl from the ubercommon-top-level configure) AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], [case "${enableval}" in *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 33,44 **** AC_CONFIG_AUX_DIR(${srcdir}/$toprel) toplevel_srcdir=\${top_srcdir}/$toprel AC_SUBST(toplevel_srcdir) # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`pwd` case $srcdir in [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; --- 34,54 ---- AC_CONFIG_AUX_DIR(${srcdir}/$toprel) toplevel_srcdir=\${top_srcdir}/$toprel AC_SUBST(toplevel_srcdir) + ]) + + dnl + dnl Initialize configure bits. + dnl + dnl GLIBCPP_CONFIGURE + AC_DEFUN(GLIBCPP_CONFIGURE, [ + + #possibly test for the presence of the compiler sources here? # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`${PWDCMD-pwd}` case $srcdir in [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 51,57 **** AC_PROG_AWK # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. #ac_cv_prog_LN_S='cp -p' AC_PROG_LN_S --- 61,68 ---- AC_PROG_AWK # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. Uncomment the next line to ! # force a particular method. #ac_cv_prog_LN_S='cp -p' AC_PROG_LN_S *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 156,161 **** --- 167,177 ---- LIB_AC_PROG_CXX + # For directory versioning (e.g., headers) and other variables. + AC_MSG_CHECKING([for GCC version number]) + gcc_version=`$glibcpp_CXX -dumpversion` + AC_MSG_RESULT($gcc_version) + # For some reason, gettext needs this. AC_ISC_POSIX *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 181,197 **** AC_EXEEXT fi - . [$]{glibcpp_basedir}/configure.host - case [$]{glibcpp_basedir} in /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;; *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;; esac ! # This does for the target what configure.host does for the host. In # addition to possibly modifying the same flags, it also sets up symlinks. GLIBCPP_CHECK_TARGET - ]) --- 197,210 ---- AC_EXEEXT fi case [$]{glibcpp_basedir} in /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;; *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;; esac ! # Find platform-specific directories containing configuration info. In # addition to possibly modifying the same flags, it also sets up symlinks. GLIBCPP_CHECK_TARGET ]) *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1172,1186 **** # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM_GNU_GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM_GNU_GETTEXT here. Instead, assume glibc. AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then USE_NLS=yes fi - # Export the build objects. for ling in $ALL_LINGUAS; do \ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ --- 1185,1198 ---- # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then USE_NLS=yes fi # Export the build objects. for ling in $ALL_LINGUAS; do \ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ *************** changequote([, ]) *** 1690,1712 **** dnl Option parsed, now set things appropriately case "$enable_cheaders" in c_shadow) - CSHADOW_FLAGS="-fno-builtin" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow' ;; c_std) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std' ;; c) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c' ;; esac - AC_SUBST(CSHADOW_FLAGS) AC_SUBST(C_INCLUDE_DIR) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std) ]) --- 1702,1721 ---- dnl Option parsed, now set things appropriately case "$enable_cheaders" in c_shadow) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow' ;; c_std) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std' ;; c) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c' ;; esac AC_SUBST(C_INCLUDE_DIR) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std) + AM_CONDITIONAL(GLIBCPP_C_HEADERS_COMPATIBILITY, test "$c_compatibility" = yes) ]) *************** glibcpp_toolexecdir=no *** 1804,1813 **** glibcpp_toolexeclibdir=no glibcpp_prefixdir=${prefix} - AC_MSG_CHECKING([for interface version number]) - libstdcxx_interface=$INTERFACE - AC_MSG_RESULT($libstdcxx_interface) - # Process the option --with-gxx-include-dir= AC_MSG_CHECKING([for --with-gxx-include-dir]) AC_ARG_WITH(gxx-include-dir, --- 1813,1818 ---- *************** version_specific_libs=no)dnl *** 1839,1864 **** # Option set, now we can test it. AC_MSG_RESULT($version_specific_libs) if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. - changequote(,)dnl - gcc_version_trigger=${srcdir}/../gcc/version.c - gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^\"]*\)\".*/\1/'` - gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'` if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/g++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' - changequote([,])dnl - fi - - # Default case for install directory for include files. - if test $version_specific_libs = no && - test $gxx_include_dir = no; then - gxx_include_dir='$(prefix)'/include/g++-${libstdcxx_interface} fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir --- 1844,1864 ---- # Option set, now we can test it. AC_MSG_RESULT($version_specific_libs) + # Default case for install directory for include files. + if test $version_specific_libs = no && test $gxx_include_dir = no; then + gxx_include_dir='$(prefix)'/include/c++/${gcc_version} + fi + + # Version-specific runtime libs processing. if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/c++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir *************** enable_symvers=GLIBCPP_ENABLE_SYMVERS_DE *** 2120,2126 **** # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test x$LD = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi --- 2120,2126 ---- # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test "x$LD" = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi diff -Nrc3pad gcc-3.1/libstdc++-v3/aclocal.m4 gcc-3.1.1/libstdc++-v3/aclocal.m4 *** gcc-3.1/libstdc++-v3/aclocal.m4 Thu Apr 4 21:35:31 2002 --- gcc-3.1.1/libstdc++-v3/aclocal.m4 Wed Jul 3 22:47:35 2002 *************** *** 1,6 **** ! dnl aclocal.m4 generated automatically by aclocal 1.4-p5 ! dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. --- 1,6 ---- ! dnl aclocal.m4 generated automatically by aclocal 1.4 ! dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. *************** dnl PARTICULAR PURPOSE. *** 13,21 **** dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_CONFIGURE ! AC_DEFUN(GLIBCPP_CONFIGURE, [ ! dnl Default to --enable-multilib AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], [case "${enableval}" in --- 13,22 ---- dnl dnl Initialize configure bits. dnl ! dnl GLIBCPP_TOPREL_CONFIGURE ! AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [ ! dnl Default to --enable-multilib (this is also passed by default ! dnl from the ubercommon-top-level configure) AC_ARG_ENABLE(multilib, [ --enable-multilib build hella library versions (default)], [case "${enableval}" in *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 45,56 **** AC_CONFIG_AUX_DIR(${srcdir}/$toprel) toplevel_srcdir=\${top_srcdir}/$toprel AC_SUBST(toplevel_srcdir) # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`pwd` case $srcdir in [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; --- 46,66 ---- AC_CONFIG_AUX_DIR(${srcdir}/$toprel) toplevel_srcdir=\${top_srcdir}/$toprel AC_SUBST(toplevel_srcdir) + ]) + + dnl + dnl Initialize configure bits. + dnl + dnl GLIBCPP_CONFIGURE + AC_DEFUN(GLIBCPP_CONFIGURE, [ + + #possibly test for the presence of the compiler sources here? # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`${PWDCMD-pwd}` case $srcdir in [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 63,69 **** AC_PROG_AWK # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. #ac_cv_prog_LN_S='cp -p' AC_PROG_LN_S --- 73,80 ---- AC_PROG_AWK # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. Uncomment the next line to ! # force a particular method. #ac_cv_prog_LN_S='cp -p' AC_PROG_LN_S *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 168,173 **** --- 179,189 ---- LIB_AC_PROG_CXX + # For directory versioning (e.g., headers) and other variables. + AC_MSG_CHECKING([for GCC version number]) + gcc_version=`$glibcpp_CXX -dumpversion` + AC_MSG_RESULT($gcc_version) + # For some reason, gettext needs this. AC_ISC_POSIX *************** AC_DEFUN(GLIBCPP_CONFIGURE, [ *** 193,209 **** AC_EXEEXT fi - . [$]{glibcpp_basedir}/configure.host - case [$]{glibcpp_basedir} in /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;; *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;; esac ! # This does for the target what configure.host does for the host. In # addition to possibly modifying the same flags, it also sets up symlinks. GLIBCPP_CHECK_TARGET - ]) --- 209,222 ---- AC_EXEEXT fi case [$]{glibcpp_basedir} in /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;; *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;; esac ! # Find platform-specific directories containing configuration info. In # addition to possibly modifying the same flags, it also sets up symlinks. GLIBCPP_CHECK_TARGET ]) *************** AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ *** 1184,1198 **** # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM_GNU_GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM_GNU_GETTEXT here. Instead, assume glibc. AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then USE_NLS=yes fi - # Export the build objects. for ling in $ALL_LINGUAS; do \ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ --- 1197,1210 ---- # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then USE_NLS=yes fi # Export the build objects. for ling in $ALL_LINGUAS; do \ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ *************** changequote([, ]) *** 1702,1724 **** dnl Option parsed, now set things appropriately case "$enable_cheaders" in c_shadow) - CSHADOW_FLAGS="-fno-builtin" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow' ;; c_std) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std' ;; c) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c' ;; esac - AC_SUBST(CSHADOW_FLAGS) AC_SUBST(C_INCLUDE_DIR) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std) ]) --- 1714,1733 ---- dnl Option parsed, now set things appropriately case "$enable_cheaders" in c_shadow) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow' ;; c_std) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std' ;; c) C_INCLUDE_DIR='${glibcpp_srcdir}/include/c' ;; esac AC_SUBST(C_INCLUDE_DIR) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c) AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std) + AM_CONDITIONAL(GLIBCPP_C_HEADERS_COMPATIBILITY, test "$c_compatibility" = yes) ]) *************** glibcpp_toolexecdir=no *** 1816,1825 **** glibcpp_toolexeclibdir=no glibcpp_prefixdir=${prefix} - AC_MSG_CHECKING([for interface version number]) - libstdcxx_interface=$INTERFACE - AC_MSG_RESULT($libstdcxx_interface) - # Process the option --with-gxx-include-dir= AC_MSG_CHECKING([for --with-gxx-include-dir]) AC_ARG_WITH(gxx-include-dir, --- 1825,1830 ---- *************** version_specific_libs=no)dnl *** 1851,1876 **** # Option set, now we can test it. AC_MSG_RESULT($version_specific_libs) if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. - changequote(,)dnl - gcc_version_trigger=${srcdir}/../gcc/version.c - gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^\"]*\)\".*/\1/'` - gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'` if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/g++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' - changequote([,])dnl - fi - - # Default case for install directory for include files. - if test $version_specific_libs = no && - test $gxx_include_dir = no; then - gxx_include_dir='$(prefix)'/include/g++-${libstdcxx_interface} fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir --- 1856,1876 ---- # Option set, now we can test it. AC_MSG_RESULT($version_specific_libs) + # Default case for install directory for include files. + if test $version_specific_libs = no && test $gxx_include_dir = no; then + gxx_include_dir='$(prefix)'/include/c++/${gcc_version} + fi + + # Version-specific runtime libs processing. if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/c++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir *************** enable_symvers=GLIBCPP_ENABLE_SYMVERS_DE *** 2132,2138 **** # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test x$LD = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi --- 2132,2138 ---- # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test "x$LD" = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi *************** AC_MSG_RESULT($enable_symvers) *** 2197,2226 **** ]) - #serial 1 - # This test replaces the one in autoconf. - # Currently this macro should have the same name as the autoconf macro - # because gettext's gettext.m4 (distributed in the automake package) - # still uses it. Otherwise, the use in gettext.m4 makes autoheader - # give these diagnostics: - # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX - # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX - - undefine([AC_ISC_POSIX]) - - AC_DEFUN([AC_ISC_POSIX], - [ - dnl This test replaces the obsolescent AC_ISC_POSIX kludge. - AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) - ] - ) - # Add --enable-maintainer-mode option to configure. # From Jim Meyering # serial 1 ! AC_DEFUN([AM_MAINTAINER_MODE], [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, --- 2197,2208 ---- ]) # Add --enable-maintainer-mode option to configure. # From Jim Meyering # serial 1 ! AC_DEFUN(AM_MAINTAINER_MODE, [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, *************** AC_DEFUN([AM_MAINTAINER_MODE], *** 2237,2243 **** # Define a conditional. ! AC_DEFUN([AM_CONDITIONAL], [AC_SUBST($1_TRUE) AC_SUBST($1_FALSE) if $2; then --- 2219,2225 ---- # Define a conditional. ! AC_DEFUN(AM_CONDITIONAL, [AC_SUBST($1_TRUE) AC_SUBST($1_FALSE) if $2; then *************** else *** 2248,2786 **** $1_FALSE= fi]) - # Macro to add for using GNU gettext. - # Ulrich Drepper , 1995. - # - # This file can be copied and used freely without restrictions. It can - # be used in projects which are not available under the GNU Public License - # but which still want to provide support for the GNU gettext functionality. - # Please note that the actual code is *not* freely available. - - # serial 9 - - dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]). - dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library - dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, - dnl depending on --{enable,disable}-{shared,static} and on the presence of - dnl AM-DISABLE-SHARED). Otherwise, a static library - dnl $(top_builddir)/intl/libintl.a will be created. - dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext - dnl implementations (in libc or libintl) without the ngettext() function - dnl will be ignored. - dnl LIBDIR is used to find the intl libraries. If empty, - dnl the value `$(top_builddir)/intl/' is used. - dnl - dnl The result of the configuration is one of three cases: - dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled - dnl and used. - dnl Catalog format: GNU --> install in $(datadir) - dnl Catalog extension: .mo after installation, .gmo in source tree - dnl 2) GNU gettext has been found in the system's C library. - dnl Catalog format: GNU --> install in $(datadir) - dnl Catalog extension: .mo after installation, .gmo in source tree - dnl 3) No internationalization, always use English msgid. - dnl Catalog format: none - dnl Catalog extension: none - dnl The use of .gmo is historical (it was needed to avoid overwriting the - dnl GNU format catalogs when building on a platform with an X/Open gettext), - dnl but we keep it in order not to force irrelevant filename changes on the - dnl maintainers. - dnl - AC_DEFUN([AM_WITH_NLS], - [AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE(nls, - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT($USE_NLS) - AC_SUBST(USE_NLS) - - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - INTLLIBS= - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - AC_DEFINE(ENABLE_NLS, 1, - [Define to 1 if translation of program messages to the user's native language - is requested.]) - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH(included-gettext, - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If GNU gettext is available we use this. Else we have - dnl to fall back to GNU NLS library. - CATOBJEXT=NONE - - dnl Add a version number to the cache macros. - define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc]) - define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl]) - - AC_CHECK_HEADER(libintl.h, - [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, - [AC_TRY_LINK([#include - extern int _nl_msg_cat_cntr;], - [bindtextdomain ("", ""); - return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr], - gt_cv_func_gnugettext_libc=yes, - gt_cv_func_gnugettext_libc=no)]) - - if test "$gt_cv_func_gnugettext_libc" != "yes"; then - AC_CACHE_CHECK([for GNU gettext in libintl], - gt_cv_func_gnugettext_libintl, - [gt_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $LIBICONV" - AC_TRY_LINK([#include - extern int _nl_msg_cat_cntr;], - [bindtextdomain ("", ""); - return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr], - gt_cv_func_gnugettext_libintl=yes, - gt_cv_func_gnugettext_libintl=no) - LIBS="$gt_save_LIBS"]) - fi - - dnl If an already present or preinstalled GNU gettext() is found, - dnl use it. But if this macro is used in GNU gettext, and GNU - dnl gettext is already preinstalled in libintl, we update this - dnl libintl. (Cf. the install rule in intl/Makefile.in.) - if test "$gt_cv_func_gnugettext_libc" = "yes" \ - || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ - && test "$PACKAGE" != gettext; }; then - AC_DEFINE(HAVE_GETTEXT, 1, - [Define if the GNU gettext() function is already present or preinstalled.]) - - if test "$gt_cv_func_gnugettext_libintl" = "yes"; then - dnl If iconv() is in a separate libiconv library, then anyone - dnl linking with libintl{.a,.so} also needs to link with - dnl libiconv. - INTLLIBS="-lintl $LIBICONV" - fi - - gt_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - AC_CHECK_FUNCS(dcgettext) - LIBS="$gt_save_LIBS" - - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl - if test "$MSGFMT" != "no"; then - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - fi - - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - - CATOBJEXT=.gmo - fi - ]) - - if test "$CATOBJEXT" = "NONE"; then - dnl GNU gettext is not found in the C library. - dnl Fall back on GNU gettext library. - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - INTLOBJS="\$(GETTOBJS)" - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) - AC_SUBST(MSGFMT) - BUILD_INCLUDED_LIBINTL=yes - USE_INCLUDED_LIBINTL=yes - CATOBJEXT=.gmo - INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - fi - - dnl Test whether we really found GNU xgettext. - if test "$XGETTEXT" != ":"; then - dnl If it is no GNU xgettext we define it as : so that the - dnl Makefiles still can work. - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT=":" - fi - fi - - dnl We need to process the po/ directory. - POSUB=po - fi - AC_OUTPUT_COMMANDS( - [for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - echo creating "$ac_dir/POTFILES" - sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES" - echo creating "$ac_dir/Makefile" - sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - fi - ;; - esac - done]) - - - dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL - dnl to 'yes' because some of the testsuite requires it. - if test "$PACKAGE" = gettext; then - BUILD_INCLUDED_LIBINTL=yes - fi - - dnl intl/plural.c is generated from intl/plural.y. It requires bison, - dnl because plural.y uses bison specific features. It requires at least - dnl bison-1.26 because earlier versions generate a plural.c that doesn't - dnl compile. - dnl bison is only needed for the maintainer (who touches plural.y). But in - dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put - dnl the rule in general Makefile. Now, some people carelessly touch the - dnl files or have a broken "make" program, hence the plural.c rule will - dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not - dnl present or too old. - AC_CHECK_PROGS([INTLBISON], [bison]) - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - dnl Found it, now check the version. - AC_MSG_CHECKING([version of bison]) - changequote(<<,>>)dnl - ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison .* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) - changequote([,])dnl - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - esac - AC_MSG_RESULT([$ac_prog_version]) - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi - - dnl These rules are solely for the distribution goal. While doing this - dnl we only have to keep exactly one list of the available catalogs - dnl in configure.in. - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - dnl Make all variables we use known to autoconf. - AC_SUBST(BUILD_INCLUDED_LIBINTL) - AC_SUBST(USE_INCLUDED_LIBINTL) - AC_SUBST(CATALOGS) - AC_SUBST(CATOBJEXT) - AC_SUBST(GMOFILES) - AC_SUBST(INTLLIBS) - AC_SUBST(INTLOBJS) - AC_SUBST(POFILES) - AC_SUBST(POSUB) - - dnl For backward compatibility. Some configure.ins may be using this. - nls_cv_header_intl= - nls_cv_header_libgt= - - dnl For backward compatibility. Some Makefiles may be using this. - DATADIRNAME=share - AC_SUBST(DATADIRNAME) - - dnl For backward compatibility. Some Makefiles may be using this. - INSTOBJEXT=.mo - AC_SUBST(INSTOBJEXT) - - dnl For backward compatibility. Some Makefiles may be using this. - GENCAT=gencat - AC_SUBST(GENCAT) - ]) - - dnl Usage: Just like AM_WITH_NLS, which see. - AC_DEFUN([AM_GNU_GETTEXT], - [AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_CANONICAL_HOST])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([AC_ISC_POSIX])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_REQUIRE([AC_C_CONST])dnl - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_OFF_T])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - AC_REQUIRE([jm_GLIBC21])dnl - - AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ - stdlib.h string.h unistd.h sys/param.h]) - AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \ - getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ - strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) - - AM_ICONV - AM_LANGINFO_CODESET - AM_LC_MESSAGES - AM_WITH_NLS([$1],[$2],[$3]) - - if test "x$CATOBJEXT" != "x"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - AC_MSG_CHECKING(for catalogs to be installed) - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - AC_MSG_RESULT($LINGUAS) - fi - - dnl Construct list of names of catalog files to be constructed. - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly - dnl find the mkinstalldirs script in another subdir but $(top_srcdir). - dnl Try to locate is. - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - AC_SUBST(MKINSTALLDIRS) - - dnl Enable libtool support if the surrounding package wishes it. - INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], []) - AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) - ]) - - # Search path for a program which passes the given test. - # Ulrich Drepper , 1996. - # - # This file can be copied and used freely without restrictions. It can - # be used in projects which are not available under the GNU Public License - # but which still want to provide support for the GNU gettext functionality. - # Please note that the actual code is *not* freely available. - - # serial 1 - - dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, - dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) - AC_DEFUN([AM_PATH_PROG_WITH_TEST], - [# Extract the first word of "$2", so it can be a program name with args. - set dummy $2; ac_word=[$]2 - AC_MSG_CHECKING([for $ac_word]) - AC_CACHE_VAL(ac_cv_path_$1, - [case "[$]$1" in - /*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in ifelse([$5], , $PATH, [$5]); do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - dnl If no 4th arg is given, leave the cache variable unset, - dnl so AC_PATH_PROGS will keep looking. - ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" - ])dnl - ;; - esac])dnl - $1="$ac_cv_path_$1" - if test -n "[$]$1"; then - AC_MSG_RESULT([$]$1) - else - AC_MSG_RESULT(no) - fi - AC_SUBST($1)dnl - ]) - - #serial 2 - - # Test for the GNU C Library, version 2.1 or newer. - # From Bruno Haible. - - AC_DEFUN([jm_GLIBC21], - [ - AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, - ac_cv_gnu_library_2_1, - [AC_EGREP_CPP([Lucky GNU user], - [ - #include - #ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif - #endif - ], - ac_cv_gnu_library_2_1=yes, - ac_cv_gnu_library_2_1=no) - ] - ) - AC_SUBST(GLIBC21) - GLIBC21="$ac_cv_gnu_library_2_1" - ] - ) - - #serial AM2 - - dnl From Bruno Haible. - - AC_DEFUN([AM_ICONV], - [ - dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and - dnl those with the standalone portable GNU libiconv installed). - - AC_ARG_WITH([libiconv-prefix], - [ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [ - for dir in `echo "$withval" | tr : ' '`; do - if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi - if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi - done - ]) - - AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - AC_TRY_LINK([#include - #include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_func_iconv=yes) - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS -liconv" - AC_TRY_LINK([#include - #include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_lib_iconv=yes - am_cv_func_iconv=yes) - LIBS="$am_save_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) - AC_MSG_CHECKING([for iconv declaration]) - AC_CACHE_VAL(am_cv_proto_iconv, [ - AC_TRY_COMPILE([ - #include - #include - extern - #ifdef __cplusplus - "C" - #endif - #if defined(__STDC__) || defined(__cplusplus) - size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); - #else - size_t iconv(); - #endif - ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) - am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([$]{ac_t:- - }[$]am_cv_proto_iconv) - AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, - [Define as const if the declaration of iconv() needs const.]) - fi - LIBICONV= - if test "$am_cv_lib_iconv" = yes; then - LIBICONV="-liconv" - fi - AC_SUBST(LIBICONV) - ]) - - #serial AM1 - - dnl From Bruno Haible. - - AC_DEFUN([AM_LANGINFO_CODESET], - [ - AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, - [AC_TRY_LINK([#include ], - [char* cs = nl_langinfo(CODESET);], - am_cv_langinfo_codeset=yes, - am_cv_langinfo_codeset=no) - ]) - if test $am_cv_langinfo_codeset = yes; then - AC_DEFINE(HAVE_LANGINFO_CODESET, 1, - [Define if you have and nl_langinfo(CODESET).]) - fi - ]) - - # Check whether LC_MESSAGES is available in . - # Ulrich Drepper , 1995. - # - # This file can be copied and used freely without restrictions. It can - # be used in projects which are not available under the GNU Public License - # but which still want to provide support for the GNU gettext functionality. - # Please note that the actual code is *not* freely available. - - # serial 2 - - AC_DEFUN([AM_LC_MESSAGES], - [if test $ac_cv_header_locale_h = yes; then - AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include ], [return LC_MESSAGES], - am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) - if test $am_cv_val_LC_MESSAGES = yes; then - AC_DEFINE(HAVE_LC_MESSAGES, 1, - [Define if your file defines LC_MESSAGES.]) - fi - fi]) - # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. --- 2230,2235 ---- *************** AC_DEFUN([AM_LC_MESSAGES], *** 2790,2796 **** dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) ! AC_DEFUN([AM_INIT_AUTOMAKE], [AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) --- 2239,2245 ---- dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) ! AC_DEFUN(AM_INIT_AUTOMAKE, [AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) *************** AC_REQUIRE([AC_PROG_MAKE_SET])]) *** 2818,2824 **** # Check to make sure that the build environment is sane. # ! AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 --- 2267,2273 ---- # Check to make sure that the build environment is sane. # ! AC_DEFUN(AM_SANITY_CHECK, [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 *************** AC_MSG_RESULT(yes)]) *** 2859,2865 **** dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl The program must properly implement --version. ! AC_DEFUN([AM_MISSING_PROG], [AC_MSG_CHECKING(for working $2) # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. --- 2308,2314 ---- dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl The program must properly implement --version. ! AC_DEFUN(AM_MISSING_PROG, [AC_MSG_CHECKING(for working $2) # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. *************** AC_SUBST($1)]) *** 2875,2881 **** # Like AC_CONFIG_HEADER, but automatically create stamp file. ! AC_DEFUN([AM_CONFIG_HEADER], [AC_PREREQ([2.12]) AC_CONFIG_HEADER([$1]) dnl When config.status generates a header, we must update the stamp-h file. --- 2324,2330 ---- # Like AC_CONFIG_HEADER, but automatically create stamp file. ! AC_DEFUN(AM_CONFIG_HEADER, [AC_PREREQ([2.12]) AC_CONFIG_HEADER([$1]) dnl When config.status generates a header, we must update the stamp-h file. diff -Nrc3pad gcc-3.1/libstdc++-v3/config/cpu/m68k/bits/atomicity.h gcc-3.1.1/libstdc++-v3/config/cpu/m68k/bits/atomicity.h *** gcc-3.1/libstdc++-v3/config/cpu/m68k/bits/atomicity.h Thu Feb 14 18:57:38 2002 --- gcc-3.1.1/libstdc++-v3/config/cpu/m68k/bits/atomicity.h Mon Jun 3 05:27:41 2002 *************** __exchange_and_add (volatile _Atomic_wor *** 45,51 **** __asm__ __volatile__ ("1: move%.l %0,%1\n\t" "add%.l %2,%1\n\t" "cas%.l %0,%1,%3\n\t" ! "jbne 1b" : "=d" (__result), "=&d" (__temp) : "d" (__val), "m" (*__mem), "0" (__result) : "memory"); --- 45,51 ---- __asm__ __volatile__ ("1: move%.l %0,%1\n\t" "add%.l %2,%1\n\t" "cas%.l %0,%1,%3\n\t" ! "jne 1b" : "=d" (__result), "=&d" (__temp) : "d" (__val), "m" (*__mem), "0" (__result) : "memory"); diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/generic/c_locale.cc gcc-3.1.1/libstdc++-v3/config/locale/generic/c_locale.cc *** gcc-3.1/libstdc++-v3/config/locale/generic/c_locale.cc Fri Apr 19 07:59:01 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/generic/c_locale.cc Sat May 18 22:00:12 2002 *************** namespace std *** 120,126 **** if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! const char* __old = setlocale(LC_ALL, "C"); char* __sanity; errno = 0; #if defined(_GLIBCPP_USE_C99) --- 120,127 ---- if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); char* __sanity; errno = 0; #if defined(_GLIBCPP_USE_C99) *************** namespace std *** 147,152 **** --- 148,154 ---- else __err |= ios_base::failbit; setlocale(LC_ALL, __old); + free(__old); } } *************** namespace std *** 158,164 **** if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! const char* __old = setlocale(LC_ALL, "C"); char* __sanity; errno = 0; double __d = strtod(__s, &__sanity); --- 160,167 ---- if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); char* __sanity; errno = 0; double __d = strtod(__s, &__sanity); *************** namespace std *** 167,172 **** --- 170,176 ---- else __err |= ios_base::failbit; setlocale(LC_ALL, __old); + free(__old); } } *************** namespace std *** 178,184 **** if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! const char* __old = setlocale(LC_ALL, "C"); #if defined(_GLIBCPP_USE_C99) char* __sanity; errno = 0; --- 182,189 ---- if (!(__err & ios_base::failbit)) { // Assumes __s formatted for "C" locale. ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); #if defined(_GLIBCPP_USE_C99) char* __sanity; errno = 0; *************** namespace std *** 202,207 **** --- 207,213 ---- else __err |= ios_base::failbit; setlocale(LC_ALL, __old); + free(__old); } } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/generic/ctype_members.cc gcc-3.1.1/libstdc++-v3/config/locale/generic/ctype_members.cc *** gcc-3.1/libstdc++-v3/config/locale/generic/ctype_members.cc Mon Mar 11 21:12:52 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/generic/ctype_members.cc Fri May 24 16:15:23 2002 *************** *** 1,6 **** // std::ctype implementation details, generic version -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // std::ctype implementation details, generic version -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** namespace std *** 183,194 **** do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, char* __dest) const { ! mbstate_t __state; ! memset(static_cast(&__state), 0, sizeof(mbstate_t)); ! size_t __len = __hi - __lo; ! size_t __conv = wcsrtombs(__dest, &__lo, __len, &__state); ! if (__conv == __len) ! *__dest = __dfault; return __hi; } #endif // _GLIBCPP_USE_WCHAR_T --- 183,205 ---- do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, char* __dest) const { ! size_t __offset = 0; ! while (true) ! { ! const wchar_t* __start = __lo + __offset; ! size_t __len = __hi - __start; ! ! mbstate_t __state; ! memset(static_cast(&__state), 0, sizeof(mbstate_t)); ! size_t __con = wcsrtombs(__dest + __offset, &__start, __len, &__state); ! if (__con != __len && __start != 0) ! { ! __offset = __start - __lo; ! __dest[__offset++] = __dfault; ! } ! else ! break; ! } return __hi; } #endif // _GLIBCPP_USE_WCHAR_T diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/generic/time_members.cc gcc-3.1.1/libstdc++-v3/config/locale/generic/time_members.cc *** gcc-3.1/libstdc++-v3/config/locale/generic/time_members.cc Fri Apr 19 07:59:01 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/generic/time_members.cc Sat May 18 22:00:12 2002 *************** namespace std *** 51,59 **** _M_put(char* __s, size_t __maxlen, const char* __format, const tm* __tm) const { ! const char* __old = setlocale(LC_ALL, _M_name_timepunct); strftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); } template<> --- 51,61 ---- _M_put(char* __s, size_t __maxlen, const char* __format, const tm* __tm) const { ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_timepunct); strftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); + free(__old); } template<> *************** namespace std *** 132,140 **** _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, const tm* __tm) const { ! const char* __old = setlocale(LC_ALL, _M_name_timepunct); wcsftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); } template<> --- 134,144 ---- _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, const tm* __tm) const { ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_timepunct); wcsftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); + free(__old); } template<> diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/gnu/ctype_members.cc gcc-3.1.1/libstdc++-v3/config/locale/gnu/ctype_members.cc *** gcc-3.1/libstdc++-v3/config/locale/gnu/ctype_members.cc Fri Apr 19 07:59:03 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/gnu/ctype_members.cc Fri May 24 16:15:25 2002 *************** namespace std *** 190,201 **** do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, char* __dest) const { ! mbstate_t __state; ! memset(static_cast(&__state), 0, sizeof(mbstate_t)); ! size_t __len = __hi - __lo; ! size_t __conv = wcsrtombs(__dest, &__lo, __len, &__state); ! if (__conv == __len) ! *__dest = __dfault; return __hi; } #endif // _GLIBCPP_USE_WCHAR_T --- 190,212 ---- do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, char* __dest) const { ! size_t __offset = 0; ! while (true) ! { ! const wchar_t* __start = __lo + __offset; ! size_t __len = __hi - __start; ! ! mbstate_t __state; ! memset(static_cast(&__state), 0, sizeof(mbstate_t)); ! size_t __con = wcsrtombs(__dest + __offset, &__start, __len, &__state); ! if (__con != __len && __start != 0) ! { ! __offset = __start - __lo; ! __dest[__offset++] = __dfault; ! } ! else ! break; ! } return __hi; } #endif // _GLIBCPP_USE_WCHAR_T diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/gnu/messages_members.cc gcc-3.1.1/libstdc++-v3/config/locale/gnu/messages_members.cc *** gcc-3.1/libstdc++-v3/config/locale/gnu/messages_members.cc Fri Apr 19 07:59:03 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/gnu/messages_members.cc Sat May 18 22:00:14 2002 *************** namespace std *** 48,56 **** __uselocale(__old); return string(__msg); #else ! const char* __old = setlocale(LC_ALL, _M_name_messages); const char* __msg = gettext(__dfault.c_str()); setlocale(LC_ALL, __old); return string(__msg); #endif } --- 48,58 ---- __uselocale(__old); return string(__msg); #else ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_messages); const char* __msg = gettext(__dfault.c_str()); setlocale(LC_ALL, __old); + free(__old); return string(__msg); #endif } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/gnu/messages_members.h gcc-3.1.1/libstdc++-v3/config/locale/gnu/messages_members.h *** gcc-3.1/libstdc++-v3/config/locale/gnu/messages_members.h Mon Mar 25 20:29:16 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/gnu/messages_members.h Sat May 18 22:00:14 2002 *************** *** 65,73 **** __uselocale(__old); return _M_convert_from_char(__msg); #else ! const char* __old = setlocale(LC_ALL, _M_name_messages); char* __msg = gettext(_M_convert_to_char(__dfault)); setlocale(LC_ALL, __old); return _M_convert_from_char(__msg); #endif } --- 65,75 ---- __uselocale(__old); return _M_convert_from_char(__msg); #else ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_messages); char* __msg = gettext(_M_convert_to_char(__dfault)); setlocale(LC_ALL, __old); + free(__old); return _M_convert_from_char(__msg); #endif } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/gnu/time_members.cc gcc-3.1.1/libstdc++-v3/config/locale/gnu/time_members.cc *** gcc-3.1/libstdc++-v3/config/locale/gnu/time_members.cc Fri Apr 19 07:59:03 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/gnu/time_members.cc Sat May 18 22:00:14 2002 *************** namespace std *** 54,62 **** #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) __strftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else ! const char* __old = setlocale(LC_ALL, _M_name_timepunct); strftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); #endif } --- 54,64 ---- #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) __strftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_timepunct); strftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); + free(__old); #endif } *************** namespace std *** 202,210 **** #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) __wcsftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else ! const char* __old = setlocale(LC_ALL, _M_name_timepunct); wcsftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); #endif } --- 204,214 ---- #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) __wcsftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm); #else ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, _M_name_timepunct); wcsftime(__s, __maxlen, __format, __tm); setlocale(LC_ALL, __old); + free(__old); #endif } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h gcc-3.1.1/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h *** gcc-3.1/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h Fri Apr 19 07:59:04 2002 --- gcc-3.1.1/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h Sun May 26 14:45:43 2002 *************** *** 110,115 **** --- 110,116 ---- _M_out_desc = 0; _M_ext_bom = __obj._M_ext_bom; _M_int_bom = __obj._M_int_bom; + return *this; } ~__enc_traits() diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/aix/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/aix/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/aix/bits/ctype_noninline.h Tue Jan 22 16:09:24 2002 --- gcc-3.1.1/libstdc++-v3/config/os/aix/bits/ctype_noninline.h Wed Jun 5 15:14:20 2002 *************** *** 52,58 **** char ctype::do_toupper(char __c) const ! { return _toupper(__c); } const char* ctype::do_toupper(char* __low, const char* __high) const --- 52,58 ---- char ctype::do_toupper(char __c) const ! { return ::toupper((int) __c); } const char* ctype::do_toupper(char* __low, const char* __high) const *************** *** 67,73 **** char ctype::do_tolower(char __c) const ! { return _tolower(__c); } const char* ctype::do_tolower(char* __low, const char* __high) const --- 67,73 ---- char ctype::do_tolower(char __c) const ! { return ::tolower((int) __c); } const char* ctype::do_tolower(char* __low, const char* __high) const diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/generic/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/generic/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/generic/bits/ctype_noninline.h Mon Jan 21 04:08:48 2002 --- gcc-3.1.1/libstdc++-v3/config/os/generic/bits/ctype_noninline.h Sat Jun 8 14:09:04 2002 *************** *** 42,54 **** size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(__table == 0 ? classic_table() : __table) { } ctype::ctype(const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(__table == 0 ? classic_table() : __table) { } char --- 42,54 ---- size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(__table ? __table : classic_table()) { } ctype::ctype(const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(__table ? __table : classic_table()) { } char diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/gnu-linux/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/gnu-linux/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/gnu-linux/bits/os_defines.h Fri Apr 5 13:44:54 2002 --- gcc-3.1.1/libstdc++-v3/config/os/gnu-linux/bits/os_defines.h Sat Jun 1 00:41:20 2002 *************** typedef __loff_t __off64_t; *** 65,75 **** #define __NO_STRING_INLINES #endif ! #if defined(__powerpc64__) || defined(__s390x__) || (defined(__sparc__) && defined(__arch64__)) #define __glibcpp_long_bits 64 #endif ! #if defined(__sparc__) && !defined(__arch64__) #define __glibcpp_long_double_bits 64 #endif --- 65,75 ---- #define __NO_STRING_INLINES #endif ! #if (defined(__hppa__) && defined(__LP64__)) || defined(__powerpc64__) || defined(__s390x__) || (defined(__sparc__) && defined(__arch64__)) #define __glibcpp_long_bits 64 #endif ! #if defined(__hppa__) || (defined(__sparc__) && !defined(__arch64__)) #define __glibcpp_long_double_bits 64 #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h *** gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h Wed Mar 7 18:33:04 2001 --- gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_inline.h Sat May 18 14:42:48 2002 *************** *** 1,6 **** // Locale support -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Locale support -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 37,50 **** bool ctype:: is(mask __m, char __c) const ! { return (_M_table)[__c] & __m; } const char* ctype:: is(const char* __low, const char* __high, mask* __vec) const { while (__low < __high) ! *__vec++ = (_M_table)[*__low++]; return __high; } --- 37,50 ---- bool ctype:: is(mask __m, char __c) const ! { return (_M_table)[static_cast(__c)] & __m; } const char* ctype:: is(const char* __low, const char* __high, mask* __vec) const { while (__low < __high) ! *__vec++ = (_M_table)[static_cast(*__low++)]; return __high; } *************** *** 52,58 **** ctype:: scan_is(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && !((_M_table)[*__low] & __m)) ++__low; return __low; } --- 52,58 ---- ctype:: scan_is(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && ! this->is(__m, *__low)) ++__low; return __low; } *************** *** 61,72 **** ctype:: scan_not(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && ((_M_table + 1)[*__low] & __m) != 0) ++__low; return __low; } - - - - - --- 61,67 ---- ctype:: scan_not(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && this->is(__m, *__low)) ++__low; return __low; } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h Mon Jan 21 04:08:50 2002 --- gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/ctype_noninline.h Sun May 19 15:16:30 2002 *************** *** 36,54 **** const ctype_base::mask* ctype::classic_table() throw() ! { return 0; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(!__table ? __ctype : __table) { } ctype::ctype(const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(!__table ? __ctype : __table) { } char --- 36,54 ---- const ctype_base::mask* ctype::classic_table() throw() ! { return __ctype + 1; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(!__table ? classic_table() : __table) { } ctype::ctype(const mask* __table, bool __del, size_t __refs) : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), _M_toupper(NULL), _M_tolower(NULL), ! _M_table(!__table ? classic_table() : __table) { } char diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h Tue Oct 23 21:40:29 2001 --- gcc-3.1.1/libstdc++-v3/config/os/irix/irix5.2/bits/os_defines.h Sun May 19 15:13:03 2002 *************** *** 1,6 **** // Specific definitions for IRIX -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Specific definitions for IRIX -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 48,54 **** #define __off64_t off64_t #define __ssize_t ssize_t ! // GCC does not use thunks on IRIX. #define _G_USING_THUNKS 0 #endif --- 48,61 ---- #define __off64_t off64_t #define __ssize_t ssize_t ! // GCC does not use thunks on IRIX. #define _G_USING_THUNKS 0 + #define __glibcpp_long_double_bits 64 + + #if __LONG_MAX__ > 2147483647 + #define __glibcpp_long_bits 64 #endif + + #endif + diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h gcc-3.1.1/libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h *** gcc-3.1/libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h Wed Mar 13 06:45:25 2002 --- gcc-3.1.1/libstdc++-v3/config/os/irix/irix6.5/bits/ctype_inline.h Sat May 18 14:42:49 2002 *************** *** 52,59 **** ctype:: scan_is(mask __m, const char* __low, const char* __high) const { ! while (__low < __high ! && !((_M_table)[static_cast(*__low)] & __m)) ++__low; return __low; } --- 52,58 ---- ctype:: scan_is(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && ! this->is(__m, *__low)) ++__low; return __low; } *************** *** 62,69 **** ctype:: scan_not(mask __m, const char* __low, const char* __high) const { ! while (__low < __high ! && ((_M_table + 1)[static_cast(*__low)] & __m) != 0) ++__low; return __low; } --- 61,67 ---- ctype:: scan_not(mask __m, const char* __low, const char* __high) const { ! while (__low < __high && this->is(__m, *__low)) ++__low; return __low; } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h *** gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_base.h Tue Jun 11 18:11:06 2002 *************** *** 0 **** --- 1,55 ---- + // Locale support -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: 22.1 Locales + // + + // Information as gleaned from /usr/include/ctype.h. + + struct ctype_base + { + // Non-standard typedefs. + typedef const unsigned char* __to_type; + + // NB: Offsets into ctype::_M_table force a particular size + // on the mask type. Because of this, we don't use an enum. + typedef short mask; + static const mask upper = _UP; + static const mask lower = _LO; + static const mask alpha = _LO | _UP | _XA; + static const mask digit = _DI; + static const mask xdigit = _XD; + static const mask space = _CN | _SP | _XS; + static const mask print = _DI | _LO | _PU | _SP | _UP | _XA; + static const mask graph = _DI | _LO | _PU | _UP | _XA; + static const mask cntrl = _BB; + static const mask punct = _PU; + static const mask alnum = _DI | _LO | _UP | _XA; + }; diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_inline.h gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_inline.h *** gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_inline.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_inline.h Tue Jun 11 18:11:06 2002 *************** *** 0 **** --- 1,67 ---- + // Locale support -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: 22.1 Locales + // + + // ctype bits to be inlined go here. Non-inlinable (ie virtual do_*) + // functions go in ctype.cc + + bool + ctype:: + is(mask __m, char __c) const + { return _M_table[(unsigned char)(__c)] & __m; } + + const char* + ctype:: + is(const char* __low, const char* __high, mask* __vec) const + { + while (__low < __high) + *__vec++ = _M_table[*__low++]; + return __high; + } + + const char* + ctype:: + scan_is(mask __m, const char* __low, const char* __high) const + { + while (__low < __high && !this->is(__m, *__low)) + ++__low; + return __low; + } + + const char* + ctype:: + scan_not(mask __m, const char* __low, const char* __high) const + { + while (__low < __high && this->is(__m, *__low) != 0) + ++__low; + return __low; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_noninline.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/ctype_noninline.h Tue Jun 11 18:11:06 2002 *************** *** 0 **** --- 1,79 ---- + // Locale support -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: 22.1 Locales + // + + // Information as gleaned from /usr/include/ctype.h + + const ctype_base::mask* + ctype::classic_table() throw() + { return 0; } + + ctype::ctype(__c_locale, const mask* __table, bool __del, + size_t __refs) + : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), + _M_toupper(NULL), _M_tolower(NULL), _M_table(__table ? __table : _Ctype) + { } + + ctype::ctype(const mask* __table, bool __del, size_t __refs) + : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del), + _M_toupper(NULL), _M_tolower(NULL), _M_table(__table ? __table : _Ctype) + { } + + char + ctype::do_toupper(char __c) const + { return ::toupper((int) __c); } + + const char* + ctype::do_toupper(char* __low, const char* __high) const + { + while (__low < __high) + { + *__low = ::toupper((int) *__low); + ++__low; + } + return __high; + } + + char + ctype::do_tolower(char __c) const + { return ::tolower((int) __c); } + + const char* + ctype::do_tolower(char* __low, const char* __high) const + { + while (__low < __high) + { + *__low = ::tolower((int) *__low); + ++__low; + } + return __high; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/os_defines.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/config/os/qnx/qnx6.1/bits/os_defines.h Tue Jun 11 18:11:06 2002 *************** *** 0 **** --- 1,36 ---- + // Specific definitions for QNX 6.1 -*- C++ -*- + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _GLIBCPP_OS_DEFINES + #define _GLIBCPP_OS_DEFINES 1 + + // System-specific #define, typedefs, corrections, etc, go here. This + // file will come before all others. + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h Thu Dec 14 07:20:36 2000 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_base.h Mon Jul 15 20:25:40 2002 *************** *** 1,6 **** // Locale support -*- C++ -*- ! // Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Locale support -*- C++ -*- ! // Copyright (C) 1997-1999, 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 47,53 **** static const mask digit = 04; static const mask xdigit = 0200; static const mask space = 010; ! static const mask print = 020 | 01 | 02 | 04 | 0200; static const mask graph = 020 | 01 | 02 | 04; static const mask cntrl = 040; static const mask punct = 020; --- 47,53 ---- static const mask digit = 04; static const mask xdigit = 0200; static const mask space = 010; ! static const mask print = 020 | 01 | 02 | 04 | 0100; static const mask graph = 020 | 01 | 02 | 04; static const mask cntrl = 040; static const mask punct = 020; diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h Wed Mar 13 06:45:26 2002 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/ctype_noninline.h Mon May 27 11:50:14 2002 *************** *** 35,41 **** const ctype_base::mask* ctype::classic_table() throw() ! { return 0; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) --- 35,41 ---- const ctype_base::mask* ctype::classic_table() throw() ! { return __ctype; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h Mon Apr 22 20:28:29 2002 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.5/bits/os_defines.h Sat May 18 14:51:46 2002 *************** *** 1,6 **** // Specific definitions for Solaris 2.5 -*- C++ -*- ! // Copyright (C) 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Specific definitions for Solaris 2.5 -*- C++ -*- ! // Copyright (C) 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 39,45 **** #define __off64_t off64_t #define __ssize_t ssize_t - // Without this all the libio vtbls are offset wrongly. - #define _G_USING_THUNKS 0 - #endif --- 39,42 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h Wed Mar 13 06:45:28 2002 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/ctype_noninline.h Mon May 27 11:50:16 2002 *************** *** 35,41 **** const ctype_base::mask* ctype::classic_table() throw() ! { return 0; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) --- 35,41 ---- const ctype_base::mask* ctype::classic_table() throw() ! { return __ctype_mask; } ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h Mon Apr 22 20:28:30 2002 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.6/bits/os_defines.h Sat May 18 14:51:46 2002 *************** *** 1,6 **** // Specific definitions for Solaris 2.6 -*- C++ -*- ! // Copyright (C) 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Specific definitions for Solaris 2.6 -*- C++ -*- ! // Copyright (C) 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 39,45 **** #define __off64_t off64_t #define __ssize_t ssize_t - // Without this all the libio vtbls are offset wrongly. - #define _G_USING_THUNKS 0 - #endif --- 39,42 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h *** gcc-3.1/libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h Mon Apr 22 20:28:32 2002 --- gcc-3.1.1/libstdc++-v3/config/os/solaris/solaris2.7/bits/os_defines.h Sat May 18 14:51:46 2002 *************** *** 1,6 **** // Specific definitions for Solaris 7,8 -*- C++ -*- ! // Copyright (C) 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Specific definitions for Solaris 7,8 -*- C++ -*- ! // Copyright (C) 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 39,49 **** #define __off64_t off64_t #define __ssize_t ssize_t - // Without this all the libio vtbls are offset wrongly. - #define _G_USING_THUNKS 0 - #if defined(__sparcv9) || defined(__arch64__) #define __glibcpp_long_bits 64 #endif #endif --- 39,47 ---- #define __off64_t off64_t #define __ssize_t ssize_t #if defined(__sparcv9) || defined(__arch64__) #define __glibcpp_long_bits 64 #endif #endif + diff -Nrc3pad gcc-3.1/libstdc++-v3/config.h.in gcc-3.1.1/libstdc++-v3/config.h.in *** gcc-3.1/libstdc++-v3/config.h.in Mon Mar 25 21:00:56 2002 --- gcc-3.1.1/libstdc++-v3/config.h.in Mon May 27 15:01:29 2002 *************** *** 711,716 **** --- 711,719 ---- /* Define if you have the header file. */ #undef HAVE_STDLIB_H + /* Define if you have the header file. */ + #undef HAVE_STRING_H + /* Define if you have the header file. */ #undef HAVE_SYS_ISA_DEFS_H diff -Nrc3pad gcc-3.1/libstdc++-v3/configure gcc-3.1.1/libstdc++-v3/configure *** gcc-3.1/libstdc++-v3/configure Wed May 8 04:27:59 2002 --- gcc-3.1.1/libstdc++-v3/configure Wed Jul 3 22:47:36 2002 *************** ORIGINAL_LD_FOR_MULTILIBS=$LD *** 598,616 **** PACKAGE=libstdc++ - # For typical GNU versioning info, format is MAJOR.MINOR.MICRO - release_VERSION=3.1.0 - # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=4:0:0 ! # Gets build, host, target, *_vendor, *_cpu, *_os, etc. ! # AC 2.5x sets target_alias iff the user specified --target, but we use it ! # everywhere, so we set it here just to be sure. In AC 2.13 ! # AC_CANONICAL_TARGET was known as AC_CANONICAL_SYSTEM. ! ac_aux_dir= ! for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" --- 598,640 ---- PACKAGE=libstdc++ # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=4:1:0 ! ! # Check whether --enable-multilib or --disable-multilib was given. ! if test "${enable_multilib+set}" = set; then ! enableval="$enable_multilib" ! case "${enableval}" in ! yes) multilib=yes ;; ! no) multilib=no ;; ! *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; ! esac ! else ! multilib=yes ! fi ! ! # When building with srcdir == objdir, links to the source files will ! # be created in directories within the target_subdir. We have to ! # adjust toplevel_srcdir accordingly, so that configure finds ! # install-sh and other auxiliary files that live in the top-level ! # source directory. ! if test "${srcdir}" = "."; then ! if test -z "${with_target_subdir}"; then ! toprel=".." ! else ! if test "${with_target_subdir}" != "."; then ! toprel="${with_multisrctop}../.." ! else ! toprel="${with_multisrctop}.." ! fi ! fi ! else ! toprel=".." ! fi ! ac_aux_dir= ! for ac_dir in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" *************** for ac_dir in $srcdir $srcdir/.. $srcdir *** 622,633 **** fi done if test -z "$ac_aux_dir"; then ! { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # Do some error checking and defaulting for the host and target type. # The inputs are: --- 646,665 ---- fi done if test -z "$ac_aux_dir"; then ! { echo "configure: error: can not find install-sh or install.sh in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel" 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + toplevel_srcdir=\${top_srcdir}/$toprel + + + + # Gets build, host, target, *_vendor, *_cpu, *_os, etc. + # AC 2.5x sets target_alias iff the user specified --target, but we use it + # everywhere, so we set it here just to be sure. In AC 2.13 + # AC_CANONICAL_TARGET was known as AC_CANONICAL_SYSTEM. # Do some error checking and defaulting for the host and target type. # The inputs are: *************** else { echo "configure: error: can not r *** 656,662 **** fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:660: checking host system type" >&5 host_alias=$host case "$host_alias" in --- 688,694 ---- fi echo $ac_n "checking host system type""... $ac_c" 1>&6 ! echo "configure:692: checking host system type" >&5 host_alias=$host case "$host_alias" in *************** host_os=`echo $host | sed 's/^\([^-]*\)- *** 677,683 **** echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:681: checking target system type" >&5 target_alias=$target case "$target_alias" in --- 709,715 ---- echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 ! echo "configure:713: checking target system type" >&5 target_alias=$target case "$target_alias" in *************** target_os=`echo $target | sed 's/^\([^-] *** 695,701 **** echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:699: checking build system type" >&5 build_alias=$build case "$build_alias" in --- 727,733 ---- echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 ! echo "configure:731: checking build system type" >&5 build_alias=$build case "$build_alias" in *************** test "$host_alias" != "$target_alias" && *** 720,962 **** target_alias=${target_alias-$target} - # Find a good install program. We prefer a C program (faster), - # so one script is as good as another. But avoid the broken or - # incompatible versions: - # SysV /etc/install, /usr/sbin/install - # SunOS /usr/etc/install - # IRIX /sbin/install - # AIX /bin/install - # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag - # AFS /usr/afsws/bin/install, which mishandles nonexistent args - # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" - # ./install, which can be erroneously created by make from ./install.sh. - echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 - echo "configure:736: checking for a BSD compatible install" >&5 - if test -z "$INSTALL"; then - if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 - else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - - fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi - fi - echo "$ac_t""$INSTALL" 1>&6 - - # Use test -z because SunOS4 sh mishandles braces in ${var-val}. - # It thinks the first close brace ends the variable substitution. - test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - - test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - - test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 - echo "configure:789: checking whether build environment is sane" >&5 - # Just in case - sleep 1 - echo timestamp > conftestfile - # Do `set' in a subshell so we don't clobber the current shell's - # arguments. Must try -L first in case configure is actually a - # symlink; some systems play weird games with the mod time of symlinks - # (eg FreeBSD returns the mod time of the symlink's containing - # directory). - if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "$*" != "X $srcdir/configure conftestfile" \ - && test "$*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { echo "configure: error: ls -t appears to fail. Make sure there is not a broken - alias in your environment" 1>&2; exit 1; } - fi - - test "$2" = conftestfile - ) - then - # Ok. - : - else - { echo "configure: error: newly created file is older than distributed files! - Check your system clock" 1>&2; exit 1; } - fi - rm -f conftest* - echo "$ac_t""yes" 1>&6 - if test "$program_transform_name" = s,x,x,; then - program_transform_name= - else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF_SED > conftestsed - s,\\,\\\\,g; s,\$,$$,g - EOF_SED - program_transform_name="`echo $program_transform_name|sed -f conftestsed`" - rm -f conftestsed - fi - test "$program_prefix" != NONE && - program_transform_name="s,^,${program_prefix},; $program_transform_name" - # Use a double $ so make ignores it. - test "$program_suffix" != NONE && - program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" - - # sed with no file args requires a program. - test "$program_transform_name" = "" && program_transform_name="s,x,x," - - echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 - echo "configure:846: checking whether ${MAKE-make} sets \${MAKE}" >&5 - set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` - if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 - else - cat > conftestmake <<\EOF - all: - @echo 'ac_maketemp="${MAKE}"' - EOF - # GNU make sometimes prints "make[1]: Entering...", which would confuse us. - eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` - if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes - else - eval ac_cv_prog_make_${ac_make}_set=no - fi - rm -f conftestmake - fi - if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$ac_t""yes" 1>&6 - SET_MAKE= - else - echo "$ac_t""no" 1>&6 - SET_MAKE="MAKE=${MAKE-make}" - fi - - - PACKAGE=$PACKAGE - - VERSION=$release_VERSION - - if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } - fi - cat >> confdefs.h <> confdefs.h <&6 - echo "configure:892: checking for working aclocal" >&5 - # Run test in a subshell; some versions of sh will print an error if - # an executable is not found, even if stderr is redirected. - # Redirect stdin to placate older versions of autoconf. Sigh. - if (aclocal --version) < /dev/null > /dev/null 2>&1; then - ACLOCAL=aclocal - echo "$ac_t""found" 1>&6 - else - ACLOCAL="$missing_dir/missing aclocal" - echo "$ac_t""missing" 1>&6 - fi - - echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 - echo "configure:905: checking for working autoconf" >&5 - # Run test in a subshell; some versions of sh will print an error if - # an executable is not found, even if stderr is redirected. - # Redirect stdin to placate older versions of autoconf. Sigh. - if (autoconf --version) < /dev/null > /dev/null 2>&1; then - AUTOCONF=autoconf - echo "$ac_t""found" 1>&6 - else - AUTOCONF="$missing_dir/missing autoconf" - echo "$ac_t""missing" 1>&6 - fi - - echo $ac_n "checking for working automake""... $ac_c" 1>&6 - echo "configure:918: checking for working automake" >&5 - # Run test in a subshell; some versions of sh will print an error if - # an executable is not found, even if stderr is redirected. - # Redirect stdin to placate older versions of autoconf. Sigh. - if (automake --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake - echo "$ac_t""found" 1>&6 - else - AUTOMAKE="$missing_dir/missing automake" - echo "$ac_t""missing" 1>&6 - fi - - echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 - echo "configure:931: checking for working autoheader" >&5 - # Run test in a subshell; some versions of sh will print an error if - # an executable is not found, even if stderr is redirected. - # Redirect stdin to placate older versions of autoconf. Sigh. - if (autoheader --version) < /dev/null > /dev/null 2>&1; then - AUTOHEADER=autoheader - echo "$ac_t""found" 1>&6 - else - AUTOHEADER="$missing_dir/missing autoheader" - echo "$ac_t""missing" 1>&6 - fi - - echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 - echo "configure:944: checking for working makeinfo" >&5 - # Run test in a subshell; some versions of sh will print an error if - # an executable is not found, even if stderr is redirected. - # Redirect stdin to placate older versions of autoconf. Sigh. - if (makeinfo --version) < /dev/null > /dev/null 2>&1; then - MAKEINFO=makeinfo - echo "$ac_t""found" 1>&6 - else - MAKEINFO="$missing_dir/missing makeinfo" - echo "$ac_t""missing" 1>&6 - fi - - - - - - # Runs configure.host and configure.target, as well as finds CC, CXX # and assorted other critical bits. Have to run this before the # GLIBCPP_ENABLE_* macros below. --- 752,757 ---- *************** else *** 967,978 **** fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 ! echo "configure:971: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:766: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else --- 778,784 ---- return __CYGWIN__; ; return 0; } EOF ! if { (eval echo configure:782: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else *************** echo "$ac_t""$ac_cv_cygwin" 1>&6 *** 1000,1018 **** CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:1004: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else --- 795,813 ---- CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ! echo "configure:799: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else *************** echo "$ac_t""$ac_cv_mingw32" 1>&6 *** 1029,1091 **** MINGW32= test "$ac_cv_mingw32" = yes && MINGW32=yes - # Check whether --enable-multilib or --disable-multilib was given. - if test "${enable_multilib+set}" = set; then - enableval="$enable_multilib" - case "${enableval}" in - yes) multilib=yes ;; - no) multilib=no ;; - *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; - esac - else - multilib=yes - fi - - # When building with srcdir == objdir, links to the source files will - # be created in directories within the target_subdir. We have to - # adjust toplevel_srcdir accordingly, so that configure finds - # install-sh and other auxiliary files that live in the top-level - # source directory. - if test "${srcdir}" = "."; then - if test -z "${with_target_subdir}"; then - toprel=".." - else - if test "${with_target_subdir}" != "."; then - toprel="${with_multisrctop}../.." - else - toprel="${with_multisrctop}.." - fi - fi - else - toprel=".." - fi - ac_aux_dir= - for ac_dir in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi - done - if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in ${srcdir}/$toprel $srcdir/${srcdir}/$toprel" 1>&2; exit 1; } - fi - ac_config_guess=$ac_aux_dir/config.guess - ac_config_sub=$ac_aux_dir/config.sub - ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. ! toplevel_srcdir=\${top_srcdir}/$toprel ! # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`pwd` case $srcdir in \\/$* | ?:\\/*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; --- 824,837 ---- MINGW32= test "$ac_cv_mingw32" = yes && MINGW32=yes ! #possibly test for the presence of the compiler sources here? # Export build and source directories. # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. ! glibcpp_builddir=`${PWDCMD-pwd}` case $srcdir in \\/$* | ?:\\/*) glibcpp_srcdir=${srcdir} ;; *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; *************** do *** 1100,1106 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1104: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 846,852 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:850: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test -n "$AWK" && break *** 1130,1139 **** done # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. #ac_cv_prog_LN_S='cp -p' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:1137: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 876,886 ---- done # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also ! # be 'cp -p' if linking isn't available. Uncomment the next line to ! # force a particular method. #ac_cv_prog_LN_S='cp -p' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ! echo "configure:884: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1190,1196 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1194: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 937,943 ---- # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:941: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1220,1226 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1224: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 967,973 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:971: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1269,1275 **** fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1273: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1016,1022 ---- fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:1020: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1278,1284 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1282: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no --- 1025,1031 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1029: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no *************** echo "$ac_t""$ac_cv_prog_gcc" 1>&6 *** 1293,1299 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1297: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1040,1046 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:1044: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** do *** 1336,1342 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1340: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_glibcpp_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1083,1089 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1087: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_glibcpp_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test -n "$glibcpp_CXX" || glibcpp_CXX="g *** 1371,1377 **** test -z "$glibcpp_CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 ! echo "configure:1375: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1118,1124 ---- test -z "$glibcpp_CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 ! echo "configure:1122: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1380,1386 **** yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1384: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no --- 1127,1133 ---- yes; #endif EOF ! if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1131: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no *************** echo "$ac_t""$ac_cv_prog_gxx" 1>&6 *** 1395,1401 **** ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:1399: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1142,1148 ---- ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 ! echo "configure:1146: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 *** 1423,1477 **** fi ! # For some reason, gettext needs this. ! ! echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 ! echo "configure:1430: checking for strerror in -lcposix" >&5 ! ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` ! if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ! echo $ac_n "(cached) $ac_c" 1>&6 ! else ! ac_save_LIBS="$LIBS" ! LIBS="-lcposix $LIBS" ! cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" - else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" - fi - rm -f conftest* - LIBS="$ac_save_LIBS" ! fi ! if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ! echo "$ac_t""yes" 1>&6 ! LIBS="$LIBS -lcposix" else echo "$ac_t""no" 1>&6 fi - - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1475: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1170,1208 ---- fi ! # For directory versioning (e.g., headers) and other variables. ! echo $ac_n "checking for GCC version number""... $ac_c" 1>&6 ! echo "configure:1176: checking for GCC version number" >&5 ! gcc_version=`$glibcpp_CXX -dumpversion` ! echo "$ac_t""$gcc_version" 1>&6 ! # For some reason, gettext needs this. ! echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 ! echo "configure:1182: checking for POSIXized ISC" >&5 ! if test -d /etc/conf/kconfig.d && ! grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 ! then ! echo "$ac_t""yes" 1>&6 ! ISC=yes # If later tests want to check for ISC. ! cat >> confdefs.h <<\EOF ! #define _POSIX_SOURCE 1 EOF ! if test "$GCC" = yes; then ! CC="$CC -posix" ! else ! CC="$CC -Xp" ! fi else echo "$ac_t""no" 1>&6 + ISC= fi # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1206: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1503,1509 **** # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1507: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1234,1240 ---- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1238: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1535,1541 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1539: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1266,1272 ---- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1270: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 1567,1573 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1571: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1298,1304 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:1302: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 1611,1617 **** # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:1615: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1342,1348 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ! echo "configure:1346: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** test -z "$INSTALL_DATA" && INSTALL_DATA= *** 1665,1671 **** echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:1669: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" --- 1396,1402 ---- echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ! echo "configure:1400: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" *************** fi *** 1703,1709 **** echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1707: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1434,1440 ---- echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ! echo "configure:1438: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 1713,1719 **** rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj | *.ilk | *.pdb) ;; --- 1444,1450 ---- rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= ! if { (eval echo configure:1448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj | *.ilk | *.pdb) ;; *************** ac_exeext=$EXEEXT *** 1735,1748 **** fi - . ${glibcpp_basedir}/configure.host - case ${glibcpp_basedir} in /* | A-Za-z:\\/*) libgcj_flagbasedir=${glibcpp_basedir} ;; *) glibcpp_flagbasedir='$(top_builddir)/'${glibcpp_basedir} ;; esac ! # This does for the target what configure.host does for the host. In # addition to possibly modifying the same flags, it also sets up symlinks. . ${glibcpp_basedir}/configure.target --- 1466,1477 ---- fi case ${glibcpp_basedir} in /* | A-Za-z:\\/*) libgcj_flagbasedir=${glibcpp_basedir} ;; *) glibcpp_flagbasedir='$(top_builddir)/'${glibcpp_basedir} ;; esac ! # Find platform-specific directories containing configuration info. In # addition to possibly modifying the same flags, it also sets up symlinks. . ${glibcpp_basedir}/configure.target *************** ac_exeext=$EXEEXT *** 1751,1756 **** --- 1480,1657 ---- + echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 + echo "configure:1485: checking whether build environment is sane" >&5 + # Just in case + sleep 1 + echo timestamp > conftestfile + # Do `set' in a subshell so we don't clobber the current shell's + # arguments. Must try -L first in case configure is actually a + # symlink; some systems play weird games with the mod time of symlinks + # (eg FreeBSD returns the mod time of the symlink's containing + # directory). + if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken + alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) + then + # Ok. + : + else + { echo "configure: error: newly created file is older than distributed files! + Check your system clock" 1>&2; exit 1; } + fi + rm -f conftest* + echo "$ac_t""yes" 1>&6 + if test "$program_transform_name" = s,x,x,; then + program_transform_name= + else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed + s,\\,\\\\,g; s,\$,$$,g + EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed + fi + test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" + # Use a double $ so make ignores it. + test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + + # sed with no file args requires a program. + test "$program_transform_name" = "" && program_transform_name="s,x,x," + + echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 + echo "configure:1542: checking whether ${MAKE-make} sets \${MAKE}" >&5 + set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftestmake <<\EOF + all: + @echo 'ac_maketemp="${MAKE}"' + EOF + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` + if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes + else + eval ac_cv_prog_make_${ac_make}_set=no + fi + rm -f conftestmake + fi + if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= + else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" + fi + + + PACKAGE=$PACKAGE + + VERSION=$gcc_version + + if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } + fi + cat >> confdefs.h <> confdefs.h <&6 + echo "configure:1588: checking for working aclocal" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 + else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 + echo "configure:1601: checking for working autoconf" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 + else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working automake""... $ac_c" 1>&6 + echo "configure:1614: checking for working automake" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 + else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 + echo "configure:1627: checking for working autoheader" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 + else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 + echo "configure:1640: checking for working makeinfo" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 + else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 + fi + + + + + # Check whether --enable-shared or --disable-shared was given. *************** ac_prog=ld *** 1834,1840 **** if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ! echo "configure:1838: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw --- 1735,1741 ---- if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ! echo "configure:1739: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw *************** echo "configure:1838: checking for ld us *** 1864,1873 **** esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1868: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1871: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1765,1774 ---- esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ! echo "configure:1769: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ! echo "configure:1772: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 1902,1908 **** fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ! echo "configure:1906: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1803,1809 ---- fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ! echo "configure:1807: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** with_gnu_ld=$lt_cv_prog_gnu_ld *** 1919,1925 **** echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1923: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1820,1826 ---- echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ! echo "configure:1824: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** reload_flag=$lt_cv_ld_reload_flag *** 1931,1937 **** test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1935: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1832,1838 ---- test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ! echo "configure:1836: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** NM="$lt_cv_path_NM" *** 1969,1975 **** echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1973: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1870,1876 ---- echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 ! echo "configure:1874: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** file_magic_cmd=$lt_cv_file_magic_cmd *** 2133,2145 **** deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:2137: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext ! if { (eval echo configure:2143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; --- 2034,2046 ---- deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ! echo "configure:2038: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext ! if { (eval echo configure:2044: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; *************** case $deplibs_check_method in *** 2163,2169 **** file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ! echo "configure:2167: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2064,2070 ---- file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ! echo "configure:2068: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2225,2231 **** if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 ! echo "configure:2229: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2126,2132 ---- if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 ! echo "configure:2130: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** esac *** 2296,2302 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2300: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2197,2203 ---- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2201: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 2328,2334 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2332: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2229,2235 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2233: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 2363,2369 **** # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2367: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2264,2270 ---- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2268: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** if test -n "$ac_tool_prefix"; then *** 2395,2401 **** # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2399: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2296,2302 ---- # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:2300: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** test x"$pic_mode" = xno && libtool_flags *** 2462,2469 **** case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2466 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2467: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" --- 2363,2370 ---- case $host in *-*-irix6*) # Find out which ABI we are using. ! echo '#line 2367 "configure"' > conftest.$ac_ext ! if { (eval echo configure:2368: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" *************** case $host in *** 2484,2490 **** SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2488: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2385,2391 ---- SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ! echo "configure:2389: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CC-cc} -o conftest${ac_exeext *** 2497,2510 **** cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else --- 2398,2411 ---- cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else *************** echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 *** 2534,2540 **** esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:2538: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 2435,2441 ---- esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 ! echo "configure:2439: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 2547,2558 **** cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2556: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2448,2459 ---- cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2457: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** exec 5>>./config.log *** 2690,2696 **** # Check for c++ or library specific bits that don't require linking. #GLIBCPP_CHECK_COMPILER_VERSION echo $ac_n "checking for GNU make""... $ac_c" 1>&6 ! echo "configure:2694: checking for GNU make" >&5 if eval "test \"`echo '$''{'_cv_gnu_make_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2591,2597 ---- # Check for c++ or library specific bits that don't require linking. #GLIBCPP_CHECK_COMPILER_VERSION echo $ac_n "checking for GNU make""... $ac_c" 1>&6 ! echo "configure:2595: checking for GNU make" >&5 if eval "test \"`echo '$''{'_cv_gnu_make_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** esac *** 2738,2744 **** echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:2742: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= --- 2639,2645 ---- echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:2643: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= *************** else *** 2753,2765 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2763: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2654,2666 ---- # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2664: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 2770,2782 **** rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2780: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2671,2683 ---- rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2681: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** else *** 2787,2799 **** rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2797: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 2688,2700 ---- rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** echo "$ac_t""$CPP" 1>&6 *** 2819,2825 **** echo $ac_n "checking for cstdio to use""... $ac_c" 1>&6 ! echo "configure:2823: checking for cstdio to use" >&5 # Check whether --enable-cstdio or --disable-cstdio was given. if test "${enable_cstdio+set}" = set; then enableval="$enable_cstdio" --- 2720,2726 ---- echo $ac_n "checking for cstdio to use""... $ac_c" 1>&6 ! echo "configure:2724: checking for cstdio to use" >&5 # Check whether --enable-cstdio or --disable-cstdio was given. if test "${enable_cstdio+set}" = set; then enableval="$enable_cstdio" *************** fi *** 2843,2859 **** # see if we are on a system with libio native (ie, linux) ac_safe=`echo "libio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libio.h""... $ac_c" 1>&6 ! echo "configure:2847: checking for libio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2857: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 2744,2760 ---- # see if we are on a system with libio native (ie, linux) ac_safe=`echo "libio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libio.h""... $ac_c" 1>&6 ! echo "configure:2748: checking for libio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:2758: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 2883,2891 **** case "$target" in *-*-linux*) echo $ac_n "checking for glibc version >= 2.2""... $ac_c" 1>&6 ! echo "configure:2887: checking for glibc version >= 2.2" >&5 cat > conftest.$ac_ext < --- 2784,2792 ---- case "$target" in *-*-linux*) echo $ac_n "checking for glibc version >= 2.2""... $ac_c" 1>&6 ! echo "configure:2788: checking for glibc version >= 2.2" >&5 cat > conftest.$ac_ext < *************** fi *** 2999,3005 **** echo $ac_n "checking for clocale to use""... $ac_c" 1>&6 ! echo "configure:3003: checking for clocale to use" >&5 # Check whether --enable-clocale or --disable-clocale was given. if test "${enable_clocale+set}" = set; then enableval="$enable_clocale" --- 2900,2906 ---- echo $ac_n "checking for clocale to use""... $ac_c" 1>&6 ! echo "configure:2904: checking for clocale to use" >&5 # Check whether --enable-clocale or --disable-clocale was given. if test "${enable_clocale+set}" = set; then enableval="$enable_clocale" *************** fi *** 3017,3023 **** case x${target_os} in xlinux* | xgnu*) cat > conftest.$ac_ext < --- 2918,2924 ---- case x${target_os} in xlinux* | xgnu*) cat > conftest.$ac_ext < *************** rm -f conftest* *** 3043,3049 **** enable_clocale_flag=generic else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then enable_clocale_flag=gnu else --- 2965,2971 ---- } EOF ! if { (eval echo configure:2969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then enable_clocale_flag=gnu else *************** fi *** 3116,3129 **** # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM_GNU_GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM_GNU_GETTEXT here. Instead, assume glibc. # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3127: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_check_msgfmt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 3017,3030 ---- # Declare intention to use gettext, and add support for specific # languages. ! # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT ALL_LINGUAS="de fr" ! # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:3028: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_check_msgfmt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** fi *** 3153,3159 **** if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then USE_NLS=yes fi - # Export the build objects. for ling in $ALL_LINGUAS; do \ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ --- 3054,3059 ---- *************** cross_compiling=$ac_cv_prog_cxx_cross *** 3247,3262 **** # Check for the existence of functions used if C99 is enabled. ac_c99_math=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3251: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { fpclassify(0.0); ; return 0; } EOF ! if { (eval echo configure:3260: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3147,3162 ---- # Check for the existence of functions used if C99 is enabled. ac_c99_math=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3151: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { fpclassify(0.0); ; return 0; } EOF ! if { (eval echo configure:3160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3266,3279 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isfinite(0.0); ; return 0; } EOF ! if { (eval echo configure:3277: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3166,3179 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isfinite(0.0); ; return 0; } EOF ! if { (eval echo configure:3177: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3283,3296 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isinf(0.0); ; return 0; } EOF ! if { (eval echo configure:3294: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3183,3196 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isinf(0.0); ; return 0; } EOF ! if { (eval echo configure:3194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3300,3313 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnan(0.0); ; return 0; } EOF ! if { (eval echo configure:3311: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3200,3213 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnan(0.0); ; return 0; } EOF ! if { (eval echo configure:3211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3317,3330 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnormal(0.0); ; return 0; } EOF ! if { (eval echo configure:3328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3217,3230 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isnormal(0.0); ; return 0; } EOF ! if { (eval echo configure:3228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3334,3347 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { signbit(0.0); ; return 0; } EOF ! if { (eval echo configure:3345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3234,3247 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { signbit(0.0); ; return 0; } EOF ! if { (eval echo configure:3245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3351,3364 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3362: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3251,3264 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3368,3381 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreaterequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3379: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3268,3281 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isgreaterequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3385,3398 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isless(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3396: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3285,3298 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isless(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3296: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3402,3415 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3413: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3302,3315 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessequal(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3419,3432 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3319,3332 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { islessgreater(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3436,3449 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { isunordered(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3447: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3336,3349 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { isunordered(0.0,0.0); ; return 0; } EOF ! if { (eval echo configure:3347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3457,3472 **** # Check for the existence in of vscanf, et. al. ac_c99_stdio=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3461: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { snprintf("12", 0, "%i"); ; return 0; } EOF ! if { (eval echo configure:3470: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3357,3372 ---- # Check for the existence in of vscanf, et. al. ac_c99_stdio=yes; echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3361: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { snprintf("12", 0, "%i"); ; return 0; } EOF ! if { (eval echo configure:3370: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3476,3482 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3376,3382 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3487,3493 **** ; return 0; } EOF ! if { (eval echo configure:3491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3387,3393 ---- ; return 0; } EOF ! if { (eval echo configure:3391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3497,3503 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3397,3403 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3508,3514 **** ; return 0; } EOF ! if { (eval echo configure:3512: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3408,3414 ---- ; return 0; } EOF ! if { (eval echo configure:3412: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3518,3524 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3418,3424 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3529,3535 **** ; return 0; } EOF ! if { (eval echo configure:3533: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3429,3435 ---- ; return 0; } EOF ! if { (eval echo configure:3433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3539,3545 **** fi rm -f conftest* cat > conftest.$ac_ext < #include --- 3439,3445 ---- fi rm -f conftest* cat > conftest.$ac_ext < #include *************** int main() { *** 3550,3556 **** ; return 0; } EOF ! if { (eval echo configure:3554: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3450,3456 ---- ; return 0; } EOF ! if { (eval echo configure:3454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3564,3583 **** # Check for the existence in of lldiv_t, et. al. ac_c99_stdlib=yes; echo $ac_n "checking for lldiv_t declaration""... $ac_c" 1>&6 ! echo "configure:3568: checking for lldiv_t declaration" >&5 if eval "test \"`echo '$''{'ac_c99_lldiv_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { lldiv_t mydivt; ; return 0; } EOF ! if { (eval echo configure:3581: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_c99_lldiv_t=yes else --- 3464,3483 ---- # Check for the existence in of lldiv_t, et. al. ac_c99_stdlib=yes; echo $ac_n "checking for lldiv_t declaration""... $ac_c" 1>&6 ! echo "configure:3468: checking for lldiv_t declaration" >&5 if eval "test \"`echo '$''{'ac_c99_lldiv_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { lldiv_t mydivt; ; return 0; } EOF ! if { (eval echo configure:3481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_c99_lldiv_t=yes else *************** fi *** 3593,3608 **** echo "$ac_t""$ac_c99_lldiv_t" 1>&6 echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3597: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { char* tmp; strtof("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3493,3508 ---- echo "$ac_t""$ac_c99_lldiv_t" 1>&6 echo $ac_n "checking for ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3497: checking for ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { char* tmp; strtof("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3612,3625 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtold("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3623: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3512,3525 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtold("gnu", &tmp); ; return 0; } EOF ! if { (eval echo configure:3523: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3629,3642 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { llabs(10); ; return 0; } EOF ! if { (eval echo configure:3640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3529,3542 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { llabs(10); ; return 0; } EOF ! if { (eval echo configure:3540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3646,3659 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { lldiv(10,1); ; return 0; } EOF ! if { (eval echo configure:3657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3546,3559 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { lldiv(10,1); ; return 0; } EOF ! if { (eval echo configure:3557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3663,3676 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { atoll("10"); ; return 0; } EOF ! if { (eval echo configure:3674: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3563,3576 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { atoll("10"); ; return 0; } EOF ! if { (eval echo configure:3574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3680,3693 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { _Exit(0); ; return 0; } EOF ! if { (eval echo configure:3691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3580,3593 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { _Exit(0); ; return 0; } EOF ! if { (eval echo configure:3591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3705,3720 **** # XXX the wchar.h checks should be rolled into the general C99 bits. ac_c99_wchar=yes; echo $ac_n "checking for additional ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3709: checking for additional ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { wcstold(L"10.0", NULL); ; return 0; } EOF ! if { (eval echo configure:3718: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3605,3620 ---- # XXX the wchar.h checks should be rolled into the general C99 bits. ac_c99_wchar=yes; echo $ac_n "checking for additional ISO C99 support in ""... $ac_c" 1>&6 ! echo "configure:3609: checking for additional ISO C99 support in " >&5 cat > conftest.$ac_ext < int main() { wcstold(L"10.0", NULL); ; return 0; } EOF ! if { (eval echo configure:3618: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3724,3737 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoll(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3735: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3624,3637 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoll(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3635: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3741,3754 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoull(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3752: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3641,3654 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { wcstoull(L"10", NULL, 10); ; return 0; } EOF ! if { (eval echo configure:3652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** rm -f conftest* *** 3760,3766 **** echo "$ac_t""$ac_c99_wchar" 1>&6 echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6 ! echo "configure:3764: checking for enabled ISO C99 support" >&5 if test x"$ac_c99_math" = x"no" || test x"$ac_c99_stdio" = x"no" || test x"$ac_c99_stdlib" = x"no" || --- 3660,3666 ---- echo "$ac_t""$ac_c99_wchar" 1>&6 echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6 ! echo "configure:3664: checking for enabled ISO C99 support" >&5 if test x"$ac_c99_math" = x"no" || test x"$ac_c99_stdio" = x"no" || test x"$ac_c99_stdlib" = x"no" || *************** cross_compiling=$ac_cv_prog_cxx_cross *** 3808,3824 **** echo $ac_n "checking for enabled long long I/O support""... $ac_c" 1>&6 ! echo "configure:3812: checking for enabled long long I/O support" >&5 # iostreams require strtoll, strtoull to compile cat > conftest.$ac_ext < int main() { char* tmp; strtoll("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3708,3724 ---- echo $ac_n "checking for enabled long long I/O support""... $ac_c" 1>&6 ! echo "configure:3712: checking for enabled long long I/O support" >&5 # iostreams require strtoll, strtoull to compile cat > conftest.$ac_ext < int main() { char* tmp; strtoll("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** else *** 3828,3841 **** fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtoull("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3839: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 --- 3728,3741 ---- fi rm -f conftest* cat > conftest.$ac_ext < int main() { char* tmp; strtoull("gnu", &tmp, 10); ; return 0; } EOF ! if { (eval echo configure:3739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 *************** cross_compiling=$ac_cv_prog_cc_cross *** 3863,3869 **** echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6 ! echo "configure:3867: checking for c header strategy to use" >&5 # Check whether --enable-cheaders or --disable-cheaders was given. if test "${enable_cheaders+set}" = set; then enableval="$enable_cheaders" --- 3763,3769 ---- echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6 ! echo "configure:3767: checking for c header strategy to use" >&5 # Check whether --enable-cheaders or --disable-cheaders was given. if test "${enable_cheaders+set}" = set; then enableval="$enable_cheaders" *************** fi *** 3889,3910 **** case "$enable_cheaders" in c_shadow) - CSHADOW_FLAGS="-fno-builtin" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_shadow' ;; c_std) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std' ;; c) - CSHADOW_FLAGS="" C_INCLUDE_DIR='${glibcpp_srcdir}/include/c' ;; esac - if test "$enable_cheaders" = c; then GLIBCPP_C_HEADERS_C_TRUE= --- 3789,3806 ---- *************** else *** 3922,3931 **** GLIBCPP_C_HEADERS_C_STD_TRUE='#' GLIBCPP_C_HEADERS_C_STD_FALSE= fi echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 ! echo "configure:3929: checking for thread model used by GCC" >&5 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'` echo "$ac_t""$target_thread_file" 1>&6 --- 3818,3836 ---- GLIBCPP_C_HEADERS_C_STD_TRUE='#' GLIBCPP_C_HEADERS_C_STD_FALSE= fi + + + if test "$c_compatibility" = yes; then + GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE= + GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE='#' + else + GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE='#' + GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE= + fi echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 ! echo "configure:3834: checking for thread model used by GCC" >&5 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'` echo "$ac_t""$target_thread_file" 1>&6 *************** EXTRA_CXX_FLAGS="$enable_cxx_flags" *** 3978,3984 **** echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 ! echo "configure:3982: checking for exception model to use" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 3883,3889 ---- echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 ! echo "configure:3887: checking for exception model to use" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** if test "${enable_sjlj_exceptions+set}" *** 3993,3999 **** : else cat > conftest.$ac_ext << EOF ! #line 3997 "configure" struct S { ~S(); }; void bar(); void foo() --- 3898,3904 ---- : else cat > conftest.$ac_ext << EOF ! #line 3902 "configure" struct S { ~S(); }; void bar(); void foo() *************** void foo() *** 4004,4010 **** EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-S -fexceptions" ! if { (eval echo configure:4008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then enable_sjlj_exceptions=yes elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then --- 3909,3915 ---- EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-S -fexceptions" ! if { (eval echo configure:3913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then enable_sjlj_exceptions=yes elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then *************** cross_compiling=$ac_cv_prog_cc_cross *** 4037,4043 **** echo $ac_n "checking for use of libunwind""... $ac_c" 1>&6 ! echo "configure:4041: checking for use of libunwind" >&5 # Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given. if test "${enable_libunwind_exceptions+set}" = set; then enableval="$enable_libunwind_exceptions" --- 3942,3948 ---- echo $ac_n "checking for use of libunwind""... $ac_c" 1>&6 ! echo "configure:3946: checking for use of libunwind" >&5 # Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given. if test "${enable_libunwind_exceptions+set}" = set; then enableval="$enable_libunwind_exceptions" *************** EOF *** 4073,4078 **** --- 3978,4024 ---- fi + # Check for headers necessary for libsupc++ using dyn-string.c/cxa_demangle.c + for ac_hdr in string.h stdlib.h + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 + echo "configure:3987: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" + { (eval echo configure:3997: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" + else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" + fi + rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 + fi + done + if test -n "$with_cross_host" || test x"$build" != x"$host"; then *************** if test -n "$with_cross_host" || test x" *** 4114,4130 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4118: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4128: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4060,4076 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4064: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4074: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 4202,4213 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:4206: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:4152: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 4164,4170 ---- } EOF ! if { (eval echo configure:4168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 4252,4258 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:4256: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4198,4204 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:4202: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 4260,4273 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4206,4219 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 4297,4308 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4301: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4247: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4271,4277 ---- ; return 0; } EOF ! if { (eval echo configure:4275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4354,4365 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4358: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4304: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4328,4334 ---- ; return 0; } EOF ! if { (eval echo configure:4332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4410,4421 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4414: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4360: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4384,4390 ---- ; return 0; } EOF ! if { (eval echo configure:4388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4468,4479 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4472: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4418: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4442,4448 ---- ; return 0; } EOF ! if { (eval echo configure:4446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4528,4543 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:4532: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:4541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 4474,4489 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:4478: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:4487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 4559,4575 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4563: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4505,4521 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4509: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4519: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 4600,4616 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4604: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4614: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4546,4562 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4550: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4560: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 4643,4658 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:4647: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:4656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 4589,4604 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:4593: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:4602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 4665,4673 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:4669: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 4611,4619 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:4615: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 4676,4682 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:4680: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 4622,4628 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:4626: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 4692,4703 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4696: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4642: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4666,4672 ---- ; return 0; } EOF ! if { (eval echo configure:4670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4755,4766 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4759: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4705: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4729,4735 ---- ; return 0; } EOF ! if { (eval echo configure:4733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4811,4817 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4815: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 4757,4763 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4761: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:4815: checking for ISO C *** 4823,4839 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:4827: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4837: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4769,4785 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:4773: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4783: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 4857,4873 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:4861: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4871: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 4803,4819 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:4807: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 4891,4897 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:4895: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4837,4843 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:4841: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 4899,4905 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 4856,4862 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:4860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 4936,4947 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4940: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4886: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 4910,4916 ---- ; return 0; } EOF ! if { (eval echo configure:4914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 4994,5000 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4998: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 4940,4946 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:4944: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:4998: checking for XPG2 *** 5005,5011 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:5009: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 4951,4957 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:4955: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 5064,5080 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5068: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5078: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5010,5026 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5014: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 5152,5163 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:5156: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:5102: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 5114,5120 ---- } EOF ! if { (eval echo configure:5118: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 5202,5208 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:5206: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5148,5154 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:5152: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 5210,5223 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 5156,5169 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 5247,5258 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5251: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5197: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5221,5227 ---- ; return 0; } EOF ! if { (eval echo configure:5225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5304,5315 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5308: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5254: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5278,5284 ---- ; return 0; } EOF ! if { (eval echo configure:5282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5360,5371 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5364: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5310: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5334,5340 ---- ; return 0; } EOF ! if { (eval echo configure:5338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5418,5429 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5422: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5368: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5392,5398 ---- ; return 0; } EOF ! if { (eval echo configure:5396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5478,5493 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:5482: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:5491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 5424,5439 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:5428: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:5437: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 5509,5525 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5513: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5455,5471 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5459: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5469: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 5550,5566 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5554: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5564: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5496,5512 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5500: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5510: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 5593,5608 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:5597: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:5606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 5539,5554 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:5543: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:5552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 5615,5623 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:5619: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 5561,5569 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:5565: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 5626,5632 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:5630: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 5572,5578 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:5576: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 5642,5653 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5646: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5592: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5616,5622 ---- ; return 0; } EOF ! if { (eval echo configure:5620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5705,5716 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5709: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5655: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5679,5685 ---- ; return 0; } EOF ! if { (eval echo configure:5683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5761,5767 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5765: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 5707,5713 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5711: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:5765: checking for ISO C *** 5773,5789 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:5777: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5787: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5719,5735 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:5723: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 5807,5823 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:5811: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5821: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5753,5769 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:5757: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5767: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 5841,5847 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:5845: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 5787,5793 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:5791: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 5849,5855 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 5806,5812 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:5810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 5886,5897 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:5890: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:5836: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 5860,5866 ---- ; return 0; } EOF ! if { (eval echo configure:5864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 5944,5950 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5948: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 5890,5896 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:5894: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:5948: checking for XPG2 *** 5955,5961 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:5959: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 5901,5907 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:5905: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 6008,6024 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6012: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6022: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 5954,5970 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:5958: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:5968: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 6096,6107 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:6100: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:6046: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 6058,6064 ---- } EOF ! if { (eval echo configure:6062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 6146,6152 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:6150: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6092,6098 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:6096: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 6154,6167 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 6100,6113 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 6191,6202 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6195: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6141: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6165,6171 ---- ; return 0; } EOF ! if { (eval echo configure:6169: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6248,6259 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6252: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6198: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6222,6228 ---- ; return 0; } EOF ! if { (eval echo configure:6226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6304,6315 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6308: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6254: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6278,6284 ---- ; return 0; } EOF ! if { (eval echo configure:6282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6362,6373 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6366: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6312: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6336,6342 ---- ; return 0; } EOF ! if { (eval echo configure:6340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6422,6437 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:6426: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:6435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 6368,6383 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:6372: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:6381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 6453,6469 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6457: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6467: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6399,6415 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6403: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 6494,6510 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6498: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6508: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6440,6456 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6444: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6454: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 6537,6552 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:6541: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:6550: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 6483,6498 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:6487: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:6496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 6559,6567 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:6563: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 6505,6513 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:6509: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 6570,6576 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:6574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 6516,6522 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:6520: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 6586,6597 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6590: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6536: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6560,6566 ---- ; return 0; } EOF ! if { (eval echo configure:6564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6649,6660 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6653: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6599: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6623,6629 ---- ; return 0; } EOF ! if { (eval echo configure:6627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6705,6711 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6709: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 6651,6657 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6655: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:6709: checking for ISO C *** 6717,6733 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:6721: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6731: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6663,6679 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:6667: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6677: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 6751,6767 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:6755: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6765: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6697,6713 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:6701: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 6785,6791 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:6789: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 6731,6737 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:6735: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 6793,6799 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 6750,6756 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:6754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 6830,6841 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:6834: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:6780: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 6804,6810 ---- ; return 0; } EOF ! if { (eval echo configure:6808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 6888,6894 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6892: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 6834,6840 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:6838: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:6892: checking for XPG2 *** 6899,6905 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:6903: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 6845,6851 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:6849: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 6941,6957 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6945: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6955: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 6887,6903 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:6891: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:6901: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 7027,7038 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:7031: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:6977: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 6989,6995 ---- } EOF ! if { (eval echo configure:6993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 7077,7083 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7081: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7023,7029 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:7027: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 7085,7098 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7031,7044 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 7122,7133 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7126: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7072: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7096,7102 ---- ; return 0; } EOF ! if { (eval echo configure:7100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7179,7190 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7183: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7129: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7153,7159 ---- ; return 0; } EOF ! if { (eval echo configure:7157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7235,7246 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7239: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7185: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7209,7215 ---- ; return 0; } EOF ! if { (eval echo configure:7213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7293,7304 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7297: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7243: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7267,7273 ---- ; return 0; } EOF ! if { (eval echo configure:7271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7353,7368 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:7357: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:7366: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 7299,7314 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:7303: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:7312: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 7384,7400 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7388: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7398: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7330,7346 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7334: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7344: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 7425,7441 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7429: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7439: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7371,7387 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:7375: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7385: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 7468,7483 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:7472: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:7481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 7414,7429 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:7418: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:7427: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 7490,7498 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:7494: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 7436,7444 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:7440: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 7501,7507 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:7505: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 7447,7453 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:7451: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 7517,7528 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7521: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7467: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7491,7497 ---- ; return 0; } EOF ! if { (eval echo configure:7495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7580,7591 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7584: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7530: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7554,7560 ---- ; return 0; } EOF ! if { (eval echo configure:7558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7636,7642 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7640: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 7582,7588 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7586: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:7640: checking for ISO C *** 7648,7664 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:7652: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7594,7610 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:7598: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7608: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 7682,7698 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:7686: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7696: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 7628,7644 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:7632: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:7642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 7716,7722 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:7720: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 7662,7668 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:7666: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 7724,7730 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 7681,7687 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:7685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 7761,7772 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:7765: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:7711: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 7735,7741 ---- ; return 0; } EOF ! if { (eval echo configure:7739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 7819,7825 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7823: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 7765,7771 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:7769: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:7823: checking for XPG2 *** 7830,7836 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:7834: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 7776,7782 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:7780: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 7847,7852 **** --- 7793,8719 ---- os_include_dir="config/os/mingw32" ;; + *-qnx6.[12]*) + SECTION_FLAGS='-ffunction-sections -fdata-sections' + + + # If we're not using GNU ld, then there's no point in even trying these + # tests. Check for that first. We should have already tested for gld + # by now (in libtool), but require it now just to be safe... + test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS='' + test -z "$OPT_LDFLAGS" && OPT_LDFLAGS='' + + + # The name set by libtool depends on the version of libtool. Shame on us + # for depending on an impl detail, but c'est la vie. Older versions used + # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on + # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually + # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't + # set (hence we're using an older libtool), then set it. + if test x${with_gnu_ld+set} != xset; then + if test x${ac_cv_prog_gnu_ld+set} != xset; then + # We got through "ac_require(ac_prog_ld)" and still not set? Huh? + with_gnu_ld=no + else + with_gnu_ld=$ac_cv_prog_gnu_ld + fi + fi + + # Start by getting the version number. I think the libtool test already + # does some of this, but throws away the result. + + ldver=`$LD --version 2>/dev/null | head -1 | \ + sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'` + + glibcpp_gnu_ld_version=`echo $ldver | \ + $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` + + # Set --gc-sections. + if test "$with_gnu_ld" = "notbroken"; then + # GNU ld it is! Joy and bunny rabbits! + + # All these tests are for C++; save the language and the compiler flags. + # Need to do this so that g++ won't try to link in libstdc++ + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS='-x c++ -Wl,--gc-sections' + + # Check for -Wl,--gc-sections + # XXX This test is broken at the moment, as symbols required for + # linking are now in libsupc++ (not built yet.....). In addition, + # this test has cored on solaris in the past. In addition, + # --gc-sections doesn't really work at the moment (keeps on discarding + # used sections, first .eh_frame and now some of the glibc sections for + # iconv). Bzzzzt. Thanks for playing, maybe next time. + echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 + echo "configure:7850: checking for ld that supports -Wl,--gc-sections" >&5 + if test "$cross_compiling" = yes; then + ac_sectionLDflags=yes + else + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_sectionLDflags=yes + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_sectionLDflags=no + fi + rm -fr conftest* + fi + + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + else + # this is the suspicious part + CFLAGS='' + fi + if test "$ac_sectionLDflags" = "yes"; then + SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS" + fi + echo "$ac_t""$ac_sectionLDflags" 1>&6 + fi + + # Set linker optimization flags. + if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then + OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS" + fi + + + + + + echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 + echo "configure:7900: checking for main in -lm" >&5 + ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_save_LIBS="$LIBS" + LIBS="-lm $LIBS" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" + fi + rm -f conftest* + LIBS="$ac_save_LIBS" + + fi + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 + fi + + for ac_func in nan copysignf + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:7945: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:7973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo" + fi + done + + + for ac_func in __signbit + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8002: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + LIBMATHOBJS="$LIBMATHOBJS signbit.lo" + fi + done + + for ac_func in __signbitf + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8058: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + LIBMATHOBJS="$LIBMATHOBJS signbitf.lo" + fi + done + + + if test x$ac_cv_func_copysignl = x"yes"; then + for ac_func in __signbitl + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8116: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + LIBMATHOBJS="$LIBMATHOBJS signbitl.lo" + fi + done + + fi + + + + + + echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 + echo "configure:8176: checking for mbstate_t" >&5 + cat > conftest.$ac_ext < + int main() { + mbstate_t teststate; + ; return 0; } + EOF + if { (eval echo configure:8185: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + have_mbstate_t=yes + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + have_mbstate_t=no + fi + rm -f conftest* + echo "$ac_t""$have_mbstate_t" 1>&6 + if test x"$have_mbstate_t" = xyes; then + cat >> confdefs.h <<\EOF + #define HAVE_MBSTATE_T 1 + EOF + + fi + + for ac_hdr in wchar.h + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 + echo "configure:8207: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" + { (eval echo configure:8217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" + else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" + fi + rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 + ac_has_wchar_h=no + fi + done + + for ac_hdr in wctype.h + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 + echo "configure:8248: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" + { (eval echo configure:8258: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" + else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" + fi + rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 + ac_has_wctype_h=no + fi + done + + + if test x"$ac_has_wchar_h" = xyes && + test x"$ac_has_wctype_h" = xyes && + test x"$enable_c_mbchar" != xno; then + + echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 + echo "configure:8291: checking for WCHAR_MIN and WCHAR_MAX" >&5 + cat > conftest.$ac_ext < + int main() { + int i = WCHAR_MIN; int j = WCHAR_MAX; + ; return 0; } + EOF + if { (eval echo configure:8300: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + has_wchar_minmax=yes + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + has_wchar_minmax=no + fi + rm -f conftest* + echo "$ac_t""$has_wchar_minmax" 1>&6 + + echo $ac_n "checking for WEOF""... $ac_c" 1>&6 + echo "configure:8313: checking for WEOF" >&5 + cat > conftest.$ac_ext < + #include + int main() { + wint_t i = WEOF; + ; return 0; } + EOF + if { (eval echo configure:8324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + has_weof=yes + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + has_weof=no + fi + rm -f conftest* + echo "$ac_t""$has_weof" 1>&6 + + ac_wfuncs=yes + for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8340: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + \ + ac_wfuncs=no + fi + done + + + for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \ + fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \ + vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \ + mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \ + wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \ + wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8403: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + \ + ac_wfuncs=no + fi + done + + + echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 + echo "configure:8459: checking for ISO C99 wchar_t support" >&5 + if test x"$has_weof" = xyes && + test x"$has_wchar_minmax" = xyes && + test x"$ac_wfuncs" = xyes; then + ac_isoC99_wchar_t=yes + else + ac_isoC99_wchar_t=no + fi + echo "$ac_t""$ac_isoC99_wchar_t" 1>&6 + + ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 + echo "configure:8471: checking for iconv.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" + { (eval echo configure:8481: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" + else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" + fi + rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_has_iconv_h=yes + else + echo "$ac_t""no" 1>&6 + ac_has_iconv_h=no + fi + + ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 + echo "configure:8505: checking for langinfo.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" + { (eval echo configure:8515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" + else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" + fi + rm -f conftest* + fi + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_has_langinfo_h=yes + else + echo "$ac_t""no" 1>&6 + ac_has_langinfo_h=no + fi + + + echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 + echo "configure:8539: checking for iconv in -liconv" >&5 + ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_save_LIBS="$LIBS" + LIBS="-liconv $LIBS" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" + fi + rm -f conftest* + LIBS="$ac_save_LIBS" + + fi + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + libiconv="-liconv" + else + echo "$ac_t""no" 1>&6 + fi + + ac_save_LIBS="$LIBS" + LIBS="$LIBS $libiconv" + + for ac_func in iconv_open iconv_close iconv nl_langinfo + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:8584: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext < + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func(); + + int main() { + + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + $ac_func(); + #endif + + ; return 0; } + EOF + if { (eval echo configure:8612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" + fi + rm -f conftest* + fi + + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 + ac_XPG2funcs=no + fi + done + + + LIBS="$ac_save_LIBS" + + echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 + echo "configure:8642: checking for XPG2 wchar_t support" >&5 + if test x"$ac_has_iconv_h" = xyes && + test x"$ac_has_langinfo_h" = xyes && + test x"$ac_XPG2funcs" = xyes; then + ac_XPG2_wchar_t=yes + else + ac_XPG2_wchar_t=no + fi + echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 + + echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 + echo "configure:8653: checking for enabled wchar_t specializations" >&5 + if test x"$ac_isoC99_wchar_t" = xyes && + test x"$ac_XPG2_wchar_t" = xyes; then + cat >> confdefs.h <<\EOF + #define _GLIBCPP_USE_WCHAR_T 1 + EOF + + echo "$ac_t"""yes"" 1>&6 + else + echo "$ac_t"""no"" 1>&6 + fi + else + echo "configure: warning: wchar_t support disabled." 1>&2 + fi + + os_include_dir="config/os/qnx/qnx6.1" + cat >> confdefs.h <<\EOF + #define HAVE_COSF 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_COSL 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_COSHF 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_COSHL 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_LOGF 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_LOGL 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_LOG10F 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_LOG10L 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_SINF 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_SINL 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_SINHF 1 + EOF + + cat >> confdefs.h <<\EOF + #define HAVE_SINHL 1 + EOF + + ;; *) os_include_dir="config/os/newlib" cat >> confdefs.h <<\EOF *************** else *** 8121,8141 **** # Check for available headers. for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \ ! machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8129: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:8139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 8988,9008 ---- # Check for available headers. for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \ ! machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h sys/types.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:8996: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:9006: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** cross_compiling=$ac_cv_prog_cxx_cross *** 8186,8195 **** # Check for -ffunction-sections -fdata-sections echo $ac_n "checking for g++ that supports -ffunction-sections -fdata-sections""... $ac_c" 1>&6 ! echo "configure:8190: checking for g++ that supports -ffunction-sections -fdata-sections" >&5 CXXFLAGS='-Werror -ffunction-sections -fdata-sections' cat > conftest.$ac_ext <&6 ! echo "configure:9057: checking for g++ that supports -ffunction-sections -fdata-sections" >&5 CXXFLAGS='-Werror -ffunction-sections -fdata-sections' cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_fdsections=yes else --- 9064,9070 ---- ; return 0; } EOF ! if { (eval echo configure:9068: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_fdsections=yes else *************** cross_compiling=$ac_cv_prog_cc_cross *** 8279,8290 **** # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ! echo "configure:8283: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&6 ! echo "configure:9150: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else --- 9162,9168 ---- } EOF ! if { (eval echo configure:9166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else *************** fi *** 8330,8336 **** echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6 ! echo "configure:8334: checking for __builtin_abs declaration" >&5 if test x${glibcpp_cv_func___builtin_abs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9197,9203 ---- echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6 ! echo "configure:9201: checking for __builtin_abs declaration" >&5 if test x${glibcpp_cv_func___builtin_abs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8345,8358 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:8356: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_abs_use=yes else --- 9212,9225 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:9223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_abs_use=yes else *************** fi *** 8376,8396 **** echo "$ac_t""$glibcpp_cv_func___builtin_abs_use" 1>&6 if test x$glibcpp_cv_func___builtin_abs_use = x"yes"; then echo $ac_n "checking for __builtin_abs linkage""... $ac_c" 1>&6 ! echo "configure:8380: checking for __builtin_abs linkage" >&5 if test x${glibcpp_cv_func___builtin_abs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:8394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_abs_link=yes else --- 9243,9263 ---- echo "$ac_t""$glibcpp_cv_func___builtin_abs_use" 1>&6 if test x$glibcpp_cv_func___builtin_abs_use = x"yes"; then echo $ac_n "checking for __builtin_abs linkage""... $ac_c" 1>&6 ! echo "configure:9247: checking for __builtin_abs linkage" >&5 if test x${glibcpp_cv_func___builtin_abs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_abs(0); ; return 0; } EOF ! if { (eval echo configure:9261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_abs_link=yes else *************** EOF *** 8416,8422 **** echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6 ! echo "configure:8420: checking for __builtin_fabsf declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9283,9289 ---- echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6 ! echo "configure:9287: checking for __builtin_fabsf declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8431,8444 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:8442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_use=yes else --- 9298,9311 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9309: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_use=yes else *************** fi *** 8462,8482 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabsf_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsf_use = x"yes"; then echo $ac_n "checking for __builtin_fabsf linkage""... $ac_c" 1>&6 ! echo "configure:8466: checking for __builtin_fabsf linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:8480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_link=yes else --- 9329,9349 ---- echo "$ac_t""$glibcpp_cv_func___builtin_fabsf_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsf_use = x"yes"; then echo $ac_n "checking for __builtin_fabsf linkage""... $ac_c" 1>&6 ! echo "configure:9333: checking for __builtin_fabsf linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsf(0); ; return 0; } EOF ! if { (eval echo configure:9347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_link=yes else *************** EOF *** 8502,8508 **** echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6 ! echo "configure:8506: checking for __builtin_fabs declaration" >&5 if test x${glibcpp_cv_func___builtin_fabs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9369,9375 ---- echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6 ! echo "configure:9373: checking for __builtin_fabs declaration" >&5 if test x${glibcpp_cv_func___builtin_fabs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8517,8530 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:8528: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_use=yes else --- 9384,9397 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:9395: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_use=yes else *************** fi *** 8548,8568 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabs_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabs_use = x"yes"; then echo $ac_n "checking for __builtin_fabs linkage""... $ac_c" 1>&6 ! echo "configure:8552: checking for __builtin_fabs linkage" >&5 if test x${glibcpp_cv_func___builtin_fabs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:8566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_link=yes else --- 9415,9435 ---- echo "$ac_t""$glibcpp_cv_func___builtin_fabs_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabs_use = x"yes"; then echo $ac_n "checking for __builtin_fabs linkage""... $ac_c" 1>&6 ! echo "configure:9419: checking for __builtin_fabs linkage" >&5 if test x${glibcpp_cv_func___builtin_fabs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabs(0); ; return 0; } EOF ! if { (eval echo configure:9433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_link=yes else *************** EOF *** 8588,8594 **** echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6 ! echo "configure:8592: checking for __builtin_fabsl declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9455,9461 ---- echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6 ! echo "configure:9459: checking for __builtin_fabsl declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8603,8616 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:8614: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_use=yes else --- 9470,9483 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:9481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_use=yes else *************** fi *** 8634,8654 **** echo "$ac_t""$glibcpp_cv_func___builtin_fabsl_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsl_use = x"yes"; then echo $ac_n "checking for __builtin_fabsl linkage""... $ac_c" 1>&6 ! echo "configure:8638: checking for __builtin_fabsl linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:8652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_link=yes else --- 9501,9521 ---- echo "$ac_t""$glibcpp_cv_func___builtin_fabsl_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsl_use = x"yes"; then echo $ac_n "checking for __builtin_fabsl linkage""... $ac_c" 1>&6 ! echo "configure:9505: checking for __builtin_fabsl linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_fabsl(0); ; return 0; } EOF ! if { (eval echo configure:9519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_link=yes else *************** EOF *** 8674,8680 **** echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6 ! echo "configure:8678: checking for __builtin_labs declaration" >&5 if test x${glibcpp_cv_func___builtin_labs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9541,9547 ---- echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6 ! echo "configure:9545: checking for __builtin_labs declaration" >&5 if test x${glibcpp_cv_func___builtin_labs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8689,8702 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:8700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_labs_use=yes else --- 9556,9569 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:9567: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_labs_use=yes else *************** fi *** 8720,8740 **** echo "$ac_t""$glibcpp_cv_func___builtin_labs_use" 1>&6 if test x$glibcpp_cv_func___builtin_labs_use = x"yes"; then echo $ac_n "checking for __builtin_labs linkage""... $ac_c" 1>&6 ! echo "configure:8724: checking for __builtin_labs linkage" >&5 if test x${glibcpp_cv_func___builtin_labs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:8738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_labs_link=yes else --- 9587,9607 ---- echo "$ac_t""$glibcpp_cv_func___builtin_labs_use" 1>&6 if test x$glibcpp_cv_func___builtin_labs_use = x"yes"; then echo $ac_n "checking for __builtin_labs linkage""... $ac_c" 1>&6 ! echo "configure:9591: checking for __builtin_labs linkage" >&5 if test x${glibcpp_cv_func___builtin_labs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_labs(0); ; return 0; } EOF ! if { (eval echo configure:9605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_labs_link=yes else *************** EOF *** 8761,8767 **** echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:8765: checking for __builtin_sqrtf declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9628,9634 ---- echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:9632: checking for __builtin_sqrtf declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8776,8789 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:8787: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_use=yes else --- 9643,9656 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:9654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_use=yes else *************** fi *** 8807,8827 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrtf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtf_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtf linkage""... $ac_c" 1>&6 ! echo "configure:8811: checking for __builtin_sqrtf linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:8825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_link=yes else --- 9674,9694 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sqrtf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtf_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtf linkage""... $ac_c" 1>&6 ! echo "configure:9678: checking for __builtin_sqrtf linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:9692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_link=yes else *************** EOF *** 8847,8853 **** echo $ac_n "checking for __builtin_sqrt declaration""... $ac_c" 1>&6 ! echo "configure:8851: checking for __builtin_sqrt declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrt_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9714,9720 ---- echo $ac_n "checking for __builtin_sqrt declaration""... $ac_c" 1>&6 ! echo "configure:9718: checking for __builtin_sqrt declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrt_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8862,8875 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:8873: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_use=yes else --- 9729,9742 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9740: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_use=yes else *************** fi *** 8893,8913 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrt_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrt_use = x"yes"; then echo $ac_n "checking for __builtin_sqrt linkage""... $ac_c" 1>&6 ! echo "configure:8897: checking for __builtin_sqrt linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrt_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:8911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_link=yes else --- 9760,9780 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sqrt_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrt_use = x"yes"; then echo $ac_n "checking for __builtin_sqrt linkage""... $ac_c" 1>&6 ! echo "configure:9764: checking for __builtin_sqrt linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrt_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrt_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrt(0); ; return 0; } EOF ! if { (eval echo configure:9778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrt_link=yes else *************** EOF *** 8933,8939 **** echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:8937: checking for __builtin_sqrtl declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9800,9806 ---- echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:9804: checking for __builtin_sqrtl declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 8948,8961 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:8959: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_use=yes else --- 9815,9828 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:9826: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_use=yes else *************** fi *** 8979,8999 **** echo "$ac_t""$glibcpp_cv_func___builtin_sqrtl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtl_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtl linkage""... $ac_c" 1>&6 ! echo "configure:8983: checking for __builtin_sqrtl linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:8997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_link=yes else --- 9846,9866 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sqrtl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtl_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtl linkage""... $ac_c" 1>&6 ! echo "configure:9850: checking for __builtin_sqrtl linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:9864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_link=yes else *************** EOF *** 9020,9026 **** echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6 ! echo "configure:9024: checking for __builtin_sinf declaration" >&5 if test x${glibcpp_cv_func___builtin_sinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9887,9893 ---- echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6 ! echo "configure:9891: checking for __builtin_sinf declaration" >&5 if test x${glibcpp_cv_func___builtin_sinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9035,9048 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_use=yes else --- 9902,9915 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_use=yes else *************** fi *** 9066,9086 **** echo "$ac_t""$glibcpp_cv_func___builtin_sinf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinf_use = x"yes"; then echo $ac_n "checking for __builtin_sinf linkage""... $ac_c" 1>&6 ! echo "configure:9070: checking for __builtin_sinf linkage" >&5 if test x${glibcpp_cv_func___builtin_sinf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_link=yes else --- 9933,9953 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sinf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinf_use = x"yes"; then echo $ac_n "checking for __builtin_sinf linkage""... $ac_c" 1>&6 ! echo "configure:9937: checking for __builtin_sinf linkage" >&5 if test x${glibcpp_cv_func___builtin_sinf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinf(0); ; return 0; } EOF ! if { (eval echo configure:9951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_link=yes else *************** EOF *** 9106,9112 **** echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6 ! echo "configure:9110: checking for __builtin_sin declaration" >&5 if test x${glibcpp_cv_func___builtin_sin_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 9973,9979 ---- echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6 ! echo "configure:9977: checking for __builtin_sin declaration" >&5 if test x${glibcpp_cv_func___builtin_sin_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9121,9134 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:9132: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sin_use=yes else --- 9988,10001 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:9999: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sin_use=yes else *************** fi *** 9152,9172 **** echo "$ac_t""$glibcpp_cv_func___builtin_sin_use" 1>&6 if test x$glibcpp_cv_func___builtin_sin_use = x"yes"; then echo $ac_n "checking for __builtin_sin linkage""... $ac_c" 1>&6 ! echo "configure:9156: checking for __builtin_sin linkage" >&5 if test x${glibcpp_cv_func___builtin_sin_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:9170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sin_link=yes else --- 10019,10039 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sin_use" 1>&6 if test x$glibcpp_cv_func___builtin_sin_use = x"yes"; then echo $ac_n "checking for __builtin_sin linkage""... $ac_c" 1>&6 ! echo "configure:10023: checking for __builtin_sin linkage" >&5 if test x${glibcpp_cv_func___builtin_sin_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sin(0); ; return 0; } EOF ! if { (eval echo configure:10037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sin_link=yes else *************** EOF *** 9192,9198 **** echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6 ! echo "configure:9196: checking for __builtin_sinl declaration" >&5 if test x${glibcpp_cv_func___builtin_sinl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10059,10065 ---- echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6 ! echo "configure:10063: checking for __builtin_sinl declaration" >&5 if test x${glibcpp_cv_func___builtin_sinl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9207,9220 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:9218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_use=yes else --- 10074,10087 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:10085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_use=yes else *************** fi *** 9238,9258 **** echo "$ac_t""$glibcpp_cv_func___builtin_sinl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinl_use = x"yes"; then echo $ac_n "checking for __builtin_sinl linkage""... $ac_c" 1>&6 ! echo "configure:9242: checking for __builtin_sinl linkage" >&5 if test x${glibcpp_cv_func___builtin_sinl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:9256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_link=yes else --- 10105,10125 ---- echo "$ac_t""$glibcpp_cv_func___builtin_sinl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinl_use = x"yes"; then echo $ac_n "checking for __builtin_sinl linkage""... $ac_c" 1>&6 ! echo "configure:10109: checking for __builtin_sinl linkage" >&5 if test x${glibcpp_cv_func___builtin_sinl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_sinl(0); ; return 0; } EOF ! if { (eval echo configure:10123: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_link=yes else *************** EOF *** 9279,9285 **** echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6 ! echo "configure:9283: checking for __builtin_cosf declaration" >&5 if test x${glibcpp_cv_func___builtin_cosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10146,10152 ---- echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6 ! echo "configure:10150: checking for __builtin_cosf declaration" >&5 if test x${glibcpp_cv_func___builtin_cosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9294,9307 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:9305: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_use=yes else --- 10161,10174 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:10172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_use=yes else *************** fi *** 9325,9345 **** echo "$ac_t""$glibcpp_cv_func___builtin_cosf_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosf_use = x"yes"; then echo $ac_n "checking for __builtin_cosf linkage""... $ac_c" 1>&6 ! echo "configure:9329: checking for __builtin_cosf linkage" >&5 if test x${glibcpp_cv_func___builtin_cosf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:9343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_link=yes else --- 10192,10212 ---- echo "$ac_t""$glibcpp_cv_func___builtin_cosf_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosf_use = x"yes"; then echo $ac_n "checking for __builtin_cosf linkage""... $ac_c" 1>&6 ! echo "configure:10196: checking for __builtin_cosf linkage" >&5 if test x${glibcpp_cv_func___builtin_cosf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosf(0); ; return 0; } EOF ! if { (eval echo configure:10210: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_link=yes else *************** EOF *** 9365,9371 **** echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6 ! echo "configure:9369: checking for __builtin_cos declaration" >&5 if test x${glibcpp_cv_func___builtin_cos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10232,10238 ---- echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6 ! echo "configure:10236: checking for __builtin_cos declaration" >&5 if test x${glibcpp_cv_func___builtin_cos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9380,9393 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:9391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cos_use=yes else --- 10247,10260 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:10258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cos_use=yes else *************** fi *** 9411,9431 **** echo "$ac_t""$glibcpp_cv_func___builtin_cos_use" 1>&6 if test x$glibcpp_cv_func___builtin_cos_use = x"yes"; then echo $ac_n "checking for __builtin_cos linkage""... $ac_c" 1>&6 ! echo "configure:9415: checking for __builtin_cos linkage" >&5 if test x${glibcpp_cv_func___builtin_cos_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:9429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cos_link=yes else --- 10278,10298 ---- echo "$ac_t""$glibcpp_cv_func___builtin_cos_use" 1>&6 if test x$glibcpp_cv_func___builtin_cos_use = x"yes"; then echo $ac_n "checking for __builtin_cos linkage""... $ac_c" 1>&6 ! echo "configure:10282: checking for __builtin_cos linkage" >&5 if test x${glibcpp_cv_func___builtin_cos_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cos(0); ; return 0; } EOF ! if { (eval echo configure:10296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cos_link=yes else *************** EOF *** 9451,9457 **** echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6 ! echo "configure:9455: checking for __builtin_cosl declaration" >&5 if test x${glibcpp_cv_func___builtin_cosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10318,10324 ---- echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6 ! echo "configure:10322: checking for __builtin_cosl declaration" >&5 if test x${glibcpp_cv_func___builtin_cosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9466,9479 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:9477: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_use=yes else --- 10333,10346 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:10344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_use=yes else *************** fi *** 9497,9517 **** echo "$ac_t""$glibcpp_cv_func___builtin_cosl_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosl_use = x"yes"; then echo $ac_n "checking for __builtin_cosl linkage""... $ac_c" 1>&6 ! echo "configure:9501: checking for __builtin_cosl linkage" >&5 if test x${glibcpp_cv_func___builtin_cosl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:9515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_link=yes else --- 10364,10384 ---- echo "$ac_t""$glibcpp_cv_func___builtin_cosl_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosl_use = x"yes"; then echo $ac_n "checking for __builtin_cosl linkage""... $ac_c" 1>&6 ! echo "configure:10368: checking for __builtin_cosl linkage" >&5 if test x${glibcpp_cv_func___builtin_cosl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { __builtin_cosl(0); ; return 0; } EOF ! if { (eval echo configure:10382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_link=yes else *************** EOF *** 9602,9608 **** CXXFLAGS='-fno-builtins -D_GNU_SOURCE' echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:9606: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10469,10475 ---- CXXFLAGS='-fno-builtins -D_GNU_SOURCE' echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 ! echo "configure:10473: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 9610,9616 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 10488,10494 ---- sin() ; return 0; } EOF ! if { (eval echo configure:10492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 9647,9653 **** echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6 ! echo "configure:9651: checking for isinf declaration" >&5 if test x${glibcpp_cv_func_isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10514,10520 ---- echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6 ! echo "configure:10518: checking for isinf declaration" >&5 if test x${glibcpp_cv_func_isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9662,9668 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10529,10535 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 9673,9679 **** isinf(0); ; return 0; } EOF ! if { (eval echo configure:9677: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinf_use=yes else --- 10540,10546 ---- isinf(0); ; return 0; } EOF ! if { (eval echo configure:10544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinf_use=yes else *************** fi *** 9700,9711 **** for ac_func in isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9704: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10571: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10595,10601 ---- ; return 0; } EOF ! if { (eval echo configure:10599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 9755,9761 **** else echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6 ! echo "configure:9759: checking for _isinf declaration" >&5 if test x${glibcpp_cv_func__isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10622,10628 ---- else echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6 ! echo "configure:10626: checking for _isinf declaration" >&5 if test x${glibcpp_cv_func__isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9770,9776 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10637,10643 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 9781,9787 **** _isinf(0); ; return 0; } EOF ! if { (eval echo configure:9785: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinf_use=yes else --- 10648,10654 ---- _isinf(0); ; return 0; } EOF ! if { (eval echo configure:10652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinf_use=yes else *************** fi *** 9808,9819 **** for ac_func in _isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9812: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10679: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10703,10709 ---- ; return 0; } EOF ! if { (eval echo configure:10707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 9866,9872 **** echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6 ! echo "configure:9870: checking for isnan declaration" >&5 if test x${glibcpp_cv_func_isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10733,10739 ---- echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6 ! echo "configure:10737: checking for isnan declaration" >&5 if test x${glibcpp_cv_func_isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9881,9887 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10748,10754 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 9892,9898 **** isnan(0); ; return 0; } EOF ! if { (eval echo configure:9896: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnan_use=yes else --- 10759,10765 ---- isnan(0); ; return 0; } EOF ! if { (eval echo configure:10763: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnan_use=yes else *************** fi *** 9919,9930 **** for ac_func in isnan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:9923: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10790: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10814,10820 ---- ; return 0; } EOF ! if { (eval echo configure:10818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 9974,9980 **** else echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6 ! echo "configure:9978: checking for _isnan declaration" >&5 if test x${glibcpp_cv_func__isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10841,10847 ---- else echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6 ! echo "configure:10845: checking for _isnan declaration" >&5 if test x${glibcpp_cv_func__isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 9989,9995 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10856,10862 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10000,10006 **** _isnan(0); ; return 0; } EOF ! if { (eval echo configure:10004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnan_use=yes else --- 10867,10873 ---- _isnan(0); ; return 0; } EOF ! if { (eval echo configure:10871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnan_use=yes else *************** fi *** 10027,10038 **** for ac_func in _isnan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10031: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:10898: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 10922,10928 ---- ; return 0; } EOF ! if { (eval echo configure:10926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10085,10091 **** echo $ac_n "checking for finite declaration""... $ac_c" 1>&6 ! echo "configure:10089: checking for finite declaration" >&5 if test x${glibcpp_cv_func_finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 10952,10958 ---- echo $ac_n "checking for finite declaration""... $ac_c" 1>&6 ! echo "configure:10956: checking for finite declaration" >&5 if test x${glibcpp_cv_func_finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10100,10106 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 10967,10973 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10111,10117 **** finite(0); ; return 0; } EOF ! if { (eval echo configure:10115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finite_use=yes else --- 10978,10984 ---- finite(0); ; return 0; } EOF ! if { (eval echo configure:10982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finite_use=yes else *************** fi *** 10138,10149 **** for ac_func in finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10142: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11009: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11033,11039 ---- ; return 0; } EOF ! if { (eval echo configure:11037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10193,10199 **** else echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6 ! echo "configure:10197: checking for _finite declaration" >&5 if test x${glibcpp_cv_func__finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11060,11066 ---- else echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6 ! echo "configure:11064: checking for _finite declaration" >&5 if test x${glibcpp_cv_func__finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10208,10214 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11075,11081 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10219,10225 **** _finite(0); ; return 0; } EOF ! if { (eval echo configure:10223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finite_use=yes else --- 11086,11092 ---- _finite(0); ; return 0; } EOF ! if { (eval echo configure:11090: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finite_use=yes else *************** fi *** 10246,10257 **** for ac_func in _finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10250: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11117: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11141,11147 ---- ; return 0; } EOF ! if { (eval echo configure:11145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10304,10310 **** echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6 ! echo "configure:10308: checking for copysign declaration" >&5 if test x${glibcpp_cv_func_copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11171,11177 ---- echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6 ! echo "configure:11175: checking for copysign declaration" >&5 if test x${glibcpp_cv_func_copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10319,10332 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:10330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysign_use=yes else --- 11186,11199 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11197: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysign_use=yes else *************** fi *** 10353,10364 **** for ac_func in copysign do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10357: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11224: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11248,11254 ---- ; return 0; } EOF ! if { (eval echo configure:11252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10408,10414 **** else echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6 ! echo "configure:10412: checking for _copysign declaration" >&5 if test x${glibcpp_cv_func__copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11275,11281 ---- else echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6 ! echo "configure:11279: checking for _copysign declaration" >&5 if test x${glibcpp_cv_func__copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10423,10436 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:10434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysign_use=yes else --- 11290,11303 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysign(0, 0); ; return 0; } EOF ! if { (eval echo configure:11301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysign_use=yes else *************** fi *** 10457,10468 **** for ac_func in _copysign do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10461: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11328: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11352,11358 ---- ; return 0; } EOF ! if { (eval echo configure:11356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10515,10521 **** echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6 ! echo "configure:10519: checking for sincos declaration" >&5 if test x${glibcpp_cv_func_sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11382,11388 ---- echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6 ! echo "configure:11386: checking for sincos declaration" >&5 if test x${glibcpp_cv_func_sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10530,10543 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:10541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincos_use=yes else --- 11397,11410 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11408: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincos_use=yes else *************** fi *** 10564,10575 **** for ac_func in sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10568: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11435: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11459,11465 ---- ; return 0; } EOF ! if { (eval echo configure:11463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10619,10625 **** else echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6 ! echo "configure:10623: checking for _sincos declaration" >&5 if test x${glibcpp_cv_func__sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11486,11492 ---- else echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6 ! echo "configure:11490: checking for _sincos declaration" >&5 if test x${glibcpp_cv_func__sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10634,10647 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:10645: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincos_use=yes else --- 11501,11514 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincos(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:11512: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincos_use=yes else *************** fi *** 10668,10679 **** for ac_func in _sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10672: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11539: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11563,11569 ---- ; return 0; } EOF ! if { (eval echo configure:11567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10726,10732 **** echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6 ! echo "configure:10730: checking for fpclass declaration" >&5 if test x${glibcpp_cv_func_fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11593,11599 ---- echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11597: checking for fpclass declaration" >&5 if test x${glibcpp_cv_func_fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10741,10747 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11608,11614 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10752,10758 **** fpclass(0); ; return 0; } EOF ! if { (eval echo configure:10756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fpclass_use=yes else --- 11619,11625 ---- fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11623: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fpclass_use=yes else *************** fi *** 10779,10790 **** for ac_func in fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10783: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11650: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11674,11680 ---- ; return 0; } EOF ! if { (eval echo configure:11678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10834,10840 **** else echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6 ! echo "configure:10838: checking for _fpclass declaration" >&5 if test x${glibcpp_cv_func__fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11701,11707 ---- else echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6 ! echo "configure:11705: checking for _fpclass declaration" >&5 if test x${glibcpp_cv_func__fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10849,10855 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11716,11722 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10860,10866 **** _fpclass(0); ; return 0; } EOF ! if { (eval echo configure:10864: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fpclass_use=yes else --- 11727,11733 ---- _fpclass(0); ; return 0; } EOF ! if { (eval echo configure:11731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fpclass_use=yes else *************** fi *** 10887,10898 **** for ac_func in _fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:10891: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11758: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11782,11788 ---- ; return 0; } EOF ! if { (eval echo configure:11786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 10945,10951 **** echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:10949: checking for qfpclass declaration" >&5 if test x${glibcpp_cv_func_qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11812,11818 ---- echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11816: checking for qfpclass declaration" >&5 if test x${glibcpp_cv_func_qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 10960,10966 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11827,11833 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 10971,10977 **** qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:10975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_qfpclass_use=yes else --- 11838,11844 ---- qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_qfpclass_use=yes else *************** fi *** 10998,11009 **** for ac_func in qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11002: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11869: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 11893,11899 ---- ; return 0; } EOF ! if { (eval echo configure:11897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11053,11059 **** else echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11057: checking for _qfpclass declaration" >&5 if test x${glibcpp_cv_func__qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 11920,11926 ---- else echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6 ! echo "configure:11924: checking for _qfpclass declaration" >&5 if test x${glibcpp_cv_func__qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11068,11074 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 11935,11941 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11079,11085 **** _qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11083: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__qfpclass_use=yes else --- 11946,11952 ---- _qfpclass(0); ; return 0; } EOF ! if { (eval echo configure:11950: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__qfpclass_use=yes else *************** fi *** 11106,11117 **** for ac_func in _qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11110: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:11977: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12001,12007 ---- ; return 0; } EOF ! if { (eval echo configure:12005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11164,11170 **** echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6 ! echo "configure:11168: checking for hypot declaration" >&5 if test x${glibcpp_cv_func_hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12031,12037 ---- echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6 ! echo "configure:12035: checking for hypot declaration" >&5 if test x${glibcpp_cv_func_hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11179,11192 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:11190: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypot_use=yes else --- 12046,12059 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypot_use=yes else *************** fi *** 11213,11224 **** for ac_func in hypot do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11217: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12084: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12108,12114 ---- ; return 0; } EOF ! if { (eval echo configure:12112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11268,11274 **** else echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6 ! echo "configure:11272: checking for _hypot declaration" >&5 if test x${glibcpp_cv_func__hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12135,12141 ---- else echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6 ! echo "configure:12139: checking for _hypot declaration" >&5 if test x${glibcpp_cv_func__hypot_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypot_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11283,11296 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:11294: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypot_use=yes else --- 12150,12163 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypot(0, 0); ; return 0; } EOF ! if { (eval echo configure:12161: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypot_use=yes else *************** fi *** 11317,11328 **** for ac_func in _hypot do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11321: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12188: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12212,12218 ---- ; return 0; } EOF ! if { (eval echo configure:12216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11375,11381 **** echo $ac_n "checking for float trig functions""... $ac_c" 1>&6 ! echo "configure:11379: checking for float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 12242,12248 ---- echo $ac_n "checking for float trig functions""... $ac_c" 1>&6 ! echo "configure:12246: checking for float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11389,11395 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 12256,12262 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 11398,11404 **** coshf sinhf tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:11402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_trig_use=yes else --- 12265,12271 ---- coshf sinhf tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:12269: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_trig_use=yes else *************** fi *** 11424,11435 **** coshf sinhf tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11428: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12295: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12319,12325 ---- ; return 0; } EOF ! if { (eval echo configure:12323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11480,11486 **** echo $ac_n "checking for float round functions""... $ac_c" 1>&6 ! echo "configure:11484: checking for float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 12347,12353 ---- echo $ac_n "checking for float round functions""... $ac_c" 1>&6 ! echo "configure:12351: checking for float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11494,11507 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceilf floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:11505: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_round_use=yes else --- 12361,12374 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceilf floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:12372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_round_use=yes else *************** fi *** 11525,11536 **** for ac_func in ceilf floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11529: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12396: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12420,12426 ---- ; return 0; } EOF ! if { (eval echo configure:12424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11582,11588 **** echo $ac_n "checking for expf declaration""... $ac_c" 1>&6 ! echo "configure:11586: checking for expf declaration" >&5 if test x${glibcpp_cv_func_expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12449,12455 ---- echo $ac_n "checking for expf declaration""... $ac_c" 1>&6 ! echo "configure:12453: checking for expf declaration" >&5 if test x${glibcpp_cv_func_expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11597,11603 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12464,12470 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11608,11614 **** expf(0); ; return 0; } EOF ! if { (eval echo configure:11612: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expf_use=yes else --- 12475,12481 ---- expf(0); ; return 0; } EOF ! if { (eval echo configure:12479: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expf_use=yes else *************** fi *** 11635,11646 **** for ac_func in expf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11639: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12506: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12530,12536 ---- ; return 0; } EOF ! if { (eval echo configure:12534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11690,11696 **** else echo $ac_n "checking for _expf declaration""... $ac_c" 1>&6 ! echo "configure:11694: checking for _expf declaration" >&5 if test x${glibcpp_cv_func__expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12557,12563 ---- else echo $ac_n "checking for _expf declaration""... $ac_c" 1>&6 ! echo "configure:12561: checking for _expf declaration" >&5 if test x${glibcpp_cv_func__expf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11705,11711 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12572,12578 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11716,11722 **** _expf(0); ; return 0; } EOF ! if { (eval echo configure:11720: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expf_use=yes else --- 12583,12589 ---- _expf(0); ; return 0; } EOF ! if { (eval echo configure:12587: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expf_use=yes else *************** fi *** 11743,11754 **** for ac_func in _expf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11747: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12614: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12638,12644 ---- ; return 0; } EOF ! if { (eval echo configure:12642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11801,11807 **** echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6 ! echo "configure:11805: checking for isnanf declaration" >&5 if test x${glibcpp_cv_func_isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12668,12674 ---- echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12672: checking for isnanf declaration" >&5 if test x${glibcpp_cv_func_isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11816,11822 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12683,12689 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11827,11833 **** isnanf(0); ; return 0; } EOF ! if { (eval echo configure:11831: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanf_use=yes else --- 12694,12700 ---- isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12698: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanf_use=yes else *************** fi *** 11854,11865 **** for ac_func in isnanf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11858: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12725: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12749,12755 ---- ; return 0; } EOF ! if { (eval echo configure:12753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 11909,11915 **** else echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6 ! echo "configure:11913: checking for _isnanf declaration" >&5 if test x${glibcpp_cv_func__isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12776,12782 ---- else echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6 ! echo "configure:12780: checking for _isnanf declaration" >&5 if test x${glibcpp_cv_func__isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 11924,11930 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12791,12797 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 11935,11941 **** _isnanf(0); ; return 0; } EOF ! if { (eval echo configure:11939: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanf_use=yes else --- 12802,12808 ---- _isnanf(0); ; return 0; } EOF ! if { (eval echo configure:12806: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanf_use=yes else *************** fi *** 11962,11973 **** for ac_func in _isnanf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:11966: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12833: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12857,12863 ---- ; return 0; } EOF ! if { (eval echo configure:12861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12020,12026 **** echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6 ! echo "configure:12024: checking for isinff declaration" >&5 if test x${glibcpp_cv_func_isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12887,12893 ---- echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6 ! echo "configure:12891: checking for isinff declaration" >&5 if test x${glibcpp_cv_func_isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12035,12041 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 12902,12908 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12046,12052 **** isinff(0); ; return 0; } EOF ! if { (eval echo configure:12050: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinff_use=yes else --- 12913,12919 ---- isinff(0); ; return 0; } EOF ! if { (eval echo configure:12917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinff_use=yes else *************** fi *** 12073,12084 **** for ac_func in isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12077: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:12944: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 12968,12974 ---- ; return 0; } EOF ! if { (eval echo configure:12972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12128,12134 **** else echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6 ! echo "configure:12132: checking for _isinff declaration" >&5 if test x${glibcpp_cv_func__isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 12995,13001 ---- else echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6 ! echo "configure:12999: checking for _isinff declaration" >&5 if test x${glibcpp_cv_func__isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12143,12149 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13010,13016 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12154,12160 **** _isinff(0); ; return 0; } EOF ! if { (eval echo configure:12158: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinff_use=yes else --- 13021,13027 ---- _isinff(0); ; return 0; } EOF ! if { (eval echo configure:13025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinff_use=yes else *************** fi *** 12181,12192 **** for ac_func in _isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12185: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13052: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13076,13082 ---- ; return 0; } EOF ! if { (eval echo configure:13080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12239,12245 **** echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6 ! echo "configure:12243: checking for atan2f declaration" >&5 if test x${glibcpp_cv_func_atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13106,13112 ---- echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13110: checking for atan2f declaration" >&5 if test x${glibcpp_cv_func_atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12254,12267 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:12265: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2f_use=yes else --- 13121,13134 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13132: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2f_use=yes else *************** fi *** 12288,12299 **** for ac_func in atan2f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12292: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13159: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13183,13189 ---- ; return 0; } EOF ! if { (eval echo configure:13187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12343,12349 **** else echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6 ! echo "configure:12347: checking for _atan2f declaration" >&5 if test x${glibcpp_cv_func__atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13210,13216 ---- else echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6 ! echo "configure:13214: checking for _atan2f declaration" >&5 if test x${glibcpp_cv_func__atan2f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12358,12371 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:12369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2f_use=yes else --- 13225,13238 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2f(0, 0); ; return 0; } EOF ! if { (eval echo configure:13236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2f_use=yes else *************** fi *** 12392,12403 **** for ac_func in _atan2f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12396: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13263: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13287,13293 ---- ; return 0; } EOF ! if { (eval echo configure:13291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12450,12456 **** echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6 ! echo "configure:12454: checking for fabsf declaration" >&5 if test x${glibcpp_cv_func_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13317,13323 ---- echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13321: checking for fabsf declaration" >&5 if test x${glibcpp_cv_func_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12465,12471 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13332,13338 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12476,12482 **** fabsf(0); ; return 0; } EOF ! if { (eval echo configure:12480: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsf_use=yes else --- 13343,13349 ---- fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsf_use=yes else *************** fi *** 12503,12514 **** for ac_func in fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12507: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13374: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13398,13404 ---- ; return 0; } EOF ! if { (eval echo configure:13402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12558,12564 **** else echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6 ! echo "configure:12562: checking for _fabsf declaration" >&5 if test x${glibcpp_cv_func__fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13425,13431 ---- else echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6 ! echo "configure:13429: checking for _fabsf declaration" >&5 if test x${glibcpp_cv_func__fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12573,12579 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 13440,13446 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 12584,12590 **** _fabsf(0); ; return 0; } EOF ! if { (eval echo configure:12588: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsf_use=yes else --- 13451,13457 ---- _fabsf(0); ; return 0; } EOF ! if { (eval echo configure:13455: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsf_use=yes else *************** fi *** 12611,12622 **** for ac_func in _fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12615: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13482: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13506,13512 ---- ; return 0; } EOF ! if { (eval echo configure:13510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12669,12675 **** echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6 ! echo "configure:12673: checking for fmodf declaration" >&5 if test x${glibcpp_cv_func_fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13536,13542 ---- echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13540: checking for fmodf declaration" >&5 if test x${glibcpp_cv_func_fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12684,12697 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:12695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodf_use=yes else --- 13551,13564 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13562: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodf_use=yes else *************** fi *** 12718,12729 **** for ac_func in fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12722: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13589: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13613,13619 ---- ; return 0; } EOF ! if { (eval echo configure:13617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12773,12779 **** else echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6 ! echo "configure:12777: checking for _fmodf declaration" >&5 if test x${glibcpp_cv_func__fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13640,13646 ---- else echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6 ! echo "configure:13644: checking for _fmodf declaration" >&5 if test x${glibcpp_cv_func__fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12788,12801 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:12799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodf_use=yes else --- 13655,13668 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13666: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodf_use=yes else *************** fi *** 12822,12833 **** for ac_func in _fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12826: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13693: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13717,13723 ---- ; return 0; } EOF ! if { (eval echo configure:13721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12880,12886 **** echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6 ! echo "configure:12884: checking for frexpf declaration" >&5 if test x${glibcpp_cv_func_frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13747,13753 ---- echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13751: checking for frexpf declaration" >&5 if test x${glibcpp_cv_func_frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12895,12908 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:12906: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpf_use=yes else --- 13762,13775 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpf_use=yes else *************** fi *** 12929,12940 **** for ac_func in frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:12933: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13800: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13824,13830 ---- ; return 0; } EOF ! if { (eval echo configure:13828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 12984,12990 **** else echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6 ! echo "configure:12988: checking for _frexpf declaration" >&5 if test x${glibcpp_cv_func__frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13851,13857 ---- else echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6 ! echo "configure:13855: checking for _frexpf declaration" >&5 if test x${glibcpp_cv_func__frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 12999,13012 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13010: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpf_use=yes else --- 13866,13879 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpf_use=yes else *************** fi *** 13033,13044 **** for ac_func in _frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13037: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:13904: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 13928,13934 ---- ; return 0; } EOF ! if { (eval echo configure:13932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13091,13097 **** echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6 ! echo "configure:13095: checking for hypotf declaration" >&5 if test x${glibcpp_cv_func_hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 13958,13964 ---- echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6 ! echo "configure:13962: checking for hypotf declaration" >&5 if test x${glibcpp_cv_func_hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13106,13119 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotf_use=yes else --- 13973,13986 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13984: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotf_use=yes else *************** fi *** 13140,13151 **** for ac_func in hypotf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13144: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14011: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14035,14041 ---- ; return 0; } EOF ! if { (eval echo configure:14039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13195,13201 **** else echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6 ! echo "configure:13199: checking for _hypotf declaration" >&5 if test x${glibcpp_cv_func__hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14062,14068 ---- else echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6 ! echo "configure:14066: checking for _hypotf declaration" >&5 if test x${glibcpp_cv_func__hypotf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13210,13223 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13221: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotf_use=yes else --- 14077,14090 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14088: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotf_use=yes else *************** fi *** 13244,13255 **** for ac_func in _hypotf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13248: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14115: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14139,14145 ---- ; return 0; } EOF ! if { (eval echo configure:14143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13302,13308 **** echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:13306: checking for ldexpf declaration" >&5 if test x${glibcpp_cv_func_ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14169,14175 ---- echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14173: checking for ldexpf declaration" >&5 if test x${glibcpp_cv_func_ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13317,13330 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpf_use=yes else --- 14184,14197 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpf_use=yes else *************** fi *** 13351,13362 **** for ac_func in ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13355: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14222: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14246,14252 ---- ; return 0; } EOF ! if { (eval echo configure:14250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13406,13412 **** else echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:13410: checking for _ldexpf declaration" >&5 if test x${glibcpp_cv_func__ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14273,14279 ---- else echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6 ! echo "configure:14277: checking for _ldexpf declaration" >&5 if test x${glibcpp_cv_func__ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13421,13434 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:13432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpf_use=yes else --- 14288,14301 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpf_use=yes else *************** fi *** 13455,13466 **** for ac_func in _ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13459: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14326: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14350,14356 ---- ; return 0; } EOF ! if { (eval echo configure:14354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13513,13519 **** echo $ac_n "checking for logf declaration""... $ac_c" 1>&6 ! echo "configure:13517: checking for logf declaration" >&5 if test x${glibcpp_cv_func_logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14380,14386 ---- echo $ac_n "checking for logf declaration""... $ac_c" 1>&6 ! echo "configure:14384: checking for logf declaration" >&5 if test x${glibcpp_cv_func_logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13528,13534 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14395,14401 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13539,13545 **** logf(0); ; return 0; } EOF ! if { (eval echo configure:13543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logf_use=yes else --- 14406,14412 ---- logf(0); ; return 0; } EOF ! if { (eval echo configure:14410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logf_use=yes else *************** fi *** 13566,13577 **** for ac_func in logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13570: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14437: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14461,14467 ---- ; return 0; } EOF ! if { (eval echo configure:14465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13621,13627 **** else echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6 ! echo "configure:13625: checking for _logf declaration" >&5 if test x${glibcpp_cv_func__logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14488,14494 ---- else echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6 ! echo "configure:14492: checking for _logf declaration" >&5 if test x${glibcpp_cv_func__logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13636,13642 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14503,14509 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13647,13653 **** _logf(0); ; return 0; } EOF ! if { (eval echo configure:13651: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logf_use=yes else --- 14514,14520 ---- _logf(0); ; return 0; } EOF ! if { (eval echo configure:14518: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logf_use=yes else *************** fi *** 13674,13685 **** for ac_func in _logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13678: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14545: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14569,14575 ---- ; return 0; } EOF ! if { (eval echo configure:14573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13732,13738 **** echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6 ! echo "configure:13736: checking for log10f declaration" >&5 if test x${glibcpp_cv_func_log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14599,14605 ---- echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6 ! echo "configure:14603: checking for log10f declaration" >&5 if test x${glibcpp_cv_func_log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13747,13753 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14614,14620 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13758,13764 **** log10f(0); ; return 0; } EOF ! if { (eval echo configure:13762: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10f_use=yes else --- 14625,14631 ---- log10f(0); ; return 0; } EOF ! if { (eval echo configure:14629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10f_use=yes else *************** fi *** 13785,13796 **** for ac_func in log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13789: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14656: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14680,14686 ---- ; return 0; } EOF ! if { (eval echo configure:14684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13840,13846 **** else echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6 ! echo "configure:13844: checking for _log10f declaration" >&5 if test x${glibcpp_cv_func__log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14707,14713 ---- else echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6 ! echo "configure:14711: checking for _log10f declaration" >&5 if test x${glibcpp_cv_func__log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13855,13861 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 14722,14728 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 13866,13872 **** _log10f(0); ; return 0; } EOF ! if { (eval echo configure:13870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10f_use=yes else --- 14733,14739 ---- _log10f(0); ; return 0; } EOF ! if { (eval echo configure:14737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10f_use=yes else *************** fi *** 13893,13904 **** for ac_func in _log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:13897: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14764: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14788,14794 ---- ; return 0; } EOF ! if { (eval echo configure:14792: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 13951,13957 **** echo $ac_n "checking for modff declaration""... $ac_c" 1>&6 ! echo "configure:13955: checking for modff declaration" >&5 if test x${glibcpp_cv_func_modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14818,14824 ---- echo $ac_n "checking for modff declaration""... $ac_c" 1>&6 ! echo "configure:14822: checking for modff declaration" >&5 if test x${glibcpp_cv_func_modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 13966,13979 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:13977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modff_use=yes else --- 14833,14846 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14844: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modff_use=yes else *************** fi *** 14000,14011 **** for ac_func in modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14004: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14871: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14895,14901 ---- ; return 0; } EOF ! if { (eval echo configure:14899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14055,14061 **** else echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6 ! echo "configure:14059: checking for _modff declaration" >&5 if test x${glibcpp_cv_func__modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 14922,14928 ---- else echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6 ! echo "configure:14926: checking for _modff declaration" >&5 if test x${glibcpp_cv_func__modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14070,14083 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14081: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modff_use=yes else --- 14937,14950 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modff(0, 0); ; return 0; } EOF ! if { (eval echo configure:14948: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modff_use=yes else *************** fi *** 14104,14115 **** for ac_func in _modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14108: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:14975: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 14999,15005 ---- ; return 0; } EOF ! if { (eval echo configure:15003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14162,14168 **** echo $ac_n "checking for powf declaration""... $ac_c" 1>&6 ! echo "configure:14166: checking for powf declaration" >&5 if test x${glibcpp_cv_func_powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15029,15035 ---- echo $ac_n "checking for powf declaration""... $ac_c" 1>&6 ! echo "configure:15033: checking for powf declaration" >&5 if test x${glibcpp_cv_func_powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14177,14190 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14188: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powf_use=yes else --- 15044,15057 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powf_use=yes else *************** fi *** 14211,14222 **** for ac_func in powf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14215: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15082: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15106,15112 ---- ; return 0; } EOF ! if { (eval echo configure:15110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14266,14272 **** else echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6 ! echo "configure:14270: checking for _powf declaration" >&5 if test x${glibcpp_cv_func__powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15133,15139 ---- else echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6 ! echo "configure:15137: checking for _powf declaration" >&5 if test x${glibcpp_cv_func__powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14281,14294 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:14292: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powf_use=yes else --- 15148,15161 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powf(0, 0); ; return 0; } EOF ! if { (eval echo configure:15159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powf_use=yes else *************** fi *** 14315,14326 **** for ac_func in _powf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14319: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15186: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15210,15216 ---- ; return 0; } EOF ! if { (eval echo configure:15214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14373,14379 **** echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:14377: checking for sqrtf declaration" >&5 if test x${glibcpp_cv_func_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15240,15246 ---- echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15244: checking for sqrtf declaration" >&5 if test x${glibcpp_cv_func_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14388,14394 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15255,15261 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14399,14405 **** sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:14403: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtf_use=yes else --- 15266,15272 ---- sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15270: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtf_use=yes else *************** fi *** 14426,14437 **** for ac_func in sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14430: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15297: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15321,15327 ---- ; return 0; } EOF ! if { (eval echo configure:15325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14481,14487 **** else echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:14485: checking for _sqrtf declaration" >&5 if test x${glibcpp_cv_func__sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15348,15354 ---- else echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6 ! echo "configure:15352: checking for _sqrtf declaration" >&5 if test x${glibcpp_cv_func__sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14496,14502 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15363,15369 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14507,14513 **** _sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:14511: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtf_use=yes else --- 15374,15380 ---- _sqrtf(0); ; return 0; } EOF ! if { (eval echo configure:15378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtf_use=yes else *************** fi *** 14534,14545 **** for ac_func in _sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14538: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15405: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15429,15435 ---- ; return 0; } EOF ! if { (eval echo configure:15433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14592,14598 **** echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6 ! echo "configure:14596: checking for sincosf declaration" >&5 if test x${glibcpp_cv_func_sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15459,15465 ---- echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15463: checking for sincosf declaration" >&5 if test x${glibcpp_cv_func_sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14607,14620 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:14618: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosf_use=yes else --- 15474,15487 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15485: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosf_use=yes else *************** fi *** 14641,14652 **** for ac_func in sincosf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14645: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15512: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15536,15542 ---- ; return 0; } EOF ! if { (eval echo configure:15540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14696,14702 **** else echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6 ! echo "configure:14700: checking for _sincosf declaration" >&5 if test x${glibcpp_cv_func__sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15563,15569 ---- else echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6 ! echo "configure:15567: checking for _sincosf declaration" >&5 if test x${glibcpp_cv_func__sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14711,14724 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:14722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosf_use=yes else --- 15578,15591 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosf(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:15589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosf_use=yes else *************** fi *** 14745,14756 **** for ac_func in _sincosf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14749: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15616: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15640,15646 ---- ; return 0; } EOF ! if { (eval echo configure:15644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14803,14809 **** echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6 ! echo "configure:14807: checking for finitef declaration" >&5 if test x${glibcpp_cv_func_finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15670,15676 ---- echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6 ! echo "configure:15674: checking for finitef declaration" >&5 if test x${glibcpp_cv_func_finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14818,14824 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15685,15691 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14829,14835 **** finitef(0); ; return 0; } EOF ! if { (eval echo configure:14833: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitef_use=yes else --- 15696,15702 ---- finitef(0); ; return 0; } EOF ! if { (eval echo configure:15700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitef_use=yes else *************** fi *** 14856,14867 **** for ac_func in finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14860: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15727: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15751,15757 ---- ; return 0; } EOF ! if { (eval echo configure:15755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 14911,14917 **** else echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6 ! echo "configure:14915: checking for _finitef declaration" >&5 if test x${glibcpp_cv_func__finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 15778,15784 ---- else echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6 ! echo "configure:15782: checking for _finitef declaration" >&5 if test x${glibcpp_cv_func__finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 14926,14932 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 15793,15799 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 14937,14943 **** _finitef(0); ; return 0; } EOF ! if { (eval echo configure:14941: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitef_use=yes else --- 15804,15810 ---- _finitef(0); ; return 0; } EOF ! if { (eval echo configure:15808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitef_use=yes else *************** fi *** 14964,14975 **** for ac_func in _finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:14968: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15835: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15859,15865 ---- ; return 0; } EOF ! if { (eval echo configure:15863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15022,15028 **** echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6 ! echo "configure:15026: checking for long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 15889,15895 ---- echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6 ! echo "configure:15893: checking for long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15036,15042 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 15903,15909 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 15045,15051 **** coshl sinhl tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15049: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_trig_use=yes else --- 15912,15918 ---- coshl sinhl tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15916: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_trig_use=yes else *************** fi *** 15071,15082 **** coshl sinhl tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15075: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:15942: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 15966,15972 ---- ; return 0; } EOF ! if { (eval echo configure:15970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15127,15133 **** echo $ac_n "checking for long double round functions""... $ac_c" 1>&6 ! echo "configure:15131: checking for long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 15994,16000 ---- echo $ac_n "checking for long double round functions""... $ac_c" 1>&6 ! echo "configure:15998: checking for long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15141,15154 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceill floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:15152: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_round_use=yes else --- 16008,16021 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in ceill floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:16019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_round_use=yes else *************** fi *** 15172,15183 **** for ac_func in ceill floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15176: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16043: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16067,16073 ---- ; return 0; } EOF ! if { (eval echo configure:16071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15229,15235 **** echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6 ! echo "configure:15233: checking for isnanl declaration" >&5 if test x${glibcpp_cv_func_isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16096,16102 ---- echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16100: checking for isnanl declaration" >&5 if test x${glibcpp_cv_func_isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15244,15250 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16111,16117 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15255,15261 **** isnanl(0); ; return 0; } EOF ! if { (eval echo configure:15259: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanl_use=yes else --- 16122,16128 ---- isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16126: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanl_use=yes else *************** fi *** 15282,15293 **** for ac_func in isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15286: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16153: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16177,16183 ---- ; return 0; } EOF ! if { (eval echo configure:16181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15337,15343 **** else echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6 ! echo "configure:15341: checking for _isnanl declaration" >&5 if test x${glibcpp_cv_func__isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16204,16210 ---- else echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6 ! echo "configure:16208: checking for _isnanl declaration" >&5 if test x${glibcpp_cv_func__isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15352,15358 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16219,16225 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15363,15369 **** _isnanl(0); ; return 0; } EOF ! if { (eval echo configure:15367: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanl_use=yes else --- 16230,16236 ---- _isnanl(0); ; return 0; } EOF ! if { (eval echo configure:16234: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanl_use=yes else *************** fi *** 15390,15401 **** for ac_func in _isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15394: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16261: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16285,16291 ---- ; return 0; } EOF ! if { (eval echo configure:16289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15448,15454 **** echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6 ! echo "configure:15452: checking for isinfl declaration" >&5 if test x${glibcpp_cv_func_isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16315,16321 ---- echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16319: checking for isinfl declaration" >&5 if test x${glibcpp_cv_func_isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15463,15469 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16330,16336 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15474,15480 **** isinfl(0); ; return 0; } EOF ! if { (eval echo configure:15478: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinfl_use=yes else --- 16341,16347 ---- isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinfl_use=yes else *************** fi *** 15501,15512 **** for ac_func in isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15505: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16372: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16396,16402 ---- ; return 0; } EOF ! if { (eval echo configure:16400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15556,15562 **** else echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6 ! echo "configure:15560: checking for _isinfl declaration" >&5 if test x${glibcpp_cv_func__isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16423,16429 ---- else echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6 ! echo "configure:16427: checking for _isinfl declaration" >&5 if test x${glibcpp_cv_func__isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15571,15577 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16438,16444 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 15582,15588 **** _isinfl(0); ; return 0; } EOF ! if { (eval echo configure:15586: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinfl_use=yes else --- 16449,16455 ---- _isinfl(0); ; return 0; } EOF ! if { (eval echo configure:16453: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinfl_use=yes else *************** fi *** 15609,15620 **** for ac_func in _isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15613: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16480: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16504,16510 ---- ; return 0; } EOF ! if { (eval echo configure:16508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15667,15673 **** echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6 ! echo "configure:15671: checking for copysignl declaration" >&5 if test x${glibcpp_cv_func_copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16534,16540 ---- echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16538: checking for copysignl declaration" >&5 if test x${glibcpp_cv_func_copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15682,15695 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:15693: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysignl_use=yes else --- 16549,16562 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysignl_use=yes else *************** fi *** 15716,15727 **** for ac_func in copysignl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15720: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16587: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16611,16617 ---- ; return 0; } EOF ! if { (eval echo configure:16615: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15771,15777 **** else echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6 ! echo "configure:15775: checking for _copysignl declaration" >&5 if test x${glibcpp_cv_func__copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16638,16644 ---- else echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6 ! echo "configure:16642: checking for _copysignl declaration" >&5 if test x${glibcpp_cv_func__copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15786,15799 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:15797: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysignl_use=yes else --- 16653,16666 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _copysignl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16664: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysignl_use=yes else *************** fi *** 15820,15831 **** for ac_func in _copysignl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15824: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16691: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16715,16721 ---- ; return 0; } EOF ! if { (eval echo configure:16719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15878,15884 **** echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6 ! echo "configure:15882: checking for atan2l declaration" >&5 if test x${glibcpp_cv_func_atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16745,16751 ---- echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16749: checking for atan2l declaration" >&5 if test x${glibcpp_cv_func_atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15893,15906 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:15904: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2l_use=yes else --- 16760,16773 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16771: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2l_use=yes else *************** fi *** 15927,15938 **** for ac_func in atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:15931: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16798: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16822,16828 ---- ; return 0; } EOF ! if { (eval echo configure:16826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 15982,15988 **** else echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6 ! echo "configure:15986: checking for _atan2l declaration" >&5 if test x${glibcpp_cv_func__atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16849,16855 ---- else echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6 ! echo "configure:16853: checking for _atan2l declaration" >&5 if test x${glibcpp_cv_func__atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 15997,16010 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2l_use=yes else --- 16864,16877 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _atan2l(0, 0); ; return 0; } EOF ! if { (eval echo configure:16875: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2l_use=yes else *************** fi *** 16031,16042 **** for ac_func in _atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16035: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:16902: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 16926,16932 ---- ; return 0; } EOF ! if { (eval echo configure:16930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16089,16095 **** echo $ac_n "checking for expl declaration""... $ac_c" 1>&6 ! echo "configure:16093: checking for expl declaration" >&5 if test x${glibcpp_cv_func_expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 16956,16962 ---- echo $ac_n "checking for expl declaration""... $ac_c" 1>&6 ! echo "configure:16960: checking for expl declaration" >&5 if test x${glibcpp_cv_func_expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16104,16110 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 16971,16977 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16115,16121 **** expl(0); ; return 0; } EOF ! if { (eval echo configure:16119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expl_use=yes else --- 16982,16988 ---- expl(0); ; return 0; } EOF ! if { (eval echo configure:16986: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expl_use=yes else *************** fi *** 16142,16153 **** for ac_func in expl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16146: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17013: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17037,17043 ---- ; return 0; } EOF ! if { (eval echo configure:17041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16197,16203 **** else echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6 ! echo "configure:16201: checking for _expl declaration" >&5 if test x${glibcpp_cv_func__expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17064,17070 ---- else echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6 ! echo "configure:17068: checking for _expl declaration" >&5 if test x${glibcpp_cv_func__expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16212,16218 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17079,17085 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16223,16229 **** _expl(0); ; return 0; } EOF ! if { (eval echo configure:16227: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expl_use=yes else --- 17090,17096 ---- _expl(0); ; return 0; } EOF ! if { (eval echo configure:17094: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expl_use=yes else *************** fi *** 16250,16261 **** for ac_func in _expl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16254: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17121: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17145,17151 ---- ; return 0; } EOF ! if { (eval echo configure:17149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16308,16314 **** echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6 ! echo "configure:16312: checking for fabsl declaration" >&5 if test x${glibcpp_cv_func_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17175,17181 ---- echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17179: checking for fabsl declaration" >&5 if test x${glibcpp_cv_func_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16323,16329 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17190,17196 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16334,16340 **** fabsl(0); ; return 0; } EOF ! if { (eval echo configure:16338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsl_use=yes else --- 17201,17207 ---- fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsl_use=yes else *************** fi *** 16361,16372 **** for ac_func in fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16365: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17232: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17256,17262 ---- ; return 0; } EOF ! if { (eval echo configure:17260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16416,16422 **** else echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6 ! echo "configure:16420: checking for _fabsl declaration" >&5 if test x${glibcpp_cv_func__fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17283,17289 ---- else echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6 ! echo "configure:17287: checking for _fabsl declaration" >&5 if test x${glibcpp_cv_func__fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16431,16437 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 17298,17304 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 16442,16448 **** _fabsl(0); ; return 0; } EOF ! if { (eval echo configure:16446: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsl_use=yes else --- 17309,17315 ---- _fabsl(0); ; return 0; } EOF ! if { (eval echo configure:17313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsl_use=yes else *************** fi *** 16469,16480 **** for ac_func in _fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16473: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17340: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17364,17370 ---- ; return 0; } EOF ! if { (eval echo configure:17368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16527,16533 **** echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6 ! echo "configure:16531: checking for fmodl declaration" >&5 if test x${glibcpp_cv_func_fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17394,17400 ---- echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17398: checking for fmodl declaration" >&5 if test x${glibcpp_cv_func_fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16542,16555 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16553: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodl_use=yes else --- 17409,17422 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodl_use=yes else *************** fi *** 16576,16587 **** for ac_func in fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16580: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17447: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17471,17477 ---- ; return 0; } EOF ! if { (eval echo configure:17475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16631,16637 **** else echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6 ! echo "configure:16635: checking for _fmodl declaration" >&5 if test x${glibcpp_cv_func__fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17498,17504 ---- else echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6 ! echo "configure:17502: checking for _fmodl declaration" >&5 if test x${glibcpp_cv_func__fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16646,16659 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodl_use=yes else --- 17513,17526 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _fmodl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17524: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodl_use=yes else *************** fi *** 16680,16691 **** for ac_func in _fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16684: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17551: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17575,17581 ---- ; return 0; } EOF ! if { (eval echo configure:17579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16738,16744 **** echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6 ! echo "configure:16742: checking for frexpl declaration" >&5 if test x${glibcpp_cv_func_frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17605,17611 ---- echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17609: checking for frexpl declaration" >&5 if test x${glibcpp_cv_func_frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16753,16766 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16764: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpl_use=yes else --- 17620,17633 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpl_use=yes else *************** fi *** 16787,16798 **** for ac_func in frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16791: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17658: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17682,17688 ---- ; return 0; } EOF ! if { (eval echo configure:17686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16842,16848 **** else echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6 ! echo "configure:16846: checking for _frexpl declaration" >&5 if test x${glibcpp_cv_func__frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17709,17715 ---- else echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6 ! echo "configure:17713: checking for _frexpl declaration" >&5 if test x${glibcpp_cv_func__frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16857,16870 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16868: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpl_use=yes else --- 17724,17737 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _frexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17735: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpl_use=yes else *************** fi *** 16891,16902 **** for ac_func in _frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:16895: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17762: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17786,17792 ---- ; return 0; } EOF ! if { (eval echo configure:17790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 16949,16955 **** echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6 ! echo "configure:16953: checking for hypotl declaration" >&5 if test x${glibcpp_cv_func_hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17816,17822 ---- echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17820: checking for hypotl declaration" >&5 if test x${glibcpp_cv_func_hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 16964,16977 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:16975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotl_use=yes else --- 17831,17844 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_hypotl_use=yes else *************** fi *** 16998,17009 **** for ac_func in hypotl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17002: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17869: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17893,17899 ---- ; return 0; } EOF ! if { (eval echo configure:17897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17053,17059 **** else echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17057: checking for _hypotl declaration" >&5 if test x${glibcpp_cv_func__hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 17920,17926 ---- else echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6 ! echo "configure:17924: checking for _hypotl declaration" >&5 if test x${glibcpp_cv_func__hypotl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__hypotl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17068,17081 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17079: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotl_use=yes else --- 17935,17948 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _hypotl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__hypotl_use=yes else *************** fi *** 17102,17113 **** for ac_func in _hypotl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17106: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:17973: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 17997,18003 ---- ; return 0; } EOF ! if { (eval echo configure:18001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17160,17166 **** echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:17164: checking for ldexpl declaration" >&5 if test x${glibcpp_cv_func_ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18027,18033 ---- echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18031: checking for ldexpl declaration" >&5 if test x${glibcpp_cv_func_ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17175,17188 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17186: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpl_use=yes else --- 18042,18055 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpl_use=yes else *************** fi *** 17209,17220 **** for ac_func in ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17213: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18080: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18104,18110 ---- ; return 0; } EOF ! if { (eval echo configure:18108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17264,17270 **** else echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:17268: checking for _ldexpl declaration" >&5 if test x${glibcpp_cv_func__ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18131,18137 ---- else echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6 ! echo "configure:18135: checking for _ldexpl declaration" >&5 if test x${glibcpp_cv_func__ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17279,17292 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17290: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpl_use=yes else --- 18146,18159 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _ldexpl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18157: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpl_use=yes else *************** fi *** 17313,17324 **** for ac_func in _ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17317: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18184: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18208,18214 ---- ; return 0; } EOF ! if { (eval echo configure:18212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17371,17377 **** echo $ac_n "checking for logl declaration""... $ac_c" 1>&6 ! echo "configure:17375: checking for logl declaration" >&5 if test x${glibcpp_cv_func_logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18238,18244 ---- echo $ac_n "checking for logl declaration""... $ac_c" 1>&6 ! echo "configure:18242: checking for logl declaration" >&5 if test x${glibcpp_cv_func_logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17386,17392 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18253,18259 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17397,17403 **** logl(0); ; return 0; } EOF ! if { (eval echo configure:17401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logl_use=yes else --- 18264,18270 ---- logl(0); ; return 0; } EOF ! if { (eval echo configure:18268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logl_use=yes else *************** fi *** 17424,17435 **** for ac_func in logl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17428: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18295: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18319,18325 ---- ; return 0; } EOF ! if { (eval echo configure:18323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17479,17485 **** else echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6 ! echo "configure:17483: checking for _logl declaration" >&5 if test x${glibcpp_cv_func__logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18346,18352 ---- else echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6 ! echo "configure:18350: checking for _logl declaration" >&5 if test x${glibcpp_cv_func__logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17494,17500 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18361,18367 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17505,17511 **** _logl(0); ; return 0; } EOF ! if { (eval echo configure:17509: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logl_use=yes else --- 18372,18378 ---- _logl(0); ; return 0; } EOF ! if { (eval echo configure:18376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logl_use=yes else *************** fi *** 17532,17543 **** for ac_func in _logl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17536: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18403: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18427,18433 ---- ; return 0; } EOF ! if { (eval echo configure:18431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17590,17596 **** echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6 ! echo "configure:17594: checking for log10l declaration" >&5 if test x${glibcpp_cv_func_log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18457,18463 ---- echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6 ! echo "configure:18461: checking for log10l declaration" >&5 if test x${glibcpp_cv_func_log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17605,17611 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18472,18478 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17616,17622 **** log10l(0); ; return 0; } EOF ! if { (eval echo configure:17620: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10l_use=yes else --- 18483,18489 ---- log10l(0); ; return 0; } EOF ! if { (eval echo configure:18487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10l_use=yes else *************** fi *** 17643,17654 **** for ac_func in log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17647: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18514: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18538,18544 ---- ; return 0; } EOF ! if { (eval echo configure:18542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17698,17704 **** else echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6 ! echo "configure:17702: checking for _log10l declaration" >&5 if test x${glibcpp_cv_func__log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18565,18571 ---- else echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6 ! echo "configure:18569: checking for _log10l declaration" >&5 if test x${glibcpp_cv_func__log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17713,17719 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 18580,18586 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 17724,17730 **** _log10l(0); ; return 0; } EOF ! if { (eval echo configure:17728: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10l_use=yes else --- 18591,18597 ---- _log10l(0); ; return 0; } EOF ! if { (eval echo configure:18595: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10l_use=yes else *************** fi *** 17751,17762 **** for ac_func in _log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17755: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18622: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18646,18652 ---- ; return 0; } EOF ! if { (eval echo configure:18650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17809,17815 **** echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6 ! echo "configure:17813: checking for modfl declaration" >&5 if test x${glibcpp_cv_func_modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18676,18682 ---- echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6 ! echo "configure:18680: checking for modfl declaration" >&5 if test x${glibcpp_cv_func_modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17824,17837 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modfl_use=yes else --- 18691,18704 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18702: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modfl_use=yes else *************** fi *** 17858,17869 **** for ac_func in modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17862: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18729: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18753,18759 ---- ; return 0; } EOF ! if { (eval echo configure:18757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 17913,17919 **** else echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6 ! echo "configure:17917: checking for _modfl declaration" >&5 if test x${glibcpp_cv_func__modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18780,18786 ---- else echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6 ! echo "configure:18784: checking for _modfl declaration" >&5 if test x${glibcpp_cv_func__modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 17928,17941 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:17939: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modfl_use=yes else --- 18795,18808 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _modfl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18806: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modfl_use=yes else *************** fi *** 17962,17973 **** for ac_func in _modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:17966: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18833: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18857,18863 ---- ; return 0; } EOF ! if { (eval echo configure:18861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18020,18026 **** echo $ac_n "checking for powl declaration""... $ac_c" 1>&6 ! echo "configure:18024: checking for powl declaration" >&5 if test x${glibcpp_cv_func_powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18887,18893 ---- echo $ac_n "checking for powl declaration""... $ac_c" 1>&6 ! echo "configure:18891: checking for powl declaration" >&5 if test x${glibcpp_cv_func_powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18035,18048 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powl_use=yes else --- 18902,18915 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powl_use=yes else *************** fi *** 18069,18080 **** for ac_func in powl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18073: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:18940: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 18964,18970 ---- ; return 0; } EOF ! if { (eval echo configure:18968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18124,18130 **** else echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6 ! echo "configure:18128: checking for _powl declaration" >&5 if test x${glibcpp_cv_func__powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 18991,18997 ---- else echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6 ! echo "configure:18995: checking for _powl declaration" >&5 if test x${glibcpp_cv_func__powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18139,18152 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:18150: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powl_use=yes else --- 19006,19019 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _powl(0, 0); ; return 0; } EOF ! if { (eval echo configure:19017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powl_use=yes else *************** fi *** 18173,18184 **** for ac_func in _powl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18177: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19044: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19068,19074 ---- ; return 0; } EOF ! if { (eval echo configure:19072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18231,18237 **** echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:18235: checking for sqrtl declaration" >&5 if test x${glibcpp_cv_func_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19098,19104 ---- echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19102: checking for sqrtl declaration" >&5 if test x${glibcpp_cv_func_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18246,18252 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19113,19119 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18257,18263 **** sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:18261: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtl_use=yes else --- 19124,19130 ---- sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtl_use=yes else *************** fi *** 18284,18295 **** for ac_func in sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18288: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19155: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19179,19185 ---- ; return 0; } EOF ! if { (eval echo configure:19183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18339,18345 **** else echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:18343: checking for _sqrtl declaration" >&5 if test x${glibcpp_cv_func__sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19206,19212 ---- else echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6 ! echo "configure:19210: checking for _sqrtl declaration" >&5 if test x${glibcpp_cv_func__sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18354,18360 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19221,19227 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18365,18371 **** _sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:18369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtl_use=yes else --- 19232,19238 ---- _sqrtl(0); ; return 0; } EOF ! if { (eval echo configure:19236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtl_use=yes else *************** fi *** 18392,18403 **** for ac_func in _sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18396: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19263: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19287,19293 ---- ; return 0; } EOF ! if { (eval echo configure:19291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18450,18456 **** echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6 ! echo "configure:18454: checking for sincosl declaration" >&5 if test x${glibcpp_cv_func_sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19317,19323 ---- echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19321: checking for sincosl declaration" >&5 if test x${glibcpp_cv_func_sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18465,18478 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:18476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosl_use=yes else --- 19332,19345 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosl_use=yes else *************** fi *** 18499,18510 **** for ac_func in sincosl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18503: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19370: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19394,19400 ---- ; return 0; } EOF ! if { (eval echo configure:19398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18554,18560 **** else echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6 ! echo "configure:18558: checking for _sincosl declaration" >&5 if test x${glibcpp_cv_func__sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19421,19427 ---- else echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6 ! echo "configure:19425: checking for _sincosl declaration" >&5 if test x${glibcpp_cv_func__sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18569,18582 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:18580: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosl_use=yes else --- 19436,19449 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { _sincosl(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:19447: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosl_use=yes else *************** fi *** 18603,18614 **** for ac_func in _sincosl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18607: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19474: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19498,19504 ---- ; return 0; } EOF ! if { (eval echo configure:19502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18661,18667 **** echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6 ! echo "configure:18665: checking for finitel declaration" >&5 if test x${glibcpp_cv_func_finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19528,19534 ---- echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6 ! echo "configure:19532: checking for finitel declaration" >&5 if test x${glibcpp_cv_func_finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18676,18682 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19543,19549 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18687,18693 **** finitel(0); ; return 0; } EOF ! if { (eval echo configure:18691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitel_use=yes else --- 19554,19560 ---- finitel(0); ; return 0; } EOF ! if { (eval echo configure:19558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitel_use=yes else *************** fi *** 18714,18725 **** for ac_func in finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18718: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19585: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19609,19615 ---- ; return 0; } EOF ! if { (eval echo configure:19613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18769,18775 **** else echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6 ! echo "configure:18773: checking for _finitel declaration" >&5 if test x${glibcpp_cv_func__finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 19636,19642 ---- else echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6 ! echo "configure:19640: checking for _finitel declaration" >&5 if test x${glibcpp_cv_func__finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18784,18790 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H --- 19651,19657 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < #ifdef HAVE_IEEEFP_H *************** int main() { *** 18795,18801 **** _finitel(0); ; return 0; } EOF ! if { (eval echo configure:18799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitel_use=yes else --- 19662,19668 ---- _finitel(0); ; return 0; } EOF ! if { (eval echo configure:19666: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitel_use=yes else *************** fi *** 18822,18833 **** for ac_func in _finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18826: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19693: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19717,19723 ---- ; return 0; } EOF ! if { (eval echo configure:19721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18881,18887 **** echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6 ! echo "configure:18885: checking for _float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19748,19754 ---- echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6 ! echo "configure:19752: checking for _float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 18895,18901 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 19762,19768 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 18904,18910 **** _coshf _sinhf _tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:18908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_trig_use=yes else --- 19771,19777 ---- _coshf _sinhf _tanhf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19775: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_trig_use=yes else *************** fi *** 18930,18941 **** _coshf _sinhf _tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:18934: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19801: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19825,19831 ---- ; return 0; } EOF ! if { (eval echo configure:19829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 18986,18992 **** echo $ac_n "checking for _float round functions""... $ac_c" 1>&6 ! echo "configure:18990: checking for _float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19853,19859 ---- echo $ac_n "checking for _float round functions""... $ac_c" 1>&6 ! echo "configure:19857: checking for _float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19000,19013 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceilf _floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_round_use=yes else --- 19867,19880 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceilf _floorf; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19878: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_round_use=yes else *************** fi *** 19031,19042 **** for ac_func in _ceilf _floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19035: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:19902: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 19926,19932 ---- ; return 0; } EOF ! if { (eval echo configure:19930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19088,19094 **** echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6 ! echo "configure:19092: checking for _long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 19955,19961 ---- echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6 ! echo "configure:19959: checking for _long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19102,19108 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { --- 19969,19975 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { *************** int main() { *** 19111,19117 **** _coshl _sinhl _tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_trig_use=yes else --- 19978,19984 ---- _coshl _sinhl _tanhl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_trig_use=yes else *************** fi *** 19137,19148 **** _coshl _sinhl _tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19141: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20008: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20032,20038 ---- ; return 0; } EOF ! if { (eval echo configure:20036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19193,19199 **** echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6 ! echo "configure:19197: checking for _long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 20060,20066 ---- echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6 ! echo "configure:20064: checking for _long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 19207,19220 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceill _floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:19218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_round_use=yes else --- 20074,20087 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { `for x in _ceill _floorl; do echo "$x (0);"; done` ; return 0; } EOF ! if { (eval echo configure:20085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_round_use=yes else *************** fi *** 19238,19249 **** for ac_func in _ceill _floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19242: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20109: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20133,20139 ---- ; return 0; } EOF ! if { (eval echo configure:20137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19298,19304 **** echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:19302: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20165,20171 ---- echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ! echo "configure:20169: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 19306,19319 **** ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 20173,20186 ---- ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 19343,19354 **** for ac_func in nan copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19347: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20214: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20238,20244 ---- ; return 0; } EOF ! if { (eval echo configure:20242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19400,19411 **** for ac_func in __signbit do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19404: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20271: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20295,20301 ---- ; return 0; } EOF ! if { (eval echo configure:20299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19456,19467 **** for ac_func in __signbitf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19460: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20327: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20351,20357 ---- ; return 0; } EOF ! if { (eval echo configure:20355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19514,19525 **** for ac_func in __signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19518: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20385: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20409,20415 ---- ; return 0; } EOF ! if { (eval echo configure:20413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19574,19589 **** echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:19578: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:19587: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else --- 20441,20456 ---- echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ! echo "configure:20445: checking for mbstate_t" >&5 cat > conftest.$ac_ext < int main() { mbstate_t teststate; ; return 0; } EOF ! if { (eval echo configure:20454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else *************** EOF *** 19605,19621 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:19609: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:19619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20472,20488 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20476: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20486: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 19646,19662 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:19650: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:19660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20513,20529 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20517: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20527: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 19689,19704 **** test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:19693: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:19702: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else --- 20556,20571 ---- test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ! echo "configure:20560: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext < int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF ! if { (eval echo configure:20569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else *************** rm -f conftest* *** 19711,19719 **** echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:19715: checking for WEOF" >&5 cat > conftest.$ac_ext < --- 20578,20586 ---- echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ! echo "configure:20582: checking for WEOF" >&5 cat > conftest.$ac_ext < *************** int main() { *** 19722,19728 **** wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:19726: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else --- 20589,20595 ---- wint_t i = WEOF; ; return 0; } EOF ! if { (eval echo configure:20593: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else *************** rm -f conftest* *** 19738,19749 **** for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19742: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20609: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20633,20639 ---- ; return 0; } EOF ! if { (eval echo configure:20637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19801,19812 **** wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19805: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20672: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20696,20702 ---- ; return 0; } EOF ! if { (eval echo configure:20700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 19857,19863 **** echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:19861: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then --- 20724,20730 ---- echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20728: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then *************** echo "configure:19861: checking for ISO *** 19869,19885 **** ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:19873: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:19883: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20736,20752 ---- ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ! echo "configure:20740: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20750: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 19903,19919 **** ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:19907: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:19917: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 20770,20786 ---- ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ! echo "configure:20774: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20784: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** fi *** 19937,19943 **** echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:19941: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20804,20810 ---- echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ! echo "configure:20808: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 19945,19951 **** ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else --- 20823,20829 ---- iconv() ; return 0; } EOF ! if { (eval echo configure:20827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else *************** fi *** 19982,19993 **** for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:19986: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20853: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 20877,20883 ---- ; return 0; } EOF ! if { (eval echo configure:20881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20040,20046 **** LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20044: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then --- 20907,20913 ---- LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ! echo "configure:20911: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then *************** echo "configure:20044: checking for XPG2 *** 20051,20057 **** echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:20055: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF --- 20918,20924 ---- echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ! echo "configure:20922: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF *************** EOF *** 20073,20079 **** echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6 ! echo "configure:20077: checking for strtold declaration" >&5 if test x${glibcpp_cv_func_strtold_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtold_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 20940,20946 ---- echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6 ! echo "configure:20944: checking for strtold declaration" >&5 if test x${glibcpp_cv_func_strtold_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtold_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 20088,20101 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtold(0, 0); ; return 0; } EOF ! if { (eval echo configure:20099: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtold_use=yes else --- 20955,20968 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtold(0, 0); ; return 0; } EOF ! if { (eval echo configure:20966: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtold_use=yes else *************** fi *** 20121,20132 **** for ac_func in strtold do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20125: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:20992: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21016,21022 ---- ; return 0; } EOF ! if { (eval echo configure:21020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20177,20183 **** echo $ac_n "checking for strtof declaration""... $ac_c" 1>&6 ! echo "configure:20181: checking for strtof declaration" >&5 if test x${glibcpp_cv_func_strtof_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtof_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 21044,21050 ---- echo $ac_n "checking for strtof declaration""... $ac_c" 1>&6 ! echo "configure:21048: checking for strtof declaration" >&5 if test x${glibcpp_cv_func_strtof_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtof_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 20192,20205 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtof(0, 0); ; return 0; } EOF ! if { (eval echo configure:20203: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtof_use=yes else --- 21059,21072 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { strtof(0, 0); ; return 0; } EOF ! if { (eval echo configure:21070: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtof_use=yes else *************** fi *** 20225,20236 **** for ac_func in strtof do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20229: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21096: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21120,21126 ---- ; return 0; } EOF ! if { (eval echo configure:21124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20282,20293 **** for ac_func in drand48 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20286: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21153: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21177,21183 ---- ; return 0; } EOF ! if { (eval echo configure:21181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** done *** 20340,20356 **** ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for locale.h""... $ac_c" 1>&6 ! echo "configure:20344: checking for locale.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20354: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21207,21223 ---- ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for locale.h""... $ac_c" 1>&6 ! echo "configure:21211: checking for locale.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21221: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** if eval "test \"`echo '$ac_cv_header_'$a *** 20368,20386 **** echo "$ac_t""yes" 1>&6 echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:20372: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF ! if { (eval echo configure:20384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_val_LC_MESSAGES=yes else --- 21235,21253 ---- echo "$ac_t""yes" 1>&6 echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ! echo "configure:21239: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF ! if { (eval echo configure:21251: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_val_LC_MESSAGES=yes else *************** fi *** 20407,20413 **** cat > conftest.$ac_ext < --- 21274,21280 ---- cat > conftest.$ac_ext < *************** int main() { *** 20416,20422 **** sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1); ; return 0; } EOF ! if { (eval echo configure:20420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 --- 21283,21289 ---- sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1); ; return 0; } EOF ! if { (eval echo configure:21287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 *************** rm -f conftest* *** 20433,20449 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20437: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21300,21316 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21304: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21314: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 20472,20483 **** for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20476: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21343: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21367,21373 ---- ; return 0; } EOF ! if { (eval echo configure:21371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** fi *** 20525,20531 **** done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 ! echo "configure:20529: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 21392,21398 ---- done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 ! echo "configure:21396: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** else *** 20533,20539 **** ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else --- 21540,21546 ---- } EOF ! if { (eval echo configure:21544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else *************** fi *** 20704,20720 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:20708: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:20718: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 21571,21587 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:21575: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:21585: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** done *** 20747,20753 **** # Can't do these in a loop, else the resulting syntax is wrong. cat > conftest.$ac_ext < #include --- 21614,21620 ---- # Can't do these in a loop, else the resulting syntax is wrong. cat > conftest.$ac_ext < #include *************** int main() { *** 20756,20762 **** int f = RLIMIT_DATA ; ; return 0; } EOF ! if { (eval echo configure:20760: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21623,21629 ---- int f = RLIMIT_DATA ; ; return 0; } EOF ! if { (eval echo configure:21627: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 20773,20779 **** cat > conftest.$ac_ext < #include --- 21640,21646 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 20782,20788 **** int f = RLIMIT_RSS ; ; return 0; } EOF ! if { (eval echo configure:20786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21649,21655 ---- int f = RLIMIT_RSS ; ; return 0; } EOF ! if { (eval echo configure:21653: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 20799,20805 **** cat > conftest.$ac_ext < #include --- 21666,21672 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 20808,20814 **** int f = RLIMIT_VMEM ; ; return 0; } EOF ! if { (eval echo configure:20812: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21675,21681 ---- int f = RLIMIT_VMEM ; ; return 0; } EOF ! if { (eval echo configure:21679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 20825,20831 **** cat > conftest.$ac_ext < #include --- 21692,21698 ---- cat > conftest.$ac_ext < #include *************** int main() { *** 20834,20840 **** int f = RLIMIT_AS ; ; return 0; } EOF ! if { (eval echo configure:20838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else --- 21701,21707 ---- int f = RLIMIT_AS ; ; return 0; } EOF ! if { (eval echo configure:21705: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_mresult=1 else *************** EOF *** 20856,20862 **** else cat > conftest.$ac_ext < #include --- 21723,21729 ---- else cat > conftest.$ac_ext < #include *************** int main() { *** 20865,20871 **** struct rlimit r; setrlimit(0, &r); ; return 0; } EOF ! if { (eval echo configure:20869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_setrlimit=yes else --- 21732,21738 ---- struct rlimit r; setrlimit(0, &r); ; return 0; } EOF ! if { (eval echo configure:21736: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_setrlimit=yes else *************** fi *** 20881,20887 **** fi echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6 ! echo "configure:20885: checking for testsuite memory limit support" >&5 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then ac_mem_limits=yes cat >> confdefs.h <<\EOF --- 21748,21754 ---- fi echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6 ! echo "configure:21752: checking for testsuite memory limit support" >&5 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then ac_mem_limits=yes cat >> confdefs.h <<\EOF *************** EOF *** 20897,20903 **** # Look for setenv, so that extended locale tests can be performed. echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6 ! echo "configure:20901: checking for setenv declaration" >&5 if test x${glibcpp_cv_func_setenv_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_setenv_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 21764,21770 ---- # Look for setenv, so that extended locale tests can be performed. echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6 ! echo "configure:21768: checking for setenv declaration" >&5 if test x${glibcpp_cv_func_setenv_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_setenv_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** ac_link='${CXX-g++} -o conftest${ac_exee *** 20912,20925 **** cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { setenv(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:20923: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_setenv_use=yes else --- 21779,21792 ---- cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { setenv(0, 0, 0); ; return 0; } EOF ! if { (eval echo configure:21790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_setenv_use=yes else *************** fi *** 20945,20956 **** for ac_func in setenv do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:20949: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:21816: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 21840,21846 ---- ; return 0; } EOF ! if { (eval echo configure:21844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** fi *** 21021,21045 **** # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test x$LD = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi # Check to see if libgcc_s exists, indicating that shared libgcc is possible. echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6 ! echo "configure:21032: checking for shared libgcc" >&5 ac_save_CFLAGS="$CFLAGS" CFLAGS=' -lgcc_s' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_shared_libgcc=yes else --- 21888,21912 ---- # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... if test x$enable_shared = xno || ! test "x$LD" = x || test x$glibcpp_gnu_ld_version = x; then enable_symvers=no fi # Check to see if libgcc_s exists, indicating that shared libgcc is possible. echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6 ! echo "configure:21899: checking for shared libgcc" >&5 ac_save_CFLAGS="$CFLAGS" CFLAGS=' -lgcc_s' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_shared_libgcc=yes else *************** if test $enable_symvers = yes ; then *** 21073,21086 **** echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* enable_symvers=gnu else --- 21940,21953 ---- echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* enable_symvers=gnu else *************** else *** 21122,21128 **** GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE= fi echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6 ! echo "configure:21126: checking versioning on shared library symbols" >&5 echo "$ac_t""$enable_symvers" 1>&6 --- 21989,21995 ---- GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE= fi echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6 ! echo "configure:21993: checking versioning on shared library symbols" >&5 echo "$ac_t""$enable_symvers" 1>&6 *************** else *** 21200,21208 **** multilib_arg= fi - # Needed so that g++ can find the correct include subdir automatically. - INTERFACE=v3 - # Export all the install information # Assumes glibcpp_builddir, glibcpp_srcdir are alreay set up and --- 22067,22072 ---- *************** glibcpp_toolexecdir=no *** 21211,21224 **** glibcpp_toolexeclibdir=no glibcpp_prefixdir=${prefix} - echo $ac_n "checking for interface version number""... $ac_c" 1>&6 - echo "configure:21216: checking for interface version number" >&5 - libstdcxx_interface=$INTERFACE - echo "$ac_t""$libstdcxx_interface" 1>&6 - # Process the option --with-gxx-include-dir= echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6 ! echo "configure:21222: checking for --with-gxx-include-dir" >&5 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. if test "${with_gxx_include_dir+set}" = set; then withval="$with_gxx_include_dir" --- 22075,22083 ---- glibcpp_toolexeclibdir=no glibcpp_prefixdir=${prefix} # Process the option --with-gxx-include-dir= echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6 ! echo "configure:22081: checking for --with-gxx-include-dir" >&5 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. if test "${with_gxx_include_dir+set}" = set; then withval="$with_gxx_include_dir" *************** echo "$ac_t""$gxx_include_dir" 1>&6 *** 21242,21248 **** # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:21246: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" --- 22101,22107 ---- # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 ! echo "configure:22105: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" *************** fi *** 21257,21280 **** # Option set, now we can test it. echo "$ac_t""$version_specific_libs" 1>&6 if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. - gcc_version_trigger=${srcdir}/../gcc/version.c - gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^\"]*\)\".*/\1/'` - gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'` if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/g++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' - fi - - # Default case for install directory for include files. - if test $version_specific_libs = no && - test $gxx_include_dir = no; then - gxx_include_dir='$(prefix)'/include/g++-${libstdcxx_interface} fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir --- 22116,22136 ---- # Option set, now we can test it. echo "$ac_t""$version_specific_libs" 1>&6 + # Default case for install directory for include files. + if test $version_specific_libs = no && test $gxx_include_dir = no; then + gxx_include_dir='$(prefix)'/include/c++/${gcc_version} + fi + + # Version-specific runtime libs processing. if test $version_specific_libs = yes; then # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. if test x"$gxx_include_dir" = x"no"; then ! gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/c++ fi glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' fi # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir *************** if test x"$glibcpp_toolexecdir" = x"no"; *** 21291,21297 **** fi echo $ac_n "checking for install location""... $ac_c" 1>&6 ! echo "configure:21295: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 --- 22147,22153 ---- fi echo $ac_n "checking for install location""... $ac_c" 1>&6 ! echo "configure:22151: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 *************** s%@oldincludedir@%$oldincludedir%g *** 21487,21494 **** s%@infodir@%$infodir%g s%@mandir@%$mandir%g s%@PACKAGE@%$PACKAGE%g - s%@release_VERSION@%$release_VERSION%g s%@libtool_VERSION@%$libtool_VERSION%g s%@host@%$host%g s%@host_alias@%$host_alias%g s%@host_cpu@%$host_cpu%g --- 22343,22350 ---- s%@infodir@%$infodir%g s%@mandir@%$mandir%g s%@PACKAGE@%$PACKAGE%g s%@libtool_VERSION@%$libtool_VERSION%g + s%@toplevel_srcdir@%$toplevel_srcdir%g s%@host@%$host%g s%@host_alias@%$host_alias%g s%@host_cpu@%$host_cpu%g *************** s%@build_alias@%$build_alias%g *** 21504,21520 **** s%@build_cpu@%$build_cpu%g s%@build_vendor@%$build_vendor%g s%@build_os@%$build_os%g - s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g - s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g - s%@INSTALL_DATA@%$INSTALL_DATA%g - s%@VERSION@%$VERSION%g - s%@ACLOCAL@%$ACLOCAL%g - s%@AUTOCONF@%$AUTOCONF%g - s%@AUTOMAKE@%$AUTOMAKE%g - s%@AUTOHEADER@%$AUTOHEADER%g - s%@MAKEINFO@%$MAKEINFO%g - s%@SET_MAKE@%$SET_MAKE%g - s%@toplevel_srcdir@%$toplevel_srcdir%g s%@glibcpp_builddir@%$glibcpp_builddir%g s%@glibcpp_srcdir@%$glibcpp_srcdir%g s%@AWK@%$AWK%g --- 22360,22365 ---- *************** s%@glibcpp_CXX@%$glibcpp_CXX%g *** 21525,21534 **** --- 22370,22389 ---- s%@AS@%$AS%g s%@AR@%$AR%g s%@RANLIB@%$RANLIB%g + s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g + s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g + s%@INSTALL_DATA@%$INSTALL_DATA%g s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g s%@MAINT@%$MAINT%g s%@EXEEXT@%$EXEEXT%g + s%@VERSION@%$VERSION%g + s%@ACLOCAL@%$ACLOCAL%g + s%@AUTOCONF@%$AUTOCONF%g + s%@AUTOMAKE@%$AUTOMAKE%g + s%@AUTOHEADER@%$AUTOHEADER%g + s%@MAKEINFO@%$MAKEINFO%g + s%@SET_MAKE@%$SET_MAKE%g s%@OBJEXT@%$OBJEXT%g s%@STRIP@%$STRIP%g s%@LIBTOOL@%$LIBTOOL%g *************** s%@USE_NLS@%$USE_NLS%g *** 21556,21567 **** s%@CLOCALE_H@%$CLOCALE_H%g s%@CCODECVT_H@%$CCODECVT_H%g s%@CMESSAGES_H@%$CMESSAGES_H%g - s%@CSHADOW_FLAGS@%$CSHADOW_FLAGS%g s%@C_INCLUDE_DIR@%$C_INCLUDE_DIR%g s%@GLIBCPP_C_HEADERS_C_TRUE@%$GLIBCPP_C_HEADERS_C_TRUE%g s%@GLIBCPP_C_HEADERS_C_FALSE@%$GLIBCPP_C_HEADERS_C_FALSE%g s%@GLIBCPP_C_HEADERS_C_STD_TRUE@%$GLIBCPP_C_HEADERS_C_STD_TRUE%g s%@GLIBCPP_C_HEADERS_C_STD_FALSE@%$GLIBCPP_C_HEADERS_C_STD_FALSE%g s%@glibcpp_thread_h@%$glibcpp_thread_h%g s%@EXTRA_CXX_FLAGS@%$EXTRA_CXX_FLAGS%g s%@LIBUNWIND_FLAG@%$LIBUNWIND_FLAG%g --- 22411,22423 ---- s%@CLOCALE_H@%$CLOCALE_H%g s%@CCODECVT_H@%$CCODECVT_H%g s%@CMESSAGES_H@%$CMESSAGES_H%g s%@C_INCLUDE_DIR@%$C_INCLUDE_DIR%g s%@GLIBCPP_C_HEADERS_C_TRUE@%$GLIBCPP_C_HEADERS_C_TRUE%g s%@GLIBCPP_C_HEADERS_C_FALSE@%$GLIBCPP_C_HEADERS_C_FALSE%g s%@GLIBCPP_C_HEADERS_C_STD_TRUE@%$GLIBCPP_C_HEADERS_C_STD_TRUE%g s%@GLIBCPP_C_HEADERS_C_STD_FALSE@%$GLIBCPP_C_HEADERS_C_STD_FALSE%g + s%@GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@%$GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE%g + s%@GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE@%$GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE%g s%@glibcpp_thread_h@%$glibcpp_thread_h%g s%@EXTRA_CXX_FLAGS@%$EXTRA_CXX_FLAGS%g s%@LIBUNWIND_FLAG@%$LIBUNWIND_FLAG%g *************** if test ! -f stamp-sanity-warned; then *** 21890,21900 **** touch stamp-sanity-warned echo "" echo "Please make certain that you read the installation information here:" ! echo " faster => ${srcdir}/docs/install.html" echo " slower => " echo "" echo "and the configuration information here:" ! echo " faster => ${srcdir}/docs/configopts.html" echo " slower => " echo "" echo "before proceeding with ${_cv_gnu_make_command}." --- 22746,22756 ---- touch stamp-sanity-warned echo "" echo "Please make certain that you read the installation information here:" ! echo " faster => ${srcdir}/docs/html/install.html" echo " slower => " echo "" echo "and the configuration information here:" ! echo " faster => ${srcdir}/docs/html/configopts.html" echo " slower => " echo "" echo "before proceeding with ${_cv_gnu_make_command}." diff -Nrc3pad gcc-3.1/libstdc++-v3/configure.in gcc-3.1.1/libstdc++-v3/configure.in *** gcc-3.1/libstdc++-v3/configure.in Wed May 8 04:27:59 2002 --- gcc-3.1.1/libstdc++-v3/configure.in Wed Jul 3 22:47:34 2002 *************** ORIGINAL_LD_FOR_MULTILIBS=$LD *** 12,24 **** PACKAGE=libstdc++ AC_SUBST(PACKAGE) - # For typical GNU versioning info, format is MAJOR.MINOR.MICRO - release_VERSION=3.1.0 - AC_SUBST(release_VERSION) # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=4:0:0 AC_SUBST(libtool_VERSION) # Gets build, host, target, *_vendor, *_cpu, *_os, etc. # AC 2.5x sets target_alias iff the user specified --target, but we use it # everywhere, so we set it here just to be sure. In AC 2.13 --- 12,23 ---- PACKAGE=libstdc++ AC_SUBST(PACKAGE) # For libtool versioning info, format is CURRENT:REVISION:AGE ! libtool_VERSION=4:1:0 AC_SUBST(libtool_VERSION) + GLIBCPP_TOPREL_CONFIGURE + # Gets build, host, target, *_vendor, *_cpu, *_os, etc. # AC 2.5x sets target_alias iff the user specified --target, but we use it # everywhere, so we set it here just to be sure. In AC 2.13 *************** AC_CANONICAL_SYSTEM *** 27,40 **** target_alias=${target_alias-$target} AC_SUBST(target_alias) - AM_INIT_AUTOMAKE($PACKAGE, $release_VERSION) - AM_CONFIG_HEADER(config.h) - # Runs configure.host and configure.target, as well as finds CC, CXX # and assorted other critical bits. Have to run this before the # GLIBCPP_ENABLE_* macros below. GLIBCPP_CONFIGURE(.) AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL AC_SUBST(enable_shared) --- 26,39 ---- target_alias=${target_alias-$target} AC_SUBST(target_alias) # Runs configure.host and configure.target, as well as finds CC, CXX # and assorted other critical bits. Have to run this before the # GLIBCPP_ENABLE_* macros below. GLIBCPP_CONFIGURE(.) + AM_INIT_AUTOMAKE($PACKAGE, $gcc_version) + AM_CONFIG_HEADER(config.h) + AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL AC_SUBST(enable_shared) *************** GLIBCPP_ENABLE_CLOCALE *** 51,63 **** GLIBCPP_ENABLE_C_MBCHAR([yes]) GLIBCPP_ENABLE_C99([yes]) GLIBCPP_ENABLE_LONG_LONG([yes]) ! GLIBCPP_ENABLE_CHEADERS([c_std]) GLIBCPP_ENABLE_THREADS GLIBCPP_ENABLE_CXX_FLAGS([none]) GLIBCPP_ENABLE_SJLJ_EXCEPTIONS GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS GLIBCPP_ENABLE_CONCEPT_CHECKS if test -n "$with_cross_host" || test x"$build" != x"$host"; then --- 50,64 ---- GLIBCPP_ENABLE_C_MBCHAR([yes]) GLIBCPP_ENABLE_C99([yes]) GLIBCPP_ENABLE_LONG_LONG([yes]) ! GLIBCPP_ENABLE_CHEADERS([$c_model]) GLIBCPP_ENABLE_THREADS GLIBCPP_ENABLE_CXX_FLAGS([none]) GLIBCPP_ENABLE_SJLJ_EXCEPTIONS GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS GLIBCPP_ENABLE_CONCEPT_CHECKS + # Check for headers necessary for libsupc++ using dyn-string.c/cxa_demangle.c + AC_CHECK_HEADERS(string.h stdlib.h) if test -n "$with_cross_host" || test x"$build" != x"$host"; then *************** if test -n "$with_cross_host" || test x" *** 156,161 **** --- 157,184 ---- GLIBCPP_CHECK_WCHAR_T_SUPPORT os_include_dir="config/os/mingw32" ;; + changequote(,)dnl + *-qnx6.[12]*) + changequote([,])dnl + SECTION_FLAGS='-ffunction-sections -fdata-sections' + AC_SUBST(SECTION_FLAGS) + GLIBCPP_CHECK_LINKER_FEATURES + GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT + GLIBCPP_CHECK_WCHAR_T_SUPPORT + os_include_dir="config/os/qnx/qnx6.1" + AC_DEFINE(HAVE_COSF) + AC_DEFINE(HAVE_COSL) + AC_DEFINE(HAVE_COSHF) + AC_DEFINE(HAVE_COSHL) + AC_DEFINE(HAVE_LOGF) + AC_DEFINE(HAVE_LOGL) + AC_DEFINE(HAVE_LOG10F) + AC_DEFINE(HAVE_LOG10L) + AC_DEFINE(HAVE_SINF) + AC_DEFINE(HAVE_SINL) + AC_DEFINE(HAVE_SINHF) + AC_DEFINE(HAVE_SINHL) + ;; *) os_include_dir="config/os/newlib" AC_DEFINE(HAVE_HYPOT) *************** else *** 247,253 **** # Check for available headers. AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \ ! machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h]) GLIBCPP_CHECK_COMPILER_FEATURES GLIBCPP_CHECK_LINKER_FEATURES --- 270,276 ---- # Check for available headers. AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \ ! machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h sys/types.h]) GLIBCPP_CHECK_COMPILER_FEATURES GLIBCPP_CHECK_LINKER_FEATURES *************** else *** 293,301 **** multilib_arg= fi - # Needed so that g++ can find the correct include subdir automatically. - INTERFACE=v3 - # Export all the install information GLIBCPP_EXPORT_INSTALL_INFO --- 316,321 ---- *************** if test ! -f stamp-sanity-warned; then *** 379,389 **** touch stamp-sanity-warned echo "" echo "Please make certain that you read the installation information here:" ! echo " faster => ${srcdir}/docs/install.html" echo " slower => " echo "" echo "and the configuration information here:" ! echo " faster => ${srcdir}/docs/configopts.html" echo " slower => " echo "" echo "before proceeding with ${_cv_gnu_make_command}." --- 399,409 ---- touch stamp-sanity-warned echo "" echo "Please make certain that you read the installation information here:" ! echo " faster => ${srcdir}/docs/html/install.html" echo " slower => " echo "" echo "and the configuration information here:" ! echo " faster => ${srcdir}/docs/html/configopts.html" echo " slower => " echo "" echo "before proceeding with ${_cv_gnu_make_command}." diff -Nrc3pad gcc-3.1/libstdc++-v3/configure.target gcc-3.1.1/libstdc++-v3/configure.target *** gcc-3.1/libstdc++-v3/configure.target Tue Apr 23 20:32:10 2002 --- gcc-3.1.1/libstdc++-v3/configure.target Fri Jun 28 08:22:31 2002 *************** *** 16,25 **** # It possibly modifies the following shell variables: # cpu_include_dir CPU-specific include directory, relative to srcdir # os_include_dir OS-specific include directory, relative to srcdir ! # Set any CPU dependent compiler flags. # THIS TABLE IS SORTED. KEEP IT THAT WAY. case "${target_cpu}" in alpha*) --- 16,36 ---- # It possibly modifies the following shell variables: # cpu_include_dir CPU-specific include directory, relative to srcdir + # # os_include_dir OS-specific include directory, relative to srcdir + # + # c_model the model to use for "C" headers, defaults to c_std. + # + # c_compatibility if "C" compatibility headers are necessary, + # defaults to no. + # DEFAULTS + c_model=c_std + c_compatibility=no ! ! # TARGET-SPECIFIC OVERRIDES ! # Set any CPU-dependent bits. # THIS TABLE IS SORTED. KEEP IT THAT WAY. case "${target_cpu}" in alpha*) *************** case "${target_os}" in *** 108,113 **** --- 119,128 ---- hpux*) os_include_dir="config/os/hpux" ;; + qnx6.[12]*) + os_include_dir="config/os/qnx/qnx6.1" + c_model=c + ;; *) os_include_dir="config/os/generic" ;; *************** case "${target}" in *** 170,176 **** mmix-*-*) CPULIMITSH=config/cpu/mmix ;; ! powerpc-*-*) CPULIMITSH=config/cpu/powerpc ;; s390-*-* | s390x-*-*) --- 185,191 ---- mmix-*-*) CPULIMITSH=config/cpu/mmix ;; ! powerpc-*-* | rs6000-*-*) CPULIMITSH=config/cpu/powerpc ;; s390-*-* | s390x-*-*) diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/doxygen/TODO gcc-3.1.1/libstdc++-v3/docs/doxygen/TODO *** gcc-3.1/libstdc++-v3/docs/doxygen/TODO Wed Mar 27 22:38:36 2002 --- gcc-3.1.1/libstdc++-v3/docs/doxygen/TODO Sat Jul 20 06:34:50 2002 *************** c19 Note A *** 24,30 **** c20 Note A c21 Untouched, Note B c22 Untouched ! c23 See doxygroups.cc and Note B. c24 stl_iterator.h (__normal_iterator, other small TODO bits) stream iterators c25 stl_algo.h (lots of stuff) --- 24,32 ---- c20 Note A c21 Untouched, Note B c22 Untouched ! c23 See doxygroups.cc and Note B. Notes on what invalidates ! iterators need to be added. std::list-specific memfns need ! to be filled out. c24 stl_iterator.h (__normal_iterator, other small TODO bits) stream iterators c25 stl_algo.h (lots of stuff) diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/doxygen/run_doxygen gcc-3.1.1/libstdc++-v3/docs/doxygen/run_doxygen *** gcc-3.1/libstdc++-v3/docs/doxygen/run_doxygen Thu Apr 18 01:45:44 2002 --- gcc-3.1.1/libstdc++-v3/docs/doxygen/run_doxygen Sat Jul 20 06:34:50 2002 *************** set -e *** 150,162 **** set +e test $do_html = yes && { ! sed -e "s=@LEVEL@=${LEVELtext}=" \ ! -e "s=@DATE@=${DATEtext}=" \ ! ${srcdir}/docs/doxygen/mainpage.html > ${outdir}/html_${mode}/index.html ! cp ${srcdir}/docs/doxygen/tables.html ${outdir}/html_${mode}/tables.html ! echo :: ! echo :: HTML pages begin with ! echo :: ${outdir}/html_${mode}/index.html } # Mess with the man pages. We don't need documentation of the internal --- 150,165 ---- set +e test $do_html = yes && { ! sed -e "s=@LEVEL@=${LEVELtext}=" \ ! -e "s=@DATE@=${DATEtext}=" \ ! ${srcdir}/docs/doxygen/mainpage.html > ${outdir}/html_${mode}/index.html ! cd ${outdir}/html_${mode} ! sed -e 's=\(::[[:alnum:]_]*\)< .* >=\1=' annotated.html > annstrip.html ! mv annstrip.html annotated.html ! cp ${srcdir}/docs/doxygen/tables.html tables.html ! echo :: ! echo :: HTML pages begin with ! echo :: ${outdir}/html_${mode}/index.html } # Mess with the man pages. We don't need documentation of the internal diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/doxygen/tables.html gcc-3.1.1/libstdc++-v3/docs/doxygen/tables.html *** gcc-3.1/libstdc++-v3/docs/doxygen/tables.html Wed Mar 27 22:38:36 2002 --- gcc-3.1.1/libstdc++-v3/docs/doxygen/tables.html Sat Jul 20 06:34:50 2002 *************** rendering is ugly. (Update: mozilla 0. *** 39,52 ****

! --- 39,53 ----

Table 65 --- Container Requirements

Anything calling itself a container must meet these minimum requirements.
expression result type notes, pre-/post-conditions, assertions complexity
! + *************** Anything calling itself a container must *** 54,59 **** --- 55,61 ---- + *************** Anything calling itself a container must *** 62,67 **** --- 64,70 ---- + *************** Anything calling itself a container must *** 69,80 **** --- 72,85 ---- + + *************** Anything calling itself a container must *** 83,88 **** --- 88,94 ---- + *************** Anything calling itself a container must *** 90,95 **** --- 96,102 ---- + *************** Anything calling itself a container must *** 97,102 **** --- 104,110 ---- + *************** Anything calling itself a container must *** 104,109 **** --- 112,118 ---- + *************** Anything calling itself a container must *** 111,116 **** --- 120,126 ---- + *************** Anything calling itself a container must *** 118,123 **** --- 128,134 ---- + *************** Anything calling itself a container must *** 125,130 **** --- 136,142 ---- + *************** Anything calling itself a container must *** 132,137 **** --- 144,150 ---- + *************** Anything calling itself a container must *** 140,145 **** --- 153,159 ---- + *************** Anything calling itself a container must *** 147,158 **** --- 161,174 ---- + + *************** Anything calling itself a container must *** 161,166 **** --- 177,183 ---- + *************** Anything calling itself a container must *** 168,173 **** --- 185,191 ---- + *************** Anything calling itself a container must *** 175,180 **** --- 193,199 ---- + *************** Anything calling itself a container must *** 184,190 **** ! --- 203,209 ---- ! *************** Anything calling itself a container must *** 192,198 **** ! --- 211,217 ---- ! *************** Anything calling itself a container must *** 200,206 **** ! --- 219,225 ---- ! *************** Anything calling itself a container must *** 208,214 **** ! --- 227,233 ---- ! *************** Anything calling itself a container must *** 216,222 **** ! --- 235,241 ---- ! *************** Anything calling itself a container must *** 224,230 **** ! --- 243,249 ---- ! *************** Anything calling itself a container must *** 232,238 **** ! --- 251,257 ---- ! diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/doxygen/user.cfg.in gcc-3.1.1/libstdc++-v3/docs/doxygen/user.cfg.in *** gcc-3.1/libstdc++-v3/docs/doxygen/user.cfg.in Thu Apr 18 01:45:44 2002 --- gcc-3.1.1/libstdc++-v3/docs/doxygen/user.cfg.in Sat Jul 20 06:34:50 2002 *************** INLINE_INFO = YES *** 183,189 **** # alphabetically by member name. If set to NO the members will appear in # declaration order. ! SORT_MEMBER_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first --- 183,189 ---- # alphabetically by member name. If set to NO the members will appear in # declaration order. ! SORT_MEMBER_DOCS = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first *************** RECURSIVE = YES *** 323,329 **** # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. ! EXCLUDE = Makefile # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude --- 323,329 ---- # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. ! EXCLUDE = Makefile CVS # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude *************** ENABLE_PREPROCESSING = YES *** 669,681 **** # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. ! MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. ! EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. --- 669,681 ---- # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. ! MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. ! EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. *************** INCLUDE_FILE_PATTERNS = *** 701,710 **** # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. ! PREDEFINED = _GLIBCPP_DEPRECATED # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then ! # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. --- 701,719 ---- # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. ! ### The deprecated functions are clearly marked as such in the code, but ! ### the DEPRECATED macro must be defined for that code to be seen by doxygen. ! ### The class_requires macros are kludges because SKIP_FUNCTION_MACROS is ! ### completely broken, and the presence of the macros confuses the parser. ! ! PREDEFINED = _GLIBCPP_DEPRECATED \ ! __glibcpp_class_requires="//" \ ! __glibcpp_class_requires2="//" \ ! __glibcpp_class_requires3="//" \ ! __glibcpp_class_requires4="//" # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then ! # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES gcc-3.1.1/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES *** gcc-3.1/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES Tue Mar 5 21:22:15 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES Sat May 18 14:47:57 2002 *************** *** 1,4 **** ! 2002-03-05 Release Notes ------------- --- 1,4 ---- ! 2002-05-02 Release Notes ------------- *************** The Standard C++ Library, or libstdc++-v *** 6,12 **** to fully implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D. ! This is the fourteenth snapshot of the libstdc++ rewrite. It still has some incomplet and incorrekt parts, but it's a lot less incomplete and incorrect than some of the earlier snapshots, and quite usable. --- 6,12 ---- to fully implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D. ! This is the fifteenth snapshot of the libstdc++ rewrite. It still has some incomplet and incorrekt parts, but it's a lot less incomplete and incorrect than some of the earlier snapshots, and quite usable. *************** URL: *** 22,38 **** New: --- ! - more doxygen documentation. ! - more named locale bug fixes ! - support for symbol versioning when using GNU ld >= 2.12 ! - wide-io ! - tuning for executable size Bugs fixed: ----------- ! 5816, 3955, 3983, 5708, 5697, 5286, 3860, 5579 ! AIX linkage and threading fixes. + others. --- 22,39 ---- New: --- ! - more doxygen documentation ! - more named locale fixups ! - stdio_filebuf that takes fd, FILE ! - io performance tuning ! - allocation tuning, valgrind fixups ! - __cxa_demangle now supported Bugs fixed: ----------- ! 6533, 6513, 6501, 6511, 5820, 6414, 4150, 6360, 4164, 1072, 6124, ! 5180, 3457, 3139, 5268, 3983, 5542, 3129, 5207, 3719, 5734 + others. diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/17_intro/porting.html gcc-3.1.1/libstdc++-v3/docs/html/17_intro/porting.html *** gcc-3.1/libstdc++-v3/docs/html/17_intro/porting.html Fri Nov 23 16:29:00 2001 --- gcc-3.1.1/libstdc++-v3/docs/html/17_intro/porting.html Sat Jul 20 06:34:50 2002 *************** *** 3,26 **** Porting libstdc++-v3 ! ! -


Node:
Top, ! Next:
!

Porting libstdc++-v3

This document explains how to port libstdc++-v3 (the GNU C++ library) to a new target.

In order to make the GNU C++ library (libstdc++-v3) work with a new target, you must edit some configuration files and provide some new ! header files.

Before you get started, make sure that you have a working C library on your target. The C library need not precisely comply with any --- 3,29 ---- Porting libstdc++-v3 ! ! +

Porting libstdc++-v3


Node:Top, ! Next:, ! Up:(dir)
!

Porting libstdc++-v3

This document explains how to port libstdc++-v3 (the GNU C++ library) to a new target.

In order to make the GNU C++ library (libstdc++-v3) work with a new target, you must edit some configuration files and provide some new ! header files. Unless this is done, libstdc++-v3 will use generic ! settings which may not be correct for your target; even if they are ! correct, they will likely be inefficient.

Before you get started, make sure that you have a working C library on your target. The C library need not precisely comply with any *************** library, but you should at least try som *** 34,57 ****

Here are the primary steps required to port the library:


Node:Operating system, ! Next:, ! Previous:Top, ! Up:Top
!

Operating system

!

If you are porting to a new operating-system (as opposed to a new chip using an existing operating system), you will need to create a new directory in the config/os hierarchy. For example, the IRIX configuration files are all in config/os/irix. There is no set --- 37,61 ----

Here are the primary steps required to port the library:


Node:Operating system, ! Next:, ! Previous:Top, ! Up:Top
!

Operating system

!

If you are porting to a new operating system (as opposed to a new chip using an existing operating system), you will need to create a new directory in the config/os hierarchy. For example, the IRIX configuration files are all in config/os/irix. There is no set *************** standard target triplet; e.g., the sparc-sun-solaris2.8.

The first file to create in this directory, should be called ! bits/os_defines.h. This file contains basic macro definitions that are required to allow the C++ library to work with your C library. This file should provide macro definitions for __off_t, __off64_t, and __ssize_t. Typically, this just looks like: !

#define __off_t off_t
  #define __off64_t off64_t
  #define __ssize_t ssize_t
  
--- 76,88 ---- sparc-sun-solaris2.8.

The first file to create in this directory, should be called ! os_defines.h. This file contains basic macro definitions that are required to allow the C++ library to work with your C library. This file should provide macro definitions for __off_t, __off64_t, and __ssize_t. Typically, this just looks like: !

#define __off_t off_t
  #define __off64_t off64_t
  #define __ssize_t ssize_t
  
*************** need to define. You will need to add th *** 105,167 **** target. It will not work to simply define these macros in os_defines.h. !

At this time, there are two libstdc++-v3-specific macros which may be defined. _G_USING_THUNKS may be defined to 0 to express that the port doesn't use thunks (although it is unclear that this is still useful since libio support isn't currently working and the g++ v3 ABI ! invalidates the assumption that some ports don't use thunks). ! _GLIBCPP_AVOID_FSEEK may be defined if seeking on an interactive ! stream (or one hooked to a pipe) is not allowed by the OS. In this ! case, getc()/ungetc() will be used at some key locations in the library ! implementation instead of fseek(). Currently, the code path to avoid ! fseek() is only enabled when the seek size is 1 character away from the ! current stream position. This is known to improve *-unknown-freebsd*, ! sparc-sun-solaris2.* and *-*-mingw32*.

Finally, you should bracket the entire file in an include-guard, like this: !

#ifndef _GLIBCPP_OS_DEFINES
  #define _GLIBCPP_OS_DEFINES
  ...
  #endif
  
!

We recommend copying an existing bits/os_defines.h to use as a starting point.


Node:Character types, ! Next:, ! Previous:Operating system, ! Up:Top
!

Character types

The library requires that you provide three header files to implement character classification, analogous to that provided by the C libraries <ctype.h> header. You can model these on the files provided in ! config/os/generic/bits. However, these files will almost certainly need some modification. !

The first file to write is bits/ctype_base.h. This file provides some very basic information about character classification. The libstdc++-v3 library assumes that your C library implements <ctype.h> by using a table (indexed by character code) containing integers, where each of these integers is a bit-mask indicating whether the character is ! upper-case, lower-case, alphabetic, etc. The bits/ctype_base.h file gives the type of the integer, and the values of the various bit masks. You will have to peer at your own <ctype.h> to figure out how to define the values required by this file. !

The bits/ctype_base.h header file does not need include guards. It should contain a single struct definition called ctype_base. This struct should contain two type declarations, and one enumeration declaration, like this example, taken from the IRIX configuration: !

struct ctype_base
  {
    typedef unsigned int 	mask;
    typedef int* 		__to_type;
--- 109,195 ----
  target.  It will not work to simply define these macros in
  os_defines.h.
  
! 

At this time, there is one libstdc++-v3-specific macro which may be defined. _G_USING_THUNKS may be defined to 0 to express that the port doesn't use thunks (although it is unclear that this is still useful since libio support isn't currently working and the g++ v3 ABI ! invalidates the assumption that some ports don't use thunks).

Finally, you should bracket the entire file in an include-guard, like this: !

#ifndef _GLIBCPP_OS_DEFINES
  #define _GLIBCPP_OS_DEFINES
  ...
  #endif
  
!

We recommend copying an existing os_defines.h to use as a starting point.


+ Node:CPU, + Next:, + Previous:Operating system, + Up:Top +
+ +

CPU

+ +

If you are porting to a new chip (as opposed to a new operating system + running on an existing chip), you will need to create a new directory in the + config/cpu hierarchy. Much like the Operating system setup, + there are no strict rules on how to organize the CPU configuration + directory, but careful naming choices will allow the configury to find your + setup files without explicit help. + +

We recommend that for a target triplet <CPU>-<vendor>-<OS>, you + name your configuration directory config/cpu/<CPU>. If you do this, + the configury will find the directory itself. Otherwise you will need to + edit the configure.target file and, in the switch statement that sets + cpu_include_dir, add a pattern to handle your chip. + +

Note that some chip families share a single configuration directory, for + example, alpha, alphaev5, and alphaev6 all use the + config/cpu/alpha directory, and there is an entry in the + configure.target switch statement to handle this. + +

The cpu_include_dir sets default locations for the files controlling + Thread safety and Numeric limits, if the defaults are not + appropriate for your chip. + +


Node:Character types, ! Next:, ! Previous:CPU, ! Up:Top
!

Character types

The library requires that you provide three header files to implement character classification, analogous to that provided by the C libraries <ctype.h> header. You can model these on the files provided in ! config/os/generic. However, these files will almost certainly need some modification. !

The first file to write is ctype_base.h. This file provides some very basic information about character classification. The libstdc++-v3 library assumes that your C library implements <ctype.h> by using a table (indexed by character code) containing integers, where each of these integers is a bit-mask indicating whether the character is ! upper-case, lower-case, alphabetic, etc. The ctype_base.h file gives the type of the integer, and the values of the various bit masks. You will have to peer at your own <ctype.h> to figure out how to define the values required by this file. !

The ctype_base.h header file does not need include guards. It should contain a single struct definition called ctype_base. This struct should contain two type declarations, and one enumeration declaration, like this example, taken from the IRIX configuration: !

struct ctype_base
  {
    typedef unsigned int 	mask;
    typedef int* 		__to_type;
*************** but you must still define the type.
*** 195,209 ****
  example, using the values from your native <ctype.h>.  They can
  be given symbolically (as above), or numerically, if you prefer.  You do
  not have to include <ctype.h> in this header; it will always be
! included before bits/ctype_base.h is included.
  
! 

The next file to write is bits/ctype_noninline.h, which also does not require include guards. This file defines a few member functions that will be included in include/bits/locale_facets.h. The first function that must be written is the ctype<char>::ctype constructor. Here is the IRIX example: !

ctype<char>::ctype(const mask* __table = 0, bool __del = false,
        size_t __refs = 0)
    : _Ctype_nois<char>(__refs), _M_del(__table != 0 && __del),
      _M_toupper(NULL),
--- 223,237 ----
  example, using the values from your native <ctype.h>.  They can
  be given symbolically (as above), or numerically, if you prefer.  You do
  not have to include <ctype.h> in this header; it will always be
! included before ctype_base.h is included.
  
! 

The next file to write is ctype_noninline.h, which also does not require include guards. This file defines a few member functions that will be included in include/bits/locale_facets.h. The first function that must be written is the ctype<char>::ctype constructor. Here is the IRIX example: !

ctype<char>::ctype(const mask* __table = 0, bool __del = false,
        size_t __refs = 0)
    : _Ctype_nois<char>(__refs), _M_del(__table != 0 && __del),
      _M_toupper(NULL),
*************** vice versa, you should initialize 
*** 227,233 ****
  

Now, you have to write two functions to convert from upper-case to lower-case, and vice versa. Here are the IRIX versions: !

char
  ctype<char>::do_toupper(char __c) const
  { return _toupper(__c); }
  
--- 255,261 ----
  

Now, you have to write two functions to convert from upper-case to lower-case, and vice versa. Here are the IRIX versions: !

char
  ctype<char>::do_toupper(char __c) const
  { return _toupper(__c); }
  
*************** of characters.  The versions provided he
*** 245,251 ****
  could use specialized routines for greater performance if you have
  machinery to do that on your system:
  
! 
const char*
  ctype<char>::do_toupper(char* __low, const char* __high) const
  {
    while (__low < __high)
--- 273,279 ----
  could use specialized routines for greater performance if you have
  machinery to do that on your system:
  
! 
const char*
  ctype<char>::do_toupper(char* __low, const char* __high) const
  {
    while (__low < __high)
*************** ctype<char>::do_tolower(char* __lo
*** 268,274 ****
  }
  
!

You must also provide the bits/ctype_inline.h file, which contains a few more functions. On most systems, you can just copy config/os/generic/ctype_inline.h and use it on your system. --- 296,302 ---- }

!

You must also provide the ctype_inline.h file, which contains a few more functions. On most systems, you can just copy config/os/generic/ctype_inline.h and use it on your system. *************** properties; they are analogous to the fu *** 278,284 ****

The first function is implemented like this on IRIX: !

bool
  ctype<char>::
  is(mask __m, char __c) const throw()
  { return (_M_table)[(unsigned char)(__c)] & __m; }
--- 306,312 ----
  
  

The first function is implemented like this on IRIX: !

bool
  ctype<char>::
  is(mask __m, char __c) const throw()
  { return (_M_table)[(unsigned char)(__c)] & __m; }
*************** implementation here should work on all s
*** 290,296 ****
  
  

The next function is: !

const char*
  ctype<char>::
  is(const char* __low, const char* __high, mask* __vec) const throw()
  {
--- 318,324 ----
  
  

The next function is: !

const char*
  ctype<char>::
  is(const char* __low, const char* __high, mask* __vec) const throw()
  {
*************** from __low up until _
*** 306,312 ****
  
  

The last two functions again are entirely generic: !

const char*
  ctype<char>::
  scan_is(mask __m, const char* __low, const char* __high) const throw()
  {
--- 334,340 ----
  
  

The last two functions again are entirely generic: !

const char*
  ctype<char>::
  scan_is(mask __m, const char* __low, const char* __high) const throw()
  {
*************** scan_not(mask __m, const char* __low, co
*** 327,338 ****
  
  


Node:Thread safety, ! Next:, ! Previous:Character types, ! Up:Top
!

Thread safety

The C++ library string functionality requires a couple of atomic operations to provide thread-safety. If you don't take any special --- 355,366 ----


Node:Thread safety, ! Next:, ! Previous:Character types, ! Up:Top
!

Thread safety

The C++ library string functionality requires a couple of atomic operations to provide thread-safety. If you don't take any special *************** multi-threaded. *** 344,366 **** are two distinct approaches. One is to provide a version for your CPU, using assembly language constructs. The other is to use the thread-safety primitives in your operating system. In either case, you ! make a file called bits/atomicity.h.

If you are using the assembly-language approach, put this code in ! config/cpu/<chip>/bits/atomicity.h, where chip is the name of ! your processor. In that case, edit the switch statement in ! configure.target to set the cpu_include_dir. In either ! case, set the switch statement that sets ATOMICITYH to be the ! directory containing bits/atomicity.h.

With those bits out of the way, you have to actually write ! bits/atomicity.h itself. This file should be wrapped in an include guard named _BITS_ATOMICITY_H. It should define one type, and two functions.

The type is _Atomic_word. Here is the version used on IRIX: !

typedef long _Atomic_word;
  

This type must be a signed integral type supporting atomic operations. --- 372,406 ---- are two distinct approaches. One is to provide a version for your CPU, using assembly language constructs. The other is to use the thread-safety primitives in your operating system. In either case, you ! make a file called atomicity.h, and the variable ! ATOMICITYH must point to this file.

If you are using the assembly-language approach, put this code in ! config/cpu/<chip>/atomicity.h, where chip is the name of ! your processor (see CPU). No additional changes are necessary to ! locate the file in this case; ATOMICITYH will be set by default. ! !

If you are using the operating system thread-safety primitives approach, ! you can also put this code in the same CPU directory, in which case no more ! work is needed to locate the file. For examples of this approach, ! see the atomicity.h file for IRIX or IA64. ! !

Alternatively, if the primitives are more closely related to the OS ! than they are to the CPU, you can put the atomicity.h file in ! the Operating system directory instead. In this case, you must ! edit configure.target, and in the switch statement that handles ! operating systems, override the ATOMICITYH variable to point to ! the appropriate os_include_dir. For examples of this approach, ! see the atomicity.h file for AIX.

With those bits out of the way, you have to actually write ! atomicity.h itself. This file should be wrapped in an include guard named _BITS_ATOMICITY_H. It should define one type, and two functions.

The type is _Atomic_word. Here is the version used on IRIX: !

typedef long _Atomic_word;
  

This type must be a signed integral type supporting atomic operations. *************** primitives. *** 371,377 ****

Then, you must provide two functions. The bodies of these functions must be equivalent to those provided here, but using atomic operations: !

static inline _Atomic_word
  __attribute__ ((__unused__))
  __exchange_and_add (_Atomic_word* __mem, int __val)
  {
--- 411,417 ----
  

Then, you must provide two functions. The bodies of these functions must be equivalent to those provided here, but using atomic operations: !

static inline _Atomic_word
  __attribute__ ((__unused__))
  __exchange_and_add (_Atomic_word* __mem, int __val)
  {
*************** __atomic_add (_Atomic_word* __mem, int _
*** 390,401 ****
  
  


Node:Numeric limits, ! Next:, ! Previous:Thread safety, ! Up:Top
!

Numeric limits

The C++ library requires information about the fundamental data types, such as the minimum and maximum representable values of each type. --- 430,441 ----


Node:Numeric limits, ! Next:, ! Previous:Thread safety, ! Up:Top
!

Numeric limits

The C++ library requires information about the fundamental data types, such as the minimum and maximum representable values of each type. *************** easiest just to indicate how many bits a *** 404,428 **** types and let the library do the rest. For information about the macros to define, see the top of include/bits/std_limits.h. !

If you need to define any macros, you can do so in ! os_defines.h. However, if all operating systems for your CPU ! are likely to use the same values, you can provide a CPU-specific file ! instead so that you do not have to provide the same definitions for ! each operating system. To take that approach, create a new file ! called limits.h in your CPU configuration directory (e.g., ! config/cpu/i386/bits) and then modify configure.target ! so that LIMITSH is set to the CPU directory (e.g., ! config/cpu/i386). Note that LIMITSH should not include ! the bits part of the directory name.


Node:Libtool, ! Next:, ! Previous:Numeric limits, ! Up:Top
!

Libtool

The C++ library is compiled, archived and linked with libtool. Explaining the full workings of libtool is beyond the scope of this --- 444,464 ---- types and let the library do the rest. For information about the macros to define, see the top of include/bits/std_limits.h. !

If you need to define any macros, you can do so in os_defines.h. ! However, if all operating systems for your CPU are likely to use the ! same values, you can provide a CPU-specific file instead so that you ! do not have to provide the same definitions for each operating system. ! To take that approach, create a new file called cpu_limits.h in ! your CPU configuration directory (see CPU).


Node:Libtool, ! Next:, ! Previous:Numeric limits, ! Up:Top
!

Libtool

The C++ library is compiled, archived and linked with libtool. Explaining the full workings of libtool is beyond the scope of this *************** run as the library is loaded. Often, th *** 441,450 **** object files when the C++ library is built as a shared library, or taking other system-specific actions. !

The libstdc++-v3 library is linked with the C version of libtool, even though it ! is a C++ library. Therefore, the C version of libtool needs to ensure ! that the run-time library initializers are run. The usual way to do ! this is to build the library using gcc -shared.

If you need to change how the library is linked, look at ltcf-c.sh in the top-level directory. Find the switch statement --- 477,486 ---- object files when the C++ library is built as a shared library, or taking other system-specific actions. !

The libstdc++-v3 library is linked with the C version of libtool, even ! though it is a C++ library. Therefore, the C version of libtool needs to ! ensure that the run-time library initializers are run. The usual way to ! do this is to build the library using gcc -shared.

If you need to change how the library is linked, look at ltcf-c.sh in the top-level directory. Find the switch statement *************** operating system. *** 453,466 ****


Node:GNU Free Documentation License, ! Previous:Libtool, ! Up:Top
!

GNU Free Documentation License

Version 1.1, March 2000
!
Copyright © 2000 Free Software Foundation, Inc.
  59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
  
  Everyone is permitted to copy and distribute verbatim copies
--- 489,502 ----
  
  


Node:GNU Free Documentation License, ! Previous:Libtool, ! Up:Top
!

GNU Free Documentation License

Version 1.1, March 2000
!
Copyright © 2000 Free Software Foundation, Inc.
  59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
  
  Everyone is permitted to copy and distribute verbatim copies
*************** number of this License, you may choose a
*** 796,808 ****
  as a draft) by the Free Software Foundation.
  
  
! 

ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: !

  Copyright (C)  year  your name.
    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.1
    or any later version published by the Free Software Foundation;
--- 832,844 ----
  as a draft) by the Free Software Foundation.
  
  
! 

ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: !

  Copyright (C)  year  your name.
    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.1
    or any later version published by the Free Software Foundation;
*************** free software license, such as the GNU G
*** 823,837 ****
  to permit their use in free software.
  
  
! 

Table of Contents

    !
  • Porting libstdc++-v3 !
  • Operating system !
  • Character types !
  • Thread safety !
  • Numeric limits !
  • Libtool !
  • GNU Free Documentation License --- 859,882 ---- to permit their use in free software. !

    Table of Contents

      !
    • ! Porting libstdc++-v3 !
    • ! Operating system !
    • ! CPU !
    • ! Character types !
    • ! Thread safety !
    • ! Numeric limits !
    • ! Libtool !
    • ! GNU Free Documentation License diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/17_intro/porting.texi gcc-3.1.1/libstdc++-v3/docs/html/17_intro/porting.texi *** gcc-3.1/libstdc++-v3/docs/html/17_intro/porting.texi Fri Nov 23 16:29:00 2001 --- gcc-3.1.1/libstdc++-v3/docs/html/17_intro/porting.texi Sat Jul 20 06:34:50 2002 *************** *** 12,18 **** This file explains how to port libstdc++-v3 (the GNU C++ library) to a new target. ! Copyright (c) 2000, 2001 Free Software Foundation, Inc. @end ifinfo @c --------------------------------------------------------------------- --- 12,18 ---- This file explains how to port libstdc++-v3 (the GNU C++ library) to a new target. ! Copyright (c) 2000, 2001, 2002 Free Software Foundation, Inc. @end ifinfo @c --------------------------------------------------------------------- *************** Copyright (c) 2000, 2001 Free Software F *** 24,30 **** @author Mark Mitchell @page @vskip 0pt plus 1filll ! Copyright @copyright{} 2000, 2001 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or --- 24,30 ---- @author Mark Mitchell @page @vskip 0pt plus 1filll ! Copyright @copyright{} 2000, 2001, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or *************** a new target. *** 57,63 **** In order to make the GNU C++ library (libstdc++-v3) work with a new target, you must edit some configuration files and provide some new ! header files. Before you get started, make sure that you have a working C library on your target. The C library need not precisely comply with any --- 57,65 ---- In order to make the GNU C++ library (libstdc++-v3) work with a new target, you must edit some configuration files and provide some new ! header files. Unless this is done, libstdc++-v3 will use generic ! settings which may not be correct for your target; even if they are ! correct, they will likely be inefficient. Before you get started, make sure that you have a working C library on your target. The C library need not precisely comply with any *************** Here are the primary steps required to p *** 72,77 **** --- 74,80 ---- @menu * Operating system:: Configuring for your operating system. + * CPU:: Configuring for your processor chip. * Character types:: Implementing character classification. * Thread safety:: Implementing atomic operations. * Numeric limits:: Implementing numeric limits. *************** Here are the primary steps required to p *** 86,92 **** @node Operating system @chapter Operating system ! If you are porting to a new operating-system (as opposed to a new chip using an existing operating system), you will need to create a new directory in the @file{config/os} hierarchy. For example, the IRIX configuration files are all in @file{config/os/irix}. There is no set --- 89,95 ---- @node Operating system @chapter Operating system ! If you are porting to a new operating system (as opposed to a new chip using an existing operating system), you will need to create a new directory in the @file{config/os} hierarchy. For example, the IRIX configuration files are all in @file{config/os/irix}. There is no set *************** standard target triplet; e.g., the @code *** 107,113 **** @code{sparc-sun-solaris2.8}. The first file to create in this directory, should be called ! @file{bits/os_defines.h}. This file contains basic macro definitions that are required to allow the C++ library to work with your C library. This file should provide macro definitions for @code{__off_t}, @code{__off64_t}, and @code{__ssize_t}. Typically, this just looks --- 110,116 ---- @code{sparc-sun-solaris2.8}. The first file to create in this directory, should be called ! @file{os_defines.h}. This file contains basic macro definitions that are required to allow the C++ library to work with your C library. This file should provide macro definitions for @code{__off_t}, @code{__off64_t}, and @code{__ssize_t}. Typically, this just looks *************** need to define. You will need to add th *** 142,159 **** target. It will not work to simply define these macros in @file{os_defines.h}. ! At this time, there are two libstdc++-v3-specific macros which may be defined. @code{_G_USING_THUNKS} may be defined to 0 to express that the port doesn't use thunks (although it is unclear that this is still useful since libio support isn't currently working and the g++ v3 ABI invalidates the assumption that some ports don't use thunks). - @code{_GLIBCPP_AVOID_FSEEK} may be defined if seeking on an interactive - stream (or one hooked to a pipe) is not allowed by the OS. In this - case, getc()/ungetc() will be used at some key locations in the library - implementation instead of fseek(). Currently, the code path to avoid - fseek() is only enabled when the seek size is 1 character away from the - current stream position. This is known to improve *-unknown-freebsd*, - sparc-sun-solaris2.* and *-*-mingw32*. Finally, you should bracket the entire file in an include-guard, like this: --- 145,155 ---- target. It will not work to simply define these macros in @file{os_defines.h}. ! At this time, there is one libstdc++-v3-specific macro which may be defined. @code{_G_USING_THUNKS} may be defined to 0 to express that the port doesn't use thunks (although it is unclear that this is still useful since libio support isn't currently working and the g++ v3 ABI invalidates the assumption that some ports don't use thunks). Finally, you should bracket the entire file in an include-guard, like this: *************** this: *** 165,174 **** #endif @end example ! We recommend copying an existing @file{bits/os_defines.h} to use as a starting point. @c --------------------------------------------------------------------- @c Character types @c --------------------------------------------------------------------- --- 161,200 ---- #endif @end example ! We recommend copying an existing @file{os_defines.h} to use as a starting point. @c --------------------------------------------------------------------- + @c CPU + @c --------------------------------------------------------------------- + + @node CPU + @chapter CPU + + If you are porting to a new chip (as opposed to a new operating system + running on an existing chip), you will need to create a new directory in the + @file{config/cpu} hierarchy. Much like the @ref{Operating system} setup, + there are no strict rules on how to organize the CPU configuration + directory, but careful naming choices will allow the configury to find your + setup files without explicit help. + + We recommend that for a target triplet @code{--}, you + name your configuration directory @file{config/cpu/}. If you do this, + the configury will find the directory itself. Otherwise you will need to + edit the @file{configure.target} file and, in the switch statement that sets + @code{cpu_include_dir}, add a pattern to handle your chip. + + Note that some chip families share a single configuration directory, for + example, @code{alpha}, @code{alphaev5}, and @code{alphaev6} all use the + @file{config/cpu/alpha} directory, and there is an entry in the + @file{configure.target} switch statement to handle this. + + The @code{cpu_include_dir} sets default locations for the files controlling + @ref{Thread safety} and @ref{Numeric limits}, if the defaults are not + appropriate for your chip. + + + @c --------------------------------------------------------------------- @c Character types @c --------------------------------------------------------------------- *************** starting point. *** 178,197 **** The library requires that you provide three header files to implement character classification, analogous to that provided by the C libraries @file{} header. You can model these on the files provided in ! @file{config/os/generic/bits}. However, these files will almost certainly need some modification. ! The first file to write is @file{bits/ctype_base.h}. This file provides some very basic information about character classification. The libstdc++-v3 library assumes that your C library implements @file{} by using a table (indexed by character code) containing integers, where each of these integers is a bit-mask indicating whether the character is ! upper-case, lower-case, alphabetic, etc. The @file{bits/ctype_base.h} file gives the type of the integer, and the values of the various bit masks. You will have to peer at your own @file{} to figure out how to define the values required by this file. ! The @file{bits/ctype_base.h} header file does not need include guards. It should contain a single @code{struct} definition called @code{ctype_base}. This @code{struct} should contain two type declarations, and one enumeration declaration, like this example, taken --- 204,223 ---- The library requires that you provide three header files to implement character classification, analogous to that provided by the C libraries @file{} header. You can model these on the files provided in ! @file{config/os/generic}. However, these files will almost certainly need some modification. ! The first file to write is @file{ctype_base.h}. This file provides some very basic information about character classification. The libstdc++-v3 library assumes that your C library implements @file{} by using a table (indexed by character code) containing integers, where each of these integers is a bit-mask indicating whether the character is ! upper-case, lower-case, alphabetic, etc. The @file{ctype_base.h} file gives the type of the integer, and the values of the various bit masks. You will have to peer at your own @file{} to figure out how to define the values required by this file. ! The @file{ctype_base.h} header file does not need include guards. It should contain a single @code{struct} definition called @code{ctype_base}. This @code{struct} should contain two type declarations, and one enumeration declaration, like this example, taken *************** The enumeration should give definitions *** 233,241 **** example, using the values from your native @file{}. They can be given symbolically (as above), or numerically, if you prefer. You do not have to include @file{} in this header; it will always be ! included before @file{bits/ctype_base.h} is included. ! The next file to write is @file{bits/ctype_noninline.h}, which also does not require include guards. This file defines a few member functions that will be included in @file{include/bits/locale_facets.h}. The first function that must be written is the @code{ctype::ctype} --- 259,267 ---- example, using the values from your native @file{}. They can be given symbolically (as above), or numerically, if you prefer. You do not have to include @file{} in this header; it will always be ! included before @file{ctype_base.h} is included. ! The next file to write is @file{ctype_noninline.h}, which also does not require include guards. This file defines a few member functions that will be included in @file{include/bits/locale_facets.h}. The first function that must be written is the @code{ctype::ctype} *************** ctype::do_tolower(char* __low, con *** 311,317 **** @} @end example ! You must also provide the @file{bits/ctype_inline.h} file, which contains a few more functions. On most systems, you can just copy @file{config/os/generic/ctype_inline.h} and use it on your system. --- 337,343 ---- @} @end example ! You must also provide the @file{ctype_inline.h} file, which contains a few more functions. On most systems, you can just copy @file{config/os/generic/ctype_inline.h} and use it on your system. *************** If you want to provide custom, safe, ver *** 390,406 **** are two distinct approaches. One is to provide a version for your CPU, using assembly language constructs. The other is to use the thread-safety primitives in your operating system. In either case, you ! make a file called @file{bits/atomicity.h}. If you are using the assembly-language approach, put this code in ! @file{config/cpu//bits/atomicity.h}, where chip is the name of ! your processor. In that case, edit the switch statement in ! @file{configure.target} to set the @code{cpu_include_dir}. In either ! case, set the switch statement that sets @code{ATOMICITYH} to be the ! directory containing @file{bits/atomicity.h}. With those bits out of the way, you have to actually write ! @file{bits/atomicity.h} itself. This file should be wrapped in an include guard named @code{_BITS_ATOMICITY_H}. It should define one type, and two functions. --- 416,444 ---- are two distinct approaches. One is to provide a version for your CPU, using assembly language constructs. The other is to use the thread-safety primitives in your operating system. In either case, you ! make a file called @file{atomicity.h}, and the variable ! @code{ATOMICITYH} must point to this file. If you are using the assembly-language approach, put this code in ! @file{config/cpu//atomicity.h}, where chip is the name of ! your processor (@pxref{CPU}). No additional changes are necessary to ! locate the file in this case; @code{ATOMICITYH} will be set by default. ! ! If you are using the operating system thread-safety primitives approach, ! you can also put this code in the same CPU directory, in which case no more ! work is needed to locate the file. For examples of this approach, ! see the @file{atomicity.h} file for IRIX or IA64. ! ! Alternatively, if the primitives are more closely related to the OS ! than they are to the CPU, you can put the @file{atomicity.h} file in ! the @ref{Operating system} directory instead. In this case, you must ! edit @file{configure.target}, and in the switch statement that handles ! operating systems, override the @code{ATOMICITYH} variable to point to ! the appropriate @code{os_include_dir}. For examples of this approach, ! see the @file{atomicity.h} file for AIX. With those bits out of the way, you have to actually write ! @file{atomicity.h} itself. This file should be wrapped in an include guard named @code{_BITS_ATOMICITY_H}. It should define one type, and two functions. *************** easiest just to indicate how many bits a *** 451,466 **** types and let the library do the rest. For information about the macros to define, see the top of @file{include/bits/std_limits.h}. ! If you need to define any macros, you can do so in ! @file{os_defines.h}. However, if all operating systems for your CPU ! are likely to use the same values, you can provide a CPU-specific file ! instead so that you do not have to provide the same definitions for ! each operating system. To take that approach, create a new file ! called @file{limits.h} in your CPU configuration directory (e.g., ! @file{config/cpu/i386/bits}) and then modify @file{configure.target} ! so that @code{LIMITSH} is set to the CPU directory (e.g., ! @file{config/cpu/i386}). Note that @code{LIMITSH} should not include ! the @samp{bits} part of the directory name. @c --------------------------------------------------------------------- @c Libtool --- 489,500 ---- types and let the library do the rest. For information about the macros to define, see the top of @file{include/bits/std_limits.h}. ! If you need to define any macros, you can do so in @file{os_defines.h}. ! However, if all operating systems for your CPU are likely to use the ! same values, you can provide a CPU-specific file instead so that you ! do not have to provide the same definitions for each operating system. ! To take that approach, create a new file called @file{cpu_limits.h} in ! your CPU configuration directory (@pxref{CPU}). @c --------------------------------------------------------------------- @c Libtool *************** run as the library is loaded. Often, th *** 486,495 **** object files when the C++ library is built as a shared library, or taking other system-specific actions. ! The libstdc++-v3 library is linked with the C version of libtool, even though it ! is a C++ library. Therefore, the C version of libtool needs to ensure ! that the run-time library initializers are run. The usual way to do ! this is to build the library using @code{gcc -shared}. If you need to change how the library is linked, look at @file{ltcf-c.sh} in the top-level directory. Find the switch statement --- 520,529 ---- object files when the C++ library is built as a shared library, or taking other system-specific actions. ! The libstdc++-v3 library is linked with the C version of libtool, even ! though it is a C++ library. Therefore, the C version of libtool needs to ! ensure that the run-time library initializers are run. The usual way to ! do this is to build the library using @code{gcc -shared}. If you need to change how the library is linked, look at @file{ltcf-c.sh} in the top-level directory. Find the switch statement diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/23_containers/howto.html gcc-3.1.1/libstdc++-v3/docs/html/23_containers/howto.html *** gcc-3.1/libstdc++-v3/docs/html/23_containers/howto.html Mon Jan 28 22:13:05 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/23_containers/howto.html Sat Jul 20 06:34:50 2002 *************** *** 27,32 **** --- 27,33 ----
    • "Hinting" during insertion
    • Bitmasks and string arguments
    • std::list::size() is O(n)! +
    • Space overhead management for vectors

    *************** *** 430,435 **** --- 431,457 ----

    Return to top of page or to the FAQ. +

    + +
    +

    Space overhead management for vectors

    +

    In + this + message to the list, Daniel Kostecky announced work on an + alternate form of std::vector that would support hints + on the number of elements to be over-allocated. The design was also + described, along with possible implementation choices. +

    +

    The first two alpha releases were announced + here + and + here. + The releases themselves are available at + + http://www.kotelna.sk/dk/sw/caphint/. +

    +

    Return to top of page or + to the FAQ.

    diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/Makefile gcc-3.1.1/libstdc++-v3/docs/html/Makefile *** gcc-3.1/libstdc++-v3/docs/html/Makefile Wed Mar 27 22:38:37 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/Makefile Sat Jul 20 06:34:50 2002 *************** *** 1,3 **** --- 1,4 ---- + PWD=$${PWDCMD-pwd} MAKEINFO=makeinfo INC=../../../gcc/doc/include *************** all: faq/index.txt 17_intro/porting.html *** 6,12 **** faq/index.txt: faq/index.html ! lynx -dump $< | sed "s%file://localhost`pwd`%..%" > $@ 17_intro/porting.html: 17_intro/porting.texi ${MAKEINFO} -I ${INC} --html --no-split $< -o $@ --- 7,13 ---- faq/index.txt: faq/index.html ! lynx -dump $< | sed "s%file://localhost`${PWD}`%..%" > $@ 17_intro/porting.html: 17_intro/porting.texi ${MAKEINFO} -I ${INC} --html --no-split $< -o $@ diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/configopts.html gcc-3.1.1/libstdc++-v3/docs/html/configopts.html *** gcc-3.1/libstdc++-v3/docs/html/configopts.html Mon Mar 11 21:12:59 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/configopts.html Tue Jul 2 06:22:38 2002 *************** options *** 26,32 ****

    Here are some of the non-obvious options to libstdc++'s configure. Keep in mind that ! they all have opposite forms as well (enable/disable and with/without). The defaults are for current development sources. --- 26,32 ----

    Here are some of the non-obvious options to libstdc++'s configure. Keep in mind that ! they all have opposite forms as well (enable/disable and with/without). The defaults are for current development sources. *************** options *** 46,59 ****

    --enable-debug

    The configure script will automatically detect the highest ! level of optimization that the compiler in use can use ! (certain versions of g++ will ICE if given the -O2 ! option, but this is fixed in later versions of the compiler). This --enable flag will disable all optimizations and instruct the compiler to emit as much extra debugging information as it ! can, for use inside GDB. Note this make command, executed in the build directory, will do much the same thing, without the ! configuration difference:make CXXFLAGS='-g -O0' all

    --enable-cstdio --- 46,58 ----
    --enable-debug

    The configure script will automatically detect the highest ! level of optimization that the compiler in use can use. This --enable flag will disable all optimizations and instruct the compiler to emit as much extra debugging information as it ! can, for use inside GDB. Note this make command, executed in the build directory, will do much the same thing, without the ! configuration difference: ! make CXXFLAGS='-g -O0' all

    --enable-cstdio diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/documentation.html gcc-3.1.1/libstdc++-v3/docs/html/documentation.html *** gcc-3.1/libstdc++-v3/docs/html/documentation.html Mon May 6 11:44:55 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/documentation.html Sat Jul 20 06:34:50 2002 *************** *** 7,19 **** !

    All of these documents (in fact, this entire homepage set) are ! bundled with the library source, under the docs subdirectory, ! for releases and snapshots. The sole exception is the automatically-generated source documentation, available separately.

    !

    Source Documentation

    In addition to the distribution documentation (these pages), we also have a set of HTML documents generated from the sources themselves, --- 7,20 ---- !

    All of these documents (in fact, this entire homepage set) ! are bundled with the library source, under the docs ! subdirectory, for releases and snapshots. The sole exception is the automatically-generated source documentation, available separately.

    !
    !

    Source Documentation

    In addition to the distribution documentation (these pages), we also have a set of HTML documents generated from the sources themselves, *************** *** 33,39 ****

  • docs for the most recent libstdc++ snapshot (3.0.96)
  • "the latest collection" ! (usually the snapshot collection or later; see the date on the first page)
Other collections (man pages, maintainer docs) are only available on the FTP sites. --- 34,40 ----
  • docs for the most recent libstdc++ snapshot (3.0.96)
  • "the latest collection" ! (for the snapshot or later; see the date on the first page) Other collections (man pages, maintainer docs) are only available on the FTP sites. *************** *** 43,61 **** the same place as the HTML collections. Start with Intro(3).

    !

    Configuring, Building, Installing

    !

    Introductory notes for libstdc++

    This is a short list of text files pertaining to this implementation of ! ISO 14882. A brief description follows the name of the file. !

    !

    !
    !

    Chapter-Specific Information, Extensions, Notes and Advice

    1. Chapter 17 (Intro) diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/ext/howto.html gcc-3.1.1/libstdc++-v3/docs/html/ext/howto.html *** gcc-3.1/libstdc++-v3/docs/html/ext/howto.html Wed May 1 22:58:58 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/ext/howto.html Sat Jul 20 06:34:51 2002 *************** *** 37,43 **** --- 37,44 ---- *************** *** 154,160 ****


      !

      Allocators

      Thread-safety, space efficiency, high speed, portability... this is a mess. Where to begin?

      --- 155,161 ----


      !

      Allocators (versions 3.0, 3.1, 3.2)

      Thread-safety, space efficiency, high speed, portability... this is a mess. Where to begin?

      *************** *** 219,236 ****

      Well then:

      Available allocators in namespace std

      !

      First I'll describe the situation as it exists for the code which will ! be released in GCC 3.1. This situation is extremely fluid. Then I'll ! describe the differences for 3.0.x, which will not change much in ! this respect.

      As a general rule of thumb, users are not allowed to use names which begin with an underscore. This means that to be portable between compilers, none of the following may be used in your program directly. (If you decide to be unportable, then you're free do do what you want, but it's not our fault if stuff breaks.) They are presented here for ! information for maintainers and contributors in addition to users, but ! we will probably make them available for users in 3.2 somehow.

      These classes are always available:

        --- 220,238 ----

        Well then:

        Available allocators in namespace std

        !

        First I'll describe the situation as it exists for the code which ! was released in GCC 3.1 and 3.2. Then I'll describe the differences ! for 3.0. The allocator classes also have source documentation, ! which is described here (you ! will need to retrieve the maintainer-level docs, as almost none of ! these entities are in the ISO standard).

        As a general rule of thumb, users are not allowed to use names which begin with an underscore. This means that to be portable between compilers, none of the following may be used in your program directly. (If you decide to be unportable, then you're free do do what you want, but it's not our fault if stuff breaks.) They are presented here for ! information for maintainers and contributors in addition to users.

        These classes are always available:

          *************** *** 301,307 ****
        • __single_client_alloc are all typedef'd to __malloc_alloc_template.
        • __default_alloc_template is no longer available. ! At all. Anywhere.

    Writing your own allocators

    --- 303,309 ----
  • __single_client_alloc are all typedef'd to __malloc_alloc_template.
  • __default_alloc_template is no longer available. ! At all. Anywhere.

    Writing your own allocators

    *************** *** 359,365 **** can affect the 3.0.x allocators. Do not use them. Those macros have been completely removed for 3.1.

    !

    More notes as we remember them...

    Return to top of page or to the FAQ. --- 361,373 ---- can affect the 3.0.x allocators. Do not use them. Those macros have been completely removed for 3.1.

    !

    Return to top of page or ! to the FAQ. !

    ! !
    !

    Allocators (version 3.3)

    !

    Changes are coming...

    Return to top of page or to the FAQ. *************** *** 540,545 **** --- 548,554 ----

    Return to top of page or to the FAQ. +

    diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/ext/lwg-active.html gcc-3.1.1/libstdc++-v3/docs/html/ext/lwg-active.html *** gcc-3.1/libstdc++-v3/docs/html/ext/lwg-active.html Mon Dec 3 00:33:57 2001 --- gcc-3.1.1/libstdc++-v3/docs/html/ext/lwg-active.html Sat Jul 20 06:34:51 2002 *************** *** 5,15 ****
  • Table 65 --- Container Requirements

    Anything calling itself a container must meet these minimum requirements.
    expression result typeoperational semantics notes, pre-/post-conditions, assertions complexity
    X::value_type T  T is Assignable compile time
    X::reference lvalue of T    compile time
    X::const_reference const lvalue of T    compile time
    X::iterator iterator type pointing to T  Any iterator category except output iterator. Convertible to X::const_iterator. compile time
    X::const_iterator iterator type pointing to const T  Any iterator category except output iterator. compile time
    X::difference_type signed integral type  identical to the difference type of X::iterator and X::const_iterator compile time
    X::size_type unsigned integral type  size_type can represent any non-negative value of difference_type compile time
    X u;    post: u.size() == 0 constant
    X();    X().size == 0 constant
    X(a);    a == X(a) linear
    X u(a);
    X u = a;
       post: u == a. Equivalent to: X u; u = a; linear
    (&a)->~X(); void  dtor is applied to every element of a; all the memory is deallocated linear
    a.begin() iterator; const_iterator for constant a    constant
    a.end() iterator; const_iterator for constant a    constant
    a == b convertible to bool  == is an equivalence relation. a.size()==b.size() && equal(a.begin(),a.end(),b.begin()) linear
    a != b convertible to bool  equivalent to !(a==b) linear
    a.swap(b) void  swap(a,b) may or may not have constant complexity
    r = a X&  r == a linear
    a.size() size_type  may or may not have constant complexity
    a.size() size_typea.end() - a.begin()   may or may not have constant complexity
    a.max_size() size_type  may or may not have constant complexity
    a.max_size() size_typesize() of the largest possible container   may or may not have constant complexity
    a.empty() convertible to bool  constant
    a.empty() convertible to boola.size() == 0   constant
    a < b convertible to boolpre: < is defined for T and is a total ordering relation linear
    a < b convertible to boollexographical_compare( a.begin, a.end(), b.begin(), b.end()) pre: < is defined for T and is a total ordering relation linear
    a > b convertible to bool  linear
    a > b convertible to boolb < a   linear
    a <= b convertible to bool  linear
    a <= b convertible to bool!(a > b)   linear
    a >= b convertible to bool  linear
    a >= b convertible to bool!(a < b)   linear
    ! ! --- 5,15 ----
    Doc. no.J16/01-0052 = WG21 N1337
    Date:09 Nov 2001
    Project:
    ! ! *************** *** 20,26 ****
    Doc. no.J16/02-0027 = WG21 N1369
    Date:10 May 2002
    Project:Matt Austern <austern@research.att.com>
    !

    C++ Standard Library Active Issues List (Revision 20)

    Reference ISO/IEC IS 14882:1998(E)

    Also see:

      --- 20,26 ---- Matt Austern <austern@research.att.com> !

      C++ Standard Library Active Issues List (Revision 22)

      Reference ISO/IEC IS 14882:1998(E)

      Also see:

        *************** *** 88,93 **** --- 88,99 ---- directory as the issues list files.

        Revision History

          +
        • R22: + Post-Curaçao mailing. Added new issues 362-366. +
        • +
        • R21: + Pre-Curaçao mailing. Added new issues 351-361. +
        • R20: Post-Redmond mailing; reflects actions taken in Redmond. Added new issues 336-350, of which issues *************** new issues 284, 241, and 267. Noteworthy issues discussed at Redmond include 120 202, 226, 233, ! 270, 253, 254, 323.
        • R19: Pre-Redmond mailing. Added new issues ! 323-335.
        • R18: Post-Copenhagen mailing; reflects actions taken in Copenhagen. ! Added new issues 312-317, and discussed new issues 271-314. Changed status of issues --- 101,119 ---- not discussed at the meeting. All Ready issues were moved to DR status, with the exception of issues ! 284, 241, and 267. Noteworthy issues discussed at Redmond include 120 202, 226, 233, ! 270, 253, 254, 323.
        • R19: Pre-Redmond mailing. Added new issues ! 323-335.
        • R18: Post-Copenhagen mailing; reflects actions taken in Copenhagen. ! Added new issues 312-317, and discussed new issues 271-314. Changed status of issues *************** Changed status of issues *** 126,132 **** 238 241 242 250 259 264 266 267 271 272 273 275 ! 281 284 285 286 288 292 295 297 298 301 303 306 307 308 312 --- 132,138 ---- 238 241 242 250 259 264 266 267 271 272 273 275 ! 281 284 285 286 288 292 295 297 298 301 303 306 307 308 312 *************** as NAD. *** 141,148 ****
        • R17: Pre-Copenhagen mailing. Converted issues list to XML. Added proposed ! resolutions for issues 49, 76, 91, 235, 250, 267. ! Added new issues 278-311.
        • R16: post-Toronto mailing; reflects actions taken in Toronto. Added new --- 147,154 ----
        • R17: Pre-Copenhagen mailing. Converted issues list to XML. Added proposed ! resolutions for issues 49, 76, 91, 235, 250, 267. ! Added new issues 278-311.
        • R16: post-Toronto mailing; reflects actions taken in Toronto. Added new *************** of issue 2 *** 188,194 **** post-Kona mailing: Updated to reflect LWG and full committee actions in Kona (99-0048/N1224). Note changed resolution of issues 4 and 38. Added issues 196 ! to 198. Closed issues list split into "defects" and "closed" documents. Changed the proposed resolution of issue 4 to NAD, and changed the wording of proposed resolution of issue 38. --- 194,200 ---- post-Kona mailing: Updated to reflect LWG and full committee actions in Kona (99-0048/N1224). Note changed resolution of issues 4 and 38. Added issues 196 ! to 198. Closed issues list split into "defects" and "closed" documents. Changed the proposed resolution of issue 4 to NAD, and changed the wording of proposed resolution of issue 38. *************** format, 64 *** 272,278 ****

          Dup - The LWG has reached consensus that the issue is a duplicate of another issue, and will not be further ! dealt with. A Rationale identities the duplicated issue's issue number.

          --- 278,284 ----

          Dup - The LWG has reached consensus that the issue is a duplicate of another issue, and will not be further ! dealt with. A Rationale identifies the duplicated issue's issue number.

          *************** review of clause 27 as the changes are c *** 439,559 **** ]


          -

          76. Can a codecvt facet always convert one internal character at a time?

          - Section: 22.2.1.5 [lib.locale.codecvt]  Status: Ready  Submitter: Matt Austern  Date: 25 Sep 1998

          -

          This issue concerns the requirements on classes derived from - codecvt, including user-defined classes. What are the - restrictions on the conversion from external characters - (e.g. char) to internal characters (e.g. wchar_t)? - Or, alternatively, what assumptions about codecvt facets can - the I/O library make?

          - -

          The question is whether it's possible to convert from internal - characters to external characters one internal character at a time, - and whether, given a valid sequence of external characters, it's - possible to pick off internal characters one at a time. Or, to put it - differently: given a sequence of external characters and the - corresponding sequence of internal characters, does a position in the - internal sequence correspond to some position in the external - sequence?

          - -

          To make this concrete, suppose that [first, last) is a - sequence of M external characters and that [ifirst, - ilast) is the corresponding sequence of N internal - characters, where N > 1. That is, my_encoding.in(), - applied to [first, last), yields [ifirst, - ilast). Now the question: does there necessarily exist a - subsequence of external characters, [first, last_1), such - that the corresponding sequence of internal characters is the single - character *ifirst? -

          - -

          (What a "no" answer would mean is that - my_encoding translates sequences only as blocks. There's a - sequence of M external characters that maps to a sequence of - N internal characters, but that external sequence has no - subsequence that maps to N-1 internal characters.)

          - -

          Some of the wording in the standard, such as the description of - codecvt::do_max_length (22.2.1.5.2 [lib.locale.codecvt.virtuals], - paragraph 11) and basic_filebuf::underflow (27.8.1.4 [lib.filebuf.virtuals], paragraph 3) suggests that it must always be - possible to pick off internal characters one at a time from a sequence - of external characters. However, this is never explicitly stated one - way or the other.

          - -

          This issue seems (and is) quite technical, but it is important if - we expect users to provide their own encoding facets. This is an area - where the standard library calls user-supplied code, so a well-defined - set of requirements for the user-supplied code is crucial. Users must - be aware of the assumptions that the library makes. This issue affects - positioning operations on basic_filebuf, unbuffered input, - and several of codecvt's member functions.

          -

          Proposed resolution:

          -

          Add the following text as a new paragraph, following 22.2.1.5.2 [lib.locale.codecvt.virtuals] paragraph 2:

          - -
          -

          A codecvt facet that is used by basic_filebuf - (27.8 [lib.file.streams]) must have the property that if

          -
          -     do_out(state, from, from_end, from_next, to, to_lim, to_next)
          - 
          - would return ok, where from != from_end, then -
          -     do_out(state, from, from + 1, from_next, to, to_end, to_next)
          - 
          - must also return ok, and that if -
          -     do_in(state, from, from_end, from_next, to, to_lim, to_next)
          - 
          - would return ok, where to != to_lim, then -
          -     do_in(state, from, from_end, from_next, to, to + 1, to_next)
          - 
          -

          must also return ok. [Footnote: Informally, this - means that basic_filebuf assumes that the mapping from - internal to external characters is 1 to N: a codecvt that is - used by basic_filebuf must be able to translate characters - one internal character at a time. --End Footnote]

          -
          - -

          [Redmond: Minor change in proposed resolution. Original - proposed resolution talked about "success", with a parenthetical - comment that success meant returning ok. New wording - removes all talk about "success", and just talks about the - return value.]

          - -

          Rationale:

          - -

          The proposed resoluion says that conversions can be performed one - internal character at a time. This rules out some encodings that - would otherwise be legal. The alternative answer would mean there - would be some internal positions that do not correspond to any - external file position.

          -

          - An example of an encoding that this rules out is one where the - internT and externT are of the same type, and - where the internal sequence c1 c2 corresponds to the - external sequence c2 c1. -

          -

          It was generally agreed that basic_filebuf relies - on this property: it was designed under the assumption that - the external-to-internal mapping is N-to-1, and it is not clear - that basic_filebuf is implementable without that - restriction. -

          -

          - The proposed resolution is expressed as a restriction on - codecvt when used by basic_filebuf, rather - than a blanket restriction on all codecvt facets, - because basic_filebuf is the only other part of the - library that uses codecvt. If a user wants to define - a codecvt facet that implements a more general N-to-M - mapping, there is no reason to prohibit it, so long as the user - does not expect basic_filebuf to be able to use it. -

          -

          91. Description of operator>> and getline() for string<> might cause endless loop

          ! Section: 21.3.7.9 [lib.string.io]  Status: Review  Submitter: Nico Josuttis  Date: 29 Sep 1998

          Operator >> and getline() for strings read until eof() in the input stream is true. However, this might never happen, if the stream can't read anymore without reaching EOF. So shouldn't it be --- 445,452 ---- ]


          91. Description of operator>> and getline() for string<> might cause endless loop

          ! Section: 21.3.7.9 [lib.string.io]  Status: Ready  Submitter: Nico Josuttis  Date: 29 Sep 1998

          Operator >> and getline() for strings read until eof() in the input stream is true. However, this might never happen, if the stream can't read anymore without reaching EOF. So shouldn't it be *************** should be a formatted input function, no *** 604,609 **** --- 497,504 ---- there is no mechanism for gcount to be set except by one of basic_istream's member functions.]

          +

          [Curaçao: Nico agrees with proposed resolution.]

          +

          Rationale:

          The real issue here is whether or not these string input functions get their characters from a streambuf, rather than by calling an *************** multiple problems beyond the underlying *** 725,730 **** --- 620,628 ----

          [Post-Tokyo: Nico provided the above proposed resolutions.]

          +

          [Curaçao: Nico will provide wording to make options clearer: are + the exclusive, or is one a superset of the other?]

          +

          96. Vector<bool> is not a container

          Section: 23.2.5 [lib.vector.bool]  Status: Open  Submitter: AFNOR  Date: 7 Oct 1998

          *************** how many times a copy constructor is cal *** 810,815 **** --- 708,716 ---- constructor has observable behavior. (See issue 334 for a similar problem.)

          +

          [Issue still isn't clear. Matt will try to explain it more + clearly at the next meeting.]

          +

          Proposed resolution:


          120. Can an implementor add specializations?

          *************** different explicit instantiations might *** 881,915 **** !

          [Copenhagen: LWG discussed three options. (A) Users may not explicitly instantiate standard library templates, except on user-defined types. Consequence: library implementors may freely ! specialize or instantiate templates. (B) It is implementation defined ! whether users may explicitly instantiate standard library templates on ! non-user-defined types. Consequence: library implementors may freely ! specialize or instantiate templates, but may need to document some or ! all templates that have been explicitly instantiated. (C) Users may ! explicitly instantiate any standard library template. ]

          !

          [Straw poll (first number is favor, second is strongly oppose): ! A - 4, 0; B - 0, 9; C - 9, 1. Proposed resolution 1, above, is ! option A. (It is the original proposed resolution.) Proposed ! resolution 2, above, is option C. Because there was no support ! for option B, no wording is provided.]

          [Redmond: discussed again; straw poll had results similar to ! those of Copenhagen (A - 1, 3; B - 6, 2; C - 8, 4). Most people said ! they could live with any option. The only objection to option A is potential implementation difficulty. Steve Clamage volunteered do a ! survey to see if there are any popular platforms where option A would present a real problem for implementors. See his reflector message, c++std-lib-9002. ]


          123. Should valarray helper arrays fill functions be const?

          ! Section: 26.3.5.4 [lib.slice.arr.fill], 26.3.7.4 [lib.gslice.array.fill], 26.3.8.4 [lib.mask.array.fill], 26.3.9.4 [lib.indirect.array.fill]  Status: Review  Submitter: Judy Ward  Date: 15 Dec 1998

          One of the operator= in the valarray helper arrays is const and one is not. For example, look at slice_array. This operator= in Section 26.3.5.2 [lib.slice.arr.assign] is const:

          --- 782,824 ---- !

          [Copenhagen: LWG discussed three options. (1) Users may not explicitly instantiate standard library templates, except on user-defined types. Consequence: library implementors may freely ! specialize or instantiate templates. (2) Users may explicitly ! instantiate any standard library template. Consequence: if ! implementors specialize or instantiate library templates, they may ! need to take special steps to make sure users can do it too. (3) It ! is implementation defined whether users may explicitly instantiate ! standard library templates on non-user-defined types. Consequence: ! library implementors may freely specialize or instantiate templates, ! but may need to document some or all templates that have been ! explicitly instantiated. ]

          !

          [Straw poll (first number is favor, second is strongly oppose): 1 ! - 4, 0; 2 - 9, 1; 3 - 0, 9. (Proposed resolution 1 was the original ! proposed resolution.) Because there was no support for option 3, no ! wording is provided.]

          [Redmond: discussed again; straw poll had results similar to ! those of Copenhagen (1 - 1, 3; 2 - 8, 4; 3 - 6, 2). Most people said ! they could live with any option. The only objection to option 2 is potential implementation difficulty. Steve Clamage volunteered do a ! survey to see if there are any popular platforms where option 2 would present a real problem for implementors. See his reflector message, c++std-lib-9002. ]

          +

          [Steve and Pete Becker will talk to Jonathan Caves. The + Microsoft linker might present a problem if there are multiple copies, + some of which have static data and some of which are in DLLs. There + may be similar problems with the Apple linker; Matt will clarify + that.]

          +

          123. Should valarray helper arrays fill functions be const?

          ! Section: 26.3.5.4 [lib.slice.arr.fill], 26.3.7.4 [lib.gslice.array.fill], 26.3.8.4 [lib.mask.array.fill], 26.3.9.4 [lib.indirect.array.fill]  Status: Ready  Submitter: Judy Ward  Date: 15 Dec 1998

          One of the operator= in the valarray helper arrays is const and one is not. For example, look at slice_array. This operator= in Section 26.3.5.2 [lib.slice.arr.assign] is const:

          *************** text got garbled when the signed char/un *** 1098,1104 **** were removed. Dietmar will provide revised wording.]


          179. Comparison of const_iterators to iterators doesn't work

          ! Section: 23.1 [lib.container.requirements]  Status: Review  Submitter: Judy Ward  Date: 2 Jul 1998

          Currently the following will not compile on two well-known standard library implementations:

          --- 1007,1013 ---- were removed. Dietmar will provide revised wording.]


          179. Comparison of const_iterators to iterators doesn't work

          ! Section: 23.1 [lib.container.requirements]  Status: Ready  Submitter: Judy Ward  Date: 2 Jul 1998

          Currently the following will not compile on two well-known standard library implementations:

          *************** function than as an allocator member fun *** 1336,1469 **** it is probably best thought of as an architectural limit. Nathan will provide new wording.]


          -

          198. Validity of pointers and references unspecified after iterator destruction

          - Section: 24.1 [lib.iterator.requirements]  Status: Ready  Submitter: Beman Dawes  Date: 3 Nov 1999

          -

          - Is a pointer or reference obtained from an iterator still valid after - destruction of the iterator? -

          -

          - Is a pointer or reference obtained from an iterator still valid after the value - of the iterator changes? -

          -
          -
          - #include <iostream>
          - #include <vector>
          - #include <iterator>
          - 
          - int main()
          - {
          -     typedef std::vector<int> vec_t;
          -     vec_t v;
          -     v.push_back( 1 );
          - 
          -     // Is a pointer or reference obtained from an iterator still
          -     // valid after destruction of the iterator?
          -     int * p = &*v.begin();
          -     std::cout << *p << '\n';  // OK?
          - 
          -     // Is a pointer or reference obtained from an iterator still
          -     // valid after the value of the iterator changes?
          -     vec_t::iterator iter( v.begin() );
          -     p = &*iter++;
          -     std::cout << *p << '\n';  // OK?
          - 
          -     return 0;
          - }
          - 
          -
          - -

          The standard doesn't appear to directly address these - questions. The standard needs to be clarified. At least two real-world - cases have been reported where library implementors wasted - considerable effort because of the lack of clarity in the - standard. The question is important because requiring pointers and - references to remain valid has the effect for practical purposes of - prohibiting iterators from pointing to cached rather than actual - elements of containers.

          - -

          The standard itself assumes that pointers and references obtained - from an iterator are still valid after iterator destruction or - change. The definition of reverse_iterator::operator*(), 24.4.1.3.3 [lib.reverse.iter.op.star], which returns a reference, defines - effects:

          - -
          -
          Iterator tmp = current;
          - return *--tmp;
          -
          -

          The definition of reverse_iterator::operator->(), 24.4.1.3.4 [lib.reverse.iter.opref], which returns a pointer, defines effects:

          -
          -
          return &(operator*());
          -
          - -

          Because the standard itself assumes pointers and references remain - valid after iterator destruction or change, the standard should say so - explicitly. This will also reduce the chance of user code breaking - unexpectedly when porting to a different standard library - implementation.

          -

          Proposed resolution:

          -

          Add a new paragraph to 24.1 [lib.iterator.requirements]:

          -
          - Destruction of an iterator may invalidate pointers and references - previously obtained from that iterator. -
          - -

          Replace paragraph 1 of 24.4.1.3.3 [lib.reverse.iter.op.star] with:

          - -
          -

          Effects:

          -
          -   this->tmp = current;
          -   --this->tmp;
          -   return *this->tmp;
          - 
          - -

          - [Note: This operation must use an auxiliary member variable, - rather than a temporary variable, to avoid returning a reference that - persists beyond the lifetime of its associated iterator. (See - 24.1 [lib.iterator.requirements].) The name of this member variable is shown for - exposition only. --end note] -

          -
          - -

          [Post-Tokyo: The issue has been reformulated purely - in terms of iterators.]

          - -

          [Pre-Toronto: Steve Cleary pointed out the no-invalidation - assumption by reverse_iterator. The issue and proposed resolution was - reformulated yet again to reflect this reality.]

          - -

          [Copenhagen: Steve Cleary pointed out that reverse_iterator - assumes its underlying iterator has persistent pointers and - references. Andy Koenig pointed out that it is possible to rewrite - reverse_iterator so that it no longer makes such an assupmption. - However, this issue is related to issue 299. If we - decide it is intentional that p[n] may return by value - instead of reference when p is a Random Access Iterator, - other changes in reverse_iterator will be necessary.]

          -

          Rationale:

          -

          This issue has been discussed extensively. Note that it is - not an issue about the behavior of predefined iterators. It is - asking whether or not user-defined iterators are permitted to have - transient pointers and references. Several people presented examples - of useful user-defined iterators that have such a property; examples - include a B-tree iterator, and an "iota iterator" that doesn't point - to memory. Library implementors already seem to be able to cope with - such iterators: they take pains to avoid forming references to memory - that gets iterated past. The only place where this is a problem is - reverse_iterator, so this issue changes - reverse_iterator to make it work.

          - -

          This resolution does not weaken any guarantees provided by - predefined iterators like list<int>::iterator. - Clause 23 should be reviewed to make sure that guarantees for - predefined iterators are as strong as users expect.

          - -

          200. Forward iterator requirements don't allow constant iterators

          ! Section: 24.1.3 [lib.forward.iterators]  Status: Review  Submitter: Matt Austern  Date: 19 Nov 1999

          In table 74, the return type of the expression *a is given as T&, where T is the iterator's value type. --- 1245,1252 ---- it is probably best thought of as an architectural limit. Nathan will provide new wording.]


          200. Forward iterator requirements don't allow constant iterators

          ! Section: 24.1.3 [lib.forward.iterators]  Status: Ready  Submitter: Matt Austern  Date: 19 Nov 1999

          In table 74, the return type of the expression *a is given as T&, where T is the iterator's value type. *************** clear how numeric_limits applies to each *** 1581,1587 **** review of numeric_limits is needed. A paper would be welcome.]


          202. unique() effects unclear when predicate not an equivalence relation

          ! Section: 25.2.8 [lib.alg.unique]  Status: Review  Submitter: Andrew Koenig  Date: 13 Jan 2000

          What should unique() do if you give it a predicate that is not an equivalence relation? There are at least two plausible answers: --- 1364,1370 ---- review of numeric_limits is needed. A paper would be welcome.]


          202. unique() effects unclear when predicate not an equivalence relation

          ! Section: 25.2.8 [lib.alg.unique]  Status: Ready  Submitter: Andrew Koenig  Date: 13 Jan 2000

          What should unique() do if you give it a predicate that is not an equivalence relation? There are at least two plausible answers: *************** In fact, the SGI implementation of uniqu *** 1652,1658 ****

          For a nonempty range, eliminates all but the first element from every consecutive group of equivalent elements referred to by the iterator ! i in the range (first, last) for which the following conditions hold: *(i-1) == *i or pred(*(i-1), *i) != false.
          --- 1435,1441 ----
          For a nonempty range, eliminates all but the first element from every consecutive group of equivalent elements referred to by the iterator ! i in the range [first+1, last) for which the following conditions hold: *(i-1) == *i or pred(*(i-1), *i) != false.
          *************** pointed out that "i-1" is inco *** 1672,1677 **** --- 1455,1465 ---- iterator in the range. Matt provided wording to address this problem.]

          +

          [Curaçao: The LWG changed "... the range (first, + last)..." to "... the range [first+1, last)..." for + clarity. They considered this change close enough to editorial to not + require another round of review.]

          +

          Rationale:

          The LWG also considered an alternative resolution: change 25.2.8 [lib.alg.unique] paragraph 1 to:

          *************** illegal, since, under certain circumstan *** 1795,1800 **** --- 1583,1595 ---- those specified in the standard. The standard's description of unique does not say that overloading adjacent_find should have any effect.]

          + +

          [Curaçao: An LWG-subgroup spent an afternoon working on issues + 225, 226, and 229. Their conclusion was that the issues should be + separated into an LWG portion (Howard will write a proposal), and a + EWG portion (Dave will write a proposal). The LWG and EWG had + (separate) discussions of this plan the next day.]

          +

          226. User supplied specializations or overloads of namespace std function templates

          Section: 17.4.3.1 [lib.reserved.names]  Status: Open  Submitter: Dave Abrahams  Date: 01 Apr 2000

          *************** similar set of concerns was earlier rais *** 1867,1872 **** --- 1662,1680 ---- list and the ACCU-general mailing list. Also see library reflector message c++std-lib-7354.

          +

          + J. C. van Winkel points out (in c++std-lib-9565) another unexpected + fact: it's impossible to output a container of std::pair's using copy + and an ostream_iterator, as long as both pair-members are built-in or + std:: types. That's because a user-defined operator<< for (for + example) std::pair<const std::string, int> will not be found: + lookup for operator<< will be performed only in namespace std. + Opinions differed on whether or not this was a defect, and, if so, + whether the defect is that something is wrong with user-defined + functionality and std, or whether it's that the standard library does + not provide an operator<< for std::pair<>. +

          +

          Proposed resolution:

          [Tokyo: Summary, "There is no conforming way to extend *************** unqualified call of swap. (And *** 1924,1929 **** --- 1732,1743 ---- A small group (Nathan, Howard, Jeremy, Dave, Matt, Walter, Marc) will try to put together a proposal before the next meeting.]

          +

          [Curaçao: An LWG-subgroup spent an afternoon working on issues + 225, 226, and 229. Their conclusion was that the issues should be + separated into an LWG portion (Howard will write a proposal), and a + EWG portion (Dave will write a proposal). The LWG and EWG had + (separate) discussions of this plan the next day.]

          +

          229. Unqualified references of other library entities

          Section: 17.4.1.1 [lib.contents]  Status: Open  Submitter: Steve Clamage  Date: 19 Apr 2000

          *************** are intended to be called by library cod *** 1967,1975 **** concerned that valarray appears to require argument-dependent lookup, but that the wording may not be clear enough to fall under "unless explicitly described otherwise".]


          231. Precision in iostream?

          ! Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: Ready  Submitter: James Kanze, Stephen Clamage  Date:  25 Apr 2000

          What is the following program supposed to output?

          #include <iostream>
            
          --- 1781,1796 ----
            concerned that valarray appears to require argument-dependent lookup,
            but that the wording may not be clear enough to fall under
            "unless explicitly described otherwise".]

          + +

          [Curaçao: An LWG-subgroup spent an afternoon working on issues + 225, 226, and 229. Their conclusion was that the issues should be + separated into an LWG portion (Howard will write a proposal), and a + EWG portion (Dave will write a proposal). The LWG and EWG had + (separate) discussions of this plan the next day.]

          +

          231. Precision in iostream?

          ! Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: Open  Submitter: James Kanze, Stephen Clamage  Date:  25 Apr 2000

          What is the following program supposed to output?

          #include <iostream>
            
          *************** for %f and %e, but not for %g: for %g, p
          *** 2025,2033 ****
            to be the same as precision 1.

          The proposed resolution has the effect that the output of the above program will be "1e+00".


          233. Insertion hints in associative containers

          ! Section: 23.1.2 [lib.associative.reqmts]  Status: Review  Submitter: Andrew Koenig  Date: 30 Apr 2000

          If mm is a multimap and p is an iterator into the multimap, then mm.insert(p, x) inserts --- 1846,1858 ---- to be the same as precision 1.

          The proposed resolution has the effect that the output of the above program will be "1e+00".

          + +

          [Curaçao: Howard will send Matt improved wording dealing with + case not covered by current PR.]

          +

          233. Insertion hints in associative containers

          ! Section: 23.1.2 [lib.associative.reqmts]  Status: Open  Submitter: Andrew Koenig  Date: 30 Apr 2000

          If mm is a multimap and p is an iterator into the multimap, then mm.insert(p, x) inserts *************** t is inserted adjacent to iterator p. *** 2095,2112 ****

          [Toronto: there was general agreement that this is a real defect: when inserting an element x into a multiset that already contains several copies of x, there is no way to know whether the hint will be ! used. There was some support for an alternative resolution: we check ! on both sides of the hint (both before and after, in that order). If ! either is the correct location, the hint is used; otherwise it is not. ! This would be different from the original proposed resolution, because ! in the proposed resolution the hint will be used even if it is very ! far from the insertion point. JC van Winkel supplied precise wording ! for both options.]

          !

          [Copenhagen: the LWG looked at both options, and preferred the ! original. This preference is contingent on seeing a reference implementation showing that it is possible to implement this ! requirement without loss of efficiency.]

          [Redmond: The LWG was reluctant to adopt the proposal that emerged from Copenhagen: it seemed excessively complicated, and went --- 1920,1940 ----

          [Toronto: there was general agreement that this is a real defect: when inserting an element x into a multiset that already contains several copies of x, there is no way to know whether the hint will be ! used. The proposed resolution was that the new element should always ! be inserted as close to the hint as possible. So, for example, if ! there is a subsequence of equivalent values, then providing a.begin() ! as the hint means that the new element should be inserted before the ! subsequence even if a.begin() is far away. JC van Winkel supplied ! precise wording for this proposed resolution, and also for an ! alternative resolution in which hints are only used when they are ! adjacent to the insertion point.]

          !

          [Copenhagen: the LWG agreed to the original proposed resolution, ! in which an insertion hint would be used even when it is far from the ! insertion point. This was contingent on seeing a reference implementation showing that it is possible to implement this ! requirement without loss of efficiency. John Potter provided such a ! reference implementation.]

          [Redmond: The LWG was reluctant to adopt the proposal that emerged from Copenhagen: it seemed excessively complicated, and went *************** you can do it efficiently enough with a *** 2117,2208 **** other (perhaps better) balanced tree techniques that might differ enough to make the detailed semantics hard to satisfy."]

          !
          !

          239. Complexity of unique() and/or unique_copy incorrect

          ! Section: 25.2.8 [lib.alg.unique]  Status: Review  Submitter: Angelika Langer  Date: May 15 2000

          !

          The complexity of unique and unique_copy are inconsistent with each ! other and inconsistent with the implementations.  The standard ! specifies:

          ! !

          for unique():

          ! !
          -3- Complexity: If the range (last - first) is not empty, exactly ! (last - first) - 1 applications of the corresponding predicate, otherwise ! no applications of the predicate.
          ! !

          for unique_copy():

          ! !
          -7- Complexity: Exactly last - first applications of the corresponding ! predicate.
          ! !

          ! The implementations do it the other way round: unique() applies the ! predicate last-first times and unique_copy() applies it last-first-1 ! times.

          ! !

          As both algorithms use the predicate for pair-wise comparison of ! sequence elements I don't see a justification for unique_copy() ! applying the predicate last-first times, especially since it is not ! specified to which pair in the sequence the predicate is applied ! twice.

          !

          Proposed resolution:

          !

          Change both complexity sections in 25.2.8 [lib.alg.unique] to:

          ! !
          Complexity: For nonempty ranges, exactly last - first - 1 ! applications of the corresponding predicate.
          ! !
          !

          240. Complexity of adjacent_find() is meaningless

          ! Section: 25.1.5 [lib.alg.adjacent.find]  Status: Ready  Submitter: Angelika Langer  Date: May 15 2000

          !

          The complexity section of adjacent_find is defective:

          ! !
          !
          ! template <class ForwardIterator>
          ! ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last
          !                               BinaryPredicate pred);
          ! 
          ! !

          -1- Returns: The first iterator i such that both i and i + 1 are in ! the range [first, last) for which the following corresponding ! conditions hold: *i == *(i + 1), pred(*i, *(i + 1)) != false. Returns ! last if no such iterator is found.

          ! !

          -2- Complexity: Exactly find(first, last, value) - first applications ! of the corresponding predicate. !

          !
          ! !

          In the Complexity section, it is not defined what "value" ! is supposed to mean. My best guess is that "value" means an ! object for which one of the conditions pred(*i,value) or ! pred(value,*i) is true, where i is the iterator defined in the Returns ! section. However, the value type of the input sequence need not be ! equality-comparable and for this reason the term find(first, last, ! value) - first is meaningless.

          ! !

          A term such as find_if(first, last, bind2nd(pred,*i)) - first or ! find_if(first, last, bind1st(pred,*i)) - first might come closer to ! the intended specification. Binders can only be applied to function ! objects that have the function call operator declared const, which is ! not required of predicates because they can have non-const data ! members. For this reason, a specification using a binder could only be ! an "as-if" specification.

          !

          Proposed resolution:

          !

          Change the complexity section in 25.1.5 [lib.alg.adjacent.find] to:

          !
          ! For a nonempty range, exactly min((i - first) + 1, ! (last - first) - 1) applications of the ! corresponding predicate, where i is adjacent_find's ! return value. !
          ! !

          [Copenhagen: the original resolution specified an upper ! bound. The LWG preferred an exact count.]


          241. Does unique_copy() require CopyConstructible and Assignable?

          ! Section: 25.2.8 [lib.alg.unique]  Status: Review  Submitter: Angelika Langer  Date: May 15 2000

          Some popular implementations of unique_copy() create temporary copies of values in the input sequence, at least if the input iterator --- 1945,1956 ---- other (perhaps better) balanced tree techniques that might differ enough to make the detailed semantics hard to satisfy."]

          !

          [Curaçao: Nathan should give us the alternative wording he ! suggests so the LWG can decide between the two options.]


          241. Does unique_copy() require CopyConstructible and Assignable?

          ! Section: 25.2.8 [lib.alg.unique]  Status: Ready  Submitter: Angelika Langer  Date: May 15 2000

          Some popular implementations of unique_copy() create temporary copies of values in the input sequence, at least if the input iterator *************** shall not overlap. *** 2231,2241 ****

          to:

          ! -4- Requires: The ranges [first, last) and [result, result+(last-first)) ! shall not overlap. The expression *result = *first must be valid. If ! both InputIterator and OutputIterator do not meet the requirements of ! forward iterator then the value type of InputIterator must be copy ! constructible. Otherwise copy constructible is not required.

          [Redmond: the original proposed resolution didn't impose an --- 1979,1990 ----

          to:

          !

          -4- Requires: The ranges [first, last) and [result, ! result+(last-first)) shall not overlap. The expression *result = ! *first must be valid. If neither InputIterator nor OutputIterator ! meets the requirements of forward iterator then the value type of ! InputIterator must be copy constructible. Otherwise copy ! constructible is not required.

          [Redmond: the original proposed resolution didn't impose an *************** it might be possible to implement un *** 2247,2252 **** --- 1996,2008 ---- requiring assignability, although current implementations do impose that requirement. Howard provided new wording.]

          +

          [ + Curaçao: The LWG changed the PR editorially to specify + "neither...nor...meet..." as clearer than + "both...and...do not meet...". Change believed to be so + minor as not to require re-review. + ]

          +

          247. vector, deque::insert complexity

          Section: 23.2.4.3 [lib.vector.modifiers]  Status: Open  Submitter: Lisa Lippincott  Date: 06 June 2000

          *************** complicated than a while loop whose body *** 2319,2325 **** insert.]


          253. valarray helper functions are almost entirely useless

          ! Section: 26.3.2.1 [lib.valarray.cons], 26.3.2.2 [lib.valarray.assign]  Status: Review  Submitter: Robert Klarer  Date: 31 Jul 2000

          This discussion is adapted from message c++std-lib-7056 posted November 11, 1999. I don't think that anyone can reasonably claim that the problem described below is NAD.

          --- 2075,2081 ---- insert.]


          253. valarray helper functions are almost entirely useless

          ! Section: 26.3.2.1 [lib.valarray.cons], 26.3.2.2 [lib.valarray.assign]  Status: Ready  Submitter: Robert Klarer  Date: 31 Jul 2000

          This discussion is adapted from message c++std-lib-7056 posted November 11, 1999. I don't think that anyone can reasonably claim that the problem described below is NAD.

          *************** copy constructor is potentially invoked *** 2570,2576 ****

          The copy constructor is a more serious problem, becuase failure during stack unwinding invokes terminate. The copy ! constructor must be nothrow.

          The fundamental problem is that it's difficult to get the nothrow requirement to work well with the requirement that the exception --- 2326,2334 ----

          The copy constructor is a more serious problem, becuase failure during stack unwinding invokes terminate. The copy ! constructor must be nothrow. Curaçao: Howard thinks this ! requirement is already present. !

          The fundamental problem is that it's difficult to get the nothrow requirement to work well with the requirement that the exception *************** members thought there was a real defect *** 2607,2612 **** --- 2365,2372 ---- (Herb, Kevlin, Howard, Martin, Dave) will try to make a recommendation.]

          +

          [Curaçao: Howard will nag the others to work on a recommendation.]

          +

          258. Missing allocator requirement

          Section: 20.1.5 [lib.allocator.requirements]  Status: Open  Submitter: Matt Austern  Date: 22 Aug 2000

          *************** the second line from the bottom in table *** 2678,3134 **** desired property. This issue should be considered in light of other issues related to allocator instances.]


          -

          270. Binary search requirements overly strict

          - Section: 25.3.3 [lib.alg.binary.search]  Status: Ready  Submitter: Matt Austern  Date: 18 Oct 2000

          -

          - Each of the four binary search algorithms (lower_bound, upper_bound, - equal_range, binary_search) has a form that allows the user to pass a - comparison function object. According to 25.3, paragraph 2, that - comparison function object has to be a strict weak ordering. -

          - -

          - This requirement is slightly too strict. Suppose we are searching - through a sequence containing objects of type X, where X is some - large record with an integer key. We might reasonably want to look - up a record by key, in which case we would want to write something - like this: -

          -
          -     struct key_comp {
          -       bool operator()(const X& x, int n) const {
          -         return x.key() < n;
          -       }
          -     }
          - 
          -     std::lower_bound(first, last, 47, key_comp());
          - 
          - -

          - key_comp is not a strict weak ordering, but there is no reason to - prohibit its use in lower_bound. -

          - -

          - There's no difficulty in implementing lower_bound so that it allows - the use of something like key_comp. (It will probably work unless an - implementor takes special pains to forbid it.) What's difficult is - formulating language in the standard to specify what kind of - comparison function is acceptable. We need a notion that's slightly - more general than that of a strict weak ordering, one that can encompass - a comparison function that involves different types. Expressing that - notion may be complicated. -

          - -

          Additional questions raised at the Toronto meeting:

          -
            -
          • Do we really want to specify what ordering the implementor must - use when calling the function object? The standard gives - specific expressions when describing these algorithms, but it also - says that other expressions (with different argument order) are - equivalent.
          • -
          • If we are specifying ordering, note that the standard uses both - orderings when describing equal_range.
          • -
          • Are we talking about requiring these algorithms to work properly - when passed a binary function object whose two argument types - are not the same, or are we talking about requirements when - they are passed a binary function object with several overloaded - versions of operator()?
          • -
          • The definition of a strict weak ordering does not appear to give - any guidance on issues of overloading; it only discusses expressions, - and all of the values in these expressions are of the same type. - Some clarification would seem to be in order.
          • -
          - -

          Additional discussion from Copenhagen:

          -
            -
          • It was generally agreed that there is a real defect here: if - the predicate is merely required to be a Strict Weak Ordering, then - it's possible to pass in a function object with an overloaded - operator(), where the version that's actually called does something - completely inappropriate. (Such as returning a random value.)
          • - -
          • An alternative formulation was presented in a paper distributed by - David Abrahams at the meeting, "Binary Search with Heterogeneous - Comparison", J16-01/0027 = WG21 N1313: Instead of viewing the - predicate as a Strict Weak Ordering acting on a sorted sequence, view - the predicate/value pair as something that partitions a sequence. - This is almost equivalent to saying that we should view binary search - as if we are given a unary predicate and a sequence, such that f(*p) - is true for all p below a specific point and false for all p above it. - The proposed resolution is based on that alternative formulation.
          • -
          -

          Proposed resolution:

          - -

          Change 25.3 [lib.alg.sorting] paragraph 3 from:

          - -
          - 3 For all algorithms that take Compare, there is a version that uses - operator< instead. That is, comp(*i, *j) != false defaults to *i < - *j != false. For the algorithms to work correctly, comp has to - induce a strict weak ordering on the values. -
          - -

          to:

          - -
          - 3 For all algorithms that take Compare, there is a version that uses - operator< instead. That is, comp(*i, *j) != false defaults to *i - < *j != false. For algorithms other than those described in - lib.alg.binary.search (25.3.3) to work correctly, comp has to induce - a strict weak ordering on the values. -
          - -

          Add the following paragraph after 25.3 [lib.alg.sorting] paragraph 5:

          - -
          - -6- A sequence [start, finish) is partitioned with respect to an - expression f(e) if there exists an integer n such that - for all 0 <= i < distance(start, finish), f(*(begin+i)) is true if - and only if i < n. -
          - -

          Change 25.3.3 [lib.alg.binary.search] paragraph 1 from:

          - -
          - -1- All of the algorithms in this section are versions of binary - search and assume that the sequence being searched is in order - according to the implied or explicit comparison function. They work - on non-random access iterators minimizing the number of - comparisons, which will be logarithmic for all types of - iterators. They are especially appropriate for random access - iterators, because these algorithms do a logarithmic number of - steps through the data structure. For non-random access iterators - they execute a linear number of steps. -
          - -

          to:

          - -
          - -1- All of the algorithms in this section are versions of binary - search and assume that the sequence being searched is partitioned - with respect to an expression formed by binding the search key to - an argument of the implied or explicit comparison function. They - work on non-random access iterators minimizing the number of - comparisons, which will be logarithmic for all types of - iterators. They are especially appropriate for random access - iterators, because these algorithms do a logarithmic number of - steps through the data structure. For non-random access iterators - they execute a linear number of steps. -
          - -

          Change 25.3.3.1 [lib.lower.bound] paragraph 1 from:

          - -
          - -1- Requires: Type T is LessThanComparable - (lib.lessthancomparable). -
          - -

          to:

          - -
          - -1- Requires: The elements e of [first, last) are partitioned with - respect to the expression e < value or comp(e, value) -
          - - -

          Remove 25.3.3.1 [lib.lower.bound] paragraph 2:

          - -
          - -2- Effects: Finds the first position into which value can be - inserted without violating the ordering. -
          - -

          Change 25.3.3.2 [lib.upper.bound] paragraph 1 from:

          - -
          - -1- Requires: Type T is LessThanComparable (lib.lessthancomparable). -
          - -

          to:

          - -
          - -1- Requires: The elements e of [first, last) are partitioned with - respect to the expression !(value < e) or !comp(value, e) -
          - -

          Remove 25.3.3.2 [lib.upper.bound] paragraph 2:

          - -
          - -2- Effects: Finds the furthermost position into which value can be - inserted without violating the ordering. -
          - -

          Change 25.3.3.3 [lib.equal.range] paragraph 1 from:

          - -
          - -1- Requires: Type T is LessThanComparable - (lib.lessthancomparable). -
          - -

          to:

          - -
          - -1- Requires: The elements e of [first, last) are partitioned with - respect to the expressions e < value and !(value < e) or - comp(e, value) and !comp(value, e). Also, for all elements e of - [first, last), e < value implies !(value < e) or comp(e, - value) implies !comp(value, e) -
          - -

          Change 25.3.3.3 [lib.equal.range] paragraph 2 from:

          - -
          - -2- Effects: Finds the largest subrange [i, j) such that the value - can be inserted at any iterator k in it without violating the - ordering. k satisfies the corresponding conditions: !(*k < value) - && !(value < *k) or comp(*k, value) == false && comp(value, *k) == - false. -
          - -

          to:

          - -
          -    -2- Returns: 
          -          make_pair(lower_bound(first, last, value),
          -                    upper_bound(first, last, value))
          -        or
          -          make_pair(lower_bound(first, last, value, comp),
          -                    upper_bound(first, last, value, comp))
          - 
          - -

          Change 25.3.3.3 [lib.binary.search] paragraph 1 from:

          - -
          - -1- Requires: Type T is LessThanComparable - (lib.lessthancomparable). -
          - -

          to:

          - -
          - -1- Requires: The elements e of [first, last) are partitioned with - respect to the expressions e < value and !(value < e) or comp(e, - value) and !comp(value, e). Also, for all elements e of [first, - last), e < value implies !(value < e) or comp(e, value) implies - !comp(value, e) -
          - -

          [Copenhagen: Dave Abrahams provided this wording]

          - -

          [Redmond: Minor changes in wording. (Removed "non-negative", and - changed the "other than those described in" wording.) Also, the LWG - decided to accept the "optional" part.]

          - -

          Rationale:

          -

          The proposed resolution reinterprets binary search. Instead of - thinking about searching for a value in a sorted range, we view that - as an important special case of a more general algorithm: searching - for the partition point in a partitioned range.

          - -

          We also add a guarantee that the old wording did not: we ensure - that the upper bound is no earlier than the lower bound, that - the pair returned by equal_range is a valid range, and that the first - part of that pair is the lower bound.

          -
          -

          274. a missing/impossible allocator requirement

          - Section: 20.1.5 [lib.allocator.requirements]  Status: Ready  Submitter: Martin Sebor  Date: 02 Nov 2000

          -

          - I see that table 31 in 20.1.5, p3 allows T in std::allocator<T> to be of - any type. But the synopsis in 20.4.1 calls for allocator<>::address() to - be overloaded on reference and const_reference, which is ill-formed for - all T = const U. In other words, this won't work: -

          - -

          - template class std::allocator<const int>; -

          - -

          - The obvious solution is to disallow specializations of allocators on - const types. However, while containers' elements are required to be - assignable (which rules out specializations on const T's), I think that - allocators might perhaps be potentially useful for const values in other - contexts. So if allocators are to allow const types a partial - specialization of std::allocator<const T> would probably have to be - provided. -

          -

          Proposed resolution:

          -

          Change the text in row 1, column 2 of table 32 in 20.1.5, p3 from

          - -
          - any type -
          - -

          to

          -
          - any non-const, non-reference type -
          - -

          [Redmond: previous proposed resolution was "any non-const, - non-volatile, non-reference type". Got rid of the "non-volatile".]

          - -

          Rationale:

          -

          - Two resolutions were originally proposed: one that partially - specialized std::allocator for const types, and one that said an - allocator's value type may not be const. The LWG chose the second. - The first wouldn't be appropriate, because allocators are intended for - use by containers, and const value types don't work in containers. - Encouraging the use of allocators with const value types would only - lead to unsafe code. -

          -

          - The original text for proposed resolution 2 was modified so that it - also forbids volatile types and reference types. -

          -
          -

          276. Assignable requirement for container value type overly strict

          - Section: 23.1 [lib.container.requirements]  Status: Ready  Submitter: Peter Dimov  Date: 07 Nov 2000

          -

          - 23.1/3 states that the objects stored in a container must be - Assignable. 23.3.1 [lib.map], paragraph 2, - states that map satisfies all requirements for a container, while in - the same time defining value_type as pair<const Key, T> - a type - that is not Assignable. -

          - -

          - It should be noted that there exists a valid and non-contradictory - interpretation of the current text. The wording in 23.1/3 avoids - mentioning value_type, referring instead to "objects stored in a - container." One might argue that map does not store objects of - type map::value_type, but of map::mapped_type instead, and that the - Assignable requirement applies to map::mapped_type, not - map::value_type. -

          - -

          - However, this makes map a special case (other containers store objects of - type value_type) and the Assignable requirement is needlessly restrictive in - general. -

          - -

          - For example, the proposed resolution of active library issue - 103 is to make set::iterator a constant iterator; this - means that no set operations can exploit the fact that the stored - objects are Assignable. -

          - -

          - This is related to, but slightly broader than, closed issue - 140. -

          -

          Proposed resolution:

          -

          23.1/3: Strike the trailing part of the sentence:

          -
          - , and the additional requirements of Assignable types from 23.1/3 -
          -

          so that it reads:

          -
          - -3- The type of objects stored in these components must meet the - requirements of CopyConstructible types (lib.copyconstructible). -
          - -

          23.1/4: Modify to make clear that this requirement is not for all - containers. Change to:

          - -
          - -4- Table 64 defines the Assignable requirement. Some containers - require this property of the types to be stored in the container. T is - the type used to instantiate the container. t is a value of T, and u is - a value of (possibly const) T. -
          - -

          23.1, Table 65: in the first row, change "T is Assignable" to "T is - CopyConstructible".

          - -

          23.2.1/2: Add sentence for Assignable requirement. Change to:

          - -
          - -2- A deque satisfies all of the requirements of a container and of a - reversible container (given in tables in lib.container.requirements) and - of a sequence, including the optional sequence requirements - (lib.sequence.reqmts). In addition to the requirements on the stored - object described in 23.1[lib.container.requirements], the stored object - must also meet the requirements of Assignable. Descriptions are - provided here only for operations on deque that are not described in one - of these tables or for operations where there is additional semantic - information. -
          - -

          23.2.2/2: Add Assignable requirement to specific methods of list. - Change to:

          - -
          -

          -2- A list satisfies all of the requirements of a container and of a - reversible container (given in two tables in lib.container.requirements) - and of a sequence, including most of the the optional sequence - requirements (lib.sequence.reqmts). The exceptions are the operator[] - and at member functions, which are not provided. - - [Footnote: These member functions are only provided by containers whose - iterators are random access iterators. --- end foonote] -

          - -

          list does not require the stored type T to be Assignable unless the - following methods are instantiated: - - [Footnote: Implementors are permitted but not required to take advantage - of T's Assignable properties for these methods. -- end foonote] -

          -
          -      list<T,Allocator>& operator=(const list<T,Allocator>&  x );
          -      template <class InputIterator>
          -        void assign(InputIterator first, InputIterator last);
          -      void assign(size_type n, const T& t);
          - 
          - - -

          Descriptions are provided here only for operations on list that are not - described in one of these tables or for operations where there is - additional semantic information.

          -
          - -

          23.2.4/2: Add sentence for Assignable requirement. Change to:

          - -
          - -2- A vector satisfies all of the requirements of a container and of a - reversible container (given in two tables in lib.container.requirements) - and of a sequence, including most of the optional sequence requirements - (lib.sequence.reqmts). The exceptions are the push_front and pop_front - member functions, which are not provided. In addition to the - requirements on the stored object described in - 23.1[lib.container.requirements], the stored object must also meet the - requirements of Assignable. Descriptions are provided here only for - operations on vector that are not described in one of these tables or - for operations where there is additional semantic information. -
          -

          Rationale:

          -

          list, set, multiset, map, multimap are able to store non-Assignables. - However, there is some concern about list<T>: - although in general there's no reason for T to be Assignable, some - implementations of the member functions operator= and - assign do rely on that requirement. The LWG does not want - to forbid such implementations.

          - -

          Note that the type stored in a standard container must still satisfy - the requirements of the container's allocator; this rules out, for - example, such types as "const int". See issue 274 - for more details. -

          - -

          In principle we could also relax the "Assignable" requirement for - individual vector member functions, such as - push_back. However, the LWG did not see great value in such - selective relaxation. Doing so would remove implementors' freedom to - implement vector::push_back in terms of - vector::insert.

          - -

          278. What does iterator validity mean?

          ! Section: 23.2.2.4 [lib.list.ops]  Status: Review  Submitter: P.J. Plauger  Date: 27 Nov 2000

          Section 23.2.2.4 [lib.list.ops] states that

          --- 2438,2445 ---- desired property. This issue should be considered in light of other issues related to allocator instances.]


          278. What does iterator validity mean?

          ! Section: 23.2.2.4 [lib.list.ops]  Status: Open  Submitter: P.J. Plauger  Date: 27 Nov 2000

          Section 23.2.2.4 [lib.list.ops] states that

          *************** has been invalidated is undefined.] *** 3171,3176 **** --- 2482,2492 ----

          [Redmond: General agreement with the intent, some objections to the wording. Dave provided new wording.]

          +

          [Curaçao: The definition of "singular" is + contentious.  The 278 resolution must be made consistent with + issue 208 and 24.1/5. Furthermore, a Rationale paragraph + is required.]

          +

          280. Comparison of reverse_iterator to const reverse_iterator

          Section: 24.4.1 [lib.reverse.iterators]  Status: Open  Submitter: Steve Cleary  Date: 27 Nov 2000

          *************** floating-point input even though this is *** 3277,3285 **** standard. ]


          283. std::replace() requirement incorrect/insufficient

          ! Section: 25.2.4 [lib.alg.replace]  Status: Review  Submitter: Martin Sebor  Date: 15 Dec 2000

          The requirements in 25.2.4 [lib.alg.replace], p1 that T to be Assignable (23.1 [lib.container.requirements]) is not necessary or --- 2593,2604 ---- standard. ]

          +

          [Curaçao: Howard will email Bill and other implementors to try to + move the issue forward.]

          +

          283. std::replace() requirement incorrect/insufficient

          ! Section: 25.2.4 [lib.alg.replace]  Status: Open  Submitter: Martin Sebor  Date: 15 Dec 2000

          The requirements in 25.2.4 [lib.alg.replace], p1 that T to be Assignable (23.1 [lib.container.requirements]) is not necessary or *************** std::iterator_traits<ForwardIterator& *** 3526,3578 **** (23.1 [lib.container.requirements]). !


          !

          284. unportable example in 20.3.7, p6

          ! Section: 20.3.7 [lib.function.pointer.adaptors]  Status: Ready  Submitter: Martin Sebor  Date: 26 Dec 2000

          !

          The example in 20.3.7 [lib.function.pointer.adaptors], p6 shows how to use the C ! library function strcmp() with the function pointer adapter ! ptr_fun(). But since it's unspecified whether the C library ! functions have extern "C" or extern ! "C++" linkage [17.4.2.2 [lib.using.linkage]], and since ! function pointers with different the language linkage specifications ! (7.5 [dcl.link]) are incompatible, whether this example is ! well-formed is unspecified. !

          !

          Proposed resolution:

          !

          Change 20.3.7 [lib.function.pointer.adaptors] paragraph 6 from:

          !
          !

          [Example: !

          !
          !     replace_if(v.begin(), v.end(), not1(bind2nd(ptr_fun(strcmp), "C")), "C++");
          !   
          !

          replaces each C with C++ in sequence v.

          !
          ! ! !

          to:

          !
          !

          [Example: !

          !
          !     int compare(const char*, const char*);
          !     replace_if(v.begin(), v.end(),
          !                not1(bind2nd(ptr_fun(compare), "abc")), "def");
          !   
          !

          replaces each abc with def in sequence v.

          !
          ! !

          Also, remove footnote 215 in that same paragraph.

          ! !

          [Copenhagen: Minor change in the proposed resolution. Since this ! issue deals in part with C and C++ linkage, it was believed to be too ! confusing for the strings in the example to be "C" and "C++". ! ]

          ! !

          [Redmond: More minor changes. Got rid of the footnote (which ! seems to make a sweeping normative requirement, even though footnotes ! aren't normative), and changed the sentence after the footnote so that ! it corresponds to the new code fragment.]


          290. Requirements to for_each and its function object

          --- 2845,2854 ---- (23.1 [lib.container.requirements]). !

          [Curaçao: Jeremy reports he has run the changes through his ! automated test tools. At the request of the LWG, Jeremy will reword ! the PR in terms of valid expressions rather than "equality ! operator".]


          290. Requirements to for_each and its function object

          *************** blanket statement in Clause 25, not just *** 3621,3627 ****


          291. Underspecification of set algorithms

          ! Section: 25.3.5 [lib.alg.set.operations]  Status: Open  Submitter: Matt Austern  Date: 03 Jan 2001

          The standard library contains four algorithms that compute set operations on sorted ranges: set_union, set_intersection, --- 2897,2903 ----


          291. Underspecification of set algorithms

          ! Section: 25.3.5 [lib.alg.set.operations]  Status: Review  Submitter: Matt Austern  Date: 03 Jan 2001

          The standard library contains four algorithms that compute set operations on sorted ranges: set_union, set_intersection, *************** same way. *** 3671,3678 ****

          Proposed resolution:

          !

          [The LWG agrees that the standard should answer these questions. ! Matt will provide wording.]


          294. User defined macros and standard headers

          Section: 17.4.3.1.1 [lib.macro.names]  Status: Open  Submitter: James Kanze  Date: 11 Jan 2001

          --- 2947,2996 ----

          Proposed resolution:

          ! !

          Add the following to the end of 25.3.5.2 [lib.set.union] paragraph 5:

          !
          ! If [first1, last1) contains m elements that are equivalent to ! each other and [first2, last2) contains n elements that are ! equivalent to them, then max(m, n) of these elements ! will be copied to the output range: all m of these elements ! from [first1, last1), and the last max(n-m, 0) of them from ! [first2, last2), in that order. !
          ! !

          Add the following to the end of 25.3.5.3 [lib.set.intersection] paragraph 5:

          !
          ! If [first1, last1) contains m elements that are equivalent to each ! other and [first2, last2) contains n elements that are ! equivalent to them, the first min(m, n) of those ! elements from [first1, last1) are copied to the output range. !
          ! !

          Add a new paragraph, Notes, after 25.3.5.4 [lib.set.difference] ! paragraph 4:

          !
          ! If [first1, last1) contains m elements that are equivalent to each ! other and [first2, last2) contains n elements that are ! equivalent to them, the last max(m-n, 0) elements from ! [first1, last1) are copied to the output range. !
          ! !

          Add a new paragraph, Notes, after 25.3.5.5 [lib.set.symmetric.difference] ! paragraph 4:

          !
          ! If [first1, last1) contains m elements that are equivalent to ! each other and [first2, last2) contains n elements that are ! equivalent to them, then |m - n| of those elements will be ! copied to the output range: the last m - n of these elements ! from [first1, last1) if m > n, and the last n - ! m of these elements from [first2, last2) if m < n. !
          ! !

          [Curaçao: Missing Rationale and missing status comments from ! Redmond made discussion difficult. For union, doesn't the standard ! already say this? Howard, others think maybe so. Several thought the ! PR may be "too complicated".]

          !

          294. User defined macros and standard headers

          Section: 17.4.3.1.1 [lib.macro.names]  Status: Open  Submitter: James Kanze  Date: 11 Jan 2001

          *************** about issue 299 should keep this possibi *** 3768,3773 **** --- 3086,3093 ----

          In section 24.1.5 [lib.random.access.iterators], change the return type in table 76 from "convertible to T" to T&.

          +

          [Curaçao: Jeremy volunteered to work on this issue.]

          +

          300. list::merge() specification incomplete

          Section: 23.2.2.4 [lib.list.ops]  Status: Open  Submitter: John Pedretti  Date: 23 Jan 2001

          *************** Changing p23, without changing the other *** 3794,3799 **** --- 3114,3121 ---- contradictions. Additionally, "merges the argument list into the list" is excessively vague.]

          +

          [Curaçao: Robert Klarer volunteers to work on this issue.]

          +

          304. Must *a return an lvalue when a is an input iterator?

          Section: 24.1 [lib.iterator.requirements]  Status: Open  Submitter: Dave Abrahams  Date: 5 Feb 2001

          *************** it has no operator->. A str *** 3834,3840 **** support for the two options.]


          305. Default behavior of codecvt<wchar_t, char, mbstate_t>::length()

          ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: Review  Submitter: Howard Hinnant  Date: 24 Jan 2001

          22.2.1.5/3 introduces codecvt in part with:

          --- 3156,3162 ---- support for the two options.]


          305. Default behavior of codecvt<wchar_t, char, mbstate_t>::length()

          ! Section: 22.2.1.5.2 [lib.locale.codecvt.virtuals]  Status: Ready  Submitter: Howard Hinnant  Date: 24 Jan 2001

          22.2.1.5/3 introduces codecvt in part with:

          *************** would expect the default encoding to be *** 3939,3946 **** "C" locale. We could impose a guarantee like the one Nathan suggested (a character from the basic execution character set must map to a single external character), but this would rule out important ! encodings that are in common use: it would rule out Shift-JIS, for example, and it would rule out a fixed-width encoding of UCS-4.


          309. Does sentry catch exceptions?

          Section: 27.6 [lib.iostream.format]  Status: Open  Submitter: Martin Sebor  Date: 19 Mar 2001

          --- 3261,3272 ---- "C" locale. We could impose a guarantee like the one Nathan suggested (a character from the basic execution character set must map to a single external character), but this would rule out important ! encodings that are in common use: it would rule out JIS, for example, and it would rule out a fixed-width encoding of UCS-4.

          + +

          [Curaçao: fixed rationale typo at the request of Ichiro Koshida; + "shift-JIS" changed to "JIS".]

          +

          309. Does sentry catch exceptions?

          Section: 27.6 [lib.iostream.format]  Status: Open  Submitter: Martin Sebor  Date: 19 Mar 2001

          *************** the sentries. *** 4045,4313 **** ]


          -

          310. Is errno a macro?

          - Section: 17.4.1.2 [lib.headers], 19.3 [lib.errno]  Status: Ready  Submitter: Steve Clamage  Date: 21 Mar 2001

          -

          - Exactly how should errno be declared in a conforming C++ header? -

          - -

          - The C standard says in 7.1.4 that it is unspecified whether errno is a - macro or an identifier with external linkage. In some implementations - it can be either, depending on compile-time options. (E.g., on - Solaris in multi-threading mode, errno is a macro that expands to a - function call, but is an extern int otherwise. "Unspecified" allows - such variability.) -

          - -

          The C++ standard:

          -
            -
          • 17.4.1.2 says in a note that errno must be macro in C. (false)
          • -
          • 17.4.3.1.3 footnote 166 says errno is reserved as an external - name (true), and implies that it is an identifier.
          • -
          • 19.3 simply lists errno as a macro (by what reasoning?) and goes - on to say that the contents of of C++ <errno.h> are the - same as in C, begging the question.
          • -
          • C.2, table 95 lists errno as a macro, without comment.
          • -
          - -

          I find no other references to errno.

          - -

          We should either explicitly say that errno must be a macro, even - though it need not be a macro in C, or else explicitly leave it - unspecified. We also need to say something about namespace std. - A user who includes <cerrno> needs to know whether to write - errno, or ::errno, or std::errno, or - else <cerrno> is useless.

          - -

          Two acceptable fixes:

          -
            -
          • errno must be a macro. This is trivially satisfied by adding
            -   #define errno (::std::errno)
            - to the headers if errno is not already a macro. You then always - write errno without any scope qualification, and it always expands - to a correct reference. Since it is always a macro, you know to - avoid using errno as a local identifer.

          • -
          • errno is in the global namespace. This fix is inferior, because - ::errno is not guaranteed to be well-formed.

          • -
          - -

          [ - This issue was first raised in 1999, but it slipped through - the cracks. - ]

          -

          Proposed resolution:

          -

          Change the Note in section 17.4.1.2p5 from

          - -
          - Note: the names defined as macros in C include the following: - assert, errno, offsetof, setjmp, va_arg, va_end, and va_start. -
          - -

          to

          - -
          - Note: the names defined as macros in C include the following: - assert, offsetof, setjmp, va_arg, va_end, and va_start. -
          - -

          In section 19.3, change paragraph 2 from

          - -
          - The contents are the same as the Standard C library header - <errno.h>. -
          - -

          to

          - -
          - The contents are the same as the Standard C library header - <errno.h>, except that errno shall be defined as a macro. -
          -

          Rationale:

          -

          C++ must not leave it up to the implementation to decide whether - or not a name is a macro; it must explicitly specify exactly which - names are required to be macros.

          -
          -

          311. Incorrect wording in basic_ostream class synopsis

          - Section: 27.6.2.1 [lib.ostream]  Status: Ready  Submitter: Andy Sawyer  Date: 21 Mar 2001

          - -

          In 27.6.2.1 [lib.ostream], the synopsis of class basic_ostream says:

          - -
          -   // partial specializationss
          -   template<class traits>
          -     basic_ostream<char,traits>& operator<<( basic_ostream<char,traits>&,
          -                                             const char * );
          - 
          - -

          Problems:

          -
            -
          • Too many 's's at the end of "specializationss"
          • -
          • This is an overload, not a partial specialization
          • -
          - -

          Proposed resolution:

          -

          In the synopsis in 27.6.2.1 [lib.ostream], remove the - // partial specializationss comment. Also remove the same - comment (correctly spelled, but still incorrect) from the synopsis in - 27.6.2.5.4 [lib.ostream.inserters.character]. -

          - -

          [ - Pre-Redmond: added 27.6.2.5.4 [lib.ostream.inserters.character] because of Martin's - comment in c++std-lib-8939. - ]

          - -
          -

          315. Bad "range" in list::unique complexity

          - Section: 23.2.2.4 [lib.list.ops]  Status: Ready  Submitter: Andy Sawyer  Date: 1 May 2001

          -

          - 23.2.2.4 [lib.list.ops], Para 21 describes the complexity of - list::unique as: "If the range (last - first) is not empty, exactly - (last - first) -1 applications of the corresponding predicate, - otherwise no applications of the predicate)". -

          - -

          - "(last - first)" is not a range. -

          -

          Proposed resolution:

          -

          - Change the "range" from (last - first) to [first, last). -

          -
          -

          316. Vague text in Table 69

          - Section: 23.1.2 [lib.associative.reqmts]  Status: Ready  Submitter: Martin Sebor  Date: 4 May 2001

          -

          Table 69 says this about a_uniq.insert(t):

          - -
          - inserts t if and only if there is no element in the container with key - equivalent to the key of t. The bool component of the returned pair - indicates whether the insertion takes place and the iterator component of the - pair points to the element with key equivalent to the key of t. -
          - -

          The description should be more specific about exactly how the bool component - indicates whether the insertion takes place.

          -

          Proposed resolution:

          -

          Change the text in question to

          - -
          - ...The bool component of the returned pair is true if and only if the insertion - takes place... -
          -
          -

          317. Instantiation vs. specialization of facets

          - Section: 22 [lib.localization]  Status: Ready  Submitter: Martin Sebor  Date: 4 May 2001

          -

          - The localization section of the standard refers to specializations of - the facet templates as instantiations even though the required facets - are typically specialized rather than explicitly (or implicitly) - instantiated. In the case of ctype<char> and - ctype_byname<char> (and the wchar_t versions), these facets are - actually required to be specialized. The terminology should be - corrected to make it clear that the standard doesn't mandate explicit - instantiation (the term specialization encompasses both explicit - instantiations and specializations). -

          -

          Proposed resolution:

          -

          - In the following paragraphs, replace all occurrences of the word - instantiation or instantiations with specialization or specializations, - respectively: -

          - -
          - 22.1.1.1.1, p4, Table 52, 22.2.1.1, p2, 22.2.1.5, p3, 22.2.1.5.1, p5, - 22.2.1.5.2, p10, 22.2.2, p2, 22.2.3.1, p1, 22.2.3.1.2, p1, p2 and p3, - 22.2.4.1, p1, 22.2.4.1.2, p1, 22,2,5, p1, 22,2,6, p2, 22.2.6.3.2, p7, and - Footnote 242. -
          - -

          And change the text in 22.1.1.1.1, p4 from

          - -
          - An implementation is required to provide those instantiations - for facet templates identified as members of a category, and - for those shown in Table 52: -
          - -

          to

          - -
          - An implementation is required to provide those specializations... -
          - -

          [Nathan will review these changes, and will look for places where - explicit specialization is necessary.]

          - -

          Rationale:

          -

          This is a simple matter of outdated language. The language to - describe templates was clarified during the standardization process, - but the wording in clause 22 was never updated to reflect that - change.

          -
          -

          318. Misleading comment in definition of numpunct_byname

          - Section: 22.2.3.2 [lib.locale.numpunct.byname]  Status: Ready  Submitter: Martin Sebor  Date: 12 May 2001

          -

          The definition of the numpunct_byname template contains the following - comment:

          - -
          -     namespace std {
          -         template <class charT>
          -         class numpunct_byname : public numpunct<charT> {
          -     // this class is specialized for char and wchar_t.
          -         ...
          - 
          - -

          There is no documentation of the specializations and it seems - conceivable that an implementation will not explicitly specialize the - template at all, but simply provide the primary template.

          -

          Proposed resolution:

          -

          Remove the comment from the text in 22.2.3.2 and from the proposed - resolution of library issue 228.

          -
          -

          319. Storage allocation wording confuses "Required behavior", "Requires"

          - Section: 18.4.1.1 [lib.new.delete.single], 18.4.1.2 [lib.new.delete.array]  Status: Ready  Submitter: Beman Dawes  Date: 15 May 2001

          -

          The standard specifies 17.3.1.3 [lib.structure.specifications] that "Required - behavior" elements describe "the semantics of a function definition - provided by either the implementation or a C++ program."

          - -

          The standard specifies 17.3.1.3 [lib.structure.specifications] that "Requires" - elements describe "the preconditions for calling the function."

          - -

          In the sections noted below, the current wording specifies - "Required Behavior" for what are actually preconditions, and thus - should be specified as "Requires".

          - -

          Proposed resolution:

          - -

          In 18.4.1.1 [lib.new.delete.single] Para 12 Change:

          -
          -

          Required behavior: accept a value of ptr that is null or that was - returned by an earlier call ...

          -
          -

          to:

          -
          -

          Requires: the value of ptr is null or the value returned by an - earlier call ...

          -
          - -

          In 18.4.1.2 [lib.new.delete.array] Para 11 Change:

          -
          -

          Required behavior: accept a value of ptr that is null or that was - returned by an earlier call ...

          -
          -

          to:

          -
          -

          Requires: the value of ptr is null or the value returned by an - earlier call ...

          -
          - -

          320. list::assign overspecified

          ! Section: 23.2.2.1 [lib.list.cons]  Status: Review  Submitter: Howard Hinnant  Date: 17 May 2001

          Section 23.2.2.1, paragraphs 6-8 specify that list assign (both forms) have the "effects" of a call to erase followed by a call to insert. --- 3371,3378 ---- ]


          320. list::assign overspecified

          ! Section: 23.2.2.1 [lib.list.cons]  Status: Ready  Submitter: Howard Hinnant  Date: 17 May 2001

          Section 23.2.2.1, paragraphs 6-8 specify that list assign (both forms) have the "effects" of a call to erase followed by a call to insert. *************** Metrowerks and SGI recycle nodes, Dinkum *** 4351,4361 ****

          In 23.1.1 [lib.sequence.reqmts], in Table 67 (sequence requirements), ! add a new row:

                  a.assign(i,j)     void      pre: i,j are not iterators into a.
          !                                   Replaces elements in a with copies
          !                                   of elements in [i, j).
            

          Change 23.2.2.1/8 from:

          --- 3416,3430 ----

          In 23.1.1 [lib.sequence.reqmts], in Table 67 (sequence requirements), ! add two new rows:

                  a.assign(i,j)     void      pre: i,j are not iterators into a.
          !                                   Replaces elements in a with a copy
          !                                   of [i, j).
          ! 
          !       a.assign(n,t)     void      pre: t is not a reference into a.
          !                                   Replaces elements in a with n copies
          !                                   of t.
            

          Change 23.2.2.1/8 from:

          *************** Also, the change in the sequence require *** 4380,4437 **** change, the proposed resolution would have required that assignment of a subrange would have to work. That too would have been overspecification; it would effectively mandate that assignment use a ! temporary. ]

          !
          !

          321. Typo in num_get

          ! Section: 22.2.2.1.2 [lib.facet.num.get.virtuals]  Status: Ready  Submitter: Kevin Djang  Date: 17 May 2001

          !

          ! Section 22.2.2.1.2 at p7 states that "A length specifier is added to ! the conversion function, if needed, as indicated in Table 56." ! However, Table 56 uses the term "length modifier", not "length ! specifier". !

          !

          Proposed resolution:

          !

          ! In 22.2.2.1.2 at p7, change the text "A length specifier is added ..." ! to be "A length modifier is added ..." !

          !

          Rationale:

          !

          C uses the term "length modifier". We should be consistent.

          !
          !

          322. iterator and const_iterator should have the same value type

          ! Section: 23.1 [lib.container.requirements]  Status: Ready  Submitter: Matt Austern  Date: 17 May 2001

          !

          ! It's widely assumed that, if X is a container, ! iterator_traits<X::iterator>::value_type and ! iterator_traits<X::const_iterator>::value_type should both be ! X::value_type. However, this is nowhere stated. The language in ! Table 65 is not precise about the iterators' value types (it predates ! iterator_traits), and could even be interpreted as saying that ! iterator_traits<X::const_iterator>::value_type should be "const ! X::value_type". !

          -

          Related issue: 279.

          -

          Proposed resolution:

          -

          In Table 65 ("Container Requirements"), change the return type for - X::iterator to "iterator type whose value type is T". Change the - return type for X::const_iterator to "constant iterator type whose - value type is T".

          -

          Rationale:

          -

          - This belongs as a container requirement, rather than an iterator - requirement, because the whole notion of iterator/const_iterator - pairs is specific to containers' iterator. -

          -

          - It is existing practice that (for example) - iterator_traits<list<int>::const_iterator>::value_type - is "int", rather than "const int". This is consistent with - the way that const pointers are handled: the standard already - requires that iterator_traits<const int*>::value_type is int. -


          323. abs() overloads in different headers

          Section: 26.5 [lib.c.math]  Status: Open  Submitter: Dave Abrahams  Date: 4 June 2001

          --- 3449,3462 ---- change, the proposed resolution would have required that assignment of a subrange would have to work. That too would have been overspecification; it would effectively mandate that assignment use a ! temporary. Howard provided wording. ]

          !

          [Curaçao: Made editorial improvement in wording; changed ! "Replaces elements in a with copies of elements in [i, j)." ! with "Replaces the elements of a with a copy of [i, j)." ! Changes not deemed serious enough to requre rereview.]


          323. abs() overloads in different headers

          Section: 26.5 [lib.c.math]  Status: Open  Submitter: Dave Abrahams  Date: 4 June 2001

          *************** defined in which headers. (See issue

          324. Do output iterators have value types?

          ! Section: 24.1.2 [lib.output.iterators]  Status: Review  Submitter: Dave Abrahams  Date: 7 June 2001

          Table 73 suggests that output iterators have value types. It requires the expression "*a = t". Additionally, although Table 73 --- 3512,3518 ----


          324. Do output iterators have value types?

          ! Section: 24.1.2 [lib.output.iterators]  Status: Ready  Submitter: Dave Abrahams  Date: 7 June 2001

          Table 73 suggests that output iterators have value types. It requires the expression "*a = t". Additionally, although Table 73 *************** output iterators' pointer and reference *** 4540,4546 ****

          All iterators i support the expression *i, resulting in a value of some class, enumeration, or built-in type T, ! called the value type of the itereator.

          to

          --- 3565,3571 ----

          All iterators i support the expression *i, resulting in a value of some class, enumeration, or built-in type T, ! called the value type of the iterator.

          to

          *************** and any language suggesting otherwise is *** 4611,4617 **** decision.


          325. Misleading text in moneypunct<>::do_grouping

          ! Section: 22.2.6.3.2 [lib.locale.moneypunct.virtuals]  Status: Review  Submitter: Martin Sebor  Date: 02 Jul 2001

          The Returns clause in 22.2.6.3.2, p3 says about moneypunct<charT>::do_grouping()

          --- 3636,3642 ---- decision.


          325. Misleading text in moneypunct<>::do_grouping

          ! Section: 22.2.6.3.2 [lib.locale.moneypunct.virtuals]  Status: Ready  Submitter: Martin Sebor  Date: 02 Jul 2001

          The Returns clause in 22.2.6.3.2, p3 says about moneypunct<charT>::do_grouping()

          *************** locale. It is just a reminder that the v *** 4663,4709 **** integers, not ASCII characters.


          -

          327. Typo in time_get facet in table 52

          - Section: 22.1.1.1.1 [lib.locale.category]  Status: Ready  Submitter: Tiki Wan  Date: 06 Jul 2001

          -

          The wchar_t versions of time_get and - time_get_byname are listed incorrectly in table 52, - required instantiations. In both cases the second template - parameter is given as OutputIterator. It should instead be - InputIterator, since these are input facets.

          -

          Proposed resolution:

          -

          - In table 52, required instantiations, in - 22.1.1.1.1 [lib.locale.category], change

          -
          -     time_get<wchar_t, OutputIterator>
          -     time_get_byname<wchar_t, OutputIterator>
          - 
          -

          to

          -
          -     time_get<wchar_t, InputIterator>
          -     time_get_byname<wchar_t, InputIterator>
          - 
          - -

          [Redmond: Very minor change in proposed resolution. Original had - a typo, wchart instead of wchar_t.]

          - -
          -

          328. Bad sprintf format modifier in money_put<>::do_put()

          - Section: 22.2.6.2.2 [lib.locale.money.put.virtuals]  Status: Ready  Submitter: Martin Sebor  Date: 07 Jul 2001

          -

          The sprintf format string , "%.01f" (that's the digit one), in the - description of the do_put() member functions of the money_put facet in - 22.2.6.2.2, p1 is incorrect. First, the f format specifier is wrong - for values of type long double, and second, the precision of 01 - doesn't seem to make sense. What was most likely intended was - "%.0Lf"., that is a precision of zero followed by the L length - modifier.

          -

          Proposed resolution:

          -

          Change the format string to "%.0Lf".

          -

          Rationale:

          -

          Fixes an obvious typo

          -

          329. vector capacity, reserve and reallocation

          ! Section: 23.2.4.2 [lib.vector.capacity], 23.2.4.3 [lib.vector.modifiers]  Status: Review  Submitter: Anthony Williams  Date: 13 Jul 2001

          There is an apparent contradiction about which circumstances can cause a reallocation of a vector in Section 23.2.4.2 [lib.vector.capacity] and --- 3688,3695 ---- integers, not ASCII characters.


          329. vector capacity, reserve and reallocation

          ! Section: 23.2.4.2 [lib.vector.capacity], 23.2.4.3 [lib.vector.modifiers]  Status: Ready  Submitter: Anthony Williams  Date: 13 Jul 2001

          There is an apparent contradiction about which circumstances can cause a reallocation of a vector in Section 23.2.4.2 [lib.vector.capacity] and *************** the argument to the first, the intent wa *** 4784,4828 **** have no effect. Wording implying that such cases have an effect on reallocation guarantees was inadvertant.


          -

          331. bad declaration of destructor for ios_base::failure

          - Section: 27.4.2.1.1 [lib.ios::failure]  Status: Ready  Submitter: PremAnand M. Rao  Date: 23 Aug 2001

          -

          - With the change in 17.4.4.8 [lib.res.on.exception.handling] to state - "An implementation may strengthen the exception-specification for a - non-virtual function by removing listed exceptions." - (issue 119) - and the following declaration of ~failure() in ios_base::failure -

          -
          -     namespace std {
          -        class ios_base::failure : public exception {
          -        public:
          -            ...
          -            virtual ~failure();
          -            ...
          -        };
          -      }
          - 
          -

          the class failure cannot be implemented since in 18.6.1 [lib.exception] the destructor of class exception has an empty - exception specification:

          -
          -     namespace std {
          -        class exception {
          -        public:
          -          ...
          -          virtual ~exception() throw();
          -          ...
          -        };
          -      }
          - 
          -

          Proposed resolution:

          -

          Remove the declaration of ~failure().

          -

          Rationale:

          -

          The proposed resolution is consistent with the way that destructors - of other classes derived from exception are handled.

          -

          333. does endl imply synchronization with the device?

          ! Section: 27.6.2.7 [lib.ostream.manip]  Status: Review  Submitter: PremAnand M. Rao  Date: 27 Aug 2001

          A footnote in 27.6.2.7 [lib.ostream.manip] states:

          [Footnote: The effect of executing cout << endl is to insert a --- 3770,3777 ---- have no effect. Wording implying that such cases have an effect on reallocation guarantees was inadvertant.


          333. does endl imply synchronization with the device?

          ! Section: 27.6.2.7 [lib.ostream.manip]  Status: Ready  Submitter: PremAnand M. Rao  Date: 27 Aug 2001

          A footnote in 27.6.2.7 [lib.ostream.manip] states:

          [Footnote: The effect of executing cout << endl is to insert a *************** because it appears to make promises abou *** 4857,4863 **** does.


          334. map::operator[] specification forces inefficient implementation

          ! Section: 23.3.1.2 [lib.map.access]  Status: Review  Submitter: Andrea Griffini  Date: 02 Sep 2001

          The current standard describes map::operator[] using a code example. That code example is however quite --- 3806,3812 ---- does.


          334. map::operator[] specification forces inefficient implementation

          ! Section: 23.3.1.2 [lib.map.access]  Status: Ready  Submitter: Andrea Griffini  Date: 02 Sep 2001

          The current standard describes map::operator[] using a code example. That code example is however quite *************** clause 17 saying that we do not intend t *** 4957,5005 **** fragments to be interpreted as specifing exactly how many copies are made. See issue 98 for a similar problem.]

          !
          !

          335. minor issue with char_traits, table 37

          ! Section: 21.1.1 [lib.char.traits.require]  Status: Ready  Submitter: Andy Sawyer  Date: 06 Sep 2001

          !

          ! Table 37, in 21.1.1 [lib.char.traits.require], descibes char_traits::assign ! as: !

          !
          !   X::assign(c,d)   assigns c = d.
          ! 
          ! !

          And para 1 says:

          ! !
          ! [...] c and d denote values of type CharT [...] !
          !

          ! Naturally, if c and d are values, then the assignment is ! (effectively) meaningless. It's clearly intended that (in the case of ! assign, at least), 'c' is intended to be a reference type. !

          ! !

          I did a quick survey of the four implementations I happened to have ! lying around, and sure enough they all have signatures:

          !
          !     assign( charT&, const charT& );
          ! 
          ! !

          (or the equivalent). It's also described this way in Nico's book. ! (Not to mention the synopses of char_traits<char> in 21.1.3.1 ! and char_traits<wchar_t> in 21.1.3.2...)

          -

          Proposed resolution:

          -

          Add the following to 21.1.1 para 1:

          -
          - r denotes an lvalue of CharT -
          !

          and change the description of assign in the table to:

          !
          !   X::assign(r,d)   assigns r = d
          ! 

          336. Clause 17 lack of references to deprecated headers

          Section: 17 [lib.library]  Status: Open  Submitter: Detlef Vollmann  Date: 05 Sep 2001

          --- 3906,3920 ---- fragments to be interpreted as specifing exactly how many copies are made. See issue 98 for a similar problem.]

          !

          Rationale:

          ! This is the second solution described above; as noted, it is ! consistent with existing practice.

          !

          Note that we now need to specify the complexity explicitly, because ! we are no longer defining operator[] in terms of ! insert.


          336. Clause 17 lack of references to deprecated headers

          Section: 17 [lib.library]  Status: Open  Submitter: Detlef Vollmann  Date: 05 Sep 2001

          *************** library (though a deprecated one).

          *** 5017,5038 **** to table 11. A review is needed to determine whether there are any other places in clause 17 where clause D material should be referred to. Beman will review clause 17.]

          -
          -

          337. replace_copy_if's template parameter should be InputIterator

          - Section: 25.2.4 [lib.alg.replace]  Status: Ready  Submitter: Detlef Vollmann  Date: 07 Sep 2001

          -

          From c++std-edit-876:

          !

          ! In section 25.2.4 [lib.alg.replace] before p4: The name of the first ! parameter of template replace_copy_if should be "InputIterator" ! instead of "Iterator". According to 17.3.2.1 [lib.type.descriptions] p1 the ! parameter name conveys real normative meaning. !

          !

          Proposed resolution:

          !

          Change Iterator to InputIterator.


          338.  is whitespace allowed between `-' and a digit?

          ! Section: 22.2 [lib.locale.categories]  Status: Review  Submitter: Martin Sebor  Date: 17 Sep 2001

          From Stage 2 processing in 22.2.2.1.2 [lib.facet.num.get.virtuals], p8 and 9 (the original text or the text corrected by the proposed resolution of --- 3932,3944 ---- to table 11. A review is needed to determine whether there are any other places in clause 17 where clause D material should be referred to. Beman will review clause 17.]

          !

          [Curaçao: Beman emailed wording to Matt, but not in time for the ! pre-meeting mailing.]

          !

          338.  is whitespace allowed between `-' and a digit?

          ! Section: 22.2 [lib.locale.categories]  Status: Ready  Submitter: Martin Sebor  Date: 17 Sep 2001

          From Stage 2 processing in 22.2.2.1.2 [lib.facet.num.get.virtuals], p8 and 9 (the original text or the text corrected by the proposed resolution of *************** numeric processing in 22.2.2.1.2


          339. definition of bitmask type restricted to clause 27

          ! Section: 22.2.1 [lib.category.ctype], 17.3.2.1.2 [lib.bitmask.types]  Status: Review  Submitter: Martin Sebor  Date: 17 September 2001

          The ctype_category::mask type is declared to be an enum in 22.2.1 [lib.category.ctype] with p1 then stating that it is a bitmask type, most likely referring to the definition of bitmask type in 17.3.2.1.2 [lib.bitmask.types], p1. However, the said definition only applies to --- 4000,4006 ---- resolution removes all mention of "whitespace" from that format.


          339. definition of bitmask type restricted to clause 27

          ! Section: 22.2.1 [lib.category.ctype], 17.3.2.1.2 [lib.bitmask.types]  Status: Ready  Submitter: Martin Sebor  Date: 17 September 2001

          The ctype_category::mask type is declared to be an enum in 22.2.1 [lib.category.ctype] with p1 then stating that it is a bitmask type, most likely referring to the definition of bitmask type in 17.3.2.1.2 [lib.bitmask.types], p1. However, the said definition only applies to *************** following (note, in particluar, the cros *** 5128,5134 **** namespace std { class ctype_base { public: ! typedef T mask; // numeric values are for exposition only. static const mask space = 1 << 0; --- 4034,4040 ---- namespace std { class ctype_base { public: ! typedef T mask; // numeric values are for exposition only. static const mask space = 1 << 0; *************** namespace std { *** 5149,5158 ****

          The type mask is a bitmask type (17.3.2.1.2 [lib.bitmask.types]).


          340. interpretation of has_facet<Facet>(loc)

          ! Section: 22.1.1.1.1 [lib.locale.category]  Status: Review  Submitter: Martin Sebor  Date: 18 Sep 2001

          It's unclear whether 22.1.1.1.1, p3 says that has_facet<Facet>(loc) returns true for any Facet --- 4055,4067 ----

          The type mask is a bitmask type (17.3.2.1.2 [lib.bitmask.types]).

          +

          [Curaçao: The LWG notes that T above should be bold-italics to be + consistent with the rest of the standard.]

          +

          340. interpretation of has_facet<Facet>(loc)

          ! Section: 22.1.1.1.1 [lib.locale.category]  Status: Ready  Submitter: Martin Sebor  Date: 18 Sep 2001

          It's unclear whether 22.1.1.1.1, p3 says that has_facet<Facet>(loc) returns true for any Facet *************** OutputIterator must be supported. Table *** 5210,5216 **** complete list of the ones we need.


          341. Vector reallocation and swap

          ! Section: 23.2.4.2 [lib.vector.capacity]  Status: Review  Submitter: Anthony Williams  Date: 27 Sep 2001

          It is a common idiom to reduce the capacity of a vector by swapping it with an empty one:

          --- 4119,4125 ----
            complete list of the ones we need.


          341. Vector reallocation and swap

          ! Section: 23.2.4.2 [lib.vector.capacity]  Status: Ready  Submitter: Anthony Williams  Date: 27 Sep 2001

          It is a common idiom to reduce the capacity of a vector by swapping it with an empty one:

          *************** containers.]

          *** 5272,5278 **** swap should be constant time. The clear intent is that it should just do pointer twiddling, and that it should exchange all properties of the two vectors, including their reallocation guarantees. - ay be useful.


          342. seek and eofbit

          --- 4181,4186 ---- *************** examined by the user to determine why so *** 5349,5411 **** places where we have a problem, where the difference between fail() and !good() is important.]


          -

          345. type tm in <cwchar>

          - Section: 21.4 [lib.c.strings]  Status: Ready  Submitter: Clark Nelson  Date: 19 Oct 2001

          -

          - C99, and presumably amendment 1 to C90, specify that <wchar.h> - declares struct tm as an incomplete type. However, table 48 in 21.4 [lib.c.strings] does not mention the type tm as being declared in - <cwchar>. Is this omission intentional or accidental? -

          -

          Proposed resolution:

          -

          In section 21.4 [lib.c.strings], add "tm" to table 48.

          -
          -

          346. Some iterator member functions should be const

          - Section: 24.1 [lib.iterator.requirements]  Status: Ready  Submitter: Jeremy Siek  Date: 20 Oct 2001

          -

          Iterator member functions and operators that do not change the state - of the iterator should be defined as const member functions or as - functions that take iterators either by const reference or by - value. The standard does not explicitly state which functions should - be const. Since this a fairly common mistake, the following changes - are suggested to make this explicit.

          - -

          The tables almost indicate constness properly through naming: r - for non-const and a,b for const iterators. The following changes - make this more explicit and also fix a couple problems.

          -

          Proposed resolution:

          -

          In 24.1 [lib.iterator.requirements] Change the first section of p9 from - "In the following sections, a and b denote values of X..." to - "In the following sections, a and b denote values of type const X...".

          - -

          In Table 73, change

          -
          -     a->m   U&         ...
          - 
          - -

          to

          - -
          -     a->m   const U&   ...
          -     r->m   U&         ...
          - 
          - -

          In Table 73 expression column, change

          - -
          -     *a = t
          - 
          - -

          to

          - -
          -     *r = t
          - 
          - -

          [Redmond: The container requirements should be reviewed to see if - the same problem appears there.]

          - -

          347. locale::category and bitmask requirements

          ! Section: 22.1.1.1.1 [lib.locale.category]  Status: New  Submitter: P.J. Plauger, Nathan Myers  Date: 23 Oct 2001

          In 22.1.1.1.1 [lib.locale.category] paragraph 1, the category members are described as bitmask elements. In fact, the bitmask requirements --- 4257,4264 ---- places where we have a problem, where the difference between fail() and !good() is important.]


          347. locale::category and bitmask requirements

          ! Section: 22.1.1.1.1 [lib.locale.category]  Status: Open  Submitter: P.J. Plauger, Nathan Myers  Date: 23 Oct 2001

          In 22.1.1.1.1 [lib.locale.category] paragraph 1, the category members are described as bitmask elements. In fact, the bitmask requirements *************** of the other enumerated values; implemen *** 5485,5493 ****


          348. Minor issue with std::pair operator<

          ! Section: 20.2.2 [lib.pairs]  Status: New  Submitter: Andy Sawyer  Date: 23 Oct 2001

          The current wording of 20.2.2 [lib.pairs] p6 precludes the use of operator< on any pair type which contains a pointer. --- 4338,4348 ----

          +

          [Curaçao: need input from locale experts.]

          +

          348. Minor issue with std::pair operator<

          ! Section: 20.2.2 [lib.pairs]  Status: Open  Submitter: Andy Sawyer  Date: 23 Oct 2001

          The current wording of 20.2.2 [lib.pairs] p6 precludes the use of operator< on any pair type which contains a pointer. *************** operator< on any pair type which cont *** 5504,5512 **** (!std::less<T1>()( y.first, x.first) && std::less<T2>()( x.second, y.second ) )


          349. Minor typographical error in ostream_iterator

          ! Section: 24.5.2 [lib.ostream.iterator]  Status: New  Submitter: Andy Sawyer  Date: 24 Oct 2001

          24.5.2 [lib.ostream.iterator] states:

                [...]
          --- 4359,4376 ----
                         (!std::less<T1>()( y.first, x.first) && 
                         std::less<T2>()( x.second, y.second ) )
            
          + +

          [Curaçao: LWG leaning toward NAD.  In favor of the PR is + that it removes a trap for users.  Concerns: 1) will break some + small amount of existing code (which define less and operator < + with different behavior), 2) don't have any indication of rationale + for current design (and unwilling to change without knowing + rationale), 3) consistency; pairs of ptrs would behave differenly from + individual pointers.]

          +

          349. Minor typographical error in ostream_iterator

          ! Section: 24.5.2 [lib.ostream.iterator]  Status: Ready  Submitter: Andy Sawyer  Date: 24 Oct 2001

          24.5.2 [lib.ostream.iterator] states:

                [...]
          *************** In 24.5.2 

          350. allocator<>::address

          ! Section: 20.4.1.1 [lib.allocator.members], 20.1.5 [lib.allocator.requirements], 17.4.1.1 [lib.contents]  Status: New  Submitter: Nathan Myers  Date: 25 Oct 2001

          See c++std-lib-9006 and c++std-lib-9007. This issue is taken verbatim from -9007.

          --- 4389,4395 ----


          350. allocator<>::address

          ! Section: 20.4.1.1 [lib.allocator.members], 20.1.5 [lib.allocator.requirements], 17.4.1.1 [lib.contents]  Status: Open  Submitter: Nathan Myers  Date: 25 Oct 2001

          See c++std-lib-9006 and c++std-lib-9007. This issue is taken verbatim from -9007.

          *************** no semantics at all for member address() *** 5550,5555 **** --- 4414,4427 ---- defined in terms of unadorned operator &.

          +

          [Curaçao: The LWG believes both examples are ill-formed.  + The contained type is required to be CopyConstructible (20.1.3), and + that includes the requirement that &t return the usual types and + values. Since the CopyConstructible requirements appear to have been + written to deal with the concerns of this issue, the LWG feels it is + NAD unless someone can come up with a well-formed example exhibiting a + problem.]

          +

          Proposed resolution:

          In 20.4.1.1, Change the definition of allocator<>::address from:

          *************** a.address(s) lines, respectively: *** 5581,5586 **** --- 4453,4461 ---- operator& may be overloaded. +

          [Curaçao: If the issues isn't NAD, suggest changing "if not + overloaded" to "ignoring all overloads".]

          +

          Rationale:

          The obvious implementations for std::allocator<>::address are

          *************** but to define them formally in terms of 
          *** 5598,5603 ****
          --- 4473,5288 ----
            to introduce semantic difficulties best avoided.  Using a.address()
            should not introduce unspecified or implementation-defined semantics
            into a user program.

          +
          +

          352. missing fpos requirements

          + Section: 21.1.2 [lib.char.traits.typedefs]  Status: Open  Submitter: Martin Sebor  Date: 2 Dec 2001

          +

          + (1) + There are no requirements on the stateT template parameter of + fpos listed in 27.4.3. The interface appears to require that + the type be at least Assignable and CopyConstructible (27.4.3.1, p1), + and I think also DefaultConstructible (to implement the operations in + Table 88). +

          +

          + 21.1.2, p3, however, only requires that + char_traits<charT>::state_type meet the requirements of + CopyConstructible types. +

          +

          + (2) + Additionally, the stateT template argument has no + corresponding typedef in fpos which might make it difficult to use in + generic code. +

          +

          Proposed resolution:

          +

          + Modify 21.1.2, p4 from +

          +

          + Requires: state_type shall meet the requirements of + CopyConstructible types (20.1.3). +

          +

          + Requires: state_type shall meet the requirements of Assignable + (23.1, p4), CopyConstructible (20.1.3), and + DefaultConstructible (20.1.4) types. +

          +

          + Add to the definition of the fpos class template the following member: +

          +
          +     typedef stateT state_type;
          + 
          +

          + and add to 27.4.3.1 a paragraph with the following text: +

          +
          +     typedef stateT state_type;
          + 
          +

          + Requires: state_type shall meet the requirements of + Assignable (23.1, p4), CopyConstructible (20.1.3), and + DefaultConstructible (20.1.4) types. +

          + +

          [Curaçao: The LWG feels this is two issues, as indicated + above. The first is a defect; more I/O experts need to review + the PR. The second is questionable; who would use it? Unless + motivation is provided, the second should be considered NAD.]

          + +
          +

          354. Associative container lower/upper bound requirements

          + Section: 23.1.2 [lib.associative.reqmts]  Status: Ready  Submitter: Hans Aberg  Date: 17 Dec 2001

          +

          + Discussions in the thread "Associative container lower/upper bound + requirements" on comp.std.c++ suggests that there is a defect in the + C++ standard, Table 69 of section 23.1.2, "Associative containers", + [lib.associative.reqmts]. It currently says:

          + +
          +

          + a.find(k): returns an iterator pointing to an element with the key equivalent to + k, or a.end() if such an element is not found. +

          + +

          + a.lower_bound(k): returns an iterator pointing to the first element with + key not less than k. +

          + +

          + a.upper_bound(k): returns an iterator pointing to the first element with + key greater than k. +

          +
          + +

          + We have "or a.end() if such an element is not found" for + find, but not for upper_bound or + lower_bound. As the text stands, one would be forced to + insert a new element into the container and return an iterator to that + in case the sought iterator does not exist, which does not seem to be + the intention (and not possible with the "const" versions). +

          +

          Proposed resolution:

          + +

          Change Table 69 of section 23.1.2 [lib.associative.reqmts] indicated entries + to:

          + +
          +

          + a.lower_bound(k): returns an iterator pointing to the first element with + key not less than k, or a.end() if such an element is not found. +

          + +

          + a.upper_bound(k): returns an iterator pointing to the first element with + key greater than k, or a.end() if such an element is not found. +

          +
          + +

          [Curaçao: LWG reviewed PR.]

          + +
          +

          355. Operational semantics for a.back()

          + Section: 23.1.1 [lib.sequence.reqmts]  Status: Review  Submitter: Yaroslav Mironov  Date: 23 Jan 2002

          + +

          Table 68 "Optional Sequence Operations" in 23.1.1/12 + specifies operational semantics for "a.back()" as + "*--a.end()", which may be ill-formed [because calling + operator-- on a temporary (the return) of a built-in type is + ill-formed], provided a.end() returns a simple pointer rvalue + (this is almost always the case for std::vector::end(), for + example). Thus, the specification is not only incorrect, it + demonstrates a dangerous construct: "--a.end()" may + successfully compile and run as intended, but after changing the type + of the container or the mode of compilation it may produce + compile-time error.

          + +

          Proposed resolution:

          +

          Change the specification in table 68 "Optional Sequence + Operations" in 23.1.1/12 for "a.back()" from

          + + +
          + *--a.end() +
          + +

          to

          + +
          +

          *a.rbegin()

          +
          + +

          and the specification for "a.pop_back()" from

          + +
          + a.erase(--a.end()) +
          + +

          to

          + +
          +

          a.erase(rbegin())

          +
          + +

          [Curaçao: LWG changed PR from "{ X::iterator tmp = + a.end(); return *--tmp; }" to "*a.rbegin()", and from + "{ X::iterator tmp = a.end(); a.erase(--tmp); }" to + "a.erase(rbegin())".]

          + +

          [There is a second possible defect; table 68 "Optional + Sequence Operations" in the "Operational Semantics" + column uses operations present only in the "Reversible + Container" requirements, yet there is no stated dependency + between these separate requirements tables. Ask in Santa Cruz if the + LWG would like a new issue opened.]

          + +
          +

          356. Meaning of ctype_base::mask enumerators

          + Section: 22.2.1 [lib.category.ctype]  Status: New  Submitter: Matt Austern  Date: 23 Jan 2002

          + +

          What should the following program print?

          + +
          +   #include <locale>
          +   #include <iostream>
          + 
          +   class my_ctype : public std::ctype<char>
          +   {
          +     typedef std::ctype<char> base;
          +   public:
          +     my_ctype(std::size_t refs = 0) : base(my_table, false, refs)
          +     {
          +       std::copy(base::classic_table(), base::classic_table() + base::table_size,
          +                 my_table);
          +       my_table[(unsigned char) '_'] = (base::mask) (base::print | base::space);
          +     }
          +   private:
          +     mask my_table[base::table_size];
          +   };
          + 
          +   int main()
          +   {
          +     my_ctype ct;
          +     std::cout << "isspace: " << ct.is(std::ctype_base::space, '_') << "    "
          +               << "isalpha: " << ct.is(std::ctype_base::alpha, '_') << std::endl;
          +   }
          + 
          + +

          The goal is to create a facet where '_' is treated as whitespace.

          + +

          On gcc 3.0, this program prints "isspace: 1 isalpha: 0". On + Microsoft C++ it prints "isspace: 1 isalpha: 1".

          + +

          + I believe that both implementations are legal, and the standard does not + give enough guidance for users to be able to use std::ctype's + protected interface portably.

          + +

          + The above program assumes that ctype_base::mask enumerators like + space and print are disjoint, and that the way to + say that a character is both a space and a printing character is to or + those two enumerators together. This is suggested by the "exposition + only" values in 22.2.1 [lib.category.ctype], but it is nowhere specified in + normative text. An alternative interpretation is that the more + specific categories subsume the less specific. The above program + gives the results it does on the Microsoft compiler because, on that + compiler, print has all the bits set for each specific + printing character class. +

          + +

          From the point of view of std::ctype's public interface, there's no + important difference between these two techniques. From the point of + view of the protected interface, there is. If I'm defining a facet + that inherits from std::ctype<char>, I'm the one who defines the + value that table()['a'] returns. I need to know what combination of + mask values I should use. This isn't so very esoteric: it's exactly + why std::ctype has a protected interface. If we care about users + being able to write their own ctype facets, we have to give them a + portable way to do it. +

          + +

          + Related reflector messages: + lib-9224, lib-9226, lib-9229, lib-9270, lib-9272, lib-9273, lib-9274, + lib-9277, lib-9279. +

          + +

          Issue 339 is related, but not identical. The + proposed resolution if issue 339 says that + ctype_base::mask must be a bitmask type. It does not say that the + ctype_base::mask elements are bitmask elements, so it doesn't + directly affect this issue.

          + +

          Proposed resolution:

          +

          Informally, we have three choices:

          +
            +
          1. Require that the enumerators are disjoint (except for alnum and + graph)
          2. +
          3. Require that the enumerators are not disjoint, and specify which + of them subsume which others. (e.g. mandate that lower includes alpha + and print)
          4. +
          5. Explicitly leave this unspecified, which the result that the above + program is not portable.
          6. +
          + +

          Either of the first two options is just as good from the standpoint + of portability. Either one will require some implementations to + change.

          + +
          +

          357. <cmath> float functions cannot return HUGE_VAL

          + Section: 26.5 [lib.c.math]  Status: Open  Submitter: Ray Lischner  Date: 26 Feb 2002

          +

          + The float versions of the math functions have no meaningful value to return + for a range error. The long double versions have a value they can return, + but it isn't necessarily the most reasonable value. +

          + +

          + Section 26.5 [lib.c.math], paragraph 5, says that C++ "adds float and long + double overloaded versions of these functions, with the same semantics," + referring to the math functions from the C90 standard. +

          + +

          + The C90 standard, in section 7.5.1, paragraph 3, says that functions return + "the value of the macro HUGE_VAL" when they encounter a range error. + Section 7.5, paragraph 2, defines HUGE_VAL as a macro that "expands to a + positive double expression, not necessarily representable as a float." +

          + +

          + Therefore, the float versions of the math functions have no way to + signal a range error. [Curaçao: The LWG notes that this isn't + strictly correct, since errno is set.] The semantics require that they + return HUGE_VAL, but they cannot because HUGE_VAL might not be + representable as a float. +

          + +

          + The problem with long double functions is less severe because HUGE_VAL is + representable as a long double. On the other hand, it might not be a "huge" + long double value, and might fall well within the range of normal return + values for a long double function. Therefore, it does not make sense for a + long double function to return a double (HUGE_VAL) for a range error. +

          +

          Proposed resolution:

          +

          Curaçao: C99 was faced with a similar problem, which they fixed by + adding HUGE_VALF and HUGE_VALL in addition to HUGE_VAL.

          + +

          C++ must also fix, but it should be done in the context of the + general C99 based changes to C++, not via DR. Thus the LWG in Curaçao + felt the resolution should be NAD, FUTURE, but the issue is being held + open for one more meeting to ensure LWG members not present during the + discussion concur.

          +
          +

          358. interpreting thousands_sep after a decimal_point +

          + Section: 22.2.2.1.2 [lib.facet.num.get.virtuals]  Status: New  Submitter: Martin Sebor  Date: 12 Mar 2002

          +

          + I don't think thousands_sep is being treated correctly after + decimal_point has been seen. Since grouping applies only to the + integral part of the number, the first such occurrence should, IMO, + terminate Stage 2. (If it does not terminate it, then 22.2.2.1.2, p12 + and 22.2.3.1.2, p3 need to explain how thousands_sep is to be + interpreted in the fractional part of a number.) +

          + +

          + The easiest change I can think of that resolves this issue would be + something like below. +

          +

          Proposed resolution:

          +

          + Change the first sentence of 22.2.2.1.2, p9 from +

          + +
          + If discard is true then the position of the character is + remembered, but the character is otherwise ignored. If it is not + discarded, then a check is made to determine if c is allowed as + the next character of an input field of the conversion specifier + returned by stage 1. If so it is accumulated. +
          + +

          to

          + +
          + If discard is true, then if '.' has not yet been + accumulated, then the position of the character is remembered, but + the character is otherwise ignored. Otherwise, if '.' has + already been accumulated, the character is discarded and Stage 2 + terminates. ... +
          + +
          +

          359. num_put<>::do_put (..., bool) undocumented

          + Section: 22.2.2.2.1 [lib.facet.num.put.members]  Status: New  Submitter: Martin Sebor  Date: 12 Mar 2002

          +

          22.2.2.2.1, p1:

          + +
          +     iter_type put (iter_type out, ios_base& str, char_type fill,
          +                    bool val) const;
          +     ...
          + 
          +     1   Returns: do_put (out, str, fill, val).
          +     
          + +

          AFAICS, the behavior of do_put (..., bool) is not documented anywhere, + however, 22.2.2.2.2, p23:

          + +
          +
          + iter_type put (iter_type out, ios_base& str, char_type fill,
          +                bool val) const;
          + 
          + + + Effects: If (str.flags() & ios_base::boolalpha) == 0 then do + out = do_put(out, str, fill, (int)val) + Otherwise do +
          +              string_type s =
          +                  val ? use_facet<ctype<charT> >(loc).truename()
          +                      : use_facet<ctype<charT> >(loc).falsename();
          + 
          + and then insert the characters of s into out. out. +
          + +

          + This means that the bool overload of do_put() will never be called, + which contradicts the first paragraph. Perhaps the declaration + should read do_put(), and not put()? +

          + +

          + Note also that there is no Returns clause for this function, which + should probably be corrected, just as should the second occurrence + of "out." in the text. +

          + +

          + I think the least invasive change to fix it would be something like + the following: +

          +

          Proposed resolution:

          +

          + In 22.2.2.2.2, p23, make the following changes +

          + +
          + Replace put() with do_put() in the declaration + of the member function. +
          + +
          + Change the Effects clause to a Returns clause (to + avoid the requirement to call do_put(..., int) from + do_put (..., bool)) + like so: +
          + +
          + 23 Returns: If (str.flags() & + ios_base::boolalpha) == 0 then + do_put (out, str, fill, (int)val) + Otherwise the function obtains a string s as if by +
          +              string_type s =
          +                 val ? use_facet<ctype<charT> >(loc).truename()
          +                     : use_facet<ctype<charT> >(loc).falsename();
          + 
          + and then inserts each character c of s into out via + *out++ = c + and returns out. +
          + +
          +

          360. locale mandates inefficient implementation

          + Section: 22.1.1 [lib.locale]  Status: New  Submitter: Martin Sebor  Date: 12 Mar 2002

          +

          + 22.1.1, p7 (copied below) allows iostream formatters and extractors + to make assumptions about the values returned from facet members. + However, such assumptions are apparently not guaranteed to hold + in other cases (e.g., when the facet members are being called directly + rather than as a result of iostream calls, or between successive + calls to the same iostream functions with no interevening calls to + imbue(), or even when the facet member functions are called + from other member functions of other facets). This restriction + prevents locale from being implemented efficiently. +

          +

          Proposed resolution:

          +

          Change the first sentence in 22.1.1, p7 from

          +
          + In successive calls to a locale facet member function during + a call to an iostream inserter or extractor or a streambuf member + function, the returned result shall be identical. [Note: This + implies that such results may safely be reused without calling + the locale facet member function again, and that member functions + of iostream classes cannot safely call imbue() + themselves, except as specified elsewhere. --end note] +
          + +

          to

          + +
          + In successive calls to a locale facet member function on a facet + object installed in the same locale, the returned result shall be + identical. ... +
          + +
          +

          361. num_get<>::do_get (..., void*&) checks grouping

          + Section: 22.2.2.2.2 [lib.facet.num.put.virtuals]  Status: New  Submitter: Martin Sebor  Date: 12 Mar 2002

          +

          + 22.2.2.2.2, p12 specifies that thousands_sep is to be inserted only + for integral types (issue 282 suggests that this should be done for + all arithmetic types). +

          + +

          + 22.2.2.1.2, p12 requires that grouping be checked for all extractors + including that for void*. +

          + +

          + I don't think that's right. void* values should not be checked for + grouping, should they? (Although if they should, then num_put needs + to write them out, otherwise their extraction will fail.) +

          +

          Proposed resolution:

          +

          + Change the first sentence of 22.2.2.2.2, p12 from +

          +
          + Digit grouping is checked. That is, the positions of discarded + separators is examined for consistency with + use_facet<numpunct<charT> >(loc).grouping(). + If they are not consistent then ios_base::failbit is assigned + to err. +
          + +

          to

          +
          + Except for conversions to void*, digit grouping is checked... +
          + +
          +

          362. bind1st/bind2nd type safety

          + Section: 20.3.6.2 [lib.bind.1st]  Status: New  Submitter: Andrew Demkin  Date: 26 Apr 2002

          +

          + The definition of bind1st() (20.3.6.2 [lib.bind.1st]) can result in + the construction of an unsafe binding between incompatible pointer + types. For example, given a function whose first parameter type is + 'pointer to T', it's possible without error to bind an argument of + type 'pointer to U' when U does not derive from T: +

          +
          +    foo(T*, int);
          + 
          +    struct T {};
          +    struct U {};
          + 
          +    U u;
          + 
          +    int* p;
          +    int* q;
          + 
          +    for_each(p, q, bind1st(ptr_fun(foo), &u));    // unsafe binding
          + 
          + +

          + The definition of bind1st() includes a functional-style conversion to + map its argument to the expected argument type of the bound function + (see below): +

          +
          +   typename Operation::first_argument_type(x)
          + 
          + +

          + A functional-style conversion (5.2.3 [expr.type.conv]) is defined to be + semantically equivalent to an explicit cast expression (5.4 [expr.cast]), which may (according to 5.4, paragraph 5) be interpreted + as a reinterpret_cast, thus masking the error. +

          + +

          The problem and proposed change also apply to 20.3.6.4 [lib.bind.2nd].

          +

          Proposed resolution:

          +

          + The simplest and most localized change to prevent such errors is to + require bind1st() use a static_cast expression rather than the + functional-style conversion; that is, have bind1st() return: +

          +
          +    binder1st<Operation>( op,
          +      static_cast<typename Operation::first_argument_type>(x)).
          + 
          + +

          + A more agressive solution is to change the semantics of + functional-style conversions to not permit a reinterpret_cast. For + contexts that require the semantics of reinterpret_cast, the language + may want to require the use of an explicit cast expression such as + '(T) x' or 'reinterpret_cast<T>(x)' and limit the behavior of + the functional notation to match statically-checked and standard + conversions (as defined by 5.2.9 and 4.10, etc.). Although changing + the semantics of functional-style conversions may seem drastic and + does have language-wide ramifications, it has the benefit of better + unifying the conversion rules for user defined types and built-in + types, which can be especially important for generic template + programming. +

          +
          +

          363. Missing exception specification in 27.4.2.1.1

          + Section: 27.4.2.1.1 [lib.ios::failure]  Status: New  Submitter: Walter Brown  Date: 20 May 2002

          +

          + The destructor of ios_base::failure should have an empty throw + specification, because the destructor of its base class, exception, is + declared in this way. +

          +

          Proposed resolution:

          +

          Change the destructor to

          +
          +   virtual ~failure() throw();
          + 
          +
          +

          364. Inconsistent wording in 27.5.2.4.2

          + Section: 27.5.2.4.2 [lib.streambuf.virt.buffer]  Status: New  Submitter: Walter Brown  Date: 10 May 2002

          +

          + 27.5.2.4.2 [lib.streambuf.virt.buffer] paragraph 1 is inconsistent with the Effects + clause for seekoff. +

          +

          Proposed resolution:

          +

          + Make this paragraph, the Effects clause for setbuf, consistent in wording + with the Effects clause for seekoff in paragraph 3 by amending paragraph 1 + to indicate the purpose of setbuf: +

          + +

          Original text:

          + +
          + 1 Effects: Performs an operation that is defined separately for each + class derived from basic_streambuf in this clause (27.7.1.3, 27.8.1.4). +
          + +

          Proposed text:

          + +
          + 1 Effects: Influences stream buffering in a way that is defined separately + for each class derived from basic_streambuf in this clause + (27.7.1.3, 27.8.1.4). +
          + +
          +

          365. Lack of const-qualification in clause 27

          + Section: 27 [lib.input.output]  Status: New  Submitter: Walter Brown  Date: 10 May 2002

          +

          + None of the following member functions are declared const, but we + believe each should be. See document N1360 for details and rationale. +

          +

          Proposed resolution:

          +

          In 27.5.2 and 27.5.2.2.3

          +

          Replace

          +
          +   streamsize in_avail();
          + 
          +

          with

          +
          +   streamsize in_avail() const;
          + 
          + +

          In 27.5.2 and 27.5.2.4.3, and 27.8.1.1 and 27.8.1.4

          +

          Replace

          +
          +   virtual streamsize showmanyc();
          + 
          +

          with

          +
          +   virtual streamsize showmanyc() const;
          + 
          + +

          In 27.6.1.1 and 27.6.1.3

          +

          Replace

          +
          +   pos_type tellg();
          + 
          +

          with

          +
          +   pos_type tellg() const;
          + 
          + +

          This requires additional change, because paragraph 37 describes the + return value in terms of calls to non-const member functions. Either of + the two following solutions would allow tellg to be declared const.

          + +

          Option 1: Implementers may cast away const-ness, to allow calling the + non-const rdbuf.

          +

          In paragraph 37, replace:

          +
          +   .... rdbuf()
          +   ->pubseekoff(0, cur, in).
          + 
          +

          by

          +
          +   .... const_cast<basic_istream<charT, traits>*>(this)->rdbuf()
          +   ->pubseekoff(0, cur, in).
          + 
          + +

          Option 2: Provide const member functions to do the job. The proposals in + a later section (specifically, the modifications concerning rdbuf + throughout the iostream library) meet most of this need; we would also + need the following addition to basic_streambuf:

          + +
          +
          + basic_streambuf<charT,traits>::pos_type
          + basic_streambuf<charT,traits>::position(ios_base::openmode mode =
          +                                         ios_base::in|ios_base::out)
          +                                         const;
          + 
          +

          Effects: same as calling basic_streambuf::pubseekoff(0, ios base::cur, mode)

          +
          + +

          In 27.6.2.1 and 27.6.2.4

          +

          Replace

          +
          +   pos_type tellp();
          + 
          +

          with

          +
          +   pos_type tell() const;
          + 
          + +

          This requires additional change; see the discussion for tellg() above.

          + +

          In 27.8.1.5, 27.8.1.7, 27.8.1.8, 27.8.1.10, 27.8.1.11, and 27.8.1.13

          +

          Replace

          +
          +   bool is_open();
          + 
          +

          with

          +
          +   bool is_open() const;
          + 
          +
          +

          366. Excessive const-qualification

          + Section: 27 [lib.input.output]  Status: New  Submitter: Walter Brown  Date: 10 May 2002

          +

          + The following member functions are declared const, yet return non-const + pointers. We believe they are should be changed, because they allow code + that may surprise the user. See document N1360 for details and + rationale. +

          +

          Proposed resolution:

          +

          In 27.4.4 and 27.4.4.2

          +

          Replace

          +
          +   basic_ostream<charT,traits>* tie() const;
          + 
          +

          with

          +
          +   basic_ostream<charT,traits>* tie();
          +   const basic_ostream<charT,traits>* tie() const;
          + 
          + +

          and replace

          +
          +   basic_streambuf<charT,traits>* rdbuf() const;
          + 
          +

          with

          +
          +   basic_streambuf<charT,traits>* rdbuf();
          +   const basic_streambuf<charT,traits>* rdbuf() const;
          + 
          + +

          In 27.5.2 and 27.5.2.3.1

          +

          Replace

          +
          +   char_type* eback() const;
          + 
          +

          with

          +
          +   char_type* eback();
          +   const char_type* eback() const;
          + 
          + +

          Replace

          +
          +   char_type gptr() const;
          + 
          +

          with

          +
          +   char_type* gptr();
          +   const char_type* gptr() const;
          + 
          + +

          Replace

          +
          +   char_type* egptr() const;
          + 
          +

          with

          +
          +   char_type* egptr();
          +   const char_type* egptr() const;
          + 
          + +

          In 27.5.2 and 27.5.2.3.2

          +

          Replace

          +
          +   char_type* pbase() const;
          + 
          +

          with

          +
          +   char_type* pbase();
          +   const char_type* pbase() const;
          + 
          + +

          Replace

          +
          +   char_type* pptr() const;
          + 
          +

          with

          +
          +   char_type* pptr();
          +   const char_type* pptr() const;
          + 
          + +

          Replace

          +
          +   char_type* epptr() const;
          + 
          +

          with

          +
          +   char_type* epptr();
          +   const char_type* epptr() const;
          + 
          + +

          In 27.7.2, 27.7.2.2, 27.7.3 27.7.3.2, 27.7.4, and 27.7.6

          +

          Replace

          +
          +   basic_stringbuf<charT,traits,Allocator>* rdbuf() const;
          + 
          +

          with

          +
          +   basic_stringbuf<charT,traits,Allocator>* rdbuf();
          +   const basic_stringbuf<charT,traits,Allocator>* rdbuf() const;
          + 
          + +

          In 27.8.1.5, 27.8.1.7, 27.8.1.8, 27.8.1.10, 27.8.1.11, and 27.8.1.13

          +

          Replace

          +
          +   basic_filebuf<charT,traits>* rdbuf() const;
          + 
          +

          with

          +
          +   basic_filebuf<charT,traits>* rdbuf();
          +   const basic_filebuf<charT,traits>* rdbuf() const;
          + 

          ----- End of document -----

          diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/ext/lwg-defects.html gcc-3.1.1/libstdc++-v3/docs/html/ext/lwg-defects.html *** gcc-3.1/libstdc++-v3/docs/html/ext/lwg-defects.html Mon Dec 3 00:33:57 2001 --- gcc-3.1.1/libstdc++-v3/docs/html/ext/lwg-defects.html Sat Jul 20 06:34:51 2002 *************** *** 5,15 **** ! ! --- 5,15 ----
          Doc. no.J16/01-0053 = WG21 N1338
          Date:09 Nov 2001
          Project:
          ! ! *************** *** 20,26 ****
          Doc. no.J16/02-0028 = WG21 N1370
          Date:10 May 2002
          Project:Matt Austern <austern@research.att.com>
          !

          C++ Standard Library Defect Report List (Revision 20)

          Reference ISO/IEC IS 14882:1998(E)

          Also see:

            --- 20,26 ---- Matt Austern <austern@research.att.com> !

            C++ Standard Library Defect Report List (Revision 22)

            Reference ISO/IEC IS 14882:1998(E)

            Also see:

              *************** *** 42,47 **** --- 42,53 ---- document.

              Revision History

                +
              • R22: + Post-Curaçao mailing. Added new issues 362-366. +
              • +
              • R21: + Pre-Curaçao mailing. Added new issues 351-361. +
              • R20: Post-Redmond mailing; reflects actions taken in Redmond. Added new issues 336-350, of which issues *************** new issues 284, 241, and 267. Noteworthy issues discussed at Redmond include 120 202, 226, 233, ! 270, 253, 254, 323.
              • R19: Pre-Redmond mailing. Added new issues ! 323-335.
              • R18: Post-Copenhagen mailing; reflects actions taken in Copenhagen. ! Added new issues 312-317, and discussed new issues 271-314. Changed status of issues --- 55,73 ---- not discussed at the meeting. All Ready issues were moved to DR status, with the exception of issues ! 284, 241, and 267. Noteworthy issues discussed at Redmond include 120 202, 226, 233, ! 270, 253, 254, 323.
              • R19: Pre-Redmond mailing. Added new issues ! 323-335.
              • R18: Post-Copenhagen mailing; reflects actions taken in Copenhagen. ! Added new issues 312-317, and discussed new issues 271-314. Changed status of issues *************** Changed status of issues *** 80,86 **** 238 241 242 250 259 264 266 267 271 272 273 275 ! 281 284 285 286 288 292 295 297 298 301 303 306 307 308 312 --- 86,92 ---- 238 241 242 250 259 264 266 267 271 272 273 275 ! 281 284 285 286 288 292 295 297 298 301 303 306 307 308 312 *************** as NAD. *** 95,102 ****
              • R17: Pre-Copenhagen mailing. Converted issues list to XML. Added proposed ! resolutions for issues 49, 76, 91, 235, 250, 267. ! Added new issues 278-311.
              • R16: post-Toronto mailing; reflects actions taken in Toronto. Added new --- 101,108 ----
              • R17: Pre-Copenhagen mailing. Converted issues list to XML. Added proposed ! resolutions for issues 49, 76, 91, 235, 250, 267. ! Added new issues 278-311.
              • R16: post-Toronto mailing; reflects actions taken in Toronto. Added new *************** of issue 2 *** 142,148 **** post-Kona mailing: Updated to reflect LWG and full committee actions in Kona (99-0048/N1224). Note changed resolution of issues 4 and 38. Added issues 196 ! to 198. Closed issues list split into "defects" and "closed" documents. Changed the proposed resolution of issue 4 to NAD, and changed the wording of proposed resolution of issue 38. --- 148,154 ---- post-Kona mailing: Updated to reflect LWG and full committee actions in Kona (99-0048/N1224). Note changed resolution of issues 4 and 38. Added issues 196 ! to 198. Closed issues list split into "defects" and "closed" documents. Changed the proposed resolution of issue 4 to NAD, and changed the wording of proposed resolution of issue 38. *************** change the stateT argument type *** 2229,2234 **** --- 2235,2353 ---- max elements.


                +

                76. Can a codecvt facet always convert one internal character at a time?

                + Section: 22.2.1.5 [lib.locale.codecvt]  Status: DR  Submitter: Matt Austern  Date: 25 Sep 1998

                +

                This issue concerns the requirements on classes derived from + codecvt, including user-defined classes. What are the + restrictions on the conversion from external characters + (e.g. char) to internal characters (e.g. wchar_t)? + Or, alternatively, what assumptions about codecvt facets can + the I/O library make?

                + +

                The question is whether it's possible to convert from internal + characters to external characters one internal character at a time, + and whether, given a valid sequence of external characters, it's + possible to pick off internal characters one at a time. Or, to put it + differently: given a sequence of external characters and the + corresponding sequence of internal characters, does a position in the + internal sequence correspond to some position in the external + sequence?

                + +

                To make this concrete, suppose that [first, last) is a + sequence of M external characters and that [ifirst, + ilast) is the corresponding sequence of N internal + characters, where N > 1. That is, my_encoding.in(), + applied to [first, last), yields [ifirst, + ilast). Now the question: does there necessarily exist a + subsequence of external characters, [first, last_1), such + that the corresponding sequence of internal characters is the single + character *ifirst? +

                + +

                (What a "no" answer would mean is that + my_encoding translates sequences only as blocks. There's a + sequence of M external characters that maps to a sequence of + N internal characters, but that external sequence has no + subsequence that maps to N-1 internal characters.)

                + +

                Some of the wording in the standard, such as the description of + codecvt::do_max_length (22.2.1.5.2 [lib.locale.codecvt.virtuals], + paragraph 11) and basic_filebuf::underflow (27.8.1.4 [lib.filebuf.virtuals], paragraph 3) suggests that it must always be + possible to pick off internal characters one at a time from a sequence + of external characters. However, this is never explicitly stated one + way or the other.

                + +

                This issue seems (and is) quite technical, but it is important if + we expect users to provide their own encoding facets. This is an area + where the standard library calls user-supplied code, so a well-defined + set of requirements for the user-supplied code is crucial. Users must + be aware of the assumptions that the library makes. This issue affects + positioning operations on basic_filebuf, unbuffered input, + and several of codecvt's member functions.

                +

                Proposed resolution:

                +

                Add the following text as a new paragraph, following 22.2.1.5.2 [lib.locale.codecvt.virtuals] paragraph 2:

                + +
                +

                A codecvt facet that is used by basic_filebuf + (27.8 [lib.file.streams]) must have the property that if

                +
                +     do_out(state, from, from_end, from_next, to, to_lim, to_next)
                + 
                + would return ok, where from != from_end, then +
                +     do_out(state, from, from + 1, from_next, to, to_end, to_next)
                + 
                + must also return ok, and that if +
                +     do_in(state, from, from_end, from_next, to, to_lim, to_next)
                + 
                + would return ok, where to != to_lim, then +
                +     do_in(state, from, from_end, from_next, to, to + 1, to_next)
                + 
                +

                must also return ok. [Footnote: Informally, this + means that basic_filebuf assumes that the mapping from + internal to external characters is 1 to N: a codecvt that is + used by basic_filebuf must be able to translate characters + one internal character at a time. --End Footnote]

                +
                + +

                [Redmond: Minor change in proposed resolution. Original + proposed resolution talked about "success", with a parenthetical + comment that success meant returning ok. New wording + removes all talk about "success", and just talks about the + return value.]

                + +

                Rationale:

                + +

                The proposed resoluion says that conversions can be performed one + internal character at a time. This rules out some encodings that + would otherwise be legal. The alternative answer would mean there + would be some internal positions that do not correspond to any + external file position.

                +

                + An example of an encoding that this rules out is one where the + internT and externT are of the same type, and + where the internal sequence c1 c2 corresponds to the + external sequence c2 c1. +

                +

                It was generally agreed that basic_filebuf relies + on this property: it was designed under the assumption that + the external-to-internal mapping is N-to-1, and it is not clear + that basic_filebuf is implementable without that + restriction. +

                +

                + The proposed resolution is expressed as a restriction on + codecvt when used by basic_filebuf, rather + than a blanket restriction on all codecvt facets, + because basic_filebuf is the only other part of the + library that uses codecvt. If a user wants to define + a codecvt facet that implements a more general N-to-M + mapping, there is no reason to prohibit it, so long as the user + does not expect basic_filebuf to be able to use it. +

                +

                78. Typo: event_call_back

                Section: 27.4.2 [lib.ios.base]  Status: DR  Submitter: Nico Josuttis  Date: 29 Sep 1998

                typo: event_call_back should be event_callback  

                *************** with:

                *** 3210,3216 ****

                Sections 21.3.6.4 paragraph 1 and 21.3.6.6 paragraph 1 surely have misprints where they say:

                ! — xpos <= pos and pos < size();

                Surely the document meant to say ``xpos < size()'' in both places.

                --- 3329,3335 ----

                Sections 21.3.6.4 paragraph 1 and 21.3.6.6 paragraph 1 surely have misprints where they say:

                ! — xpos <= pos and pos < size();

                Surely the document meant to say ``xpos < size()'' in both places.

                *************** proposed resolution.]

                *** 3220,3230 ****

                Proposed resolution:

                Change Sections 21.3.6.4 paragraph 1 and 21.3.6.6 paragraph 1, the line which says:

                ! — xpos <= pos and pos < size();

                to:

                !
                xpos <= pos and xpos < size();


                142. lexicographical_compare complexity wrong

                --- 3339,3349 ----

                Proposed resolution:

                Change Sections 21.3.6.4 paragraph 1 and 21.3.6.6 paragraph 1, the line which says:

                ! — xpos <= pos and pos < size();

                to:

                !
                xpos <= pos and xpos < size();


                142. lexicographical_compare complexity wrong

                *************** proposed resolution passed their test su *** 3989,3998 **** omit the std:: namespace qualification.

                For example, 17.4.3.4 [lib.replacement.functions] paragraph 2:

                !
                — operator new(size_t)
                ! — operator new(size_t, const std::nothrow_t&)
                ! — operator new[](size_t)
                ! — operator new[](size_t, const std::nothrow_t&)

                Proposed resolution:

                In 17.4.3.4 [lib.replacement.functions] paragraph 2: replace:

                --- 4108,4117 ---- omit the std:: namespace qualification.

                For example, 17.4.3.4 [lib.replacement.functions] paragraph 2:

                !
                — operator new(size_t)
                ! — operator new(size_t, const std::nothrow_t&)
                ! — operator new[](size_t)
                ! — operator new[](size_t, const std::nothrow_t&)

                Proposed resolution:

                In 17.4.3.4 [lib.replacement.functions] paragraph 2: replace:

                *************** returns traits::eof(), the func *** 4522,4527 **** --- 4641,4772 ----


                +

                198. Validity of pointers and references unspecified after iterator destruction

                + Section: 24.1 [lib.iterator.requirements]  Status: DR  Submitter: Beman Dawes  Date: 3 Nov 1999

                +

                + Is a pointer or reference obtained from an iterator still valid after + destruction of the iterator? +

                +

                + Is a pointer or reference obtained from an iterator still valid after the value + of the iterator changes? +

                +
                +
                + #include <iostream>
                + #include <vector>
                + #include <iterator>
                + 
                + int main()
                + {
                +     typedef std::vector<int> vec_t;
                +     vec_t v;
                +     v.push_back( 1 );
                + 
                +     // Is a pointer or reference obtained from an iterator still
                +     // valid after destruction of the iterator?
                +     int * p = &*v.begin();
                +     std::cout << *p << '\n';  // OK?
                + 
                +     // Is a pointer or reference obtained from an iterator still
                +     // valid after the value of the iterator changes?
                +     vec_t::iterator iter( v.begin() );
                +     p = &*iter++;
                +     std::cout << *p << '\n';  // OK?
                + 
                +     return 0;
                + }
                + 
                +
                + +

                The standard doesn't appear to directly address these + questions. The standard needs to be clarified. At least two real-world + cases have been reported where library implementors wasted + considerable effort because of the lack of clarity in the + standard. The question is important because requiring pointers and + references to remain valid has the effect for practical purposes of + prohibiting iterators from pointing to cached rather than actual + elements of containers.

                + +

                The standard itself assumes that pointers and references obtained + from an iterator are still valid after iterator destruction or + change. The definition of reverse_iterator::operator*(), 24.4.1.3.3 [lib.reverse.iter.op.star], which returns a reference, defines + effects:

                + +
                +
                Iterator tmp = current;
                + return *--tmp;
                +
                +

                The definition of reverse_iterator::operator->(), 24.4.1.3.4 [lib.reverse.iter.opref], which returns a pointer, defines effects:

                +
                +
                return &(operator*());
                +
                + +

                Because the standard itself assumes pointers and references remain + valid after iterator destruction or change, the standard should say so + explicitly. This will also reduce the chance of user code breaking + unexpectedly when porting to a different standard library + implementation.

                +

                Proposed resolution:

                +

                Add a new paragraph to 24.1 [lib.iterator.requirements]:

                +
                + Destruction of an iterator may invalidate pointers and references + previously obtained from that iterator. +
                + +

                Replace paragraph 1 of 24.4.1.3.3 [lib.reverse.iter.op.star] with:

                + +
                +

                Effects:

                +
                +   this->tmp = current;
                +   --this->tmp;
                +   return *this->tmp;
                + 
                + +

                + [Note: This operation must use an auxiliary member variable, + rather than a temporary variable, to avoid returning a reference that + persists beyond the lifetime of its associated iterator. (See + 24.1 [lib.iterator.requirements].) The name of this member variable is shown for + exposition only. --end note] +

                +
                + +

                [Post-Tokyo: The issue has been reformulated purely + in terms of iterators.]

                + +

                [Pre-Toronto: Steve Cleary pointed out the no-invalidation + assumption by reverse_iterator. The issue and proposed resolution was + reformulated yet again to reflect this reality.]

                + +

                [Copenhagen: Steve Cleary pointed out that reverse_iterator + assumes its underlying iterator has persistent pointers and + references. Andy Koenig pointed out that it is possible to rewrite + reverse_iterator so that it no longer makes such an assupmption. + However, this issue is related to issue 299. If we + decide it is intentional that p[n] may return by value + instead of reference when p is a Random Access Iterator, + other changes in reverse_iterator will be necessary.]

                +

                Rationale:

                +

                This issue has been discussed extensively. Note that it is + not an issue about the behavior of predefined iterators. It is + asking whether or not user-defined iterators are permitted to have + transient pointers and references. Several people presented examples + of useful user-defined iterators that have such a property; examples + include a B-tree iterator, and an "iota iterator" that doesn't point + to memory. Library implementors already seem to be able to cope with + such iterators: they take pains to avoid forming references to memory + that gets iterated past. The only place where this is a problem is + reverse_iterator, so this issue changes + reverse_iterator to make it work.

                + +

                This resolution does not weaken any guarantees provided by + predefined iterators like list<int>::iterator. + Clause 23 should be reviewed to make sure that guarantees for + predefined iterators are as strong as users expect.

                + +

                199. What does allocate(0) return?

                Section: 20.1.5 [lib.allocator.requirements]  Status: DR  Submitter: Matt Austern  Date: 19 Nov 1999

                *************** defined to be basic_string<cT> *** 5218,5223 **** --- 5463,5551 ---- we fixed it, it would say just the same thing as text that's already in the standard.


                +

                239. Complexity of unique() and/or unique_copy incorrect

                + Section: 25.2.8 [lib.alg.unique]  Status: DR  Submitter: Angelika Langer  Date: May 15 2000

                +

                The complexity of unique and unique_copy are inconsistent with each + other and inconsistent with the implementations.  The standard + specifies:

                + +

                for unique():

                + +
                -3- Complexity: If the range (last - first) is not empty, exactly + (last - first) - 1 applications of the corresponding predicate, otherwise + no applications of the predicate.
                + +

                for unique_copy():

                + +
                -7- Complexity: Exactly last - first applications of the corresponding + predicate.
                + +

                + The implementations do it the other way round: unique() applies the + predicate last-first times and unique_copy() applies it last-first-1 + times.

                + +

                As both algorithms use the predicate for pair-wise comparison of + sequence elements I don't see a justification for unique_copy() + applying the predicate last-first times, especially since it is not + specified to which pair in the sequence the predicate is applied + twice.

                +

                Proposed resolution:

                +

                Change both complexity sections in 25.2.8 [lib.alg.unique] to:

                + +
                Complexity: For nonempty ranges, exactly last - first - 1 + applications of the corresponding predicate.
                + +
                +

                240. Complexity of adjacent_find() is meaningless

                + Section: 25.1.5 [lib.alg.adjacent.find]  Status: DR  Submitter: Angelika Langer  Date: May 15 2000

                +

                The complexity section of adjacent_find is defective:

                + +
                +
                + template <class ForwardIterator>
                + ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last
                +                               BinaryPredicate pred);
                + 
                + +

                -1- Returns: The first iterator i such that both i and i + 1 are in + the range [first, last) for which the following corresponding + conditions hold: *i == *(i + 1), pred(*i, *(i + 1)) != false. Returns + last if no such iterator is found.

                + +

                -2- Complexity: Exactly find(first, last, value) - first applications + of the corresponding predicate. +

                +
                + +

                In the Complexity section, it is not defined what "value" + is supposed to mean. My best guess is that "value" means an + object for which one of the conditions pred(*i,value) or + pred(value,*i) is true, where i is the iterator defined in the Returns + section. However, the value type of the input sequence need not be + equality-comparable and for this reason the term find(first, last, + value) - first is meaningless.

                + +

                A term such as find_if(first, last, bind2nd(pred,*i)) - first or + find_if(first, last, bind1st(pred,*i)) - first might come closer to + the intended specification. Binders can only be applied to function + objects that have the function call operator declared const, which is + not required of predicates because they can have non-const data + members. For this reason, a specification using a binder could only be + an "as-if" specification.

                +

                Proposed resolution:

                +

                Change the complexity section in 25.1.5 [lib.alg.adjacent.find] to:

                +
                + For a nonempty range, exactly min((i - first) + 1, + (last - first) - 1) applications of the + corresponding predicate, where i is adjacent_find's + return value. +
                + +

                [Copenhagen: the original resolution specified an upper + bound. The LWG preferred an exact count.]

                + +

                242. Side effects of function objects

                Section: 25.2.3 [lib.alg.transform], 26.4 [lib.numeric.ops]  Status: DR  Submitter: Angelika Langer  Date: May 15 2000

                The algorithms transform(), accumulate(), inner_product(), *************** are missing.

                *** 5894,5899 **** --- 6222,6480 ---- locale(const locale& other) throw();

          +

          270. Binary search requirements overly strict

          + Section: 25.3.3 [lib.alg.binary.search]  Status: DR  Submitter: Matt Austern  Date: 18 Oct 2000

          +

          + Each of the four binary search algorithms (lower_bound, upper_bound, + equal_range, binary_search) has a form that allows the user to pass a + comparison function object. According to 25.3, paragraph 2, that + comparison function object has to be a strict weak ordering. +

          + +

          + This requirement is slightly too strict. Suppose we are searching + through a sequence containing objects of type X, where X is some + large record with an integer key. We might reasonably want to look + up a record by key, in which case we would want to write something + like this: +

          +
          +     struct key_comp {
          +       bool operator()(const X& x, int n) const {
          +         return x.key() < n;
          +       }
          +     }
          + 
          +     std::lower_bound(first, last, 47, key_comp());
          + 
          + +

          + key_comp is not a strict weak ordering, but there is no reason to + prohibit its use in lower_bound. +

          + +

          + There's no difficulty in implementing lower_bound so that it allows + the use of something like key_comp. (It will probably work unless an + implementor takes special pains to forbid it.) What's difficult is + formulating language in the standard to specify what kind of + comparison function is acceptable. We need a notion that's slightly + more general than that of a strict weak ordering, one that can encompass + a comparison function that involves different types. Expressing that + notion may be complicated. +

          + +

          Additional questions raised at the Toronto meeting:

          +
            +
          • Do we really want to specify what ordering the implementor must + use when calling the function object? The standard gives + specific expressions when describing these algorithms, but it also + says that other expressions (with different argument order) are + equivalent.
          • +
          • If we are specifying ordering, note that the standard uses both + orderings when describing equal_range.
          • +
          • Are we talking about requiring these algorithms to work properly + when passed a binary function object whose two argument types + are not the same, or are we talking about requirements when + they are passed a binary function object with several overloaded + versions of operator()?
          • +
          • The definition of a strict weak ordering does not appear to give + any guidance on issues of overloading; it only discusses expressions, + and all of the values in these expressions are of the same type. + Some clarification would seem to be in order.
          • +
          + +

          Additional discussion from Copenhagen:

          +
            +
          • It was generally agreed that there is a real defect here: if + the predicate is merely required to be a Strict Weak Ordering, then + it's possible to pass in a function object with an overloaded + operator(), where the version that's actually called does something + completely inappropriate. (Such as returning a random value.)
          • + +
          • An alternative formulation was presented in a paper distributed by + David Abrahams at the meeting, "Binary Search with Heterogeneous + Comparison", J16-01/0027 = WG21 N1313: Instead of viewing the + predicate as a Strict Weak Ordering acting on a sorted sequence, view + the predicate/value pair as something that partitions a sequence. + This is almost equivalent to saying that we should view binary search + as if we are given a unary predicate and a sequence, such that f(*p) + is true for all p below a specific point and false for all p above it. + The proposed resolution is based on that alternative formulation.
          • +
          +

          Proposed resolution:

          + +

          Change 25.3 [lib.alg.sorting] paragraph 3 from:

          + +
          + 3 For all algorithms that take Compare, there is a version that uses + operator< instead. That is, comp(*i, *j) != false defaults to *i < + *j != false. For the algorithms to work correctly, comp has to + induce a strict weak ordering on the values. +
          + +

          to:

          + +
          + 3 For all algorithms that take Compare, there is a version that uses + operator< instead. That is, comp(*i, *j) != false defaults to *i + < *j != false. For algorithms other than those described in + lib.alg.binary.search (25.3.3) to work correctly, comp has to induce + a strict weak ordering on the values. +
          + +

          Add the following paragraph after 25.3 [lib.alg.sorting] paragraph 5:

          + +
          + -6- A sequence [start, finish) is partitioned with respect to an + expression f(e) if there exists an integer n such that + for all 0 <= i < distance(start, finish), f(*(begin+i)) is true if + and only if i < n. +
          + +

          Change 25.3.3 [lib.alg.binary.search] paragraph 1 from:

          + +
          + -1- All of the algorithms in this section are versions of binary + search and assume that the sequence being searched is in order + according to the implied or explicit comparison function. They work + on non-random access iterators minimizing the number of + comparisons, which will be logarithmic for all types of + iterators. They are especially appropriate for random access + iterators, because these algorithms do a logarithmic number of + steps through the data structure. For non-random access iterators + they execute a linear number of steps. +
          + +

          to:

          + +
          + -1- All of the algorithms in this section are versions of binary + search and assume that the sequence being searched is partitioned + with respect to an expression formed by binding the search key to + an argument of the implied or explicit comparison function. They + work on non-random access iterators minimizing the number of + comparisons, which will be logarithmic for all types of + iterators. They are especially appropriate for random access + iterators, because these algorithms do a logarithmic number of + steps through the data structure. For non-random access iterators + they execute a linear number of steps. +
          + +

          Change 25.3.3.1 [lib.lower.bound] paragraph 1 from:

          + +
          + -1- Requires: Type T is LessThanComparable + (lib.lessthancomparable). +
          + +

          to:

          + +
          + -1- Requires: The elements e of [first, last) are partitioned with + respect to the expression e < value or comp(e, value) +
          + + +

          Remove 25.3.3.1 [lib.lower.bound] paragraph 2:

          + +
          + -2- Effects: Finds the first position into which value can be + inserted without violating the ordering. +
          + +

          Change 25.3.3.2 [lib.upper.bound] paragraph 1 from:

          + +
          + -1- Requires: Type T is LessThanComparable (lib.lessthancomparable). +
          + +

          to:

          + +
          + -1- Requires: The elements e of [first, last) are partitioned with + respect to the expression !(value < e) or !comp(value, e) +
          + +

          Remove 25.3.3.2 [lib.upper.bound] paragraph 2:

          + +
          + -2- Effects: Finds the furthermost position into which value can be + inserted without violating the ordering. +
          + +

          Change 25.3.3.3 [lib.equal.range] paragraph 1 from:

          + +
          + -1- Requires: Type T is LessThanComparable + (lib.lessthancomparable). +
          + +

          to:

          + +
          + -1- Requires: The elements e of [first, last) are partitioned with + respect to the expressions e < value and !(value < e) or + comp(e, value) and !comp(value, e). Also, for all elements e of + [first, last), e < value implies !(value < e) or comp(e, + value) implies !comp(value, e) +
          + +

          Change 25.3.3.3 [lib.equal.range] paragraph 2 from:

          + +
          + -2- Effects: Finds the largest subrange [i, j) such that the value + can be inserted at any iterator k in it without violating the + ordering. k satisfies the corresponding conditions: !(*k < value) + && !(value < *k) or comp(*k, value) == false && comp(value, *k) == + false. +
          + +

          to:

          + +
          +    -2- Returns: 
          +          make_pair(lower_bound(first, last, value),
          +                    upper_bound(first, last, value))
          +        or
          +          make_pair(lower_bound(first, last, value, comp),
          +                    upper_bound(first, last, value, comp))
          + 
          + +

          Change 25.3.3.3 [lib.binary.search] paragraph 1 from:

          + +
          + -1- Requires: Type T is LessThanComparable + (lib.lessthancomparable). +
          + +

          to:

          + +
          + -1- Requires: The elements e of [first, last) are partitioned with + respect to the expressions e < value and !(value < e) or comp(e, + value) and !comp(value, e). Also, for all elements e of [first, + last), e < value implies !(value < e) or comp(e, value) implies + !comp(value, e) +
          + +

          [Copenhagen: Dave Abrahams provided this wording]

          + +

          [Redmond: Minor changes in wording. (Removed "non-negative", and + changed the "other than those described in" wording.) Also, the LWG + decided to accept the "optional" part.]

          + +

          Rationale:

          +

          The proposed resolution reinterprets binary search. Instead of + thinking about searching for a value in a sorted range, we view that + as an important special case of a more general algorithm: searching + for the partition point in a partitioned range.

          + +

          We also add a guarantee that the old wording did not: we ensure + that the upper bound is no earlier than the lower bound, that + the pair returned by equal_range is a valid range, and that the first + part of that pair is the lower bound.

          +

          271. basic_iostream missing typedefs

          Section: 27.6.1.5 [lib.iostreamclass]  Status: DR  Submitter: Martin Sebor  Date: 02 Nov 2000

          *************** class (14.6.2 [temp.dep]) and thus not v *** 5943,5948 **** --- 6524,6585 ----

          Qualify the names with the name of the class of which they are members, i.e., ios_base.


          +

          274. a missing/impossible allocator requirement

          + Section: 20.1.5 [lib.allocator.requirements]  Status: DR  Submitter: Martin Sebor  Date: 02 Nov 2000

          +

          + I see that table 31 in 20.1.5, p3 allows T in std::allocator<T> to be of + any type. But the synopsis in 20.4.1 calls for allocator<>::address() to + be overloaded on reference and const_reference, which is ill-formed for + all T = const U. In other words, this won't work: +

          + +

          + template class std::allocator<const int>; +

          + +

          + The obvious solution is to disallow specializations of allocators on + const types. However, while containers' elements are required to be + assignable (which rules out specializations on const T's), I think that + allocators might perhaps be potentially useful for const values in other + contexts. So if allocators are to allow const types a partial + specialization of std::allocator<const T> would probably have to be + provided. +

          +

          Proposed resolution:

          +

          Change the text in row 1, column 2 of table 32 in 20.1.5, p3 from

          + +
          + any type +
          + +

          to

          +
          + any non-const, non-reference type +
          + +

          [Redmond: previous proposed resolution was "any non-const, + non-volatile, non-reference type". Got rid of the "non-volatile".]

          + +

          Rationale:

          +

          + Two resolutions were originally proposed: one that partially + specialized std::allocator for const types, and one that said an + allocator's value type may not be const. The LWG chose the second. + The first wouldn't be appropriate, because allocators are intended for + use by containers, and const value types don't work in containers. + Encouraging the use of allocators with const value types would only + lead to unsafe code. +

          +

          + The original text for proposed resolution 2 was modified so that it + also forbids volatile types and reference types. +

          + +

          [Curaçao: LWG double checked and believes volatile is correctly + excluded from the PR.]

          + +

          275. Wrong type in num_get::get() overloads

          Section: 22.2.2.1.1 [lib.facet.num.get.members]  Status: DR  Submitter: Matt Austern  Date: 02 Nov 2000

          *************** the arguments it was given. *** 5994,5999 **** --- 6631,6780 ---- ios_base::iostate& err, float& val) const;


          +

          276. Assignable requirement for container value type overly strict

          + Section: 23.1 [lib.container.requirements]  Status: DR  Submitter: Peter Dimov  Date: 07 Nov 2000

          +

          + 23.1/3 states that the objects stored in a container must be + Assignable. 23.3.1 [lib.map], paragraph 2, + states that map satisfies all requirements for a container, while in + the same time defining value_type as pair<const Key, T> - a type + that is not Assignable. +

          + +

          + It should be noted that there exists a valid and non-contradictory + interpretation of the current text. The wording in 23.1/3 avoids + mentioning value_type, referring instead to "objects stored in a + container." One might argue that map does not store objects of + type map::value_type, but of map::mapped_type instead, and that the + Assignable requirement applies to map::mapped_type, not + map::value_type. +

          + +

          + However, this makes map a special case (other containers store objects of + type value_type) and the Assignable requirement is needlessly restrictive in + general. +

          + +

          + For example, the proposed resolution of active library issue + 103 is to make set::iterator a constant iterator; this + means that no set operations can exploit the fact that the stored + objects are Assignable. +

          + +

          + This is related to, but slightly broader than, closed issue + 140. +

          +

          Proposed resolution:

          +

          23.1/3: Strike the trailing part of the sentence:

          +
          + , and the additional requirements of Assignable types from 23.1/3 +
          +

          so that it reads:

          +
          + -3- The type of objects stored in these components must meet the + requirements of CopyConstructible types (lib.copyconstructible). +
          + +

          23.1/4: Modify to make clear that this requirement is not for all + containers. Change to:

          + +
          + -4- Table 64 defines the Assignable requirement. Some containers + require this property of the types to be stored in the container. T is + the type used to instantiate the container. t is a value of T, and u is + a value of (possibly const) T. +
          + +

          23.1, Table 65: in the first row, change "T is Assignable" to "T is + CopyConstructible".

          + +

          23.2.1/2: Add sentence for Assignable requirement. Change to:

          + +
          + -2- A deque satisfies all of the requirements of a container and of a + reversible container (given in tables in lib.container.requirements) and + of a sequence, including the optional sequence requirements + (lib.sequence.reqmts). In addition to the requirements on the stored + object described in 23.1[lib.container.requirements], the stored object + must also meet the requirements of Assignable. Descriptions are + provided here only for operations on deque that are not described in one + of these tables or for operations where there is additional semantic + information. +
          + +

          23.2.2/2: Add Assignable requirement to specific methods of list. + Change to:

          + +
          +

          -2- A list satisfies all of the requirements of a container and of a + reversible container (given in two tables in lib.container.requirements) + and of a sequence, including most of the the optional sequence + requirements (lib.sequence.reqmts). The exceptions are the operator[] + and at member functions, which are not provided. + + [Footnote: These member functions are only provided by containers whose + iterators are random access iterators. --- end foonote] +

          + +

          list does not require the stored type T to be Assignable unless the + following methods are instantiated: + + [Footnote: Implementors are permitted but not required to take advantage + of T's Assignable properties for these methods. -- end foonote] +

          +
          +      list<T,Allocator>& operator=(const list<T,Allocator>&  x );
          +      template <class InputIterator>
          +        void assign(InputIterator first, InputIterator last);
          +      void assign(size_type n, const T& t);
          + 
          + + +

          Descriptions are provided here only for operations on list that are not + described in one of these tables or for operations where there is + additional semantic information.

          +
          + +

          23.2.4/2: Add sentence for Assignable requirement. Change to:

          + +
          + -2- A vector satisfies all of the requirements of a container and of a + reversible container (given in two tables in lib.container.requirements) + and of a sequence, including most of the optional sequence requirements + (lib.sequence.reqmts). The exceptions are the push_front and pop_front + member functions, which are not provided. In addition to the + requirements on the stored object described in + 23.1[lib.container.requirements], the stored object must also meet the + requirements of Assignable. Descriptions are provided here only for + operations on vector that are not described in one of these tables or + for operations where there is additional semantic information. +
          +

          Rationale:

          +

          list, set, multiset, map, multimap are able to store non-Assignables. + However, there is some concern about list<T>: + although in general there's no reason for T to be Assignable, some + implementations of the member functions operator= and + assign do rely on that requirement. The LWG does not want + to forbid such implementations.

          + +

          Note that the type stored in a standard container must still satisfy + the requirements of the container's allocator; this rules out, for + example, such types as "const int". See issue 274 + for more details. +

          + +

          In principle we could also relax the "Assignable" requirement for + individual vector member functions, such as + push_back. However, the LWG did not see great value in such + selective relaxation. Doing so would remove implementors' freedom to + implement vector::push_back in terms of + vector::insert.

          + +

          281. std::min() and max() requirements overly restrictive

          Section: 25.3.7 [lib.alg.min.max]  Status: DR  Submitter: Martin Sebor  Date: 02 Dec 2000

          The requirements in 25.3.7, p1 and 4 call for T to satisfy the *************** is unnecessary. *** 6016,6021 **** --- 6797,6850 ---- (20.1.2 [lib.lessthancomparable]).


          +

          284. unportable example in 20.3.7, p6

          + Section: 20.3.7 [lib.function.pointer.adaptors]  Status: DR  Submitter: Martin Sebor  Date: 26 Dec 2000

          +

          The example in 20.3.7 [lib.function.pointer.adaptors], p6 shows how to use the C + library function strcmp() with the function pointer adapter + ptr_fun(). But since it's unspecified whether the C library + functions have extern "C" or extern + "C++" linkage [17.4.2.2 [lib.using.linkage]], and since + function pointers with different the language linkage specifications + (7.5 [dcl.link]) are incompatible, whether this example is + well-formed is unspecified. +

          +

          Proposed resolution:

          +

          Change 20.3.7 [lib.function.pointer.adaptors] paragraph 6 from:

          +
          +

          [Example: +

          +
          +     replace_if(v.begin(), v.end(), not1(bind2nd(ptr_fun(strcmp), "C")), "C++");
          +   
          +

          replaces each C with C++ in sequence v.

          +
          + + +

          to:

          +
          +

          [Example: +

          +
          +     int compare(const char*, const char*);
          +     replace_if(v.begin(), v.end(),
          +                not1(bind2nd(ptr_fun(compare), "abc")), "def");
          +   
          +

          replaces each abc with def in sequence v.

          +
          + +

          Also, remove footnote 215 in that same paragraph.

          + +

          [Copenhagen: Minor change in the proposed resolution. Since this + issue deals in part with C and C++ linkage, it was believed to be too + confusing for the strings in the example to be "C" and "C++". + ]

          + +

          [Redmond: More minor changes. Got rid of the footnote (which + seems to make a sweeping normative requirement, even though footnotes + aren't normative), and changed the sentence after the footnote so that + it corresponds to the new code fragment.]

          + +

          285. minor editorial errors in fstream ctors

          Section: 27.8.1.6 [lib.ifstream.cons]  Status: DR  Submitter: Martin Sebor  Date: 31 Dec 2000

          27.8.1.6 [lib.ifstream.cons], p2, 27.8.1.9 [lib.ofstream.cons], p2, and *************** Table 82. However, <cstdio> is me *** 6695,6700 **** --- 7524,7648 ---- section 27.8 [lib.file.streams], including 27.8.2 [lib.c.files].]


          +

          310. Is errno a macro?

          + Section: 17.4.1.2 [lib.headers], 19.3 [lib.errno]  Status: DR  Submitter: Steve Clamage  Date: 21 Mar 2001

          +

          + Exactly how should errno be declared in a conforming C++ header? +

          + +

          + The C standard says in 7.1.4 that it is unspecified whether errno is a + macro or an identifier with external linkage. In some implementations + it can be either, depending on compile-time options. (E.g., on + Solaris in multi-threading mode, errno is a macro that expands to a + function call, but is an extern int otherwise. "Unspecified" allows + such variability.) +

          + +

          The C++ standard:

          +
            +
          • 17.4.1.2 says in a note that errno must be macro in C. (false)
          • +
          • 17.4.3.1.3 footnote 166 says errno is reserved as an external + name (true), and implies that it is an identifier.
          • +
          • 19.3 simply lists errno as a macro (by what reasoning?) and goes + on to say that the contents of of C++ <errno.h> are the + same as in C, begging the question.
          • +
          • C.2, table 95 lists errno as a macro, without comment.
          • +
          + +

          I find no other references to errno.

          + +

          We should either explicitly say that errno must be a macro, even + though it need not be a macro in C, or else explicitly leave it + unspecified. We also need to say something about namespace std. + A user who includes <cerrno> needs to know whether to write + errno, or ::errno, or std::errno, or + else <cerrno> is useless.

          + +

          Two acceptable fixes:

          +
            +
          • errno must be a macro. This is trivially satisfied by adding
            +   #define errno (::std::errno)
            + to the headers if errno is not already a macro. You then always + write errno without any scope qualification, and it always expands + to a correct reference. Since it is always a macro, you know to + avoid using errno as a local identifer.

          • +
          • errno is in the global namespace. This fix is inferior, because + ::errno is not guaranteed to be well-formed.

          • +
          + +

          [ + This issue was first raised in 1999, but it slipped through + the cracks. + ]

          +

          Proposed resolution:

          +

          Change the Note in section 17.4.1.2p5 from

          + +
          + Note: the names defined as macros in C include the following: + assert, errno, offsetof, setjmp, va_arg, va_end, and va_start. +
          + +

          to

          + +
          + Note: the names defined as macros in C include the following: + assert, offsetof, setjmp, va_arg, va_end, and va_start. +
          + +

          In section 19.3, change paragraph 2 from

          + +
          + The contents are the same as the Standard C library header + <errno.h>. +
          + +

          to

          + +
          + The contents are the same as the Standard C library header + <errno.h>, except that errno shall be defined as a macro. +
          +

          Rationale:

          +

          C++ must not leave it up to the implementation to decide whether or + not a name is a macro; it must explicitly specify exactly which names + are required to be macros. The only one that really works is for it + to be a macro.

          + +

          [Curaçao: additional rationale added.]

          + +
          +

          311. Incorrect wording in basic_ostream class synopsis

          + Section: 27.6.2.1 [lib.ostream]  Status: DR  Submitter: Andy Sawyer  Date: 21 Mar 2001

          + +

          In 27.6.2.1 [lib.ostream], the synopsis of class basic_ostream says:

          + +
          +   // partial specializationss
          +   template<class traits>
          +     basic_ostream<char,traits>& operator<<( basic_ostream<char,traits>&,
          +                                             const char * );
          + 
          + +

          Problems:

          +
            +
          • Too many 's's at the end of "specializationss"
          • +
          • This is an overload, not a partial specialization
          • +
          + +

          Proposed resolution:

          +

          In the synopsis in 27.6.2.1 [lib.ostream], remove the + // partial specializationss comment. Also remove the same + comment (correctly spelled, but still incorrect) from the synopsis in + 27.6.2.5.4 [lib.ostream.inserters.character]. +

          + +

          [ + Pre-Redmond: added 27.6.2.5.4 [lib.ostream.inserters.character] because of Martin's + comment in c++std-lib-8939. + ]

          + +

          312. Table 27 is missing headers

          Section: 20 [lib.utilities]  Status: DR  Submitter: Martin Sebor  Date: 29 Mar 2001

          Table 27 in section 20 lists the header <memory> (only) for *************** Memory (lib.memory) but neglects to ment *** 6703,6708 **** --- 7651,8038 ----

          Proposed resolution:

          Add <cstdlib> and <cstring> to Table 27, in the same row as <memory>.

          +
          +

          315. Bad "range" in list::unique complexity

          + Section: 23.2.2.4 [lib.list.ops]  Status: DR  Submitter: Andy Sawyer  Date: 1 May 2001

          +

          + 23.2.2.4 [lib.list.ops], Para 21 describes the complexity of + list::unique as: "If the range (last - first) is not empty, exactly + (last - first) -1 applications of the corresponding predicate, + otherwise no applications of the predicate)". +

          + +

          + "(last - first)" is not a range. +

          +

          Proposed resolution:

          +

          + Change the "range" from (last - first) to [first, last). +

          +
          +

          316. Vague text in Table 69

          + Section: 23.1.2 [lib.associative.reqmts]  Status: DR  Submitter: Martin Sebor  Date: 4 May 2001

          +

          Table 69 says this about a_uniq.insert(t):

          + +
          + inserts t if and only if there is no element in the container with key + equivalent to the key of t. The bool component of the returned pair + indicates whether the insertion takes place and the iterator component of the + pair points to the element with key equivalent to the key of t. +
          + +

          The description should be more specific about exactly how the bool component + indicates whether the insertion takes place.

          +

          Proposed resolution:

          +

          Change the text in question to

          + +
          + ...The bool component of the returned pair is true if and only if the insertion + takes place... +
          +
          +

          317. Instantiation vs. specialization of facets

          + Section: 22 [lib.localization]  Status: DR  Submitter: Martin Sebor  Date: 4 May 2001

          +

          + The localization section of the standard refers to specializations of + the facet templates as instantiations even though the required facets + are typically specialized rather than explicitly (or implicitly) + instantiated. In the case of ctype<char> and + ctype_byname<char> (and the wchar_t versions), these facets are + actually required to be specialized. The terminology should be + corrected to make it clear that the standard doesn't mandate explicit + instantiation (the term specialization encompasses both explicit + instantiations and specializations). +

          +

          Proposed resolution:

          +

          + In the following paragraphs, replace all occurrences of the word + instantiation or instantiations with specialization or specializations, + respectively: +

          + +
          + 22.1.1.1.1, p4, Table 52, 22.2.1.1, p2, 22.2.1.5, p3, 22.2.1.5.1, p5, + 22.2.1.5.2, p10, 22.2.2, p2, 22.2.3.1, p1, 22.2.3.1.2, p1, p2 and p3, + 22.2.4.1, p1, 22.2.4.1.2, p1, 22,2,5, p1, 22,2,6, p2, 22.2.6.3.2, p7, and + Footnote 242. +
          + +

          And change the text in 22.1.1.1.1, p4 from

          + +
          + An implementation is required to provide those instantiations + for facet templates identified as members of a category, and + for those shown in Table 52: +
          + +

          to

          + +
          + An implementation is required to provide those specializations... +
          + +

          [Nathan will review these changes, and will look for places where + explicit specialization is necessary.]

          + +

          Rationale:

          +

          This is a simple matter of outdated language. The language to + describe templates was clarified during the standardization process, + but the wording in clause 22 was never updated to reflect that + change.

          +
          +

          318. Misleading comment in definition of numpunct_byname

          + Section: 22.2.3.2 [lib.locale.numpunct.byname]  Status: DR  Submitter: Martin Sebor  Date: 12 May 2001

          +

          The definition of the numpunct_byname template contains the following + comment:

          + +
          +     namespace std {
          +         template <class charT>
          +         class numpunct_byname : public numpunct<charT> {
          +     // this class is specialized for char and wchar_t.
          +         ...
          + 
          + +

          There is no documentation of the specializations and it seems + conceivable that an implementation will not explicitly specialize the + template at all, but simply provide the primary template.

          +

          Proposed resolution:

          +

          Remove the comment from the text in 22.2.3.2 and from the proposed + resolution of library issue 228.

          +
          +

          319. Storage allocation wording confuses "Required behavior", "Requires"

          + Section: 18.4.1.1 [lib.new.delete.single], 18.4.1.2 [lib.new.delete.array]  Status: DR  Submitter: Beman Dawes  Date: 15 May 2001

          +

          The standard specifies 17.3.1.3 [lib.structure.specifications] that "Required + behavior" elements describe "the semantics of a function definition + provided by either the implementation or a C++ program."

          + +

          The standard specifies 17.3.1.3 [lib.structure.specifications] that "Requires" + elements describe "the preconditions for calling the function."

          + +

          In the sections noted below, the current wording specifies + "Required Behavior" for what are actually preconditions, and thus + should be specified as "Requires".

          + +

          Proposed resolution:

          + +

          In 18.4.1.1 [lib.new.delete.single] Para 12 Change:

          +
          +

          Required behavior: accept a value of ptr that is null or that was + returned by an earlier call ...

          +
          +

          to:

          +
          +

          Requires: the value of ptr is null or the value returned by an + earlier call ...

          +
          + +

          In 18.4.1.2 [lib.new.delete.array] Para 11 Change:

          +
          +

          Required behavior: accept a value of ptr that is null or that was + returned by an earlier call ...

          +
          +

          to:

          +
          +

          Requires: the value of ptr is null or the value returned by an + earlier call ...

          +
          + +
          +

          321. Typo in num_get

          + Section: 22.2.2.1.2 [lib.facet.num.get.virtuals]  Status: DR  Submitter: Kevin Djang  Date: 17 May 2001

          +

          + Section 22.2.2.1.2 at p7 states that "A length specifier is added to + the conversion function, if needed, as indicated in Table 56." + However, Table 56 uses the term "length modifier", not "length + specifier". +

          +

          Proposed resolution:

          +

          + In 22.2.2.1.2 at p7, change the text "A length specifier is added ..." + to be "A length modifier is added ..." +

          +

          Rationale:

          +

          C uses the term "length modifier". We should be consistent.

          +
          +

          322. iterator and const_iterator should have the same value type

          + Section: 23.1 [lib.container.requirements]  Status: DR  Submitter: Matt Austern  Date: 17 May 2001

          +

          + It's widely assumed that, if X is a container, + iterator_traits<X::iterator>::value_type and + iterator_traits<X::const_iterator>::value_type should both be + X::value_type. However, this is nowhere stated. The language in + Table 65 is not precise about the iterators' value types (it predates + iterator_traits), and could even be interpreted as saying that + iterator_traits<X::const_iterator>::value_type should be "const + X::value_type". +

          + +

          Related issue: 279.

          +

          Proposed resolution:

          +

          In Table 65 ("Container Requirements"), change the return type for + X::iterator to "iterator type whose value type is T". Change the + return type for X::const_iterator to "constant iterator type whose + value type is T".

          +

          Rationale:

          +

          + This belongs as a container requirement, rather than an iterator + requirement, because the whole notion of iterator/const_iterator + pairs is specific to containers' iterator. +

          +

          + It is existing practice that (for example) + iterator_traits<list<int>::const_iterator>::value_type + is "int", rather than "const int". This is consistent with + the way that const pointers are handled: the standard already + requires that iterator_traits<const int*>::value_type is int. +

          +
          +

          327. Typo in time_get facet in table 52

          + Section: 22.1.1.1.1 [lib.locale.category]  Status: DR  Submitter: Tiki Wan  Date: 06 Jul 2001

          +

          The wchar_t versions of time_get and + time_get_byname are listed incorrectly in table 52, + required instantiations. In both cases the second template + parameter is given as OutputIterator. It should instead be + InputIterator, since these are input facets.

          +

          Proposed resolution:

          +

          + In table 52, required instantiations, in + 22.1.1.1.1 [lib.locale.category], change

          +
          +     time_get<wchar_t, OutputIterator>
          +     time_get_byname<wchar_t, OutputIterator>
          + 
          +

          to

          +
          +     time_get<wchar_t, InputIterator>
          +     time_get_byname<wchar_t, InputIterator>
          + 
          + +

          [Redmond: Very minor change in proposed resolution. Original had + a typo, wchart instead of wchar_t.]

          + +
          +

          328. Bad sprintf format modifier in money_put<>::do_put()

          + Section: 22.2.6.2.2 [lib.locale.money.put.virtuals]  Status: DR  Submitter: Martin Sebor  Date: 07 Jul 2001

          +

          The sprintf format string , "%.01f" (that's the digit one), in the + description of the do_put() member functions of the money_put facet in + 22.2.6.2.2, p1 is incorrect. First, the f format specifier is wrong + for values of type long double, and second, the precision of 01 + doesn't seem to make sense. What was most likely intended was + "%.0Lf"., that is a precision of zero followed by the L length + modifier.

          +

          Proposed resolution:

          +

          Change the format string to "%.0Lf".

          +

          Rationale:

          +

          Fixes an obvious typo

          +
          +

          331. bad declaration of destructor for ios_base::failure

          + Section: 27.4.2.1.1 [lib.ios::failure]  Status: DR  Submitter: PremAnand M. Rao  Date: 23 Aug 2001

          +

          + With the change in 17.4.4.8 [lib.res.on.exception.handling] to state + "An implementation may strengthen the exception-specification for a + non-virtual function by removing listed exceptions." + (issue 119) + and the following declaration of ~failure() in ios_base::failure +

          +
          +     namespace std {
          +        class ios_base::failure : public exception {
          +        public:
          +            ...
          +            virtual ~failure();
          +            ...
          +        };
          +      }
          + 
          +

          the class failure cannot be implemented since in 18.6.1 [lib.exception] the destructor of class exception has an empty + exception specification:

          +
          +     namespace std {
          +        class exception {
          +        public:
          +          ...
          +          virtual ~exception() throw();
          +          ...
          +        };
          +      }
          + 
          +

          Proposed resolution:

          +

          Remove the declaration of ~failure().

          +

          Rationale:

          +

          The proposed resolution is consistent with the way that destructors + of other classes derived from exception are handled.

          +
          +

          335. minor issue with char_traits, table 37

          + Section: 21.1.1 [lib.char.traits.require]  Status: DR  Submitter: Andy Sawyer  Date: 06 Sep 2001

          +

          + Table 37, in 21.1.1 [lib.char.traits.require], descibes char_traits::assign + as: +

          +
          +   X::assign(c,d)   assigns c = d.
          + 
          + +

          And para 1 says:

          + +
          + [...] c and d denote values of type CharT [...] +
          + +

          + Naturally, if c and d are values, then the assignment is + (effectively) meaningless. It's clearly intended that (in the case of + assign, at least), 'c' is intended to be a reference type. +

          + +

          I did a quick survey of the four implementations I happened to have + lying around, and sure enough they all have signatures:

          +
          +     assign( charT&, const charT& );
          + 
          + +

          (or the equivalent). It's also described this way in Nico's book. + (Not to mention the synopses of char_traits<char> in 21.1.3.1 + and char_traits<wchar_t> in 21.1.3.2...) +

          +

          Proposed resolution:

          +

          Add the following to 21.1.1 para 1:

          +
          + r denotes an lvalue of CharT +
          + +

          and change the description of assign in the table to:

          +
          +   X::assign(r,d)   assigns r = d
          + 
          +
          +

          337. replace_copy_if's template parameter should be InputIterator

          + Section: 25.2.4 [lib.alg.replace]  Status: DR  Submitter: Detlef Vollmann  Date: 07 Sep 2001

          +

          From c++std-edit-876:

          + +

          + In section 25.2.4 [lib.alg.replace] before p4: The name of the first + parameter of template replace_copy_if should be "InputIterator" + instead of "Iterator". According to 17.3.2.1 [lib.type.descriptions] p1 the + parameter name conveys real normative meaning. +

          +

          Proposed resolution:

          +

          Change Iterator to InputIterator.

          +
          +

          345. type tm in <cwchar>

          + Section: 21.4 [lib.c.strings]  Status: DR  Submitter: Clark Nelson  Date: 19 Oct 2001

          +

          + C99, and presumably amendment 1 to C90, specify that <wchar.h> + declares struct tm as an incomplete type. However, table 48 in 21.4 [lib.c.strings] does not mention the type tm as being declared in + <cwchar>. Is this omission intentional or accidental? +

          +

          Proposed resolution:

          +

          In section 21.4 [lib.c.strings], add "tm" to table 48.

          +
          +

          346. Some iterator member functions should be const

          + Section: 24.1 [lib.iterator.requirements]  Status: DR  Submitter: Jeremy Siek  Date: 20 Oct 2001

          +

          Iterator member functions and operators that do not change the state + of the iterator should be defined as const member functions or as + functions that take iterators either by const reference or by + value. The standard does not explicitly state which functions should + be const. Since this a fairly common mistake, the following changes + are suggested to make this explicit.

          + +

          The tables almost indicate constness properly through naming: r + for non-const and a,b for const iterators. The following changes + make this more explicit and also fix a couple problems.

          +

          Proposed resolution:

          +

          In 24.1 [lib.iterator.requirements] Change the first section of p9 from + "In the following sections, a and b denote values of X..." to + "In the following sections, a and b denote values of type const X...".

          + +

          In Table 73, change

          +
          +     a->m   U&         ...
          + 
          + +

          to

          + +
          +     a->m   const U&   ...
          +     r->m   U&         ...
          + 
          + +

          In Table 73 expression column, change

          + +
          +     *a = t
          + 
          + +

          to

          + +
          +     *r = t
          + 
          + +

          [Redmond: The container requirements should be reviewed to see if + the same problem appears there.]

          +

          ----- End of document -----

          diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/faq/index.html gcc-3.1.1/libstdc++-v3/docs/html/faq/index.html *** gcc-3.1/libstdc++-v3/docs/html/faq/index.html Thu May 2 21:22:14 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/faq/index.html Sat Jul 20 06:34:51 2002 *************** *** 77,83 ****
        • The g++-3 headers are not ours
        • compilation errors from streambuf.h !
        • errors about *Cconcept and constraints in the STL...
        • program crashes when using library code in a dynamically-loaded library --- 77,83 ----
        • The g++-3 headers are not ours
        • compilation errors from streambuf.h !
        • errors about *Concept and constraints in the STL...
        • program crashes when using library code in a dynamically-loaded library *************** *** 112,118 **** as described in chapters 17 through 27 and annex D. As the library reaches stable plateaus, it is captured in a snapshot and released. The current release is ! the fourteenth snapshot. For those who want to see exactly how far the project has come, or just want the latest bleeding-edge code, the up-to-date source is available over --- 112,118 ---- as described in chapters 17 through 27 and annex D. As the library reaches stable plateaus, it is captured in a snapshot and released. The current release is ! the fourteenth snapshot. For those who want to see exactly how far the project has come, or just want the latest bleeding-edge code, the up-to-date source is available over *************** *** 170,177 ****

          1.4 How do I get libstdc++?

          The fourteenth (and latest) snapshot of libstdc++-v3 is ! available via ! ftp.

          The homepage has instructions for retrieving the latest CVS sources, and for --- 170,177 ----


          1.4 How do I get libstdc++?

          The fourteenth (and latest) snapshot of libstdc++-v3 is ! available ! via ftp.

          The homepage has instructions for retrieving the latest CVS sources, and for *************** which is no longer available, thanks dej *** 487,495 ****

          For 3.0.1, the most common "bug" is an apparently missing "../" in include/Makefile, resulting in files ! like gthr.h and gthr-single.h not being found. !

          !

          Please read the configuration instructions for GCC, specifically the part about configuring in a separate build directory, --- 487,493 ----

          For 3.0.1, the most common "bug" is an apparently missing "../" in include/Makefile, resulting in files ! like gthr.h and gthr-single.h not being found. Please read the configuration instructions for GCC, specifically the part about configuring in a separate build directory, *************** which is no longer available, thanks dej *** 497,502 **** --- 495,512 ---- is fragile, is rarely tested, and tends to break, as in this case. This was fixed for 3.0.2.

          + +

          For 3.1, the most common "bug" is a parse error when using + <fstream>, ending with a message, + "bits/basic_file.h:52: parse error before `{' + token." Please read + the installation instructions for + GCC, specifically the part about not installing newer versions on + top of older versions. If you install 3.1 over a 3.0.x release, then + the wrong basic_file.h header will be found (its location changed + between releases). +

          +

          Please do not report these as bugs. We know about them. Reporting this -- or any other problem that's already been fixed -- hinders the development of GCC, because we have to take time to *************** http://clisp.cons.org/~haible/gccinclude *** 835,848 ****


          5.4 Extensions and Backward Compatibility

          !

          Although you can specify -I options to make the ! preprocessor search the g++-v3/ext and /backward directories, ! it is better to refer to files there by their path, as in: -

          !        #include <ext/hash_map>
          !          

          Extensions to the library have their own page.

          --- 845,860 ----

          5.4 Extensions and Backward Compatibility

          !

          Headers in the ext and backward ! subdirectories should be referred to by their relative paths:

          !       #include <ext/hash_map> 
          ! rather than using -I or other options. This is more ! portable and forward-compatible. (The situation is the same as ! that of other headers whose directories are not searched directly, ! e.g., <sys/stat.h>, <X11/Xlib.h>. !

          Extensions to the library have their own page.

          diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/faq/index.txt gcc-3.1.1/libstdc++-v3/docs/html/faq/index.txt *** gcc-3.1/libstdc++-v3/docs/html/faq/index.txt Thu May 2 21:22:14 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/faq/index.txt Sat Jul 20 06:34:51 2002 *************** *** 45,51 **** header o [35]The g++-3 headers are not ours o [36]compilation errors from streambuf.h ! o [37]errors about *Cconcept and constraints in the STL... o [38]program crashes when using library code in a dynamically-loaded library 5. [39]Aw, that's easy to fix! --- 45,51 ---- header o [35]The g++-3 headers are not ours o [36]compilation errors from streambuf.h ! o [37]errors about *Concept and constraints in the STL... o [38]program crashes when using library code in a dynamically-loaded library 5. [39]Aw, that's easy to fix! *************** *** 403,415 **** For 3.0.1, the most common "bug" is an apparently missing "../" in include/Makefile, resulting in files like gthr.h and gthr-single.h not ! being found. ! Please read [71]the configuration instructions for GCC, specifically ! the part about configuring in a separate build directory, and how ! strongly recommended it is. Building in the source directory is ! fragile, is rarely tested, and tends to break, as in this case. This ! was fixed for 3.0.2. Please do not report these as bugs. We know about them. Reporting this -- or any other problem that's already been fixed -- hinders the --- 403,421 ---- For 3.0.1, the most common "bug" is an apparently missing "../" in include/Makefile, resulting in files like gthr.h and gthr-single.h not ! being found. Please read [71]the configuration instructions for GCC, ! specifically the part about configuring in a separate build directory, ! and how strongly recommended it is. Building in the source directory ! is fragile, is rarely tested, and tends to break, as in this case. ! This was fixed for 3.0.2. ! For 3.1, the most common "bug" is a parse error when using , ! ending with a message, "bits/basic_file.h:52: parse error before `{' ! token." Please read [72]the installation instructions for GCC, ! specifically the part about not installing newer versions on top of ! older versions. If you install 3.1 over a 3.0.x release, then the ! wrong basic_file.h header will be found (its location changed between ! releases). Please do not report these as bugs. We know about them. Reporting this -- or any other problem that's already been fixed -- hinders the *************** New: *** 474,503 **** libstdc++. If you are experiencing one of these problems, you can find more information on the libstdc++ and the GCC mailing lists. ! Before reporting a bug, examine the [72]bugs database with the category set to "libstdc++". The BUGS file in the source tree also tracks known serious problems. * Debugging is problematic, due to bugs in line-number generation (mostly fixed in the compiler) and gdb lagging behind the compiler (lack of personnel). We recommend configuring the compiler using --with-dwarf2 if the DWARF2 debugging format is not already the ! default on your platform. Also, [73]changing your GDB settings can have a profound effect on your C++ debugging experiences. :-) _________________________________________________________________ 4.3 Bugs in the C++ language/lib specification ! Yes, unfortunately, there are some. In a [74]message to the list, Nathan Myers announced that he has started a list of problems in the ISO C++ Standard itself, especially with regard to the chapters that ! concern the library. The list itself is [75]posted on his website. Developers who are having problems interpreting the Standard may wish to consult his notes. For those people who are not part of the ISO Library Group (i.e., nearly all of us needing to read this page in the first place :-), a ! public list of the library defects is occasionally published [76]here. ! Some of these have resulted in [77]code changes. _________________________________________________________________ 4.4 Things in libstdc++ that only look like bugs --- 480,509 ---- libstdc++. If you are experiencing one of these problems, you can find more information on the libstdc++ and the GCC mailing lists. ! Before reporting a bug, examine the [73]bugs database with the category set to "libstdc++". The BUGS file in the source tree also tracks known serious problems. * Debugging is problematic, due to bugs in line-number generation (mostly fixed in the compiler) and gdb lagging behind the compiler (lack of personnel). We recommend configuring the compiler using --with-dwarf2 if the DWARF2 debugging format is not already the ! default on your platform. Also, [74]changing your GDB settings can have a profound effect on your C++ debugging experiences. :-) _________________________________________________________________ 4.3 Bugs in the C++ language/lib specification ! Yes, unfortunately, there are some. In a [75]message to the list, Nathan Myers announced that he has started a list of problems in the ISO C++ Standard itself, especially with regard to the chapters that ! concern the library. The list itself is [76]posted on his website. Developers who are having problems interpreting the Standard may wish to consult his notes. For those people who are not part of the ISO Library Group (i.e., nearly all of us needing to read this page in the first place :-), a ! public list of the library defects is occasionally published [77]here. ! Some of these have resulted in [78]code changes. _________________________________________________________________ 4.4 Things in libstdc++ that only look like bugs *************** New: *** 529,535 **** state on the previous file. The reason is that the state flags are not cleared on a successful call to open(). The standard unfortunately did not specify behavior in this case, and to everybody's great sorrow, ! the [78]proposed LWG resolution (see DR #22) is to leave the flags unchanged. You must insert a call to fs.clear() between the calls to close() and open(), and then everything will work like we all expect it to work. --- 535,541 ---- state on the previous file. The reason is that the state flags are not cleared on a successful call to open(). The standard unfortunately did not specify behavior in this case, and to everybody's great sorrow, ! the [79]proposed LWG resolution (see DR #22) is to leave the flags unchanged. You must insert a call to fs.clear() between the calls to close() and open(), and then everything will work like we all expect it to work. *************** New: *** 539,545 **** same namespace as other comparison functions (e.g., 'using' them and the header), then you will suddenly be faced with huge numbers of ambiguity errors. This was discussed on the -v3 list; ! Nathan Myers [79]sums things up here. The collisions with vector/string iterator types have been fixed for 3.1. The g++-3 headers are not ours --- 545,551 ---- same namespace as other comparison functions (e.g., 'using' them and the header), then you will suddenly be faced with huge numbers of ambiguity errors. This was discussed on the -v3 list; ! Nathan Myers [80]sums things up here. The collisions with vector/string iterator types have been fixed for 3.1. The g++-3 headers are not ours *************** New: *** 547,553 **** If you have found an extremely broken header file which is causing problems for you, look carefully before submitting a "high" priority bug report (which you probably shouldn't do anyhow; see the last ! paragraph of the page describing [80]the GCC bug database). If the headers are in ${prefix}/include/g++-3, or if the installed library's name looks like libstdc++-2.10.a or libstdc++-libc6-2.10.so, --- 553,559 ---- If you have found an extremely broken header file which is causing problems for you, look carefully before submitting a "high" priority bug report (which you probably shouldn't do anyhow; see the last ! paragraph of the page describing [81]the GCC bug database). If the headers are in ${prefix}/include/g++-3, or if the installed library's name looks like libstdc++-2.10.a or libstdc++-libc6-2.10.so, *************** New: *** 557,563 **** Currently our header files are installed in ${prefix}/include/g++-v3 (see the 'v'?). This may change with the next release of GCC, as it ! may be too confusing, but [81]the question has not yet been decided. glibc If you're on a GNU/Linux system and have just upgraded to glibc 2.2, but are still using gcc 2.95.2, then you should have read the --- 563,569 ---- Currently our header files are installed in ${prefix}/include/g++-v3 (see the 'v'?). This may change with the next release of GCC, as it ! may be too confusing, but [82]the question has not yet been decided. glibc If you're on a GNU/Linux system and have just upgraded to glibc 2.2, but are still using gcc 2.95.2, then you should have read the *************** type has changed in glibc 2.2. The patc *** 570,576 **** http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff ! Note that 2.95.x shipped with the [82]old v2 library which is no longer maintained. Also note that gcc 2.95.3 fixes this problem, but requires a separate patch for libstdc++-v3. --- 576,582 ---- http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff ! Note that 2.95.x shipped with the [83]old v2 library which is no longer maintained. Also note that gcc 2.95.3 fixes this problem, but requires a separate patch for libstdc++-v3. *************** http://clisp.cons.org/~haible/gccinclude *** 583,589 **** visibility, or you just plain forgot, etc). More information, including how to optionally enable/disable the ! checks, is available [83]here. dlopen/dlsym If you are using the C++ library across dynamically-loaded objects, make certain that you are passing the --- 589,595 ---- visibility, or you just plain forgot, etc). More information, including how to optionally enable/disable the ! checks, is available [84]here. dlopen/dlsym If you are using the C++ library across dynamically-loaded objects, make certain that you are passing the *************** http://clisp.cons.org/~haible/gccinclude *** 605,620 **** If you have found a bug in the library and you think you have a working fix, then send it in! The main GCC site has a page on ! [84]submitting patches that covers the procedure, but for libstdc++ you should also send the patch to our mailing list in addition to the ! GCC patches mailing list. The libstdc++ [85]contributors' page also talks about how to submit patches. In addition to the description, the patch, and the ChangeLog entry, it is a Good Thing if you can additionally create a small test program to test for the presence of the bug that your patch fixes. Bugs have a way of being reintroduced; if an old bug creeps back in, it will be ! caught immediately by the [86]testsuite -- but only if such a test exists. _________________________________________________________________ --- 611,626 ---- If you have found a bug in the library and you think you have a working fix, then send it in! The main GCC site has a page on ! [85]submitting patches that covers the procedure, but for libstdc++ you should also send the patch to our mailing list in addition to the ! GCC patches mailing list. The libstdc++ [86]contributors' page also talks about how to submit patches. In addition to the description, the patch, and the ChangeLog entry, it is a Good Thing if you can additionally create a small test program to test for the presence of the bug that your patch fixes. Bugs have a way of being reintroduced; if an old bug creeps back in, it will be ! caught immediately by the [87]testsuite -- but only if such a test exists. _________________________________________________________________ *************** http://clisp.cons.org/~haible/gccinclude *** 648,654 **** libstdc++. Some of that is already happening, see 4.2. Some of those changes are being predicted by the library maintainers, and we add code to the library based on what the current proposed ! resolution specifies. Those additions are listed in [87]the extensions page. 2. Performance tuning. Lots of performance tuning. This too is already underway for post-3.0 releases, starting with memory --- 654,660 ---- libstdc++. Some of that is already happening, see 4.2. Some of those changes are being predicted by the library maintainers, and we add code to the library based on what the current proposed ! resolution specifies. Those additions are listed in [88]the extensions page. 2. Performance tuning. Lots of performance tuning. This too is already underway for post-3.0 releases, starting with memory *************** http://clisp.cons.org/~haible/gccinclude *** 664,676 **** type from C99.) Bugfixes and rewrites (to improve or fix thread safety, for instance) will of course be a continuing task. ! [88]This question about the next libstdc++ prompted some brief but ! interesting [89]speculation. _________________________________________________________________ 5.3 What about the STL from SGI? ! The [90]STL from SGI, version 3.3, was the most recent merge of the STL codebase. The code in libstdc++ contains many fixes and changes, and it is very likely that the SGI code is no longer under active development. We expect that no future merges will take place. --- 670,682 ---- type from C99.) Bugfixes and rewrites (to improve or fix thread safety, for instance) will of course be a continuing task. ! [89]This question about the next libstdc++ prompted some brief but ! interesting [90]speculation. _________________________________________________________________ 5.3 What about the STL from SGI? ! The [91]STL from SGI, version 3.3, was the most recent merge of the STL codebase. The code in libstdc++ contains many fixes and changes, and it is very likely that the SGI code is no longer under active development. We expect that no future merges will take place. *************** http://clisp.cons.org/~haible/gccinclude *** 685,697 **** 5.4 Extensions and Backward Compatibility ! Although you can specify -I options to make the preprocessor search ! the g++-v3/ext and /backward directories, it is better to refer to ! files there by their path, as in: ! #include ! Extensions to the library have [91]their own page. _________________________________________________________________ 5.5 [removed] --- 691,706 ---- 5.4 Extensions and Backward Compatibility ! Headers in the ext and backward subdirectories should be referred to ! by their relative paths: ! #include + rather than using -I or other options. This is more portable and + forward-compatible. (The situation is the same as that of other + headers whose directories are not searched directly, e.g., + , . ! Extensions to the library have [92]their own page. _________________________________________________________________ 5.5 [removed] *************** a *** 740,747 **** otherwise documented as safe, do not assume that two threads may access a shared standard library object at the same time. ! See chapters [92]17 (library introduction), [93]23 (containers), and ! [94]27 (I/O) for more information. _________________________________________________________________ 5.7 How do I get a copy of the ISO C++ Standard? --- 749,756 ---- otherwise documented as safe, do not assume that two threads may access a shared standard library object at the same time. ! See chapters [93]17 (library introduction), [94]23 (containers), and ! [95]27 (I/O) for more information. _________________________________________________________________ 5.7 How do I get a copy of the ISO C++ Standard? *************** a *** 752,762 **** their two-meeting commitment for voting rights, may get a copy of the standard from their respective national standards organization. In the USA, this national standards organization is ANSI and their website is ! right [95]here. (And if you've already registered with them, clicking ! this link will take you to directly to the place where you can [96]buy the standard on-line. ! Who is your country's member body? Visit the [97]ISO homepage and find out! _________________________________________________________________ --- 761,771 ---- their two-meeting commitment for voting rights, may get a copy of the standard from their respective national standards organization. In the USA, this national standards organization is ANSI and their website is ! right [96]here. (And if you've already registered with them, clicking ! this link will take you to directly to the place where you can [97]buy the standard on-line. ! Who is your country's member body? Visit the [98]ISO homepage and find out! _________________________________________________________________ *************** a *** 807,814 **** encompasses the standard library. _________________________________________________________________ ! See [98]license.html for copying conditions. Comments and suggestions ! are welcome, and may be sent to [99]the libstdc++ mailing list. References --- 816,823 ---- encompasses the standard library. _________________________________________________________________ ! See [99]license.html for copying conditions. Comments and suggestions ! are welcome, and may be sent to [100]the libstdc++ mailing list. References *************** References *** 860,872 **** 46. ../faq/index.html#5_6 47. ../faq/index.html#5_7 48. ../faq/index.html#5_8 ! 49. http://gcc.gnu.org/libstdc++/download.html 50. ../faq/index.html#4_4_interface 51. ../17_intro/DESIGN 52. http://gcc.gnu.org/ 53. http://gcc.gnu.org/gcc-3.0/buildstat.html 54. http://gcc.gnu.org/libstdc++/ ! 55. http://gcc.gnu.org/libstdc++/download.html 56. http://gcc.gnu.org/libstdc++/ 57. ../17_intro/contribute.html 58. http://www.boost.org/ --- 869,881 ---- 46. ../faq/index.html#5_6 47. ../faq/index.html#5_7 48. ../faq/index.html#5_8 ! 49. http://gcc.gnu.org/libstdc++/index.html#download 50. ../faq/index.html#4_4_interface 51. ../17_intro/DESIGN 52. http://gcc.gnu.org/ 53. http://gcc.gnu.org/gcc-3.0/buildstat.html 54. http://gcc.gnu.org/libstdc++/ ! 55. http://gcc.gnu.org/libstdc++/index.html#download 56. http://gcc.gnu.org/libstdc++/ 57. ../17_intro/contribute.html 58. http://www.boost.org/ *************** References *** 883,913 **** 69. http://gcc.gnu.org/cgi-bin/htsearch?method=and&format=builtin-long&sort=score&words=_XOPEN_SOURCE+Solaris 70. http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html 71. http://gcc.gnu.org/install/configure.html ! 72. http://gcc.gnu.org/bugs.html ! 73. http://gcc.gnu.org/ml/libstdc++/2002-02/msg00034.html ! 74. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html ! 75. http://www.cantrip.org/draft-bugs.txt ! 76. http://anubis.dkuug.dk/jtc1/sc22/wg21/ ! 77. ../faq/index.html#5_2 ! 78. ../ext/howto.html#5 ! 79. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html ! 80. http://gcc.gnu.org/gnatswrite.html ! 81. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html ! 82. ../faq/index.html#4_4_interface ! 83. ../19_diagnostics/howto.html#3 ! 84. http://gcc.gnu.org/contribute.html ! 85. ../17_intro/contribute.html ! 86. ../faq/index.html#2_4 ! 87. ../ext/howto.html#5 ! 88. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html ! 89. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html ! 90. http://www.sgi.com/Technology/STL/ ! 91. ../ext/howto.html ! 92. ../17_intro/howto.html#3 ! 93. ../23_containers/howto.html#3 ! 94. ../27_io/howto.html#9 ! 95. http://www.ansi.org/ ! 96. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998 ! 97. http://www.iso.ch/ ! 98. ../17_intro/license.html ! 99. mailto:libstdc++@gcc.gnu.org --- 892,923 ---- 69. http://gcc.gnu.org/cgi-bin/htsearch?method=and&format=builtin-long&sort=score&words=_XOPEN_SOURCE+Solaris 70. http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html 71. http://gcc.gnu.org/install/configure.html ! 72. http://gcc.gnu.org/install/ ! 73. http://gcc.gnu.org/bugs.html ! 74. http://gcc.gnu.org/ml/libstdc++/2002-02/msg00034.html ! 75. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html ! 76. http://www.cantrip.org/draft-bugs.txt ! 77. http://anubis.dkuug.dk/jtc1/sc22/wg21/ ! 78. ../faq/index.html#5_2 ! 79. ../ext/howto.html#5 ! 80. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html ! 81. http://gcc.gnu.org/gnatswrite.html ! 82. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html ! 83. ../faq/index.html#4_4_interface ! 84. ../19_diagnostics/howto.html#3 ! 85. http://gcc.gnu.org/contribute.html ! 86. ../17_intro/contribute.html ! 87. ../faq/index.html#2_4 ! 88. ../ext/howto.html#5 ! 89. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html ! 90. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html ! 91. http://www.sgi.com/Technology/STL/ ! 92. ../ext/howto.html ! 93. ../17_intro/howto.html#3 ! 94. ../23_containers/howto.html#3 ! 95. ../27_io/howto.html#9 ! 96. http://www.ansi.org/ ! 97. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998 ! 98. http://www.iso.ch/ ! 99. ../17_intro/license.html ! 100. mailto:libstdc++@gcc.gnu.org diff -Nrc3pad gcc-3.1/libstdc++-v3/docs/html/install.html gcc-3.1.1/libstdc++-v3/docs/html/install.html *** gcc-3.1/libstdc++-v3/docs/html/install.html Mon Apr 1 22:09:28 2002 --- gcc-3.1.1/libstdc++-v3/docs/html/install.html Tue Jul 2 06:22:38 2002 *************** *** 67,98 ****

          As of June 19, 2000, libstdc++ attempts to use tricky and space-saving features of the GNU toolchain, enabled with ! -ffunction-sections -fdata-sections -Wl,--gc-sections. ! To obtain maximum benefit from this, binutils after this date ! should also be used (bugs were fixed with C++ exception handling ! related to this change in libstdc++-v3). The version of these ! tools should be 2.10.90, and you can get snapshots (as well as releases) of binutils ! here.

          If you are using a 3.1-series libstdc++ snapshot, then the ! requirements are slightly more stringent: the compiler sources must ! also be 3.1 or later (for both technical and licensing reasons), and ! your binutils must be 2.11.95 or later if you want to use symbol ! versioning in shared libraries.

          ! !
          --- 67,127 ----

          As of June 19, 2000, libstdc++ attempts to use tricky and space-saving features of the GNU toolchain, enabled with ! -ffunction-sections -fdata-sections ! -Wl,--gc-sections. To obtain maximum benefit from this, ! binutils after this date should also be used (bugs were fixed ! with C++ exception handling related to this change in ! libstdc++-v3). The version of these tools should be ! 2.10.90, or later, and you can get snapshots (as well as releases) of binutils ! here. The ! configure process will automatically detect and use these ! features if the underlying support is present.

          If you are using a 3.1-series libstdc++ snapshot, then the ! requirements are slightly more stringent: the compiler sources ! must also be 3.1 or later (for both technical and licensing ! reasons), and your binutils must be 2.11.95 or later if you want ! to use symbol versioning in shared libraries. Again, the ! configure process will automatically detect and use these ! features if the underlying support is present.

          ! !

          Finally, a few system-specific requirements:

          !
          linux !
          If you are using gcc 3.1 or later on linux, and are using ! the gnu locale model (enabled by default for sufficient ! versions of glibc), the following locales are used and tested ! in the libstdc++ testsuites: en_HK, en_US, fr_FR, fr_FR@euro, ! de_DE, de_DE@euro, ja_JP.eucjp, and it_IT. Failure to have the ! underlying "C" library locale information installed will mean ! that C++ named locales for the above regions will not work: ! because of this, the libstdc++ testsuite will not pass the ! named locale tests. If this isn't an issue, don't worry about ! it. If named locales are needed, the underlying locale ! information must be installed. Note that rebuilding libstdc++ ! after locales are installed is not necessary. ! !

          To install ! support for locales, do only one of the following:

          !

          !

        • install all locales !

          export LC_ALL=C

          !

          rpm -e glibc-common --nodeps

          !

          rpm -i --define "_install_langs all" ! glibc-common-2.2.5-34.i386.rpm

          !
        • !
        • install just the necessary locales !

          localedef -i de_DE -f ISO-8859-1 de_DE

          !
        • !

          !
          ! !


          *************** *** 102,108 ****
          • gccsrcdir: The directory holding the source of the compiler. It should have several subdirectories like ! gccsrcdir/libio and gccsrcdir/gcc.
          • libsrcdir: The directory holding the source of the C++ library.
          • gccbuilddir: The build directory for the compiler --- 131,137 ----
            • gccsrcdir: The directory holding the source of the compiler. It should have several subdirectories like ! gccsrcdir/libiberty and gccsrcdir/gcc.
            • libsrcdir: The directory holding the source of the C++ library.
            • gccbuilddir: The build directory for the compiler *************** *** 187,193 ****

              [re]building only libstdc++

              To rebuild just libstdc++, use:

              !    make all-target-libstdc++-v3
              This will configure and build the C++ library in the gccbuilddir/cpu-vendor-os/libstdc++ directory.

              --- 216,222 ----

              [re]building only libstdc++

              To rebuild just libstdc++, use:

              !    make all-target-libstdc++-v3
              This will configure and build the C++ library in the gccbuilddir/cpu-vendor-os/libstdc++ directory.

              *************** *** 203,209 ****

              You're done. Now install the rebuilt pieces with

                   make install
              ! or
                   make install-gcc
                   make install-target-libstdc++-v3
              --- 232,238 ----

              You're done. Now install the rebuilt pieces with

                   make install
              ! or
                   make install-gcc
                   make install-target-libstdc++-v3
              diff -Nrc3pad gcc-3.1/libstdc++-v3/include/Makefile.am gcc-3.1.1/libstdc++-v3/include/Makefile.am *** gcc-3.1/libstdc++-v3/include/Makefile.am Tue Apr 30 19:05:42 2002 --- gcc-3.1.1/libstdc++-v3/include/Makefile.am Fri Jun 28 08:22:32 2002 *************** *** 21,27 **** ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA. ! AUTOMAKE_OPTIONS = 1.3 gnits MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs --- 21,27 ---- ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA. ! AUTOMAKE_OPTIONS = 1.3 cygnus MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs *************** bits_headers = \ *** 96,102 **** ${bits_srcdir}/type_traits.h \ ${bits_srcdir}/valarray_array.h \ ${bits_srcdir}/valarray_array.tcc \ ! ${bits_srcdir}/valarray_meta.h backward_srcdir = ${glibcpp_srcdir}/include/backward backward_builddir = ./backward --- 96,102 ---- ${bits_srcdir}/type_traits.h \ ${bits_srcdir}/valarray_array.h \ ${bits_srcdir}/valarray_array.tcc \ ! ${bits_srcdir}/valarray_meta.h backward_srcdir = ${glibcpp_srcdir}/include/backward backward_builddir = ./backward *************** c_base_headers_rename = \ *** 201,215 **** cwchar \ cwctype # Some of the different "C" header models need extra files. # For --enable-cheaders=c_std if GLIBCPP_C_HEADERS_C_STD ! c_base_headers_extra = \ ! ${c_base_srcdir}/cmath.tcc else c_base_headers_extra = endif std_srcdir = ${glibcpp_srcdir}/include/std std_builddir = . std_headers = \ --- 201,245 ---- cwchar \ cwctype + # "C" compatibility headers. + c_compatibility_srcdir = ${glibcpp_srcdir}/include/c_compatibility + c_compatibility_builddir = . + c_compatibility_headers = \ + ${c_compatibility_srcdir}/assert.h \ + ${c_compatibility_srcdir}/ctype.h \ + ${c_compatibility_srcdir}/errno.h \ + ${c_compatibility_srcdir}/float.h \ + ${c_compatibility_srcdir}/iso646.h \ + ${c_compatibility_srcdir}/limits.h \ + ${c_compatibility_srcdir}/locale.h \ + ${c_compatibility_srcdir}/math.h \ + ${c_compatibility_srcdir}/setjmp.h \ + ${c_compatibility_srcdir}/signal.h \ + ${c_compatibility_srcdir}/stdarg.h \ + ${c_compatibility_srcdir}/stddef.h \ + ${c_compatibility_srcdir}/stdio.h \ + ${c_compatibility_srcdir}/stdlib.h \ + ${c_compatibility_srcdir}/string.h \ + ${c_compatibility_srcdir}/time.h \ + ${c_compatibility_srcdir}/wchar.h \ + ${c_compatibility_srcdir}/wctype.h + # Some of the different "C" header models need extra files. + # Some "C" header schemes require the "C" compatibility headers. # For --enable-cheaders=c_std if GLIBCPP_C_HEADERS_C_STD ! c_base_headers_extra = ${c_base_srcdir}/cmath.tcc else c_base_headers_extra = endif + if GLIBCPP_C_HEADERS_COMPATIBILITY + c_compatibility_headers_extra = ${c_compatibility_headers} + else + c_compatibility_headers_extra = + endif + + std_srcdir = ${glibcpp_srcdir}/include/std std_builddir = . std_headers = \ *************** target_headers = \ *** 283,290 **** ${target_srcdir}/os_defines.h \ ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \ ${glibcpp_srcdir}/@CPU_LIMITS_INC_SRCDIR@/cpu_limits.h ! # These extra_target_headers files are all built with ad hoc naming rules. ! extra_target_headers = \ ${target_builddir}/basic_file.h \ ${target_builddir}/c++config.h \ ${target_builddir}/c++io.h \ --- 313,320 ---- ${target_srcdir}/os_defines.h \ ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \ ${glibcpp_srcdir}/@CPU_LIMITS_INC_SRCDIR@/cpu_limits.h ! # These target_headers_extra files are all built with ad hoc naming rules. ! target_headers_extra = \ ${target_builddir}/basic_file.h \ ${target_builddir}/c++config.h \ ${target_builddir}/c++io.h \ *************** thread_target_headers = \ *** 300,306 **** # List of all timestamp files. By keeping only one copy of this list, both # CLEANFILES and all-local are kept up-to-date. ! allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext \ ${target_builddir}/stamp-target --- 330,338 ---- # List of all timestamp files. By keeping only one copy of this list, both # CLEANFILES and all-local are kept up-to-date. ! allstamps = \ ! stamp-std stamp-bits stamp-c_base stamp-c_compatibility \ ! stamp-backward stamp-ext \ ${target_builddir}/stamp-target *************** stamp-c_base: ${c_base_headers} ${c_base *** 339,344 **** --- 371,385 ---- fi ;\ echo `date` > stamp-c_base + stamp-c_compatibility: ${c_compatibility_headers_extra} + @if [ ! -d "${c_compatibility_builddir}" ]; then \ + mkdir -p ${c_compatibility_builddir} ;\ + fi ;\ + if [ ! -z "${c_compatibility_headers_extra}" ]; then \ + (cd ${c_compatibility_builddir} && @LN_S@ $? . || true) ;\ + fi ;\ + echo `date` > stamp-c_compatibility + stamp-backward: ${backward_headers} @if [ ! -d "${backward_builddir}" ]; then \ mkdir -p ${backward_builddir} ;\ *************** ${target_builddir}/gthr-default.h: ${top *** 420,426 **** # components. Yes, with minor differences, this is sheer duplication # of the staging rules above using $(INSTALL_DATA) instead of LN_S and # `$(mkinstalldirs)' instead of `mkdir -p'. In particular, ! # extra_target_headers are taken out of the build tree staging area; # the rest are taken from the original source tree. gxx_include_dir = @gxx_include_dir@ install-data-local: --- 461,467 ---- # components. Yes, with minor differences, this is sheer duplication # of the staging rules above using $(INSTALL_DATA) instead of LN_S and # `$(mkinstalldirs)' instead of `mkdir -p'. In particular, ! # target_headers_extra are taken out of the build tree staging area; # the rest are taken from the original source tree. gxx_include_dir = @gxx_include_dir@ install-data-local: *************** install-data-local: *** 436,452 **** $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} \ ! ${gxx_include_dir}/${c_base_builddir}; done ! c_base_headers_extra_install=${c_base_headers_extra};\ for file in $$c_base_headers_extra_install; do \ $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} \ ! ${gxx_include_dir}/${std_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${target_builddir} ! for file in ${target_headers} ${extra_target_headers} \ ${thread_target_headers}; do \ $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done --- 477,494 ---- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} ${gxx_include_dir}; done ! c_base_headers_extra_install='$(c_base_headers_extra)';\ for file in $$c_base_headers_extra_install; do \ $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done + c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ + for file in $$c_compatibility_headers_install; do \ + $(INSTALL_DATA) $$file ${gxx_include_dir}; done $(mkinstalldirs) ${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} ${gxx_include_dir}; done $(mkinstalldirs) ${gxx_include_dir}/${target_builddir} ! for file in ${target_headers} ${target_headers_extra} \ ${thread_target_headers}; do \ $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done diff -Nrc3pad gcc-3.1/libstdc++-v3/include/Makefile.in gcc-3.1.1/libstdc++-v3/include/Makefile.in *** gcc-3.1/libstdc++-v3/include/Makefile.in Tue Apr 30 19:05:42 2002 --- gcc-3.1.1/libstdc++-v3/include/Makefile.in Fri Jun 28 08:22:32 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,106 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 75,91 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 111,132 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 96,112 ---- *************** glibcpp_toolexeclibdir = @glibcpp_toolex *** 145,154 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ ! AUTOMAKE_OPTIONS = 1.3 gnits MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs --- 125,133 ---- ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ toplevel_srcdir = @toplevel_srcdir@ ! AUTOMAKE_OPTIONS = 1.3 cygnus MAINT_CHARSET = latin1 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs *************** bits_headers = \ *** 223,229 **** ${bits_srcdir}/type_traits.h \ ${bits_srcdir}/valarray_array.h \ ${bits_srcdir}/valarray_array.tcc \ ! ${bits_srcdir}/valarray_meta.h backward_srcdir = ${glibcpp_srcdir}/include/backward --- 202,208 ---- ${bits_srcdir}/type_traits.h \ ${bits_srcdir}/valarray_array.h \ ${bits_srcdir}/valarray_array.tcc \ ! ${bits_srcdir}/valarray_meta.h backward_srcdir = ${glibcpp_srcdir}/include/backward *************** c_base_headers_rename = \ *** 332,340 **** cwchar \ cwctype ! @GLIBCPP_C_HEADERS_C_STD_TRUE@c_base_headers_extra = @GLIBCPP_C_HEADERS_C_STD_TRUE@\ ! @GLIBCPP_C_HEADERS_C_STD_TRUE@ ${c_base_srcdir}/cmath.tcc @GLIBCPP_C_HEADERS_C_STD_FALSE@c_base_headers_extra = std_srcdir = ${glibcpp_srcdir}/include/std std_builddir = . --- 311,344 ---- cwchar \ cwctype ! ! # "C" compatibility headers. ! c_compatibility_srcdir = ${glibcpp_srcdir}/include/c_compatibility ! c_compatibility_builddir = . ! c_compatibility_headers = \ ! ${c_compatibility_srcdir}/assert.h \ ! ${c_compatibility_srcdir}/ctype.h \ ! ${c_compatibility_srcdir}/errno.h \ ! ${c_compatibility_srcdir}/float.h \ ! ${c_compatibility_srcdir}/iso646.h \ ! ${c_compatibility_srcdir}/limits.h \ ! ${c_compatibility_srcdir}/locale.h \ ! ${c_compatibility_srcdir}/math.h \ ! ${c_compatibility_srcdir}/setjmp.h \ ! ${c_compatibility_srcdir}/signal.h \ ! ${c_compatibility_srcdir}/stdarg.h \ ! ${c_compatibility_srcdir}/stddef.h \ ! ${c_compatibility_srcdir}/stdio.h \ ! ${c_compatibility_srcdir}/stdlib.h \ ! ${c_compatibility_srcdir}/string.h \ ! ${c_compatibility_srcdir}/time.h \ ! ${c_compatibility_srcdir}/wchar.h \ ! ${c_compatibility_srcdir}/wctype.h ! ! @GLIBCPP_C_HEADERS_C_STD_TRUE@c_base_headers_extra = @GLIBCPP_C_HEADERS_C_STD_TRUE@${c_base_srcdir}/cmath.tcc @GLIBCPP_C_HEADERS_C_STD_FALSE@c_base_headers_extra = + @GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@c_compatibility_headers_extra = @GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@${c_compatibility_headers} + @GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE@c_compatibility_headers_extra = std_srcdir = ${glibcpp_srcdir}/include/std std_builddir = . *************** target_headers = \ *** 412,419 **** ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \ ${glibcpp_srcdir}/@CPU_LIMITS_INC_SRCDIR@/cpu_limits.h ! # These extra_target_headers files are all built with ad hoc naming rules. ! extra_target_headers = \ ${target_builddir}/basic_file.h \ ${target_builddir}/c++config.h \ ${target_builddir}/c++io.h \ --- 416,423 ---- ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \ ${glibcpp_srcdir}/@CPU_LIMITS_INC_SRCDIR@/cpu_limits.h ! # These target_headers_extra files are all built with ad hoc naming rules. ! target_headers_extra = \ ${target_builddir}/basic_file.h \ ${target_builddir}/c++config.h \ ${target_builddir}/c++io.h \ *************** thread_target_headers = \ *** 431,437 **** # List of all timestamp files. By keeping only one copy of this list, both # CLEANFILES and all-local are kept up-to-date. ! allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext \ ${target_builddir}/stamp-target --- 435,443 ---- # List of all timestamp files. By keeping only one copy of this list, both # CLEANFILES and all-local are kept up-to-date. ! allstamps = \ ! stamp-std stamp-bits stamp-c_base stamp-c_compatibility \ ! stamp-backward stamp-ext \ ${target_builddir}/stamp-target *************** uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_ *** 445,451 **** # components. Yes, with minor differences, this is sheer duplication # of the staging rules above using $(INSTALL_DATA) instead of LN_S and # `$(mkinstalldirs)' instead of `mkdir -p'. In particular, ! # extra_target_headers are taken out of the build tree staging area; # the rest are taken from the original source tree. gxx_include_dir = @gxx_include_dir@ CONFIG_HEADER = ../config.h --- 451,457 ---- # components. Yes, with minor differences, this is sheer duplication # of the staging rules above using $(INSTALL_DATA) instead of LN_S and # `$(mkinstalldirs)' instead of `mkdir -p'. In particular, ! # target_headers_extra are taken out of the build tree staging area; # the rest are taken from the original source tree. gxx_include_dir = @gxx_include_dir@ CONFIG_HEADER = ../config.h *************** stamp-c_base: ${c_base_headers} ${c_base *** 585,590 **** --- 591,605 ---- fi ;\ echo `date` > stamp-c_base + stamp-c_compatibility: ${c_compatibility_headers_extra} + @if [ ! -d "${c_compatibility_builddir}" ]; then \ + mkdir -p ${c_compatibility_builddir} ;\ + fi ;\ + if [ ! -z "${c_compatibility_headers_extra}" ]; then \ + (cd ${c_compatibility_builddir} && @LN_S@ $? . || true) ;\ + fi ;\ + echo `date` > stamp-c_compatibility + stamp-backward: ${backward_headers} @if [ ! -d "${backward_builddir}" ]; then \ mkdir -p ${backward_builddir} ;\ *************** install-data-local: *** 668,684 **** $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} \ ! ${gxx_include_dir}/${c_base_builddir}; done ! c_base_headers_extra_install=${c_base_headers_extra};\ for file in $$c_base_headers_extra_install; do \ $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} \ ! ${gxx_include_dir}/${std_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${target_builddir} ! for file in ${target_headers} ${extra_target_headers} \ ${thread_target_headers}; do \ $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done --- 683,700 ---- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers_rename}; do \ ! $(INSTALL_DATA) ${c_base_builddir}/$${file} ${gxx_include_dir}; done ! c_base_headers_extra_install='$(c_base_headers_extra)';\ for file in $$c_base_headers_extra_install; do \ $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done + c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ + for file in $$c_compatibility_headers_install; do \ + $(INSTALL_DATA) $$file ${gxx_include_dir}; done $(mkinstalldirs) ${gxx_include_dir}/${std_builddir} for file in ${std_headers_rename}; do \ ! $(INSTALL_DATA) ${std_builddir}/$${file} ${gxx_include_dir}; done $(mkinstalldirs) ${gxx_include_dir}/${target_builddir} ! for file in ${target_headers} ${target_headers_extra} \ ${thread_target_headers}; do \ $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done diff -Nrc3pad gcc-3.1/libstdc++-v3/include/backward/strstream gcc-3.1.1/libstdc++-v3/include/backward/strstream *** gcc-3.1/libstdc++-v3/include/backward/strstream Fri Jan 4 21:27:31 2002 --- gcc-3.1.1/libstdc++-v3/include/backward/strstream Sat Jun 8 15:15:43 2002 *************** *** 1,6 **** // Backward-compat support -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Backward-compat support -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 57,188 **** namespace std { ! //---------------------------------------------------------------------- ! // Class strstreambuf, a streambuf class that manages an array of char. ! // Note that this class is not a template. ! ! class strstreambuf : public basic_streambuf > ! { ! public: // Types. ! typedef char_traits _Traits; ! typedef basic_streambuf _Base; ! ! public: // Constructor, destructor ! explicit strstreambuf(streamsize __initial_capacity = 0); ! strstreambuf(void* (*__alloc)(size_t), void (*__free)(void*)); ! ! strstreambuf(char* __get, streamsize __n, char* __put = 0); ! strstreambuf(signed char* __get, streamsize __n, signed char* __put = 0); ! strstreambuf(unsigned char* __get, streamsize __n, unsigned char* __put=0); ! ! strstreambuf(const char* __get, streamsize __n); ! strstreambuf(const signed char* __get, streamsize __n); ! strstreambuf(const unsigned char* __get, streamsize __n); ! ! virtual ~strstreambuf(); ! ! public: // strstreambuf operations. ! void freeze(bool = true); ! char* str(); ! int pcount() const; ! protected: // Overridden virtual member functions. ! virtual int_type overflow(int_type __c = _Traits::eof()); ! virtual int_type pbackfail(int_type __c = _Traits::eof()); ! virtual int_type underflow(); ! virtual _Base* setbuf(char* __buf, streamsize __n); ! virtual pos_type seekoff(off_type __off, ios_base::seekdir __dir, ! ios_base::openmode __mode ! = ios_base::in | ios_base::out); ! virtual pos_type seekpos(pos_type __pos, ios_base::openmode __mode ! = ios_base::in | ios_base::out); ! private: // Helper functions. ! // Dynamic allocation, possibly using _M_alloc_fun and _M_free_fun. ! char* _M_alloc(size_t); ! void _M_free(char*); ! // Helper function used in constructors. ! void _M_setup(char* __get, char* __put, streamsize __n); ! private: // Data members. ! void* (*_M_alloc_fun)(size_t); ! void (*_M_free_fun)(void*); ! bool _M_dynamic : 1; ! bool _M_frozen : 1; ! bool _M_constant : 1; ! }; ! //---------------------------------------------------------------------- ! // Class istrstream, an istream that manages a strstreambuf. ! class istrstream : public basic_istream ! { ! public: ! explicit istrstream(char*); ! explicit istrstream(const char*); ! istrstream(char* , streamsize); ! istrstream(const char*, streamsize); ! virtual ~istrstream(); ! strstreambuf* rdbuf() const; ! char* str(); ! private: ! strstreambuf _M_buf; ! }; ! //---------------------------------------------------------------------- ! // Class ostrstream ! class ostrstream : public basic_ostream ! { ! public: ! ostrstream(); ! ostrstream(char*, int, ios_base::openmode = ios_base::out); ! virtual ~ostrstream(); ! strstreambuf* rdbuf() const; ! void freeze(bool = true); ! char* str(); ! int pcount() const; ! private: ! strstreambuf _M_buf; ! }; ! //---------------------------------------------------------------------- ! // Class strstream ! class strstream : public basic_iostream ! { ! public: ! typedef char char_type; ! typedef char_traits::int_type int_type; ! typedef char_traits::pos_type pos_type; ! typedef char_traits::off_type off_type; ! strstream(); ! strstream(char*, int, ios_base::openmode = ios_base::in | ios_base::out); ! virtual ~strstream(); ! strstreambuf* rdbuf() const; ! void freeze(bool = true); ! int pcount() const; ! char* str(); ! private: ! strstreambuf _M_buf; ! }; } // namespace std ! ! #endif /* __SGI_STL_STRSTREAM */ ! ! // Local Variables: ! // mode:C++ ! // End: ! ! --- 57,174 ---- namespace std { + // Class strstreambuf, a streambuf class that manages an array of char. + // Note that this class is not a template. + class strstreambuf : public basic_streambuf > + { + public: + // Types. + typedef char_traits _Traits; + typedef basic_streambuf _Base; ! public: ! // Constructor, destructor ! explicit strstreambuf(streamsize __initial_capacity = 0); ! strstreambuf(void* (*__alloc)(size_t), void (*__free)(void*)); ! strstreambuf(char* __get, streamsize __n, char* __put = 0); ! strstreambuf(signed char* __get, streamsize __n, signed char* __put = 0); ! strstreambuf(unsigned char* __get, streamsize __n, unsigned char* __put=0); ! strstreambuf(const char* __get, streamsize __n); ! strstreambuf(const signed char* __get, streamsize __n); ! strstreambuf(const unsigned char* __get, streamsize __n); ! virtual ~strstreambuf(); ! public: ! void freeze(bool = true); ! char* str(); ! int pcount() const; ! protected: ! virtual int_type overflow(int_type __c = _Traits::eof()); ! virtual int_type pbackfail(int_type __c = _Traits::eof()); ! virtual int_type underflow(); ! virtual _Base* setbuf(char* __buf, streamsize __n); ! virtual pos_type seekoff(off_type __off, ios_base::seekdir __dir, ! ios_base::openmode __mode ! = ios_base::in | ios_base::out); ! virtual pos_type seekpos(pos_type __pos, ios_base::openmode __mode ! = ios_base::in | ios_base::out); ! private: ! // Dynamic allocation, possibly using _M_alloc_fun and _M_free_fun. ! char* _M_alloc(size_t); ! void _M_free(char*); ! // Helper function used in constructors. ! void _M_setup(char* __get, char* __put, streamsize __n); ! private: ! // Data members. ! void* (*_M_alloc_fun)(size_t); ! void (*_M_free_fun)(void*); ! bool _M_dynamic : 1; ! bool _M_frozen : 1; ! bool _M_constant : 1; ! }; ! // Class istrstream, an istream that manages a strstreambuf. ! class istrstream : public basic_istream ! { ! public: ! explicit istrstream(char*); ! explicit istrstream(const char*); ! istrstream(char* , streamsize); ! istrstream(const char*, streamsize); ! virtual ~istrstream(); ! strstreambuf* rdbuf() const; ! char* str(); ! private: ! strstreambuf _M_buf; ! }; ! // Class ostrstream ! class ostrstream : public basic_ostream ! { ! public: ! ostrstream(); ! ostrstream(char*, int, ios_base::openmode = ios_base::out); ! virtual ~ostrstream(); ! strstreambuf* rdbuf() const; ! void freeze(bool = true); ! char* str(); ! int pcount() const; ! private: ! strstreambuf _M_buf; ! }; ! // Class strstream ! class strstream : public basic_iostream ! { ! public: ! typedef char char_type; ! typedef char_traits::int_type int_type; ! typedef char_traits::pos_type pos_type; ! typedef char_traits::off_type off_type; ! strstream(); ! strstream(char*, int, ios_base::openmode = ios_base::in | ios_base::out); ! virtual ~strstream(); ! strstreambuf* rdbuf() const; ! void freeze(bool = true); ! int pcount() const; ! char* str(); + private: + strstreambuf _M_buf; + }; } // namespace std ! #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/basic_string.h gcc-3.1.1/libstdc++-v3/include/bits/basic_string.h *** gcc-3.1/libstdc++-v3/include/bits/basic_string.h Fri Apr 26 19:36:27 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/basic_string.h Sat May 18 20:52:50 2002 *************** namespace std *** 650,657 **** || less()(_M_data() + __size, __s)) return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1, __s, __s + __n2); ! else return this->replace(_M_check(__pos), _M_fold(__pos, __n1), ! __s, __s + __n2); } basic_string& --- 650,660 ---- || less()(_M_data() + __size, __s)) return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1, __s, __s + __n2); ! // Todo: optimized in-place replace. ! else return ! _M_replace(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1, ! __s, __s + __n2, ! typename iterator_traits::iterator_category()); } basic_string& *************** namespace std *** 685,690 **** --- 688,717 ---- { return _M_replace(__i1, __i2, __k1, __k2, typename iterator_traits<_InputIterator>::iterator_category()); } + // Specializations for the common case of pointer and iterator: + // useful to avoid the overhead of temporary buffering in _M_replace. + basic_string& + replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2) + { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, + __k1, __k2 - __k1); } + + basic_string& + replace(iterator __i1, iterator __i2, const _CharT* __k1, const _CharT* __k2) + { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, + __k1, __k2 - __k1); } + + basic_string& + replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2) + { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, + __k1.base(), __k2 - __k1); + } + + basic_string& + replace(iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2) + { return this->replace(__i1 - _M_ibegin(), __i2 - __i1, + __k1.base(), __k2 - __k1); + } + private: template basic_string& diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/basic_string.tcc gcc-3.1.1/libstdc++-v3/include/bits/basic_string.tcc *** gcc-3.1/libstdc++-v3/include/bits/basic_string.tcc Fri Apr 19 07:59:10 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/basic_string.tcc Tue Jun 4 19:03:45 2002 *************** namespace std *** 140,146 **** size_type __dnew = static_cast(distance(__beg, __end)); // NB: Not required, but considered best practice. ! if (__builtin_expect(__beg == _InIter(0), 0)) __throw_logic_error("attempt to create string with null pointer"); if (__beg == __end && __a == _Alloc()) --- 140,146 ---- size_type __dnew = static_cast(distance(__beg, __end)); // NB: Not required, but considered best practice. ! if (__builtin_expect(__beg == _InIter(), 0)) __throw_logic_error("attempt to create string with null pointer"); if (__beg == __end && __a == _Alloc()) *************** namespace std *** 498,510 **** // else nothing (in particular, avoid calling _M_mutate() unnecessarily.) } ! // This is the general replace helper, which gets instantiated both ! // for input-iterators and forward-iterators. It buffers internally and ! // then calls _M_replace_safe. For input-iterators this is almost the ! // best we can do, but for forward-iterators many optimizations could be ! // conceived: f.i., when source and destination ranges do not overlap ! // buffering is not really needed. In order to easily implement them, it ! // could become useful to add an _M_replace(forward_iterator_tag) template template basic_string<_CharT, _Traits, _Alloc>& --- 498,507 ---- // else nothing (in particular, avoid calling _M_mutate() unnecessarily.) } ! ! // This is the general replace helper, which currently gets instantiated both ! // for input iterators and reverse iterators. It buffers internally and then ! // calls _M_replace_safe. template template basic_string<_CharT, _Traits, _Alloc>& *************** namespace std *** 518,527 **** } // This is a special replace helper, which does not buffer internally ! // and can be used in the "safe" situations involving forward-iterators, // i.e., when source and destination ranges are known to not overlap. - // Presently, is called by _M_replace, by the various append and by - // the assigns. template template basic_string<_CharT, _Traits, _Alloc>& --- 515,522 ---- } // This is a special replace helper, which does not buffer internally ! // and can be used in "safe" situations involving forward iterators, // i.e., when source and destination ranges are known to not overlap. template template basic_string<_CharT, _Traits, _Alloc>& diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/c++config gcc-3.1.1/libstdc++-v3/include/bits/c++config *** gcc-3.1/libstdc++-v3/include/bits/c++config Tue May 14 07:16:21 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/c++config Thu Jul 25 07:16:28 2002 *************** *** 34,40 **** #include // The current version of the C++ library in compressed ISO date format. ! #define __GLIBCPP__ 20020514 // This is necessary until GCC supports separate template // compilation. --- 34,40 ---- #include // The current version of the C++ library in compressed ISO date format. ! #define __GLIBCPP__ 20020725 // This is necessary until GCC supports separate template // compilation. *************** *** 69,75 **** // that threads are properly configured on your platform before // assigning blame to the STL container-memory allocator. After doing // so, please report any possible issues to libstdc++@gcc.gnu.org . ! // Do not blindly #define __USE_MALLOC here or on the command line. // The remainder of the prewritten config is mostly automatic; all the // user hooks are listed above. --- 69,83 ---- // that threads are properly configured on your platform before // assigning blame to the STL container-memory allocator. After doing // so, please report any possible issues to libstdc++@gcc.gnu.org . ! // Do not define __USE_MALLOC on the command line. Enforce it here: ! #ifdef __USE_MALLOC ! #error __USE_MALLOC should only be defined within \ ! libstdc++-v3/include/bits/c++config before full recompilation of the library. ! #endif ! // Define __USE_MALLOC after this point in the file in order to aid debugging ! // or globally change allocation policy. This breaks the ABI, thus ! // completely recompile the library. A patch to better support ! // changing the global allocator policy would be probably be accepted. // The remainder of the prewritten config is mostly automatic; all the // user hooks are listed above. diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/fstream.tcc gcc-3.1.1/libstdc++-v3/include/bits/fstream.tcc *** gcc-3.1/libstdc++-v3/include/bits/fstream.tcc Fri May 3 18:29:06 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/fstream.tcc Sat May 18 14:37:46 2002 *************** namespace std *** 49,60 **** _M_buf_size = _M_buf_size_opt; // Allocate internal buffer. ! try { _M_buf = new char_type[_M_buf_size]; } ! catch(...) ! { ! delete [] _M_buf; ! __throw_exception_again; ! } _M_buf_allocated = true; } } --- 49,55 ---- _M_buf_size = _M_buf_size_opt; // Allocate internal buffer. ! _M_buf = new char_type[_M_buf_size]; _M_buf_allocated = true; } } diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/istream.tcc gcc-3.1.1/libstdc++-v3/include/bits/istream.tcc *** gcc-3.1/libstdc++-v3/include/bits/istream.tcc Mon Apr 22 19:11:00 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/istream.tcc Mon Jun 10 21:15:05 2002 *************** namespace std *** 679,685 **** { if (__c == __idelim) { ! __sb->snextc(); ++_M_gcount; } else --- 679,685 ---- { if (__c == __idelim) { ! __sb->sbumpc(); ++_M_gcount; } else *************** namespace std *** 726,732 **** this->setstate(ios_base::eofbit); else if (__c == __delim) { ! __sb->snextc(); ++_M_gcount; } } --- 726,732 ---- this->setstate(ios_base::eofbit); else if (__c == __delim) { ! __sb->sbumpc(); ++_M_gcount; } } *************** namespace std *** 1221,1228 **** --- 1221,1230 ---- extern template istream& operator>>(istream&, unsigned char*); extern template istream& operator>>(istream&, signed char*); + #ifdef _GLIBCPP_USE_WCHAR_T extern template class basic_istream; extern template wistream& ws(wistream&); extern template wistream& operator>>(wistream&, wchar_t&); extern template wistream& operator>>(wistream&, wchar_t*); + #endif } // namespace std diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/locale_facets.tcc gcc-3.1.1/libstdc++-v3/include/bits/locale_facets.tcc *** gcc-3.1/libstdc++-v3/include/bits/locale_facets.tcc Fri Apr 19 07:59:10 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/locale_facets.tcc Sat May 18 22:00:15 2002 *************** namespace std *** 1959,1970 **** _Tv __v, const __c_locale&, int __prec = -1) { int __ret; ! const char* __old = setlocale(LC_ALL, "C"); if (__prec >= 0) __ret = snprintf(__out, __size, __fmt, __prec, __v); else __ret = snprintf(__out, __size, __fmt, __v); setlocale(LC_ALL, __old); return __ret; } #else --- 1959,1972 ---- _Tv __v, const __c_locale&, int __prec = -1) { int __ret; ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); if (__prec >= 0) __ret = snprintf(__out, __size, __fmt, __prec, __v); else __ret = snprintf(__out, __size, __fmt, __v); setlocale(LC_ALL, __old); + free(__old); return __ret; } #else *************** namespace std *** 1974,1985 **** const __c_locale&, int __prec = -1) { int __ret; ! const char* __old = setlocale(LC_ALL, "C"); if (__prec >= 0) __ret = sprintf(__out, __fmt, __prec, __v); else __ret = sprintf(__out, __fmt, __v); setlocale(LC_ALL, __old); return __ret; } #endif --- 1976,1989 ---- const __c_locale&, int __prec = -1) { int __ret; ! char* __old = strdup(setlocale(LC_ALL, NULL)); ! setlocale(LC_ALL, "C"); if (__prec >= 0) __ret = sprintf(__out, __fmt, __prec, __v); else __ret = sprintf(__out, __fmt, __v); setlocale(LC_ALL, __old); + free(__old); return __ret; } #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/ostream.tcc gcc-3.1.1/libstdc++-v3/include/bits/ostream.tcc *** gcc-3.1/libstdc++-v3/include/bits/ostream.tcc Fri Apr 12 05:45:52 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/ostream.tcc Mon Jun 10 21:15:05 2002 *************** namespace std *** 119,137 **** basic_ostream<_CharT, _Traits>::operator<<(__streambuf_type* __sbin) { sentry __cerb(*this); ! if (__cerb) { try { ! streamsize __xtrct = 0; ! if (__sbin) ! { ! __streambuf_type* __sbout = this->rdbuf(); ! __xtrct = __copy_streambufs(*this, __sbin, __sbout); ! } ! else ! this->setstate(ios_base::badbit); ! if (!__xtrct) this->setstate(ios_base::failbit); } catch(exception& __fail) --- 119,129 ---- basic_ostream<_CharT, _Traits>::operator<<(__streambuf_type* __sbin) { sentry __cerb(*this); ! if (__cerb && __sbin) { try { ! if (!__copy_streambufs(*this, __sbin, this->rdbuf())) this->setstate(ios_base::failbit); } catch(exception& __fail) *************** namespace std *** 143,148 **** --- 135,142 ---- __throw_exception_again; } } + else if (!__sbin) + this->setstate(ios_base::badbit); return *this; } *************** namespace std *** 539,545 **** { typedef basic_ostream<_CharT, _Traits> __ostream_type; typename __ostream_type::sentry __cerb(__out); ! if (__cerb) { try { --- 533,539 ---- { typedef basic_ostream<_CharT, _Traits> __ostream_type; typename __ostream_type::sentry __cerb(__out); ! if (__cerb && __s) { try { *************** namespace std *** 564,569 **** --- 558,565 ---- __throw_exception_again; } } + else if (!__s) + __out.setstate(ios_base::badbit); return __out; } *************** namespace std *** 575,588 **** #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS // 167. Improper use of traits_type::length() // Note that this is only in 'Review' status. ! typedef char_traits __ctraits_type; #endif typename __ostream_type::sentry __cerb(__out); ! if (__cerb) { ! size_t __clen = __ctraits_type::length(__s); _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__clen + 1))); ! for (size_t __i = 0; __i <= __clen; ++__i) __ws[__i] = __out.widen(__s[__i]); _CharT* __str = __ws; --- 571,584 ---- #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS // 167. Improper use of traits_type::length() // Note that this is only in 'Review' status. ! typedef char_traits __traits_type; #endif typename __ostream_type::sentry __cerb(__out); ! if (__cerb && __s) { ! size_t __clen = __traits_type::length(__s); _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__clen + 1))); ! for (size_t __i = 0; __i < __clen; ++__i) __ws[__i] = __out.widen(__s[__i]); _CharT* __str = __ws; *************** namespace std *** 610,615 **** --- 606,613 ---- __throw_exception_again; } } + else if (!__s) + __out.setstate(ios_base::badbit); return __out; } *************** namespace std *** 620,632 **** { typedef basic_ostream __ostream_type; typename __ostream_type::sentry __cerb(__out); ! if (__cerb) { try { streamsize __w = __out.width(); char* __pads = static_cast(__builtin_alloca(__w)); streamsize __len = static_cast(_Traits::length(__s)); if (__w > __len) { __pad(__out, __out.fill(), __pads, __s, __w, __len, false); --- 618,631 ---- { typedef basic_ostream __ostream_type; typename __ostream_type::sentry __cerb(__out); ! if (__cerb && __s) { try { streamsize __w = __out.width(); char* __pads = static_cast(__builtin_alloca(__w)); streamsize __len = static_cast(_Traits::length(__s)); + if (__w > __len) { __pad(__out, __out.fill(), __pads, __s, __w, __len, false); *************** namespace std *** 645,650 **** --- 644,651 ---- __throw_exception_again; } } + else if (!__s) + __out.setstate(ios_base::badbit); return __out; } *************** namespace std *** 693,698 **** --- 694,700 ---- extern template ostream& operator<<(ostream&, const unsigned char*); extern template ostream& operator<<(ostream&, const signed char*); + #ifdef _GLIBCPP_USE_WCHAR_T extern template class basic_ostream; extern template wostream& endl(wostream&); extern template wostream& ends(wostream&); *************** namespace std *** 701,704 **** --- 703,707 ---- extern template wostream& operator<<(wostream&, char); extern template wostream& operator<<(wostream&, const wchar_t*); extern template wostream& operator<<(wostream&, const char*); + #endif } // namespace std diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/stl_bvector.h gcc-3.1.1/libstdc++-v3/include/bits/stl_bvector.h *** gcc-3.1/libstdc++-v3/include/bits/stl_bvector.h Wed Mar 13 06:14:47 2002 --- gcc-3.1.1/libstdc++-v3/include/bits/stl_bvector.h Sat Jun 1 00:51:21 2002 *************** struct _Bit_iterator : public _Bit_itera *** 166,172 **** _Bit_iterator(_Bit_type * __x, unsigned int __y) : _Bit_iterator_base(__x, __y) {} ! reference operator*() const { return reference(_M_p, 1U << _M_offset); } iterator& operator++() { _M_bump_up(); return *this; --- 166,172 ---- _Bit_iterator(_Bit_type * __x, unsigned int __y) : _Bit_iterator_base(__x, __y) {} ! reference operator*() const { return reference(_M_p, 1UL << _M_offset); } iterator& operator++() { _M_bump_up(); return *this; *************** struct _Bit_const_iterator : public _Bit *** 223,229 **** : _Bit_iterator_base(__x._M_p, __x._M_offset) {} const_reference operator*() const { ! return _Bit_reference(_M_p, 1U << _M_offset); } const_iterator& operator++() { _M_bump_up(); --- 223,229 ---- : _Bit_iterator_base(__x._M_p, __x._M_offset) {} const_reference operator*() const { ! return _Bit_reference(_M_p, 1UL << _M_offset); } const_iterator& operator++() { _M_bump_up(); diff -Nrc3pad gcc-3.1/libstdc++-v3/include/bits/stl_pair.h gcc-3.1.1/libstdc++-v3/include/bits/stl_pair.h *** gcc-3.1/libstdc++-v3/include/bits/stl_pair.h Thu Dec 6 20:29:31 2001 --- gcc-3.1.1/libstdc++-v3/include/bits/stl_pair.h Tue May 21 21:09:43 2002 *************** inline bool operator==(const pair<_T1, _ *** 95,101 **** return __x.first == __y.first && __x.second == __y.second; } ! /// http://gcc.gnu.org/onlinedocs/libstdc++/20_util/howto.html#pairlt template inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { --- 95,101 ---- return __x.first == __y.first && __x.second == __y.second; } ! /// template inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cerrno.h gcc-3.1.1/libstdc++-v3/include/c/std_cerrno.h *** gcc-3.1/libstdc++-v3/include/c/std_cerrno.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cerrno.h Fri Jun 28 08:22:33 2002 *************** *** 31,36 **** --- 31,45 ---- // ISO C++ 14882: 19.3 Error numbers // + /** @file cerrno + * This is a Standard C++ Library file. You should @c #include this file + * in your programs, rather than any of the "*.h" implementation files. + * + * This is the C++ version of the Standard C Library header @c errno.h, + * and its contents are (mostly) the same as that header, but are all + * contained in the namespace @c std. + */ + #ifndef _CPP_CERRNO #define _CPP_CERRNO 1 *************** *** 38,41 **** --- 47,55 ---- #include_next + // Adhere to section 17.4.1.2 clause 5 of ISO 14882:1998 + #ifndef errno + #define errno errno + #endif + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cmath.h gcc-3.1.1/libstdc++-v3/include/c/std_cmath.h *** gcc-3.1/libstdc++-v3/include/c/std_cmath.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cmath.h Fri Jun 28 08:22:34 2002 *************** *** 36,41 **** --- 36,124 ---- #pragma GCC system_header + #include + #include_next + // Get rid of those macros defined in in lieu of real functions. + #undef abs + #undef div + #undef acos + #undef asin + #undef atan + #undef atan2 + #undef ceil + #undef cos + #undef cosh + #undef exp + #undef fabs + #undef floor + #undef fmod + #undef frexp + #undef ldexp + #undef log + #undef log10 + #undef modf + #undef pow + #undef sin + #undef sinh + #undef sqrt + #undef tan + #undef tanh + + #undef fpclassify + #undef isfinite + #undef isinf + #undef isnan + #undef isnormal + #undef signbit + #undef isgreater + #undef isgreaterequal + #undef isless + #undef islessequal + #undef islessgreater + #undef isunordered + + namespace std + { + inline double + abs(double __x) + { return __builtin_fabs(__x); } + + inline float + abs(float __x) + { return __builtin_fabsf(__x); } + + inline long double + abs(long double __x) + { return __builtin_fabsl(__x); } + + #if _GLIBCPP_HAVE_MODFF + inline float + modf(float __x, float* __iptr) { return modff(__x, __iptr); } + #else + inline float + modf(float __x, float* __iptr) + { + double __tmp; + double __res = modf(static_cast(__x), &__tmp); + *__iptr = static_cast(__tmp); + return __res; + } + #endif + + #if _GLIBCPP_HAVE_MODFL + inline long double + modf(long double __x, long double* __iptr) { return modfl(__x, __iptr); } + #else + inline long double + modf(long double __x, long double* __iptr) + { + double __tmp; + double __res = modf(static_cast(__x), &__tmp); + * __iptr = static_cast(__tmp); + return __res; + } + #endif + } #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_csetjmp.h gcc-3.1.1/libstdc++-v3/include/c/std_csetjmp.h *** gcc-3.1/libstdc++-v3/include/c/std_csetjmp.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_csetjmp.h Fri Jun 28 08:22:34 2002 *************** *** 38,41 **** --- 38,49 ---- #include_next + // Get rid of those macros defined in in lieu of real functions. + #undef longjmp + + // Adhere to section 17.4.1.2 clause 5 of ISO 14882:1998 + #ifndef setjmp + #define setjmp(env) std::setjmp (env) + #endif + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cstdarg.h gcc-3.1.1/libstdc++-v3/include/c/std_cstdarg.h *** gcc-3.1/libstdc++-v3/include/c/std_cstdarg.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cstdarg.h Fri Jun 28 08:22:34 2002 *************** *** 36,41 **** --- 36,42 ---- #pragma GCC system_header + #undef __need___va_list #include_next #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cstddef.h gcc-3.1.1/libstdc++-v3/include/c/std_cstddef.h *** gcc-3.1/libstdc++-v3/include/c/std_cstddef.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cstddef.h Fri Jun 28 08:22:34 2002 *************** *** 36,41 **** --- 36,45 ---- #pragma GCC system_header + #define __need_size_t + #define __need_ptrdiff_t + #define __need_NULL + #define __need_offsetof #include_next #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cstdio.h gcc-3.1.1/libstdc++-v3/include/c/std_cstdio.h *** gcc-3.1/libstdc++-v3/include/c/std_cstdio.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cstdio.h Fri Jun 28 08:22:34 2002 *************** *** 38,41 **** --- 38,84 ---- #include_next + // Get rid of those macros defined in in lieu of real functions. + #undef clearerr + #undef fclose + #undef feof + #undef ferror + #undef fflush + #undef fgetc + #undef fgetpos + #undef fgets + #undef fopen + #undef fprintf + #undef fputc + #undef fputs + #undef fread + #undef freopen + #undef fscanf + #undef fseek + #undef fsetpos + #undef ftell + #undef fwrite + #undef getc + #undef getchar + #undef gets + #undef perror + #undef printf + #undef putc + #undef putchar + #undef puts + #undef remove + #undef rename + #undef rewind + #undef scanf + #undef setbuf + #undef setvbuf + #undef sprintf + #undef sscanf + #undef tmpfile + #undef tmpnam + #undef ungetc + #undef vfprintf + #undef vprintf + #undef vsprintf + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cwchar.h gcc-3.1.1/libstdc++-v3/include/c/std_cwchar.h *** gcc-3.1/libstdc++-v3/include/c/std_cwchar.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cwchar.h Thu Jul 4 00:29:27 2002 *************** *** 36,41 **** --- 36,62 ---- #pragma GCC system_header + #include + #include + #include + + #if _GLIBCPP_HAVE_WCHAR_H #include_next + #endif + + // Need to do a bit of trickery here with mbstate_t as char_traits + // assumes it is in wchar.h, regardless of wchar_t specializations. + #ifndef _GLIBCPP_HAVE_MBSTATE_T + namespace std + { + extern "C" + { + typedef struct + { + int __fill[6]; + } mbstate_t; + } + } + #endif #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c/std_cwctype.h gcc-3.1.1/libstdc++-v3/include/c/std_cwctype.h *** gcc-3.1/libstdc++-v3/include/c/std_cwctype.h Wed Mar 27 04:49:33 2002 --- gcc-3.1.1/libstdc++-v3/include/c/std_cwctype.h Fri Jun 28 08:22:34 2002 *************** *** 36,41 **** --- 36,45 ---- #pragma GCC system_header + #include + + #if _GLIBCPP_HAVE_WCTYPE_H #include_next + #endif #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/assert.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/assert.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/assert.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/assert.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,30 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #include diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/ctype.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/ctype.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/ctype.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/ctype.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,49 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_CTYPE_H_ + #define _CPP_CTYPE_H_ 1 + + #include + + using std::isalnum; + using std::isalpha; + using std::iscntrl; + using std::isdigit; + using std::isgraph; + using std::islower; + using std::isprint; + using std::ispunct; + using std::isspace; + using std::isupper; + using std::isxdigit; + using std::tolower; + using std::toupper; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/errno.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/errno.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/errno.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/errno.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,35 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_ERRNO_H_ + #define _CPP_ERRNO_H_ 1 + + #include + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/float.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/float.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/float.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/float.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,35 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_FLOAT_H_ + #define _CPP_FLOAT_H_ 1 + + #include + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/iso646.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/iso646.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/iso646.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/iso646.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,35 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_ISO646_H_ + #define _CPP_ISO646_H_ 1 + + #include + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/limits.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/limits.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/limits.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/limits.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,35 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_LIMITS_H_ + #define _CPP_LIMITS_H_ 1 + + #include + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/locale.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/locale.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/locale.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/locale.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,39 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_LOCALE_H_ + #define _CPP_LOCALE_H_ 1 + + #include + + using std::lconv; + using std::setlocale; + using std::localeconv; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/math.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/math.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/math.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/math.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,74 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_MATH_H_ + #define _CPP_MATH_H_ 1 + + #include + + using std::abs; + using std::acos; + using std::asin; + using std::atan; + using std::atan2; + using std::cos; + using std::sin; + using std::tan; + using std::cosh; + using std::sinh; + using std::tanh; + using std::exp; + using std::frexp; + using std::ldexp; + using std::log; + using std::log10; + using std::modf; + using std::pow; + using std::sqrt; + using std::ceil; + using std::fabs; + using std::floor; + using std::fmod; + + #if _GLIBCPP_USE_C99 + using std::fpclassify; + using std::isfinite; + using std::isinf; + using std::isnan; + using std::isnormal; + using std::signbit; + using std::isgreater; + using std::isgreaterequal; + using std::isless; + using std::islessequal; + using std::islessgreater; + using std::isunordered; + #endif + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/setjmp.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/setjmp.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/setjmp.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/setjmp.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,38 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_SETJMP_H_ + #define _CPP_SETJMP_H_ 1 + + #include + + using std::jmp_buf; + using std::longjmp; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/signal.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/signal.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/signal.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/signal.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,40 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_SIGNAL_H_ + #define _CPP_SIGNAL_H_ 1 + + #include + + using std::sig_atomic_t; + + using std::raise; + using std::signal; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/stdarg.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdarg.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/stdarg.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdarg.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,37 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_STDARG_H_ + #define _CPP_STDARG_H_ 1 + + #include + + using std::va_list; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/stddef.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/stddef.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/stddef.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/stddef.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,38 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_STDDEF_H_ + #define _CPP_STDDEF_H_ 1 + + #include + + using std::size_t; + using std::ptrdiff_t; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/stdio.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdio.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/stdio.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdio.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,85 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_STDIO_H_ + #define _CPP_STDIO_H_ 1 + + #include + + using std::FILE; + using std::fpos_t; + + using std::remove; + using std::rename; + using std::tmpfile; + using std::tmpnam; + using std::fclose; + using std::fflush; + using std::fopen; + using std::freopen; + using std::setbuf; + using std::setvbuf; + using std::fprintf; + using std::fscanf; + using std::printf; + using std::scanf; + using std::snprintf; + using std::sprintf; + using std::sscanf; + using std::vfprintf; + using std::vfscanf; + using std::vprintf; + using std::vscanf; + using std::vsnprintf; + using std::vsprintf; + using std::vsscanf; + using std::fgetc; + using std::fgets; + using std::fputc; + using std::fputs; + using std::getc; + using std::getchar; + using std::gets; + using std::putc; + using std::putchar; + using std::puts; + using std::ungetc; + using std::fread; + using std::fwrite; + using std::fgetpos; + using std::fseek; + using std::fsetpos; + using std::ftell; + using std::rewind; + using std::clearerr; + using std::feof; + using std::ferror; + using std::perror; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/stdlib.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdlib.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/stdlib.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/stdlib.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,67 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_STDLIB_H_ + #define _CPP_STDLIB_H_ 1 + + #include + + using std::div_t; + using std::ldiv_t; + + using std::abort; + using std::abs; + using std::atexit; + using std::atof; + using std::atoi; + using std::atol; + using std::bsearch; + using std::calloc; + using std::div; + using std::exit; + using std::free; + using std::getenv; + using std::labs; + using std::ldiv; + using std::malloc; + using std::mblen; + using std::mbstowcs; + using std::mbtowc; + using std::qsort; + using std::rand; + using std::realloc; + using std::srand; + using std::strtod; + using std::strtol; + using std::strtoul; + using std::system; + using std::wcstombs; + using std::wctomb; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/string.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/string.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/string.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/string.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,58 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_STRING_H_ + #define _CPP_STRING_H_ 1 + + #include + + using std::memcpy; + using std::memmove; + using std::strcpy; + using std::strncpy; + using std::strcat; + using std::strncat; + using std::memcmp; + using std::strcmp; + using std::strcoll; + using std::strncmp; + using std::strxfrm; + using std::memchr; + using std::strchr; + using std::strcspn; + using std::strpbrk; + using std::strrchr; + using std::strspn; + using std::strstr; + using std::strtok; + using std::memset; + using std::strerror; + using std::strlen; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/time.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/time.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/time.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/time.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,60 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_TIME_H_ + #define _CPP_TIME_H_ 1 + + #include + + // Get rid of those macros defined in in lieu of real functions. + #undef clock + #undef difftime + #undef mktime + #undef time + #undef asctime + #undef ctime + #undef gmtime + #undef localtime + #undef strftime + + using std::clock_t; + using std::time_t; + using std::tm; + + using std::clock; + using std::difftime; + using std::mktime; + using std::time; + using std::asctime; + using std::ctime; + using std::gmtime; + using std::localtime; + using std::strftime; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/wchar.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/wchar.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/wchar.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/wchar.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,106 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_WCHAR_H_ + #define _CPP_WCHAR_H_ 1 + + #include + + using std::mbstate_t; + + #if _GLIBCPP_USE_WCHAR_T + using std::wint_t; + + using std::btowc; + using std::wctob; + using std::fgetwc; + using std::fgetwc; + using std::fgetws; + using std::fputwc; + using std::fputws; + using std::fwide; + using std::fwprintf; + using std::fwscanf; + using std::swprintf; + using std::swscanf; + using std::vfwprintf; + using std::vfwscanf; + using std::vswprintf; + using std::vswscanf; + using std::vwprintf; + using std::vwscanf; + using std::wprintf; + using std::wscanf; + using std::getwc; + using std::getwchar; + using std::mbsinit; + using std::mbrlen; + using std::mbrtowc; + using std::mbsrtowcs; + using std::wcsrtombs; + using std::putwc; + using std::putwchar; + using std::ungetwc; + using std::wcrtomb; + using std::wcstod; + using std::wcstof; + using std::wcstol; + using std::wcstoul; + using std::wcscpy; + using std::wcsncpy; + using std::wcscat; + using std::wcsncat; + using std::wcscmp; + using std::wcscoll; + using std::wcsncmmp; + using std::wcsxfrm; + using std::wcschr; + using std::wcscspn; + using std::wcslen; + using std::wcspbrk; + using std::wcsrchr; + using std::wcsspn; + using std::wcsstr; + using std::wcstok; + using std::wmemchr; + using std::wmemcmp; + using std::wmemcpy; + using std::wmemmove; + using std::wmemset; + using std::wcsftime; + + #if _GLIBCPP_USE_C99 + using std::wcstold; + using std::wcstoll; + using std::wcstoull; + #endif + + #endif //_GLIBCPP_USE_WCHAR_T + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_compatibility/wctype.h gcc-3.1.1/libstdc++-v3/include/c_compatibility/wctype.h *** gcc-3.1/libstdc++-v3/include/c_compatibility/wctype.h Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/include/c_compatibility/wctype.h Fri Jun 28 08:22:35 2002 *************** *** 0 **** --- 1,55 ---- + // -*- C++ -*- compatibility header. + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + #ifndef _CPP_CWCTYPE_H_ + #define _CPP_CWCTYPE_H_ 1 + + #include + + using std::wctype_t; + using std::wctrans_t; + using std::iswalpha; + using std::iswupper; + using std::iswlower; + using std::iswdigit; + using std::iswxdigit; + using std::iswalnum; + using std::iswspace; + using std::iswpunct; + using std::iswprint; + using std::iswgraph; + using std::iswcntrl; + using std::iswctype; + using std::towctrans; + using std::towlower; + using std::towupper; + using std::wctrans; + using std::wctype; + + #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/include/c_std/std_cmath.h gcc-3.1.1/libstdc++-v3/include/c_std/std_cmath.h *** gcc-3.1/libstdc++-v3/include/c_std/std_cmath.h Fri Mar 29 20:31:01 2002 --- gcc-3.1.1/libstdc++-v3/include/c_std/std_cmath.h Fri Jun 28 08:22:36 2002 *************** namespace std *** 82,94 **** // an `exported' forward declaration. template _Tp __cmath_power(_Tp, unsigned int); - template - inline _Tp - __cmath_abs(_Tp __x) - { - return __x < _Tp() ? -__x : __x; - } - inline double abs(double __x) { return __builtin_fabs(__x); } --- 82,87 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/algorithm gcc-3.1.1/libstdc++-v3/include/ext/algorithm *** gcc-3.1/libstdc++-v3/include/ext/algorithm Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/algorithm Tue Jul 2 06:22:39 2002 *************** namespace __gnu_cxx *** 247,252 **** --- 247,257 ---- // random_sample and random_sample_n (extensions, not part of the standard). + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template _OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last, *************** namespace __gnu_cxx *** 273,278 **** --- 278,288 ---- return __out; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template _OutputIter *************** namespace __gnu_cxx *** 353,358 **** --- 363,373 ---- return __out + __m; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline _RandomAccessIter random_sample(_InputIter __first, _InputIter __last, *************** namespace __gnu_cxx *** 367,372 **** --- 382,392 ---- __out_first, __out_last - __out_first); } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline _RandomAccessIter *************** namespace __gnu_cxx *** 418,423 **** --- 438,448 ---- return true; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last) *************** namespace __gnu_cxx *** 430,435 **** --- 455,465 ---- return __is_heap(__first, __last - __first); } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last, *************** namespace __gnu_cxx *** 448,453 **** --- 478,488 ---- // nondescending order. This is an extension, not part of the C++ // standard. + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template bool is_sorted(_ForwardIter __first, _ForwardIter __last) *************** namespace __gnu_cxx *** 469,474 **** --- 504,514 ---- return true; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template bool is_sorted(_ForwardIter __first, _ForwardIter __last, _StrictWeakOrdering __comp) diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/hash_map gcc-3.1.1/libstdc++-v3/include/ext/hash_map *** gcc-3.1/libstdc++-v3/include/ext/hash_map Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/hash_map Tue Jul 2 06:22:39 2002 *************** class hash_map; *** 83,89 **** template inline bool operator==(const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&, const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&); ! template class hash_map --- 83,93 ---- template inline bool operator==(const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&, const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&); ! /** ! * This is an SGI extension. ! * @ingroup SGIextensions ! * @doctodo ! */ template class hash_map *************** inline bool *** 235,240 **** --- 239,249 ---- operator==(const hash_multimap<_Key,_Tp,_HF,_EqKey,_Alloc>& __hm1, const hash_multimap<_Key,_Tp,_HF,_EqKey,_Alloc>& __hm2); + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template class hash_multimap { diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/hash_set gcc-3.1.1/libstdc++-v3/include/ext/hash_set *** gcc-3.1/libstdc++-v3/include/ext/hash_set Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/hash_set Tue Jul 2 06:22:39 2002 *************** inline bool *** 85,90 **** --- 85,95 ---- operator==(const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs1, const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs2); + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template class hash_set { *************** operator==(const hash_multiset<_Val,_Has *** 236,241 **** --- 241,251 ---- const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2); + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template class hash_multiset { diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/iterator gcc-3.1.1/libstdc++-v3/include/ext/iterator *** gcc-3.1/libstdc++-v3/include/ext/iterator Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/iterator Tue Jul 2 06:22:39 2002 *************** namespace __gnu_cxx *** 93,98 **** --- 93,103 ---- __n += __last - __first; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline void distance(_InputIterator __first, _InputIterator __last, diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/numeric gcc-3.1.1/libstdc++-v3/include/ext/numeric *** gcc-3.1/libstdc++-v3/include/ext/numeric Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/numeric Tue Jul 2 06:22:39 2002 *************** namespace __gnu_cxx *** 105,115 **** --- 105,125 ---- // Alias for the internal name __power. Note that power is an extension, // not part of the C++ standard. + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline _Tp power(_Tp __x, _Integer __n, _MonoidOperation __monoid_op) { return __power(__x, __n, __monoid_op); } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template inline _Tp power(_Tp __x, _Integer __n) *************** namespace __gnu_cxx *** 117,122 **** --- 127,137 ---- // iota is not part of the C++ standard. It is an extension. + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template void iota(_ForwardIter __first, _ForwardIter __last, _Tp __value) diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/rb_tree gcc-3.1.1/libstdc++-v3/include/ext/rb_tree *** gcc-3.1/libstdc++-v3/include/ext/rb_tree Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/rb_tree Tue Jul 2 06:22:39 2002 *************** using std::allocator; *** 73,78 **** --- 73,83 ---- // Class rb_tree is not part of the C++ standard. It is provided for // compatibility with the HP STL. + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template > struct rb_tree : public _Rb_tree<_Key, _Value, _KeyOfValue, _Compare, _Alloc> diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/slist gcc-3.1.1/libstdc++-v3/include/ext/slist *** gcc-3.1/libstdc++-v3/include/ext/slist Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/slist Tue Jul 2 06:22:39 2002 *************** _Slist_base<_Tp,_Alloc>::_M_erase_after( *** 295,300 **** --- 295,305 ---- return __last_node; } + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template > class slist : private _Slist_base<_Tp,_Alloc> { diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/stdio_filebuf.h gcc-3.1.1/libstdc++-v3/include/ext/stdio_filebuf.h *** gcc-3.1/libstdc++-v3/include/ext/stdio_filebuf.h Tue Apr 30 19:05:44 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/stdio_filebuf.h Tue May 21 21:26:28 2002 *************** *** 27,36 **** --- 27,53 ---- // invalidate any other reasons why the executable file might be covered by // the GNU General Public License. + /** @file ext/stdio_filebuf.h + * This file is a GNU extension to the Standard C++ Library. + */ + + #ifndef _EXT_STDIO_FILEBUF + #define _EXT_STDIO_FILEBUF + + #pragma GCC system_header #include namespace __gnu_cxx { + /** + * @class stdio_filebuf ext/stdio_filebuf.h + * @brief Provides a layer of compatibility for C/POSIX. + * + * This GNU extension provides extensions for working with standard C + * FILE*'s and POSIX file descriptors. It must be instantiated by the + * user with the type of character used in the file stream, e.g., + * stdio_filebuf. + */ template > class stdio_filebuf : public std::basic_filebuf<_CharT, _Traits> { *************** namespace __gnu_cxx *** 47,61 **** --- 64,110 ---- char_type _M_unbuf[4]; public: + /** + * @param fd An open file descriptor. + * @param mode Same meaning as in a standard filebuf. + * @param del Whether to close the file on destruction. + * @param size Optimal or preferred size of internal buffer, in bytes. + * + * This constructor associates a file stream buffer with an open + * POSIX file descriptor. Iff @a del is true, then the associated + * file will be closed when the stdio_filebuf is closed/destroyed. + */ stdio_filebuf(int __fd, std::ios_base::openmode __mode, bool __del, int_type __size); + /** + * @param f An open @c FILE*. + * @param mode Same meaning as in a standard filebuf. + * @param size Optimal or preferred size of internal buffer, in bytes. + * Defaults to system's @c BUFSIZ. + * + * This constructor associates a file stream buffer with an open + * C @c FILE*. The @c FILE* will not be automatically closed when the + * stdio_filebuf is closed/destroyed. + */ stdio_filebuf(std::__c_file* __f, std::ios_base::openmode __mode, int_type __size = static_cast(BUFSIZ)); + /** + * Possibly closes the external data stream, in the case of the file + * descriptor constructor and @c del @c == @c true. + */ virtual ~stdio_filebuf(); + /** + * @return The underlying file descriptor. + * + * Once associated with an external data stream, this function can be + * used to access the underlying POSIX file descriptor. Note that + * there is no way for the library to track what you do with the + * descriptor, so be careful. + */ int fd() { return _M_file.fd(); } *************** namespace __gnu_cxx *** 111,113 **** --- 160,164 ---- } } } // namespace __gnu_cxx + + #endif /* _EXT_STDIO_FILEBUF */ diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/stl_hashtable.h gcc-3.1.1/libstdc++-v3/include/ext/stl_hashtable.h *** gcc-3.1/libstdc++-v3/include/ext/stl_hashtable.h Sun Apr 28 22:22:57 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/stl_hashtable.h Thu Jul 4 00:48:50 2002 *************** bool operator==(const hashtable<_Val,_Ke *** 610,620 **** for (size_t __n = 0; __n < __ht1._M_buckets.size(); ++__n) { _Node* __cur1 = __ht1._M_buckets[__n]; _Node* __cur2 = __ht2._M_buckets[__n]; ! for ( ; __cur1 && __cur2 && __cur1->_M_val == __cur2->_M_val; __cur1 = __cur1->_M_next, __cur2 = __cur2->_M_next) {} if (__cur1 || __cur2) return false; } return true; } --- 610,637 ---- for (size_t __n = 0; __n < __ht1._M_buckets.size(); ++__n) { _Node* __cur1 = __ht1._M_buckets[__n]; _Node* __cur2 = __ht2._M_buckets[__n]; ! // Check same length of lists ! for ( ; __cur1 && __cur2; __cur1 = __cur1->_M_next, __cur2 = __cur2->_M_next) {} if (__cur1 || __cur2) return false; + // Now check one's elements are in the other + for (__cur1 = __ht1._M_buckets[__n] ; __cur1; __cur1 = __cur1->_M_next) + { + bool _found__cur1 = false; + for (_Node* __cur2 = __ht2._M_buckets[__n]; + __cur2; __cur2 = __cur2->_M_next) + { + if (__cur1->_M_val == __cur2->_M_val) + { + _found__cur1 = true; + break; + } + } + if (!_found__cur1) + return false; + } } return true; } diff -Nrc3pad gcc-3.1/libstdc++-v3/include/ext/stl_rope.h gcc-3.1.1/libstdc++-v3/include/ext/stl_rope.h *** gcc-3.1/libstdc++-v3/include/ext/stl_rope.h Mon Jan 28 22:13:09 2002 --- gcc-3.1.1/libstdc++-v3/include/ext/stl_rope.h Tue Jul 2 06:22:39 2002 *************** struct _Rope_base *** 1238,1243 **** --- 1238,1248 ---- }; + /** + * This is an SGI extension. + * @ingroup SGIextensions + * @doctodo + */ template class rope : public _Rope_base<_CharT,_Alloc> { public: diff -Nrc3pad gcc-3.1/libstdc++-v3/include/std/std_bitset.h gcc-3.1.1/libstdc++-v3/include/std/std_bitset.h *** gcc-3.1/libstdc++-v3/include/std/std_bitset.h Wed May 1 22:58:58 2002 --- gcc-3.1.1/libstdc++-v3/include/std/std_bitset.h Fri May 24 18:17:07 2002 *************** *** 61,67 **** #define _GLIBCPP_BITSET_BITS_PER_WORD (CHAR_BIT*sizeof(unsigned long)) #define _GLIBCPP_BITSET_WORDS(__n) \ ! ((__n) < 1 ? 1 : ((__n) + _GLIBCPP_BITSET_BITS_PER_WORD - 1)/_GLIBCPP_BITSET_BITS_PER_WORD) namespace std { --- 61,67 ---- #define _GLIBCPP_BITSET_BITS_PER_WORD (CHAR_BIT*sizeof(unsigned long)) #define _GLIBCPP_BITSET_WORDS(__n) \ ! ((__n) < 1 ? 0 : ((__n) + _GLIBCPP_BITSET_BITS_PER_WORD - 1)/_GLIBCPP_BITSET_BITS_PER_WORD) namespace std { *************** namespace std *** 463,468 **** --- 463,563 ---- _M_do_find_next(size_t __prev, size_t __not_found) const; }; + + /** + * @if maint + * Base class, specialization for no storage (zero-length %bitset). + * + * See documentation for bitset. + * @endif + */ + template<> + struct _Base_bitset<0> + { + typedef unsigned long _WordT; + + _Base_bitset() {} + _Base_bitset(unsigned long) {} + + static size_t + _S_whichword(size_t __pos ) + { return __pos / _GLIBCPP_BITSET_BITS_PER_WORD; } + + static size_t + _S_whichbyte(size_t __pos ) + { return (__pos % _GLIBCPP_BITSET_BITS_PER_WORD) / CHAR_BIT; } + + static size_t + _S_whichbit(size_t __pos ) + { return __pos % _GLIBCPP_BITSET_BITS_PER_WORD; } + + static _WordT + _S_maskbit(size_t __pos ) + { return (static_cast<_WordT>(1)) << _S_whichbit(__pos); } + + // This would normally give access to the data. The bounds-checking + // in the bitset class will prevent the user from getting this far, + // but (1) it must still return an lvalue to compile, and (2) the + // user might call _Unchecked_set directly, in which case this /needs/ + // to fail. Let's not penalize zero-length users unless they actually + // make an unchecked call; all the memory ugliness is therefore + // localized to this single should-never-get-this-far function. + _WordT& + _M_getword(size_t) const + { __throw_out_of_range("bitset -- zero-length"); return *new _WordT; } + + _WordT + _M_hiword() const { return 0; } + + void + _M_do_and(const _Base_bitset<0>&) { } + + void + _M_do_or(const _Base_bitset<0>&) { } + + void + _M_do_xor(const _Base_bitset<0>&) { } + + void + _M_do_left_shift(size_t) { } + + void + _M_do_right_shift(size_t) { } + + void + _M_do_flip() { } + + void + _M_do_set() { } + + void + _M_do_reset() { } + + // Are all empty bitsets equal to each other? Are they equal to + // themselves? How to compare a thing which has no state? What is + // the sound of one zero-length bitset clapping? + bool + _M_is_equal(const _Base_bitset<0>&) const { return true; } + + bool + _M_is_any() const { return false; } + + size_t + _M_do_count() const { return 0; } + + unsigned long + _M_do_to_ulong() const { return 0; } + + // Normally "not found" is the size, but that could also be + // misinterpreted as an index in this corner case. Oh well. + size_t + _M_do_find_first(size_t) const { return 0; } + + size_t + _M_do_find_next(size_t, size_t) const { return 0; } + }; + + // Helper class to zero out the unused high-order bits in the highest word. template struct _Sanitize *************** namespace std *** 1115,1121 **** } } ! if (__tmp.empty()) __is.setstate(ios_base::failbit); else __x._M_copy_from_string(__tmp, static_cast(0), _Nb); --- 1210,1216 ---- } } ! if (__tmp.empty() && !_Nb) __is.setstate(ios_base::failbit); else __x._M_copy_from_string(__tmp, static_cast(0), _Nb); diff -Nrc3pad gcc-3.1/libstdc++-v3/include/std/std_memory.h gcc-3.1.1/libstdc++-v3/include/std/std_memory.h *** gcc-3.1/libstdc++-v3/include/std/std_memory.h Wed Mar 27 21:54:38 2002 --- gcc-3.1.1/libstdc++-v3/include/std/std_memory.h Wed Jul 3 22:49:54 2002 *************** *** 58,204 **** #include #include namespace std { ! /** ! * @if maint ! * This is a helper function. The unused second parameter exists to ! * permit the real get_temporary_buffer to use template parameter deduction. ! * @endif ! */ ! template ! pair<_Tp*, ptrdiff_t> ! __get_temporary_buffer(ptrdiff_t __len, _Tp*) ! { ! if (__len > ptrdiff_t(INT_MAX / sizeof(_Tp))) ! __len = INT_MAX / sizeof(_Tp); ! ! while (__len > 0) { ! _Tp* __tmp = (_Tp*) std::malloc((std::size_t)__len * sizeof(_Tp)); ! if (__tmp != 0) ! return pair<_Tp*, ptrdiff_t>(__tmp, __len); ! __len /= 2; ! } ! ! return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0); } ! /** ! * @brief This is a mostly-useless wrapper around malloc(). ! * @param len The number of objects of type Tp. ! * @return See full description. ! * ! * Reinventing the wheel, but this time with prettier spokes! ! * ! * This function tries to obtain storage for @c len adjacent Tp objects. ! * The objects themselves are not constructed, of course. A pair<> is ! * returned containing "the buffer s address and capacity (in the units of ! * sizeof(Tp)), or a pair of 0 values if no storage can be obtained." ! * Note that the capacity obtained may be less than that requested if the ! * memory is unavailable; you should compare len with the .second return ! * value. ! */ ! template ! inline pair<_Tp*, ptrdiff_t> get_temporary_buffer(ptrdiff_t __len) { return __get_temporary_buffer(__len, (_Tp*) 0); } ! /** ! * @brief The companion to get_temporary_buffer(). ! * @param p A buffer previously allocated by get_temporary_buffer. ! * @return None. ! * ! * Frees the memory pointed to by p. ! */ ! template ! void return_temporary_buffer(_Tp* __p) { std::free(__p); } ! template struct auto_ptr_ref { _Tp1* _M_ptr; ! auto_ptr_ref(_Tp1* __p) : _M_ptr(__p) {} }; /** ! * A simple smart pointer providing strict ownership semantics. (More later.) */ ! template class auto_ptr { private: _Tp* _M_ptr; public: typedef _Tp element_type; ! explicit auto_ptr(_Tp* __p = 0) throw() : _M_ptr(__p) {} ! auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) {} ! template auto_ptr(auto_ptr<_Tp1>& __a) throw() ! : _M_ptr(__a.release()) {} ! auto_ptr& operator=(auto_ptr& __a) throw() { ! reset(__a.release()); ! return *this; ! } ! template ! auto_ptr& operator=(auto_ptr<_Tp1>& __a) throw() { ! reset(__a.release()); ! return *this; ! } ! ! // Note: The C++ standard says there is supposed to be an empty throw ! // specification here, but omitting it is standard conforming. Its ! // presence can be detected only if _Tp::~_Tp() throws, but (17.4.3.6/2) ! // this is prohibited. ~auto_ptr() { delete _M_ptr; } - - _Tp& operator*() const throw() { - return *_M_ptr; - } - _Tp* operator->() const throw() { - return _M_ptr; - } - _Tp* get() const throw() { - return _M_ptr; - } - _Tp* release() throw() { - _Tp* __tmp = _M_ptr; - _M_ptr = 0; - return __tmp; - } - void reset(_Tp* __p = 0) throw() { - if (__p != _M_ptr) { - delete _M_ptr; - _M_ptr = __p; - } - } ! public: ! auto_ptr(auto_ptr_ref<_Tp> __ref) throw() : _M_ptr(__ref._M_ptr) {} ! auto_ptr& operator=(auto_ptr_ref<_Tp> __ref) throw() { ! if (__ref._M_ptr != this->get()) { ! delete _M_ptr; ! _M_ptr = __ref._M_ptr; } - return *this; - } ! template operator auto_ptr_ref<_Tp1>() throw() ! { return auto_ptr_ref<_Tp>(this->release()); } ! template operator auto_ptr<_Tp1>() throw() ! { return auto_ptr<_Tp1>(this->release()); } }; } // namespace std #endif /* _CPP_MEMORY */ - --- 58,371 ---- #include #include + // Since this entire file is within namespace std, there's no reason to + // waste two spaces along the left column. Thus the leading indentation is + // slightly violated from here on. namespace std { + /** + * @if maint + * This is a helper function. The unused second parameter exists to + * permit the real get_temporary_buffer to use template parameter deduction. + * + * XXX This should perhaps use the pool. + * @endif + */ + template + pair<_Tp*, ptrdiff_t> + __get_temporary_buffer(ptrdiff_t __len, _Tp*) + { + if (__len > ptrdiff_t(INT_MAX / sizeof(_Tp))) + __len = INT_MAX / sizeof(_Tp); ! while (__len > 0) { ! _Tp* __tmp = (_Tp*) std::malloc((std::size_t)__len * sizeof(_Tp)); ! if (__tmp != 0) ! return pair<_Tp*, ptrdiff_t>(__tmp, __len); ! __len /= 2; } ! return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0); ! } ! ! /** ! * @brief This is a mostly-useless wrapper around malloc(). ! * @param len The number of objects of type Tp. ! * @return See full description. ! * ! * Reinventing the wheel, but this time with prettier spokes! ! * ! * This function tries to obtain storage for @c len adjacent Tp objects. ! * The objects themselves are not constructed, of course. A pair<> is ! * returned containing "the buffer s address and capacity (in the units of ! * sizeof(Tp)), or a pair of 0 values if no storage can be obtained." ! * Note that the capacity obtained may be less than that requested if the ! * memory is unavailable; you should compare len with the .second return ! * value. ! */ ! template ! inline pair<_Tp*,ptrdiff_t> ! get_temporary_buffer(ptrdiff_t __len) ! { return __get_temporary_buffer(__len, (_Tp*) 0); } ! /** ! * @brief The companion to get_temporary_buffer(). ! * @param p A buffer previously allocated by get_temporary_buffer. ! * @return None. ! * ! * Frees the memory pointed to by p. ! */ ! template ! void ! return_temporary_buffer(_Tp* __p) ! { std::free(__p); } ! /** ! * A wrapper class to provide auto_ptr with reference semantics. For ! * example, an auto_ptr can be assigned (or constructed from) the result of ! * a function which returns an auto_ptr by value. ! * ! * All the auto_ptr_ref stuff should happen behind the scenes. ! */ ! template struct auto_ptr_ref { _Tp1* _M_ptr; ! ! explicit ! auto_ptr_ref(_Tp1* __p) ! : _M_ptr(__p) {} }; + /** ! * @brief A simple smart pointer providing strict ownership semantics. ! * ! * The Standard says: ! *
              !  *  An @c auto_ptr owns the object it holds a pointer to.  Copying an
              !  *  @c auto_ptr copies the pointer and transfers ownership to the destination.
              !  *  If more than one @c auto_ptr owns the same object at the same time the
              !  *  behavior of the program is undefined.
              !  *
              !  *  The uses of @c auto_ptr include providing temporary exception-safety for
              !  *  dynamically allocated memory, passing ownership of dynamically allocated
              !  *  memory to a function, and returning dynamically allocated memory from a
              !  *  function.  @c auto_ptr does not meet the CopyConstructible and Assignable
              !  *  requirements for Standard Library container
              !  *  elements and thus instantiating a Standard Library container with an
              !  *  @c auto_ptr results in undefined behavior.
              !  *  
              ! * Quoted from [20.4.5]/3. ! * ! * Good examples of what can and cannot be done with auto_ptr can be found ! * in the libstdc++ testsuite. ! * ! * @if maint ! * _GLIBCPP_RESOLVE_LIB_DEFECTS ! * 127. auto_ptr<> conversion issues ! * These resolutions have all been incorporated. ! * @endif */ ! template class auto_ptr { private: _Tp* _M_ptr; public: + /// The pointed-to type. typedef _Tp element_type; ! /** ! * @brief An %auto_ptr is usually constructed from a raw pointer. ! * @param p A pointer (defaults to NULL). ! * ! * This object now @e owns the object pointed to by @a p. ! */ ! explicit ! auto_ptr(element_type* __p = 0) throw() ! : _M_ptr(__p) { } ! /** ! * @brief An %auto_ptr can be constructed from another %auto_ptr. ! * @param a Another %auto_ptr of the same type. ! * ! * This object now @e owns the object previously owned by @a a, which has ! * given up ownsership. ! */ ! auto_ptr(auto_ptr& __a) throw() ! : _M_ptr(__a.release()) { } ! /** ! * @brief An %auto_ptr can be constructed from another %auto_ptr. ! * @param a Another %auto_ptr of a different but related type. ! * ! * A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type. ! * ! * This object now @e owns the object previously owned by @a a, which has ! * given up ownsership. ! */ ! template ! auto_ptr(auto_ptr<_Tp1>& __a) throw() ! : _M_ptr(__a.release()) { } ! /** ! * @brief %auto_ptr assignment operator. ! * @param a Another %auto_ptr of the same type. ! * ! * This object now @e owns the object previously owned by @a a, which has ! * given up ownsership. The object that this one @e used to own and ! * track has been deleted. ! */ ! auto_ptr& ! operator=(auto_ptr& __a) throw() ! { ! reset(__a.release()); ! return *this; ! } ! ! /** ! * @brief %auto_ptr assignment operator. ! * @param a Another %auto_ptr of a different but related type. ! * ! * A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type. ! * ! * This object now @e owns the object previously owned by @a a, which has ! * given up ownsership. The object that this one @e used to own and ! * track has been deleted. ! */ ! template ! auto_ptr& ! operator=(auto_ptr<_Tp1>& __a) throw() ! { ! reset(__a.release()); ! return *this; ! } ! ! /** ! * When the %auto_ptr goes out of scope, the object it owns is deleted. ! * If it no longer owns anything (i.e., @c get() is @c NULL), then this ! * has no effect. ! * ! * @if maint ! * The C++ standard says there is supposed to be an empty throw ! * specification here, but omitting it is standard conforming. Its ! * presence can be detected only if _Tp::~_Tp() throws, but this is ! * prohibited. [17.4.3.6]/2 ! * @end maint ! */ ~auto_ptr() { delete _M_ptr; } ! /** ! * @brief Smart pointer dereferencing. ! * ! * If this %auto_ptr no longer owns anything, then this operation will ! * crash. (For a smart pointer, "no longer owns anything" is the same as ! * being a null pointer, and you know what happens when you dereference ! * one of those...) ! */ ! element_type& ! operator*() const throw() { return *_M_ptr; } ! ! /** ! * @brief Smart pointer dereferencing. ! * ! * This returns the pointer itself, which the language then will ! * automatically cause to be dereferenced. ! */ ! element_type* ! operator->() const throw() { return _M_ptr; } ! ! /** ! * @brief Bypassing the smart pointer. ! * @return The raw pointer being managed. ! * ! * You can get a copy of the pointer that this object owns, for ! * situations such as passing to a function which only accepts a raw ! * pointer. ! * ! * @note This %auto_ptr still owns the memory. ! */ ! element_type* ! get() const throw() { return _M_ptr; } ! ! /** ! * @brief Bypassing the smart pointer. ! * @return The raw pointer being managed. ! * ! * You can get a copy of the pointer that this object owns, for ! * situations such as passing to a function which only accepts a raw ! * pointer. ! * ! * @note This %auto_ptr no longer owns the memory. When this object ! * goes out of scope, nothing will happen. ! */ ! element_type* ! release() throw() ! { ! element_type* __tmp = _M_ptr; ! _M_ptr = 0; ! return __tmp; ! } ! ! /** ! * @brief Forcibly deletes the managed object. ! * @param p A pointer (defaults to NULL). ! * ! * This object now @e owns the object pointed to by @a p. The previous ! * object has been deleted. ! */ ! void ! reset(element_type* __p = 0) throw() ! { ! if (__p != _M_ptr) ! { ! delete _M_ptr; ! _M_ptr = __p; ! } ! } ! ! /** @{ ! * @brief Automatic conversions ! * ! * These operations convert an %auto_ptr into and from an auto_ptr_ref ! * automatically as needed. This allows constructs such as ! * @code ! * auto_ptr func_returning_auto_ptr(.....); ! * ... ! * auto_ptr ptr = func_returning_auto_ptr(.....); ! * @endcode ! */ ! auto_ptr(auto_ptr_ref __ref) throw() : _M_ptr(__ref._M_ptr) {} ! auto_ptr& ! operator=(auto_ptr_ref __ref) throw() ! { ! if (__ref._M_ptr != this->get()) ! { ! delete _M_ptr; ! _M_ptr = __ref._M_ptr; ! } ! return *this; } ! template ! operator auto_ptr_ref<_Tp1>() throw() ! { return auto_ptr_ref<_Tp1>(this->release()); } ! ! template ! operator auto_ptr<_Tp1>() throw() ! { return auto_ptr<_Tp1>(this->release()); } ! /** @} */ }; } // namespace std #endif /* _CPP_MEMORY */ diff -Nrc3pad gcc-3.1/libstdc++-v3/libio/ChangeLog gcc-3.1.1/libstdc++-v3/libio/ChangeLog *** gcc-3.1/libstdc++-v3/libio/ChangeLog Wed May 15 02:27:23 2002 --- gcc-3.1.1/libstdc++-v3/libio/ChangeLog Thu Jul 25 23:40:25 2002 *************** *** 1,3 **** --- 1,7 ---- + 2002-07-25 Release Manager + + * GCC 3.1.1 Released. + 2002-05-14 Release Manager * GCC 3.1 Released. diff -Nrc3pad gcc-3.1/libstdc++-v3/libio/Makefile.in gcc-3.1.1/libstdc++-v3/libio/Makefile.in *** gcc-3.1/libstdc++-v3/libio/Makefile.in Tue Apr 2 02:46:58 2002 --- gcc-3.1.1/libstdc++-v3/libio/Makefile.in Fri Jun 28 08:22:36 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,106 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ --- 75,91 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 110,130 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 95,110 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 147,153 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = 1.3 cygnus --- 127,132 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/libmath/Makefile.in gcc-3.1.1/libstdc++-v3/libmath/Makefile.in *** gcc-3.1/libstdc++-v3/libmath/Makefile.in Tue Apr 2 02:47:01 2002 --- gcc-3.1.1/libstdc++-v3/libmath/Makefile.in Fri Jun 28 08:22:37 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,107 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 75,92 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 112,132 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 97,112 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 149,155 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = 1.3 cygnus --- 129,134 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/Makefile.am gcc-3.1.1/libstdc++-v3/libsupc++/Makefile.am *** gcc-3.1/libstdc++-v3/libsupc++/Makefile.am Mon Apr 1 22:09:28 2002 --- gcc-3.1.1/libstdc++-v3/libsupc++/Makefile.am Fri Jun 28 08:22:38 2002 *************** OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ *** 49,55 **** # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. WARN_CXXFLAGS = \ --- 49,55 ---- # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. WARN_CXXFLAGS = \ *************** WARN_CXXFLAGS = \ *** 58,78 **** # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ INCLUDES = \ ! -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include \ ! $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) headers = \ exception new typeinfo cxxabi.h exception_defines.h ! sources = \ cxa_demangle.c \ del_op.cc \ del_opnt.cc \ del_opv.cc \ del_opvnt.cc \ - dyn-string.c \ eh_alloc.cc \ eh_aux_runtime.cc \ eh_catch.cc \ --- 58,80 ---- # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ + GCC_INCLUDES = -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include INCLUDES = \ ! $(GCC_INCLUDES) $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) headers = \ exception new typeinfo cxxabi.h exception_defines.h ! c_sources = \ cxa_demangle.c \ + dyn-string.c + + sources = \ del_op.cc \ del_opnt.cc \ del_opv.cc \ del_opvnt.cc \ eh_alloc.cc \ eh_aux_runtime.cc \ eh_catch.cc \ *************** sources = \ *** 92,125 **** tinfo2.cc \ vec.cc ! libsupc___la_SOURCES = $(sources) ! libsupc__convenience_la_SOURCES = $(sources) glibcppinstalldir = @gxx_include_dir@ glibcppinstall_HEADERS = $(headers) LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS) ! # Use special rules for pulling things out of libiberty. cxa_demangle.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@ cxa_demangle.lo: cxa_demangle.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< cxa_demangle.o: cxa_demangle.c ! $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@ dyn-string.lo: dyn-string.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.o: dyn-string.c ! $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< # LTCOMPILE is copied from LTCXXCOMPILE below. ! LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared \ ! --mode=compile $(CC) $(INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # AM_CXXFLAGS needs to be in each subdirectory so that it can be --- 94,133 ---- tinfo2.cc \ vec.cc ! libsupc___la_SOURCES = $(sources) $(c_sources) ! libsupc__convenience_la_SOURCES = $(sources) $(c_sources) glibcppinstalldir = @gxx_include_dir@ glibcppinstall_HEADERS = $(headers) LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS) ! # Use special rules for pulling things out of libiberty. These ! # objects should be compiled with the "C" compiler, not the C++ ! # compiler, and also should not use the C++ includes. ! C_COMPILE = \ ! $(CC) $(DEFS) $(GCC_INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! cxa_demangle.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@ cxa_demangle.lo: cxa_demangle.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< cxa_demangle.o: cxa_demangle.c ! $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@ dyn-string.lo: dyn-string.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.o: dyn-string.c ! $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< # LTCOMPILE is copied from LTCXXCOMPILE below. ! LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \ ! $(DEFS) $(GCC_INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # AM_CXXFLAGS needs to be in each subdirectory so that it can be diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/Makefile.in gcc-3.1.1/libstdc++-v3/libsupc++/Makefile.in *** gcc-3.1/libstdc++-v3/libsupc++/Makefile.in Tue Apr 2 02:47:02 2002 --- gcc-3.1.1/libstdc++-v3/libsupc++/Makefile.in Fri Jun 28 08:22:38 2002 *************** AS = @AS@ *** 68,104 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ CLOCALE_H = @CLOCALE_H@ CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 68,89 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 108,128 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 93,108 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 145,151 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = 1.3 cygnus --- 125,130 ---- *************** OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ *** 174,180 **** # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. --- 153,159 ---- # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. *************** WARN_CXXFLAGS = \ *** 185,207 **** # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ INCLUDES = \ ! -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include \ ! $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) headers = \ exception new typeinfo cxxabi.h exception_defines.h ! sources = \ cxa_demangle.c \ del_op.cc \ del_opnt.cc \ del_opv.cc \ del_opvnt.cc \ - dyn-string.c \ eh_alloc.cc \ eh_aux_runtime.cc \ eh_catch.cc \ --- 164,189 ---- # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ + GCC_INCLUDES = -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include INCLUDES = \ ! $(GCC_INCLUDES) $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) headers = \ exception new typeinfo cxxabi.h exception_defines.h ! c_sources = \ cxa_demangle.c \ + dyn-string.c + + + sources = \ del_op.cc \ del_opnt.cc \ del_opv.cc \ del_opvnt.cc \ eh_alloc.cc \ eh_aux_runtime.cc \ eh_catch.cc \ *************** sources = \ *** 222,239 **** vec.cc ! libsupc___la_SOURCES = $(sources) ! libsupc__convenience_la_SOURCES = $(sources) glibcppinstalldir = @gxx_include_dir@ glibcppinstall_HEADERS = $(headers) LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS) # LTCOMPILE is copied from LTCXXCOMPILE below. ! LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared \ ! --mode=compile $(CC) $(INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # AM_CXXFLAGS needs to be in each subdirectory so that it can be --- 204,229 ---- vec.cc ! libsupc___la_SOURCES = $(sources) $(c_sources) ! libsupc__convenience_la_SOURCES = $(sources) $(c_sources) glibcppinstalldir = @gxx_include_dir@ glibcppinstall_HEADERS = $(headers) LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS) + # Use special rules for pulling things out of libiberty. These + # objects should be compiled with the "C" compiler, not the C++ + # compiler, and also should not use the C++ includes. + C_COMPILE = \ + $(CC) $(DEFS) $(GCC_INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) + + # LTCOMPILE is copied from LTCXXCOMPILE below. ! LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \ ! $(DEFS) $(GCC_INCLUDES) \ ! $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # AM_CXXFLAGS needs to be in each subdirectory so that it can be *************** LDFLAGS = @LDFLAGS@ *** 296,313 **** LIBS = @LIBS@ libsupc__convenience_la_LDFLAGS = libsupc__convenience_la_LIBADD = ! libsupc__convenience_la_OBJECTS = cxa_demangle.lo del_op.lo del_opnt.lo \ ! del_opv.lo del_opvnt.lo dyn-string.lo eh_alloc.lo eh_aux_runtime.lo \ ! eh_catch.lo eh_exception.lo eh_globals.lo eh_personality.lo \ ! eh_terminate.lo eh_throw.lo eh_type.lo new_handler.lo new_op.lo \ ! new_opnt.lo new_opv.lo new_opvnt.lo pure.lo tinfo.lo tinfo2.lo vec.lo libsupc___la_LDFLAGS = libsupc___la_LIBADD = ! libsupc___la_OBJECTS = cxa_demangle.lo del_op.lo del_opnt.lo del_opv.lo \ ! del_opvnt.lo dyn-string.lo eh_alloc.lo eh_aux_runtime.lo eh_catch.lo \ ! eh_exception.lo eh_globals.lo eh_personality.lo eh_terminate.lo \ ! eh_throw.lo eh_type.lo new_handler.lo new_op.lo new_opnt.lo new_opv.lo \ ! new_opvnt.lo pure.lo tinfo.lo tinfo2.lo vec.lo CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) --- 286,303 ---- LIBS = @LIBS@ libsupc__convenience_la_LDFLAGS = libsupc__convenience_la_LIBADD = ! libsupc__convenience_la_OBJECTS = del_op.lo del_opnt.lo del_opv.lo \ ! del_opvnt.lo eh_alloc.lo eh_aux_runtime.lo eh_catch.lo eh_exception.lo \ ! eh_globals.lo eh_personality.lo eh_terminate.lo eh_throw.lo eh_type.lo \ ! new_handler.lo new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo pure.lo \ ! tinfo.lo tinfo2.lo vec.lo cxa_demangle.lo dyn-string.lo libsupc___la_LDFLAGS = libsupc___la_LIBADD = ! libsupc___la_OBJECTS = del_op.lo del_opnt.lo del_opv.lo del_opvnt.lo \ ! eh_alloc.lo eh_aux_runtime.lo eh_catch.lo eh_exception.lo eh_globals.lo \ ! eh_personality.lo eh_terminate.lo eh_throw.lo eh_type.lo new_handler.lo \ ! new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo pure.lo tinfo.lo \ ! tinfo2.lo vec.lo cxa_demangle.lo dyn-string.lo CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) *************** mostlyclean-generic distclean-generic cl *** 560,580 **** maintainer-clean-generic clean mostlyclean distclean maintainer-clean - # Use special rules for pulling things out of libiberty. cxa_demangle.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@ cxa_demangle.lo: cxa_demangle.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< cxa_demangle.o: cxa_demangle.c ! $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@ dyn-string.lo: dyn-string.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.o: dyn-string.c ! $(COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< # We have to have rules modified from the default to counteract SUN make # prepending each of $(glibcppinstall_HEADERS) with VPATH below. --- 550,569 ---- maintainer-clean-generic clean mostlyclean distclean maintainer-clean cxa_demangle.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@ cxa_demangle.lo: cxa_demangle.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< cxa_demangle.o: cxa_demangle.c ! $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.c: rm -f $@ $(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@ dyn-string.lo: dyn-string.c $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< dyn-string.o: dyn-string.c ! $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< # We have to have rules modified from the default to counteract SUN make # prepending each of $(glibcppinstall_HEADERS) with VPATH below. diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/eh_alloc.cc gcc-3.1.1/libstdc++-v3/libsupc++/eh_alloc.cc *** gcc-3.1/libstdc++-v3/libsupc++/eh_alloc.cc Mon Jul 2 23:08:28 2001 --- gcc-3.1.1/libstdc++-v3/libsupc++/eh_alloc.cc Fri Jun 28 08:22:38 2002 *************** *** 30,39 **** // This is derived from the C++ ABI for IA-64. Where we diverge // for cross-architecture compatibility are noted with "@@@". - #include #include #include #include #include "unwind-cxx.h" #include "bits/c++config.h" #include "bits/gthr.h" --- 30,39 ---- // This is derived from the C++ ABI for IA-64. Where we diverge // for cross-architecture compatibility are noted with "@@@". #include #include #include + #include #include "unwind-cxx.h" #include "bits/c++config.h" #include "bits/gthr.h" diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/new gcc-3.1.1/libstdc++-v3/libsupc++/new *** gcc-3.1/libstdc++-v3/libsupc++/new Fri Apr 19 07:59:15 2002 --- gcc-3.1.1/libstdc++-v3/libsupc++/new Tue Jul 16 20:26:29 2002 *************** namespace std *** 62,68 **** * be of this type. */ typedef void (*new_handler)(); /// Takes a replacement handler as the argument, returns the previous handler. ! new_handler set_new_handler(new_handler); } // namespace std //@{ --- 62,68 ---- * be of this type. */ typedef void (*new_handler)(); /// Takes a replacement handler as the argument, returns the previous handler. ! new_handler set_new_handler(new_handler) throw(); } // namespace std //@{ diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/new_handler.cc gcc-3.1.1/libstdc++-v3/libsupc++/new_handler.cc *** gcc-3.1/libstdc++-v3/libsupc++/new_handler.cc Wed Jan 9 20:39:27 2002 --- gcc-3.1.1/libstdc++-v3/libsupc++/new_handler.cc Tue Jul 16 20:26:29 2002 *************** using std::new_handler; *** 37,43 **** new_handler __new_handler; new_handler ! std::set_new_handler (new_handler handler) { new_handler prev_handler = __new_handler; __new_handler = handler; --- 37,43 ---- new_handler __new_handler; new_handler ! std::set_new_handler (new_handler handler) throw() { new_handler prev_handler = __new_handler; __new_handler = handler; diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/new_op.cc gcc-3.1.1/libstdc++-v3/libsupc++/new_op.cc *** gcc-3.1/libstdc++-v3/libsupc++/new_op.cc Wed Oct 24 02:37:55 2001 --- gcc-3.1.1/libstdc++-v3/libsupc++/new_op.cc Fri Jun 28 08:22:38 2002 *************** *** 1,5 **** // Support routines for the -*- C++ -*- dynamic memory management. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation // // This file is part of GNU CC. // --- 1,5 ---- // Support routines for the -*- C++ -*- dynamic memory management. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation // // This file is part of GNU CC. // *************** *** 33,40 **** using std::new_handler; using std::bad_alloc; - extern "C" void *malloc (std::size_t); extern new_handler __new_handler; void * --- 33,40 ---- using std::new_handler; using std::bad_alloc; + using std::malloc; extern new_handler __new_handler; void * diff -Nrc3pad gcc-3.1/libstdc++-v3/libsupc++/pure.cc gcc-3.1.1/libstdc++-v3/libsupc++/pure.cc *** gcc-3.1/libstdc++-v3/libsupc++/pure.cc Wed Mar 28 11:04:50 2001 --- gcc-3.1.1/libstdc++-v3/libsupc++/pure.cc Fri Jun 28 08:22:38 2002 *************** *** 39,46 **** /*# define write(fd, buf, n) __write((fd), (buf), (n))*/ # endif #else ! # include ! # define writestr(str) fputs(str, stderr) #endif extern "C" void --- 39,46 ---- /*# define write(fd, buf, n) __write((fd), (buf), (n))*/ # endif #else ! # include ! # define writestr(str) std::fputs(str, stderr) #endif extern "C" void diff -Nrc3pad gcc-3.1/libstdc++-v3/po/Makefile.in gcc-3.1.1/libstdc++-v3/po/Makefile.in *** gcc-3.1/libstdc++-v3/po/Makefile.in Tue Apr 2 02:47:03 2002 --- gcc-3.1.1/libstdc++-v3/po/Makefile.in Fri Jun 28 08:22:39 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,107 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 75,92 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 112,131 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 97,112 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 148,154 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ PACKAGE = @PACKAGE@ --- 129,134 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/src/Makefile.am gcc-3.1.1/libstdc++-v3/src/Makefile.am *** gcc-3.1/libstdc++-v3/src/Makefile.am Mon Mar 25 21:02:24 2002 --- gcc-3.1.1/libstdc++-v3/src/Makefile.am Fri Jun 28 08:22:39 2002 *************** OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ *** 41,47 **** # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. WARN_CXXFLAGS = \ --- 41,47 ---- # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. WARN_CXXFLAGS = \ *************** INCLUDES = \ *** 63,74 **** sources = \ globals.cc limits.cc \ basic_file.cc complex_io.cc ios.cc strstream.cc \ ! cmath.cc bitset.cc \ functexcept.cc stdexcept.cc vterminate.cc \ c++locale.cc locale.cc localename.cc codecvt.cc \ collate.cc ctype.cc messages.cc monetary.cc numeric.cc time.cc \ concept-inst.cc locale-inst.cc misc-inst.cc stl-inst.cc \ ! string-inst.cc wstring-inst.cc valarray-inst.cc ext-inst.cc VPATH = $(top_srcdir)/src:$(top_srcdir) --- 63,76 ---- sources = \ globals.cc limits.cc \ basic_file.cc complex_io.cc ios.cc strstream.cc \ ! bitset.cc \ functexcept.cc stdexcept.cc vterminate.cc \ c++locale.cc locale.cc localename.cc codecvt.cc \ collate.cc ctype.cc messages.cc monetary.cc numeric.cc time.cc \ concept-inst.cc locale-inst.cc misc-inst.cc stl-inst.cc \ ! string-inst.cc wstring-inst.cc valarray-inst.cc ext-inst.cc \ ! fstream-inst.cc io-inst.cc istream-inst.cc ostream-inst.cc \ ! streambuf-inst.cc sstream-inst.cc VPATH = $(top_srcdir)/src:$(top_srcdir) diff -Nrc3pad gcc-3.1/libstdc++-v3/src/Makefile.in gcc-3.1.1/libstdc++-v3/src/Makefile.in *** gcc-3.1/libstdc++-v3/src/Makefile.in Tue Apr 2 02:47:04 2002 --- gcc-3.1.1/libstdc++-v3/src/Makefile.in Fri Jun 28 08:22:40 2002 *************** AS = @AS@ *** 67,75 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 67,72 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 77,104 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBMATHOBJS = @LIBMATHOBJS@ LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@ LIBTOOL = @LIBTOOL@ --- 74,89 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 106,125 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 91,105 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 142,148 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = 1.3 gnits --- 122,127 ---- *************** OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ *** 164,170 **** # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. --- 143,149 ---- # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. CONFIG_CXXFLAGS = \ ! @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. *************** INCLUDES = \ *** 189,200 **** sources = \ globals.cc limits.cc \ basic_file.cc complex_io.cc ios.cc strstream.cc \ ! cmath.cc bitset.cc \ functexcept.cc stdexcept.cc vterminate.cc \ c++locale.cc locale.cc localename.cc codecvt.cc \ collate.cc ctype.cc messages.cc monetary.cc numeric.cc time.cc \ concept-inst.cc locale-inst.cc misc-inst.cc stl-inst.cc \ ! string-inst.cc wstring-inst.cc valarray-inst.cc ext-inst.cc VPATH = $(top_srcdir)/src:$(top_srcdir) --- 168,181 ---- sources = \ globals.cc limits.cc \ basic_file.cc complex_io.cc ios.cc strstream.cc \ ! bitset.cc \ functexcept.cc stdexcept.cc vterminate.cc \ c++locale.cc locale.cc localename.cc codecvt.cc \ collate.cc ctype.cc messages.cc monetary.cc numeric.cc time.cc \ concept-inst.cc locale-inst.cc misc-inst.cc stl-inst.cc \ ! string-inst.cc wstring-inst.cc valarray-inst.cc ext-inst.cc \ ! fstream-inst.cc io-inst.cc istream-inst.cc ostream-inst.cc \ ! streambuf-inst.cc sstream-inst.cc VPATH = $(top_srcdir)/src:$(top_srcdir) *************** CPPFLAGS = @CPPFLAGS@ *** 273,283 **** LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ libstdc___la_OBJECTS = globals.lo limits.lo basic_file.lo complex_io.lo \ ! ios.lo strstream.lo cmath.lo bitset.lo functexcept.lo stdexcept.lo \ ! vterminate.lo c++locale.lo locale.lo localename.lo codecvt.lo \ ! collate.lo ctype.lo messages.lo monetary.lo numeric.lo time.lo \ ! concept-inst.lo locale-inst.lo misc-inst.lo stl-inst.lo string-inst.lo \ ! wstring-inst.lo valarray-inst.lo ext-inst.lo CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) --- 254,265 ---- LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ libstdc___la_OBJECTS = globals.lo limits.lo basic_file.lo complex_io.lo \ ! ios.lo strstream.lo bitset.lo functexcept.lo stdexcept.lo vterminate.lo \ ! c++locale.lo locale.lo localename.lo codecvt.lo collate.lo ctype.lo \ ! messages.lo monetary.lo numeric.lo time.lo concept-inst.lo \ ! locale-inst.lo misc-inst.lo stl-inst.lo string-inst.lo wstring-inst.lo \ ! valarray-inst.lo ext-inst.lo fstream-inst.lo io-inst.lo istream-inst.lo \ ! ostream-inst.lo streambuf-inst.lo sstream-inst.lo CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) diff -Nrc3pad gcc-3.1/libstdc++-v3/src/cmath.cc gcc-3.1.1/libstdc++-v3/src/cmath.cc *** gcc-3.1/libstdc++-v3/src/cmath.cc Fri Jan 4 21:27:35 2002 --- gcc-3.1.1/libstdc++-v3/src/cmath.cc Thu Jan 1 00:00:00 1970 *************** *** 1,47 **** - // Explicit instantiation file for -*- C++ -*- math library. - - // Copyright (C) 2001 Free Software Foundation, Inc. - // - // This file is part of the GNU ISO C++ Library. This library is free - // software; you can redistribute it and/or modify it under the - // terms of the GNU General Public License as published by the - // Free Software Foundation; either version 2, or (at your option) - // any later version. - - // This library is distributed in the hope that it will be useful, - // but WITHOUT ANY WARRANTY; without even the implied warranty of - // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - // GNU General Public License for more details. - - // You should have received a copy of the GNU General Public License along - // with this library; see the file COPYING. If not, write to the Free - // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, - // USA. - - // As a special exception, you may use this file as part of a free software - // library without restriction. Specifically, if other files instantiate - // templates or use macros or inline functions from this file, or you compile - // this file and link it with other files to produce an executable, this - // file does not by itself cause the resulting executable to be covered by - // the GNU General Public License. This exception does not however - // invalidate any other reasons why the executable file might be covered by - // the GNU General Public License. - - - // These are explicit instantiations of the behind-the-scenes internal - // helper functions used in the math routines of libstdc++. - - - #include - - namespace std - { - // This function is only declared/used in the cheaders=c_std case. - template float - __cmath_power(float, unsigned int); - template double - __cmath_power(double, unsigned int); - template long double - __cmath_power(long double, unsigned int); - - } // namespace std --- 0 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/src/ext-inst.cc gcc-3.1.1/libstdc++-v3/src/ext-inst.cc *** gcc-3.1/libstdc++-v3/src/ext-inst.cc Mon Dec 31 10:22:00 2001 --- gcc-3.1.1/libstdc++-v3/src/ext-inst.cc Fri Jun 28 08:22:40 2002 *************** *** 1,6 **** // Explicit instantiation file. ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // Explicit instantiation file. ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 32,40 **** // #include ! namespace std { template ! const unsigned long __gnu_cxx::rope >::_S_min_len; ! } // namespace std --- 32,62 ---- // #include + #include ! namespace __gnu_cxx { template ! const unsigned long ! rope >::_S_min_len; ! ! template ! char ! rope >:: ! _S_fetch(_Rope_RopeRep >*, size_type); ! ! template class stdio_filebuf; ! ! #ifdef _GLIBCPP_USE_WCHAR_T ! template ! const unsigned long ! rope >::_S_min_len; ! ! template ! wchar_t ! rope >:: ! _S_fetch(_Rope_RopeRep >*, size_type); ! ! template class stdio_filebuf; ! #endif ! } // namespace __gnu_cxx diff -Nrc3pad gcc-3.1/libstdc++-v3/src/fstream-inst.cc gcc-3.1.1/libstdc++-v3/src/fstream-inst.cc *** gcc-3.1/libstdc++-v3/src/fstream-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/fstream-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,62 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + + namespace std + { + // filebuf + template class basic_filebuf >; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_filebuf >; + #endif + + // ifstream + template class basic_ifstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_ifstream; + #endif + + // ofstream + template class basic_ofstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_ofstream; + #endif + + // fstream + template class basic_fstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_fstream; + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/io-inst.cc gcc-3.1.1/libstdc++-v3/src/io-inst.cc *** gcc-3.1/libstdc++-v3/src/io-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/io-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,60 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + #include + #include + + namespace std + { + // basic_ios + template class basic_ios; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_ios; + #endif + + // iomanip + template class _Setfill; + template _Setfill setfill(char); + #ifdef _GLIBCPP_USE_WCHAR_T + template class _Setfill; + template _Setfill setfill(wchar_t); + #endif + + // iostream + template class basic_iostream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_iostream; + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/istream-inst.cc gcc-3.1.1/libstdc++-v3/src/istream-inst.cc *** gcc-3.1/libstdc++-v3/src/istream-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/istream-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,70 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + #include + + namespace std + { + // istream + template class basic_istream; + template istream& ws(istream&); + template istream& operator>>(istream&, char&); + template istream& operator>>(istream&, unsigned char&); + template istream& operator>>(istream&, signed char&); + template istream& operator>>(istream&, char*); + template istream& operator>>(istream&, unsigned char*); + template istream& operator>>(istream&, signed char*); + + template istream& operator>>(istream&, _Setfill); + template istream& operator>>(istream&, _Setiosflags); + template istream& operator>>(istream&, _Resetiosflags); + template istream& operator>>(istream&, _Setbase); + template istream& operator>>(istream&, _Setprecision); + template istream& operator>>(istream&, _Setw); + + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_istream; + template wistream& ws(wistream&); + template wistream& operator>>(wistream&, wchar_t&); + template wistream& operator>>(wistream&, wchar_t*); + + template wistream& operator>>(wistream&, _Setfill); + template wistream& operator>>(wistream&, _Setiosflags); + template wistream& operator>>(wistream&, _Resetiosflags); + template wistream& operator>>(wistream&, _Setbase); + template wistream& operator>>(wistream&, _Setprecision); + template wistream& operator>>(wistream&, _Setw); + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/locale-inst.cc gcc-3.1.1/libstdc++-v3/src/locale-inst.cc *** gcc-3.1/libstdc++-v3/src/locale-inst.cc Fri Apr 19 07:59:18 2002 --- gcc-3.1.1/libstdc++-v3/src/locale-inst.cc Mon Jun 10 21:15:01 2002 *************** namespace std *** 181,189 **** // codecvt inline template class __codecvt_abstract_base; - inline template class __codecvt_abstract_base; template class codecvt_byname; #ifdef _GLIBCPP_USE_WCHAR_T template class codecvt_byname; #endif --- 181,189 ---- // codecvt inline template class __codecvt_abstract_base; template class codecvt_byname; #ifdef _GLIBCPP_USE_WCHAR_T + inline template class __codecvt_abstract_base; template class codecvt_byname; #endif diff -Nrc3pad gcc-3.1/libstdc++-v3/src/localename.cc gcc-3.1.1/libstdc++-v3/src/localename.cc *** gcc-3.1/libstdc++-v3/src/localename.cc Fri Apr 19 07:59:19 2002 --- gcc-3.1.1/libstdc++-v3/src/localename.cc Sat May 18 14:37:48 2002 *************** namespace std *** 255,267 **** facet** __old = _M_facets; facet** __new; const size_t __new_size = __index + 4; ! try ! { __new = new facet*[__new_size]; } ! catch(...) ! { ! delete [] __new; ! __throw_exception_again; ! } for (size_t __i = 0; __i < _M_facets_size; ++__i) __new[__i] = _M_facets[__i]; for (size_t __i2 = _M_facets_size; __i2 < __new_size; ++__i2) --- 255,261 ---- facet** __old = _M_facets; facet** __new; const size_t __new_size = __index + 4; ! __new = new facet*[__new_size]; for (size_t __i = 0; __i < _M_facets_size; ++__i) __new[__i] = _M_facets[__i]; for (size_t __i2 = _M_facets_size; __i2 < __new_size; ++__i2) diff -Nrc3pad gcc-3.1/libstdc++-v3/src/misc-inst.cc gcc-3.1.1/libstdc++-v3/src/misc-inst.cc *** gcc-3.1/libstdc++-v3/src/misc-inst.cc Tue Apr 30 19:05:46 2002 --- gcc-3.1.1/libstdc++-v3/src/misc-inst.cc Mon May 27 15:07:11 2002 *************** *** 33,205 **** // #include - #include - #include - #include - #include - #include - #include - #include - #include #include #include ! #include ! #include ! ! // NB: Unnecessary if the .h headers already include these. ! #ifndef _GLIBCPP_FULLY_COMPLIANT_HEADERS ! #include ! #include ! #include ! #include ! #include ! #endif namespace std { - // streambuf - template class basic_streambuf; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_streambuf; - #endif - - // stringbuf - template class basic_stringbuf; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_stringbuf; - #endif - - // filebuf - template class basic_filebuf >; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_filebuf >; - #endif - - // basic_ios - template class basic_ios; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_ios; - #endif - - // iomanip - template class _Setfill; - template _Setfill setfill(char); - #ifdef _GLIBCPP_USE_WCHAR_T - template class _Setfill; - template _Setfill setfill(wchar_t); - #endif - - // istream - template class basic_istream; - template istream& ws(istream&); - template istream& operator>>(istream&, char&); - template istream& operator>>(istream&, unsigned char&); - template istream& operator>>(istream&, signed char&); - template istream& operator>>(istream&, char*); - template istream& operator>>(istream&, unsigned char*); - template istream& operator>>(istream&, signed char*); - - template istream& operator>>(istream&, _Setfill); - template istream& operator>>(istream&, _Setiosflags); - template istream& operator>>(istream&, _Resetiosflags); - template istream& operator>>(istream&, _Setbase); - template istream& operator>>(istream&, _Setprecision); - template istream& operator>>(istream&, _Setw); - - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_istream; - template wistream& ws(wistream&); - template wistream& operator>>(wistream&, wchar_t&); - template wistream& operator>>(wistream&, wchar_t*); - - template wistream& operator>>(wistream&, _Setfill); - template wistream& operator>>(wistream&, _Setiosflags); - template wistream& operator>>(wistream&, _Resetiosflags); - template wistream& operator>>(wistream&, _Setbase); - template wistream& operator>>(wistream&, _Setprecision); - template wistream& operator>>(wistream&, _Setw); - #endif - - // ostream - template class basic_ostream; - template ostream& endl(ostream&); - template ostream& ends(ostream&); - template ostream& flush(ostream&); - template ostream& operator<<(ostream&, char); - template ostream& operator<<(ostream&, unsigned char); - template ostream& operator<<(ostream&, signed char); - template ostream& operator<<(ostream&, const char*); - template ostream& operator<<(ostream&, const unsigned char*); - template ostream& operator<<(ostream&, const signed char*); - - template ostream& operator<<(ostream&, _Setfill); - template ostream& operator<<(ostream&, _Setiosflags); - template ostream& operator<<(ostream&, _Resetiosflags); - template ostream& operator<<(ostream&, _Setbase); - template ostream& operator<<(ostream&, _Setprecision); - template ostream& operator<<(ostream&, _Setw); - - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_ostream; - template wostream& endl(wostream&); - template wostream& ends(wostream&); - template wostream& flush(wostream&); - template wostream& operator<<(wostream&, wchar_t); - template wostream& operator<<(wostream&, char); - template wostream& operator<<(wostream&, const wchar_t*); - template wostream& operator<<(wostream&, const char*); - - template wostream& operator<<(wostream&, _Setfill); - template wostream& operator<<(wostream&, _Setiosflags); - template wostream& operator<<(wostream&, _Resetiosflags); - template wostream& operator<<(wostream&, _Setbase); - template wostream& operator<<(wostream&, _Setprecision); - template wostream& operator<<(wostream&, _Setw); - #endif - - - // iostream - template class basic_iostream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_iostream; - #endif - - // ifstream - template class basic_ifstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_ifstream; - #endif - - // ofstream - template class basic_ofstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_ofstream; - #endif - - // fstream - template class basic_fstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_fstream; - #endif - - // istringstream - template class basic_istringstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_istringstream; - #endif - - // ostringstream - template class basic_ostringstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_ostringstream; - #endif - - // stringstream - template class basic_stringstream; - #ifdef _GLIBCPP_USE_WCHAR_T - template class basic_stringstream; - #endif - // string related to iostreams template basic_istream& --- 33,45 ---- // #include #include #include ! #include ! #include namespace std { // string related to iostreams template basic_istream& *************** namespace std *** 228,233 **** --- 68,77 ---- getline(basic_istream&, wstring&); #endif + #if 1 + // XXX + // 2002-05-24 These are no longer needed and should be deleted. + // algorithm typedef _Char_traits_match > char_match; *************** namespace std *** 254,274 **** __uninitialized_copy_aux::const_iterator, string *> (vector::const_iterator, vector::const_iterator, string*, __false_type); - - template - streamsize - __copy_streambufs(basic_ios&, basic_streambuf*, - basic_streambuf*); - #ifdef _GLIBCPP_USE_WCHAR_T - template - streamsize - __copy_streambufs(basic_ios&, basic_streambuf*, - basic_streambuf*); - #endif - - using __gnu_cxx::stdio_filebuf; - template class stdio_filebuf; - #ifdef _GLIBCPP_USE_WCHAR_T - template class stdio_filebuf; #endif } //std --- 98,102 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/src/ostream-inst.cc gcc-3.1.1/libstdc++-v3/src/ostream-inst.cc *** gcc-3.1/libstdc++-v3/src/ostream-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/ostream-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,76 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + #include + + namespace std + { + // ostream + template class basic_ostream; + template ostream& endl(ostream&); + template ostream& ends(ostream&); + template ostream& flush(ostream&); + template ostream& operator<<(ostream&, char); + template ostream& operator<<(ostream&, unsigned char); + template ostream& operator<<(ostream&, signed char); + template ostream& operator<<(ostream&, const char*); + template ostream& operator<<(ostream&, const unsigned char*); + template ostream& operator<<(ostream&, const signed char*); + + template ostream& operator<<(ostream&, _Setfill); + template ostream& operator<<(ostream&, _Setiosflags); + template ostream& operator<<(ostream&, _Resetiosflags); + template ostream& operator<<(ostream&, _Setbase); + template ostream& operator<<(ostream&, _Setprecision); + template ostream& operator<<(ostream&, _Setw); + + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_ostream; + template wostream& endl(wostream&); + template wostream& ends(wostream&); + template wostream& flush(wostream&); + template wostream& operator<<(wostream&, wchar_t); + template wostream& operator<<(wostream&, char); + template wostream& operator<<(wostream&, const wchar_t*); + template wostream& operator<<(wostream&, const char*); + + template wostream& operator<<(wostream&, _Setfill); + template wostream& operator<<(wostream&, _Setiosflags); + template wostream& operator<<(wostream&, _Resetiosflags); + template wostream& operator<<(wostream&, _Setbase); + template wostream& operator<<(wostream&, _Setprecision); + template wostream& operator<<(wostream&, _Setw); + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/sstream-inst.cc gcc-3.1.1/libstdc++-v3/src/sstream-inst.cc *** gcc-3.1/libstdc++-v3/src/sstream-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/sstream-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,62 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + + namespace std + { + // stringbuf + template class basic_stringbuf; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_stringbuf; + #endif + + // istringstream + template class basic_istringstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_istringstream; + #endif + + // ostringstream + template class basic_ostringstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_ostringstream; + #endif + + // stringstream + template class basic_stringstream; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_stringstream; + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/streambuf-inst.cc gcc-3.1.1/libstdc++-v3/src/streambuf-inst.cc *** gcc-3.1/libstdc++-v3/src/streambuf-inst.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/src/streambuf-inst.cc Mon May 27 15:07:11 2002 *************** *** 0 **** --- 1,56 ---- + // Explicit instantiation file. + + // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // + // ISO C++ 14882: + // + + #include + #include + + namespace std + { + // streambuf + template class basic_streambuf; + #ifdef _GLIBCPP_USE_WCHAR_T + template class basic_streambuf; + #endif + + template + streamsize + __copy_streambufs(basic_ios&, basic_streambuf*, + basic_streambuf*); + #ifdef _GLIBCPP_USE_WCHAR_T + template + streamsize + __copy_streambufs(basic_ios&, basic_streambuf*, + basic_streambuf*); + #endif + } //std diff -Nrc3pad gcc-3.1/libstdc++-v3/src/strstream.cc gcc-3.1.1/libstdc++-v3/src/strstream.cc *** gcc-3.1/libstdc++-v3/src/strstream.cc Wed Jun 27 17:09:53 2001 --- gcc-3.1.1/libstdc++-v3/src/strstream.cc Sat Jun 8 15:15:43 2002 *************** *** 1,6 **** // strstream definitions -*- C++ -*- ! // Copyright (C) 2001 Free Software Foundation // // This file is part of GNU CC. // --- 1,6 ---- // strstream definitions -*- C++ -*- ! // Copyright (C) 2001, 2002 Free Software Foundation // // This file is part of GNU CC. // *************** *** 56,458 **** namespace std { ! ! // strstreambuf constructor, destructor. ! ! strstreambuf::strstreambuf(streamsize initial_capacity) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(true), _M_frozen(false), _M_constant(false) ! { ! streamsize n = max(initial_capacity, streamsize(16)); ! ! char* buf = _M_alloc(n); ! if (buf) { ! setp(buf, buf + n); ! setg(buf, buf, buf); } - } - - strstreambuf::strstreambuf(void* (*alloc_f)(size_t), void (*free_f)(void*)) - : _Base(), - _M_alloc_fun(alloc_f), _M_free_fun(free_f), - _M_dynamic(true), _M_frozen(false), _M_constant(false) - { - streamsize n = 16; ! char* buf = _M_alloc(n); ! if (buf) { ! setp(buf, buf + n); ! setg(buf, buf, buf); } - } - - strstreambuf::strstreambuf(char* get, streamsize n, char* put) - : _Base(), - _M_alloc_fun(0), _M_free_fun(0), - _M_dynamic(false), _M_frozen(false), _M_constant(false) - { - _M_setup(get, put, n); - } ! strstreambuf::strstreambuf(signed char* get, streamsize n, signed char* put) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(false), _M_frozen(false), _M_constant(false) ! { ! _M_setup(reinterpret_cast(get), reinterpret_cast(put), n); ! } ! strstreambuf::strstreambuf(unsigned char* get, streamsize n, ! unsigned char* put) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(false), _M_frozen(false), _M_constant(false) ! { ! _M_setup(reinterpret_cast(get), reinterpret_cast(put), n); ! } ! strstreambuf::strstreambuf(const char* get, streamsize n) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(false), _M_frozen(false), _M_constant(true) ! { ! _M_setup(const_cast(get), 0, n); ! } ! strstreambuf::strstreambuf(const signed char* get, streamsize n) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(false), _M_frozen(false), _M_constant(true) ! { ! _M_setup(reinterpret_cast(const_cast(get)), 0, n); ! } ! strstreambuf::strstreambuf(const unsigned char* get, streamsize n) ! : _Base(), ! _M_alloc_fun(0), _M_free_fun(0), ! _M_dynamic(false), _M_frozen(false), _M_constant(true) ! { ! _M_setup(reinterpret_cast(const_cast(get)), 0, n); ! } ! strstreambuf::~strstreambuf() ! { ! if (_M_dynamic && !_M_frozen) ! _M_free(eback()); ! } ! void strstreambuf::freeze(bool frozenflag) ! { ! if (_M_dynamic) ! _M_frozen = frozenflag; ! } ! char* strstreambuf::str() ! { ! freeze(true); ! return eback(); ! } ! int strstreambuf::pcount() const ! { ! return pptr() ? pptr() - pbase() : 0; ! } ! strstreambuf::int_type strstreambuf::overflow(int_type c) { ! if (c == traits_type::eof()) ! return traits_type::not_eof(c); ! // Try to expand the buffer. ! if (pptr() == epptr() && _M_dynamic && !_M_frozen && !_M_constant) { ! ptrdiff_t old_size = epptr() - pbase(); ! ptrdiff_t new_size = max(2 * old_size, ptrdiff_t(1)); ! char* buf = _M_alloc(new_size); ! if (buf) { ! memcpy(buf, pbase(), old_size); ! char* old_buffer = pbase(); ! bool reposition_get = false; ! ptrdiff_t old_get_offset; ! if (gptr() != 0) { ! reposition_get = true; ! old_get_offset = gptr() - eback(); } ! ! setp(buf, buf + new_size); ! pbump(old_size); ! ! if (reposition_get) ! setg(buf, buf + old_get_offset, buf + max(old_get_offset, old_size)); ! ! _M_free(old_buffer); ! } ! } ! ! if (pptr() != epptr()) { ! *pptr() = c; ! pbump(1); ! return c; } - else - return traits_type::eof(); - } ! strstreambuf::int_type strstreambuf::pbackfail(int_type c) ! { ! if (gptr() != eback()) { ! if (c == _Traits::eof()) { ! gbump(-1); ! return _Traits::not_eof(c); ! } ! else if (c == static_cast(gptr()[-1])) { // KLUDGE ! gbump(-1); ! return c; ! } ! else if (!_M_constant) { ! gbump(-1); ! *gptr() = c; ! return c; } } ! return _Traits::eof(); ! } ! ! strstreambuf::int_type strstreambuf::underflow() ! { ! if (gptr() == egptr() && pptr() && pptr() > egptr()) ! setg(eback(), gptr(), pptr()); ! if (gptr() != egptr()) ! return (unsigned char) *gptr(); ! else ! return _Traits::eof(); ! } ! basic_streambuf >* ! strstreambuf::setbuf(char*, streamsize) ! { ! return this; ! } ! strstreambuf::pos_type ! strstreambuf::seekoff(off_type off, ! ios_base::seekdir dir, ios_base::openmode mode) ! { ! bool do_get = false; ! bool do_put = false; ! if ((mode & (ios_base::in | ios_base::out)) == ! (ios_base::in | ios_base::out) && ! (dir == ios_base::beg || dir == ios_base::end)) ! do_get = do_put = true; ! else if (mode & ios_base::in) ! do_get = true; ! else if (mode & ios_base::out) ! do_put = true; ! // !gptr() is here because, according to D.7.1 paragraph 4, the seekable ! // area is undefined if there is no get area. ! if ((!do_get && !do_put) || (do_put && !pptr()) || !gptr()) ! return pos_type(off_type(-1)); ! char* seeklow = eback(); ! char* seekhigh = epptr() ? epptr() : egptr(); ! off_type newoff; ! switch(dir) { ! case ios_base::beg: ! newoff = 0; ! break; ! case ios_base::end: ! newoff = seekhigh - seeklow; ! break; ! case ios_base::cur: ! newoff = do_put ? pptr() - seeklow : gptr() - seeklow; ! break; ! default: ! return pos_type(off_type(-1)); } ! off += newoff; ! if (off < 0 || off > seekhigh - seeklow) ! return pos_type(off_type(-1)); ! if (do_put) { ! if (seeklow + off < pbase()) { ! setp(seeklow, epptr()); ! pbump(off); ! } ! else { ! setp(pbase(), epptr()); ! pbump(off - (pbase() - seeklow)); ! } ! } ! if (do_get) { ! if (off <= egptr() - seeklow) ! setg(seeklow, seeklow + off, egptr()); ! else if (off <= pptr() - seeklow) ! setg(seeklow, seeklow + off, pptr()); else ! setg(seeklow, seeklow + off, epptr()); } ! return pos_type(newoff); ! } ! ! strstreambuf::pos_type ! strstreambuf::seekpos(pos_type pos, ios_base::openmode mode) ! { ! return seekoff(pos - pos_type(off_type(0)), ios_base::beg, mode); ! } ! ! char* strstreambuf::_M_alloc(size_t n) ! { ! if (_M_alloc_fun) ! return static_cast(_M_alloc_fun(n)); ! else ! return new char[n]; ! } ! ! void strstreambuf::_M_free(char* p) ! { ! if (p) ! if (_M_free_fun) ! _M_free_fun(p); ! else ! delete[] p; ! } ! ! void strstreambuf::_M_setup(char* get, char* put, streamsize n) ! { ! if (get) { ! size_t N = n > 0 ? size_t(n) : n == 0 ? strlen(get) : size_t(INT_MAX); ! ! if (put) { ! setg(get, get, put); ! setp(put, put + N); ! } ! else { ! setg(get, get, get + N); ! } } - } ! //---------------------------------------------------------------------- ! // Class istrstream ! istrstream::istrstream(char* s) : basic_ios(), basic_istream(0), _M_buf(s, 0) ! { ! basic_ios::init(&_M_buf); ! } ! istrstream::istrstream(const char* s) : basic_ios(), basic_istream(0), _M_buf(s, 0) ! { ! basic_ios::init(&_M_buf); ! } ! istrstream::istrstream(char* s, streamsize n) : basic_ios(), basic_istream(0), _M_buf(s, n) ! { ! basic_ios::init(&_M_buf); ! } ! istrstream::istrstream(const char* s, streamsize n) : basic_ios(), basic_istream(0), _M_buf(s, n) ! { ! basic_ios::init(&_M_buf); ! } ! ! istrstream::~istrstream() {} ! strstreambuf* istrstream::rdbuf() const { ! return const_cast(&_M_buf); ! } ! char* istrstream::str() { return _M_buf.str(); } ! //---------------------------------------------------------------------- ! // Class ostrstream ! ostrstream::ostrstream() : basic_ios(), basic_ostream(0), _M_buf() ! { ! basic_ios::init(&_M_buf); ! } ! ostrstream::ostrstream(char* s, int n, ios_base::openmode mode) ! : basic_ios(), basic_ostream(0), _M_buf(s, n, mode & ios_base::app ? s + strlen(s) : s) ! { ! basic_ios::init(&_M_buf); ! } ! ! ostrstream::~ostrstream() {} ! strstreambuf* ostrstream::rdbuf() const ! { ! return const_cast(&_M_buf); ! } ! void ostrstream::freeze(bool freezeflag) ! { ! _M_buf.freeze(freezeflag); ! } ! char* ostrstream::str() ! { ! return _M_buf.str(); ! } ! int ostrstream::pcount() const ! { ! return _M_buf.pcount(); ! } ! //---------------------------------------------------------------------- ! // Class strstream ! strstream::strstream() : basic_ios(), basic_iostream(0), _M_buf() ! { ! basic_ios::init(&_M_buf); ! } ! strstream::strstream(char* s, int n, ios_base::openmode mode) ! : basic_ios(), basic_iostream(0), _M_buf(s, n, mode & ios_base::app ? s + strlen(s) : s) ! { ! basic_ios::init(&_M_buf); ! } ! ! strstream::~strstream() {} ! strstreambuf* strstream::rdbuf() const ! { ! return const_cast(&_M_buf); ! } ! void strstream::freeze(bool freezeflag) ! { ! _M_buf.freeze(freezeflag); ! } ! int strstream::pcount() const ! { ! return _M_buf.pcount(); ! } ! char* strstream::str() ! { ! return _M_buf.str(); ! } } // namespace std - - // Local Variables: - // mode:C++ - // End: --- 56,424 ---- namespace std { ! strstreambuf::strstreambuf(streamsize initial_capacity) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(true), ! _M_frozen(false), _M_constant(false) ! { ! _M_buf_size = _M_buf_size_opt = max(initial_capacity, streamsize(16)); ! _M_buf = _M_alloc(_M_buf_size); ! if (_M_buf) ! { ! setp(_M_buf, _M_buf + _M_buf_size); ! setg(_M_buf, _M_buf, _M_buf); ! } } ! strstreambuf::strstreambuf(void* (*alloc_f)(size_t), void (*free_f)(void*)) ! : _Base(), _M_alloc_fun(alloc_f), _M_free_fun(free_f), _M_dynamic(true), ! _M_frozen(false), _M_constant(false) ! { ! _M_buf_size = _M_buf_size_opt = 16; ! _M_buf = _M_alloc(_M_buf_size); ! if (_M_buf) ! { ! setp(_M_buf, _M_buf + _M_buf_size); ! setg(_M_buf, _M_buf, _M_buf); ! } } ! strstreambuf::strstreambuf(char* get, streamsize n, char* put) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(false) ! { _M_setup(get, put, n); } ! strstreambuf::strstreambuf(signed char* get, streamsize n, signed char* put) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(false) ! { _M_setup(reinterpret_cast(get), reinterpret_cast(put), n); } ! strstreambuf::strstreambuf(unsigned char* get, streamsize n, ! unsigned char* put) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(false) ! { _M_setup(reinterpret_cast(get), reinterpret_cast(put), n); } ! strstreambuf::strstreambuf(const char* get, streamsize n) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(true) ! { _M_setup(const_cast(get), 0, n); } ! strstreambuf::strstreambuf(const signed char* get, streamsize n) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(true) ! { _M_setup(reinterpret_cast(const_cast(get)), 0, n); } ! strstreambuf::strstreambuf(const unsigned char* get, streamsize n) ! : _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(false), ! _M_frozen(false), _M_constant(true) ! { _M_setup(reinterpret_cast(const_cast(get)), 0, n); } ! strstreambuf::~strstreambuf() ! { ! if (_M_dynamic && !_M_frozen) ! { ! char* p = this->eback(); ! _M_free(p); ! if (p == _M_buf) ! _M_buf = 0; ! } ! if (_M_buf) ! _M_free(_M_buf); ! } ! void ! strstreambuf::freeze(bool frozenflag) ! { ! if (_M_dynamic) ! _M_frozen = frozenflag; ! } ! char* ! strstreambuf::str() ! { ! freeze(true); ! return eback(); ! } ! int ! strstreambuf::pcount() const ! { return pptr() ? pptr() - pbase() : 0; } ! strstreambuf::int_type ! strstreambuf::overflow(int_type c) ! { ! if (c == traits_type::eof()) ! return traits_type::not_eof(c); ! ! // Try to expand the buffer. ! if (pptr() == epptr() && _M_dynamic && !_M_frozen && !_M_constant) ! { ! ptrdiff_t old_size = epptr() - pbase(); ! ptrdiff_t new_size = max(2 * old_size, ptrdiff_t(1)); ! ! char* buf = _M_alloc(new_size); ! if (buf) ! { ! memcpy(buf, pbase(), old_size); ! char* old_buffer = pbase(); ! bool reposition_get = false; ! ptrdiff_t old_get_offset; ! if (gptr() != 0) ! { ! reposition_get = true; ! old_get_offset = gptr() - eback(); ! } ! ! _M_buf = buf; ! _M_buf_size = _M_buf_size_opt = new_size; ! setp(buf, buf + new_size); ! pbump(old_size); ! if (reposition_get) ! setg(buf, buf + old_get_offset, buf + ! max(old_get_offset, old_size)); ! _M_free(old_buffer); ! } } ! ! if (pptr() != epptr()) ! { ! *pptr() = c; ! pbump(1); ! return c; ! } ! else ! return traits_type::eof(); } ! strstreambuf::int_type ! strstreambuf::pbackfail(int_type c) ! { ! if (gptr() != eback()) ! { ! if (c == _Traits::eof()) ! { ! gbump(-1); ! return _Traits::not_eof(c); ! } ! else if (c == static_cast(gptr()[-1])) ! { // KLUDGE ! gbump(-1); ! return c; ! } ! else if (!_M_constant) ! { ! gbump(-1); ! *gptr() = c; ! return c; ! } } + return _Traits::eof(); } ! strstreambuf::int_type ! strstreambuf::underflow() ! { ! if (gptr() == egptr() && pptr() && pptr() > egptr()) ! setg(eback(), gptr(), pptr()); ! ! if (gptr() != egptr()) ! return (unsigned char) *gptr(); ! else ! return _Traits::eof(); ! } ! basic_streambuf >* ! strstreambuf::setbuf(char*, streamsize) ! { return this; } ! strstreambuf::pos_type ! strstreambuf::seekoff(off_type off, ios_base::seekdir dir, ! ios_base::openmode mode) ! { ! bool do_get = false; ! bool do_put = false; ! if ((mode & (ios_base::in | ios_base::out)) ! == (ios_base::in | ios_base::out) && ! (dir == ios_base::beg || dir == ios_base::end)) ! do_get = do_put = true; ! else if (mode & ios_base::in) ! do_get = true; ! else if (mode & ios_base::out) ! do_put = true; ! // !gptr() is here because, according to D.7.1 paragraph 4, the seekable ! // area is undefined if there is no get area. ! if ((!do_get && !do_put) || (do_put && !pptr()) || !gptr()) ! return pos_type(off_type(-1)); ! char* seeklow = eback(); ! char* seekhigh = epptr() ? epptr() : egptr(); ! off_type newoff; ! switch (dir) ! { ! case ios_base::beg: ! newoff = 0; ! break; ! case ios_base::end: ! newoff = seekhigh - seeklow; ! break; ! case ios_base::cur: ! newoff = do_put ? pptr() - seeklow : gptr() - seeklow; ! break; ! default: ! return pos_type(off_type(-1)); ! } ! ! off += newoff; ! if (off < 0 || off > seekhigh - seeklow) ! return pos_type(off_type(-1)); ! if (do_put) ! { ! if (seeklow + off < pbase()) ! { ! setp(seeklow, epptr()); ! pbump(off); ! } ! else ! { ! setp(pbase(), epptr()); ! pbump(off - (pbase() - seeklow)); ! } ! } ! if (do_get) ! { ! if (off <= egptr() - seeklow) ! setg(seeklow, seeklow + off, egptr()); ! else if (off <= pptr() - seeklow) ! setg(seeklow, seeklow + off, pptr()); ! else ! setg(seeklow, seeklow + off, epptr()); ! } ! return pos_type(newoff); } ! strstreambuf::pos_type ! strstreambuf::seekpos(pos_type pos, ios_base::openmode mode) ! { return seekoff(pos - pos_type(off_type(0)), ios_base::beg, mode); } ! char* ! strstreambuf::_M_alloc(size_t n) ! { ! if (_M_alloc_fun) ! return static_cast(_M_alloc_fun(n)); else ! return new char[n]; } ! void ! strstreambuf::_M_free(char* p) ! { ! if (p) ! if (_M_free_fun) ! _M_free_fun(p); ! else ! delete[] p; } ! void ! strstreambuf::_M_setup(char* get, char* put, streamsize n) ! { ! if (get) ! { ! size_t N = n > 0 ? size_t(n) : n == 0 ? strlen(get) : size_t(INT_MAX); ! ! if (put) ! { ! setg(get, get, put); ! setp(put, put + N); ! } ! else ! setg(get, get, get + N); ! } ! } ! istrstream::istrstream(char* s) : basic_ios(), basic_istream(0), _M_buf(s, 0) ! { basic_ios::init(&_M_buf); } ! istrstream::istrstream(const char* s) : basic_ios(), basic_istream(0), _M_buf(s, 0) ! { basic_ios::init(&_M_buf); } ! istrstream::istrstream(char* s, streamsize n) : basic_ios(), basic_istream(0), _M_buf(s, n) ! { basic_ios::init(&_M_buf); } ! istrstream::istrstream(const char* s, streamsize n) : basic_ios(), basic_istream(0), _M_buf(s, n) ! { basic_ios::init(&_M_buf); } ! istrstream::~istrstream() { } ! strstreambuf* ! istrstream::rdbuf() const ! { return const_cast(&_M_buf); } ! char* ! istrstream::str() ! { return _M_buf.str(); } ! ostrstream::ostrstream() : basic_ios(), basic_ostream(0), _M_buf() ! { basic_ios::init(&_M_buf); } ! ostrstream::ostrstream(char* s, int n, ios_base::openmode mode) ! : basic_ios(), basic_ostream(0), _M_buf(s, n, mode & ios_base::app ? s + strlen(s) : s) ! { basic_ios::init(&_M_buf); } ! ostrstream::~ostrstream() {} ! strstreambuf* ! ostrstream::rdbuf() const ! { return const_cast(&_M_buf); } ! void ! ostrstream::freeze(bool freezeflag) ! { _M_buf.freeze(freezeflag); } ! char* ! ostrstream::str() ! { return _M_buf.str(); } ! int ! ostrstream::pcount() const ! { return _M_buf.pcount(); } ! strstream::strstream() : basic_ios(), basic_iostream(0), _M_buf() ! { basic_ios::init(&_M_buf); } ! strstream::strstream(char* s, int n, ios_base::openmode mode) ! : basic_ios(), basic_iostream(0), _M_buf(s, n, mode & ios_base::app ? s + strlen(s) : s) ! { basic_ios::init(&_M_buf); } ! strstream::~strstream() { } ! strstreambuf* ! strstream::rdbuf() const ! { return const_cast(&_M_buf); } ! void ! strstream::freeze(bool freezeflag) ! { _M_buf.freeze(freezeflag); } ! int ! strstream::pcount() const ! { return _M_buf.pcount(); } + char* + strstream::str() + { return _M_buf.str(); } } // namespace std diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc gcc-3.1.1/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc *** gcc-3.1/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc Sat May 12 16:51:41 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/17_intro/header_cstdlib.cc Fri Jun 28 08:22:42 2002 *************** *** 1,6 **** // 2000-01-01 bkoz ! // Copyright (C) 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 2000-01-01 bkoz ! // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** *** 26,37 **** void test01() { long a = std::abs(1L); ! ldiv_t b = std::div(2L, 1L); } void test02() { ! // Make sure size_t is in namespace std std::size_t i = 5; } --- 26,38 ---- void test01() { long a = std::abs(1L); ! std::div(2L, 1L); ! std::ldiv_t b; } void test02() { ! // Make sure size_t is in namespace std. std::size_t i = 5; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/17_intro/header_cwchar.cc gcc-3.1.1/libstdc++-v3/testsuite/17_intro/header_cwchar.cc *** gcc-3.1/libstdc++-v3/testsuite/17_intro/header_cwchar.cc Wed Jun 20 03:05:30 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/17_intro/header_cwchar.cc Fri Jun 28 08:22:42 2002 *************** *** 22,28 **** #include - int main(void) { // Make sure size_t is in namespace std --- 22,27 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/20_util/auto_ptr.cc gcc-3.1.1/libstdc++-v3/testsuite/20_util/auto_ptr.cc *** gcc-3.1/libstdc++-v3/testsuite/20_util/auto_ptr.cc Tue Aug 7 03:38:27 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/20_util/auto_ptr.cc Wed Jul 3 22:49:55 2002 *************** *** 1,4 **** ! // Copyright (C) 2000 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,4 ---- ! // Copyright (C) 2000, 2002 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** test07() *** 276,281 **** --- 276,296 ---- return 0; } + + // http://gcc.gnu.org/ml/libstdc++/2002-07/msg00024.html + struct Base{}; + struct Derived : public Base {}; + std::auto_ptr conversiontest08() + { return std::auto_ptr(new Derived); } + + void + test08() + { + std::auto_ptr ptr; + ptr = conversiontest08(); + } + + int main() { *************** main() *** 286,291 **** --- 301,307 ---- test05(); test06(); test07(); + test08(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc gcc-3.1.1/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc *** gcc-3.1/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc Wed Mar 13 06:28:21 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc Tue Jun 4 19:03:49 2002 *************** void test03() *** 201,211 **** --- 201,225 ---- } } + // http://gcc.gnu.org/ml/libstdc++/2002-06/msg00025.html + void test04() + { + bool test = true; + + std::string str01("portofino"); + + std::string::reverse_iterator i1 = str01.rbegin(); + std::string::reverse_iterator i2 = str01.rend(); + std::string str02(i1, i2); + VERIFY( str02 == "onifotrop" ); + } + int main() { __set_testsuite_memlimit(); test01(); test02(); test03(); + test04(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/21_strings/replace.cc gcc-3.1.1/libstdc++-v3/testsuite/21_strings/replace.cc *** gcc-3.1/libstdc++-v3/testsuite/21_strings/replace.cc Fri Apr 26 19:36:27 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/21_strings/replace.cc Sat May 18 20:52:51 2002 *************** test04() *** 154,164 **** --- 154,202 ---- VERIFY(str01 == "cyd"); } + // Some more tests for + // template + // string& replace(iterator it1, iterator it2, InputIter j1, InputIter j2) + void + test05() + { + bool test = true; + std::string str01 = "geogaddi"; + std::string str02; + + typedef std::string::iterator iterator; + typedef std::string::const_iterator const_iterator; + + iterator it1 = str01.begin(); + iterator it2 = str01.end(); + str02.replace(str02.begin(), str02.end(), it1, it2); + VERIFY(str02 == "geogaddi"); + + str02 = "boards"; + const_iterator c_it1 = str01.begin(); + const_iterator c_it2 = str01.end(); + str02.replace(str02.begin(), str02.end(), c_it1, c_it2); + VERIFY(str02 == "geogaddi"); + + str02 = "boards"; + const char* c_ptr1 = str01.c_str(); + const char* c_ptr2 = str01.c_str() + 8; + str02.replace(str02.begin(), str02.end(), c_ptr1, c_ptr2); + VERIFY(str02 == "geogaddi"); + + str02 = "boards"; + char* ptr1 = &*str01.begin(); + char* ptr2 = &*str01.end(); + str02.replace(str02.begin(), str02.end(), ptr1, ptr2); + VERIFY(str02 == "geogaddi"); + } + int main() { test01(); test02(); test03(); test04(); + test05(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc Fri Jun 28 08:22:42 2002 *************** void test02() *** 97,105 **** --- 97,121 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main () { test01(); test02(); + test03(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc Fri Feb 8 01:34:41 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/codecvt_members_wchar_t_char.cc Fri Jun 28 08:22:42 2002 *************** void test02() *** 128,133 **** --- 128,148 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif /* !defined(_GLIBCPP_USE_WCHAR_T) */ *************** int main () *** 136,141 **** --- 151,157 ---- #if _GLIBCPP_USE_WCHAR_T test01(); test02(); + test03(); #endif return 0; diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/collate_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/collate_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/collate_members_char.cc Sat Mar 16 23:00:03 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/collate_members_char.cc Fri Jun 28 08:22:42 2002 *************** void test03() *** 161,170 **** --- 161,187 ---- VERIFY( l1 != l2 ); } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test03(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); test03(); + test04(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc Sat Mar 16 23:00:03 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/collate_members_wchar_t.cc Fri Jun 28 08:22:42 2002 *************** void test03() *** 160,165 **** --- 160,181 ---- long l2 = col.hash(str2.c_str(), str2.c_str() + str2.size()); VERIFY( l1 != l2 ); } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test03(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 168,173 **** --- 184,190 ---- test01(); test02(); test03(); + test04(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_is_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_is_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_is_char.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_is_char.cc Fri Jun 28 08:22:42 2002 *************** *** 0 **** --- 1,275 ---- + // Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + // XXX This test (test02) is not working for non-glibc locale models. + // { dg-do run { xfail *-*-* } } + + typedef char char_type; + class gnu_ctype: public std::ctype { }; + + void test01() + { + bool test = true; + const char_type strlit00[] = "manilla, cebu, tandag PHILIPPINES"; + const char_type strlit01[] = "MANILLA, CEBU, TANDAG PHILIPPINES"; + const char_type strlit02[] = "manilla, cebu, tandag philippines"; + const char_type c00 = 'S'; + const char_type c10 = 's'; + const char_type c20 = '9'; + const char_type c30 = ' '; + const char_type c40 = '!'; + const char_type c50 = 'F'; + const char_type c60 = 'f'; + const char_type c70 = 'X'; + const char_type c80 = 'x'; + + gnu_ctype gctype; + char_type c100; + int len = std::char_traits::length(strlit00); + char_type c_array[len + 1]; + + // sanity check ctype_base::mask members + int i01 = std::ctype_base::space; + int i02 = std::ctype_base::upper; + int i03 = std::ctype_base::lower; + int i04 = std::ctype_base::digit; + int i05 = std::ctype_base::punct; + int i06 = std::ctype_base::alpha; + int i07 = std::ctype_base::xdigit; + int i08 = std::ctype_base::alnum; + int i09 = std::ctype_base::graph; + int i10 = std::ctype_base::print; + int i11 = std::ctype_base::cntrl; + int i12 = sizeof(std::ctype_base::mask); + VERIFY ( i01 != i02); + VERIFY ( i02 != i03); + VERIFY ( i03 != i04); + VERIFY ( i04 != i05); + VERIFY ( i05 != i06); + VERIFY ( i06 != i07); + VERIFY ( i07 != i08); + VERIFY ( i08 != i09); + VERIFY ( i09 != i10); + VERIFY ( i10 != i11); + VERIFY ( i11 != i01); + + // bool is(mask m, char_type c) const; + VERIFY( gctype.is(std::ctype_base::space, c30) ); + VERIFY( gctype.is(std::ctype_base::upper, c00) ); + VERIFY( gctype.is(std::ctype_base::lower, c10) ); + VERIFY( gctype.is(std::ctype_base::digit, c20) ); + VERIFY( gctype.is(std::ctype_base::punct, c40) ); + VERIFY( gctype.is(std::ctype_base::alpha, c50) ); + VERIFY( gctype.is(std::ctype_base::alpha, c60) ); + VERIFY( gctype.is(std::ctype_base::xdigit, c20) ); + VERIFY( !gctype.is(std::ctype_base::xdigit, c80) ); + VERIFY( gctype.is(std::ctype_base::alnum, c50) ); + VERIFY( gctype.is(std::ctype_base::alnum, c20) ); + VERIFY( gctype.is(std::ctype_base::graph, c40) ); + VERIFY( gctype.is(std::ctype_base::graph, c20) ); + + // const char* is(const char* low, const char* high, mask* vec) const + std::ctype_base::mask m00 = static_cast(0); + std::ctype_base::mask m01[3]; + std::ctype_base::mask m02[13]; + const char_type* cc0 = strlit00; + const char_type* cc1 = NULL; + const char_type* cc2 = NULL; + + cc0 = strlit00; + m01[0] = m00; + m01[1] = m00; + m01[2] = m00; + cc1 = gctype.is(cc0, cc0, m01); + VERIFY( cc1 == strlit00 ); + VERIFY( m01[0] == m00 ); + VERIFY( m01[1] == m00 ); + VERIFY( m01[2] == m00 ); + + cc0 = strlit00; + m01[0] = m00; + m01[1] = m00; + m01[2] = m00; + cc2 = gctype.is(cc0, cc0 + 3, m01); + VERIFY( cc2 == strlit00 + 3); + VERIFY( m01[0] != m00 ); + VERIFY( m01[1] != m00 ); + VERIFY( m01[2] != m00 ); + VERIFY( gctype.is(m01[0], cc0[0]) ); + VERIFY( gctype.is(m01[1], cc0[1]) ); + VERIFY( gctype.is(m01[2], cc0[2]) ); + + cc0 = strlit01; + cc1 = gctype.is(cc0, cc0 + 13, m02); + VERIFY( cc1 == strlit01 + 13); + VERIFY( m02[6] != m00 ); + VERIFY( m02[7] != m00 ); + VERIFY( m02[8] != m00 ); + VERIFY( m02[8] != m02[6] ); + VERIFY( m02[6] != m02[7] ); + VERIFY( static_cast(m02[6] & std::ctype_base::alnum) ); + VERIFY( static_cast(m02[6] & std::ctype_base::upper) ); + VERIFY( static_cast(m02[6] & std::ctype_base::alpha) ); + VERIFY( static_cast(m02[7] & std::ctype_base::punct) ); + VERIFY( static_cast(m02[8] & std::ctype_base::space) ); + VERIFY( gctype.is(m02[6], cc0[6]) ); + VERIFY( gctype.is(m02[7], cc0[7]) ); + VERIFY( gctype.is(m02[8], cc0[8]) ); + } + + // libstdc++/4456, libstdc++/4457, libstdc++/4458 + void test02() + { + using namespace std; + typedef ctype_base::mask mask; + typedef vector vector_type; + + bool test = true; + + // const int max = numeric_limits::max(); + const int max = 255; + const int ctype_mask_max = 10; + vector_type v_c(max); + vector_type v_de(max); + + // "C" + locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + for (int i = 0; i < max; ++i) + { + char_type c = static_cast(i); + mask mask_test = static_cast(0); + mask mask_is = static_cast(0); + for (int j = 0; j <= ctype_mask_max; ++j) + { + mask_test = static_cast(1 << j); + if (ctype_c.is(mask_test, c)) + mask_is |= mask_test; + } + v_c[i] = mask_is; + } + + // "de_DE" + locale loc_de("de_DE"); + const ctype& ctype_de = use_facet >(loc_de); + for (int i = 0; i < max; ++i) + { + char_type c = static_cast(i); + mask mask_test = static_cast(0); + mask mask_is = static_cast(0); + for (int j = 0; j <= ctype_mask_max; ++j) + { + mask_test = static_cast(1 << j); + if (ctype_de.is(mask_test, c)) + mask_is |= mask_test; + } + v_de[i] = mask_is; + } + + #if QUANNUM_VERBOSE_LYRICALLY_ADEPT_BAY_AREA_MCS_MODE + for (int i = 0; i < max; ++i) + { + char_type mark = v_c[i] == v_de[i] ? ' ' : '-'; + cout << i << ' ' << mark << ' ' << static_cast(i) << '\t' ; + cout << "v_c: " << setw(4) << v_c[i] << '\t'; + cout << "v_de: " << setw(4) << v_de[i] << endl; + } + cout << (v_c == v_de) << endl; + #endif + + VERIFY( v_c != v_de ); + } + + // Per Liboriussen + void test03() + { + bool test = true; + std::ctype_base::mask maskdata[256]; + for (int i = 0; i < 256; ++i) + maskdata[i] = std::ctype_base::alpha; + std::ctype* f = new std::ctype(maskdata); + std::locale global; + std::locale loc(global, f); + for (int i = 0; i < 256; ++i) + { + char_type ch = i; + VERIFY( std::isalpha(ch, loc) ); + } + } + + // libstdc++/5280 + void test04() + { + #ifdef _GLIBCPP_HAVE_SETENV + // Set the global locale to non-"C". + std::locale loc_de("de_DE"); + std::locale::global(loc_de); + + // Set LANG environment variable to de_DE. + const char* oldLANG = getenv("LANG"); + if (!setenv("LANG", "de_DE", 1)) + { + test01(); + test02(); + test03(); + setenv("LANG", oldLANG ? oldLANG : "", 1); + } + #endif + } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test05() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + + int main() + { + test01(); + test02(); + test03(); + test04(); + test05(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_is_wchar_t.cc Fri Jun 28 08:22:42 2002 *************** *** 0 **** --- 1,197 ---- + // Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + // XXX This test (test02) is not working for non-glibc locale models. + // { dg-do run { xfail *-*-* } } + + #ifdef _GLIBCPP_USE_WCHAR_T + typedef wchar_t char_type; + class gnu_ctype: public std::ctype { }; + + void test01() + { + bool test = true; + const char_type strlit00[] = L"manilla, cebu, tandag PHILIPPINES"; + const char_type strlit01[] = L"MANILLA, CEBU, TANDAG PHILIPPINES"; + const char_type strlit02[] = L"manilla, cebu, tandag philippines"; + const char_type c00 = L'S'; + const char_type c10 = L's'; + const char_type c20 = L'9'; + const char_type c30 = L' '; + const char_type c40 = L'!'; + const char_type c50 = L'F'; + const char_type c60 = L'f'; + const char_type c70 = L'X'; + const char_type c80 = L'x'; + + gnu_ctype gctype; + char_type c100; + int len = std::char_traits::length(strlit00); + char_type c_array[len + 1]; + + // sanity check ctype_base::mask members + int i01 = std::ctype_base::space; + int i02 = std::ctype_base::upper; + int i03 = std::ctype_base::lower; + int i04 = std::ctype_base::digit; + int i05 = std::ctype_base::punct; + int i06 = std::ctype_base::alpha; + int i07 = std::ctype_base::xdigit; + int i08 = std::ctype_base::alnum; + int i09 = std::ctype_base::graph; + int i10 = std::ctype_base::print; + int i11 = std::ctype_base::cntrl; + int i12 = sizeof(std::ctype_base::mask); + VERIFY ( i01 != i02); + VERIFY ( i02 != i03); + VERIFY ( i03 != i04); + VERIFY ( i04 != i05); + VERIFY ( i05 != i06); + VERIFY ( i06 != i07); + VERIFY ( i07 != i08); + VERIFY ( i08 != i09); + VERIFY ( i09 != i10); + VERIFY ( i10 != i11); + VERIFY ( i11 != i01); + + // bool is(mask m, char_type c) const; + VERIFY( gctype.is(std::ctype_base::space, c30) ); + VERIFY( gctype.is(std::ctype_base::upper, c00) ); + VERIFY( gctype.is(std::ctype_base::lower, c10) ); + VERIFY( gctype.is(std::ctype_base::digit, c20) ); + VERIFY( gctype.is(std::ctype_base::punct, c40) ); + VERIFY( gctype.is(std::ctype_base::alpha, c50) ); + VERIFY( gctype.is(std::ctype_base::alpha, c60) ); + VERIFY( gctype.is(std::ctype_base::xdigit, c20) ); + VERIFY( !gctype.is(std::ctype_base::xdigit, c80) ); + VERIFY( gctype.is(std::ctype_base::alnum, c50) ); + VERIFY( gctype.is(std::ctype_base::alnum, c20) ); + VERIFY( gctype.is(std::ctype_base::graph, c40) ); + VERIFY( gctype.is(std::ctype_base::graph, c20) ); + + // const char* is(const char* low, const char* high, mask* vec) const + std::ctype_base::mask m00 = static_cast(0); + std::ctype_base::mask m01[3]; + std::ctype_base::mask m02[13]; + const char_type* cc0 = strlit00; + const char_type* cc1 = NULL; + const char_type* cc2 = NULL; + + cc0 = strlit00; + m01[0] = m00; + m01[1] = m00; + m01[2] = m00; + cc1 = gctype.is(cc0, cc0, m01); + VERIFY( cc1 == strlit00 ); + VERIFY( m01[0] == m00 ); + VERIFY( m01[1] == m00 ); + VERIFY( m01[2] == m00 ); + + cc0 = strlit00; + m01[0] = m00; + m01[1] = m00; + m01[2] = m00; + cc2 = gctype.is(cc0, cc0 + 3, m01); + VERIFY( cc2 == strlit00 + 3); + #if 0 + VERIFY( m01[0] != m00 ); + VERIFY( m01[1] != m00 ); + VERIFY( m01[2] != m00 ); + VERIFY( gctype.is(m01[0], cc0[0]) ); + VERIFY( gctype.is(m01[1], cc0[1]) ); + VERIFY( gctype.is(m01[2], cc0[2]) ); + #endif + + cc0 = strlit01; + cc1 = gctype.is(cc0, cc0 + 13, m02); + VERIFY( cc1 == strlit01 + 13); + #if 0 + VERIFY( m02[6] != m00 ); + VERIFY( m02[7] != m00 ); + VERIFY( m02[8] != m00 ); + VERIFY( m02[8] != m02[6] ); + VERIFY( m02[6] != m02[7] ); + VERIFY( static_cast(m02[6] & std::ctype_base::alnum) ); + VERIFY( static_cast(m02[6] & std::ctype_base::upper) ); + VERIFY( static_cast(m02[6] & std::ctype_base::alpha) ); + VERIFY( static_cast(m02[7] & std::ctype_base::punct) ); + VERIFY( static_cast(m02[8] & std::ctype_base::space) ); + VERIFY( gctype.is(m02[6], cc0[6]) ); + VERIFY( gctype.is(m02[7], cc0[7]) ); + VERIFY( gctype.is(m02[8], cc0[8]) ); + #endif + } + + // libstdc++/5280 + void test04() + { + #ifdef _GLIBCPP_HAVE_SETENV + // Set the global locale to non-"C". + std::locale loc_de("de_DE"); + std::locale::global(loc_de); + + // Set LANG environment variable to de_DE. + const char* oldLANG = getenv("LANG"); + if (!setenv("LANG", "de_DE", 1)) + { + test01(); + setenv("LANG", oldLANG ? oldLANG : "", 1); + } + #endif + } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test05() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + #endif + + int main() + { + #ifdef _GLIBCPP_USE_WCHAR_T + test01(); + test04(); + test05(); + #endif + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_members_char.cc Wed Mar 13 06:45:31 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_members_char.cc Fri May 24 16:15:27 2002 *************** *** 30,239 **** // 22.2.1.3.2 ctype members #include - #include #include - // XXX This test (test02) is not working for non-glibc locale models. - // { dg-do run { xfail *-*-* } } - - class gnu_ctype: public std::ctype { }; - - void test01() - { - bool test = true; - const char strlit00[] = "manilla, cebu, tandag PHILIPPINES"; - const char strlit01[] = "MANILLA, CEBU, TANDAG PHILIPPINES"; - const char strlit02[] = "manilla, cebu, tandag philippines"; - const char c00 = 'S'; - const char c10 = 's'; - const char c20 = '9'; - const char c30 = ' '; - const char c40 = '!'; - const char c50 = 'F'; - const char c60 = 'f'; - const char c70 = 'X'; - const char c80 = 'x'; - - gnu_ctype gctype; - char c100; - int len = std::char_traits::length(strlit00); - char c_array[len + 1]; - - // sanity check ctype_base::mask members - int i01 = std::ctype_base::space; - int i02 = std::ctype_base::upper; - int i03 = std::ctype_base::lower; - int i04 = std::ctype_base::digit; - int i05 = std::ctype_base::punct; - int i06 = std::ctype_base::alpha; - int i07 = std::ctype_base::xdigit; - int i08 = std::ctype_base::alnum; - int i09 = std::ctype_base::graph; - int i10 = std::ctype_base::print; - int i11 = std::ctype_base::cntrl; - int i12 = sizeof(std::ctype_base::mask); - VERIFY ( i01 != i02); - VERIFY ( i02 != i03); - VERIFY ( i03 != i04); - VERIFY ( i04 != i05); - VERIFY ( i05 != i06); - VERIFY ( i06 != i07); - VERIFY ( i07 != i08); - VERIFY ( i08 != i09); - VERIFY ( i09 != i10); - VERIFY ( i10 != i11); - VERIFY ( i11 != i01); - - // bool is(mask m, char c) const; - VERIFY( gctype.is(std::ctype_base::space, c30) ); - VERIFY( gctype.is(std::ctype_base::upper, c00) ); - VERIFY( gctype.is(std::ctype_base::lower, c10) ); - VERIFY( gctype.is(std::ctype_base::digit, c20) ); - VERIFY( gctype.is(std::ctype_base::punct, c40) ); - VERIFY( gctype.is(std::ctype_base::alpha, c50) ); - VERIFY( gctype.is(std::ctype_base::alpha, c60) ); - VERIFY( gctype.is(std::ctype_base::xdigit, c20) ); - VERIFY( !gctype.is(std::ctype_base::xdigit, c80) ); - VERIFY( gctype.is(std::ctype_base::alnum, c50) ); - VERIFY( gctype.is(std::ctype_base::alnum, c20) ); - VERIFY( gctype.is(std::ctype_base::graph, c40) ); - VERIFY( gctype.is(std::ctype_base::graph, c20) ); - - // const char* is(const char* low, const char* high, mask* vec) const - std::ctype_base::mask m00 = static_cast(0); - std::ctype_base::mask m01[3]; - std::ctype_base::mask m02[13]; - const char* cc0 = strlit00; - const char* cc1 = NULL; - const char* cc2 = NULL; - - cc0 = strlit00; - m01[0] = m00; - m01[1] = m00; - m01[2] = m00; - cc1 = gctype.is(cc0, cc0, m01); - VERIFY( cc1 == strlit00 ); - VERIFY( m01[0] == m00 ); - VERIFY( m01[1] == m00 ); - VERIFY( m01[2] == m00 ); - - cc0 = strlit00; - m01[0] = m00; - m01[1] = m00; - m01[2] = m00; - cc2 = gctype.is(cc0, cc0 + 3, m01); - VERIFY( cc2 == strlit00 + 3); - VERIFY( m01[0] != m00 ); - VERIFY( m01[1] != m00 ); - VERIFY( m01[2] != m00 ); - VERIFY( gctype.is(m01[0], cc0[0]) ); - VERIFY( gctype.is(m01[1], cc0[1]) ); - VERIFY( gctype.is(m01[2], cc0[2]) ); - - cc0 = strlit01; - cc1 = gctype.is(cc0, cc0 + 13, m02); - VERIFY( cc1 == strlit01 + 13); - VERIFY( m02[6] != m00 ); - VERIFY( m02[7] != m00 ); - VERIFY( m02[8] != m00 ); - VERIFY( m02[8] != m02[6] ); - VERIFY( m02[6] != m02[7] ); - VERIFY( static_cast(m02[6] & std::ctype_base::alnum) ); - VERIFY( static_cast(m02[6] & std::ctype_base::upper) ); - VERIFY( static_cast(m02[6] & std::ctype_base::alpha) ); - VERIFY( static_cast(m02[7] & std::ctype_base::punct) ); - VERIFY( static_cast(m02[8] & std::ctype_base::space) ); - VERIFY( gctype.is(m02[6], cc0[6]) ); - VERIFY( gctype.is(m02[7], cc0[7]) ); - VERIFY( gctype.is(m02[8], cc0[8]) ); - - // char toupper(char c) const - c100 = gctype.toupper(c10); - VERIFY( c100 == c00 ); - - // char tolower(char c) const - c100 = gctype.tolower(c00); - VERIFY( c100 == c10 ); - - // char toupper(char* low, const char* hi) const - std::char_traits::copy(c_array, strlit02, len + 1); - gctype.toupper(c_array, c_array + len); - VERIFY( !std::char_traits::compare(c_array, strlit01, len - 1) ); - - // char tolower(char* low, const char* hi) const - std::char_traits::copy(c_array, strlit01, len + 1); - gctype.tolower(c_array, c_array + len); - VERIFY( !std::char_traits::compare(c_array, strlit02, len - 1) ); - - - #ifdef DEBUG_ASSERT - assert(test); - #endif - } - - // libstdc++/4456, libstdc++/4457, libstdc++/4458 - void test02() - { - using namespace std; - typedef ctype_base::mask mask; - typedef vector vector_type; - - bool test = true; - - // const int max = numeric_limits::max(); - const int max = 255; - const int ctype_mask_max = 10; - vector_type v_c(max); - vector_type v_de(max); - - // "C" - locale loc_c = locale::classic(); - const ctype& ctype_c = use_facet >(loc_c); - for (int i = 0; i < max; ++i) - { - char c = static_cast(i); - mask mask_test = static_cast(0); - mask mask_is = static_cast(0); - for (int j = 0; j <= ctype_mask_max; ++j) - { - mask_test = static_cast(1 << j); - if (ctype_c.is(mask_test, c)) - mask_is |= mask_test; - } - v_c[i] = mask_is; - } - - // "de_DE" - locale loc_de("de_DE"); - const ctype& ctype_de = use_facet >(loc_de); - for (int i = 0; i < max; ++i) - { - char c = static_cast(i); - mask mask_test = static_cast(0); - mask mask_is = static_cast(0); - for (int j = 0; j <= ctype_mask_max; ++j) - { - mask_test = static_cast(1 << j); - if (ctype_de.is(mask_test, c)) - mask_is |= mask_test; - } - v_de[i] = mask_is; - } - - #if QUANNUM_VERBOSE_LYRICALLY_ADEPT_BAY_AREA_MCS_MODE - for (int i = 0; i < max; ++i) - { - char mark = v_c[i] == v_de[i] ? ' ' : '-'; - cout << i << ' ' << mark << ' ' << static_cast(i) << '\t' ; - cout << "v_c: " << setw(4) << v_c[i] << '\t'; - cout << "v_de: " << setw(4) << v_de[i] << endl; - } - cout << (v_c == v_de) << endl; - #endif - - VERIFY( v_c != v_de ); - } - // Dietmar Kühl via Peter Schmid class comma_ctype: public std::ctype { --- 30,37 ---- *************** public: *** 243,290 **** { classic_table(); } }; - // Per Liboriussen - void test03() - { - bool test = true; - std::ctype_base::mask maskdata[256]; - for (int i = 0; i < 256; ++i) - maskdata[i] = std::ctype_base::alpha; - std::ctype* f = new std::ctype(maskdata); - std::locale global; - std::locale loc(global, f); - for (int i = 0; i < 256; ++i) - { - char ch = i; - VERIFY( std::isalpha(ch, loc) ); - } - } - - // libstdc++/5280 - void test04() - { - #ifdef _GLIBCPP_HAVE_SETENV - // Set the global locale to non-"C". - std::locale loc_de("de_DE"); - std::locale::global(loc_de); - - // Set LANG environment variable to de_DE. - const char* oldLANG = getenv("LANG"); - if (!setenv("LANG", "de_DE", 1)) - { - test01(); - test02(); - test03(); - setenv("LANG", oldLANG ? oldLANG : "", 1); - } - #endif - } - int main() { - test01(); - test02(); - test03(); - test04(); return 0; } --- 41,47 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_members_wchar_t.cc Fri May 24 16:15:27 2002 *************** *** 30,118 **** // 22.2.1.3.2 ctype members #include - // NB: Don't include any other headers in this file. #include #if _GLIBCPP_USE_WCHAR_T - class gnu_ctype: public std::ctype {}; - void test01() { ! bool test = true; ! typedef wchar_t char_type; ! ! const char_type strlit00[] = L"manilla, cebu, tandag PHILIPPINES"; ! const char_type strlit01[] = L"MANILLA, CEBU, TANDAG PHILIPPINES"; ! const char_type strlit02[] = L"manilla, cebu, tandag philippines"; ! const char_type c00 = L'S'; ! const char_type c10 = L's'; ! const char_type c20 = L'9'; ! const char_type c30 = L' '; ! const char_type c40 = L'!'; ! const char_type c50 = L'F'; ! const char_type c60 = L'f'; ! const char_type c70 = L'X'; ! const char_type c80 = L'x'; ! ! gnu_ctype gctype; ! char_type c100; ! int len = std::char_traits::length(strlit00); ! char_type c_array[len + 1]; ! ! // bool is(mask m, char_type c) const; ! VERIFY( gctype.is(std::ctype_base::space, c30) ); ! VERIFY( gctype.is(std::ctype_base::upper, c00) ); ! VERIFY( gctype.is(std::ctype_base::lower, c10) ); ! VERIFY( gctype.is(std::ctype_base::digit, c20) ); ! VERIFY( gctype.is(std::ctype_base::punct, c40) ); ! VERIFY( gctype.is(std::ctype_base::alpha, c50) ); ! VERIFY( gctype.is(std::ctype_base::alpha, c60) ); ! VERIFY( gctype.is(std::ctype_base::xdigit, c20) ); ! VERIFY( !gctype.is(std::ctype_base::xdigit, c80) ); ! VERIFY( gctype.is(std::ctype_base::alnum, c50) ); ! VERIFY( gctype.is(std::ctype_base::alnum, c20) ); ! VERIFY( gctype.is(std::ctype_base::graph, c40) ); ! VERIFY( gctype.is(std::ctype_base::graph, c20) ); ! ! // char_type toupper(char_type c) const ! c100 = gctype.toupper(c10); ! VERIFY( c100 == c00 ); ! ! // char_type tolower(char_type c) const ! c100 = gctype.tolower(c00); ! VERIFY( c100 == c10 ); ! ! // char_type toupper(char_type* low, const char_type* hi) const ! std::char_traits::copy(c_array, strlit02, len + 1); ! gctype.toupper(c_array, c_array + len); ! VERIFY( !std::char_traits::compare(c_array, strlit01, len - 1) ); ! ! // char_type tolower(char_type* low, const char_type* hi) const ! std::char_traits::copy(c_array, strlit01, len + 1); ! gctype.tolower(c_array, c_array + len); ! VERIFY( !std::char_traits::compare(c_array, strlit02, len - 1) ); ! ! #ifdef DEBUG_ASSERT ! assert(test); ! #endif ! } ! ! // libstdc++/5280 ! void test03() ! { ! #ifdef _GLIBCPP_HAVE_SETENV ! // Set the global locale to non-"C". ! std::locale loc_de("de_DE"); ! std::locale::global(loc_de); ! ! // Set LANG environment variable to de_DE. ! const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE", 1)) ! { ! test01(); ! setenv("LANG", oldLANG ? oldLANG : "", 1); ! } ! #endif } #endif /* !defined(_GLIBCPP_USE_WCHAR_T) */ --- 30,41 ---- // 22.2.1.3.2 ctype members #include #include #if _GLIBCPP_USE_WCHAR_T void test01() { ! // Nothing, right now. } #endif /* !defined(_GLIBCPP_USE_WCHAR_T) */ *************** int main() *** 120,126 **** { #if _GLIBCPP_USE_WCHAR_T test01(); - test03(); #endif return 0; --- 43,48 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_char.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_char.cc Fri May 24 16:15:27 2002 *************** *** 0 **** --- 1,103 ---- + // 2002-05-24 bkoz + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + // libstdc++/6701 + void test01() + { + using namespace std; + typedef char wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + basic_string wide("wibble"); + basic_string narrow("wibble"); + vector narrow_chars(wide.length() + 1); + + // narrow(charT c, char dfault) const + for (int i = 0; i < wide.length(); ++i) + { + char c = ctype_c.narrow(wide[i], dfault); + VERIFY( c == narrow[i] ); + } + + // narrow(const charT* low, const charT* high, char dfault, char* dest) const + ctype_c.narrow(&wide[0], &wide[wide.length()], dfault, &narrow_chars[0]); + VERIFY( narrow_chars[0] != dfault ); + for (int i = 0; i < wide.length(); ++i) + VERIFY( narrow_chars[i] == narrow[i] ); + } + + void test02() + { + using namespace std; + typedef char wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + // Construct non-asci string. + basic_string wide("wibble"); + wide += wide_type(1240); + wide += "kibble"; + basic_string narrow("wibble"); + narrow += char(1240); + narrow += "kibble"; + vector narrow_chars(wide.length() + 1); + + // narrow(charT c, char dfault) const + for (int i = 0; i < wide.length(); ++i) + { + char c = ctype_c.narrow(wide[i], dfault); + VERIFY( c == narrow[i] ); + } + + // narrow(const charT* low, const charT* high, char dfault, char* dest) const + ctype_c.narrow(&wide[0], &wide[wide.length()], dfault, &narrow_chars[0]); + VERIFY( narrow_chars[0] != dfault ); + for (int i = 0; i < wide.length(); ++i) + VERIFY( narrow_chars[i] == narrow[i] ); + } + + int main() + { + test01(); + test02(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_narrow_wchar_t.cc Mon May 27 11:50:17 2002 *************** *** 0 **** --- 1,107 ---- + // 2002-05-24 bkoz + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + #ifdef _GLIBCPP_USE_WCHAR_T + // libstdc++/6701 + void test01() + { + using namespace std; + typedef wchar_t wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + basic_string wide(L"wibble"); + basic_string narrow("wibble"); + vector narrow_chars(wide.length() + 1); + + // narrow(charT c, char dfault) const + for (int i = 0; i < wide.length(); ++i) + { + char c = ctype_c.narrow(wide[i], dfault); + VERIFY( c == narrow[i] ); + } + + // narrow(const charT* low, const charT* high, char dfault, char* dest) const + ctype_c.narrow(&wide[0], &wide[wide.length()], dfault, &narrow_chars[0]); + VERIFY( narrow_chars[0] != dfault ); + for (int i = 0; i < wide.length(); ++i) + VERIFY( narrow_chars[i] == narrow[i] ); + } + + void test02() + { + using namespace std; + typedef wchar_t wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + // Construct non-asci string. + basic_string wide(L"wibble"); + wide += wide_type(1240); + wide += L"kibble"; + basic_string narrow("wibble"); + narrow += dfault; + narrow += "kibble"; + vector narrow_chars(wide.length() + 1); + + // narrow(charT c, char dfault) const + for (int i = 0; i < wide.length(); ++i) + { + char c = ctype_c.narrow(wide[i], dfault); + VERIFY( c == narrow[i] ); + } + + // narrow(const charT* low, const charT* high, char dfault, char* dest) const + ctype_c.narrow(&wide[0], &wide[wide.length()], dfault, &narrow_chars[0]); + VERIFY( narrow_chars[0] != dfault ); + for (int i = 0; i < wide.length(); ++i) + VERIFY( narrow_chars[i] == narrow[i] ); + } + #endif + + int main() + { + #ifdef _GLIBCPP_USE_WCHAR_T + test01(); + test02(); + #endif + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_scan_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_scan_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_scan_char.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_scan_char.cc Sat May 18 14:42:49 2002 *************** *** 0 **** --- 1,348 ---- + // 2002-05-10 ghazi + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // { dg-do run } + + #include + #include + + typedef char char_type; + typedef std::char_traits traits_type; + class gnu_ctype: public std::ctype { }; + + // These two macros take a ctype mask, a string and a pointer within + // the string that the scan function should return, usually either the + // first or last character if the string contains identical values as + // below. + #define VERIFY_SCAN_IS(MASK, STRING, EXPECTED) \ + VERIFY(gctype.scan_is((MASK), (STRING), \ + (STRING) + traits_type::length(STRING)) == (EXPECTED)) + #define VERIFY_SCAN_NOT(MASK, STRING, EXPECTED) \ + VERIFY(gctype.scan_not((MASK), (STRING), \ + (STRING) + traits_type::length(STRING)) == (EXPECTED)) + + // Sanity check scan_is() and scan_not(). + void test01() + { + bool test = true; + + const char_type *const ca = "aaaaa"; + const char_type *const cz = "zzzzz"; + const char_type *const cA = "AAAAA"; + const char_type *const cZ = "ZZZZZ"; + const char_type *const c0 = "00000"; + const char_type *const c9 = "99999"; + const char_type *const cs = " "; + const char_type *const xf = "fffff"; + const char_type *const xF = "FFFFF"; + const char_type *const p1 = "!!!!!"; + const char_type *const p2 = "/////"; + + gnu_ctype gctype; + + // 'a' + VERIFY_SCAN_IS (std::ctype_base::alnum, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::alpha, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::cntrl, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::digit, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::graph, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::lower, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::print, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::punct, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::space, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::upper, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, ca, ca); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::digit, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::graph, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::print, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::space, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::upper, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, ca, ca+5); + + // 'z' + VERIFY_SCAN_IS (std::ctype_base::alnum, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::alpha, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::lower, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::print, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::punct, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::space, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cz, cz+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::digit, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::graph, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::print, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::space, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::upper, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cz, cz); + + // 'A' + VERIFY_SCAN_IS (std::ctype_base::alnum, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::alpha, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::lower, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::print, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::punct, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::space, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cA, cA); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::digit, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::graph, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::print, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::space, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::upper, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cA, cA+5); + + // 'Z' + VERIFY_SCAN_IS (std::ctype_base::alnum, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::alpha, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::lower, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::print, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::punct, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::space, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cZ, cZ+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::digit, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::graph, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::print, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::space, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::upper, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cZ, cZ); + + // '0' + VERIFY_SCAN_IS (std::ctype_base::alnum, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::alpha, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::digit, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::graph, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::lower, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::print, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::punct, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::space, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::upper, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, c0, c0); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::digit, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::graph, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::print, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::space, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::upper, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, c0, c0+5); + + // '9' + VERIFY_SCAN_IS (std::ctype_base::alnum, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::alpha, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::digit, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::graph, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::lower, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::print, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::punct, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::space, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::upper, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, c9, c9); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::digit, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::graph, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::print, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::space, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::upper, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, c9, c9+5); + + // ' ' + VERIFY_SCAN_IS (std::ctype_base::alnum, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::lower, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::print, cs, cs); + VERIFY_SCAN_IS (std::ctype_base::punct, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::space, cs, cs); + VERIFY_SCAN_IS (std::ctype_base::upper, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cs, cs+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::digit, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::graph, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::lower, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::print, cs, cs+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::space, cs, cs+5); + VERIFY_SCAN_NOT (std::ctype_base::upper, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cs, cs); + + // 'f' + VERIFY_SCAN_IS (std::ctype_base::alnum, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::alpha, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::cntrl, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::digit, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::graph, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::lower, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::print, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::punct, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::space, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::upper, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, xf, xf); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::digit, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::graph, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::print, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::space, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::upper, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, xf, xf+5); + + // 'F' + VERIFY_SCAN_IS (std::ctype_base::alnum, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::alpha, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::cntrl, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::digit, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::graph, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::lower, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::print, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::punct, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::space, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::upper, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::xdigit, xF, xF); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::digit, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::graph, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::print, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::space, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::upper, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, xF, xF+5); + + // '!' + VERIFY_SCAN_IS (std::ctype_base::alnum, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::digit, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::graph, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::lower, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::print, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::punct, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::space, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::upper, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, p1, p1+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::alpha, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::digit, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::lower, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::print, p1, p1+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, p1, p1+5); + VERIFY_SCAN_NOT (std::ctype_base::space, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::upper, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, p1, p1); + + // '/' + VERIFY_SCAN_IS (std::ctype_base::alnum, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::digit, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::graph, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::lower, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::print, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::punct, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::space, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::upper, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, p2, p2+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::alpha, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::digit, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::graph, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::print, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::space, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::upper, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, p2, p2); + } + + int main() + { + test01(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_scan_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_scan_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_scan_wchar_t.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_scan_wchar_t.cc Fri May 24 16:15:27 2002 *************** *** 0 **** --- 1,352 ---- + // 2002-05-10 ghazi + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // { dg-do run } + + #include + #include + + typedef wchar_t char_type; + typedef std::char_traits traits_type; + class gnu_ctype: public std::ctype { }; + + // These two macros take a ctype mask, a string and a pointer within + // the string that the scan function should return, usually either the + // first or last character if the string contains identical values as + // below. + #define VERIFY_SCAN_IS(MASK, STRING, EXPECTED) \ + VERIFY(gctype.scan_is((MASK), (STRING), \ + (STRING) + traits_type::length(STRING)) == (EXPECTED)) + #define VERIFY_SCAN_NOT(MASK, STRING, EXPECTED) \ + VERIFY(gctype.scan_not((MASK), (STRING), \ + (STRING) + traits_type::length(STRING)) == (EXPECTED)) + + #ifdef _GLIBCPP_USE_WCHAR_T + // Sanity check scan_is() and scan_not(). + void test01() + { + bool test = true; + + const char_type *const ca = L"aaaaa"; + const char_type *const cz = L"zzzzz"; + const char_type *const cA = L"AAAAA"; + const char_type *const cZ = L"ZZZZZ"; + const char_type *const c0 = L"00000"; + const char_type *const c9 = L"99999"; + const char_type *const cs = L" "; + const char_type *const xf = L"fffff"; + const char_type *const xF = L"FFFFF"; + const char_type *const p1 = L"!!!!!"; + const char_type *const p2 = L"/////"; + + gnu_ctype gctype; + + // 'a' + VERIFY_SCAN_IS (std::ctype_base::alnum, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::alpha, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::cntrl, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::digit, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::graph, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::lower, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::print, ca, ca); + VERIFY_SCAN_IS (std::ctype_base::punct, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::space, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::upper, ca, ca+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, ca, ca); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::digit, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::graph, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::print, ca, ca+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::space, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::upper, ca, ca); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, ca, ca+5); + + // 'z' + VERIFY_SCAN_IS (std::ctype_base::alnum, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::alpha, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::lower, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::print, cz, cz); + VERIFY_SCAN_IS (std::ctype_base::punct, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::space, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cz, cz+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cz, cz+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::digit, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::graph, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::print, cz, cz+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::space, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::upper, cz, cz); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cz, cz); + + // 'A' + VERIFY_SCAN_IS (std::ctype_base::alnum, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::alpha, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::lower, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::print, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::punct, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::space, cA, cA+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cA, cA); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cA, cA); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::digit, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::graph, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::print, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::space, cA, cA); + VERIFY_SCAN_NOT (std::ctype_base::upper, cA, cA+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cA, cA+5); + + // 'Z' + VERIFY_SCAN_IS (std::ctype_base::alnum, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::alpha, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::lower, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::print, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::punct, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::space, cZ, cZ+5); + VERIFY_SCAN_IS (std::ctype_base::upper, cZ, cZ); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cZ, cZ+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::digit, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::graph, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::print, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::space, cZ, cZ); + VERIFY_SCAN_NOT (std::ctype_base::upper, cZ, cZ+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cZ, cZ); + + // '0' + VERIFY_SCAN_IS (std::ctype_base::alnum, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::alpha, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::digit, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::graph, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::lower, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::print, c0, c0); + VERIFY_SCAN_IS (std::ctype_base::punct, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::space, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::upper, c0, c0+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, c0, c0); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::digit, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::graph, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::print, c0, c0+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::space, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::upper, c0, c0); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, c0, c0+5); + + // '9' + VERIFY_SCAN_IS (std::ctype_base::alnum, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::alpha, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::digit, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::graph, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::lower, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::print, c9, c9); + VERIFY_SCAN_IS (std::ctype_base::punct, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::space, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::upper, c9, c9+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, c9, c9); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::digit, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::graph, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::print, c9, c9+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::space, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::upper, c9, c9); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, c9, c9+5); + + // ' ' + VERIFY_SCAN_IS (std::ctype_base::alnum, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::digit, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::graph, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::lower, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::print, cs, cs); + VERIFY_SCAN_IS (std::ctype_base::punct, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::space, cs, cs); + VERIFY_SCAN_IS (std::ctype_base::upper, cs, cs+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, cs, cs+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::alpha, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::digit, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::graph, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::lower, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::print, cs, cs+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::space, cs, cs+5); + VERIFY_SCAN_NOT (std::ctype_base::upper, cs, cs); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, cs, cs); + + // 'f' + VERIFY_SCAN_IS (std::ctype_base::alnum, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::alpha, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::cntrl, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::digit, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::graph, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::lower, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::print, xf, xf); + VERIFY_SCAN_IS (std::ctype_base::punct, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::space, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::upper, xf, xf+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, xf, xf); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::digit, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::graph, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::print, xf, xf+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::space, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::upper, xf, xf); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, xf, xf+5); + + // 'F' + VERIFY_SCAN_IS (std::ctype_base::alnum, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::alpha, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::cntrl, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::digit, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::graph, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::lower, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::print, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::punct, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::space, xF, xF+5); + VERIFY_SCAN_IS (std::ctype_base::upper, xF, xF); + VERIFY_SCAN_IS (std::ctype_base::xdigit, xF, xF); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::alpha, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::digit, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::graph, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::print, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::space, xF, xF); + VERIFY_SCAN_NOT (std::ctype_base::upper, xF, xF+5); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, xF, xF+5); + + // '!' + VERIFY_SCAN_IS (std::ctype_base::alnum, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::digit, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::graph, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::lower, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::print, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::punct, p1, p1); + VERIFY_SCAN_IS (std::ctype_base::space, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::upper, p1, p1+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, p1, p1+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::alpha, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::digit, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::lower, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::print, p1, p1+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, p1, p1+5); + VERIFY_SCAN_NOT (std::ctype_base::space, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::upper, p1, p1); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, p1, p1); + + // '/' + VERIFY_SCAN_IS (std::ctype_base::alnum, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::alpha, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::cntrl, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::digit, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::graph, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::lower, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::print, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::punct, p2, p2); + VERIFY_SCAN_IS (std::ctype_base::space, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::upper, p2, p2+5); + VERIFY_SCAN_IS (std::ctype_base::xdigit, p2, p2+5); + + VERIFY_SCAN_NOT (std::ctype_base::alnum, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::alpha, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::cntrl, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::digit, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::graph, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::lower, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::print, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::punct, p2, p2+5); + VERIFY_SCAN_NOT (std::ctype_base::space, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::upper, p2, p2); + VERIFY_SCAN_NOT (std::ctype_base::xdigit, p2, p2); + } + #endif + + int main() + { + #ifdef _GLIBCPP_USE_WCHAR_T + test01(); + #endif + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_to_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_to_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_to_char.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_to_char.cc Fri Jun 28 08:22:42 2002 *************** *** 0 **** --- 1,140 ---- + // Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + + typedef char char_type; + class gnu_ctype: public std::ctype { }; + + void test01() + { + bool test = true; + const char_type strlit00[] = "manilla, cebu, tandag PHILIPPINES"; + const char_type strlit01[] = "MANILLA, CEBU, TANDAG PHILIPPINES"; + const char_type strlit02[] = "manilla, cebu, tandag philippines"; + const char_type c00 = 'S'; + const char_type c10 = 's'; + const char_type c20 = '9'; + const char_type c30 = ' '; + const char_type c40 = '!'; + const char_type c50 = 'F'; + const char_type c60 = 'f'; + const char_type c70 = 'X'; + const char_type c80 = 'x'; + + gnu_ctype gctype; + char_type c100; + int len = std::char_traits::length(strlit00); + char_type c_array[len + 1]; + + // sanity check ctype_base::mask members + int i01 = std::ctype_base::space; + int i02 = std::ctype_base::upper; + int i03 = std::ctype_base::lower; + int i04 = std::ctype_base::digit; + int i05 = std::ctype_base::punct; + int i06 = std::ctype_base::alpha; + int i07 = std::ctype_base::xdigit; + int i08 = std::ctype_base::alnum; + int i09 = std::ctype_base::graph; + int i10 = std::ctype_base::print; + int i11 = std::ctype_base::cntrl; + int i12 = sizeof(std::ctype_base::mask); + VERIFY ( i01 != i02); + VERIFY ( i02 != i03); + VERIFY ( i03 != i04); + VERIFY ( i04 != i05); + VERIFY ( i05 != i06); + VERIFY ( i06 != i07); + VERIFY ( i07 != i08); + VERIFY ( i08 != i09); + VERIFY ( i09 != i10); + VERIFY ( i10 != i11); + VERIFY ( i11 != i01); + + // char_type toupper(char_type c) const + c100 = gctype.toupper(c10); + VERIFY( c100 == c00 ); + + // char_type tolower(char_type c) const + c100 = gctype.tolower(c00); + VERIFY( c100 == c10 ); + + // char_type toupper(char_type* low, const char_type* hi) const + std::char_traits::copy(c_array, strlit02, len + 1); + gctype.toupper(c_array, c_array + len); + VERIFY( !std::char_traits::compare(c_array, strlit01, len - 1) ); + + // char_type tolower(char_type* low, const char_type* hi) const + std::char_traits::copy(c_array, strlit01, len + 1); + gctype.tolower(c_array, c_array + len); + VERIFY( !std::char_traits::compare(c_array, strlit02, len - 1) ); + } + + // libstdc++/5280 + void test04() + { + #ifdef _GLIBCPP_HAVE_SETENV + // Set the global locale to non-"C". + std::locale loc_de("de_DE"); + std::locale::global(loc_de); + + // Set LANG environment variable to de_DE. + const char* oldLANG = getenv("LANG"); + if (!setenv("LANG", "de_DE", 1)) + { + test01(); + setenv("LANG", oldLANG ? oldLANG : "", 1); + } + #endif + } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test05() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + + int main() + { + test01(); + test04(); + test05(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_to_wchar_t.cc Fri Jun 28 08:22:42 2002 *************** *** 0 **** --- 1,144 ---- + // Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + + #ifdef _GLIBCPP_USE_WCHAR_T + typedef wchar_t char_type; + class gnu_ctype: public std::ctype { }; + + void test01() + { + bool test = true; + const char_type strlit00[] = L"manilla, cebu, tandag PHILIPPINES"; + const char_type strlit01[] = L"MANILLA, CEBU, TANDAG PHILIPPINES"; + const char_type strlit02[] = L"manilla, cebu, tandag philippines"; + const char_type c00 = L'S'; + const char_type c10 = L's'; + const char_type c20 = L'9'; + const char_type c30 = L' '; + const char_type c40 = L'!'; + const char_type c50 = L'F'; + const char_type c60 = L'f'; + const char_type c70 = L'X'; + const char_type c80 = L'x'; + + gnu_ctype gctype; + char_type c100; + int len = std::char_traits::length(strlit00); + char_type c_array[len + 1]; + + // sanity check ctype_base::mask members + int i01 = std::ctype_base::space; + int i02 = std::ctype_base::upper; + int i03 = std::ctype_base::lower; + int i04 = std::ctype_base::digit; + int i05 = std::ctype_base::punct; + int i06 = std::ctype_base::alpha; + int i07 = std::ctype_base::xdigit; + int i08 = std::ctype_base::alnum; + int i09 = std::ctype_base::graph; + int i10 = std::ctype_base::print; + int i11 = std::ctype_base::cntrl; + int i12 = sizeof(std::ctype_base::mask); + VERIFY ( i01 != i02); + VERIFY ( i02 != i03); + VERIFY ( i03 != i04); + VERIFY ( i04 != i05); + VERIFY ( i05 != i06); + VERIFY ( i06 != i07); + VERIFY ( i07 != i08); + VERIFY ( i08 != i09); + VERIFY ( i09 != i10); + VERIFY ( i10 != i11); + VERIFY ( i11 != i01); + + // char_type toupper(char_type c) const + c100 = gctype.toupper(c10); + VERIFY( c100 == c00 ); + + // char_type tolower(char_type c) const + c100 = gctype.tolower(c00); + VERIFY( c100 == c10 ); + + // char_type toupper(char_type* low, const char_type* hi) const + std::char_traits::copy(c_array, strlit02, len + 1); + gctype.toupper(c_array, c_array + len); + VERIFY( !std::char_traits::compare(c_array, strlit01, len - 1) ); + + // char_type tolower(char_type* low, const char_type* hi) const + std::char_traits::copy(c_array, strlit01, len + 1); + gctype.tolower(c_array, c_array + len); + VERIFY( !std::char_traits::compare(c_array, strlit02, len - 1) ); + } + + // libstdc++/5280 + void test04() + { + #ifdef _GLIBCPP_HAVE_SETENV + // Set the global locale to non-"C". + std::locale loc_de("de_DE"); + std::locale::global(loc_de); + + // Set LANG environment variable to de_DE. + const char* oldLANG = getenv("LANG"); + if (!setenv("LANG", "de_DE", 1)) + { + test01(); + setenv("LANG", oldLANG ? oldLANG : "", 1); + } + #endif + } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test05() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + #endif + + int main() + { + #ifdef _GLIBCPP_USE_WCHAR_T + test01(); + test04(); + test05(); + #endif + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_widen_char.cc Fri May 24 16:15:27 2002 *************** *** 0 **** --- 1,67 ---- + // 2002-05-24 bkoz + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + void test01() + { + using namespace std; + typedef char wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + basic_string wide("drusilla, louvinia, bayard"); + basic_string narrow("drusilla, louvinia, bayard"); + vector wide_chars(narrow.length() + 1); + + // widen(char c) const + for (int i = 0; i < narrow.length(); ++i) + { + char c = ctype_c.widen(narrow[i]); + VERIFY( c == wide[i] ); + } + + // widen(const char* low, const char* high, charT* dest) const + ctype_c.widen(&narrow[0], &narrow[narrow.length()], &wide_chars[0]); + for (int i = 0; i < narrow.length(); ++i) + VERIFY( wide_chars[i] == wide[i] ); + } + + int main() + { + test01(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/ctype_widen_wchar_t.cc Mon May 27 11:50:17 2002 *************** *** 0 **** --- 1,71 ---- + // 2002-05-24 bkoz + + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // 22.2.1.3.2 ctype members + + #include + #include + #include + + #ifdef _GLIBCPP_USE_WCHAR_T + void test01() + { + using namespace std; + typedef wchar_t wide_type; + + bool test = true; + const char dfault = '?'; + const locale loc_c = locale::classic(); + const ctype& ctype_c = use_facet >(loc_c); + + basic_string wide(L"drusilla, louvinia, bayard"); + basic_string narrow("drusilla, louvinia, bayard"); + vector wide_chars(narrow.length() + 1); + + // widen(char c) const + for (int i = 0; i < narrow.length(); ++i) + { + char c = ctype_c.widen(narrow[i]); + VERIFY( c == wide[i] ); + } + + // widen(const char* low, const char* high, charT* dest) const + ctype_c.widen(&narrow[0], &narrow[narrow.length()], &wide_chars[0]); + for (int i = 0; i < narrow.length(); ++i) + VERIFY( wide_chars[i] == wide[i] ); + } + #endif + + int main() + { + #ifdef _GLIBCPP_USE_WCHAR_T + test01(); + #endif + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/messages_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/messages_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/messages_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/messages_members_char.cc Fri Jun 28 08:22:42 2002 *************** void test02() *** 99,107 **** --- 99,123 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); + test03(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc Wed Feb 20 00:58:15 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_get_members_char.cc Fri Jun 28 08:22:42 2002 *************** void test01() *** 41,47 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 41,47 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test01() *** 122,128 **** // now try with showbase, to get currency symbol in format iss.setf(ios_base::showbase); ! iss.str("7.200.000.000,00 DEM "); iterator_type is_it06(iss); string result6; ios_base::iostate err06 = ios_base::goodbit; --- 122,128 ---- // now try with showbase, to get currency symbol in format iss.setf(ios_base::showbase); ! iss.str("7.200.000.000,00 EUR "); iterator_type is_it06(iss); string result6; ios_base::iostate err06 = ios_base::goodbit; *************** void test01() *** 130,136 **** VERIFY( result6 == digits1 ); VERIFY( err06 == ios_base::eofbit ); ! iss.str("7.200.000.000,00 DEM "); // Extra space. iterator_type is_it07(iss); string result7; ios_base::iostate err07 = ios_base::goodbit; --- 130,136 ---- VERIFY( result6 == digits1 ); VERIFY( err06 == ios_base::eofbit ); ! iss.str("7.200.000.000,00 EUR "); // Extra space. iterator_type is_it07(iss); string result7; ios_base::iostate err07 = ios_base::goodbit; *************** void test01() *** 138,144 **** VERIFY( result7 == digits1 ); VERIFY( err07 == ios_base::goodbit ); ! iss.str("7.200.000.000,00 DM"); iterator_type is_it08(iss); string result8; ios_base::iostate err08 = ios_base::goodbit; --- 138,144 ---- VERIFY( result7 == digits1 ); VERIFY( err07 == ios_base::goodbit ); ! iss.str("7.200.000.000,00 \244"); iterator_type is_it08(iss); string result8; ios_base::iostate err08 = ios_base::goodbit; *************** void test02() *** 216,222 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 216,222 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test02() *** 236,248 **** const string empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000; // input less than frac_digits ! const long double digits4 = -1; iterator_type end; istringstream iss; --- 236,248 ---- const string empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000.0; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000.0; // input less than frac_digits ! const long double digits4 = -1.0; iterator_type end; istringstream iss; *************** void test04() *** 324,335 **** { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE", 1)) { test01(); test02(); --- 324,335 ---- { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE@euro"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE@euro. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE@euro", 1)) { test01(); test02(); *************** void test07() *** 546,551 **** --- 546,571 ---- VERIFY( val_b_ns == "123456" ); } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test08() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test05(); + test06(); + test07(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); *************** int main() *** 555,559 **** --- 575,580 ---- test05(); test06(); test07(); + test08(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc Wed Feb 20 00:58:16 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_get_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 42,48 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 42,48 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test01() *** 123,129 **** // now try with showbase, to get currency symbol in format iss.setf(ios_base::showbase); ! iss.str(L"7.200.000.000,00 DEM "); iterator_type is_it06(iss); wstring result6; ios_base::iostate err06 = ios_base::goodbit; --- 123,129 ---- // now try with showbase, to get currency symbol in format iss.setf(ios_base::showbase); ! iss.str(L"7.200.000.000,00 EUR "); iterator_type is_it06(iss); wstring result6; ios_base::iostate err06 = ios_base::goodbit; *************** void test01() *** 131,137 **** VERIFY( result6 == digits1 ); VERIFY( err06 == ios_base::eofbit ); ! iss.str(L"7.200.000.000,00 DEM "); // Extra space. iterator_type is_it07(iss); wstring result7; ios_base::iostate err07 = ios_base::goodbit; --- 131,137 ---- VERIFY( result6 == digits1 ); VERIFY( err06 == ios_base::eofbit ); ! iss.str(L"7.200.000.000,00 EUR "); // Extra space. iterator_type is_it07(iss); wstring result7; ios_base::iostate err07 = ios_base::goodbit; *************** void test01() *** 139,145 **** VERIFY( result7 == digits1 ); VERIFY( err07 == ios_base::goodbit ); ! iss.str(L"7.200.000.000,00 DM"); iterator_type is_it08(iss); wstring result8; ios_base::iostate err08 = ios_base::goodbit; --- 139,145 ---- VERIFY( result7 == digits1 ); VERIFY( err07 == ios_base::goodbit ); ! iss.str(L"7.200.000.000,00 \x20ac"); iterator_type is_it08(iss); wstring result8; ios_base::iostate err08 = ios_base::goodbit; *************** void test02() *** 218,224 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 218,224 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test02() *** 238,250 **** const wstring empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000; // input less than frac_digits ! const long double digits4 = -1; iterator_type end; wistringstream iss; --- 238,250 ---- const wstring empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000.0; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000.0; // input less than frac_digits ! const long double digits4 = -1.0; iterator_type end; wistringstream iss; *************** void test04() *** 326,337 **** { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE", 1)) { test01(); test02(); --- 326,337 ---- { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE@euro"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE@euro. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE@euro", 1)) { test01(); test02(); *************** void test07() *** 546,551 **** --- 546,571 ---- mg_b.get(ibeg_b_ns,iend_b_ns,intl,fmt_b_ns,err,val_b_ns); VERIFY( val_b_ns == L"123456" ); } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test08() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test05(); + test06(); + test07(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 558,563 **** --- 578,584 ---- test05(); test06(); test07(); + test08(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/money_put_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_put_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/money_put_members_char.cc Wed Mar 20 20:07:53 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_put_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 41,47 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 41,47 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test01() *** 97,108 **** oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); string result3 = oss.str(); ! VERIFY( result3 == "7.200.000.000,00 DEM "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); string result4 = oss.str(); ! VERIFY( result4 == "7.200.000.000,00 DM"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); --- 97,108 ---- oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); string result3 = oss.str(); ! VERIFY( result3 == "7.200.000.000,00 EUR "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); string result4 = oss.str(); ! VERIFY( result4 == "7.200.000.000,00 \244"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); *************** void test02() *** 175,181 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 175,181 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test02() *** 195,207 **** const string empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000; // input less than frac_digits ! const long double digits4 = -1; ostringstream oss; --- 195,207 ---- const string empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000.0; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000.0; // input less than frac_digits ! const long double digits4 = -1.0; ostringstream oss; *************** void test02() *** 228,239 **** oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); string result3 = oss.str(); ! VERIFY( result3 == "7.200.000.000,00 DEM "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); string result4 = oss.str(); ! VERIFY( result4 == "7.200.000.000,00 DM"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); --- 228,239 ---- oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); string result3 = oss.str(); ! VERIFY( result3 == "7.200.000.000,00 EUR "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); string result4 = oss.str(); ! VERIFY( result4 == "7.200.000.000,00 \244"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); *************** void test03() *** 256,262 **** const locale loc_c = locale::classic(); // woman, art, thief (stole the blues) const string str("1943 Janis Joplin"); ! const long double ld = 1943; const string x(str.size(), 'x'); // have to have allocated string! string res; --- 256,262 ---- const locale loc_c = locale::classic(); // woman, art, thief (stole the blues) const string str("1943 Janis Joplin"); ! const long double ld = 1943.0; const string x(str.size(), 'x'); // have to have allocated string! string res; *************** void test04() *** 288,299 **** { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE", 1)) { test01(); test02(); --- 288,299 ---- { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE@euro"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE@euro. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE@euro", 1)) { test01(); test02(); *************** void test06() *** 357,363 **** bool intl = false; ! long double val = 1e50L; const money_put& mp = use_facet >(loc); --- 357,363 ---- bool intl = false; ! long double val = 1.0e50L; const money_put& mp = use_facet >(loc); *************** void test06() *** 368,373 **** --- 368,392 ---- VERIFY( fmt ); } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test07() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test05(); + test06(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); *************** int main() *** 376,380 **** --- 395,400 ---- test04(); test05(); test06(); + test07(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc Wed Mar 20 20:07:54 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/money_put_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 42,48 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 42,48 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test01() *** 97,108 **** oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); wstring result3 = oss.str(); ! VERIFY( result3 == L"7.200.000.000,00 DEM "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); wstring result4 = oss.str(); ! VERIFY( result4 == L"7.200.000.000,00 DM"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); --- 97,108 ---- oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); wstring result3 = oss.str(); ! VERIFY( result3 == L"7.200.000.000,00 EUR "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); wstring result4 = oss.str(); ! VERIFY( result4 == L"7.200.000.000,00 \x20ac"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); *************** void test02() *** 175,181 **** locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); --- 175,181 ---- locale loc_c = locale::classic(); locale loc_hk("en_HK"); locale loc_fr("fr_FR@euro"); ! locale loc_de("de_DE@euro"); VERIFY( loc_c != loc_de ); VERIFY( loc_hk != loc_fr ); VERIFY( loc_hk != loc_de ); *************** void test02() *** 195,207 **** const wstring empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000; // input less than frac_digits ! const long double digits4 = -1; wostringstream oss; --- 195,207 ---- const wstring empty; // total EPA budget FY 2002 ! const long double digits1 = 720000000000.0; // est. cost, national missile "defense", expressed as a loss in USD 2001 ! const long double digits2 = -10000000000000.0; // input less than frac_digits ! const long double digits4 = -1.0; wostringstream oss; *************** void test02() *** 228,239 **** oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); wstring result3 = oss.str(); ! VERIFY( result3 == L"7.200.000.000,00 DEM "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); wstring result4 = oss.str(); ! VERIFY( result4 == L"7.200.000.000,00 DM"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); --- 228,239 ---- oss.str(empty); iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); wstring result3 = oss.str(); ! VERIFY( result3 == L"7.200.000.000,00 EUR "); oss.str(empty); iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); wstring result4 = oss.str(); ! VERIFY( result4 == L"7.200.000.000,00 \x20ac"); // intl and non-intl versions should be different. VERIFY( result3 != result4 ); *************** void test03() *** 256,262 **** const locale loc_c = locale::classic(); // woman, art, thief (stole the blues) const wstring str(L"1943 Janis Joplin"); ! const long double ld = 1943; const wstring x(str.size(), 'x'); // have to have allocated string! wstring res; --- 256,262 ---- const locale loc_c = locale::classic(); // woman, art, thief (stole the blues) const wstring str(L"1943 Janis Joplin"); ! const long double ld = 1943.0; const wstring x(str.size(), 'x'); // have to have allocated string! wstring res; *************** void test04() *** 288,299 **** { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE", 1)) { test01(); test02(); --- 288,299 ---- { #ifdef _GLIBCPP_HAVE_SETENV // Set the global locale to non-"C". ! std::locale loc_de("de_DE@euro"); std::locale::global(loc_de); ! // Set LANG environment variable to de_DE@euro. const char* oldLANG = getenv("LANG"); ! if (!setenv("LANG", "de_DE@euro", 1)) { test01(); test02(); *************** void test06() *** 357,363 **** bool intl = false; ! long double val = 1e50L; const money_put& mp = use_facet >(loc); --- 357,363 ---- bool intl = false; ! long double val = 1.0e50L; const money_put& mp = use_facet >(loc); *************** void test06() *** 367,372 **** --- 367,391 ---- mp.put(out,intl,fmt,'*',val); VERIFY( fmt ); } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test07() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test05(); + test06(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 378,383 **** --- 397,403 ---- test04(); test05(); test06(); + test07(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test02() *** 123,131 **** --- 123,147 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); + test03(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/moneypunct_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test02() *** 123,128 **** --- 123,143 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 130,135 **** --- 145,151 ---- #ifdef _GLIBCPP_USE_WCHAR_T test01(); test02(); + test03(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/num_get_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_get_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/num_get_members_char.cc Fri Apr 19 07:59:21 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_get_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 222,229 **** #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807; ! long long ll2 = -9223372036854775807; long long ll; iss.str("9.223.372.036.854.775.807"); --- 222,229 ---- #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807LL; ! long long ll2 = -9223372036854775807LL; long long ll; iss.str("9.223.372.036.854.775.807"); *************** void test02() *** 274,280 **** VERIFY( rem1 == " Elizabeth Durack" ); // 02 get(long double) ! long double ld = 0; err = goodbit; iter_type end2 = ng.get(str.begin(), str.end(), iss, err, ld); string rem2(end2, str.end()); --- 274,280 ---- VERIFY( rem1 == " Elizabeth Durack" ); // 02 get(long double) ! long double ld = 0.0; err = goodbit; iter_type end2 = ng.get(str.begin(), str.end(), iss, err, ld); string rem2(end2, str.end()); *************** void test05() *** 413,418 **** --- 413,436 ---- VERIFY( d == 1234.5 ); } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test06() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test04(); + test05(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); *************** int main() *** 420,425 **** --- 438,444 ---- test03(); test04(); test05(); + test06(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc Fri Apr 19 07:59:22 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_get_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 223,230 **** #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807; ! long long ll2 = -9223372036854775807; long long ll; iss.str(L"9.223.372.036.854.775.807"); --- 223,230 ---- #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807LL; ! long long ll2 = -9223372036854775807LL; long long ll; iss.str(L"9.223.372.036.854.775.807"); *************** void test02() *** 275,281 **** VERIFY( rem1 == L" Elizabeth Durack" ); // 02 get(long double) ! long double ld = 0; err = goodbit; iter_type end2 = ng.get(str.begin(), str.end(), iss, err, ld); wstring rem2(end2, str.end()); --- 275,281 ---- VERIFY( rem1 == L" Elizabeth Durack" ); // 02 get(long double) ! long double ld = 0.0; err = goodbit; iter_type end2 = ng.get(str.begin(), str.end(), iss, err, ld); wstring rem2(end2, str.end()); *************** void test05() *** 414,419 **** --- 414,437 ---- VERIFY( err == goodbit ); VERIFY( d == 1234.5 ); } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test06() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test04(); + test05(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 424,429 **** --- 442,448 ---- test03(); test04(); test05(); + test06(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 208,215 **** VERIFY( result1.find('x') == 1 ); #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807; ! long long ll2 = -9223372036854775807; oss.str(empty); oss.clear(); --- 208,215 ---- VERIFY( result1.find('x') == 1 ); #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807LL; ! long long ll2 = -9223372036854775807LL; oss.str(empty); oss.clear(); *************** void test02() *** 257,263 **** VERIFY( sanity1 == "1798" ); // 02 put(long double) ! const long double ld = 1798; res = x; iter_type ret2 = tp.put(res.begin(), oss, ' ', ld); string sanity2(res.begin(), ret2); --- 257,263 ---- VERIFY( sanity1 == "1798" ); // 02 put(long double) ! const long double ld = 1798.0; res = x; iter_type ret2 = tp.put(res.begin(), oss, ' ', ld); string sanity2(res.begin(), ret2); *************** void test03() *** 310,320 **** --- 310,337 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); test03(); + test04(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test01() *** 209,216 **** VERIFY( result1.find(L'x') == 1 ); #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807; ! long long ll2 = -9223372036854775807; oss.str(empty); oss.clear(); --- 209,216 ---- VERIFY( result1.find(L'x') == 1 ); #ifdef _GLIBCPP_USE_LONG_LONG ! long long ll1 = 9223372036854775807LL; ! long long ll2 = -9223372036854775807LL; oss.str(empty); oss.clear(); *************** void test02() *** 257,263 **** VERIFY( sanity1 == L"1798" ); // 02 put(long double) ! const long double ld = 1798; res = x; iter_type ret2 = tp.put(res.begin(), oss, L' ', ld); wstring sanity2(res.begin(), ret2); --- 257,263 ---- VERIFY( sanity1 == L"1798" ); // 02 put(long double) ! const long double ld = 1798.0; res = x; iter_type ret2 = tp.put(res.begin(), oss, L' ', ld); wstring sanity2(res.begin(), ret2); *************** void test03() *** 309,314 **** --- 309,330 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 317,322 **** --- 333,339 ---- test01(); test02(); test03(); + test04(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/numpunct_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test02() *** 101,109 **** --- 101,125 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); + test03(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/numpunct_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test02() *** 98,103 **** --- 98,118 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test03() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 105,110 **** --- 120,126 ---- #ifdef _GLIBCPP_USE_WCHAR_T test01(); test02(); + test03(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/time_get_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_get_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/time_get_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_get_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test07() *** 699,704 **** --- 699,724 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test08() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test04(); + test05(); + test06(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); *************** int main() *** 710,714 **** --- 730,735 ---- test06(); test07(); + test08(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_get_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test07() *** 698,703 **** --- 698,723 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test08() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + test03(); + test04(); + test05(); + test06(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 712,717 **** --- 732,738 ---- test06(); test07(); + test08(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc Fri Jun 28 08:22:43 2002 *************** void test03() *** 250,259 **** --- 250,276 ---- #endif } + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } + int main() { test01(); test02(); test03(); + test04(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc *** gcc-3.1/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc Fri Feb 1 00:24:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc Fri Jun 28 08:22:43 2002 *************** void test03() *** 251,256 **** --- 251,272 ---- } #endif } + + // http://gcc.gnu.org/ml/libstdc++/2002-05/msg00038.html + void test04() + { + bool test = true; + + const char* tentLANG = std::setlocale(LC_ALL, "ja_JP.eucjp"); + if (tentLANG != NULL) + { + std::string preLANG = tentLANG; + test01(); + test02(); + std::string postLANG = std::setlocale(LC_ALL, NULL); + VERIFY( preLANG == postLANG ); + } + } #endif int main() *************** int main() *** 259,264 **** --- 275,281 ---- test01(); test02(); test03(); + test04(); #endif return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/23_containers/bitset_ctor.cc gcc-3.1.1/libstdc++-v3/testsuite/23_containers/bitset_ctor.cc *** gcc-3.1/libstdc++-v3/testsuite/23_containers/bitset_ctor.cc Wed Feb 13 18:29:12 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/23_containers/bitset_ctor.cc Fri May 24 18:17:10 2002 *************** bool test01(void) *** 81,89 **** --- 81,126 ---- return test; } + // boundary condition: a zero-sized set + // libstdc++/6282 + bool test02(void) + { + using std::char_traits; using std::allocator; + bool test = true; + + std::bitset<0> z1; + VERIFY( z1.any() == false ); + + std::bitset<0> z2(12345); + VERIFY( z2.any() == false ); + + std::bitset<0> z3(std::string("10101010101")); + VERIFY( z3.any() == false ); + + try { + z1.set(0); + VERIFY( false ); + } + catch(std::out_of_range& fail) { + VERIFY( true ); + } + catch(...) { + VERIFY( false ); + } + + VERIFY( z1.to_ulong() == 0 ); + VERIFY( ( z1.to_string,allocator >().empty() ) ); + + #ifdef DEBUG_ASSERT + assert(test); + #endif + return test; + } + int main() { test01(); + test02(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/23_containers/vector_bool.cc gcc-3.1.1/libstdc++-v3/testsuite/23_containers/vector_bool.cc *** gcc-3.1/libstdc++-v3/testsuite/23_containers/vector_bool.cc Fri Mar 8 22:25:45 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/23_containers/vector_bool.cc Sat Jun 1 00:51:22 2002 *************** void test01() *** 29,36 **** --- 29,60 ---- ++i; } + // libstdc++/6886 + void test02() + { + typedef std::vector bvec; + int i, num = 0; + bvec v; + + v.resize(66); + + for (i = 0 ; i < 66 ; ++i) + v[i] = 0; + + v[1] = 1; + v[33] = 1; + v[49] = 1; + v[65] = 1; + + for (bvec::iterator j = v.begin() ; j != v.end() ; j++) + if (bool(*j)) ++num; + + VERIFY( num == 4 ); + } + int main() { test01(); + test02(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/26_numerics/fabs_inline.cc gcc-3.1.1/libstdc++-v3/testsuite/26_numerics/fabs_inline.cc *** gcc-3.1/libstdc++-v3/testsuite/26_numerics/fabs_inline.cc Thu May 24 18:38:20 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/26_numerics/fabs_inline.cc Fri Jun 28 08:22:44 2002 *************** *** 1,4 **** ! // Copyright (C) 1999 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,4 ---- ! // Copyright (C) 1999, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** int main () *** 32,37 **** double a = fabs (-2.4); realfn myfn = fabs; double b = myfn (-2.5); ! printf ("%f, %f, %p\n", a, b, myfn); return 0; } --- 32,37 ---- double a = fabs (-2.4); realfn myfn = fabs; double b = myfn (-2.5); ! std::printf ("%f, %f, %p\n", a, b, myfn); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc Wed Dec 12 20:23:30 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc Fri Jun 28 08:22:45 2002 *************** *** 1,6 **** // 1999-04-12 bkoz ! // Copyright (C) 1999, 2000 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 1999-04-12 bkoz ! // Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** bool test11() *** 500,506 **** // sanity check via 'C' library call char* err; ! long l = strtol(cstrlit, &err, 0); std::istringstream iss(cstrlit); iss.setf(std::ios::fmtflags(0), std::ios::basefield); --- 500,506 ---- // sanity check via 'C' library call char* err; ! long l = std::strtol(cstrlit, &err, 0); std::istringstream iss(cstrlit); iss.setf(std::ios::fmtflags(0), std::ios::basefield); diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/istream_seeks.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_seeks.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/istream_seeks.cc Tue Apr 23 21:02:41 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_seeks.cc Fri Jun 28 08:22:45 2002 *************** *** 1,6 **** // 2000-06-29 bkoz ! // Copyright (C) 2000, 2001 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,6 ---- // 2000-06-29 bkoz ! // Copyright (C) 2000, 2001, 2002 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** void test02() *** 108,114 **** std::fstream ofstrm; ofstrm.open("istream_seeks-3.txt", std::ios::out); if (!ofstrm) ! abort(); write_rewind(ofstrm); ofstrm.close(); --- 108,114 ---- std::fstream ofstrm; ofstrm.open("istream_seeks-3.txt", std::ios::out); if (!ofstrm) ! std::abort(); write_rewind(ofstrm); ofstrm.close(); diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/istream_sentry.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_sentry.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/istream_sentry.cc Tue Aug 7 03:38:33 2001 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/istream_sentry.cc Sat May 18 14:37:49 2002 *************** test02() *** 70,76 **** double x; // ios_base::eof == 2 ! while(in >> x) { ++i; if (i > 3) --- 70,76 ---- double x; // ios_base::eof == 2 ! while (in >> x) { ++i; if (i > 3) diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc Fri May 3 18:29:07 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/narrow_stream_objects.cc Fri May 17 11:43:43 2002 *************** void test07() *** 175,180 **** --- 175,197 ---- VERIFY( s == "test" ); } + // libstdc++/6648 + // Interactive tests: each one (run alone) must terminate upon a single '\n'. + void test08() + { + bool test = true; + char buff[2048]; + std::cout << "Enter name: "; + std::cin.getline(buff, 2048); + } + + void test09() + { + bool test = true; + std::cout << "Enter name: "; + std::cin.ignore(2048, '\n'); + } + int main() { *************** main() *** 186,190 **** --- 203,209 ---- // test05(); // test06(); // test07(); + // test08(); + // test09(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc Fri Jan 25 06:36:32 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/ostream_inserter_char.cc Fri May 24 15:57:47 2002 *************** void test07() *** 289,294 **** --- 289,333 ---- #endif } + void test08() + { + bool test = true; + char* pt = NULL; + + // 1 + std::ostringstream oss; + oss << pt; + VERIFY( oss.bad() ); + VERIFY( oss.str().size() == 0 ); + + oss.clear(); + oss << ""; + VERIFY( oss.good() ); + + #if _GLIBCPP_USE_WCHAR_T + // 2 + std::wostringstream woss; + woss << pt; + VERIFY( woss.bad() ); + VERIFY( woss.str().size() == 0 ); + + woss.clear(); + woss << ""; + VERIFY( woss.good() ); + + // 3 + wchar_t* wt = NULL; + woss.clear(); + woss << wt; + VERIFY( woss.bad() ); + VERIFY( woss.str().size() == 0 ); + + woss.clear(); + woss << L""; + VERIFY( woss.good() ); + #endif + } + int main() { test01(); *************** int main() *** 298,302 **** --- 337,342 ---- test05(); test06(); test07(); + test08(); return 0; } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc gcc-3.1.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc *** gcc-3.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc Wed Jan 23 01:12:10 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/27_io/ostream_inserter_other.cc Fri May 24 15:57:47 2002 *************** *** 1,7 **** // 1999-08-16 bkoz // 1999-11-01 bkoz ! // Copyright (C) 1999, 2000, 2001 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the --- 1,7 ---- // 1999-08-16 bkoz // 1999-11-01 bkoz ! // Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** test02() *** 67,73 **** f_out1 << strbuf01; state02 = f_out1.rdstate(); VERIFY( state01 != state02 ); ! VERIFY( (state02 & std::ios_base::failbit) != 0 ); // filebuf->filebuf std::ifstream f_in(name_01); --- 67,73 ---- f_out1 << strbuf01; state02 = f_out1.rdstate(); VERIFY( state01 != state02 ); ! VERIFY( (state02 & std::ios_base::badbit) != 0 ); // filebuf->filebuf std::ifstream f_in(name_01); diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/Makefile.in gcc-3.1.1/libstdc++-v3/testsuite/Makefile.in *** gcc-3.1/libstdc++-v3/testsuite/Makefile.in Tue Apr 2 02:47:07 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/Makefile.in Fri Jun 28 08:22:41 2002 *************** AS = @AS@ *** 68,76 **** ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@ AWK = @AWK@ BASIC_FILE_H = @BASIC_FILE_H@ - BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ - CATALOGS = @CATALOGS@ - CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCODECVT_C = @CCODECVT_C@ CCODECVT_H = @CCODECVT_H@ --- 68,73 ---- *************** CLOCALE_H = @CLOCALE_H@ *** 78,107 **** CMESSAGES_H = @CMESSAGES_H@ CPP = @CPP@ CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@ - CSHADOW_FLAGS = @CSHADOW_FLAGS@ CSTDIO_H = @CSTDIO_H@ CXX = @CXX@ CXXCPP = @CXXCPP@ C_INCLUDE_DIR = @C_INCLUDE_DIR@ - DATADIRNAME = @DATADIRNAME@ DEBUG_FLAGS = @DEBUG_FLAGS@ DLLTOOL = @DLLTOOL@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GCJ = @GCJ@ GCJFLAGS = @GCJFLAGS@ - GENCAT = @GENCAT@ - GLIBC21 = @GLIBC21@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@ - GMOFILES = @GMOFILES@ - GMSGFMT = @GMSGFMT@ - INSTOBJEXT = @INSTOBJEXT@ - INTLBISON = @INTLBISON@ - INTLLIBS = @INTLLIBS@ - INTLOBJS = @INTLOBJS@ - INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ - LIBICONV = @LIBICONV@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBMATHOBJS = @LIBMATHOBJS@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ --- 75,92 ---- *************** LIBUNWIND_FLAG = @LIBUNWIND_FLAG@ *** 112,133 **** LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ - MKINSTALLDIRS = @MKINSTALLDIRS@ - MSGFMT = @MSGFMT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ OPT_LDFLAGS = @OPT_LDFLAGS@ OS_INC_SRCDIR = @OS_INC_SRCDIR@ PACKAGE = @PACKAGE@ - POFILES = @POFILES@ - POSUB = @POSUB@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ STRIP = @STRIP@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ - USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_FLAGS = @WARN_FLAGS@ --- 97,113 ---- *************** gxx_include_dir = @gxx_include_dir@ *** 150,156 **** ifGNUmake = @ifGNUmake@ libio_la = @libio_la@ libtool_VERSION = @libtool_VERSION@ - release_VERSION = @release_VERSION@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = foreign dejagnu --- 130,135 ---- diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/backward/strstream_members.cc gcc-3.1.1/libstdc++-v3/testsuite/backward/strstream_members.cc *** gcc-3.1/libstdc++-v3/testsuite/backward/strstream_members.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/backward/strstream_members.cc Sat Jun 8 15:15:44 2002 *************** *** 0 **** --- 1,40 ---- + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // backward strstream members + + #include + #include + + // { dg-options "-Wno-deprecated" } + + int test01() + { + strstream s; + for (unsigned i=0 ; i!= 1000 ; ++i) + s << i << std::endl; + s << std::ends; + + return 0; + } + + int main() + { + test01(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/ext/hash_map.cc gcc-3.1.1/libstdc++-v3/testsuite/ext/hash_map.cc *** gcc-3.1/libstdc++-v3/testsuite/ext/hash_map.cc Thu Jan 1 00:00:00 1970 --- gcc-3.1.1/libstdc++-v3/testsuite/ext/hash_map.cc Thu Jul 4 00:48:50 2002 *************** *** 0 **** --- 1,102 ---- + // Copyright (C) 2002 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 2, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING. If not, write to the Free + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + + // hash_map (SGI extension) + + #include + #include + #include + #include + + using namespace std; + using namespace __gnu_cxx; + + namespace __gnu_cxx + { + inline size_t hash_string(const char* s) + { + unsigned long h; + for (h=0; *s; ++s) { + h = 5*h + *s; + } + return size_t(h); + } + + template struct hash + { + size_t operator()(const T *const & s) const + { return reinterpret_cast(s); } + }; + + template<> struct hash + { + size_t operator()(const string &s) const { return hash_string(s.c_str()); } + }; + + template<> struct hash + { + size_t operator()(const string &s) const { return hash_string(s.c_str()); } + }; + + template struct hash > + { + hash __fh; + hash __sh; + size_t operator()(const pair &p) const { + return __fh(p.first) ^ __sh(p.second); + } + }; + } + + + const int Size = 5; + + void test01() + { + bool test = true; + + for (int i = 0; i < 10; i++) + { + hash_map a; + hash_map b; + + vector > contents (Size); + for (int j = 0; j < Size; j++) + { + string s; + for (int k = 0; k < 10; k++) + { + s += 'a' + (rand() % 26); + } + contents[j] = make_pair(s,j); + } + for (int j = 0; j < Size; j++) + { + a[contents[j].first] = contents[j].second; + int k = Size - 1 - j; + b[contents[k].first] = contents[k].second; + } + VERIFY( a == b ); + } + } + + int main() + { + test01(); + return 0; + } diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp gcc-3.1.1/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp *** gcc-3.1/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Wed May 8 23:18:39 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Wed May 29 10:59:21 2002 *************** proc libstdc++-v3-init { args } { *** 119,125 **** } } ! if { [target_info needs_status_wrapper]!="" && ![info exists gluefile] } { set gluefile ${objdir}/testglue.o; set result [build_wrapper $gluefile]; if { $result != "" } { --- 119,126 ---- } } ! if { [target_info needs_status_wrapper]!=""} { ! file delete ${objdir}/testglue.o; set gluefile ${objdir}/testglue.o; set result [build_wrapper $gluefile]; if { $result != "" } { diff -Nrc3pad gcc-3.1/libstdc++-v3/testsuite/testsuite_hooks.h gcc-3.1.1/libstdc++-v3/testsuite/testsuite_hooks.h *** gcc-3.1/libstdc++-v3/testsuite/testsuite_hooks.h Thu Jan 17 23:37:43 2002 --- gcc-3.1.1/libstdc++-v3/testsuite/testsuite_hooks.h Thu May 23 17:01:30 2002 *************** void *** 81,105 **** __set_testsuite_memlimit(float __size = MEMLIMIT_MB) { struct rlimit r; ! r.rlim_cur = (rlim_t)(__size * 1048576); // Heap size, seems to be common. #if _GLIBCPP_HAVE_MEMLIMIT_DATA setrlimit(RLIMIT_DATA, &r); #endif // Resident set size. #if _GLIBCPP_HAVE_MEMLIMIT_RSS setrlimit(RLIMIT_RSS, &r); #endif // Mapped memory (brk + mmap). #if _GLIBCPP_HAVE_MEMLIMIT_VMEM setrlimit(RLIMIT_VMEM, &r); #endif // Virtual memory. #if _GLIBCPP_HAVE_MEMLIMIT_AS setrlimit(RLIMIT_AS, &r); #endif } --- 81,113 ---- __set_testsuite_memlimit(float __size = MEMLIMIT_MB) { struct rlimit r; ! rlim_t limit = (rlim_t)(__size * 1048576); // Heap size, seems to be common. #if _GLIBCPP_HAVE_MEMLIMIT_DATA + getrlimit(RLIMIT_DATA, &r); + r.rlim_cur = limit; setrlimit(RLIMIT_DATA, &r); #endif // Resident set size. #if _GLIBCPP_HAVE_MEMLIMIT_RSS + getrlimit(RLIMIT_RSS, &r); + r.rlim_cur = limit; setrlimit(RLIMIT_RSS, &r); #endif // Mapped memory (brk + mmap). #if _GLIBCPP_HAVE_MEMLIMIT_VMEM + getrlimit(RLIMIT_VMEM, &r); + r.rlim_cur = limit; setrlimit(RLIMIT_VMEM, &r); #endif // Virtual memory. #if _GLIBCPP_HAVE_MEMLIMIT_AS + getrlimit(RLIMIT_AS, &r); + r.rlim_cur = limit; setrlimit(RLIMIT_AS, &r); #endif }