2 ldbl-extra-routines
+= fwscanf \
9 ifeq ($(subdir
),stdio-common
)
10 ldbl-extra-routines
+= printf_size \
40 # Printing long double values with IEEE binary128 format reuses part
41 # of the internal float128 implementation (__printf_fp, __printf_fphex,
42 # and __float128 variables and union members). Likewise, reading these
43 # values reuses __strtof128_internal. Thus, the compilation of the
44 # following functions, must have -mfloat128 and -mabi=ibmlongdouble
45 # passed to the compiler.
46 CFLAGS-vfprintf-internal.c
+= -mfloat128
-mabi
=ibmlongdouble
47 CFLAGS-vfwprintf-internal.c
+= -mfloat128
-mabi
=ibmlongdouble
48 CFLAGS-vfscanf-internal.c
+= -mfloat128
-mabi
=ibmlongdouble
49 CFLAGS-vfwscanf-internal.c
+= -mfloat128
-mabi
=ibmlongdouble
51 # Basic tests for the implementation of long double with IEEE binary128
52 # format and for the related redirections in installed headers.
53 tests-internal
+= test-printf-ieee128 test-printf-ibm128
54 CFLAGS-test-printf-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
55 CFLAGS-test-printf-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi
57 tests-internal
+= test-wprintf-ieee128 test-wprintf-ibm128
58 CFLAGS-test-wprintf-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
59 CFLAGS-test-wprintf-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi
61 tests-internal
+= test-obstack-ieee128 test-obstack-ibm128
62 CFLAGS-test-obstack-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
63 CFLAGS-test-obstack-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi
65 tests-internal
+= test-obstack-chk-ieee128 test-obstack-chk-ibm128
66 CFLAGS-test-obstack-chk-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
67 CFLAGS-test-obstack-chk-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi
69 tests-internal
+= test-scanf-ieee128 test-scanf-ibm128
70 CFLAGS-test-scanf-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
71 CFLAGS-test-scanf-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi
73 $(objpfx
)test-scanf-ieee128
: gnulib-tests
+= $(f128-loader-link
)
75 tests-internal
+= test-wscanf-ieee128 test-wscanf-ibm128
76 CFLAGS-test-wscanf-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
77 CFLAGS-test-wscanf-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi
79 $(objpfx
)test-wscanf-ieee128
: gnulib-tests
+= $(f128-loader-link
)
81 ifeq ($(run-built-tests
),yes
)
82 tests-special
+= $(objpfx
)test-scanf-ieee128.out
83 tests-special
+= $(objpfx
)test-scanf-ibm128.out
85 tests-special
+= $(objpfx
)test-wscanf-ieee128.out
86 tests-special
+= $(objpfx
)test-wscanf-ibm128.out
89 $(objpfx
)test-scanf-ieee128.out
: \
90 ..
/sysdeps
/ieee754
/ldbl-128ibm-compat
/test-scanf-ldbl-compat.sh \
91 $(objpfx
)test-scanf-ieee128
92 $(SHELL
) $^
'$(test-program-prefix)' $@
; \
95 $(objpfx
)test-scanf-ibm128.out
: \
96 ..
/sysdeps
/ieee754
/ldbl-128ibm-compat
/test-scanf-ldbl-compat.sh \
97 $(objpfx
)test-scanf-ibm128
98 $(SHELL
) $^
'$(test-program-prefix)' $@
; \
101 $(objpfx
)test-wscanf-ieee128.out
: \
102 ..
/sysdeps
/ieee754
/ldbl-128ibm-compat
/test-scanf-ldbl-compat.sh \
103 $(objpfx
)test-wscanf-ieee128
104 $(SHELL
) $^
'$(test-program-prefix)' $@
; \
107 $(objpfx
)test-wscanf-ibm128.out
: \
108 ..
/sysdeps
/ieee754
/ldbl-128ibm-compat
/test-scanf-ldbl-compat.sh \
109 $(objpfx
)test-wscanf-ibm128
110 $(SHELL
) $^
'$(test-program-prefix)' $@
; \
113 tests-internal
+= test-printf-size-ieee128 test-printf-size-ibm128
114 CFLAGS-test-printf-size-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
115 CFLAGS-test-printf-size-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi
117 ifeq ($(run-built-tests
),yes
)
118 tests-special
+= $(objpfx
)test-printf-size-ieee128.out
119 tests-special
+= $(objpfx
)test-printf-size-ibm128.out
122 $(objpfx
)test-printf-size-ieee128.out
: \
123 tst-printfsz-islongdouble.sh
$(objpfx
)test-printf-size-ieee128
124 $(SHELL
) $^
'$(test-program-prefix)' $@
; \
127 $(objpfx
)test-printf-size-ibm128.out
: \
128 tst-printfsz-islongdouble.sh
$(objpfx
)test-printf-size-ibm128
129 $(SHELL
) $^
'$(test-program-prefix)' $@
; \
133 ifeq ($(subdir
),debug
)
134 ldbl-extra-routines
+= asprintf_chk \
153 tests-internal
+= test-printf-chk-ieee128 test-printf-chk-ibm128
154 CFLAGS-test-printf-chk-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
155 CFLAGS-test-printf-chk-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi
157 tests-internal
+= test-printf-chk-redir-ieee128 test-printf-chk-redir-ibm128
158 CFLAGS-test-printf-chk-redir-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble \
159 -Wno-psabi
-Wno-unused-result
160 CFLAGS-test-printf-chk-redir-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi \
163 tests-internal
+= test-wprintf-chk-ieee128 test-wprintf-chk-ibm128
164 CFLAGS-test-wprintf-chk-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
165 CFLAGS-test-wprintf-chk-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi
167 tests-internal
+= test-wprintf-chk-redir-ieee128 test-wprintf-chk-redir-ibm128
168 CFLAGS-test-wprintf-chk-redir-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble \
169 -Wno-psabi
-Wno-unused-result
170 CFLAGS-test-wprintf-chk-redir-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi \
174 ifeq ($(subdir
),argp
)
175 ldbl-extra-routines
+= argp-help
177 $(objpfx
)tst-ieee128-argp.c
: tst-ldbl-argp.c
180 $(objpfx
)tst-ibm128-argp.c
: tst-ldbl-argp.c
183 tests-internal
+= tst-ieee128-argp tst-ibm128-argp
184 CFLAGS-tst-ieee128-argp.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
185 CFLAGS-tst-ibm128-argp.c
+= -mabi
=ibmlongdouble
-Wno-psabi
188 ifeq ($(subdir
),misc
)
189 ldbl-extra-routines
+= err \
193 tests-internal
+= tst-ibm128-warn tst-ieee128-warn
194 tests-internal
+= tst-ibm128-error tst-ieee128-error
196 $(objpfx
)tst-ibm128-
%.c
: tst-ldbl-
%.c
199 $(objpfx
)tst-ieee128-
%.c
: tst-ldbl-
%.c
202 CFLAGS-tst-ibm128-warn.c
+= -mabi
=ibmlongdouble
-Wno-psabi
203 CFLAGS-tst-ibm128-error.c
+= -mabi
=ibmlongdouble
-Wno-psabi
205 CFLAGS-tst-ieee128-warn.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
206 CFLAGS-tst-ieee128-error.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
208 tests-container
+= test-syslog-ieee128 test-syslog-ibm128
209 CFLAGS-test-syslog-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
210 CFLAGS-test-syslog-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi
212 tests-container
+= test-syslog-chk-ieee128 test-syslog-chk-ibm128
213 CFLAGS-test-syslog-chk-ieee128.c
+= -mfloat128
-mabi
=ieeelongdouble
-Wno-psabi
214 CFLAGS-test-syslog-chk-ibm128.c
+= -mabi
=ibmlongdouble
-Wno-psabi
217 ifeq ($(subdir
),stdlib
)
218 ldbl-extra-routines
+= strfmon strfmon_l
220 # Printing long double values with IEEE binary128 format reuses part
221 # of the internal float128 implementation (__printf_fp, __printf_fphex,
222 # and __float128 variables and union members). Thus, the compilation of
223 # the following files, must have -mfloat128 passed to the compiler.
224 # Also, guarantee that they are compiled in IBM long double mode.
225 CFLAGS-strfmon.c
+= -mfloat128
-mabi
=ibmlongdouble
226 CFLAGS-strfmon_l.c
+= -mfloat128
-mabi
=ibmlongdouble
229 # Add IEEE binary128 files as make targets.
230 routines
+= $(foreach r
,$(ldbl-extra-routines
),ieee128-
$(r
))
232 # On powerpc64le, the routines responsible for converting between long
233 # double and string (e.g.: printf, scanf, strtold, strfroml) default to
234 # IBM long double mode. When support for TS 18661-3 was added, several
235 # internal functions were modified so that they could also handle
236 # floating-point variables with IEEE binary128 format, but as an
237 # additional type, _Float128.
239 # The following rule ensures that the string conversion routines will
240 # always be built in IBM long double mode, with additional support for
241 # IEEE binary128, through the use of -mabi=ibmlongdouble and -mfloat128.
242 ldbl-ibm128-files
:= $(objpfx
)test-
%-ibm128^ \
243 $(foreach r
,$(ldbl-extra-routines
),$(objpfx
)$(r
)^
) \
244 $(foreach r
,$(ldbl-extra-routines
),$(objpfx
)$(r
)-internal^
)
245 obj-suf-foreach
= $(foreach suf
,$(all-object-suffixes
),$(subst ^
,$(suf
),$(1)))
246 $(call obj-suf-foreach
,$(ldbl-ibm128-files
)): \
247 sysdep-CFLAGS
+= -mabi
=ibmlongdouble