On 16 December 2019 at 22:04, Martin Maechler wrote: | Oops, no! | Tomas the expert has explained me why that would not be good enough, | instead recommending a macro (which would be "constant folded" i.e., | computed at compile time were available); | If I conditionalize that .. in order to be back compatible outside of | PPC_64, I'd get | | Index: src/main/arithmetic.c | =================================================================== | --- src/main/arithmetic.c (Revision 77583) | +++ src/main/arithmetic.c (Arbeitskopie) | @@ -176,8 +176,14 @@ | #endif | } | | + | #if HAVE_LONG_DOUBLE && (SIZEOF_LONG_DOUBLE > SIZEOF_DOUBLE) | +# ifdef __PPC64__ | + // PowerPC 64 (when gcc has -mlong-double-128) breaks here ... | +# define q_1_eps (1 / LDBL_EPSILON) | +# else | static LDOUBLE q_1_eps = 1 / LDBL_EPSILON; | +# endif | #else | static double q_1_eps = 1 / DBL_EPSILON; | #endif | | ------------- | The above may work correctly (I tried a version where I replaced | __PPC64__ by 1 such as to test with the gcc 9.2 (on my | architecture). | I'd be glad if you could confirm for powerPC 64 .. | then I think we could commit it.
Nice. I applied that, and prepare a 'local' package. Sebastien, could you test it to be sure? Files are here: http://dirk.eddelbuettel.com/tmp/r-base/ As usual you can probably ignore the .deb files but it was simpler / cleaner to copy the whole batch. Dirk -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org