mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +03:00 
			
		
		
		
	This patch concludes filling out TS 18661-3 support for different types by adding *f32 function aliases of float functions to support _Float32. As with _Float64 and _Float32x, this is supported for all glibc configurations. As with the previous such patches there are some x86 ulps updates because of inline functions present for float but not for _Float32. The patch also has the usual bits/floatn-common.h update, symbol versions, ABI baselines updates, test enablement and documentation. Tested for x86_64 and x86, and with build-many-glibcs.py, with both GCC 6 and GCC 7. * bits/floatn-common.h (__HAVE_FLOAT32): Define to 1. * manual/math.texi (Mathematics): Document support for _Float32. * math/Makefile (test-types): Add float32. * math/Versions (GLIBC_2.27): Add _Float32 functions. * stdlib/Versions (GLIBC_2.27): Likewise. * wcsmbs/Versions (GLIBC_2.27): Likewise. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. * sysdeps/i386/fpu/libm-test-ulps: Likewise. * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
		
			
				
	
	
		
			154 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
%include <float128-abi.h>
 | 
						|
libc {
 | 
						|
  GLIBC_2.0 {
 | 
						|
    # functions with required interface outside normal name space
 | 
						|
    __xpg_basename;
 | 
						|
 | 
						|
    # functions used in inline functions or macros
 | 
						|
    __strtod_internal; __strtof_internal; __strtold_internal;
 | 
						|
    __strtol_internal; __strtoll_internal;
 | 
						|
    __strtoul_internal; __strtoull_internal;
 | 
						|
    # functions formerly so used (compatibility symbols)
 | 
						|
    __strtoq_internal; __strtouq_internal;
 | 
						|
 | 
						|
    # compatibility symbol
 | 
						|
    __secure_getenv;
 | 
						|
 | 
						|
    # a*
 | 
						|
    a64l; abort; abs; atexit; atof; atoi; atol; atoll;
 | 
						|
 | 
						|
    # b*
 | 
						|
    bsearch;
 | 
						|
 | 
						|
    # c*
 | 
						|
    canonicalize_file_name; clearenv;
 | 
						|
 | 
						|
    # d*
 | 
						|
    div; drand48; drand48_r;
 | 
						|
 | 
						|
    # e*
 | 
						|
    erand48; erand48_r; exit;
 | 
						|
 | 
						|
    # g*
 | 
						|
    getenv; getsubopt;
 | 
						|
 | 
						|
    # i*
 | 
						|
    initstate; initstate_r;
 | 
						|
 | 
						|
    # l*
 | 
						|
    l64a; labs; lcong48; lcong48_r; ldiv; llabs; lldiv; lrand48; lrand48_r;
 | 
						|
 | 
						|
    # m*
 | 
						|
    mblen; mbrlen; mbrtowc; mbsinit; mbsnrtowcs; mbsrtowcs; mbstowcs;
 | 
						|
    mbtowc; mcheck; mcount; mrand48; mrand48_r;
 | 
						|
 | 
						|
    # n*
 | 
						|
    nrand48; nrand48_r;
 | 
						|
 | 
						|
    # o*
 | 
						|
    on_exit;
 | 
						|
 | 
						|
    # p*
 | 
						|
    putenv;
 | 
						|
 | 
						|
    # q*
 | 
						|
    qsort;
 | 
						|
 | 
						|
    # r*
 | 
						|
    rand; rand_r; random; random_r; realpath; rpmatch;
 | 
						|
 | 
						|
    # s*
 | 
						|
    seed48; seed48_r; setcontext; setenv; setstate; setstate_r; srand; srand48;
 | 
						|
    srand48_r; srandom; srandom_r; step; strfmon; strtod; strtof; strtol;
 | 
						|
    strtold; strtoll; strtoq; strtoul; strtoull; strtouq; system;
 | 
						|
 | 
						|
    # u*
 | 
						|
    unsetenv;
 | 
						|
 | 
						|
    # w*
 | 
						|
    wcstombs; wctomb;
 | 
						|
  }
 | 
						|
  GLIBC_2.1 {
 | 
						|
    # a*
 | 
						|
    addseverity;
 | 
						|
 | 
						|
    # f*
 | 
						|
    fmtmsg;
 | 
						|
 | 
						|
    # g*
 | 
						|
    getcontext;
 | 
						|
 | 
						|
    # m*
 | 
						|
    makecontext;
 | 
						|
 | 
						|
    # s*
 | 
						|
    strtoimax; strtoumax; swapcontext;
 | 
						|
  }
 | 
						|
  GLIBC_2.1.1 {
 | 
						|
    # _*
 | 
						|
    _Exit;
 | 
						|
 | 
						|
    # i*
 | 
						|
    imaxabs; imaxdiv;
 | 
						|
  }
 | 
						|
  GLIBC_2.1.3 {
 | 
						|
    # used by new G++ ABI
 | 
						|
    __cxa_atexit; __cxa_finalize;
 | 
						|
  }
 | 
						|
  GLIBC_2.3 {
 | 
						|
    # Silent change in SUS.
 | 
						|
    realpath;
 | 
						|
  }
 | 
						|
  GLIBC_2.8 {
 | 
						|
    qsort_r;
 | 
						|
  }
 | 
						|
  GLIBC_2.10 {
 | 
						|
    quick_exit; __cxa_at_quick_exit;
 | 
						|
  }
 | 
						|
  GLIBC_2.13 {
 | 
						|
    __fentry__;
 | 
						|
  }
 | 
						|
  GLIBC_2.17 {
 | 
						|
    secure_getenv;
 | 
						|
  }
 | 
						|
  GLIBC_2.18 {
 | 
						|
    __cxa_thread_atexit_impl;
 | 
						|
  }
 | 
						|
  GLIBC_2.24 {
 | 
						|
    quick_exit;
 | 
						|
  }
 | 
						|
  GLIBC_2.25 {
 | 
						|
    # s*
 | 
						|
    strfromd; strfromf; strfroml;
 | 
						|
    getrandom; getentropy;
 | 
						|
  }
 | 
						|
%ifdef FLOAT128_VERSION
 | 
						|
  FLOAT128_VERSION {
 | 
						|
    strfromf128;
 | 
						|
    strtof128;
 | 
						|
    strtof128_l;
 | 
						|
  }
 | 
						|
%endif
 | 
						|
  GLIBC_2.27 {
 | 
						|
    # _Float64x functions, only present for some configurations.
 | 
						|
    strfromf64x;
 | 
						|
    strtof64x;
 | 
						|
    strtof64x_l;
 | 
						|
    # _Float32, _Float64 and _Float32x functions, for all configurations.
 | 
						|
    strfromf32; strfromf64; strfromf32x;
 | 
						|
    strtof32; strtof64; strtof32x;
 | 
						|
    strtof32_l; strtof64_l; strtof32x_l;
 | 
						|
  }
 | 
						|
  GLIBC_PRIVATE {
 | 
						|
    # functions which have an additional interface since they are
 | 
						|
    # are cancelable.
 | 
						|
    __libc_system;
 | 
						|
    # Variable which needs a dynamic symbol table entry.
 | 
						|
    __abort_msg;
 | 
						|
    # Used from other libraries
 | 
						|
    __libc_secure_getenv;
 | 
						|
    __call_tls_dtors;
 | 
						|
    __strtof_nan; __strtod_nan; __strtold_nan;
 | 
						|
  }
 | 
						|
}
 |