This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
x86 siginfo_t was broken by commit 8eb6281eaadd5a71f04d5ec4c11da2339b382b10
- From: Rich Felker <dalias at aerifal dot cx>
- To: libc-alpha at sourceware dot org
- Date: Sun, 21 Jul 2013 19:53:56 -0400
- Subject: 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