Bug#519761: linux-libc-dev: conflict between asm/byteorder.h and endian.h

2009-03-15 Thread Martin Michlmayr
* 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

2009-03-15 Thread Martin Michlmayr
* 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

2009-03-15 Thread Aurelien Jarno
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

2009-03-14 Thread Aurelien Jarno
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