Re: [BUG] Linux 3.0 commit 3627924acf70a brokeinclude/mtd/ubi_user.h.

From: Artem Bityutskiy
Date: Sun Aug 14 2011 - 23:40:01 EST


On Sun, 2011-08-14 at 14:16 -0500, Rob Landley wrote:
> On 08/14/2011 01:03 PM, Stefan Richter wrote:
> > On Aug 14 Rob Landley wrote:
> >> "make headers_install" copies include/mtd/ubi_user.h to userspace, where
> >> things like busybox link against it. With 3.0, building defconfig
> >> busybox gets this error:
> >>
> >> In file included from miscutils/ubi_tools.c:63:
> >> /home/landley/aboriginal/aboriginal/build/simple-cross-compiler-i686/bin/../include/mtd/ubi-user.h:329:
> >> error: conflicting types for '__packed'
> >> /home/landley/aboriginal/aboriginal/build/simple-cross-compiler-i686/bin/../include/mtd/ubi-user.h:313:
> >> error: previous declaration of '__packed' was here
> >>
> >> This is due to the Linux 3.0 commit in the title:
> >>
> >> UBI: use __packed instead of __attribute__((packed))
> >>
> >> This relies on __packed being defined in:
> >>
> >> include/linux/compiler-gcc.h:
> >> #define __packed __attribute__((packed))
> >>
> >> Which is not exported to userspace.
> >>
> >> I.E. this "cleanup" broke the ability for userspace to use this header,
> >> even though the header is exported to userspace by headers_install.
> >
> > As far as I can tell, the __packed or __attribute__((packed))
> > qualifications are superfluous in include/mtd/ubi-user.h anyway.
>
> And Adrian Hunter <adrian.hunter@xxxxxxxxx> (the other listed UBI
> maintainer) also bounces. Did the developer exodus after Nokia decided
> to cozy up to The Black Widow take 'em both out?

Yes, both of us have left Nokia recently. Adrian should fix the
"MAINTAINERS" file.

WRT to the breakage - yes, it was my mistake to follow the new trend in
the Linux kernel - the commit message has a reference to the other
commit which inspired the check, and you can find out that some other
projects made a similar change. Moreover, checkpatch.pl prints the
following warning "WARN("__packed is preferred over
__attribute__((packed))". So you hardly can blame :-)

Anyways, this problem was discussed in the "__packed vs.
__attribute__((packed)) in kernel headers" thread in LKML.

Then a fix has been sent, see the "{PATCH] fix __packed in exported
kernel headers" thread in LKML. This fix was accepted by "Michal Marek
<mmarek@xxxxxxx>", whom I put to CC.

--
Best Regards,
Artem Bityutskiy (ÐÐÑÑÑÐÐÐ ÐÑÑÑÐ)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/