diff options
-rw-r--r-- | ext/POSIX/POSIX.xs | 9 | ||||
-rw-r--r-- | util.c | 7 |
2 files changed, 14 insertions, 2 deletions
diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs index 3a523d1d07..9f1e8555fa 100644 --- a/ext/POSIX/POSIX.xs +++ b/ext/POSIX/POSIX.xs @@ -1517,6 +1517,15 @@ constant(char *name, int arg) break; case 'H': if (strEQ(name, "HUGE_VAL")) +#ifdef USE_LONG_DOUBLE + /* HUGE_VALL is admittedly non-POSIX but if are using long doubles + * we might as well use long doubles. --jhi */ +# ifdef HUGE_VALL + return HUGE_VALL; +# else + goto not_there; +# endif +#endif #ifdef HUGE_VAL return HUGE_VAL; #else @@ -3577,7 +3577,7 @@ Perl_new_struct_thread(pTHX_ struct perl_thread *t) } #endif /* USE_THREADS */ -#ifdef HUGE_VAL +#if defined(HUGE_VAL) || (defined(USE_LONG_DOUBLE) && defined(HUGE_VALL)) /* * This hack is to force load of "huge" support from libm.a * So it is in perl for (say) POSIX to use. @@ -3586,7 +3586,10 @@ Perl_new_struct_thread(pTHX_ struct perl_thread *t) NV Perl_huge(void) { - return HUGE_VAL; +# if defined(USE_LONG_DOUBLE) && defined(HUGE_VALL) + return HUGE_VALL; +# endif + return HUGE_VAL; } #endif |