powerpc: Define USE_PPC64_NOTOC iff compiler supports it
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Sat, 6 Nov 2021 12:38:09 +0000 (09:38 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 22 Nov 2021 17:49:11 +0000 (14:49 -0300)
commitaac54dcd378209bbdddbcec749561b1d8f167d11
tree5f3102ec38089693210ca3a9d6a7369a3fa54129
parentbc801b3a40f3a9bc8f24f1d0fdc39413874c3172
powerpc: Define USE_PPC64_NOTOC iff compiler supports it

The @notoc usage only yields an advantage on ISA 3.1+ machine (power10)
and for ld.bfd also when it sees pcrel relocations used on the code
(generated if compiler targets ISA 3.1+).  On bfd case ISA 3.1+
instruction on stubs are used iff linker also sees the new pc-relative
relocations (for instance R_PPC64_D34), otherwise it generates default
stubs (ppc64_elf_check_relocs:4700).

This patch also help on linkers that do not implement this optimization,
since building for older ISA (such as 3.0 / power9) will also trigger
power10 stubs generation in the assembly code uses the NOTOC imacro.

Checked on powerpc64le-linux-gnu.

Reviewed-by: Fangrui Song <maskray@google.com>
Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
sysdeps/powerpc/powerpc64/configure
sysdeps/powerpc/powerpc64/configure.ac