This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

x86 siginfo_t was broken by commit 8eb6281eaadd5a71f04d5ec4c11da2339b382b10


This commit replaced the old i386 bits/siginfo.h with the x86_64
version, which was presumed to work for both. However, this change has
broken two things:

1. The C++ ABI: the underlying type of siginfo_t changed from "struct
siginfo" to a struct with no tag (whose original typedef name then
becomes the tag for C++ name mangling purposes).

2. GCC's i386 linux config (wrongly) uses "struct siginfo" all over
the place where it should be using siginfo_t. I'm not clear on whether
this code is being used anymore, but I know in musl we had to expose
the "struct siginfo" name at one point to get GCC to build correctly.

Does anybody know the full story on this (especially whether issue 2
is a real problem) and most importantly, what should be done about the
fact that the C++ ABI was broken?

Rich


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]