[PATCH 00/59] Add initial clang build support

Adhemerval Zanella adhemerval.zanella@linaro.org
Fri Oct 17 19:12:35 GMT 2025


This patchset adds initial support to build glibc with clang, extending
the work to build the testcases with clang initially done by H.J. Lu and
me [1].

I focused on x86_64-linux-gnu and aarch64-linux-gnu support. The minimum
clang version required is 18. This patchset supports the usual configure
options: --enable-stack-protector=all, --enable-profile=yes,
--enable-fortify-source=2, --enable-cet (x86_64), and
--enable-memory-tagging (aarch64).

Currently, only the gcc runtime support is available (libgcc and
libgcc_eh.a) and pthread_{cancel,exit}/backtrace expects libgcc_s.so to
be present. I am still working to enable a build with only clang
compile-rt.

Most of the patches are fixes to enable building without
--disable-werror. Some patches adjust for different semantics for
certain options, such as in the 'Build glibc with -ftrapping-math'
patch.

The testsuite with clang-18 on x86_64 shows:

FAIL: check-local-headers
UNSUPPORTED: assert/tst-assert-c++
UNSUPPORTED: assert/tst-assert-g++
FAIL: conform/ISO11/tgmath.h/conform
FAIL: conform/ISO99/tgmath.h/conform
FAIL: conform/POSIX2008/tgmath.h/conform
FAIL: conform/XOPEN2K/tgmath.h/conform
FAIL: conform/XOPEN2K8/tgmath.h/conform
FAIL: elf/check-localplt
FAIL: elf/ifuncmain1static
FAIL: elf/ifuncmain4
FAIL: elf/ifuncmain4static
FAIL: elf/ifuncmain6pie
FAIL: elf/ifuncmain7
FAIL: elf/ifuncmain7pic
FAIL: elf/ifuncmain7picstatic
FAIL: elf/ifuncmain7pie
FAIL: elf/ifuncmain7static
UNSUPPORTED: elf/ifuncmain9
UNSUPPORTED: elf/ifuncmain9pic
UNSUPPORTED: elf/ifuncmain9picstatic
UNSUPPORTED: elf/ifuncmain9pie
UNSUPPORTED: elf/ifuncmain9static
UNSUPPORTED: elf/tst-audit10
UNSUPPORTED: elf/tst-avx512
XPASS: elf/tst-ifunc-isa-1
XPASS: elf/tst-ifunc-isa-1-static
XPASS: elf/tst-ifunc-isa-2
XPASS: elf/tst-ifunc-isa-2-static
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
UNSUPPORTED: elf/tst-stringtable
FAIL: intl/tst-gettext
UNSUPPORTED: io/tst-faccessat-setuid
UNSUPPORTED: io/tst-futimens
UNSUPPORTED: io/tst-futimes
UNSUPPORTED: io/tst-lutimes
UNSUPPORTED: io/tst-utime
UNSUPPORTED: io/tst-utimensat
UNSUPPORTED: io/tst-utimes
UNSUPPORTED: libio/tst-fopen-compat
FAIL: math/test-float128-acos
FAIL: math/test-float128-acosh
FAIL: math/test-float128-acospi
FAIL: math/test-float128-asin
FAIL: math/test-float128-asinpi
FAIL: math/test-float128-atan2pi
FAIL: math/test-float128-atanh
FAIL: math/test-float128-atanpi
FAIL: math/test-float128-compoundn
FAIL: math/test-float128-cospi
FAIL: math/test-float128-erf
FAIL: math/test-float128-exp
FAIL: math/test-float128-exp10
FAIL: math/test-float128-exp10m1
FAIL: math/test-float128-exp2
FAIL: math/test-float128-exp2m1
FAIL: math/test-float128-expm1
FAIL: math/test-float128-fdim
FAIL: math/test-float128-fmax
FAIL: math/test-float128-fmaximum
FAIL: math/test-float128-fmaximum_mag
FAIL: math/test-float128-fmaximum_mag_num
FAIL: math/test-float128-fmaximum_num
FAIL: math/test-float128-fmaxmag
FAIL: math/test-float128-fmin
FAIL: math/test-float128-fminimum
FAIL: math/test-float128-fminimum_mag
FAIL: math/test-float128-fminimum_mag_num
FAIL: math/test-float128-fminimum_num
FAIL: math/test-float128-fminmag
FAIL: math/test-float128-isgreater
FAIL: math/test-float128-isgreaterequal
FAIL: math/test-float128-isless
FAIL: math/test-float128-islessequal
FAIL: math/test-float128-log
FAIL: math/test-float128-log10
FAIL: math/test-float128-log10p1
FAIL: math/test-float128-log1p
FAIL: math/test-float128-log2
FAIL: math/test-float128-log2p1
FAIL: math/test-float128-pow
FAIL: math/test-float128-powr
FAIL: math/test-float128-rsqrt
FAIL: math/test-float128-sinpi
FAIL: math/test-float128-sqrt
FAIL: math/test-float128-tanpi
FAIL: math/test-float128-y0
FAIL: math/test-float128-y1
FAIL: math/test-float128-yn
FAIL: math/test-float64x-fpclassify
FAIL: math/test-float64x-isinf
FAIL: math/test-ldouble-fpclassify
FAIL: math/test-ldouble-isinf

FAIL: math/test-ldouble-scalb
UNSUPPORTED: math/test-snan
FAIL: math/test-tgmath
FAIL: math/test-tgmath2
UNSUPPORTED: misc/tst-adjtimex
UNSUPPORTED: misc/tst-atomic
UNSUPPORTED: misc/tst-atomic-long
UNSUPPORTED: misc/tst-clock_adjtime
UNSUPPORTED: misc/tst-epoll-ioctls
UNSUPPORTED: misc/tst-fd_to_filename
UNSUPPORTED: misc/tst-ntp_adjtime
UNSUPPORTED: posix/tst-spawn-cgroup
FAIL: stdio-common/tst-setvbuf2
FAIL: stdio-common/tst-vfprintf-user-type
UNSUPPORTED: string/tst-memchr-rtm
UNSUPPORTED: string/tst-memcmp-rtm
UNSUPPORTED: string/tst-memmove-rtm
UNSUPPORTED: string/tst-memrchr-rtm
UNSUPPORTED: string/tst-memset-rtm
UNSUPPORTED: string/tst-strcasecmp-rtm
UNSUPPORTED: string/tst-strchr-rtm
UNSUPPORTED: string/tst-strcmp-rtm
UNSUPPORTED: string/tst-strcpy-rtm
UNSUPPORTED: string/tst-strlen-rtm
UNSUPPORTED: string/tst-strncasecmp-rtm
UNSUPPORTED: string/tst-strncmp-rtm
UNSUPPORTED: string/tst-strrchr-rtm
UNSUPPORTED: string/tst-wcscmp-rtm
UNSUPPORTED: string/tst-wcsncmp-rtm
UNSUPPORTED: time/tst-clock_settime
UNSUPPORTED: time/tst-ctime
UNSUPPORTED: time/tst-difftime
UNSUPPORTED: time/tst-mktime4
UNSUPPORTED: time/tst-settimeofday



While on aarch64 shows:

FAIL: check-local-headers
UNSUPPORTED: assert/tst-assert-c++
UNSUPPORTED: assert/tst-assert-g++
FAIL: conform/ISO11/tgmath.h/conform
FAIL: conform/ISO99/tgmath.h/conform
FAIL: conform/POSIX2008/tgmath.h/conform
FAIL: conform/XOPEN2K/tgmath.h/conform
FAIL: conform/XOPEN2K8/tgmath.h/conform
FAIL: elf/check-localplt
UNSUPPORTED: elf/ifuncmain9
UNSUPPORTED: elf/ifuncmain9pic
UNSUPPORTED: elf/ifuncmain9picstatic
UNSUPPORTED: elf/ifuncmain9pie
UNSUPPORTED: elf/ifuncmain9static
UNSUPPORTED: elf/tst-link-map-contiguous-main
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
UNSUPPORTED: elf/tst-stringtable
FAIL: elf/tst-tls23
FAIL: elf/tst-tlsdesc-pac
FAIL: gmon/tst-gmon-gprof
FAIL: gmon/tst-gmon-pie-gprof
FAIL: gmon/tst-gmon-static-gprof
FAIL: gmon/tst-gmon-static-pie-gprof
FAIL: gmon/tst-mcount-overflow-check
UNSUPPORTED: io/tst-faccessat-setuid
UNSUPPORTED: io/tst-futimens
UNSUPPORTED: io/tst-futimes
UNSUPPORTED: io/tst-lutimes
UNSUPPORTED: io/tst-utime
UNSUPPORTED: io/tst-utimensat
UNSUPPORTED: io/tst-utimes
UNSUPPORTED: libio/tst-fopen-compat
FAIL: malloc/tst-aligned-alloc-random-thread-cross-malloc-hugetlb2
FAIL: malloc/tst-aligned-alloc-random-thread-malloc-hugetlb2
FAIL: math/test-float128-acos
FAIL: math/test-float128-acosh
FAIL: math/test-float128-acospi
FAIL: math/test-float128-asin
FAIL: math/test-float128-asinpi
FAIL: math/test-float128-atan2pi
FAIL: math/test-float128-atanh
FAIL: math/test-float128-atanpi
FAIL: math/test-float128-compoundn
FAIL: math/test-float128-cospi
FAIL: math/test-float128-erf
FAIL: math/test-float128-exp
FAIL: math/test-float128-exp10
FAIL: math/test-float128-exp10m1
FAIL: math/test-float128-exp2
FAIL: math/test-float128-exp2m1
FAIL: math/test-float128-expm1
FAIL: math/test-float128-fdim
FAIL: math/test-float128-fmax
FAIL: math/test-float128-fmaximum
FAIL: math/test-float128-fmaximum_mag
FAIL: math/test-float128-fmaximum_mag_num
FAIL: math/test-float128-fmaximum_num
FAIL: math/test-float128-fmaxmag
FAIL: math/test-float128-fmin
FAIL: math/test-float128-fminimum
FAIL: math/test-float128-fminimum_mag
FAIL: math/test-float128-fminimum_mag_num
FAIL: math/test-float128-fminimum_num
FAIL: math/test-float128-fminmag
FAIL: math/test-float128-isgreater
FAIL: math/test-float128-isgreaterequal
FAIL: math/test-float128-isless
FAIL: math/test-float128-islessequal
FAIL: math/test-float128-j0
FAIL: math/test-float128-j1
FAIL: math/test-float128-log
FAIL: math/test-float128-log10
FAIL: math/test-float128-log10p1
FAIL: math/test-float128-log1p
FAIL: math/test-float128-log2
FAIL: math/test-float128-log2p1
FAIL: math/test-float128-pow
FAIL: math/test-float128-powr
FAIL: math/test-float128-rsqrt
FAIL: math/test-float128-sinpi
FAIL: math/test-float128-sqrt
FAIL: math/test-float128-tanpi
FAIL: math/test-float128-y0
FAIL: math/test-float128-y1
FAIL: math/test-float64x-acos
FAIL: math/test-float64x-acosh
FAIL: math/test-float64x-acospi
FAIL: math/test-float64x-asin
FAIL: math/test-float64x-asinpi
FAIL: math/test-float64x-atan2pi
FAIL: math/test-float64x-atanh
FAIL: math/test-float64x-atanpi
FAIL: math/test-float64x-compoundn
FAIL: math/test-float64x-cospi
FAIL: math/test-float64x-erf
FAIL: math/test-float64x-exp
FAIL: math/test-float64x-exp10
FAIL: math/test-float64x-exp10m1
FAIL: math/test-float64x-exp2
FAIL: math/test-float64x-exp2m1
FAIL: math/test-float64x-expm1
FAIL: math/test-float64x-fdim
FAIL: math/test-float64x-float128-sqrt
FAIL: math/test-float64x-fmax
FAIL: math/test-float64x-fmaximum
FAIL: math/test-float64x-fmaximum_mag
FAIL: math/test-float64x-fmaximum_mag_num
FAIL: math/test-float64x-fmaximum_num
FAIL: math/test-float64x-fmaxmag
FAIL: math/test-float64x-fmin
FAIL: math/test-float64x-fminimum
FAIL: math/test-float64x-fminimum_mag
FAIL: math/test-float64x-fminimum_mag_num
FAIL: math/test-float64x-fminimum_num
FAIL: math/test-float64x-fminmag
FAIL: math/test-float64x-isgreater
FAIL: math/test-float64x-isgreaterequal
FAIL: math/test-float64x-isless
FAIL: math/test-float64x-islessequal
FAIL: math/test-float64x-j0
FAIL: math/test-float64x-j1
FAIL: math/test-float64x-log
FAIL: math/test-float64x-log10
FAIL: math/test-float64x-log10p1
FAIL: math/test-float64x-log1p
FAIL: math/test-float64x-log2
FAIL: math/test-float64x-log2p1
FAIL: math/test-float64x-pow
FAIL: math/test-float64x-powr
FAIL: math/test-float64x-rsqrt
FAIL: math/test-float64x-sinpi
FAIL: math/test-float64x-sqrt
FAIL: math/test-float64x-tanpi
FAIL: math/test-float64x-y0
FAIL: math/test-float64x-y1
FAIL: math/test-ldouble-acos
FAIL: math/test-ldouble-acosh
FAIL: math/test-ldouble-acospi
FAIL: math/test-ldouble-asin
FAIL: math/test-ldouble-asinpi
FAIL: math/test-ldouble-atan2pi
FAIL: math/test-ldouble-atanh
FAIL: math/test-ldouble-atanpi
FAIL: math/test-ldouble-compoundn
FAIL: math/test-ldouble-cospi
FAIL: math/test-ldouble-erf
FAIL: math/test-ldouble-exp
FAIL: math/test-ldouble-exp10
FAIL: math/test-ldouble-exp10m1
FAIL: math/test-ldouble-exp2
FAIL: math/test-ldouble-exp2m1
FAIL: math/test-ldouble-expm1
FAIL: math/test-ldouble-fdim
FAIL: math/test-ldouble-fmax
FAIL: math/test-ldouble-fmaximum
FAIL: math/test-ldouble-fmaximum_mag
FAIL: math/test-ldouble-fmaximum_mag_num
FAIL: math/test-ldouble-fmaximum_num
FAIL: math/test-ldouble-fmaxmag
FAIL: math/test-ldouble-fmin
FAIL: math/test-ldouble-fminimum
FAIL: math/test-ldouble-fminimum_mag
FAIL: math/test-ldouble-fminimum_mag_num
FAIL: math/test-ldouble-fminimum_num
FAIL: math/test-ldouble-fminmag
FAIL: math/test-ldouble-isgreater
FAIL: math/test-ldouble-isgreaterequal
FAIL: math/test-ldouble-isless
FAIL: math/test-ldouble-islessequal
FAIL: math/test-ldouble-j0
FAIL: math/test-ldouble-j1
FAIL: math/test-ldouble-log
FAIL: math/test-ldouble-log10
FAIL: math/test-ldouble-log10p1
FAIL: math/test-ldouble-log1p
FAIL: math/test-ldouble-log2
FAIL: math/test-ldouble-log2p1
FAIL: math/test-ldouble-pow
FAIL: math/test-ldouble-powr
FAIL: math/test-ldouble-rsqrt
FAIL: math/test-ldouble-sinpi
FAIL: math/test-ldouble-sqrt
FAIL: math/test-ldouble-tanpi
FAIL: math/test-ldouble-y0
FAIL: math/test-ldouble-y1
UNSUPPORTED: math/test-snan
FAIL: math/test-tgmath
FAIL: math/test-tgmath2
UNSUPPORTED: misc/tst-aarch64-pkey
UNSUPPORTED: misc/tst-adjtimex
UNSUPPORTED: misc/tst-atomic
UNSUPPORTED: misc/tst-atomic-long
UNSUPPORTED: misc/tst-clock_adjtime
FAIL: misc/tst-copy_file_range-large
UNSUPPORTED: misc/tst-fd_to_filename
UNSUPPORTED: misc/tst-gcs-disabled
UNSUPPORTED: misc/tst-gcs-disabled-static
UNSUPPORTED: misc/tst-gcs-dlopen-disabled
UNSUPPORTED: misc/tst-gcs-dlopen-enforced
UNSUPPORTED: misc/tst-gcs-dlopen-optional-off
UNSUPPORTED: misc/tst-gcs-dlopen-optional-on
UNSUPPORTED: misc/tst-gcs-dlopen-override
UNSUPPORTED: misc/tst-gcs-enforced
UNSUPPORTED: misc/tst-gcs-enforced-abort
UNSUPPORTED: misc/tst-gcs-enforced-static
UNSUPPORTED: misc/tst-gcs-enforced-static-abort
UNSUPPORTED: misc/tst-gcs-noreturn
UNSUPPORTED: misc/tst-gcs-optional-off
UNSUPPORTED: misc/tst-gcs-optional-on
UNSUPPORTED: misc/tst-gcs-optional-static-off
UNSUPPORTED: misc/tst-gcs-optional-static-on
UNSUPPORTED: misc/tst-gcs-override
UNSUPPORTED: misc/tst-gcs-override-static
UNSUPPORTED: misc/tst-gcs-shared-disabled
UNSUPPORTED: misc/tst-gcs-shared-enforced-abort
UNSUPPORTED: misc/tst-gcs-shared-optional
UNSUPPORTED: misc/tst-gcs-shared-override
UNSUPPORTED: misc/tst-ntp_adjtime
UNSUPPORTED: misc/tst-pkey
FAIL: misc/tst-preadvwritev2
FAIL: misc/tst-preadvwritev64v2
UNSUPPORTED: misc/tst-sme-clone
UNSUPPORTED: misc/tst-sme-clone3
UNSUPPORTED: misc/tst-sme-fork
UNSUPPORTED: misc/tst-sme-jmp
UNSUPPORTED: misc/tst-sme-signal
UNSUPPORTED: misc/tst-sme-vfork
UNSUPPORTED: misc/tst-sme-za-state
UNSUPPORTED: posix/tst-spawn-cgroup
FAIL: stdio-common/tst-setvbuf2
FAIL: stdio-common/tst-vfprintf-user-type
UNSUPPORTED: time/tst-clock_settime
UNSUPPORTED: time/tst-ctime
UNSUPPORTED: time/tst-difftime
UNSUPPORTED: time/tst-mktime4
UNSUPPORTED: time/tst-settimeofday



The azanella/clang branch [2] has more patches to fix some of the
regressions. I am still working on checking the rest of the failures.

[1] https://sourceware.org/pipermail/libc-alpha/2024-December/163247.html
[2] https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/azanella/clang

Adhemerval Zanella (59):
  stdlib: Remove -Wmaybe-uninitialized supression on setenv.c
  stdlib: longlong.h: Do no use asm input cast for clang
  Disable __USE_EXTERN_INLINES for clang
  configure: Use -Wno-maybe-uninitialized iff compiler supports it
  Suppress -Wmaybe-uninitialized only for gcc
  nptl: Fix Wincompatible-pointer-types on clang
  posix: Suppress -Wignored-attributes when building for confstr.c with
    clang
  misc: Fix clang -Wstring-plus-int warnings on syslog
  argp: Expand argp_usage, _option_is_short, and _option_is_end
  nss: Suppress clang -Wstring-plus-int on __nss_shlib_revision
    definition
  sunrpc: Remove extra parenthesis on comparison
  sunrpc: Suppress clang -Wgnu-variable-sized-type-not-at-end warning on
    struct cmessage
  elf: Fix clang -Wstring-plus-int on rtld.c
  locale: Fix implicit conversion on collate_finish
  iconvdata: Fix clang -Wstring-plus-int clang warning
  iconvdata: Remove use of GNU old-style field designator extension
  catgets: Remove catgets/config.h
  math: Suppress clang -Wabsolute-value warning on
    math_check_force_underflow
  math: use fabs on __ieee754_lgamma_r
  math: Suppress clang -Wincompatible-library-redeclaration on s_llround
  Use $(config-cflags-wno-ignored-attributes) on some files
  string: Use asm alias instead of symbol redirections for stpcpy and
    mempcpy
  posix: Defined _POSIX_VDISABLE as integer literal
  support: Use CHAR_MAX as maximum value
  math: Suppress more aliases builtin type conflicts
  stdio: Fix -Wtautological-constant-out-of-range-compare on clang
  support: Handle clang support/dtotimespec.c on dtotimespec
  x86: Use -msse2avx iff compiler supports it
  x86: math: Avoid the use of __libgcc_cmp_return__ for __gcc_CMPtype
  x86: Fix strstr ifunc on clang
  x86: Use __always_inline on ifunc auxiliary functions
  x86: Adapt "%v" usage on clang to emit VEX enconding
  x86: Fix modf{f} build on clang
  x86: Fix THREAD_GSCOPE_RESET_FLAG build on clang
  aarch64: Use NO_MATH_REDIRECT on pow_advsimd.c
  aarch64: Fix gcs linker flags
  math: Fix modf{f} build on clang
  Fix -Wno-ignored-attributes configure check
  elf: Suppress unused function clang warning for __ifunc_resolver
  elf: Only defines _dl_tls_allocate_active for SHARED
  linux: Fix function point cast on vDSO handling
  Add fall-through between switch labels annotations
  Build glibc with -ftrapping-math
  Supress unused command arguments warning with clang
  Check if linker sets --no-undefined-version by default
  Adjust stdint for clang-20
  elf: Fix tunable handing with clang
  elf: Fix localplt issue with clang
  stdio: Only use __va_arg_pack if compiler supports it
  malloc: Use INT_ADD_OVERFLOW instead of __builtin_add_overflow_p
  poix: Only enable -Wmaybe-uninitialized suppression on gcc
  termios: Suppress clang -Winitializer-overrider on ___cbaud_to_speed
  gmon: Only used -fno-tree-loop-distribute-patterns if compiler
    supports it
  Enable --enable-fortify-source with clang
  Handle abort call for -fexceptions call
  math: Fix compare sort function on compoundn
  sunrpc: Fix clang build
  aarch64: Fix tst-ifunc-arg-4 on clang-18
  configure: remove overly restrictive check for clang

 Makeconfig                                    |   3 +
 Makerules                                     |   2 +-
 argp/argp-xinl.c                              |  34 ++++--
 argp/argp.h                                   |  10 +-
 catgets/config.h                              |  14 ---
 catgets/gencat.c                              |   3 +-
 configure                                     | 102 +++++++++++++++++-
 configure.ac                                  |  44 +++++++-
 debug/vasprintf_chk.c                         |   1 +
 debug/vfprintf_chk.c                          |   1 +
 elf/Makefile                                  |  13 +++
 elf/dl-exception.c                            |   4 +-
 elf/dl-find_object.h                          |   2 +-
 elf/dl-load.c                                 |   2 +-
 elf/dl-lookup.c                               |   2 +-
 elf/dl-printf.c                               |   1 +
 elf/dl-tls.c                                  |   2 +
 elf/dl-tunables.c                             |  13 ++-
 elf/ldconfig.c                                |   2 +-
 elf/rtld.c                                    |   6 +-
 gmon/Makefile                                 |   5 +-
 hurd/hurdsig.c                                |   2 +-
 iconv/gconv_charset.c                         |   2 +-
 iconv/loop.c                                  |   2 +-
 iconvdata/cns11643.h                          |   2 +-
 iconvdata/gbk.c                               |   6 +-
 iconvdata/ibm1008.h                           |  20 ++--
 iconvdata/ibm1025.h                           |  10 +-
 iconvdata/ibm1097.h                           |  32 +++---
 iconvdata/ibm1112.h                           |  22 ++--
 iconvdata/ibm1122.h                           |  10 +-
 iconvdata/ibm1123.h                           |  12 +--
 iconvdata/ibm1130.h                           |  20 ++--
 iconvdata/ibm1137.h                           |  10 +-
 iconvdata/ibm1140.h                           |   8 +-
 iconvdata/ibm1141.h                           |   8 +-
 iconvdata/ibm1142.h                           |   8 +-
 iconvdata/ibm1143.h                           |   8 +-
 iconvdata/ibm1144.h                           |   8 +-
 iconvdata/ibm1145.h                           |   8 +-
 iconvdata/ibm1146.h                           |   8 +-
 iconvdata/ibm1147.h                           |   8 +-
 iconvdata/ibm1148.h                           |   8 +-
 iconvdata/ibm1149.h                           |   8 +-
 iconvdata/ibm1153.h                           |  24 ++---
 iconvdata/ibm1154.h                           |  12 +--
 iconvdata/ibm1155.h                           |  12 +--
 iconvdata/ibm1156.h                           |  24 ++---
 iconvdata/ibm1157.h                           |  12 +--
 iconvdata/ibm1158.h                           |  14 +--
 iconvdata/ibm1166.h                           |  26 ++---
 iconvdata/ibm1167.h                           |  44 ++++----
 iconvdata/ibm12712.h                          |  22 ++--
 iconvdata/ibm16804.h                          |  22 ++--
 iconvdata/ibm4517.h                           |  24 ++---
 iconvdata/ibm4899.h                           |  16 +--
 iconvdata/ibm4909.h                           |  12 +--
 iconvdata/ibm4971.h                           |  12 +--
 iconvdata/ibm5347.h                           |  24 ++---
 iconvdata/ibm803.h                            |  10 +-
 iconvdata/ibm901.h                            |  66 ++++++------
 iconvdata/ibm902.h                            |  58 +++++-----
 iconvdata/ibm9030.h                           |   6 +-
 iconvdata/ibm9066.h                           |   8 +-
 iconvdata/ibm921.h                            |  22 ++--
 iconvdata/ibm9448.h                           |  62 +++++------
 iconvdata/iso-2022-cn-ext.c                   |   6 +-
 iconvdata/iso-2022-cn.c                       |   2 +-
 include/arpa/inet.h                           |   2 -
 include/bits/inet-fortified-decl.h            |   5 +
 include/bits/stdio2-decl.h                    |   7 ++
 include/bits/string_fortified.h               |  15 +++
 include/bits/syslog-decl.h                    |   4 +
 include/bits/unistd-decl.h                    |   6 ++
 include/bits/wchar2-decl.h                    |   5 +
 include/features.h                            |   2 +-
 include/libc-diag.h                           |   3 +
 include/libc-symbols.h                        |   6 +-
 include/stdio.h                               |  17 ++-
 include/string.h                              |   4 +-
 include/unistd.h                              |   4 -
 include/wchar.h                               |   1 -
 inet/bits/inet-fortified.h                    |   2 +
 inet/ruserpass.c                              |   2 +-
 intl/Makefile                                 |   3 +-
 libio/Makefile                                |   1 +
 locale/programs/charmap-kw.h                  |   8 +-
 locale/programs/charmap.c                     |   4 +-
 locale/programs/ld-collate.c                  |   2 +-
 locale/programs/locfile-kw.h                  |   6 +-
 locale/programs/repertoire.c                  |   4 +-
 locale/weight.h                               |   6 +-
 locale/weightwc.h                             |   8 +-
 malloc/malloc-check.c                         |   2 +-
 malloc/malloc.c                               |   5 +-
 malloc/mcheck-impl.c                          |   2 +-
 math/Makefile                                 |  53 ++++++++-
 math/math-underflow.h                         |  11 +-
 math/s_compoundn_template.c                   |   4 +-
 misc/mntent_r.c                               |   4 +-
 misc/sys/cdefs.h                              |  10 ++
 misc/syslog.c                                 |   9 +-
 nis/nis_call.c                                |   2 +-
 nis/nis_table.c                               |   2 +-
 nptl/pthread_join_common.c                    |   2 +-
 nptl/pthread_mutex_trylock.c                  |   2 +-
 nptl/pthread_mutex_unlock.c                   |   2 +-
 nptl_db/thread_dbP.h                          |   2 +-
 nss/digits_dots.c                             |   2 +-
 nss/nss_hash.c                                |   6 +-
 nss/nss_module.c                              |   8 ++
 posix/Makefile                                |   1 +
 posix/execvpe.c                               |   1 +
 posix/fnmatch.c                               |   2 +-
 posix/fnmatch_loop.c                          |   8 +-
 posix/regex_internal.h                        |   2 +-
 posix/regexec.c                               |   2 +-
 posix/wordexp.c                               |   4 +-
 resolv/base64.c                               |   2 +-
 resolv/ns_ttl.c                               |   8 +-
 resolv/nss_dns/dns-host.c                     |   4 +-
 resolv/res_hconf.c                            |   1 +
 resolv/res_query.c                            |   6 +-
 resolv/res_send.c                             |  10 +-
 stdio-common/Makefile                         |  16 ++-
 stdio-common/printf-parsemb.c                 |   2 +-
 stdio-common/vfprintf-internal.c              |   7 +-
 stdio-common/vfscanf-internal.c               |   6 +-
 stdlib/longlong.h                             |  48 +++++----
 stdlib/setenv.c                               |  14 +--
 stdlib/stdint.h                               |   2 +
 string/Makefile                               |   3 +
 string/strcoll_l.c                            |   4 +-
 string/wordcopy.c                             |   6 +-
 sunrpc/clnt_udp.c                             |   2 +-
 sunrpc/key_call.c                             |   2 +-
 sunrpc/rtime.c                                |   2 +-
 sunrpc/svc_tcp.c                              |   2 +-
 sunrpc/svc_unix.c                             |   9 +-
 sunrpc/xdr.c                                  |  12 +--
 support/dtotimespec.c                         |   2 +-
 support/support_process_state.c               |   4 +-
 sysdeps/aarch64/fpu/fpu_control.h             |   1 +
 sysdeps/aarch64/fpu/pow_advsimd.c             |   1 +
 sysdeps/aarch64/tst-ifunc-arg-4.c             |   2 +-
 sysdeps/generic/symbol-hacks.h                |  31 ++++++
 sysdeps/i386/fpu/fclrexcpt.c                  |   5 +-
 sysdeps/i386/fpu/fedisblxcpt.c                |   5 +-
 sysdeps/i386/fpu/feenablxcpt.c                |   5 +-
 sysdeps/i386/fpu/fegetenv.c                   |   3 +-
 sysdeps/i386/fpu/fegetmode.c                  |   3 +-
 sysdeps/i386/fpu/feholdexcpt.c                |   5 +-
 sysdeps/i386/fpu/fesetenv.c                   |   6 +-
 sysdeps/i386/fpu/fesetexcept.c                |   6 +-
 sysdeps/i386/fpu/fesetmode.c                  |   6 +-
 sysdeps/i386/fpu/fesetround.c                 |   7 +-
 sysdeps/i386/fpu/feupdateenv.c                |   3 +-
 sysdeps/i386/fpu/fgetexcptflg.c               |   5 +-
 sysdeps/i386/fpu/fsetexcptflg.c               |   5 +-
 sysdeps/i386/fpu/ftestexcept.c                |   3 +-
 sysdeps/i386/setfpucw.c                       |   7 +-
 sysdeps/ieee754/dbl-64/Makefile               |   3 +
 sysdeps/ieee754/dbl-64/e_lgamma_r.c           |  14 +--
 sysdeps/ieee754/dbl-64/s_log1p.c              |   2 +-
 sysdeps/ieee754/dbl-64/s_modf.c               |   1 +
 sysdeps/ieee754/flt-32/s_modff.c              |   1 +
 sysdeps/ieee754/ldbl-128/k_tanl.c             |   2 +-
 .../ldbl-128ibm-compat/ieee128-snprintf.c     |   4 +
 .../ldbl-128ibm-compat/ieee128-syslog.c       |   5 +-
 sysdeps/ieee754/ldbl-128ibm/k_tanl.c          |   2 +-
 sysdeps/ieee754/ldbl-96/e_lgammal_r.c         |   6 +-
 sysdeps/ieee754/ldbl-96/k_tanl.c              |   2 +-
 sysdeps/ieee754/soft-fp/s_ddivl.c             |   2 +-
 sysdeps/ieee754/soft-fp/s_dfmal.c             |   2 +-
 sysdeps/ieee754/soft-fp/s_dsqrtl.c            |   2 +-
 sysdeps/ieee754/soft-fp/s_fdiv.c              |   2 +-
 sysdeps/ieee754/soft-fp/s_fdivl.c             |   3 +-
 sysdeps/ieee754/soft-fp/s_ffma.c              |   2 +-
 sysdeps/ieee754/soft-fp/s_ffmal.c             |   2 +-
 sysdeps/ieee754/soft-fp/s_fma.c               |   2 +-
 sysdeps/ieee754/soft-fp/s_fmaf.c              |   2 +-
 sysdeps/ieee754/soft-fp/s_fmal.c              |   2 +-
 sysdeps/ieee754/soft-fp/s_fsqrt.c             |   2 +-
 sysdeps/mach/hurd/bits/posix_opt.h            |   2 +-
 sysdeps/nptl/lowlevellock.h                   |   4 +-
 sysdeps/unix/sysv/linux/aarch64/Makefile      |  48 ++++-----
 sysdeps/unix/sysv/linux/bits/posix_opt.h      |   2 +-
 .../unix/sysv/linux/convert_scm_timestamps.c  |   2 +-
 sysdeps/unix/sysv/linux/gettimeofday.c        |   2 +-
 sysdeps/unix/sysv/linux/powerpc/libc-vdso.h   |   2 +-
 sysdeps/unix/sysv/linux/speed.c               |   6 ++
 sysdeps/unix/sysv/linux/time.c                |   2 +-
 sysdeps/x86/cpu-features.c                    |   6 +-
 sysdeps/x86/fpu/fenv_private.h                |  43 ++++----
 sysdeps/x86/fpu/math-inline-asm.h             |  78 ++++++++++++++
 sysdeps/x86/fpu/math_private.h                |   8 +-
 sysdeps/x86/fpu/sfp-machine.h                 |  14 ++-
 sysdeps/x86/fpu/test-fenv-sse-2.c             |  21 +---
 sysdeps/x86/readelflib.c                      |   2 +-
 sysdeps/x86_64/configure                      |  24 +++++
 sysdeps/x86_64/configure.ac                   |  11 ++
 sysdeps/x86_64/dl-machine.h                   |   4 +-
 sysdeps/x86_64/fpu/fclrexcpt.c                |   5 +-
 sysdeps/x86_64/fpu/fedisblxcpt.c              |   5 +-
 sysdeps/x86_64/fpu/feenablxcpt.c              |   5 +-
 sysdeps/x86_64/fpu/fegetenv.c                 |  12 ++-
 sysdeps/x86_64/fpu/fegetmode.c                |   3 +-
 sysdeps/x86_64/fpu/feholdexcpt.c              |  10 +-
 sysdeps/x86_64/fpu/fesetenv.c                 |   9 +-
 sysdeps/x86_64/fpu/fesetexcept.c              |   7 +-
 sysdeps/x86_64/fpu/fesetmode.c                |   6 +-
 sysdeps/x86_64/fpu/fesetround.c               |   5 +-
 sysdeps/x86_64/fpu/feupdateenv.c              |   4 +-
 sysdeps/x86_64/fpu/fgetexcptflg.c             |   5 +-
 sysdeps/x86_64/fpu/fraiseexcpt.c              |  18 +---
 sysdeps/x86_64/fpu/fsetexcptflg.c             |   5 +-
 sysdeps/x86_64/fpu/ftestexcept.c              |   5 +-
 sysdeps/x86_64/fpu/multiarch/Makefile         |  14 +--
 sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h |   2 +-
 sysdeps/x86_64/fpu/multiarch/ifunc-fma.h      |   2 +-
 sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h     |   2 +-
 sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h   |   2 +-
 sysdeps/x86_64/fpu/multiarch/s_modf-avx.c     |   1 +
 sysdeps/x86_64/fpu/multiarch/s_modf-sse4_1.c  |   1 +
 sysdeps/x86_64/fpu/multiarch/s_modff-avx.c    |   1 +
 sysdeps/x86_64/fpu/multiarch/s_modff-sse4_1.c |   1 +
 sysdeps/x86_64/multiarch/ifunc-avx2.h         |   2 +-
 sysdeps/x86_64/multiarch/ifunc-evex.h         |   2 +-
 sysdeps/x86_64/multiarch/ifunc-memcmp.h       |   2 +-
 sysdeps/x86_64/multiarch/ifunc-memmove.h      |   2 +-
 sysdeps/x86_64/multiarch/ifunc-memset.h       |   2 +-
 sysdeps/x86_64/multiarch/ifunc-sse4_2.h       |   2 +-
 sysdeps/x86_64/multiarch/ifunc-strcasecmp.h   |   2 +-
 sysdeps/x86_64/multiarch/ifunc-strcpy.h       |   2 +-
 sysdeps/x86_64/multiarch/ifunc-strncpy.h      |   2 +-
 sysdeps/x86_64/multiarch/ifunc-wcs.h          |   1 +
 sysdeps/x86_64/multiarch/ifunc-wcslen.h       |   1 +
 sysdeps/x86_64/multiarch/ifunc-wmemset.h      |   1 +
 sysdeps/x86_64/multiarch/strchr.c             |   2 +-
 sysdeps/x86_64/multiarch/strcmp.c             |   2 +-
 sysdeps/x86_64/multiarch/strncmp.c            |   2 +-
 sysdeps/x86_64/multiarch/strstr.c             |  20 ++--
 sysdeps/x86_64/multiarch/wcscpy.c             |   2 +-
 sysdeps/x86_64/nptl/tls.h                     |  21 +++-
 time/strftime_l.c                             |   4 +-
 time/strptime_l.c                             |   4 +-
 timezone/Makefile                             |   2 +-
 247 files changed, 1328 insertions(+), 822 deletions(-)
 delete mode 100644 catgets/config.h
 create mode 100644 sysdeps/x86/fpu/math-inline-asm.h

-- 
2.43.0



More information about the Libc-alpha mailing list