** Description changed: + [Impact] + + * glibc / ld does not know about new power10 capability, and thus + unable to load libraries optimizied for power10, on power10 hardware. + + [Test Case] + + * sudo rm /etc/ld.so.cache + * LD_SHOW_AUXV=yes LD_DEBUG=libs /bin/true + + Expectations are that in AT_HWCAP2 power10 specific features are listed + AT_PLATFORM is set to power10 + and that search paths include /power10/ directories + + + The sample output from power8 machine is this + + $ LD_SHOW_AUXV=yes LD_DEBUG=libs /bin/true + AT_DCACHEBSIZE: 0x80 + AT_ICACHEBSIZE: 0x80 + AT_UCACHEBSIZE: 0x0 + AT_SYSINFO_EHDR: 0x73b685b20000 + AT_L1I_CACHESIZE: 32768 + AT_L1I_CACHEGEOMETRY: 128B line size, 8-way set associative + AT_L1D_CACHESIZE: 65536 + AT_L1D_CACHEGEOMETRY: 128B line size, 8-way set associative + AT_L2_CACHESIZE: 524288 + AT_L2_CACHEGEOMETRY: 128B line size, 8-way set associative + AT_L3_CACHESIZE: 8388608 + AT_L3_CACHEGEOMETRY: 128B line size, 8-way set associative + AT_HWCAP: true_le archpmu vsx arch_2_06 dfp ic_snoop smt mmu fpu altivec ppc64 ppc32 + AT_PAGESZ: 65536 + AT_CLKTCK: 100 + AT_PHDR: 0x5b376320040 + AT_PHENT: 56 + AT_PHNUM: 9 + AT_BASE: 0x73b685b40000 + AT_FLAGS: 0x0 + AT_ENTRY: 0x5b376321ab0 + AT_UID: 1000 + AT_EUID: 1000 + AT_GID: 1000 + AT_EGID: 1000 + AT_SECURE: 0 + AT_RANDOM: 0x7fffc779b3f2 + AT_HWCAP2: htm-nosc vcrypto tar isel ebb dscr htm arch_2_07 + AT_EXECFN: /bin/true + AT_PLATFORM: power8 + AT_BASE_PLATFORM: power8 + 277374: find library=libc.so.6 [0]; searching + 277374: search cache=/etc/ld.so.cache + 277374: search path=/lib/powerpc64le-linux-gnu/tls/power8/altivec/dfp:/lib/powerpc64le-linux-gnu/tls/power8/altivec:/lib/powerpc64le-linux-gnu/tls/power8/dfp:/lib/powerpc64le-linux-gnu/tls/power8:/lib/powerpc64le-linux-gnu/tls/altivec/dfp:/lib/powerpc64le-linux-gnu/tls/altivec:/lib/powerpc64le-linux-gnu/tls/dfp:/lib/powerpc64le-linux-gnu/tls:/lib/powerpc64le-linux-gnu/power8/altivec/dfp:/lib/powerpc64le-linux-gnu/power8/altivec:/lib/powerpc64le-linux-gnu/power8/dfp:/lib/powerpc64le-linux-gnu/power8:/lib/powerpc64le-linux-gnu/altivec/dfp:/lib/powerpc64le-linux-gnu/altivec:/lib/powerpc64le-linux-gnu/dfp:/lib/powerpc64le-linux-gnu:/usr/lib/powerpc64le-linux-gnu/tls/power8/altivec/dfp:/usr/lib/powerpc64le-linux-gnu/tls/power8/altivec:/usr/lib/powerpc64le-linux-gnu/tls/power8/dfp:/usr/lib/powerpc64le-linux-gnu/tls/power8:/usr/lib/powerpc64le-linux-gnu/tls/altivec/dfp:/usr/lib/powerpc64le-linux-gnu/tls/altivec:/usr/lib/powerpc64le-linux-gnu/tls/dfp:/usr/lib/powerpc64le-linux-gnu/tls:/usr/lib/powerpc64le-linux-gnu/power8/altivec/dfp:/usr/lib/powerpc64le-linux-gnu/power8/altivec:/usr/lib/powerpc64le-linux-gnu/power8/dfp:/usr/lib/powerpc64le-linux-gnu/power8:/usr/lib/powerpc64le-linux-gnu/altivec/dfp:/usr/lib/powerpc64le-linux-gnu/altivec:/usr/lib/powerpc64le-linux-gnu/dfp:/usr/lib/powerpc64le-linux-gnu:/lib/tls/power8/altivec/dfp:/lib/tls/power8/altivec:/lib/tls/power8/dfp:/lib/tls/power8:/lib/tls/altivec/dfp:/lib/tls/altivec:/lib/tls/dfp:/lib/tls:/lib/power8/altivec/dfp:/lib/power8/altivec:/lib/power8/dfp:/lib/power8:/lib/altivec/dfp:/lib/altivec:/lib/dfp:/lib:/usr/lib/tls/power8/altivec/dfp:/usr/lib/tls/power8/altivec:/usr/lib/tls/power8/dfp:/usr/lib/tls/power8:/usr/lib/tls/altivec/dfp:/usr/lib/tls/altivec:/usr/lib/tls/dfp:/usr/lib/tls:/usr/lib/power8/altivec/dfp:/usr/lib/power8/altivec:/usr/lib/power8/dfp:/usr/lib/power8:/usr/lib/altivec/dfp:/usr/lib/altivec:/usr/lib/dfp:/usr/lib (system search path) + 277374: trying file=/lib/powerpc64le-linux-gnu/tls/power8/altivec/dfp/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/tls/power8/altivec/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/tls/power8/dfp/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/tls/power8/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/tls/altivec/dfp/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/tls/altivec/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/tls/dfp/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/tls/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/power8/altivec/dfp/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/power8/altivec/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/power8/dfp/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/power8/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/altivec/dfp/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/altivec/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/dfp/libc.so.6 + 277374: trying file=/lib/powerpc64le-linux-gnu/libc.so.6 + 277374: + 277374: + 277374: calling init: /lib/powerpc64le-linux-gnu/libc.so.6 + 277374: + 277374: + 277374: initialize program: /bin/true + 277374: + 277374: + 277374: transferring control: /bin/true + 277374: + 277374: + 277374: calling fini: /bin/true [0] + 277374: + + + [Regression Potential] + + * The additional parsing of the new constant for HWCAP / PLATFORM are + backwards compatible, however, it would be nice for the kernel to have + the constants backported too. Such that focal kernel has support for + POWER10 platform too. These will arrive in the hwe kernel, but should be + backported to the generic kernel too. + + At the moment Ubuntu, does not provide any power10 libraries, thus only + locally built/provided libraries could be installed and loaded from the + power10 paths. If such files are present on disk, on a power10 machines, + and happen to be buggy and/or abi incompatible, hard to debug crashes + may occur. However, this is no different to locally built + power9/avx2/avx512/lse etc built libraries on other architectures. + + There might be other pieces of software in focal unprepared for power10 + AT_PLATFORM as it does sort lower than power9, when similar stanzas + looped in the past unintended breakage may also occur. + + If incompatibilities with power10 support are detected, they would need + to be fixed up under HWE banner. + + Note there are no current power10 hardware in production, thus these + changes can currently only affect pre-release hardware. + + [Other Info] + + * Original bug report + + == Comment: #0 - Tulio Magno Quites Machado Filho <tuli...@br.ibm.com> - 2020-06-04 09:30:54 == Add the basic enablement of POWER10 in glibc (AT_PLATFORM and AT_HWCAP2) allowing userspace software to use POWER10 features by using STT_GNU_IFUNC or providing shared libraries for POWER10, e.g. with files in /usr/lib/powerpc64le-linux-gnu/power10/.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1887989 Title: [20.04 Feature] Enable glibc for POWER10 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-power-systems/+bug/1887989/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs