This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: x86 siginfo_t was broken by commit 8eb6281eaadd5a71f04d5ec4c11da2339b382b10
- From: Rich Felker <dalias at aerifal dot cx>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: libc-alpha at sourceware dot org
- Date: Sun, 21 Jul 2013 20:30:34 -0400
- Subject: Re: x86 siginfo_t was broken by commit 8eb6281eaadd5a71f04d5ec4c11da2339b382b10
- References: <20130721235356 dot GA28081 at brightrain dot aerifal dot cx> <Pine dot LNX dot 4 dot 64 dot 1307220013200 dot 30802 at digraph dot polyomino dot org dot uk>
On Mon, Jul 22, 2013 at 12:17:22AM +0000, Joseph S. Myers wrote:
> On Sun, 21 Jul 2013, Rich Felker wrote:
>
> > 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).
>
> No, that was an earlier commit (4efeffc1d583597e4f52985b9747269e47b754e2).
> And it was impossible to avoid that C++ breakage because the name
> "siginfo" is not in the POSIX namespace; the renaming was to fix a POSIX
> namespace bug.
On musl, we'd dealt with this by using "struct __siginfo" and
conditionally did "#define __siginfo siginfo" for _GNU_SOURCE. However
we're in the process of trying to fix the few C++ ABI mismatches with
glibc so that libstdc++ and other C++ libs (possibly binaryware) that
were built against glibc can be used with musl, and I needed to know
the story behind this change to make sure it was correct. So I'll just
remove the tag entirely.
> > 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.
>
> That was fixed by:
>
> (libgcc/ChangeLog)
> 2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
>
> struct siginfo vs. siginfo_t
Took them long enough... :) I'd been waiting for this to get fixed for
years.
Rich