https://github.com/Jlalond updated https://github.com/llvm/llvm-project/pull/117604
>From 693f1039e10e5dd26ef0d600b03895f71f340b23 Mon Sep 17 00:00:00 2001 From: Jacob Lalonde <jalalo...@fb.com> Date: Mon, 25 Nov 2024 10:26:07 -0800 Subject: [PATCH 1/2] Set all the properties of ELFLinuxSigInfo to a non build dependent size --- lldb/source/Plugins/Process/elf-core/ThreadElfCore.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h index 4ebbaadebe9f90..e60ee86e5f5a03 100644 --- a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h +++ b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h @@ -83,10 +83,10 @@ struct ELFLinuxSigInfo { int32_t si_errno; int32_t si_code; // Copied from siginfo_t so we don't have to include signal.h on non 'Nix - // builds. + // builds. Slight modifications to ensure no 32b vs 64b differences. struct { - lldb::addr_t si_addr; /* faulting insn/memory ref. */ - short int si_addr_lsb; /* Valid LSB of the reported address. */ + lldb::addr_t si_addr; /* faulting insn/memory ref. */ + int16_t si_addr_lsb; /* Valid LSB of the reported address. */ union { /* used when si_code=SEGV_BNDERR */ struct { @@ -98,7 +98,8 @@ struct ELFLinuxSigInfo { } bounds; } sigfault; - enum { eUnspecified, eNT_SIGINFO } note_type; + enum SigInfoNoteType : uint8_t { eUnspecified, eNT_SIGINFO }; + SigInfoNoteType note_type; ELFLinuxSigInfo(); >From 7578b03833c233f79a199adff07dc37519beb7df Mon Sep 17 00:00:00 2001 From: Jacob Lalonde <jalalo...@fb.com> Date: Mon, 25 Nov 2024 14:41:52 -0800 Subject: [PATCH 2/2] Add alignas(8) to handle padding of the struct with union --- lldb/source/Plugins/Process/elf-core/ThreadElfCore.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h index e60ee86e5f5a03..6f8d41351a6bfb 100644 --- a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h +++ b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h @@ -84,7 +84,7 @@ struct ELFLinuxSigInfo { int32_t si_code; // Copied from siginfo_t so we don't have to include signal.h on non 'Nix // builds. Slight modifications to ensure no 32b vs 64b differences. - struct { + struct alignas(8) { lldb::addr_t si_addr; /* faulting insn/memory ref. */ int16_t si_addr_lsb; /* Valid LSB of the reported address. */ union { _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits