diff options
author | Gabriel F. T. Gomes <gabrielftg@linux.ibm.com> | 2019-07-11 11:47:43 -0300 |
---|---|---|
committer | Gabriel F. T. Gomes <gabrielftg@linux.ibm.com> | 2019-12-13 18:02:09 -0300 |
commit | f1a0eb5b6762b315517469da47735c51bde6f4ad (patch) | |
tree | ffc1415094cd0fe5e4a08c061fd59b7417005314 /sysdeps/ieee754/ldbl-128ibm-compat/Makefile | |
parent | 348787f06902b971d76dbab3f05d54c0b5c36131 (diff) | |
download | glibc-f1a0eb5b6762b315517469da47735c51bde6f4ad.tar.gz glibc-f1a0eb5b6762b315517469da47735c51bde6f4ad.tar.xz glibc-f1a0eb5b6762b315517469da47735c51bde6f4ad.zip |
ldbl-128ibm-compat: Add ISO C99 versions of scanf functions
In the format string for *scanf functions, the '%as', '%aS', and '%a[]' modifiers behave differently depending on ISO C99 compatibility. When _GNU_SOURCE is defined and -std=c89 is passed to the compiler, these functions behave like ascanf, and the modifiers allocate memory for the output. Otherwise, the ISO C99 compliant version of these functions is used, and the modifiers consume a floating-point argument. This patch adds the IEEE binary128 variant of ISO C99 compliant functions for the third long double format on powerpc64le. Tested for powerpc64le. Reviewed-by: Paul E. Murphy <murphyp@linux.ibm.com>
Diffstat (limited to 'sysdeps/ieee754/ldbl-128ibm-compat/Makefile')
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile index 21332bfbbb..6d5414c54a 100644 --- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile @@ -7,6 +7,13 @@ ldbl-extra-routines += fwscanf \ endif ifeq ($(subdir),wcsmbs) +ldbl-extra-routines += isoc99_fwscanf \ + isoc99_swscanf \ + isoc99_wscanf \ + isoc99_vfwscanf \ + isoc99_vswscanf \ + isoc99_vwscanf + tests-internal += test-wcstold-ibm128 test-wcstold-ieee128 CFLAGS-test-wcstold-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi CFLAGS-test-wcstold-ibm128.c += -mabi=ibmlongdouble -Wno-psabi @@ -43,7 +50,13 @@ ldbl-extra-routines += printf_size \ vfwscanf \ obprintf \ obstack_chk \ - vobstack_chk + vobstack_chk \ + isoc99_fscanf \ + isoc99_scanf \ + isoc99_sscanf \ + isoc99_vfscanf \ + isoc99_vscanf \ + isoc99_vsscanf # Printing long double values with IEEE binary128 format reuses part # of the internal float128 implementation (__printf_fp, __printf_fphex, @@ -86,12 +99,30 @@ CFLAGS-test-wscanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c89 -D_GNU_SO $(objpfx)test-wscanf-ieee128: gnulib-tests += $(f128-loader-link) +tests-internal += test-isoc99-scanf-ieee128 test-isoc99-scanf-ibm128 +CFLAGS-test-isoc99-scanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c99 +CFLAGS-test-isoc99-scanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c99 + +$(objpfx)test-isoc99-scanf-ieee128: gnulib-tests += $(f128-loader-link) + +tests-internal += test-isoc99-wscanf-ieee128 test-isoc99-wscanf-ibm128 +CFLAGS-test-isoc99-wscanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c99 +CFLAGS-test-isoc99-wscanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c99 + +$(objpfx)test-isoc99-wscanf-ieee128: gnulib-tests += $(f128-loader-link) + ifeq ($(run-built-tests),yes) tests-special += $(objpfx)test-scanf-ieee128.out tests-special += $(objpfx)test-scanf-ibm128.out tests-special += $(objpfx)test-wscanf-ieee128.out tests-special += $(objpfx)test-wscanf-ibm128.out + +tests-special += $(objpfx)test-isoc99-scanf-ieee128.out +tests-special += $(objpfx)test-isoc99-scanf-ibm128.out + +tests-special += $(objpfx)test-isoc99-wscanf-ieee128.out +tests-special += $(objpfx)test-isoc99-wscanf-ibm128.out endif $(objpfx)test-scanf-ieee128.out: \ @@ -118,6 +149,30 @@ $(objpfx)test-wscanf-ibm128.out: \ $(SHELL) $^ '$(test-program-prefix)' $@; \ $(evaluate-test) +$(objpfx)test-isoc99-scanf-ieee128.out: \ + ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \ + $(objpfx)test-isoc99-scanf-ieee128 + $(SHELL) $^ '$(test-program-prefix)' $@; \ + $(evaluate-test) + +$(objpfx)test-isoc99-scanf-ibm128.out: \ + ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \ + $(objpfx)test-isoc99-scanf-ibm128 + $(SHELL) $^ '$(test-program-prefix)' $@; \ + $(evaluate-test) + +$(objpfx)test-isoc99-wscanf-ieee128.out: \ + ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \ + $(objpfx)test-isoc99-wscanf-ieee128 + $(SHELL) $^ '$(test-program-prefix)' $@; \ + $(evaluate-test) + +$(objpfx)test-isoc99-wscanf-ibm128.out: \ + ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \ + $(objpfx)test-isoc99-wscanf-ibm128 + $(SHELL) $^ '$(test-program-prefix)' $@; \ + $(evaluate-test) + tests-internal += test-printf-size-ieee128 test-printf-size-ibm128 CFLAGS-test-printf-size-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi CFLAGS-test-printf-size-ibm128.c += -mabi=ibmlongdouble -Wno-psabi |