2011-06-27  Release Manager

	* GCC 4.6.1 released.

2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	Backport from mainline:
	2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/48135
	* configure.ac (quadmath_use_symver): Handle --disable-symvers.
	* configure: Regenerate.

2011-03-26  Jakub Jelinek  <jakub@redhat.com>

	Backport from mainline
	2011-03-25  Jakub Jelinek  <jakub@redhat.com>

	* printf/printf_fp.c (__quadmath_printf_fp): Use memcpy instead of
	mempcpy.

2011-03-25  Release Manager

	* GCC 4.6.0 released.

2011-02-28  Jakub Jelinek  <jakub@redhat.com>

	* printf/quadmath-printf.c (quadmath_snprintf): Make sure
	that for size > 0 str is always zero terminated.

2011-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/47827
	* printf/quadmath-printf.h (NAN): Redefine to __builtin_nanf ("").

2011-02-17  Jakub Jelinek  <jakub@redhat.com>

	* libquadmath.texi (FLT128_DIG, FLT128_MIN_10_EXP,
	FLT128_MAX_10_EXP): Document.
	(strtoflt128): Remove obsolete comment.
	* configure.ac (HAVE_STRTOULL): New check.
	* printf/gmp-impl.h (mpn_construct_float128): New prototype,
	define.
	* printf/mul_n.c: Include <config.h>.
	* printf/add_n.c: Likewise.
	* printf/cmp.c: Likewise.
	* printf/fpioconst.c: Likewise.
	* printf/mul_1.c: Likewise.
	* printf/rshift.c: Likewise.
	* printf/lshift.c: Likewise.
	* printf/submul_1.c: Likewise.
	* printf/sub_n.c: Likewise.
	* printf/divrem.c: Likewise.
	* printf/addmul_1.c: Likewise.
	* printf/mul.c: Likewise.
	* printf/quadmath-printf.h (isupper, isdigit, tolower): Change
	to avoid evaluating argument multiple times.
	(isxdigit): Redefine.
	* strtod/strtoflt128.c: New file.
	* strtod/strtod_l.c: New file.
	* strtod/mpn2flt128.c: New file.
	* strtod/grouping.h: New file.
	* strtod/tens_in_limb.c: New file.
	* gdtoa/arith.h: Removed.
	* gdtoa/gd_qnan.h: Removed.
	* gdtoa/gdtoa_fltrnds.h: Removed.
	* gdtoa/gdtoa.h: Removed.
	* gdtoa/gdtoaimp.h: Removed.
	* gdtoa/gethex.c: Removed.
	* gdtoa/gmisc.c: Removed.
	* gdtoa/hd_init.c: Removed.
	* gdtoa/hexnan.c: Removed.
	* gdtoa/makefile: Removed.
	* gdtoa/misc.c: Removed.
	* gdtoa/README.gdtoa: Removed.
	* gdtoa/smisc.c: Removed.
	* gdtoa/strtodg.c: Removed.
	* gdtoa/strtopQ.c: Removed.
	* gdtoa/sum.c: Removed.
	* quadmath.h (FLT128_DIG, FLT128_MIN_10_EXP, FLT128_MAX_10_EXP):
	Define.
	* Makefile.am (libquadmath_la_SOURCES): Remove gdtoa/*, add
	strtod/strtoflt128.c, strtod/mpn2flt128.c and strtod/tens_in_limb.c.
	* config.h.in: Regenerated.
	* configure: Regenerated.
	* Makefile.in: Regenerated.

2011-02-16  Jakub Jelinek  <jakub@redhat.com>

	* printf/quadmath-printf.c: Also check __GLIBC__ when checking
	whether workarounds for printf hook handling should be added.

	* configure.ac: Check for locale.h too.
	(USE_LOCALE_SUPPORT): Remove check.
	(USE_NL_LANGINFO, USE_NL_LANGINFO_WC, USE_LOCALECONV): New checks.
	(USE_I18_NUMBER_H): Check also for _NL_CTYPE_MB_CUR_MAX.
	* printf/printf_fphex.c (__quadmath_printf_fphex): Use nl_langinfo
	or localeconv for narrow version and nl_langinfo if USE_NL_LANGINFO_WC
	for wide version.
	* printf/quadmath-printf.h: Include locale.h if HAVE_LOCALE_H.
	* printf/printf_fp.c (USE_I18N_NUMBER_H): Don't define to 0.
	(__quadmath_printf_fp): Use nl_langinfo or localeconv for narrow
	version and nl_langinfo if USE_NL_LANGINFO_WC for wide version.
	Guard nl_langinfo (_NL_CTYPE_MB_CUR_MAX) use with
	USE_I18N_NUMBER_H #ifdef.
	* configure: Regenerated.
	* config.h.in: Regenerated.

2011-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/47736
	* configure.ac (HAVE_PRINTF_HOOKS): Test if printf_info struct has
	user field.
	* printf/quadmath-printf.c (quadmath_snprintf): Clear whole info
	field instead of setting individual fields to 0.  Don't set info.user
	to -1.
	* configure: Regenerated.

	* configure.ac (HAVE_HIDDEN_VISIBILITY): Test with -Werror in CFLAGS.
	* printf/printf_fp.c: Don't include <alloca.h>.
	* printf/quadmath-printf.h (_itoa): Redefine to __quadmath_itoa.
	* configure: Regenerated.

	PR fortran/47642
	* libquadmath.texi (quadmath_snprintf): Document.
	(quadmath_flt128tostr): Remove.
	* Makefile.am (libquadmath_la_SOURCES): Add printf/*.c.
	Remove  quadmath_io.c, gdtoa/gdtoa.c, gdtoa/g__fmt.c,
	gdtoa/g_Qfmt.c, gdtoa/dmisc.c and gdtoa/ulp.c.
	* quadmath.h (quadmath_snprintf): New prototype.
	(quadmath_flt128tostr): Remove.
	* quadmath_weak.h (quadmath_snprintf): Add.
	(quadmath_flt128tostr): Remove.
	* configure.ac: New AC_CHECK_HEADERS headers: langinfo.h, wchar.h,
	wctype.h, limits.h, ctype.h, printf.h, errno.h.
	(AC_USE_SYSTEM_EXTENSIONS): Add.
	(HAVE_HIDDEN_VISIBILITY, HAVE_PRINTF_HOOKS,
	USE_LOCALE_SUPPORT, USE_I18N_NUMBER_H): New checks.
	* quadmath.map (QUADMATH_1.0): Add quadmath_snprintf.  Remove
	quadmath_flt128tostr.
	* printf/printf_fphex.c: New file.
	* printf/_itowa.h: New file.
	* printf/mul_n.c: New file.
	* printf/quadmath-printf.h: New file.
	* printf/submul_1.c: New file.
	* printf/quadmath-printf.c: New file.
	* printf/gmp-impl.h: New file.
	* printf/lshift.c: New file.
	* printf/fpioconst.h: New file.
	* printf/add_n.c: New file.
	* printf/cmp.c: New file.
	* printf/sub_n.c: New file.
	* printf/mul.c: New file.
	* printf/divrem.c: New file.
	* printf/addmul_1.c: New file.
	* printf/printf_fp.c: New file.
	* printf/_itoa.h: New file.
	* printf/fpioconst.c: New file.
	* printf/_i18n_number.h: New file.
	* printf/flt1282mpn.c: New file.
	* printf/rshift.c: New file.
	* printf/mul_1.c: New file.
	* quadmath_io.c: Removed.
	* gdtoa/gdtoa.c: Removed.
	* gdtoa/g__fmt.c: Removed.
	* gdtoa/g_Qfmt.c: Removed.
	* gdtoa/dmisc.c: Removed.
	* gdtoa/ulp.c: Removed.
	* config.h.in: Regenerated.
	* configure: Regenerated.
	* Makefile.in: Regenerated.

2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in: Regenerate.
	* aclocal.m4: Likewise.
	* configure: Likewise.

2011-01-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libquadmath/47293
	* gdtoa/qd_qnan.h: Fix NAN bit patterns.
	* gdtoa/strtopQ.c (strtoflt128): Handle endianess with NAN.

2011-01-17  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47295
	* libquadmath.text: Document typedef and constants.

2011-01-17  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46817
	* quadmath-imp.h: Refer to libquadmath not ot libiberty,
	bump copyright year and use /**/ instead of // comments.
	* quadmath.h: Ditto.
	* quadmath-weak.h: Ditto.
	* quadmath_io.c: Ditto.

