Attached is a more proper patch.

On Fri, Nov 29, 2013 at 04:14:31PM -0800, Ryan Niebur wrote:
> Source: u-boot
> Version: 2013.10-3
> Severity: important
> Tags: patch
> 
> Hello,
> 
> Description of problem:
> 
> Attached is a quilt patch which will allow this package to build on
> kfreebsd, which was obtained by brute force. Here is the failure:
> https://buildd.debian.org/status/fetch.php?pkg=u-boot&arch=kfreebsd-amd64&ver=2013.10-3&stamp=1384692375
> 
> Note that once that particular failure was resolved, there were
> additional failures related to other header files later in build.
> 
> It also looks like the build failed for the same reasons on hurd:
> https://buildd.debian.org/status/fetch.php?pkg=u-boot&arch=hurd-i386&ver=2013.10-3&stamp=1384681614
> 
> I suspect my changes may fix the problems seen there as well.
> 
> Description of solution:
> 
> I have copied many additional header files into the package source
> which were not used previously, but are required now. These mostly
> came from the linux-libc-dev, with some slight modification.
> 
> This is the way the upstream maintainers have maintained the package
> for a while. The include/ directory already had many copies of header
> files copied from the linux-libc-dev package contents.
> 
> Further testing needed:
> 
> I have not yet tested that the package produced by these patches work.
> I will verify mkimage is able to run and produces correct output.
> 
> I have not looked at the downstream uses of the definitions from these
> header files to see if they are actually used in this executable. I
> expect many are not, in which case the #include may be commented out
> for a simpler patch. However, if they are used, I do still need to
> verify that the settings copied here are correct and will not cause
> anything to subtly break or affect correct behavior during runtime.
> 
> Further work on patch needed:
> 
> I believe my patch will break builds happening under other kernels and
> architectures. I have used a brute force strategy to get the package
> to build on kfreebsd only. Next, I will be working my way back outward
> from my solution to find which parts are really necessary, before I
> clean it up to patch properly in a way only affecting kfreebsd. The
> biggest issue here is that the asm directory varies by architecture.
> Luckily, kfreebsd is only i386 and amd64, which seem to share headers.
> 
> Timeline for completion:
> 
> Within the next few days I will complete:
> * testing of the built package and mkimage executable
> * proper code review, deciding which changes are correct and needed
> * cleaning up the patch to allow the package to build correctly on
>   other architectures and kernels, which were already working, by
>   only using these architecture-specific headers under kfreebsd
> 
> Thanks,
> Ryan
> 
> -- 

