FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian Kernel

 
 
LinkBack Thread Tools
 
Old 03-14-2009, 10:09 PM
Aurelien Jarno
 
Default Bug#519761: linux-libc-dev: conflict between and

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.harrison@gmail.com>
Date: Tue Jan 6 14:56:23 2009 -0800

mips: introduce asm/swab.h

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@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
"
- : "=r" (x)
- : "r" (x));
-
- return x;
-}
-#define __arch_swab16 __arch_swab16
-
-static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
-{
- __asm__(
- " wsbh %0, %1
"
- " rotr %0, %0, 16
"
- : "=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
"
- " 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 0000000..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
"
+ : "=r" (x)
+ : "r" (x));
+
+ return x;
+}
+#define __arch_swab16 __arch_swab16
+
+static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
+{
+ __asm__(
+ " wsbh %0, %1
"
+ " rotr %0, %0, 16
"
+ : "=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
"
+ " 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-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
 
Old 03-15-2009, 08:23 AM
Martin Michlmayr
 
Default Bug#519761: linux-libc-dev: conflict between and

* Aurelien Jarno <aurel32@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-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
 
Old 03-15-2009, 08:58 AM
Aurelien Jarno
 
Default Bug#519761: linux-libc-dev: conflict between and

On Sun, Mar 15, 2009 at 10:23:59AM +0100, Martin Michlmayr wrote:
> * Aurelien Jarno <aurel32@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
aurelien@aurel32.net http://www.aurel32.net



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
 
Old 03-15-2009, 09:01 AM
Martin Michlmayr
 
Default Bug#519761: linux-libc-dev: conflict between and

* Aurelien Jarno <aurel32@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-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
 

Thread Tools




All times are GMT. The time now is 01:28 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org