[klibc] sys/types.h -> linux/types.h and __aligned_u64

Maciej Żenczykowski zenczykowski at gmail.com
Sun Nov 6 14:33:40 PST 2011


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


More information about the klibc mailing list