Anyone mind commenting on this? IMO, asm/fpu.h should wrap anything that
sigcontext.h doesn't need with "#ifdef __KERNEL__".

----- Forwarded message from James Troup <[EMAIL PROTECTED]> -----

Subject: Bug#116804: libc6-dev: bits/sigcontext.h #include's asm/types.h 
(indirectly) on ia64
From: James Troup <[EMAIL PROTECTED]>

Package: libc6.1-dev
Version: 2.2.4-3
Severity: important

On ia64 <bits/sigcontext.h> #includes <asm/fpu.h> which #includes
<asm/types.h>.  This is bad because <asm/types.h> isn't designed to be
#included by unwitting applications[1] and I don't think #includ-ing
<signal.h> counts you in as being a witting(?) accomplice.  I'm not
sure if this is glibc's, the kernel's or dancer-ircd's fault (though,
I doubt the latter[2]); but I'm sure you'll reassign as appropriate
;-)

| Automatic build of dancer-ircd_1.0.17-1 on caballero by sbuild/ia64 1.159
| Build started at 20011023-1511
| ******************************************************************************

[...]

| ** Using build dependencies supplied by package:
| Build-Depends: debhelper (>> 3.0.0), docbook-utils, zlib1g-dev, jade, 
html2text

[...]

| gcc -DHAVE_CONFIG_H -I. -I. -I../include -I../include    -O2 -Wall 
-Wno-unused -c `test -f ircd.c || echo './'`ircd.c
| In file included from /usr/include/asm/fpu.h:9,
|                  from /usr/include/bits/sigcontext.h:27,
|                  from /usr/include/signal.h:307,
|                  from ircd.c:73:
| /usr/include/asm/types.h:25: conflicting types for `umode_t'
| ../include/client.h:108: previous declaration of `umode_t'
| make[2]: *** [ircd.o] Error 1
| make[2]: Leaving directory `/build/buildd/dancer-ircd-1.0.17/src'

A complete build log can be found at
http://buildd.debian.org/build.php?arch=ia64&pkg=dancer-ircd&ver=1.0.17-1

-- 
James


[1] * This file is never included by application software unless
    * explicitly requested (e.g., via linux/types.h) in which case the
    * application is Linux specific so (user-) name space pollution is
    * not a major issue.  However, for interoperability, libraries still
    * need to be careful to avoid a name clashes.

[2] I don't think assuming one can define your own
    type/struct/variable whatever call'umode_t' is unreasonable
    (especially if you're only including POSIX things like <signal.h>)
    and it works on most (all?) of our other architectures


----- End forwarded message -----

-- 
 .----------=======-=-======-=========-----------=====------------=-=-----.
/                   Ben Collins    --    Debian GNU/Linux                  \
`  [EMAIL PROTECTED]  --  [EMAIL PROTECTED]  --  [EMAIL PROTECTED]  '
 `---=========------=======-------------=-=-----=-===-======-------=--=---'


Reply via email to