Re: [james@nocrew.org: Bug#116804: libc6-dev: bits/sigcontext.h #include's asm/types.h (indirectly) on ia64]
>>>>> On Tue, 23 Oct 2001 20:34:57 -0400, Ben Collins <bcollins@debian.org> said:
Ben> Anyone mind commenting on this? IMO, asm/fpu.h should wrap
Ben> anything that sigcontext.h doesn't need with "#ifdef
Ben> __KERNEL__".
This is a bug in glibc. It shouldn't be including asm/sigcontext.h in
user-visible header files. The only reason that file is included is
to get a definition of "struct ia64_fpreg", which isn't portable
anyhow (the kernel's declaration relies on a GNU C extension).
--david
Ben> ----- Forwarded message from James Troup <james@nocrew.org>
Ben> -----
Ben> Subject: Bug#116804: libc6-dev: bits/sigcontext.h #include's
Ben> asm/types.h (indirectly) on ia64 From: James Troup
Ben> <james@nocrew.org>
Ben> Package: libc6.1-dev Version: 2.2.4-3 Severity: important
Ben> On ia64 <bits/sigcontext.h> #includes <asm/fpu.h> which
Ben> #includes <asm/types.h>. This is bad because <asm/types.h>
Ben> isn't designed to be #included by unwitting applications[1] and
Ben> I don't think #includ-ing <signal.h> counts you in as being a
Ben> witting(?) accomplice. I'm not sure if this is glibc's, the
Ben> kernel's or dancer-ircd's fault (though, I doubt the
Ben> latter[2]); but I'm sure you'll reassign as appropriate ;-)
Ben> | Automatic build of dancer-ircd_1.0.17-1 on caballero by
Ben> sbuild/ia64 1.159 | Build started at 20011023-1511 |
Ben> ******************************************************************************
Ben> [...]
Ben> | ** Using build dependencies supplied by package: |
Ben> Build-Depends: debhelper (>> 3.0.0), docbook-utils, zlib1g-dev,
Ben> jade, html2text
Ben> [...]
Ben> | gcc -DHAVE_CONFIG_H -I. -I. -I../include -I../include -O2
Ben> -Wall -Wno-unused -c `test -f ircd.c || echo './'`ircd.c | In
Ben> file included from /usr/include/asm/fpu.h:9, | from
Ben> /usr/include/bits/sigcontext.h:27, | from
Ben> /usr/include/signal.h:307, | from ircd.c:73: |
Ben> /usr/include/asm/types.h:25: conflicting types for `umode_t' |
Ben> ../include/client.h:108: previous declaration of `umode_t' |
Ben> make[2]: *** [ircd.o] Error 1 | make[2]: Leaving directory
Ben> `/build/buildd/dancer-ircd-1.0.17/src'
Ben> A complete build log can be found at
Ben> http://buildd.debian.org/build.php?arch=ia64&pkg=dancer-ircd&ver=1.0.17-1
Ben> -- James
Ben> [1] * This file is never included by application software
Ben> unless * explicitly requested (e.g., via linux/types.h) in
Ben> which case the * application is Linux specific so (user-) name
Ben> space pollution is * not a major issue. However, for
Ben> interoperability, libraries still * need to be careful to avoid
Ben> a name clashes.
Ben> [2] I don't think assuming one can define your own
Ben> type/struct/variable whatever call'umode_t' is unreasonable
Ben> (especially if you're only including POSIX things like
Ben> <signal.h>) and it works on most (all?) of our other
Ben> architectures
Ben> ----- End forwarded message -----
Ben> --
Ben> .----------=======-=-======-=========-----------=====------------=-=-----.
Ben> / Ben Collins -- Debian GNU/Linux \ ` bcollins@debian.org --
Ben> bcollins@openldap.org -- bcollins@linux.com '
Ben> `---=========------=======-------------=-=-----=-===-======-------=--=---'
Ben> -- To UNSUBSCRIBE, email to
Ben> debian-ia64-request@lists.debian.org with a subject of
Ben> "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: