[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