This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 2/6] float128: Add conversion from float128 to mpn


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]