Problem with GNU_PROPERTY_X86_ISA_1_NEEDED

Manuel Lauss manuel.lauss@gmail.com
Fri Jan 29 09:13:46 GMT 2021


Hello,

I've been building a userland for an AMD E-450 (gcc march=btver1) on
a much more modern and faster x86 host (gcc-10.2.1, binutils-2.35.1, with
ld, not gold)

Now, the machine does not boot because up-to-date  glibc devel says this:

/lib64/libc.so.6: CPU ISA level is lower than required

readelf -n libc.so.6 says:
Displaying notes found in: .note.gnu.property
 Owner                Data size        Description
 GNU                  0x00000010       NT_GNU_PROPERTY_TYPE_0
     Properties: x86 ISA needed: x86-64-baseline, x86-64-v2, x86-64-v3

x86-64-v3 is supported by the build machine, but the btver1 is at most
baseline.  GCC does not generate this property; is this caused by ld?
If so, is there a commandline switch to force baseline?

I stripped the note from a few libs and applications, which got kernel
to boot systemd, however it eventually causes a hard reboot.


I also saw this on a kabylake core-i5 (gcc -march=skylake, same
toolchain as above):

$ readelf -n /lib64/libc.so.6

Displaying notes found in: .note.gnu.property
 Owner                Data size        Description
 GNU                  0x00000030       NT_GNU_PROPERTY_TYPE_0
     Properties: x86 ISA needed: x86-64-baseline, x86-64-v2, x86-64-v3
       x86 feature used: x86, x87, XMM, YMM, ZMM
       x86 ISA used: x86-64-baseline, x86-64-v2, x86-64-v3, x86-64-v4

x86-64-v4  and ZMM can't be correct here?  At least this one boots and
runs just fine.

Thank you!
     Manuel


More information about the Binutils mailing list