about summary refs log tree commit diff
path: root/sysdeps/ieee754/ldbl-opt
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754/ldbl-opt')
-rw-r--r--sysdeps/ieee754/ldbl-opt/Makefile44
-rw-r--r--sysdeps/ieee754/ldbl-opt/Versions14
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-compat.c170
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-compat.h12
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_fscanf.c15
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_fwscanf.c15
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_scanf.c15
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_sscanf.c15
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_swscanf.c15
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vfscanf.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vfwscanf.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vscanf.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vsscanf.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vswscanf.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vwscanf.c8
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-isoc23_wscanf.c15
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-c11.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-c2x.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-gnu11.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-gnu89.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-c11.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-c2x.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-gnu11.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-gnu89.c2
24 files changed, 394 insertions, 0 deletions
diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile
index 1d01846476..5b72474aa4 100644
--- a/sysdeps/ieee754/ldbl-opt/Makefile
+++ b/sysdeps/ieee754/ldbl-opt/Makefile
@@ -42,6 +42,10 @@ libnldbl-calls = asprintf dprintf fprintf fscanf fwprintf fwscanf iovfscanf \
 		 isoc99_vscanf isoc99_vfscanf isoc99_vsscanf \
 		 isoc99_wscanf isoc99_fwscanf isoc99_swscanf \
 		 isoc99_vwscanf isoc99_vfwscanf isoc99_vswscanf \
+		 isoc23_scanf isoc23_fscanf isoc23_sscanf \
+		 isoc23_vscanf isoc23_vfscanf isoc23_vsscanf \
+		 isoc23_wscanf isoc23_fwscanf isoc23_swscanf \
+		 isoc23_vwscanf isoc23_vfwscanf isoc23_vswscanf \
 		 nextup nextdown totalorder totalordermag getpayload \
 		 canonicalize setpayload setpayloadsig llogb fmaxmag fminmag \
 		 roundeven fromfp ufromfp fromfpx ufromfpx fadd dadd \
@@ -221,3 +225,43 @@ $(objpfx)tst-nldbl-error.c: tst-ldbl-error.c
 CFLAGS-tst-nldbl-warn.c += -mlong-double-64
 CFLAGS-tst-nldbl-error.c += -mlong-double-64
 endif
+
+ifeq ($(subdir), stdio-common)
+tests += tst-nldbl-scanf-binary-c11 \
+	 tst-nldbl-scanf-binary-c2x \
+	 tst-nldbl-scanf-binary-gnu11 \
+	 tst-nldbl-scanf-binary-gnu89
+
+# Some versions of GCC supported for building glibc do not support -std=c2x, so
+# the test for that version uses -std=c11 and then _ISOC2X_SOURCE is defined in
+# the test as needed.
+CFLAGS-tst-nldbl-scanf-binary-c11.c += -mlong-double-64 -std=c11 \
+				       -DOBJPFX=\"$(objpfx)\"
+CFLAGS-tst-nldbl-scanf-binary-c2x.c += -mlong-double-64 -std=c11 \
+				       -DOBJPFX=\"$(objpfx)\"
+CFLAGS-tst-nldbl-scanf-binary-gnu11.c += -mlong-double-64 -std=gnu11 \
+					 -DOBJPFX=\"$(objpfx)\"
+CFLAGS-tst-nldbl-scanf-binary-gnu89.c += -mlong-double-64 -std=gnu89 \
+					 -DOBJPFX=\"$(objpfx)\"
+
+endif
+
+ifeq ($(subdir), wcsmbs)
+tests += tst-nldbl-wscanf-binary-c11 \
+	 tst-nldbl-wscanf-binary-c2x \
+	 tst-nldbl-wscanf-binary-gnu11 \
+	 tst-nldbl-wscanf-binary-gnu89
+
+# Some versions of GCC supported for building glibc do not support -std=c2x, so
+# the test for that version uses -std=c11 and then _ISOC2X_SOURCE is defined in
+# the test as needed.
+CFLAGS-tst-nldbl-wscanf-binary-c11.c += -mlong-double-64 -std=c11 \
+					-DOBJPFX=\"$(objpfx)\"
+CFLAGS-tst-nldbl-wscanf-binary-c2x.c += -mlong-double-64 -std=c11 \
+					-DOBJPFX=\"$(objpfx)\"
+CFLAGS-tst-nldbl-wscanf-binary-gnu11.c += -mlong-double-64 -std=gnu11 \
+					  -DOBJPFX=\"$(objpfx)\"
+CFLAGS-tst-nldbl-wscanf-binary-gnu89.c += -mlong-double-64 -std=gnu89 \
+					  -DOBJPFX=\"$(objpfx)\"
+
+endif
diff --git a/sysdeps/ieee754/ldbl-opt/Versions b/sysdeps/ieee754/ldbl-opt/Versions
index 21a2db6888..5345f1c683 100644
--- a/sysdeps/ieee754/ldbl-opt/Versions
+++ b/sysdeps/ieee754/ldbl-opt/Versions
@@ -84,6 +84,20 @@ libc {
     __nldbl_err; __nldbl_verr; __nldbl_errx; __nldbl_verrx;
     __nldbl_error; __nldbl_error_at_line;
   }
+  GLIBC_2.38 {
+    __nldbl___isoc23_scanf;
+    __nldbl___isoc23_fscanf;
+    __nldbl___isoc23_sscanf;
+    __nldbl___isoc23_vscanf;
+    __nldbl___isoc23_vfscanf;
+    __nldbl___isoc23_vsscanf;
+    __nldbl___isoc23_wscanf;
+    __nldbl___isoc23_fwscanf;
+    __nldbl___isoc23_swscanf;
+    __nldbl___isoc23_vwscanf;
+    __nldbl___isoc23_vfwscanf;
+    __nldbl___isoc23_vswscanf;
+  }
 }
 libm {
   NLDBL_VERSION {
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-compat.c b/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
index c654ebe416..22112c54d4 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
@@ -45,6 +45,10 @@ libc_hidden_proto (__nldbl___isoc99_vsscanf)
 libc_hidden_proto (__nldbl___isoc99_vfscanf)
 libc_hidden_proto (__nldbl___isoc99_vswscanf)
 libc_hidden_proto (__nldbl___isoc99_vfwscanf)
+libc_hidden_proto (__nldbl___isoc23_vsscanf)
+libc_hidden_proto (__nldbl___isoc23_vfscanf)
+libc_hidden_proto (__nldbl___isoc23_vswscanf)
+libc_hidden_proto (__nldbl___isoc23_vfwscanf)
 
 /* Compatibility with IEEE double as long double.
    IEEE quad long double is used by default for most programs, so
@@ -992,6 +996,172 @@ __nldbl___isoc99_wscanf (const wchar_t *fmt, ...)
   return ret;
 }
 
+int
+attribute_compat_text_section
+__nldbl___isoc23_vfscanf (FILE *s, const char *fmt, va_list ap)
+{
+  return __vfscanf_internal (s, fmt, ap,
+			     SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			     | SCANF_ISOC23_BIN_CST);
+}
+libc_hidden_def (__nldbl___isoc23_vfscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc23_sscanf (const char *s, const char *fmt, ...)
+{
+  _IO_strfile sf;
+  FILE *f = _IO_strfile_read (&sf, s);
+  va_list ap;
+  int ret;
+
+  va_start (ap, fmt);
+  ret = __vfscanf_internal (f, fmt, ap,
+			    SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			    | SCANF_ISOC23_BIN_CST);
+  va_end (ap);
+
+  return ret;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc23_vsscanf (const char *s, const char *fmt, va_list ap)
+{
+  _IO_strfile sf;
+  FILE *f = _IO_strfile_read (&sf, s);
+
+  return __vfscanf_internal (f, fmt, ap,
+			     SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			     | SCANF_ISOC23_BIN_CST);
+}
+libc_hidden_def (__nldbl___isoc23_vsscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc23_vscanf (const char *fmt, va_list ap)
+{
+  return __vfscanf_internal (stdin, fmt, ap,
+			     SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			     | SCANF_ISOC23_BIN_CST);
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc23_fscanf (FILE *s, const char *fmt, ...)
+{
+  va_list ap;
+  int ret;
+
+  va_start (ap, fmt);
+  ret = __vfscanf_internal (s, fmt, ap,
+			    SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			    | SCANF_ISOC23_BIN_CST);
+  va_end (ap);
+
+  return ret;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc23_scanf (const char *fmt, ...)
+{
+  va_list ap;
+  int ret;
+
+  va_start (ap, fmt);
+  ret = __vfscanf_internal (stdin, fmt, ap,
+			    SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			    | SCANF_ISOC23_BIN_CST);
+  va_end (ap);
+
+  return ret;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc23_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
+{
+  return __vfwscanf_internal (s, fmt, ap,
+			      SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			      | SCANF_ISOC23_BIN_CST);
+}
+libc_hidden_def (__nldbl___isoc23_vfwscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc23_swscanf (const wchar_t *s, const wchar_t *fmt, ...)
+{
+  _IO_strfile sf;
+  struct _IO_wide_data wd;
+  FILE *f = _IO_strfile_readw (&sf, &wd, s);
+  va_list ap;
+  int ret;
+
+  va_start (ap, fmt);
+  ret = __vfwscanf_internal (f, fmt, ap,
+			     SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			     | SCANF_ISOC23_BIN_CST);
+  va_end (ap);
+
+  return ret;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc23_vswscanf (const wchar_t *s, const wchar_t *fmt, va_list ap)
+{
+  _IO_strfile sf;
+  struct _IO_wide_data wd;
+  FILE *f = _IO_strfile_readw (&sf, &wd, s);
+
+  return __vfwscanf_internal (f, fmt, ap,
+			      SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			      | SCANF_ISOC23_BIN_CST);
+}
+libc_hidden_def (__nldbl___isoc23_vswscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc23_vwscanf (const wchar_t *fmt, va_list ap)
+{
+  return __vfwscanf_internal (stdin, fmt, ap,
+			      SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			      | SCANF_ISOC23_BIN_CST);
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc23_fwscanf (FILE *s, const wchar_t *fmt, ...)
+{
+  va_list ap;
+  int ret;
+
+  va_start (ap, fmt);
+  ret = __vfwscanf_internal (s, fmt, ap,
+			     SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			     | SCANF_ISOC23_BIN_CST);
+  va_end (ap);
+
+  return ret;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc23_wscanf (const wchar_t *fmt, ...)
+{
+  va_list ap;
+  int ret;
+
+  va_start (ap, fmt);
+  ret = __vfwscanf_internal (stdin, fmt, ap,
+			     SCANF_LDBL_IS_DBL | SCANF_ISOC99_A
+			     | SCANF_ISOC23_BIN_CST);
+  va_end (ap);
+
+  return ret;
+}
+
 void
 __nldbl_argp_error (const struct argp_state *state, const char *fmt, ...)
 {
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-compat.h b/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
index 7309e8a80f..d514442d87 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
@@ -78,6 +78,18 @@ NLDBL_DECL (__isoc99_swscanf);
 NLDBL_DECL (__isoc99_vwscanf);
 NLDBL_DECL (__isoc99_vfwscanf);
 NLDBL_DECL (__isoc99_vswscanf);
+NLDBL_DECL (__isoc23_scanf);
+NLDBL_DECL (__isoc23_fscanf);
+NLDBL_DECL (__isoc23_sscanf);
+NLDBL_DECL (__isoc23_vscanf);
+NLDBL_DECL (__isoc23_vfscanf);
+NLDBL_DECL (__isoc23_vsscanf);
+NLDBL_DECL (__isoc23_wscanf);
+NLDBL_DECL (__isoc23_fwscanf);
+NLDBL_DECL (__isoc23_swscanf);
+NLDBL_DECL (__isoc23_vwscanf);
+NLDBL_DECL (__isoc23_vfwscanf);
+NLDBL_DECL (__isoc23_vswscanf);
 NLDBL_DECL (argp_error);
 NLDBL_DECL (argp_failure);
 NLDBL_DECL (warn);
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_fscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_fscanf.c
new file mode 100644
index 0000000000..7b5a0565f7
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_fscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_fscanf (FILE *stream, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc23_vfscanf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_fwscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_fwscanf.c
new file mode 100644
index 0000000000..4ecb340143
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_fwscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_fwscanf (FILE *stream, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc23_vfwscanf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_scanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_scanf.c
new file mode 100644
index 0000000000..90ea10c115
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_scanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_scanf (const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc23_vfscanf (stdin, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_sscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_sscanf.c
new file mode 100644
index 0000000000..64124e479c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_sscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_sscanf (const char *s, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc23_vsscanf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_swscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_swscanf.c
new file mode 100644
index 0000000000..da84c318b2
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_swscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_swscanf (const wchar_t *s, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc23_vswscanf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vfscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vfscanf.c
new file mode 100644
index 0000000000..671aa63ec6
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vfscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_vfscanf (FILE *s, const char *fmt, va_list ap)
+{
+  return __nldbl___isoc23_vfscanf (s, fmt, ap);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vfwscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vfwscanf.c
new file mode 100644
index 0000000000..b069522cd1
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vfwscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
+{
+  return __nldbl___isoc23_vfwscanf (s, fmt, ap);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vscanf.c
new file mode 100644
index 0000000000..f2256f210f
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_vscanf (const char *fmt, va_list ap)
+{
+  return __nldbl___isoc23_vfscanf (stdin, fmt, ap);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vsscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vsscanf.c
new file mode 100644
index 0000000000..96ce46b317
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vsscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_vsscanf (const char *string, const char *fmt, va_list ap)
+{
+  return __nldbl___isoc23_vsscanf (string, fmt, ap);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vswscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vswscanf.c
new file mode 100644
index 0000000000..0819b55a2c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vswscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_vswscanf (const wchar_t *string, const wchar_t *fmt, va_list ap)
+{
+  return __nldbl___isoc23_vswscanf (string, fmt, ap);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vwscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vwscanf.c
new file mode 100644
index 0000000000..f92876ec27
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_vwscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_vwscanf (const wchar_t *fmt, va_list ap)
+{
+  return __nldbl___isoc23_vfwscanf (stdin, fmt, ap);
+}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_wscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_wscanf.c
new file mode 100644
index 0000000000..cece258845
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-isoc23_wscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc23_wscanf (const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc23_vfwscanf (stdin, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-c11.c b/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-c11.c
new file mode 100644
index 0000000000..f5bc396fcc
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-c11.c
@@ -0,0 +1,2 @@
+#define STDX "nldbl-"
+#include <tst-scanf-binary-c11.c>
diff --git a/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-c2x.c b/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-c2x.c
new file mode 100644
index 0000000000..4e0cf7570f
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-c2x.c
@@ -0,0 +1,2 @@
+#define STDX "nldbl-"
+#include <tst-scanf-binary-c2x.c>
diff --git a/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-gnu11.c b/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-gnu11.c
new file mode 100644
index 0000000000..10e228e98a
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-gnu11.c
@@ -0,0 +1,2 @@
+#define STDX "nldbl-"
+#include <tst-scanf-binary-gnu11.c>
diff --git a/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-gnu89.c b/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-gnu89.c
new file mode 100644
index 0000000000..c5da04b644
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-nldbl-scanf-binary-gnu89.c
@@ -0,0 +1,2 @@
+#define STDX "nldbl-"
+#include <tst-scanf-binary-gnu89.c>
diff --git a/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-c11.c b/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-c11.c
new file mode 100644
index 0000000000..0e66e97cf7
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-c11.c
@@ -0,0 +1,2 @@
+#define STDX "nldbl-"
+#include <tst-wscanf-binary-c11.c>
diff --git a/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-c2x.c b/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-c2x.c
new file mode 100644
index 0000000000..7637aab0d4
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-c2x.c
@@ -0,0 +1,2 @@
+#define STDX "nldbl-"
+#include <tst-wscanf-binary-c2x.c>
diff --git a/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-gnu11.c b/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-gnu11.c
new file mode 100644
index 0000000000..106ec38bce
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-gnu11.c
@@ -0,0 +1,2 @@
+#define STDX "nldbl-"
+#include <tst-wscanf-binary-gnu11.c>
diff --git a/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-gnu89.c b/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-gnu89.c
new file mode 100644
index 0000000000..61a15619d2
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-nldbl-wscanf-binary-gnu89.c
@@ -0,0 +1,2 @@
+#define STDX "nldbl-"
+#include <tst-wscanf-binary-gnu89.c>