Bug#475839: libc6-dev: pthread_mutex_t definition contains a nameless union
tag 475839 + wontfix
thanks
On Sun, Apr 13, 2008 at 12:12:38PM +0200, Francois Gouget wrote:
> Package: libc6-dev
> Version: 2.7-10
> Severity: normal
> Tags: patch
>
>
> The pthread_mutex_t in /usr/include/bits/pthreadtypes.h contains a
> nameless union. This makes it impossible to use with compilers that
> don't support nameless unions. Gcc 2.95 for instance. In
> particular this breaks compilation of Wine with gcc 2.95 (see
> loader/kthread.c in the Wine source).
>
> Avoiding nameless unions is trivial so there's no reason not to do it.
> Here's a patch to fix this (finding a better name for the union is left
> as an exercise for the reader):
>
> --- pthreadtypes.h.orig 2007-11-29 22:32:47.000000000 +0100
> +++ pthreadtypes.h 2007-12-08 09:12:50.000000000 +0100
> @@ -96,7 +96,7 @@
> {
> int __spins;
> __pthread_slist_t __list;
> - };
> + } u;
> #endif
> } __data;
> char __size[__SIZEOF_PTHREAD_MUTEX_T];
>
> (hopefully this won't get too mangled by vi)
>
>
> Here is a test program:
> --- pthread_mutex_t.c ---
> #include <pthread.h>
> pthread_mutex_t mutex;
> --- pthread_mutex_t.c ---
>
> Compiling it with gcc 2.95 gives the following error:
> $ gcc-2.95 -c pthread_mutex_t.c
> In file included from /usr/include/pthread.h:30,
> from pthread_mutex_t.c:1:
> /usr/include/bits/pthreadtypes.h:99: warning: unnamed struct/union that defines no instances
>
gcc-2.95 does not give an error, but outputs a simple warning.
I don't think it worth supporting an old compiler that is not present
in lenny. Tagging the bug as wontfix.
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' aurel32@debian.org | aurelien@aurel32.net
`- people.debian.org/~aurel32 | www.aurel32.net
Reply to: