|
Message-ID: <20210819004903.GN13220@brightrain.aerifal.cx> Date: Wed, 18 Aug 2021 20:49:03 -0400 From: Rich Felker <dalias@...c.org> To: Olivier Galibert <galibert@...ox.com> Cc: musl@...ts.openwall.com Subject: Re: [PATCH] arm64/sigcontext: Synchronize the type of the __reserved field with the linux kernel. On Thu, Aug 19, 2021 at 12:52:23AM +0200, Olivier Galibert wrote: > clang's compiler-rt sanitizer_linux.cpp expects the __reserved field > to be convertible to u8 *. So let's. > --- > arch/aarch64/bits/signal.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/aarch64/bits/signal.h b/arch/aarch64/bits/signal.h > index 5098c734..a46997e3 100644 > --- a/arch/aarch64/bits/signal.h > +++ b/arch/aarch64/bits/signal.h > @@ -19,7 +19,7 @@ typedef struct sigcontext { > unsigned long fault_address; > unsigned long regs[31]; > unsigned long sp, pc, pstate; > - long double __reserved[256]; > + unsigned char __reserved[4096] __attribute__((__aligned__(16))); > } mcontext_t; > > #define FPSIMD_MAGIC 0x46508001 The member name __reserved is not API, much less its particular type. If the sanitizer code is attempting to access it, it's doing something wrong and that should be investigated and fixed. The choice to use long double was very intentional so that the struct definition does not depend on GNUC attributes to have the correct alignment. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.