2011-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR libfortran/47322
	* math/remquoq.c (remquoq): Use uint64_t type instead of u_int64_t.

	PR fortran/46625
	* quadmath.map (QUADMATH_1.0): Remove quadmath_strtopQ
	and quadmath_dtoaq.  Add strtoflt128 and quadmath_flt128tostr.
	* quadmath_weak.h (quadmath_strtopQ, quadmath_dtoaq): Remove.
	(strtoflt128, quadmath_flt128tostr): Add.
	* gdtoa/strtopQ.c (quadmath_strtopQ): Rename to...
	(strtoflt128): ... this.  Return __float128, instead of writing
	to memory pointed by last argument.
	* quadmath.h: Use C style comments instead of C++ style.
	(quadmath_strtopQ, quadmath_dtoaq): Remove prototypes.
	(strtoflt128, quadmath_flt128tostr): Add prototypes.
	* libquadmath.texi (quadmath_dtoaq): Rename to quadmath_flt128tostr.
	(quadmath_strtopQ): Rename to strtoflt128.  Adjust prototype,
	adjust examples.
	* quadmath_io.c (quadmath_dtoaq): Rename to...
	(quadmath_flt128tostr): ... this.

	* quadmath.h (__quadmath_throw, __quadmath_nth): Define.
	Use it for all prototypes.

	PR fortran/46416
	* quadmath.h (cbrtq, finiteq, isnanq, signbitq, sqrtq): Remove
	const from prototype argument.
	(cimagq, conjq, cprojq, crealq, fdimq, fmaxq, fminq, ilogbq,
	llrintq, log2q, lrintq, nearbyintq, remquoq): New prototypes.
	(__quadmath_extern_inline): Define.
	(cimagq, conjq, crealq): New inlines.
	* Makefile.am (libquadmath_la_SOURCES): Add math/cimagq.c,
	math/conjq.c, math/cprojq.c, math/crealq.c, math/fdimq.c,
	math/fmaxq.c, math/fminq.c, math/ilogbq.c, math/llrintq.c,
	math/log2q.c, math/lrintq.c, math/nearbyintq.c and math/remquoq.c.
	* Makefile.in: Regenerated.
	* quadmath_weak.h (cimagq, conjq, cprojq, crealq, fdimq, fmaxq,
	fminq, ilogbq, llrintq, log2q, lrintq, nearbyintq, remquoq): Add.
	* quadmath-imp.h (__LITTLE_ENDIAN__): Don't define.
	(ieee854_float128): Use __BYTE_ORDER == __ORDER_BIG_ENDIAN__
	tests instead of __BIG_ENDIAN__.
	* quadmath.map (QUADMATH_1.0): Add cimagq, conjq, cprojq, crealq,
	fdimq, fmaxq, fminq, ilogbq, llrintq, log2q, lrintq, nearbyintq
	and remquoq.
	* libquadmath.texi (cimagq, conjq, cprojq, crealq, fdimq, fmaxq,
	fminq, ilogbq, llrintq, log2q, lrintq, nearbyintq, remquoq): Add.
	* math/cprojq.c: New file.
	* math/ilogbq.c: New file.
	* math/fminq.c: New file.
	* math/llrintq.c: New file.
	* math/log2q.c: New file.
	* math/lrintq.c: New file.
	* math/crealq.c: New file.
	* math/nearbyintq.c: New file.
	* math/fmaxq.c: New file.
	* math/conjq.c: New file.
	* math/remquoq.c: New file.
	* math/cimagq.c: New file.
	* math/fdimq.c: New file.

	* math/ldexpq.c: Include errno.h.  Set errno to ERANGE if needed.

	PR fortran/46416
	* quadmath.h (cacosq, cacoshq, casinq, casinhq, catanq, catanhq):
	New prototypes.
	(M_Eq, M_LOG2Eq, M_LOG10Eq, M_LN2q, M_LN10q, M_PIq, M_PI_2q, M_PI_4q,
	M_1_PIq, M_2_PIq, M_2_SQRTPIq, M_SQRT2q, M_SQRT1_2q): Define.
	* quadmath_weak.h (cacosq, cacoshq, casinq, casinhq, catanq,
	catanhq): Add.
	* quadmath-imp.h (fpclassifyq, QUADFP_NAN, QUADFP_INFINITE,
	QUADFP_ZERO, QUADFP_SUBNORMAL, QUADFP_NORMAL): Define.
	* quadmath.map (QUADMATH_1.0): Add cacosq, cacoshq, casinq, casinhq,
	catanq and catanhq.
	* Makefile.am (libquadmath_la_SOURCES): Add math/cacosq.c,
	math/cacoshq.c, math/casinq.c, math/casinhq.c, math/catanq.c
	and math/catanhq.c.
	* Makefile.in: Regenerated.
	* libquadmath.texi (cacosq, cacoshq, casinq, casinhq,
	catanq, catanhq): Add.
	* math/cacoshq.c: New file.
	* math/cacosq.c: New file.
	* math/catanq.c: New file.
	* math/catanhq.c: New file.
	* math/casinq.c: New file.
	* math/casinhq.c: New file.

	* math/hypotq.c (hypotq): Use Q suffix instead of L.
	* math/atan2q.c (tiny, pi_o_4, pi_o_2, pi, pi_lo, atan2q): Likewise.
	* math/cosq.c (cosq): Likewise.

	PR fortran/46402
	* quadmath.map (QUADMATH_1.0): Add fmaq.
	* configure.ac: Check for fenv.h, feholdexcept, fesetround,
	feupdateenv, fesetenv and fetestexcept.
	* configure: Regenerated.
	* config.h.in: Regenerated.
	* quadmath.h (fmaq): New prototype.
	* quadmath_weak.h (fmaq): Add.
	* Makefile.am (libquadmath_la_SOURCES): Add math/fmaq.c.
	* Makefile.in: Regenerated.
	* quadmath-imp.h: Include config.h.
	* math/expq.c: Include fenv.h.
	(USE_FENV_H): Define if libm support for fe* is there.
	(expq): Add fesetround etc. support if USE_FENV_H is defined.
	* math/fmaq.c: New file.
	* libquadmath.texi (fmaq): Add.

