glibc/sysdeps/x86
Joseph Myers 3e5760fcb4 Update _FloatN header support for C++ in GCC 13
GCC 13 adds support for _FloatN and _FloatNx types in C++, so breaking
the installed glibc headers that assume such support is not present.
GCC mostly works around this with fixincludes, but that doesn't help
for building glibc and its tests (glibc doesn't itself contain C++
code, but there's C++ code built for tests).  Update glibc's
bits/floatn-common.h and bits/floatn.h headers to handle the GCC 13
support directly.

In general the changes match those made by fixincludes, though I think
the ones in sysdeps/powerpc/bits/floatn.h, where the header tests
__LDBL_MANT_DIG__ == 113 or uses #elif, wouldn't match the existing
fixincludes patterns.

Some places involving special C++ handling in relation to _FloatN
support are not changed.  There's no need to change the
__HAVE_FLOATN_NOT_TYPEDEF definition (also in a form that wouldn't be
matched by the fixincludes fixes) because it's only used in relation
to macro definitions using features not supported for C++
(__builtin_types_compatible_p and _Generic).  And there's no need to
change the inline function overloads for issignaling, iszero and
iscanonical in C++ because cases where types have the same format but
are no longer compatible types are handled automatically by the C++
overload resolution rules.

This patch also does not change the overload handling for iseqsig, and
there I think changes *are* needed, beyond those in this patch or made
by fixincludes.  The way that overload is defined, via a template
parameter to a structure type, requires overloads whenever the types
are incompatible, even if they have the same format.  So I think we
need to add overloads with GCC 13 for every supported _FloatN and
_FloatNx type, rather than just having one for _Float128 when it has a
different ABI to long double as at present (but for older GCC, such
overloads must not be defined for types that end up defined as
typedefs for another type).

Tested with build-many-glibcs.py: compilers build for
aarch64-linux-gnu ia64-linux-gnu mips64-linux-gnu powerpc-linux-gnu
powerpc64le-linux-gnu x86_64-linux-gnu; glibcs build for
aarch64-linux-gnu ia64-linux-gnu i686-linux-gnu mips-linux-gnu
mips64-linux-gnu-n32 powerpc-linux-gnu powerpc64le-linux-gnu
x86_64-linux-gnu.
2022-09-28 20:10:08 +00:00
..
bits Update _FloatN header support for C++ in GCC 13 2022-09-28 20:10:08 +00:00
fpu math: x86: Use prefix for FP_INIT_ROUNDMODE 2022-09-05 10:54:41 -03:00
include Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nptl nptl: x86_64: Use same code for CURRENT_STACK_FRAME and stackinfo_get_sp 2022-08-31 09:04:27 -03:00
sys/platform Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
__longjmp_cancel.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
abi-note.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
atomic-machine.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
cacheinfo.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
cacheinfo.h x86: use default cache size if it cannot be determined [BZ #28784] 2022-01-17 19:42:46 +01:00
cet-control.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
check-cet.awk Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
configure elf: Replace PI_STATIC_AND_HIDDEN with opposite HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 2022-04-26 09:26:22 -07:00
configure.ac elf: Replace PI_STATIC_AND_HIDDEN with opposite HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 2022-04-26 09:26:22 -07:00
cpu-features-offsets.sym x86: Cleanup cpu-features-offsets.sym 2018-08-03 06:42:09 -07:00
cpu-features.c x86: Black list more Intel CPUs for TSX [BZ #27398] 2022-01-18 14:20:09 -08:00
cpu-tunables.c x86: Add support for building {w}memcmp{eq} with explicit ISA level 2022-07-05 16:42:42 -07:00
dl-cacheinfo.h x86: Add bounds x86_non_temporal_threshold 2022-06-15 14:25:55 -07:00
dl-cet.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-diagnostics-cpu.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-get-cpu-features.c x86: Add x86-64-vN check to early startup 2022-01-14 20:17:49 +01:00
dl-hwcap.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-isa-level.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-lookupcfg.h elf: Remove ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA 2022-06-15 11:29:55 -07:00
dl-minsigstacksize.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-new-hash.h elf: Optimize _dl_new_hash in dl-new-hash.h 2022-05-23 10:38:40 -05:00
dl-procinfo.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-procinfo.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-procruntime.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-prop.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-tunables.list Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
elf-initfini.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
elide.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
float128-abi.h Move __isnanf128 to libc.so 2021-03-30 14:58:19 +05:30
fpu_control.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
get-cpuid-feature-leaf.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
get-isa-level.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
hp-timing.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
init-arch.h x86: Add defines / utilities for making ISA specific x86 builds 2022-06-22 19:41:35 -07:00
isa-ifunc-macros.h x86: Move CPU_FEATURE{S}_{USABLE|ARCH}_P to isa-level.h 2022-06-27 12:52:58 -07:00
isa-level.c x86: Add defines / utilities for making ISA specific x86 builds 2022-06-22 19:41:35 -07:00
isa-level.h x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
jmp_buf-ssp.sym x86: Support shadow stack pointer in setjmp/longjmp 2018-07-14 05:59:53 -07:00
ldbl2mpn.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
ldsodefs.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc-start.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc-start.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
link_map.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
linkmap.h Rename bits/linkmap.h to linkmap.h (bug 14912). 2015-09-04 19:44:27 +00:00
longjmp.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Makeconfig Add _Float64x function aliases. 2017-11-27 14:16:47 +00:00
Makefile x86: Add missing rtm tests for strcmp family 2022-07-13 14:55:31 -07:00
string_private.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sysdep.h x86: Improve L to support L(XXX_SYMBOL (YYY, ZZZ)) 2022-02-05 16:42:17 -08:00
tininess.h Use sysdeps/x86/tininess.h for i386 and x86_64 2012-10-30 20:38:31 -07:00
tst-cet-legacy-1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-1a.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-2a.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-3.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-4.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-4a.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-4b.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-4c.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-5.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-5a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-5b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-6.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-6a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-6b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-7.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-8.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-9-static.c x86: Properly set usable CET feature bits [BZ #26625] 2021-01-29 03:58:11 -08:00
tst-cet-legacy-9.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-10-static.c x86: Properly set usable CET feature bits [BZ #26625] 2021-01-29 03:58:11 -08:00
tst-cet-legacy-10.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-4.c x86/CET: Add tests with legacy non-CET shared objects 2018-07-25 04:47:05 -07:00
tst-cet-legacy-mod-5.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-5a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-5b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-5c.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-6.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-6a.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-6b.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cet-legacy-mod-6c.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-cet-legacy-mod-6d.c Call _dl_open_check after relocation [BZ #24259] 2019-07-01 12:23:22 -07:00
tst-cpu-features-cpuinfo-static.c x86: Add PTWRITE feature detection [BZ #27346] 2021-02-07 08:01:14 -08:00
tst-cpu-features-cpuinfo.c x86: Don't check PTWRITE in tst-cpu-features-cpuinfo.c 2022-02-14 05:53:03 -08:00
tst-cpu-features-supports-static.c x86: Add PTWRITE feature detection [BZ #27346] 2021-02-07 08:01:14 -08:00
tst-cpu-features-supports.c x86: Use CHECK_FEATURE_PRESENT on PCONFIG 2022-02-14 05:53:03 -08:00
tst-get-cpu-features-static.c Add _dl_x86_cpu_features to rtld_global 2015-08-13 03:41:22 -07:00
tst-get-cpu-features.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-ifunc-isa-1-static.c x86: Check ifunc resolver with CPU_FEATURE_USABLE [BZ #27072] 2021-01-21 10:22:26 -08:00
tst-ifunc-isa-1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-ifunc-isa-2-static.c x86: Check ifunc resolver with CPU_FEATURE_USABLE [BZ #27072] 2021-01-21 10:22:26 -08:00
tst-ifunc-isa-2.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-ifunc-isa.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-isa-level-1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-isa-level-mod-1-baseline.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1-v2.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1-v3.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1-v4.c x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] 2021-01-07 13:10:13 -08:00
tst-isa-level-mod-1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-ldbl-nonnormal-printf.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-memchr-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-memcmp-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-memmove-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-memrchr-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-memset-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-setjmp-cet.c x86: Set header.feature_1 in TCB for always-on CET [BZ #27177] 2021-01-13 05:03:34 -08:00
tst-stack-align.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-strcasecmp-rtm.c x86: Add missing rtm tests for strcmp family 2022-07-13 14:55:31 -07:00
tst-strchr-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-strcmp-rtm.c x86: Add missing rtm tests for strcmp family 2022-07-13 14:55:31 -07:00
tst-strcpy-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-string-rtm.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-strlen-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-strncasecmp-rtm.c x86: Add missing rtm tests for strcmp family 2022-07-13 14:55:31 -07:00
tst-strncmp-rtm.c x86: Add missing rtm tests for strcmp family 2022-07-13 14:55:31 -07:00
tst-strrchr-rtm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-sysconf-cache-linesize-static.c x86: Handle _SC_LEVEL1_ICACHE_LINESIZE [BZ #27444] 2021-03-15 05:43:26 -07:00
tst-sysconf-cache-linesize.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-wcscmp-rtm.c x86: Add missing rtm tests for strcmp family 2022-07-13 14:55:31 -07:00
tst-wcsncmp-rtm.c x86: Test wcscmp RTM in the wcsncmp overflow case [BZ #28896] 2022-02-18 16:35:18 -06:00
Versions <sys/platform/x86.h>: Remove the C preprocessor magic 2021-01-21 05:58:17 -08:00