Maciej Żenczykowski
2011-Nov-06 22:33 UTC
[klibc] sys/types.h -> linux/types.h and __aligned_u64
When building klibc 1.5.25 against linux/master (ie. post 3.1) I'm seeing: klibc/generated/include/linux/if_packet.h:176: error: expected specifier-qualifier-list before '__aligned_u64' which seems to come from upstream commits: 0d4691ce112be025019999df5f2a5e00c03f03c2 remotes/linux/master~90^2~408 (origin) 96c131842aab45b5d139d0bcb417796819f5ee92 remotes/linux/master~90^2~169 (change from aligned_u64 to __aligned_u64) and collides with klibc/usr/include/sys/types.h /* Keeps linux/types.h from getting included elsewhere */ #define _LINUX_TYPES_H not defining __aligned_u64 like the kernel's include/linux/types.h does. Adding: --- a/klibc/usr/include/sys/types.h +++ b/klibc/usr/include/sys/types.h @@ -100,6 +100,10 @@ typedef uint16_t __sum16; typedef uint32_t __sum32; typedef uint64_t __sum64; +#define __aligned_u64 __u64 __attribute__((aligned(8))) +#define __aligned_be64 __be64 __attribute__((aligned(8))) +#define __aligned_le64 __le64 __attribute__((aligned(8))) + /* * Some headers seem to require this... */ seems to fix this (__aligned_be64/le64 aren't actually needed), but I'm not sure if this is the right way to go... Is the klibc git tree available somewhere? Is there a newer version of klibc I should be using? Maciej
Maciej Żenczykowski
2011-Nov-23 16:31 UTC
[klibc] sys/types.h -> linux/types.h and __aligned_u64
anyone around? 2011/11/6 Maciej ?enczykowski <zenczykowski at gmail.com>:> When building klibc 1.5.25 against linux/master (ie. post 3.1) I'm seeing: > > klibc/generated/include/linux/if_packet.h:176: error: expected > specifier-qualifier-list before '__aligned_u64' > > which seems to come from upstream commits: > 0d4691ce112be025019999df5f2a5e00c03f03c2 remotes/linux/master~90^2~408 ?(origin) > 96c131842aab45b5d139d0bcb417796819f5ee92 remotes/linux/master~90^2~169 > ?(change from aligned_u64 to __aligned_u64) > > and collides with klibc/usr/include/sys/types.h > > /* Keeps linux/types.h from getting included elsewhere */ > #define _LINUX_TYPES_H > > not defining __aligned_u64 like the kernel's include/linux/types.h does. > > Adding: > > --- a/klibc/usr/include/sys/types.h > +++ b/klibc/usr/include/sys/types.h > @@ -100,6 +100,10 @@ typedef uint16_t __sum16; > ?typedef uint32_t __sum32; > ?typedef uint64_t __sum64; > > +#define __aligned_u64 __u64 __attribute__((aligned(8))) > +#define __aligned_be64 __be64 __attribute__((aligned(8))) > +#define __aligned_le64 __le64 __attribute__((aligned(8))) > + > ?/* > ?* Some headers seem to require this... > ?*/ > > seems to fix this (__aligned_be64/le64 aren't actually needed), but > I'm not sure if this is the right way to go... > > Is the klibc git tree available somewhere? ?Is there a newer version > of klibc I should be using? > > Maciej >
maximilian attems
2011-Nov-23 16:43 UTC
[klibc] sys/types.h -> linux/types.h and __aligned_u64
On Wed, Nov 23, 2011 at 08:31:57AM -0800, Maciej ?enczykowski wrote:> anyone around?looks good to me at first quick look, will test later. thanks -- maks