2011-01-14  Tobias Burnus  <burnus@net-b.de>

	PR fortran/47182
	* configure.ac: Use ACX_BUGURL.
	* libquadmath.texi: Include libquadmath-vers.texi for BUGURL.
	* Makefile.am: Create libquadmath-vers.texi.
	* configure.in: Regenerate.
	* Makefile.in: Regenerate.

2011-01-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR fortran/47174
	* Makefile.am (libquadmath.info): Unconditionally override
	target, not only if BUILD_LIBQUADMATH.
	* Makefile.in: Regenerate.
	* configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override option to
	avoid warning from automake.

2010-12-19  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46520
	* configure.ac: Do not call AC_CHECK_LIB for gcc_no_link.
	* configure: Regenerate

2010-12-13  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46625
	* gdtoa/gdtoaimp.h: Mangle internal functions by
	prefixing them with __quadmath. Don't use gdtoa's strcp(y).
	* gdtoa/g_Qfmt.c (g_Qfmt): Use strcpy instead of strcp.
	* gdtoa/misc.c (strcpy): Renamed from strcp and only use
	if NO_STRING_H is set.
	* quadmath-imp.h (__quadmath_rem_pio2q, __quadmath_kernel_sincosq
	__quadmath_kernel_sinq, __quadmath_kernel_cosq): Added
	__quadmath prefix to internal functions.
	* math/cosq.c (cosq): Ditto.
	* math/sinq.c (cosq): Ditto.
	* math/tanq.c (tanq,__quadmath_kernel_tanq): Ditto.
	* math/rem_pio2q.c (rem_pio2, __quadmath_kernel_rem_pio2): Ditto.
	* math/sinq_kernel.c (__quadmath_kernel_sinq): Ditto.
	* math/cosq_kernel.c (__quadmath_kernel_cosq): Ditto.

2010-12-08  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46772
	* gdtoa/gdtoa.h: Include stdlib.h instead of declare strtod.
	* gdtoa/gdtoaimp.h: Don't declare strtod.

2010-12-08  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46520
	* configure.ac: Use GCC_TRY_COMPILE_OR_LINK instead of
	AC_TRY_LINK and cache libquad_have_float128.
	* configure: Regenerate.

2010-12-08  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46543
	* configure.ac: Add texinfo checks.
	* Makefile.am: Handle .texi documentation.
	* libquadmath.texi: New.
	* configure: Regenerated.
	* Makefile.in: Regenerated.

2010-12-06  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46817
	* quadmath-imp.h: Add LGPL header.
	* quadmath.h: Add LGPL header.
	* quadmath_io.c: Add LGPL header.
	* quadmath_weak.h: Add LGPL header.

2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	PR lto/46695
	* configure.ac: Invoke ACX_LT_HOST_FLAGS.
	* Makefile.am (libquadmath_la_LDFLAGS): Use lt_host_flags.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2010-11-30  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46594
	* Makefile.am: Install include files in
	target/version specific directory.
	* Makefile.in: Regenerate.

2010-11-30  Tobias Burnus  <burnus@net-b.de>

	* acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS,
	LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY,
	LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT): Remove.

2010-11-29  Kai Tietz  <kai.tietz@onevision.com>

	* configure: Regenerated.
	* Makefile.in: Regenerated.
	* configure.ac (ACX_NONCANONICAL_TARGET): Call it.
	(target_alias): Use AC_SUBST for it.
	(GCC_NO_EXECUTABLES): Call it.
	(AC_PROG_CC): Improve multilib handling.
	Check that gcc is used for compilation.
	Use pattern from libssp for symbol versioning checking.
	* Makefile.am (LTLDFLAGS): Removed.
	(libquadmath_la_LDFLAGS): Add -no-undefined.
	(libquadmath_la_LINK): Commented out.
	(libquadmath_la_DEPENDENCIES): Add libquadmath_la_LIBADD.
	(AM_MAKEFLAGS): Add hack for argument passing by top-level.
	(MAKEOVERRIDES): New.
	* aclocal.m4: Regenerated.

2010-11-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.am (libquadmath_la_LIBADD): Move -lm ...
	(libquadmath_la_LDFLAGS): ... here.
	(quadmath.map-sun): Tabify.
	Fix sed expression.
	* Makefile.in: Regenerate.

2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/32049
	Initial implementation and checkin.
