Note gdb patches are located at: https://sourceware.org/ml/binutils/2017-03/msg00075.html https://sourceware.org/ml/gdb-patches/2017-03/msg00051.html
- [GLIBC] LP64 glibc libthread_db does not support ILP32.
No change to glibc was needed to fix this, only the above changes to gdb were needed.
- [GDB] Handle ILP32 siginfo layout
The change to aarch64_linux_siginfo_fixup fixes that.
- [GDB] Inferior call passing pointer argument.
The change to aarch64_gdbarch_init fixes that.
- Handle shared libraries
The change to aarch64_linux_init_abi fixes that.
- [GDB] GDB resolves ifunc functions,
The change to aarch64_gdbarch_init fixes that IIRC.
- [GDB] Gdbserver support for ILP32.
The change to aarch64_linux_read_description fixes that.
Thanks, Andrew
-----Original Message----- From: linaro-toolchain [mailto:linaro-toolchain-bounces@lists.linaro.org] On Behalf Of Maxim Kuvyrkov Sent: Tuesday, November 7, 2017 4:40 AM To: Linaro Toolchain linaro-toolchain@lists.linaro.org Cc: Szabolcs Nagy szabolcs.nagy@arm.com; Ellcey, Steve Steve.Ellcey@cavium.com Subject: ILP32 toolchain status update
Over the last couple of months arm64 community and us have tested various aspects of ILP32 toolchain and, while most of toolchain works as expected, several features are still missing. Most of the work left is on GDB side, especially using LP64 GDB to debug ILP32 applications.
1. [GCC] GCC sanitizers (ASAN, UBSAN) are not supported for ILP32.
-- TCWG is working on implementing sanitizer support for ILP32.
2. [GLIBC] LP64 glibc libthread_db does not support ILP32. This causes failures when LP64 GDB is trying to debug ILP32 threaded application. It is expected by users to be able to use LP64 GDB to debug ILP32 applications (LP64 AArch64 GDB can successfully debug AArch32 applications already!).
-- Steve, do you plan to work on adding libthread_db support for ILP32?
3. [GDB] Handle ILP32 siginfo layout. Kernel siginfo layout is different between LP64 and ILP32.
4. [GDB] Inferior call passing pointer argument. GDB may need update to handle 32-bit pointer vs 64-bit pointer.
5. Handle shared libraries. GDB needs to read a linked list out of the inferior, and that list is about the libraries loaded already. LP64 and ILP32 may have different layouts.
6. [GDB] GDB resolves ifunc functions, needs to read auxv (HWCAP) from the inferior. auxv is different on LP64 and ILP32.
7. [GDB] Gdbserver support for ILP32.
-- Maxim Kuvyrkov www.linaro.org
_______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-toolchain