about summary refs log tree commit diff
path: root/misc/error.h
diff options
context:
space:
mode:
authorGabriel F. T. Gomes <gabrielftg@linux.ibm.com>2019-12-19 12:06:09 -0300
committerPaul E. Murphy <murphyp@linux.vnet.ibm.com>2020-02-17 15:28:29 -0600
commite4a399921390509418826e8e8995d2441f29e243 (patch)
treecc9f1df5edb43ade00aa12cc1ba1c5a662e5f1c8 /misc/error.h
parent1f1c65e232878bca88fe8551318c7bc02b90ee90 (diff)
downloadglibc-e4a399921390509418826e8e8995d2441f29e243.tar.gz
glibc-e4a399921390509418826e8e8995d2441f29e243.tar.xz
glibc-e4a399921390509418826e8e8995d2441f29e243.zip
Prepare redirections for IEEE long double on powerpc64le
All functions that have a format string, which can consume a long double
argument, must have one version for each long double format supported on
a platform.  On powerpc64le, these functions currently have two versions
(i.e.: long double with the same format as double, and long double with
IBM Extended Precision format).  Support for a third long double format
option (i.e. long double with IEEE long double format) is being prepared
and all the aforementioned functions now have a third version (not yet
exported on the master branch, but the code is in).

For these functions to get selected (during build time), references to
them in user programs (or dependent libraries) must get redirected to
the aforementioned new versions of the functions.  This patch installs
the header magic required to perform such redirections.

Notice, however, that since the redirections only happen when
__LONG_DOUBLE_USES_FLOAT128 is set to 1, and no platform (including
powerpc64le) currently does it, no redirections actually happen.
Redirections and the exporting of the new functions will happen at the
same time (when powerpc64le adds ldbl-128ibm-compat to their Implies.

Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Reviewed-by: Paul E. Murphy <murphyp@linux.vnet.ibm.com>
Diffstat (limited to 'misc/error.h')
-rw-r--r--misc/error.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/misc/error.h b/misc/error.h
index a456695f1a..bb8a3b26a4 100644
--- a/misc/error.h
+++ b/misc/error.h
@@ -47,11 +47,13 @@ extern unsigned int error_message_count;
    variable controls whether this mode is selected or not.  */
 extern int error_one_per_line;
 
-#ifdef __LDBL_COMPAT
+#include <bits/floatn.h>
+#if defined __LDBL_COMPAT || __LONG_DOUBLE_USES_FLOAT128 == 1
 # include <bits/error-ldbl.h>
 #else
 /* Do not inline error and error_at_line when long double has the same
-   size of double, because that would invalidate the redirections to the
+   size of double, nor when long double reuses the float128
+   implementation, because that would invalidate the redirections to the
    compatibility functions.  */
 # if defined __extern_always_inline && defined __va_arg_pack
 #  include <bits/error.h>