Hi,

I tried to tweak some settings regarding CFLAGS="march=x86-64-v2" on my 
buildhost and then install the binary packages on the target machines.

Buildhost: AMD Ryzen 7 2700; ld.so --help says:
Subdirectories of glibc-hwcaps directories, in priority order:
  x86-64-v4
  x86-64-v3 (supported, searched)
  x86-64-v2 (supported, searched)

Target platform: AMD A8-5500; ld.so --help says
Subdirectories of glibc-hwcaps directories, in priority order:
  x86-64-v4
  x86-64-v3
  x86-64-v2 (supported, searched)

I set CFLAGS="-O2 -pipe march=x86-64-v2" on the buildhost and performed a 
emerge -ev @world, re-creating all packages in binary form.

My expectation was that these packages would work on the target platform, but 
they don't. Error message "CPU ISA level is lower than required". 

Q: The binary (e.g. /usr/bin/bzip2) obviously "knows" what it requires. How do 
I find out what this is? Neither ldd, ld.so or the like seem to give me this 
information.

Q: Does the xpak format encode those requirements in any way, if so , how can 
I read them?

Q: Can I compile binary packages with multiple ISA sets and let portage on the 
target machine decide which sub-package to use depending on capabilities of 
the target CPU?





Reply via email to