Re: [Bugme-new] [Bug 7724] New: asm/types.h should define __u64 if isoc99

3 messages, 3 authors, 2006-12-21 · open the first message on its own page

Re: [Bugme-new] [Bug 7724] New: asm/types.h should define __u64 if isoc99

From: Andrew Morton <hidden>
Date: 2006-12-21 20:50:10

On Thu, 21 Dec 2006 08:17:10 -0800
bugme-daemon@bugzilla.kernel.org wrote:
http://bugzilla.kernel.org/show_bug.cgi?id=7724

           Summary: asm/types.h should define __u64 if isoc99
    Kernel Version: 2.6.19
            Status: NEW
          Severity: blocking
             Owner: other_other@kernel-bugs.osdl.org
         Submitter: uberlord@gentoo.org


Most recent kernel where this bug did *NOT* occur:
Distribution: Gentoo
Hardware Environment: n/a
Software Environment: 2.6.18 kernels and lower
Problem Description:

Steps to reproduce:
Download dhcpcd-3.0.7 from http://dhcpcd.berlios.de/
extract it and type 'make'
Watch it fail with this error
cc -D_BSD_SOURCE -O2 -pipe -pedantic -std=c99 -Wall -Wunused -Wimplicit
-Wshadow -Wformat=2 -Wmissing-declarations -Wno-missing-prototypes
-Wwrite-strings -Wbad-function-cast -Wnested-externs -Wcomment -Winline
-Wchar-subscripts -Wcast-align -Wno-format-nonliteral -Wsequence-point -Wextra
-Wdeclaration-after-statement -c interface.c
In file included from /usr/include/linux/rtnetlink.h:5,
                 from interface.c:33:
/usr/include/linux/if_link.h:43: error: expected specifier-qualifier-list
before ___u64_
In file included from /usr/include/linux/rtnetlink.h:7,
                 from interface.c:33:
/usr/include/linux/neighbour.h:92: error: expected specifier-qualifier-list
before ___u64_
make: *** [interface.o] Error 1

Re: [Bugme-new] [Bug 7724] New: asm/types.h should define __u64 if isoc99

From: David Miller <davem@davemloft.net>
Date: 2006-12-21 20:58:53

From: Andrew Morton <redacted>
Date: Thu, 21 Dec 2006 12:49:54 -0800
quoted
           Summary: asm/types.h should define __u64 if isoc99
Platform specific bug, and has nothing to do with networking.

This problem will occur with any user visible interface definition
that uses __u64, and there are several both in and outside the
networking.

x86 and perhaps others protect the __u64 definition with:

	defined(__GNUC__) && !defined(__STRICT_ANSI__)

for whatever reason, probably to avoid "long long" or something like
that.  But even that theory makes no sense.

I do not make this protection on any of the sparc ports, even 32-bit
sparc, for example, so I find it really strange that x86 does this.

Re: [Bugme-new] [Bug 7724] New: asm/types.h should define __u64 if isoc99

From: Ismail Donmez <hidden>
Date: 2006-12-21 21:27:52

21 Ara 2006 Per 22:58 tarihinde, David Miller şunları yazmıştı: 
From: Andrew Morton <redacted>
Date: Thu, 21 Dec 2006 12:49:54 -0800
quoted
quoted
           Summary: asm/types.h should define __u64 if isoc99
Platform specific bug, and has nothing to do with networking.

This problem will occur with any user visible interface definition
that uses __u64, and there are several both in and outside the
networking.
This bug hit KDE modules (kdebase/kdemultimedia/kdetv/...) many times, I 
workarounded with #undef ing __STRICT_ANSI__ before including kernel headers 
which is well ugly but works.
x86 and perhaps others protect the __u64 definition with:

	defined(__GNUC__) && !defined(__STRICT_ANSI__)

for whatever reason, probably to avoid "long long" or something like
that.  But even that theory makes no sense.
Indeed this restriction just breaks userspace apps.

Regards,
ismail

-- 
Bir gün yolda yürüyordum... Bir şarkı duydum... Kalbim acıdı... Bu kadar...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help