This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 2/6] float128: Add conversion from float128 to mpn
- From: Joseph Myers <joseph at codesourcery dot com>
- To: "Gabriel F. T. Gomes" <gftg at linux dot vnet dot ibm dot com>
- Cc: <libc-alpha at sourceware dot org>
- Date: Thu, 1 Jun 2017 13:23:25 +0000
- Subject: Re: [PATCH 2/6] float128: Add conversion from float128 to mpn
- Authentication-results: sourceware.org; auth=none
- References: <1495803396-14558-1-git-send-email-gftg@linux.vnet.ibm.com> <1495803396-14558-3-git-send-email-gftg@linux.vnet.ibm.com> <alpine.DEB.2.20.1705261531140.31473@digraph.polyomino.org.uk> <20170529233114.249cee23@keller.br.ibm.com>
On Mon, 29 May 2017, Gabriel F. T. Gomes wrote:
> The file sysdeps/ieee754/ldbl-128/ldbl2mpn.c includes stdlib/gmp-impl.h,
> which defines MAX and MIN. With the changes to ldbl2mpn.c, the inclusion
> of float128_private.h will indirectly include sys/param.h, redefining the
> macros.
>
> I attached a new patch which replaces the definition of MAX and MIN in
> stdlib/gmp-impl.h with an inclusion of sys/param.h.
>
> Is the attached patch OK for master?
That patch is OK.
> > > +#define __FLOAT128_OVERRIDE
> > > +
> > > +#include "../ldbl-128/ldbl2mpn.c"
> >
> > Is there a reason you need a sepcial __FLOAT128_OVERRIDE macro, instead of
> > the approach used by the other float128 files of including
> > <float128_private.h>, which defines all relevant macros (e.g. defining
> > __mpn_extract_long_double to __mpn_extract_float128, and with the
> > __mpn_extract_long_double definition using _Float128 as the type name and
> > letting math_ldbl.h redefine that back to long double as needed)?
>
> I could not use the same approach, because ldbl2mpn.c includes the header
> include/gmp.h, which declares both __mpn_extract_long_double and
> __mpn_extract_float128. I would end up declaring __mpn_extract_float128
> twice.
This sounds like an include ordering problem. float128_private.h
redefines lots of names from math_private.h and math.h. But that doesn't
cause problems because it includes those headers first. So how about
making float128_private.h include gmp.h before redefining
__mpn_extract_long_double?
--
Joseph S. Myers
joseph@codesourcery.com