> Courtesy of linux-libc-dev package from i386 architecture,
> copied from the /usr/include/i386-linux-gnu/ directory.
> 
> This is needed because our package source here includes a
> file, include/linux/types.h, also copied from that package.
> 
> Patch by Ryan Niebur
> 
> Index: u-boot-2013.10/include/asm/posix_types.h
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ u-boot-2013.10/include/asm/posix_types.h  2013-11-30 00:27:04.000000000 
> +0100
> @@ -0,0 +1,5 @@
> +# ifdef __i386__
> +#  include "posix_types_32.h"
> +# else
> +#  include "posix_types_64.h"
> +# endif
> Index: u-boot-2013.10/include/asm/posix_types_32.h
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ u-boot-2013.10/include/asm/posix_types_32.h       2013-11-30 
> 00:50:40.000000000 +0100
> @@ -0,0 +1,49 @@
> +#ifndef _ASM_X86_POSIX_TYPES_32_H
> +#define _ASM_X86_POSIX_TYPES_32_H
> +
> +/*
> + * This file is generally used by user-level software, so you need to
> + * be a little careful about namespace pollution etc.  Also, we cannot
> + * assume GCC is being used.
> + */
> +
> +#include <sys/_types.h>
> +// RYAN52: THIS PACKAGE NEEDS THE FOLLOWING COMMENTED OUT DUE TO CONFLICT IN 
> /usr/include/sys/_types.h
> +//typedef unsigned long      __kernel_ino_t;
> +typedef unsigned long        __kernel_ino_t;
> +typedef unsigned short       __kernel_mode_t;
> +typedef unsigned short       __kernel_nlink_t;
> +typedef long         __kernel_off_t;
> +typedef int          __kernel_pid_t;
> +typedef unsigned short       __kernel_ipc_pid_t;
> +typedef unsigned short       __kernel_uid_t;
> +typedef unsigned short       __kernel_gid_t;
> +typedef unsigned int __kernel_size_t;
> +typedef int          __kernel_ssize_t;
> +typedef int          __kernel_ptrdiff_t;
> +typedef long         __kernel_time_t;
> +typedef long         __kernel_suseconds_t;
> +typedef long         __kernel_clock_t;
> +typedef int          __kernel_timer_t;
> +typedef int          __kernel_clockid_t;
> +typedef int          __kernel_daddr_t;
> +typedef char *               __kernel_caddr_t;
> +typedef unsigned short       __kernel_uid16_t;
> +typedef unsigned short       __kernel_gid16_t;
> +typedef unsigned int __kernel_uid32_t;
> +typedef unsigned int __kernel_gid32_t;
> +
> +typedef unsigned short       __kernel_old_uid_t;
> +typedef unsigned short       __kernel_old_gid_t;
> +typedef unsigned short       __kernel_old_dev_t;
> +
> +#ifdef __GNUC__
> +typedef long long    __kernel_loff_t;
> +#endif
> +
> +typedef struct {
> +     int     val[2];
> +} __kernel_fsid_t;
> +
> +
> +#endif /* _ASM_X86_POSIX_TYPES_32_H */
> Index: u-boot-2013.10/include/asm/posix_types_64.h
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ u-boot-2013.10/include/asm/posix_types_64.h       2013-11-30 
> 00:50:36.000000000 +0100
> @@ -0,0 +1,49 @@
> +#ifndef _ASM_X86_POSIX_TYPES_64_H
> +#define _ASM_X86_POSIX_TYPES_64_H
> +
> +/*
> + * This file is generally used by user-level software, so you need to
> + * be a little careful about namespace pollution etc.  Also, we cannot
> + * assume GCC is being used.
> + */
> +
> +#include <sys/_types.h>
> +// RYAN52: THIS PACKAGE NEEDS THE FOLLOWING COMMENTED OUT DUE TO CONFLICT IN 
> /usr/include/sys/_types.h
> +//typedef unsigned long      __kernel_ino_t;
> +typedef unsigned int __kernel_mode_t;
> +typedef unsigned long        __kernel_nlink_t;
> +typedef long         __kernel_off_t;
> +typedef int          __kernel_pid_t;
> +typedef int          __kernel_ipc_pid_t;
> +typedef unsigned int __kernel_uid_t;
> +typedef unsigned int __kernel_gid_t;
> +typedef unsigned long        __kernel_size_t;
> +typedef long         __kernel_ssize_t;
> +typedef long         __kernel_ptrdiff_t;
> +typedef long         __kernel_time_t;
> +typedef long         __kernel_suseconds_t;
> +typedef long         __kernel_clock_t;
> +typedef int          __kernel_timer_t;
> +typedef int          __kernel_clockid_t;
> +typedef int          __kernel_daddr_t;
> +typedef char *               __kernel_caddr_t;
> +typedef unsigned short       __kernel_uid16_t;
> +typedef unsigned short       __kernel_gid16_t;
> +
> +#ifdef __GNUC__
> +typedef long long    __kernel_loff_t;
> +#endif
> +
> +typedef struct {
> +     int     val[2];
> +} __kernel_fsid_t;
> +
> +typedef unsigned short __kernel_old_uid_t;
> +typedef unsigned short __kernel_old_gid_t;
> +typedef __kernel_uid_t __kernel_uid32_t;
> +typedef __kernel_gid_t __kernel_gid32_t;
> +
> +typedef unsigned long        __kernel_old_dev_t;
> +
> +
> +#endif /* _ASM_X86_POSIX_TYPES_64_H */
> Index: u-boot-2013.10/Makefile
> ===================================================================
> --- u-boot-2013.10.orig/Makefile      2013-10-16 19:08:12.000000000 +0200
> +++ u-boot-2013.10/Makefile   2013-11-30 00:27:41.000000000 +0100
> @@ -925,7 +925,7 @@
>       @rm -f $(obj)tools/xway-swap-bytes
>       @rm -f $(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c
>       @rm -f $(obj)arch/powerpc/cpu/mpc83xx/ddr-gen?.c
> -     @rm -fr $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
> +     #rm -fr $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
>       @rm -fr $(obj)include/generated
>       @[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l 
> -print | xargs rm -f
>       @rm -f $(obj)dts/*.tmp
> Index: u-boot-2013.10/include/asm-generic/int-ll64.h
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ u-boot-2013.10/include/asm-generic/int-ll64.h     2013-11-30 
> 00:33:06.000000000 +0100
> @@ -0,0 +1,39 @@
> +/*
> + * asm-generic/int-ll64.h
> + *
> + * Integer declarations for architectures which use "long long"
> + * for 64-bit types.
> + */
> +
> +#ifndef _ASM_GENERIC_INT_LL64_H
> +#define _ASM_GENERIC_INT_LL64_H
> +
> +#include <asm/bitsperlong.h>
> +
> +#ifndef __ASSEMBLY__
> +/*
> + * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
> + * header files exported to user space
> + */
> +
> +typedef __signed__ char __s8;
> +typedef unsigned char __u8;
> +
> +typedef __signed__ short __s16;
> +typedef unsigned short __u16;
> +
> +typedef __signed__ int __s32;
> +typedef unsigned int __u32;
> +
> +#ifdef __GNUC__
> +__extension__ typedef __signed__ long long __s64;
> +__extension__ typedef unsigned long long __u64;
> +#else
> +typedef __signed__ long long __s64;
> +typedef unsigned long long __u64;
> +#endif
> +
> +#endif /* __ASSEMBLY__ */
> +
> +
> +#endif /* _ASM_GENERIC_INT_LL64_H */
> Index: u-boot-2013.10/include/asm-generic/types.h
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ u-boot-2013.10/include/asm-generic/types.h        2013-11-30 
> 00:33:14.000000000 +0100
> @@ -0,0 +1,15 @@
> +#ifndef _ASM_GENERIC_TYPES_H
> +#define _ASM_GENERIC_TYPES_H
> +/*
> + * int-ll64 is used practically everywhere now,
> + * so use it as a reasonable default.
> + */
> +#include <asm-generic/int-ll64.h>
> +
> +#ifndef __ASSEMBLY__
> +
> +typedef unsigned short umode_t;
> +
> +#endif /* __ASSEMBLY__ */
> +
> +#endif /* _ASM_GENERIC_TYPES_H */
> Index: u-boot-2013.10/include/asm/bitsperlong.h
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ u-boot-2013.10/include/asm/bitsperlong.h  2013-11-30 00:36:55.000000000 
> +0100
> @@ -0,0 +1,13 @@
> +#ifndef __ASM_X86_BITSPERLONG_H
> +#define __ASM_X86_BITSPERLONG_H
> +
> +#ifdef __x86_64__
> +# define __BITS_PER_LONG 64
> +#else
> +# define __BITS_PER_LONG 32
> +#endif
> +
> +#include <asm-generic/bitsperlong.h>
> +
> +#endif /* __ASM_X86_BITSPERLONG_H */
> +
> Index: u-boot-2013.10/include/asm/types.h
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ u-boot-2013.10/include/asm/types.h        2013-11-30 00:36:59.000000000 
> +0100
> @@ -0,0 +1,6 @@
> +#ifndef _ASM_X86_TYPES_H
> +#define _ASM_X86_TYPES_H
> +
> +#include <asm-generic/types.h>
> +
> +#endif /* _ASM_X86_TYPES_H */
> Index: u-boot-2013.10/include/asm-generic/bitsperlong.h
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ u-boot-2013.10/include/asm-generic/bitsperlong.h  2013-11-30 
> 00:34:22.000000000 +0100
> @@ -0,0 +1,15 @@
> +#ifndef __ASM_GENERIC_BITS_PER_LONG
> +#define __ASM_GENERIC_BITS_PER_LONG
> +
> +/*
> + * There seems to be no way of detecting this automatically from user
> + * space, so 64 bit architectures should override this in their
> + * bitsperlong.h. In particular, an architecture that supports
> + * both 32 and 64 bit user space must not rely on CONFIG_64BIT
> + * to decide it, but rather check a compiler provided macro.
> + */
> +#ifndef __BITS_PER_LONG
> +#define __BITS_PER_LONG 32
> +#endif
> +
> +#endif /* __ASM_GENERIC_BITS_PER_LONG */
> Index: u-boot-2013.10/include/asm/byteorder.h
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ u-boot-2013.10/include/asm/byteorder.h    2013-11-30 00:39:56.000000000 
> +0100
> @@ -0,0 +1,6 @@
> +#ifndef _ASM_X86_BYTEORDER_H
> +#define _ASM_X86_BYTEORDER_H
> +
> +#include <linux/byteorder/little_endian.h>
> +
> +#endif /* _ASM_X86_BYTEORDER_H */
> Index: u-boot-2013.10/include/asm/swab.h
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ u-boot-2013.10/include/asm/swab.h 2013-11-30 00:41:44.000000000 +0100
> @@ -0,0 +1,61 @@
> +#ifndef _ASM_X86_SWAB_H
> +#define _ASM_X86_SWAB_H
> +
> +#include <linux/types.h>
> +
> +
> +static __inline__ __u32 __arch_swab32(__u32 val)
> +{
> +#ifdef __i386__
> +# ifdef CONFIG_X86_BSWAP
> +     __asm__("bswap %0" : "=r" (val) : "0" (val));
> +# else
> +     __asm__("xchgb %b0,%h0\n\t"     /* swap lower bytes     */
> +         "rorl $16,%0\n\t"   /* swap words           */
> +         "xchgb %b0,%h0"     /* swap higher bytes    */
> +         : "=q" (val)
> +         : "0" (val));
> +# endif
> +
> +#else /* __i386__ */
> +     __asm__("bswapl %0"
> +         : "=r" (val)
> +         : "0" (val));
> +#endif
> +     return val;
> +}
> +#define __arch_swab32 __arch_swab32
> +
> +static __inline__ __u64 __arch_swab64(__u64 val)
> +{
> +#ifdef __i386__
> +     union {
> +             struct {
> +                     __u32 a;
> +                     __u32 b;
> +             } s;
> +             __u64 u;
> +     } v;
> +     v.u = val;
> +# ifdef CONFIG_X86_BSWAP
> +     __asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1"
> +         : "=r" (v.s.a), "=r" (v.s.b)
> +         : "0" (v.s.a), "1" (v.s.b));
> +# else
> +     v.s.a = __arch_swab32(v.s.a);
> +     v.s.b = __arch_swab32(v.s.b);
> +     __asm__("xchgl %0,%1"
> +         : "=r" (v.s.a), "=r" (v.s.b)
> +         : "0" (v.s.a), "1" (v.s.b));
> +# endif
> +     return v.u;
> +#else /* __i386__ */
> +     __asm__("bswapq %0"
> +         : "=r" (val)
> +         : "0" (val));
> +     return val;
> +#endif
> +}
> +#define __arch_swab64 __arch_swab64
> +
> +#endif /* _ASM_X86_SWAB_H */
> Index: u-boot-2013.10/include/linux/byteorder/little_endian.h
> ===================================================================
> --- u-boot-2013.10.orig/include/linux/byteorder/little_endian.h       
> 2013-10-16 19:08:12.000000000 +0200
> +++ u-boot-2013.10/include/linux/byteorder/little_endian.h    2013-11-30 
> 00:40:01.000000000 +0100
> @@ -7,86 +7,84 @@
>  #ifndef __LITTLE_ENDIAN_BITFIELD
>  #define __LITTLE_ENDIAN_BITFIELD
>  #endif
> -#define      __BYTE_ORDER    __LITTLE_ENDIAN
>  
> -#include <linux/compiler.h>
>  #include <linux/types.h>
> -#include <linux/byteorder/swab.h>
> +#include <linux/swab.h>
>  
> -#define __constant_htonl(x) ((__force __be32)___constant_swab32((x)))
> -#define __constant_ntohl(x) ___constant_swab32((__force __be32)(x))
> -#define __constant_htons(x) ((__force __be16)___constant_swab16((x)))
> -#define __constant_ntohs(x) ___constant_swab16((__force __be16)(x))
> -#define __constant_cpu_to_le64(x) ((__force __le64)(__u64)(x))
> -#define __constant_le64_to_cpu(x) ((__force __u64)(__le64)(x))
> -#define __constant_cpu_to_le32(x) ((__force __le32)(__u32)(x))
> -#define __constant_le32_to_cpu(x) ((__force __u32)(__le32)(x))
> -#define __constant_cpu_to_le16(x) ((__force __le16)(__u16)(x))
> -#define __constant_le16_to_cpu(x) ((__force __u16)(__le16)(x))
> -#define __constant_cpu_to_be64(x) ((__force __be64)___constant_swab64((x)))
> -#define __constant_be64_to_cpu(x) ___constant_swab64((__force 
> __u64)(__be64)(x))
> -#define __constant_cpu_to_be32(x) ((__force __be32)___constant_swab32((x)))
> -#define __constant_be32_to_cpu(x) ___constant_swab32((__force 
> __u32)(__be32)(x))
> -#define __constant_cpu_to_be16(x) ((__force __be16)___constant_swab16((x)))
> -#define __constant_be16_to_cpu(x) ___constant_swab16((__force 
> __u16)(__be16)(x))
> -#define __cpu_to_le64(x) ((__force __le64)(__u64)(x))
> -#define __le64_to_cpu(x) ((__force __u64)(__le64)(x))
> -#define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
> -#define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
> -#define __cpu_to_le16(x) ((__force __le16)(__u16)(x))
> -#define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
> -#define __cpu_to_be64(x) ((__force __be64)__swab64((x)))
> -#define __be64_to_cpu(x) __swab64((__force __u64)(__be64)(x))
> -#define __cpu_to_be32(x) ((__force __be32)__swab32((x)))
> -#define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
> -#define __cpu_to_be16(x) ((__force __be16)__swab16((x)))
> -#define __be16_to_cpu(x) __swab16((__force __u16)(__be16)(x))
> +#define __constant_htonl(x) ((__be32)___constant_swab32((x)))
> +#define __constant_ntohl(x) ___constant_swab32((__be32)(x))
> +#define __constant_htons(x) ((__be16)___constant_swab16((x)))
> +#define __constant_ntohs(x) ___constant_swab16((__be16)(x))
> +#define __constant_cpu_to_le64(x) ((__le64)(__u64)(x))
> +#define __constant_le64_to_cpu(x) ((__u64)(__le64)(x))
> +#define __constant_cpu_to_le32(x) ((__le32)(__u32)(x))
> +#define __constant_le32_to_cpu(x) ((__u32)(__le32)(x))
> +#define __constant_cpu_to_le16(x) ((__le16)(__u16)(x))
> +#define __constant_le16_to_cpu(x) ((__u16)(__le16)(x))
> +#define __constant_cpu_to_be64(x) ((__be64)___constant_swab64((x)))
> +#define __constant_be64_to_cpu(x) ___constant_swab64((__u64)(__be64)(x))
> +#define __constant_cpu_to_be32(x) ((__be32)___constant_swab32((x)))
> +#define __constant_be32_to_cpu(x) ___constant_swab32((__u32)(__be32)(x))
> +#define __constant_cpu_to_be16(x) ((__be16)___constant_swab16((x)))
> +#define __constant_be16_to_cpu(x) ___constant_swab16((__u16)(__be16)(x))
> +#define __cpu_to_le64(x) ((__le64)(__u64)(x))
> +#define __le64_to_cpu(x) ((__u64)(__le64)(x))
> +#define __cpu_to_le32(x) ((__le32)(__u32)(x))
> +#define __le32_to_cpu(x) ((__u32)(__le32)(x))
> +#define __cpu_to_le16(x) ((__le16)(__u16)(x))
> +#define __le16_to_cpu(x) ((__u16)(__le16)(x))
> +#define __cpu_to_be64(x) ((__be64)__swab64((x)))
> +#define __be64_to_cpu(x) __swab64((__u64)(__be64)(x))
> +#define __cpu_to_be32(x) ((__be32)__swab32((x)))
> +#define __be32_to_cpu(x) __swab32((__u32)(__be32)(x))
> +#define __cpu_to_be16(x) ((__be16)__swab16((x)))
> +#define __be16_to_cpu(x) __swab16((__u16)(__be16)(x))
>  
> -static inline __le64 __cpu_to_le64p(const __u64 *p)
> +static __inline__ __le64 __cpu_to_le64p(const __u64 *p)
>  {
> -     return (__force __le64)*p;
> +     return (__le64)*p;
>  }
> -static inline __u64 __le64_to_cpup(const __le64 *p)
> +static __inline__ __u64 __le64_to_cpup(const __le64 *p)
>  {
> -     return (__force __u64)*p;
> +     return (__u64)*p;
>  }
> -static inline __le32 __cpu_to_le32p(const __u32 *p)
> +static __inline__ __le32 __cpu_to_le32p(const __u32 *p)
>  {
> -     return (__force __le32)*p;
> +     return (__le32)*p;
>  }
> -static inline __u32 __le32_to_cpup(const __le32 *p)
> +static __inline__ __u32 __le32_to_cpup(const __le32 *p)
>  {
> -     return (__force __u32)*p;
> +     return (__u32)*p;
>  }
> -static inline __le16 __cpu_to_le16p(const __u16 *p)
> +static __inline__ __le16 __cpu_to_le16p(const __u16 *p)
>  {
> -     return (__force __le16)*p;
> +     return (__le16)*p;
>  }
> -static inline __u16 __le16_to_cpup(const __le16 *p)
> +static __inline__ __u16 __le16_to_cpup(const __le16 *p)
>  {
> -     return (__force __u16)*p;
> +     return (__u16)*p;
>  }
> -static inline __be64 __cpu_to_be64p(const __u64 *p)
> +static __inline__ __be64 __cpu_to_be64p(const __u64 *p)
>  {
> -     return (__force __be64)__swab64p(p);
> +     return (__be64)__swab64p(p);
>  }
> -static inline __u64 __be64_to_cpup(const __be64 *p)
> +static __inline__ __u64 __be64_to_cpup(const __be64 *p)
>  {
>       return __swab64p((__u64 *)p);
>  }
> -static inline __be32 __cpu_to_be32p(const __u32 *p)
> +static __inline__ __be32 __cpu_to_be32p(const __u32 *p)
>  {
> -     return (__force __be32)__swab32p(p);
> +     return (__be32)__swab32p(p);
>  }
> -static inline __u32 __be32_to_cpup(const __be32 *p)
> +static __inline__ __u32 __be32_to_cpup(const __be32 *p)
>  {
>       return __swab32p((__u32 *)p);
>  }
> -static inline __be16 __cpu_to_be16p(const __u16 *p)
> +static __inline__ __be16 __cpu_to_be16p(const __u16 *p)
>  {
> -     return (__force __be16)__swab16p(p);
> +     return (__be16)__swab16p(p);
>  }
> -static inline __u16 __be16_to_cpup(const __be16 *p)
> +static __inline__ __u16 __be16_to_cpup(const __be16 *p)
>  {
>       return __swab16p((__u16 *)p);
>  }
> @@ -103,8 +101,5 @@
>  #define __cpu_to_be16s(x) __swab16s((x))
>  #define __be16_to_cpus(x) __swab16s((x))
>  
> -#ifdef __KERNEL__
> -#include <linux/byteorder/generic.h>
> -#endif
>  
>  #endif /* _LINUX_BYTEORDER_LITTLE_ENDIAN_H */
> Index: u-boot-2013.10/include/linux/swab.h
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ u-boot-2013.10/include/linux/swab.h       2013-11-30 00:41:59.000000000 
> +0100
> @@ -0,0 +1,282 @@
> +#ifndef _LINUX_SWAB_H
> +#define _LINUX_SWAB_H
> +
> +#include <linux/types.h>
> +
> +#include <asm/swab.h>
> +
> +/*
> + * casts are necessary for constants, because we never know how for sure
> + * how U/UL/ULL map to __u16, __u32, __u64. At least not in a portable way.
> + */
> +#define ___constant_swab16(x) ((__u16)(                              \
> +     (((__u16)(x) & (__u16)0x00ffU) << 8) |                  \
> +     (((__u16)(x) & (__u16)0xff00U) >> 8)))
> +
> +#define ___constant_swab32(x) ((__u32)(                              \
> +     (((__u32)(x) & (__u32)0x000000ffUL) << 24) |            \
> +     (((__u32)(x) & (__u32)0x0000ff00UL) <<  8) |            \
> +     (((__u32)(x) & (__u32)0x00ff0000UL) >>  8) |            \
> +     (((__u32)(x) & (__u32)0xff000000UL) >> 24)))
> +
> +#define ___constant_swab64(x) ((__u64)(                              \
> +     (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) |   \
> +     (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) |   \
> +     (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) |   \
> +     (((__u64)(x) & (__u64)0x00000000ff000000ULL) <<  8) |   \
> +     (((__u64)(x) & (__u64)0x000000ff00000000ULL) >>  8) |   \
> +     (((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) |   \
> +     (((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) |   \
> +     (((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56)))
> +
> +#define ___constant_swahw32(x) ((__u32)(                     \
> +     (((__u32)(x) & (__u32)0x0000ffffUL) << 16) |            \
> +     (((__u32)(x) & (__u32)0xffff0000UL) >> 16)))
> +
> +#define ___constant_swahb32(x) ((__u32)(                     \
> +     (((__u32)(x) & (__u32)0x00ff00ffUL) << 8) |             \
> +     (((__u32)(x) & (__u32)0xff00ff00UL) >> 8)))
> +
> +/*
> + * Implement the following as inlines, but define the interface using
> + * macros to allow constant folding when possible:
> + * ___swab16, ___swab32, ___swab64, ___swahw32, ___swahb32
> + */
> +
> +static __inline__ __u16 __fswab16(__u16 val)
> +{
> +#ifdef __arch_swab16
> +     return __arch_swab16(val);
> +#else
> +     return ___constant_swab16(val);
> +#endif
> +}
> +
> +static __inline__ __u32 __fswab32(__u32 val)
> +{
> +#ifdef __arch_swab32
> +     return __arch_swab32(val);
> +#else
> +     return ___constant_swab32(val);
> +#endif
> +}
> +
> +static __inline__ __u64 __fswab64(__u64 val)
> +{
> +#ifdef __arch_swab64
> +     return __arch_swab64(val);
> +#elif defined(__SWAB_64_THRU_32__)
> +     __u32 h = val >> 32;
> +     __u32 l = val & ((1ULL << 32) - 1);
> +     return (((__u64)__fswab32(l)) << 32) | ((__u64)(__fswab32(h)));
> +#else
> +     return ___constant_swab64(val);
> +#endif
> +}
> +
> +static __inline__ __u32 __fswahw32(__u32 val)
> +{
> +#ifdef __arch_swahw32
> +     return __arch_swahw32(val);
> +#else
> +     return ___constant_swahw32(val);
> +#endif
> +}
> +
> +static __inline__ __u32 __fswahb32(__u32 val)
> +{
> +#ifdef __arch_swahb32
> +     return __arch_swahb32(val);
> +#else
> +     return ___constant_swahb32(val);
> +#endif
> +}
> +
> +/**
> + * __swab16 - return a byteswapped 16-bit value
> + * @x: value to byteswap
> + */
> +#define __swab16(x)                          \
> +     (__builtin_constant_p((__u16)(x)) ?     \
> +     ___constant_swab16(x) :                 \
> +     __fswab16(x))
> +
> +/**
> + * __swab32 - return a byteswapped 32-bit value
> + * @x: value to byteswap
> + */
> +#define __swab32(x)                          \
> +     (__builtin_constant_p((__u32)(x)) ?     \
> +     ___constant_swab32(x) :                 \
> +     __fswab32(x))
> +
> +/**
> + * __swab64 - return a byteswapped 64-bit value
> + * @x: value to byteswap
> + */
> +#define __swab64(x)                          \
> +     (__builtin_constant_p((__u64)(x)) ?     \
> +     ___constant_swab64(x) :                 \
> +     __fswab64(x))
> +
> +/**
> + * __swahw32 - return a word-swapped 32-bit value
> + * @x: value to wordswap
> + *
> + * __swahw32(0x12340000) is 0x00001234
> + */
> +#define __swahw32(x)                         \
> +     (__builtin_constant_p((__u32)(x)) ?     \
> +     ___constant_swahw32(x) :                \
> +     __fswahw32(x))
> +
> +/**
> + * __swahb32 - return a high and low byte-swapped 32-bit value
> + * @x: value to byteswap
> + *
> + * __swahb32(0x12345678) is 0x34127856
> + */
> +#define __swahb32(x)                         \
> +     (__builtin_constant_p((__u32)(x)) ?     \
> +     ___constant_swahb32(x) :                \
> +     __fswahb32(x))
> +
> +/**
> + * __swab16p - return a byteswapped 16-bit value from a pointer
> + * @p: pointer to a naturally-aligned 16-bit value
> + */
> +static __inline__ __u16 __swab16p(const __u16 *p)
> +{
> +#ifdef __arch_swab16p
> +     return __arch_swab16p(p);
> +#else
> +     return __swab16(*p);
> +#endif
> +}
> +
> +/**
> + * __swab32p - return a byteswapped 32-bit value from a pointer
> + * @p: pointer to a naturally-aligned 32-bit value
> + */
> +static __inline__ __u32 __swab32p(const __u32 *p)
> +{
> +#ifdef __arch_swab32p
> +     return __arch_swab32p(p);
> +#else
> +     return __swab32(*p);
> +#endif
> +}
> +
> +/**
> + * __swab64p - return a byteswapped 64-bit value from a pointer
> + * @p: pointer to a naturally-aligned 64-bit value
> + */
> +static __inline__ __u64 __swab64p(const __u64 *p)
> +{
> +#ifdef __arch_swab64p
> +     return __arch_swab64p(p);
> +#else
> +     return __swab64(*p);
> +#endif
> +}
> +
> +/**
> + * __swahw32p - return a wordswapped 32-bit value from a pointer
> + * @p: pointer to a naturally-aligned 32-bit value
> + *
> + * See __swahw32() for details of wordswapping.
> + */
> +static __inline__ __u32 __swahw32p(const __u32 *p)
> +{
> +#ifdef __arch_swahw32p
> +     return __arch_swahw32p(p);
> +#else
> +     return __swahw32(*p);
> +#endif
> +}
> +
> +/**
> + * __swahb32p - return a high and low byteswapped 32-bit value from a pointer
> + * @p: pointer to a naturally-aligned 32-bit value
> + *
> + * See __swahb32() for details of high/low byteswapping.
> + */
> +static __inline__ __u32 __swahb32p(const __u32 *p)
> +{
> +#ifdef __arch_swahb32p
> +     return __arch_swahb32p(p);
> +#else
> +     return __swahb32(*p);
> +#endif
> +}
> +
> +/**
> + * __swab16s - byteswap a 16-bit value in-place
> + * @p: pointer to a naturally-aligned 16-bit value
> + */
> +static __inline__ void __swab16s(__u16 *p)
> +{
> +#ifdef __arch_swab16s
> +     __arch_swab16s(p);
> +#else
> +     *p = __swab16p(p);
> +#endif
> +}
> +/**
> + * __swab32s - byteswap a 32-bit value in-place
> + * @p: pointer to a naturally-aligned 32-bit value
> + */
> +static __inline__ void __swab32s(__u32 *p)
> +{
> +#ifdef __arch_swab32s
> +     __arch_swab32s(p);
> +#else
> +     *p = __swab32p(p);
> +#endif
> +}
> +
> +/**
> + * __swab64s - byteswap a 64-bit value in-place
> + * @p: pointer to a naturally-aligned 64-bit value
> + */
> +static __inline__ void __swab64s(__u64 *p)
> +{
> +#ifdef __arch_swab64s
> +     __arch_swab64s(p);
> +#else
> +     *p = __swab64p(p);
> +#endif
> +}
> +
> +/**
> + * __swahw32s - wordswap a 32-bit value in-place
> + * @p: pointer to a naturally-aligned 32-bit value
> + *
> + * See __swahw32() for details of wordswapping
> + */
> +static __inline__ void __swahw32s(__u32 *p)
> +{
> +#ifdef __arch_swahw32s
> +     __arch_swahw32s(p);
> +#else
> +     *p = __swahw32p(p);
> +#endif
> +}
> +
> +/**
> + * __swahb32s - high and low byteswap a 32-bit value in-place
> + * @p: pointer to a naturally-aligned 32-bit value
> + *
> + * See __swahb32() for details of high and low byte swapping
> + */
> +static __inline__ void __swahb32s(__u32 *p)
> +{
> +#ifdef __arch_swahb32s
> +     __arch_swahb32s(p);
> +#else
> +     *p = __swahb32p(p);
> +#endif
> +}
> +
> +
> +#endif /* _LINUX_SWAB_H */


