Bug#475839: libc6-dev: pthread_mutex_t definition contains a nameless union
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.0 +0100 +++ pthreadtypes.h 2007-12-08 09:12:50.0 +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_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 -- System Information: Debian Release: lenny/sid APT prefers testing APT policy: (500, 'testing'), (500, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.22.9fg2 (PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages libc6-dev depends on: ii libc6 2.7-10 GNU C Library: Shared libraries ii linux-libc-dev2.6.24-5 Linux Kernel Headers for developme Versions of packages libc6-dev recommends: ii gcc [c-compiler] 4:4.2.2-2 The GNU C compiler ii gcc-2.95 [c-compiler]1:2.95.4-27 The GNU C compiler ii gcc-4.1 [c-compiler] 4.1.2-19The GNU C compiler ii gcc-4.2 [c-compiler] 4.2.3-3 The GNU C compiler ii gcc-4.3 [c-compiler] 4.3.0-1 The GNU C compiler -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
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.0 +0100 > +++ pthreadtypes.h 2007-12-08 09:12:50.0 +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_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 `. `' [EMAIL PROTECTED] | [EMAIL PROTECTED] `-people.debian.org/~aurel32 | www.aurel32.net -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#475839: libc6-dev: pthread_mutex_t definition contains a nameless union
On Sat, 10 May 2008, Aurelien Jarno wrote: > tag 475839 + wontfix > thanks [...] > > Here is a test program: > > --- pthread_mutex_t.c --- > > #include > > 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. I would like this bug to be reopened because I think it was closed for the wrong reasons: 1) gcc-2.95 is still present in Lenny. If you are not seeing it in aptitude, it's because you are using the 64bit build. 2) It's very easy to get a compilation error. Just try to compile the following program: --- pthread_mutex_t.c --- #include pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER; --- pthread_mutex_t.c --- 3) This particular construct also seems to be causing trouble with PCC: http://pcc.ludd.ltu.se/jira/browse/PCC-5 4) Wine contains code very similar to the above and thus fails to compile with gcc-2.95. This is actually the whole reason why I compile it with gcc 2.95: to ensure that Wine's code does not contain such non-portable constructs. But having the compilation fail due to the C library headers, or having to patch said headers on a regular basis, is annoying. -- Francois Gouget http://fgouget.free.fr/ We are Pentium of Borg. You will be approximated. Division is futile. -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#475839: libc6-dev: pthread_mutex_t definition contains a nameless union
On Sun, Dec 14, 2008 at 11:43:24PM +0100, Francois Gouget wrote: > On Sat, 10 May 2008, Aurelien Jarno wrote: > > > tag 475839 + wontfix > > thanks > [...] > > > Here is a test program: > > > --- pthread_mutex_t.c --- > > > #include > > > 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. > > > I would like this bug to be reopened because I think it was closed for > the wrong reasons: > The bug is still open. -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' aure...@debian.org | aurel...@aurel32.net `-people.debian.org/~aurel32 | www.aurel32.net -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#475839: libc6-dev: pthread_mutex_t definition contains a nameless union
On Sun, Dec 14, 2008 at 11:43:24PM +0100, Francois Gouget wrote: > I would like this bug to be reopened because I think it was closed for > the wrong reasons: > > 1) gcc-2.95 is still present in Lenny. If you are not seeing it in > aptitude, it's because you are using the 64bit build. For the record, it isn't. You may still have it installed, or you may have Etch also in your sources.list; etch did include gcc-2.95 on some platforms. -- Daniel Jacobowitz CodeSourcery -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#475839: libc6-dev: pthread_mutex_t definition contains a nameless union
On Sun, 14 Dec 2008, Francois Gouget wrote: [...] > 1) gcc-2.95 is still present in Lenny. If you are not seeing it in > aptitude, it's because you are using the 64bit build. Ah. I see I'm wrong about this point. I still get it because I have stable+testing in my sources.list. My other points still stand though. -- Francois Gouget http://fgouget.free.fr/ Cahn's Axiom: When all else fails, read the instructions. -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org