** 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 <[email protected]> -
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
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs