[PATCH 2/6] float128: Add conversion from float128 to mpn
Gabriel F. T. Gomes
gftg@linux.vnet.ibm.com
Tue May 30 02:31:00 GMT 2017
On Fri, 26 May 2017 15:35:16 +0000
Joseph Myers <joseph@codesourcery.com> wrote:
> On Fri, 26 May 2017, Gabriel F. T. Gomes wrote:
> >
> > /* Macros for min/max. */
> > -#define MIN(a,b) (((a)<(b))?(a):(b))
> > -#define MAX(a,b) (((a)>(b))?(a):(b))
> > +#ifndef MIN
> > +# define MIN(a,b) (((a)<(b))?(a):(b))
> > +#endif
> > +#ifndef MAX
> > +# define MAX(a,b) (((a)>(b))?(a):(b))
> > +#endif
>
> This seems to have nothing to do with the rest of the patch.
>
> If you have something that has its own conflicting definitions of MIN and
> MAX that ends up including sys/param.h as well, and those definitions of
> MIN and MAX are semantically the same as those in sys/param.h, make it
> include sys/param.h directly instead of having its own definitions.
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?
> > +#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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Include-sys-param.h-in-stdlib-gmp-impl.h-instead-of-.patch
Type: text/x-patch
Size: 1216 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20170530/f4285a23/attachment.bin>
More information about the Libc-alpha
mailing list