[Bug 1906250] Comment bridged from LTC Bugzilla
--- Comment From heinz-werner_se...@de.ibm.com 2021-04-08 06:13 EDT--- Already verified on groovy by IBM -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1906250 Title: Segmentation fault in s390x ld.so while parsing /etc/ld.so.cache using qemu-s390x on x86_64. To manage notifications about this bug go to: https://bugs.launchpad.net/glibc/+bug/1906250/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1906250] Comment bridged from LTC Bugzilla
--- Comment From heinz-werner_se...@de.ibm.com 2021-02-11 03:36 EDT--- IBM Bugzilla status->closed, Fix Released with all requested distros -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1906250 Title: Segmentation fault in s390x ld.so while parsing /etc/ld.so.cache using qemu-s390x on x86_64. To manage notifications about this bug go to: https://bugs.launchpad.net/glibc/+bug/1906250/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1906250] Comment bridged from LTC Bugzilla
--- Comment From s...@de.ibm.com 2021-01-21 05:06 EDT--- You are right, I've just successfully run a small helloworld on groovy: qemu-s390x -L /usr/s390x-linux-gnu ./helloworld-s390x Hello world I've used these packages: libc-bin/groovy-proposed,now 2.32-0ubuntu3.1 amd64 [installed,automatic] libc6/groovy-proposed,now 2.32-0ubuntu3.1 amd64 [installed,automatic] libc6-s390x-cross/groovy,now 2.32-0ubuntu3cross2 all [installed] As far as I understand, this libc6-s390x-cross package is based on older libc6-2.32-0ubuntu3 package. Note that the used libc6-package writes the endianess marker to ld.so.cache. But the libc6-s390x-cross does not check for this endianess marker (the patch git-elf-Add-endianness-markup-to-ld.so.cache- bug-27008.patch was added with newer libc6-2.32-0ubuntu3.1 package)! But as glibc-2.32 is used, there is the enhanced corruption check. This time, I haven't debugged it, but I assume that this is the reason, why the helloworld works on groovy): if (file != MAP_FAILED && cachesize > sizeof *cache_new && memcmp (file, CACHEMAGIC_VERSION_NEW, sizeof CACHEMAGIC_VERSION_NEW - 1) == 0 /* Check for corruption, avoiding overflow. */ && ((cachesize - sizeof *cache_new) / sizeof (struct file_entry_new) >= ((struct cache_file_new *) file)->nlibs)) { Note that the focal libc6/libc6-s390x-cross packages both have the endianess marker patch, but are missing this corruption check. See my previous comment with ### Missing the "Check for corruption, avoiding overflow." here. ### -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1906250 Title: Segmentation fault in s390x ld.so while parsing /etc/ld.so.cache using qemu-s390x on x86_64. To manage notifications about this bug go to: https://bugs.launchpad.net/glibc/+bug/1906250/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1906250] Comment bridged from LTC Bugzilla
--- Comment From s...@de.ibm.com 2021-01-13 10:19 EDT--- I've just installed libc-bin/groovy-proposed,now 2.32-0ubuntu3.1 amd64 [installed,automatic] libc6/groovy-proposed,now 2.32-0ubuntu3.1 amd64 [installed,automatic] and /etc/ld.so.cache contains the flags = cache_file_new_flags_endian_little = 2. Which libc6-s390x-cross groovy package version is based on libc6-2.32-0ubuntu3.1 ? -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1906250 Title: Segmentation fault in s390x ld.so while parsing /etc/ld.so.cache using qemu-s390x on x86_64. To manage notifications about this bug go to: https://bugs.launchpad.net/glibc/+bug/1906250/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1906250] Comment bridged from LTC Bugzilla
--- Comment From s...@de.ibm.com 2021-01-12 05:22 EDT--- (In reply to comment #13) > Yes this is a different fix in Focal, but it fixes the actual endianness > problem rather than improving the corruption check. In my testing that > resolved the reported issue, please give a try to the newly build cross > packages. I've just updated to these packages: libc-bin/focal-proposed,now 2.31-0ubuntu9.2 amd64 [installed,automatic] libc6/focal-proposed,now 2.31-0ubuntu9.2 amd64 [installed,automatic] libc6-s390x-cross/focal-proposed,focal-proposed,now 2.31-0ubuntu9.2cross1 all [installed] And checked that ldconfig has written /etc/ld.so.cache with flags = cache_file_new_flags_endian_little = 2. And successfully run a s390x binary: $ qemu-s390x -L /usr/s390x-linux-gnu ./helloworld-s390x Hello world Thanks. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1906250 Title: Segmentation fault in s390x ld.so while parsing /etc/ld.so.cache using qemu-s390x on x86_64. To manage notifications about this bug go to: https://bugs.launchpad.net/glibc/+bug/1906250/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1906250] Comment bridged from LTC Bugzilla
--- Comment From s...@de.ibm.com 2020-12-17 09:42 EDT--- The build of the cross-packages is not finished yet: https://launchpad.net/ubuntu/+source/cross-toolchain-base/43ubuntu3.1 See "Builds" Focal: (Icon: currently building) amd64 But I had a look into glibc 2.31-0ubuntu9.2 source package and recognized Florians patch: debian/ubuntu/git-elf-Add-endianness-markup-to-ld.so.cache-bug-27008.patch But compared to upstream, elf/dl-cache.c:_dl_load_cache_lookup(): if (file != MAP_FAILED && cachesize > sizeof *cache_new && memcmp (file, CACHEMAGIC_VERSION_NEW, sizeof CACHEMAGIC_VERSION_NEW - 1) == 0) ### Missing the "Check for corruption, avoiding overflow." here. ### { if (! cache_file_new_matches_endian (file)) { This check was introduced in a different patch. See my former comment: On glibc upstream > glibc-2.31 && < glibc-2.32, there is the following commit which adds a further check for corruption, avoiding overflow: "ld.so: Check for new cache format first and enhance corruption check" https://sourceware.org/git/?p=glibc.git;a=commit;h=e221c512c74ec42fd47b71de2981a475b38110a4 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1906250 Title: Segmentation fault in s390x ld.so while parsing /etc/ld.so.cache using qemu-s390x on x86_64. To manage notifications about this bug go to: https://bugs.launchpad.net/glibc/+bug/1906250/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs