Bug#519761: linux-libc-dev: conflict between asm/byteorder.h and endian.h
* Aurelien Jarno aure...@debian.org [2009-03-15 00:09]: linux-libc-dev has changed the way asm/byteorder.h declares endianness related #define, and they conflict with endian.h at least on mips and mipsel. This is something fixed upstream, please find below the upstream patch and a less invasive patch. I'm afraid both patches lead to: CC arch/mips/kernel/asm-offsets.s In file included from /home/tbm/kernel/linux-2.6-2.6.28/debian/build/build_mips_none_4kc-malta/arch/mips/include/asm/byteorder.h:17, from /home/tbm/kernel/linux-2.6-2.6.28/debian/build/build_mips_none_4kc-malta/arch/mips/include/asm/bitops.h:21, from include/linux/bitops.h:17, from include/linux/kernel.h:15, from include/linux/sched.h:52, from arch/mips/kernel/asm-offsets.c:13: include/linux/byteorder/big_endian.h: In function ‘__cpu_to_le64p’: include/linux/byteorder/big_endian.h:46: error: implicit declaration of function ‘__swab64p’ In file included from include/linux/byteorder/big_endian.h:106, from /home/tbm/kernel/linux-2.6-2.6.28/debian/build/build_mips_none_4kc-malta/arch/mips/include/asm/byteorder.h:17, from /home/tbm/kernel/linux-2.6-2.6.28/debian/build/build_mips_none_4kc-malta/arch/mips/include/asm/bitops.h:21, from include/linux/bitops.h:17, from include/linux/kernel.h:15, from include/linux/sched.h:52, from arch/mips/kernel/asm-offsets.c:13: include/linux/byteorder/generic.h: In function ‘le64_add_cpu’: include/linux/byteorder/generic.h:155: error: implicit declaration of function ‘__fswab64’ make[1]: *** [arch/mips/kernel/asm-offsets.s] Error 1 -- Martin Michlmayr http://www.cyrius.com/ -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#519761: linux-libc-dev: conflict between asm/byteorder.h and endian.h
* Aurelien Jarno aure...@debian.org [2009-03-15 10:58]: I am afraid we will have to wait for 2.6.29. Given the numerous upstream changes affecting byteorder, we may break something trying to backport those changes. Works for me. We intend to upload 2.6.29 immediately when it's uploaded anyway. -- Martin Michlmayr http://www.cyrius.com/ -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#519761: linux-libc-dev: conflict between asm/byteorder.h and endian.h
On Sun, Mar 15, 2009 at 10:23:59AM +0100, Martin Michlmayr wrote: * Aurelien Jarno aure...@debian.org [2009-03-15 00:09]: linux-libc-dev has changed the way asm/byteorder.h declares endianness related #define, and they conflict with endian.h at least on mips and mipsel. This is something fixed upstream, please find below the upstream patch and a less invasive patch. I'm afraid both patches lead to: CC arch/mips/kernel/asm-offsets.s In file included from /home/tbm/kernel/linux-2.6-2.6.28/debian/build/build_mips_none_4kc-malta/arch/mips/include/asm/byteorder.h:17, from /home/tbm/kernel/linux-2.6-2.6.28/debian/build/build_mips_none_4kc-malta/arch/mips/include/asm/bitops.h:21, from include/linux/bitops.h:17, from include/linux/kernel.h:15, from include/linux/sched.h:52, from arch/mips/kernel/asm-offsets.c:13: include/linux/byteorder/big_endian.h: In function ‘__cpu_to_le64p’: include/linux/byteorder/big_endian.h:46: error: implicit declaration of function ‘__swab64p’ In file included from include/linux/byteorder/big_endian.h:106, from /home/tbm/kernel/linux-2.6-2.6.28/debian/build/build_mips_none_4kc-malta/arch/mips/include/asm/byteorder.h:17, from /home/tbm/kernel/linux-2.6-2.6.28/debian/build/build_mips_none_4kc-malta/arch/mips/include/asm/bitops.h:21, from include/linux/bitops.h:17, from include/linux/kernel.h:15, from include/linux/sched.h:52, from arch/mips/kernel/asm-offsets.c:13: include/linux/byteorder/generic.h: In function ‘le64_add_cpu’: include/linux/byteorder/generic.h:155: error: implicit declaration of function ‘__fswab64’ make[1]: *** [arch/mips/kernel/asm-offsets.s] Error 1 I am afraid we will have to wait for 2.6.29. Given the numerous upstream changes affecting byteorder, we may break something trying to backport those changes. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurel...@aurel32.net http://www.aurel32.net -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#519761: linux-libc-dev: conflict between asm/byteorder.h and endian.h
Package: linux-libc-dev Version: 2.6.28-1 Severity: serious Tags: patch linux-libc-dev has changed the way asm/byteorder.h declares endianness related #define, and they conflict with endian.h at least on mips and mipsel. This is something fixed upstream, please find below the upstream patch and a less invasive patch. commit 8cdd3a9261e8efe36aeb6c708edb76d7e2b5d13f Author: Harvey Harrison harvey.harri...@gmail.com Date: Tue Jan 6 14:56:23 2009 -0800 mips: introduce asm/swab.h Signed-off-by: Harvey Harrison harvey.harri...@gmail.com Signed-off-by: Linus Torvalds torva...@linux-foundation.org diff --git a/arch/mips/include/asm/Kbuild b/arch/mips/include/asm/Kbuild index 7897f05..023866c 100644 --- a/arch/mips/include/asm/Kbuild +++ b/arch/mips/include/asm/Kbuild @@ -1,3 +1,4 @@ include include/asm-generic/Kbuild.asm header-y += cachectl.h sgidefs.h sysmips.h +header-y += swab.h diff --git a/arch/mips/include/asm/byteorder.h b/arch/mips/include/asm/byteorder.h index 33790b9..607b718 100644 --- a/arch/mips/include/asm/byteorder.h +++ b/arch/mips/include/asm/byteorder.h @@ -8,60 +8,14 @@ #ifndef _ASM_BYTEORDER_H #define _ASM_BYTEORDER_H -#include linux/compiler.h -#include asm/types.h +#include asm/swab.h #if defined(__MIPSEB__) -# define __BIG_ENDIAN +#include linux/byteorder/big_endian.h #elif defined(__MIPSEL__) -# define __LITTLE_ENDIAN +#include linux/byteorder/little_endian.h #else # error MIPS, but neither __MIPSEB__, nor __MIPSEL__??? #endif -#define __SWAB_64_THRU_32__ - -#ifdef CONFIG_CPU_MIPSR2 - -static inline __attribute_const__ __u16 __arch_swab16(__u16 x) -{ - __asm__( - wsbh%0, %1 \n - : =r (x) - : r (x)); - - return x; -} -#define __arch_swab16 __arch_swab16 - -static inline __attribute_const__ __u32 __arch_swab32(__u32 x) -{ - __asm__( - wsbh%0, %1 \n - rotr%0, %0, 16 \n - : =r (x) - : r (x)); - - return x; -} -#define __arch_swab32 __arch_swab32 - -#ifdef CONFIG_CPU_MIPS64_R2 -static inline __attribute_const__ __u64 __arch_swab64(__u64 x) -{ - __asm__( - dsbh%0, %1\n - dshd%0, %0 - : =r (x) - : r (x)); - - return x; -} -#define __arch_swab64 __arch_swab64 -#endif /* CONFIG_CPU_MIPS64_R2 */ - -#endif /* CONFIG_CPU_MIPSR2 */ - -#include linux/byteorder.h - #endif /* _ASM_BYTEORDER_H */ diff --git a/arch/mips/include/asm/swab.h b/arch/mips/include/asm/swab.h new file mode 100644 index 000..88f1f7d --- /dev/null +++ b/arch/mips/include/asm/swab.h @@ -0,0 +1,55 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive + * for more details. + * + * Copyright (C) 1996, 99, 2003 by Ralf Baechle + */ +#ifndef _ASM_SWAB_H +#define _ASM_SWAB_H + +#include linux/compiler.h +#include asm/types.h + +#define __SWAB_64_THRU_32__ + +#ifdef CONFIG_CPU_MIPSR2 + +static inline __attribute_const__ __u16 __arch_swab16(__u16 x) +{ + __asm__( + wsbh%0, %1 \n + : =r (x) + : r (x)); + + return x; +} +#define __arch_swab16 __arch_swab16 + +static inline __attribute_const__ __u32 __arch_swab32(__u32 x) +{ + __asm__( + wsbh%0, %1 \n + rotr%0, %0, 16 \n + : =r (x) + : r (x)); + + return x; +} +#define __arch_swab32 __arch_swab32 + +#ifdef CONFIG_CPU_MIPS64_R2 +static inline __attribute_const__ __u64 __arch_swab64(__u64 x) +{ + __asm__( + dsbh%0, %1\n + dshd%0, %0 + : =r (x) + : r (x)); + + return x; +} +#define __arch_swab64 __arch_swab64 +#endif /* CONFIG_CPU_MIPS64_R2 */ +#endif /* CONFIG_CPU_MIPSR2 */ +#endif /* _ASM_SWAB_H */ Less invasive patch: --- a/arch/mips/include/asm/byteorder.h +++ b/arch/mips/include/asm/byteorder.h @@ -12,9 +12,9 @@ #include asm/types.h #if defined(__MIPSEB__) -# define __BIG_ENDIAN +#include linux/byteorder/big_endian.h #elif defined(__MIPSEL__) -# define __LITTLE_ENDIAN +#include linux/byteorder/little_endian.h #else # error MIPS, but neither __MIPSEB__, nor __MIPSEL__??? #endif @@ -62,6 +62,4 @@ #endif /* CONFIG_CPU_MIPSR2 */ -#include linux/byteorder.h - #endif /* _ASM_BYTEORDER_H */ -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: mipsel (mips64) Kernel: Linux 2.6.26-1-5kc-malta Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Shell: /bin/sh linked to /bin/bash -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org