-- 
diff -Nru u-boot-2013.10/debian/changelog u-boot-2013.10/debian/changelog
--- u-boot-2013.10/debian/changelog     2013-11-17 09:09:41.000000000 +0100
+++ u-boot-2013.10/debian/changelog     2013-12-13 21:11:10.000000000 +0100
@@ -1,3 +1,9 @@
+u-boot (2013.10-4) UNRELEASED; urgency=low
+
+  * Fix build on kfreebsd and hurd (Closes: #730833)
+
+ -- Ryan Niebur <r...@debian.org>  Fri, 13 Dec 2013 21:10:51 +0100
+
 u-boot (2013.10-3) unstable; urgency=low
 
   * Move build of dbau1100 from mipsel to mips, which fixes FTBFS on mipsel,
diff -Nru u-boot-2013.10/debian/patches/add_asm_posix_types_header_files.diff 
u-boot-2013.10/debian/patches/add_asm_posix_types_header_files.diff
--- u-boot-2013.10/debian/patches/add_asm_posix_types_header_files.diff 
1970-01-01 01:00:00.000000000 +0100
+++ u-boot-2013.10/debian/patches/add_asm_posix_types_header_files.diff 
2013-12-13 21:22:32.000000000 +0100
@@ -0,0 +1,730 @@
+Courtesy of linux-libc-dev package from i386 architecture,
+copied from the /usr/include/i386-linux-gnu/ directory.
+
+This is needed because our package source here includes a
+file, include/linux/types.h, also copied from that package.
+
+There are also other related header files that are needed.
+
+Patch by Ryan Niebur
+
+Index: u-boot-2013.10/include/debian/asm-generic/bitsperlong.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/asm-generic/bitsperlong.h    2013-12-13 
21:00:41.000000000 +0100
+@@ -0,0 +1,15 @@
++#ifndef __ASM_GENERIC_BITS_PER_LONG
++#define __ASM_GENERIC_BITS_PER_LONG
++
++/*
++ * There seems to be no way of detecting this automatically from user
++ * space, so 64 bit architectures should override this in their
++ * bitsperlong.h. In particular, an architecture that supports
++ * both 32 and 64 bit user space must not rely on CONFIG_64BIT
++ * to decide it, but rather check a compiler provided macro.
++ */
++#ifndef __BITS_PER_LONG
++#define __BITS_PER_LONG 32
++#endif
++
++#endif /* __ASM_GENERIC_BITS_PER_LONG */
+Index: u-boot-2013.10/include/debian/asm-generic/int-ll64.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/asm-generic/int-ll64.h       2013-12-13 
21:00:41.000000000 +0100
+@@ -0,0 +1,39 @@
++/*
++ * asm-generic/int-ll64.h
++ *
++ * Integer declarations for architectures which use "long long"
++ * for 64-bit types.
++ */
++
++#ifndef _ASM_GENERIC_INT_LL64_H
++#define _ASM_GENERIC_INT_LL64_H
++
++#include <asm/bitsperlong.h>
++
++#ifndef __ASSEMBLY__
++/*
++ * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
++ * header files exported to user space
++ */
++
++typedef __signed__ char __s8;
++typedef unsigned char __u8;
++
++typedef __signed__ short __s16;
++typedef unsigned short __u16;
++
++typedef __signed__ int __s32;
++typedef unsigned int __u32;
++
++#ifdef __GNUC__
++__extension__ typedef __signed__ long long __s64;
++__extension__ typedef unsigned long long __u64;
++#else
++typedef __signed__ long long __s64;
++typedef unsigned long long __u64;
++#endif
++
++#endif /* __ASSEMBLY__ */
++
++
++#endif /* _ASM_GENERIC_INT_LL64_H */
+Index: u-boot-2013.10/include/debian/asm-generic/types.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/asm-generic/types.h  2013-12-13 
21:00:41.000000000 +0100
+@@ -0,0 +1,15 @@
++#ifndef _ASM_GENERIC_TYPES_H
++#define _ASM_GENERIC_TYPES_H
++/*
++ * int-ll64 is used practically everywhere now,
++ * so use it as a reasonable default.
++ */
++#include <asm-generic/int-ll64.h>
++
++#ifndef __ASSEMBLY__
++
++typedef unsigned short umode_t;
++
++#endif /* __ASSEMBLY__ */
++
++#endif /* _ASM_GENERIC_TYPES_H */
+Index: u-boot-2013.10/include/debian/asm/bitsperlong.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/asm/bitsperlong.h    2013-12-13 
21:00:41.000000000 +0100
+@@ -0,0 +1,13 @@
++#ifndef __ASM_X86_BITSPERLONG_H
++#define __ASM_X86_BITSPERLONG_H
++
++#ifdef __x86_64__
++# define __BITS_PER_LONG 64
++#else
++# define __BITS_PER_LONG 32
++#endif
++
++#include <asm-generic/bitsperlong.h>
++
++#endif /* __ASM_X86_BITSPERLONG_H */
++
+Index: u-boot-2013.10/include/debian/asm/byteorder.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/asm/byteorder.h      2013-12-13 
21:00:41.000000000 +0100
+@@ -0,0 +1,6 @@
++#ifndef _ASM_X86_BYTEORDER_H
++#define _ASM_X86_BYTEORDER_H
++
++#include <linux/byteorder/little_endian.h>
++
++#endif /* _ASM_X86_BYTEORDER_H */
+Index: u-boot-2013.10/include/debian/asm/posix_types.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/asm/posix_types.h    2013-12-13 
21:00:41.000000000 +0100
+@@ -0,0 +1,5 @@
++# ifdef __i386__
++#  include "posix_types_32.h"
++# else
++#  include "posix_types_64.h"
++# endif
+Index: u-boot-2013.10/include/debian/asm/posix_types_32.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/asm/posix_types_32.h 2013-12-13 
21:00:41.000000000 +0100
+@@ -0,0 +1,49 @@
++#ifndef _ASM_X86_POSIX_TYPES_32_H
++#define _ASM_X86_POSIX_TYPES_32_H
++
++/*
++ * This file is generally used by user-level software, so you need to
++ * be a little careful about namespace pollution etc.  Also, we cannot
++ * assume GCC is being used.
++ */
++
++#include <sys/_types.h>
++// RYAN52: THIS PACKAGE NEEDS THE FOLLOWING COMMENTED OUT DUE TO CONFLICT IN 
/usr/include/sys/_types.h
++//typedef unsigned long       __kernel_ino_t;
++typedef unsigned long __kernel_ino_t;
++typedef unsigned short        __kernel_mode_t;
++typedef unsigned short        __kernel_nlink_t;
++typedef long          __kernel_off_t;
++typedef int           __kernel_pid_t;
++typedef unsigned short        __kernel_ipc_pid_t;
++typedef unsigned short        __kernel_uid_t;
++typedef unsigned short        __kernel_gid_t;
++typedef unsigned int  __kernel_size_t;
++typedef int           __kernel_ssize_t;
++typedef int           __kernel_ptrdiff_t;
++typedef long          __kernel_time_t;
++typedef long          __kernel_suseconds_t;
++typedef long          __kernel_clock_t;
++typedef int           __kernel_timer_t;
++typedef int           __kernel_clockid_t;
++typedef int           __kernel_daddr_t;
++typedef char *                __kernel_caddr_t;
++typedef unsigned short        __kernel_uid16_t;
++typedef unsigned short        __kernel_gid16_t;
++typedef unsigned int  __kernel_uid32_t;
++typedef unsigned int  __kernel_gid32_t;
++
++typedef unsigned short        __kernel_old_uid_t;
++typedef unsigned short        __kernel_old_gid_t;
++typedef unsigned short        __kernel_old_dev_t;
++
++#ifdef __GNUC__
++typedef long long     __kernel_loff_t;
++#endif
++
++typedef struct {
++      int     val[2];
++} __kernel_fsid_t;
++
++
++#endif /* _ASM_X86_POSIX_TYPES_32_H */
+Index: u-boot-2013.10/include/debian/asm/posix_types_64.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/asm/posix_types_64.h 2013-12-13 
21:00:41.000000000 +0100
+@@ -0,0 +1,49 @@
++#ifndef _ASM_X86_POSIX_TYPES_64_H
++#define _ASM_X86_POSIX_TYPES_64_H
++
++/*
++ * This file is generally used by user-level software, so you need to
++ * be a little careful about namespace pollution etc.  Also, we cannot
++ * assume GCC is being used.
++ */
++
++#include <sys/_types.h>
++// RYAN52: THIS PACKAGE NEEDS THE FOLLOWING COMMENTED OUT DUE TO CONFLICT IN 
/usr/include/sys/_types.h
++//typedef unsigned long       __kernel_ino_t;
++typedef unsigned int  __kernel_mode_t;
++typedef unsigned long __kernel_nlink_t;
++typedef long          __kernel_off_t;
++typedef int           __kernel_pid_t;
++typedef int           __kernel_ipc_pid_t;
++typedef unsigned int  __kernel_uid_t;
++typedef unsigned int  __kernel_gid_t;
++typedef unsigned long __kernel_size_t;
++typedef long          __kernel_ssize_t;
++typedef long          __kernel_ptrdiff_t;
++typedef long          __kernel_time_t;
++typedef long          __kernel_suseconds_t;
++typedef long          __kernel_clock_t;
++typedef int           __kernel_timer_t;
++typedef int           __kernel_clockid_t;
++typedef int           __kernel_daddr_t;
++typedef char *                __kernel_caddr_t;
++typedef unsigned short        __kernel_uid16_t;
++typedef unsigned short        __kernel_gid16_t;
++
++#ifdef __GNUC__
++typedef long long     __kernel_loff_t;
++#endif
++
++typedef struct {
++      int     val[2];
++} __kernel_fsid_t;
++
++typedef unsigned short __kernel_old_uid_t;
++typedef unsigned short __kernel_old_gid_t;
++typedef __kernel_uid_t __kernel_uid32_t;
++typedef __kernel_gid_t __kernel_gid32_t;
++
++typedef unsigned long __kernel_old_dev_t;
++
++
++#endif /* _ASM_X86_POSIX_TYPES_64_H */
+Index: u-boot-2013.10/include/debian/asm/swab.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/asm/swab.h   2013-12-13 21:00:41.000000000 
+0100
+@@ -0,0 +1,61 @@
++#ifndef _ASM_X86_SWAB_H
++#define _ASM_X86_SWAB_H
++
++#include <linux/types.h>
++
++
++static __inline__ __u32 __arch_swab32(__u32 val)
++{
++#ifdef __i386__
++# ifdef CONFIG_X86_BSWAP
++      __asm__("bswap %0" : "=r" (val) : "0" (val));
++# else
++      __asm__("xchgb %b0,%h0\n\t"     /* swap lower bytes     */
++          "rorl $16,%0\n\t"   /* swap words           */
++          "xchgb %b0,%h0"     /* swap higher bytes    */
++          : "=q" (val)
++          : "0" (val));
++# endif
++
++#else /* __i386__ */
++      __asm__("bswapl %0"
++          : "=r" (val)
++          : "0" (val));
++#endif
++      return val;
++}
++#define __arch_swab32 __arch_swab32
++
++static __inline__ __u64 __arch_swab64(__u64 val)
++{
++#ifdef __i386__
++      union {
++              struct {
++                      __u32 a;
++                      __u32 b;
++              } s;
++              __u64 u;
++      } v;
++      v.u = val;
++# ifdef CONFIG_X86_BSWAP
++      __asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1"
++          : "=r" (v.s.a), "=r" (v.s.b)
++          : "0" (v.s.a), "1" (v.s.b));
++# else
++      v.s.a = __arch_swab32(v.s.a);
++      v.s.b = __arch_swab32(v.s.b);
++      __asm__("xchgl %0,%1"
++          : "=r" (v.s.a), "=r" (v.s.b)
++          : "0" (v.s.a), "1" (v.s.b));
++# endif
++      return v.u;
++#else /* __i386__ */
++      __asm__("bswapq %0"
++          : "=r" (val)
++          : "0" (val));
++      return val;
++#endif
++}
++#define __arch_swab64 __arch_swab64
++
++#endif /* _ASM_X86_SWAB_H */
+Index: u-boot-2013.10/include/debian/asm/types.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/asm/types.h  2013-12-13 21:00:41.000000000 
+0100
+@@ -0,0 +1,6 @@
++#ifndef _ASM_X86_TYPES_H
++#define _ASM_X86_TYPES_H
++
++#include <asm-generic/types.h>
++
++#endif /* _ASM_X86_TYPES_H */
+Index: u-boot-2013.10/include/debian/linux/byteorder/little_endian.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/linux/byteorder/little_endian.h      
2013-12-13 21:00:41.000000000 +0100
+@@ -0,0 +1,105 @@
++#ifndef _LINUX_BYTEORDER_LITTLE_ENDIAN_H
++#define _LINUX_BYTEORDER_LITTLE_ENDIAN_H
++
++#ifndef __LITTLE_ENDIAN
++#define __LITTLE_ENDIAN 1234
++#endif
++#ifndef __LITTLE_ENDIAN_BITFIELD
++#define __LITTLE_ENDIAN_BITFIELD
++#endif
++
++#include <linux/types.h>
++#include <linux/swab.h>
++
++#define __constant_htonl(x) ((__be32)___constant_swab32((x)))
++#define __constant_ntohl(x) ___constant_swab32((__be32)(x))
++#define __constant_htons(x) ((__be16)___constant_swab16((x)))
++#define __constant_ntohs(x) ___constant_swab16((__be16)(x))
++#define __constant_cpu_to_le64(x) ((__le64)(__u64)(x))
++#define __constant_le64_to_cpu(x) ((__u64)(__le64)(x))
++#define __constant_cpu_to_le32(x) ((__le32)(__u32)(x))
++#define __constant_le32_to_cpu(x) ((__u32)(__le32)(x))
++#define __constant_cpu_to_le16(x) ((__le16)(__u16)(x))
++#define __constant_le16_to_cpu(x) ((__u16)(__le16)(x))
++#define __constant_cpu_to_be64(x) ((__be64)___constant_swab64((x)))
++#define __constant_be64_to_cpu(x) ___constant_swab64((__u64)(__be64)(x))
++#define __constant_cpu_to_be32(x) ((__be32)___constant_swab32((x)))
++#define __constant_be32_to_cpu(x) ___constant_swab32((__u32)(__be32)(x))
++#define __constant_cpu_to_be16(x) ((__be16)___constant_swab16((x)))
++#define __constant_be16_to_cpu(x) ___constant_swab16((__u16)(__be16)(x))
++#define __cpu_to_le64(x) ((__le64)(__u64)(x))
++#define __le64_to_cpu(x) ((__u64)(__le64)(x))
++#define __cpu_to_le32(x) ((__le32)(__u32)(x))
++#define __le32_to_cpu(x) ((__u32)(__le32)(x))
++#define __cpu_to_le16(x) ((__le16)(__u16)(x))
++#define __le16_to_cpu(x) ((__u16)(__le16)(x))
++#define __cpu_to_be64(x) ((__be64)__swab64((x)))
++#define __be64_to_cpu(x) __swab64((__u64)(__be64)(x))
++#define __cpu_to_be32(x) ((__be32)__swab32((x)))
++#define __be32_to_cpu(x) __swab32((__u32)(__be32)(x))
++#define __cpu_to_be16(x) ((__be16)__swab16((x)))
++#define __be16_to_cpu(x) __swab16((__u16)(__be16)(x))
++
++static __inline__ __le64 __cpu_to_le64p(const __u64 *p)
++{
++      return (__le64)*p;
++}
++static __inline__ __u64 __le64_to_cpup(const __le64 *p)
++{
++      return (__u64)*p;
++}
++static __inline__ __le32 __cpu_to_le32p(const __u32 *p)
++{
++      return (__le32)*p;
++}
++static __inline__ __u32 __le32_to_cpup(const __le32 *p)
++{
++      return (__u32)*p;
++}
++static __inline__ __le16 __cpu_to_le16p(const __u16 *p)
++{
++      return (__le16)*p;
++}
++static __inline__ __u16 __le16_to_cpup(const __le16 *p)
++{
++      return (__u16)*p;
++}
++static __inline__ __be64 __cpu_to_be64p(const __u64 *p)
++{
++      return (__be64)__swab64p(p);
++}
++static __inline__ __u64 __be64_to_cpup(const __be64 *p)
++{
++      return __swab64p((__u64 *)p);
++}
++static __inline__ __be32 __cpu_to_be32p(const __u32 *p)
++{
++      return (__be32)__swab32p(p);
++}
++static __inline__ __u32 __be32_to_cpup(const __be32 *p)
++{
++      return __swab32p((__u32 *)p);
++}
++static __inline__ __be16 __cpu_to_be16p(const __u16 *p)
++{
++      return (__be16)__swab16p(p);
++}
++static __inline__ __u16 __be16_to_cpup(const __be16 *p)
++{
++      return __swab16p((__u16 *)p);
++}
++#define __cpu_to_le64s(x) do { (void)(x); } while (0)
++#define __le64_to_cpus(x) do { (void)(x); } while (0)
++#define __cpu_to_le32s(x) do { (void)(x); } while (0)
++#define __le32_to_cpus(x) do { (void)(x); } while (0)
++#define __cpu_to_le16s(x) do { (void)(x); } while (0)
++#define __le16_to_cpus(x) do { (void)(x); } while (0)
++#define __cpu_to_be64s(x) __swab64s((x))
++#define __be64_to_cpus(x) __swab64s((x))
++#define __cpu_to_be32s(x) __swab32s((x))
++#define __be32_to_cpus(x) __swab32s((x))
++#define __cpu_to_be16s(x) __swab16s((x))
++#define __be16_to_cpus(x) __swab16s((x))
++
++
++#endif /* _LINUX_BYTEORDER_LITTLE_ENDIAN_H */
+Index: u-boot-2013.10/include/debian/linux/swab.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2013.10/include/debian/linux/swab.h 2013-12-13 21:00:41.000000000 
+0100
+@@ -0,0 +1,282 @@
++#ifndef _LINUX_SWAB_H
++#define _LINUX_SWAB_H
++
++#include <linux/types.h>
++
++#include <asm/swab.h>
++
++/*
++ * casts are necessary for constants, because we never know how for sure
++ * how U/UL/ULL map to __u16, __u32, __u64. At least not in a portable way.
++ */
++#define ___constant_swab16(x) ((__u16)(                               \
++      (((__u16)(x) & (__u16)0x00ffU) << 8) |                  \
++      (((__u16)(x) & (__u16)0xff00U) >> 8)))
++
++#define ___constant_swab32(x) ((__u32)(                               \
++      (((__u32)(x) & (__u32)0x000000ffUL) << 24) |            \
++      (((__u32)(x) & (__u32)0x0000ff00UL) <<  8) |            \
++      (((__u32)(x) & (__u32)0x00ff0000UL) >>  8) |            \
++      (((__u32)(x) & (__u32)0xff000000UL) >> 24)))
++
++#define ___constant_swab64(x) ((__u64)(                               \
++      (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) |   \
++      (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) |   \
++      (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) |   \
++      (((__u64)(x) & (__u64)0x00000000ff000000ULL) <<  8) |   \
++      (((__u64)(x) & (__u64)0x000000ff00000000ULL) >>  8) |   \
++      (((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) |   \
++      (((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) |   \
++      (((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56)))
++
++#define ___constant_swahw32(x) ((__u32)(                      \
++      (((__u32)(x) & (__u32)0x0000ffffUL) << 16) |            \
++      (((__u32)(x) & (__u32)0xffff0000UL) >> 16)))
++
++#define ___constant_swahb32(x) ((__u32)(                      \
++      (((__u32)(x) & (__u32)0x00ff00ffUL) << 8) |             \
++      (((__u32)(x) & (__u32)0xff00ff00UL) >> 8)))
++
++/*
++ * Implement the following as inlines, but define the interface using
++ * macros to allow constant folding when possible:
++ * ___swab16, ___swab32, ___swab64, ___swahw32, ___swahb32
++ */
++
++static __inline__ __u16 __fswab16(__u16 val)
++{
++#ifdef __arch_swab16
++      return __arch_swab16(val);
++#else
++      return ___constant_swab16(val);
++#endif
++}
++
++static __inline__ __u32 __fswab32(__u32 val)
++{
++#ifdef __arch_swab32
++      return __arch_swab32(val);
++#else
++      return ___constant_swab32(val);
++#endif
++}
++
++static __inline__ __u64 __fswab64(__u64 val)
++{
++#ifdef __arch_swab64
++      return __arch_swab64(val);
++#elif defined(__SWAB_64_THRU_32__)
++      __u32 h = val >> 32;
++      __u32 l = val & ((1ULL << 32) - 1);
++      return (((__u64)__fswab32(l)) << 32) | ((__u64)(__fswab32(h)));
++#else
++      return ___constant_swab64(val);
++#endif
++}
++
++static __inline__ __u32 __fswahw32(__u32 val)
++{
++#ifdef __arch_swahw32
++      return __arch_swahw32(val);
++#else
++      return ___constant_swahw32(val);
++#endif
++}
++
++static __inline__ __u32 __fswahb32(__u32 val)
++{
++#ifdef __arch_swahb32
++      return __arch_swahb32(val);
++#else
++      return ___constant_swahb32(val);
++#endif
++}
++
++/**
++ * __swab16 - return a byteswapped 16-bit value
++ * @x: value to byteswap
++ */
++#define __swab16(x)                           \
++      (__builtin_constant_p((__u16)(x)) ?     \
++      ___constant_swab16(x) :                 \
++      __fswab16(x))
++
++/**
++ * __swab32 - return a byteswapped 32-bit value
++ * @x: value to byteswap
++ */
++#define __swab32(x)                           \
++      (__builtin_constant_p((__u32)(x)) ?     \
++      ___constant_swab32(x) :                 \
++      __fswab32(x))
++
++/**
++ * __swab64 - return a byteswapped 64-bit value
++ * @x: value to byteswap
++ */
++#define __swab64(x)                           \
++      (__builtin_constant_p((__u64)(x)) ?     \
++      ___constant_swab64(x) :                 \
++      __fswab64(x))
++
++/**
++ * __swahw32 - return a word-swapped 32-bit value
++ * @x: value to wordswap
++ *
++ * __swahw32(0x12340000) is 0x00001234
++ */
++#define __swahw32(x)                          \
++      (__builtin_constant_p((__u32)(x)) ?     \
++      ___constant_swahw32(x) :                \
++      __fswahw32(x))
++
++/**
++ * __swahb32 - return a high and low byte-swapped 32-bit value
++ * @x: value to byteswap
++ *
++ * __swahb32(0x12345678) is 0x34127856
++ */
++#define __swahb32(x)                          \
++      (__builtin_constant_p((__u32)(x)) ?     \
++      ___constant_swahb32(x) :                \
++      __fswahb32(x))
++
++/**
++ * __swab16p - return a byteswapped 16-bit value from a pointer
++ * @p: pointer to a naturally-aligned 16-bit value
++ */
++static __inline__ __u16 __swab16p(const __u16 *p)
++{
++#ifdef __arch_swab16p
++      return __arch_swab16p(p);
++#else
++      return __swab16(*p);
++#endif
++}
++
++/**
++ * __swab32p - return a byteswapped 32-bit value from a pointer
++ * @p: pointer to a naturally-aligned 32-bit value
++ */
++static __inline__ __u32 __swab32p(const __u32 *p)
++{
++#ifdef __arch_swab32p
++      return __arch_swab32p(p);
++#else
++      return __swab32(*p);
++#endif
++}
++
++/**
++ * __swab64p - return a byteswapped 64-bit value from a pointer
++ * @p: pointer to a naturally-aligned 64-bit value
++ */
++static __inline__ __u64 __swab64p(const __u64 *p)
++{
++#ifdef __arch_swab64p
++      return __arch_swab64p(p);
++#else
++      return __swab64(*p);
++#endif
++}
++
++/**
++ * __swahw32p - return a wordswapped 32-bit value from a pointer
++ * @p: pointer to a naturally-aligned 32-bit value
++ *
++ * See __swahw32() for details of wordswapping.
++ */
++static __inline__ __u32 __swahw32p(const __u32 *p)
++{
++#ifdef __arch_swahw32p
++      return __arch_swahw32p(p);
++#else
++      return __swahw32(*p);
++#endif
++}
++
++/**
++ * __swahb32p - return a high and low byteswapped 32-bit value from a pointer
++ * @p: pointer to a naturally-aligned 32-bit value
++ *
++ * See __swahb32() for details of high/low byteswapping.
++ */
++static __inline__ __u32 __swahb32p(const __u32 *p)
++{
++#ifdef __arch_swahb32p
++      return __arch_swahb32p(p);
++#else
++      return __swahb32(*p);
++#endif
++}
++
++/**
++ * __swab16s - byteswap a 16-bit value in-place
++ * @p: pointer to a naturally-aligned 16-bit value
++ */
++static __inline__ void __swab16s(__u16 *p)
++{
++#ifdef __arch_swab16s
++      __arch_swab16s(p);
++#else
++      *p = __swab16p(p);
++#endif
++}
++/**
++ * __swab32s - byteswap a 32-bit value in-place
++ * @p: pointer to a naturally-aligned 32-bit value
++ */
++static __inline__ void __swab32s(__u32 *p)
++{
++#ifdef __arch_swab32s
++      __arch_swab32s(p);
++#else
++      *p = __swab32p(p);
++#endif
++}
++
++/**
++ * __swab64s - byteswap a 64-bit value in-place
++ * @p: pointer to a naturally-aligned 64-bit value
++ */
++static __inline__ void __swab64s(__u64 *p)
++{
++#ifdef __arch_swab64s
++      __arch_swab64s(p);
++#else
++      *p = __swab64p(p);
++#endif
++}
++
++/**
++ * __swahw32s - wordswap a 32-bit value in-place
++ * @p: pointer to a naturally-aligned 32-bit value
++ *
++ * See __swahw32() for details of wordswapping
++ */
++static __inline__ void __swahw32s(__u32 *p)
++{
++#ifdef __arch_swahw32s
++      __arch_swahw32s(p);
++#else
++      *p = __swahw32p(p);
++#endif
++}
++
++/**
++ * __swahb32s - high and low byteswap a 32-bit value in-place
++ * @p: pointer to a naturally-aligned 32-bit value
++ *
++ * See __swahb32() for details of high and low byte swapping
++ */
++static __inline__ void __swahb32s(__u32 *p)
++{
++#ifdef __arch_swahb32s
++      __arch_swahb32s(p);
++#else
++      *p = __swahb32p(p);
++#endif
++}
++
++
++#endif /* _LINUX_SWAB_H */
+Index: u-boot-2013.10/tools/Makefile
+===================================================================
+--- u-boot-2013.10.orig/tools/Makefile 2013-12-13 21:18:15.000000000 +0100
++++ u-boot-2013.10/tools/Makefile      2013-12-13 21:20:05.000000000 +0100
+@@ -169,6 +169,10 @@
+               -D__KERNEL_STRICT_NAMES \
+               -D_GNU_SOURCE
+ 
++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
++ifneq (,$(findstring hurd,$(DEB_BUILD_GNU_TYPE))$(findstring 
kfreebsd,$(DEB_BUILD_GNU_TYPE)))
++  HOSTCPPFLAGS += -I$(SRCTREE)/include/debian/
++endif
+ 
+ all:  $(obj).depend $(BINS) $(LOGO-y) subdirs
+ 
diff -Nru u-boot-2013.10/debian/patches/series 
u-boot-2013.10/debian/patches/series
--- u-boot-2013.10/debian/patches/series        2013-11-16 07:35:38.000000000 
+0100
+++ u-boot-2013.10/debian/patches/series        2013-11-29 23:39:49.000000000 
+0100
@@ -8,3 +8,4 @@
 0001-wandboard-uEnv.txt-bootz-n-fixes.patch
 ti_armv7_common-support_raw_initrd.diff
 am335x-uenv.txt.diff
+add_asm_posix_types_header_files.diff

Reply via email to