Alexander Puchmayr
2024-03-03 09:40:01 UTC
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?
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?