about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGabriel F. T. Gomes <gabriel@inconstante.eti.br>2018-11-23 14:00:06 -0200
committerGabriel F. T. Gomes <gabriel@inconstante.eti.br>2018-12-11 15:00:11 -0200
commit1a502f5260f1513b9ba38b68d8087e48bc0ede0c (patch)
treec1a66c606e09135bcbae4be49b74d9f3fe759417
parentdf682d1d745e078621bee5a1f4a0b40f1b8dfca1 (diff)
downloadglibc-1a502f5260f1513b9ba38b68d8087e48bc0ede0c.tar.gz
glibc-1a502f5260f1513b9ba38b68d8087e48bc0ede0c.tar.xz
glibc-1a502f5260f1513b9ba38b68d8087e48bc0ede0c.zip
Add *-ldbl.h headers to include/bits
On some platforms, long double may have either the same format as double
or another, wider format, such as the Quadruple IEC 60559 long double
format or the IBM Extended Precision format (both 128-bits wide).
Selecting between the available formats is done by using one of the
following compiler switches: -mlong-double-128, for the wider format, or
-mlong-double-64, for the narrower.  On all platforms that provide this
choice, the wider format is the default.

When the non-default format is selected by user code (i.e.: when
building with -mlong-double-64) calls to functions that take long double
parameters or return a long double type (e.g.: strfroml) are redirected
to a compat function, via assembler redirection, by headers such as
bits/stdlib-ldbl.h or bits/misc-ldbl.h.

In glibc builds, however, these headers are currently being read from
the system directories (/usr/include/bits) rather than from the source
directory.  Although this works correctly today, it raises
reproducibility concerns.  Besides that, builds for powerpc64le will
need these files from the source directory, because on powerpc64le, the
new redirections for long double with IEEE binary128 format will be
implemented in these headers.

Tested for powerpc64 and powerpc64le.
-rw-r--r--ChangeLog9
-rw-r--r--include/bits/monetary-ldbl.h1
-rw-r--r--include/bits/printf-ldbl.h1
-rw-r--r--include/bits/stdio-ldbl.h1
-rw-r--r--include/bits/stdlib-ldbl.h1
-rw-r--r--include/bits/syslog-ldbl.h1
-rw-r--r--include/bits/wchar-ldbl.h1
7 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b8d794d43a..7a78b6b752 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2018-12-11  Gabriel F. T. Gomes  <gabriel@inconstante.eti.br>
 
+	* include/bits/monetary-ldbl.h: New file.
+	* include/bits/printf-ldbl.h: Likewise.
+	* include/bits/stdio-ldbl.h: Likewise.
+	* include/bits/stdlib-ldbl.h: Likewise.
+	* include/bits/syslog-ldbl.h: Likewise.
+	* include/bits/wchar-ldbl.h: Likewise.
+
+2018-12-11  Gabriel F. T. Gomes  <gabriel@inconstante.eti.br>
+
 	* libio/libio.h: Remove redirection for _IO_vfprintf.
 
 2018-12-11  Andreas Schwab  <schwab@suse.de>
diff --git a/include/bits/monetary-ldbl.h b/include/bits/monetary-ldbl.h
new file mode 100644
index 0000000000..6b6713ffc1
--- /dev/null
+++ b/include/bits/monetary-ldbl.h
@@ -0,0 +1 @@
+#include <stdlib/bits/monetary-ldbl.h>
diff --git a/include/bits/printf-ldbl.h b/include/bits/printf-ldbl.h
new file mode 100644
index 0000000000..10d534b9b3
--- /dev/null
+++ b/include/bits/printf-ldbl.h
@@ -0,0 +1 @@
+#include <stdio-common/bits/printf-ldbl.h>
diff --git a/include/bits/stdio-ldbl.h b/include/bits/stdio-ldbl.h
new file mode 100644
index 0000000000..1f7d3ce1c6
--- /dev/null
+++ b/include/bits/stdio-ldbl.h
@@ -0,0 +1 @@
+#include <libio/bits/stdio-ldbl.h>
diff --git a/include/bits/stdlib-ldbl.h b/include/bits/stdlib-ldbl.h
new file mode 100644
index 0000000000..62509494a3
--- /dev/null
+++ b/include/bits/stdlib-ldbl.h
@@ -0,0 +1 @@
+#include <stdlib/bits/stdlib-ldbl.h>
diff --git a/include/bits/syslog-ldbl.h b/include/bits/syslog-ldbl.h
new file mode 100644
index 0000000000..e86815632b
--- /dev/null
+++ b/include/bits/syslog-ldbl.h
@@ -0,0 +1 @@
+#include <misc/bits/syslog-ldbl.h>
diff --git a/include/bits/wchar-ldbl.h b/include/bits/wchar-ldbl.h
new file mode 100644
index 0000000000..29baa2f4d5
--- /dev/null
+++ b/include/bits/wchar-ldbl.h
@@ -0,0 +1 @@
+#include <wcsmbs/bits/wchar-ldbl.h>