On Mon, Nov 16, 2020 at 4:58 PM Jeff Law <l...@redhat.com> wrote: > > > On 11/9/20 11:57 AM, H.J. Lu via Gcc-patches wrote: > > GCC 11 supports -march=x86-64-v[234] to enable x86 micro-architecture ISA > > levels: > > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97250 > > > > Binutils has been updated to support GNU_PROPERTY_X86_ISA_1_V[234] marker: > > > > https://gitlab.com/x86-psABIs/x86-64-ABI/-/merge_requests/13 > > > > with > > > > commit b0ab06937385e0ae25cebf1991787d64f439bf12 > > Author: H.J. Lu <hjl.to...@gmail.com> > > Date: Fri Oct 30 06:49:57 2020 -0700 > > > > x86: Support GNU_PROPERTY_X86_ISA_1_BASELINE marker > > > > and > > > > commit 32930e4edbc06bc6f10c435dbcc63131715df678 > > Author: H.J. Lu <hjl.to...@gmail.com> > > Date: Fri Oct 9 05:05:57 2020 -0700 > > > > x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker > > > > in x86 ELF binaries. > > > > Add -mneeded to emit GNU_PROPERTY_X86_ISA_1_NEEDED property to indicate > > the micro-architecture ISA level required to execute the binary. > > > > gcc/ > > > > * config.gcc: Replace cet.o with gnu-property.o. Replace > > i386/t-cet with i386/t-gnu-property. > > * config/i386/cet.c: Renamed to ... > > * config/i386/gnu-property.c: This. > > (emit_gnu_property): New function. > > (file_end_indicate_exec_stack_and_cet): Renamed to ... > > (file_end_indicate_exec_stack_and_gnu_property): This. Call > > emit_gnu_property to generate GNU_PROPERTY_X86_FEATURE_1_AND and > > GNU_PROPERTY_X86_ISA_1_NEEDED properties. > > * config/i386/i386.opt (mneeded): New. > > * config/i386/linux-common.h (file_end_indicate_exec_stack_and_cet): > > Renamed to ... > > (file_end_indicate_exec_stack_and_gnu_property): This. > > (TARGET_ASM_FILE_END): Updated. > > * config/i386/t-cet: Renamed to ... > > * config/i386/t-gnu-property: This. > > (cet.o): Renamed to ... > > (gnu-property.o): This. > > * doc/invoke.texi: Document -mneeded. > > > > gcc/testsuite/ > > > > * gcc.target/i386/x86-needed-1.c: New test. > > * gcc.target/i386/x86-needed-2.c: Likewise. > > * gcc.target/i386/x86-needed-3.c: Likewise. > > Would it make sense to have -mneeded on by default if we detect a > suitable assembler? The goal being that on the distro level we'd have > the appropriate markup for everything in the distro without having to > worry about injecting the -mneeded flag into every build.
It is OK to set the file level USED ISA bits. But the file level NEEDED ISA bits should be set by developers. Otherwise, function multiversioning with AVX512 will lead to output marked with ISA v4 needed which isn't true. -- H.J.