Bug#636814: gpart: FTBFS on !linux-any
Package: gpart
Version: 0.1h-11
Severity: important
Tags: patch
Hello,
gpart currently FTBFS on !linux-any because it uses linux-specific
endian functions and does not use -ldl. The attached patch fixes hurd
and kfreebsd, both also based on glibc which provides standard endian
functions.
Samuel
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 3.0.0 (SMP w/8 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
--
Samuel Thibault <samuel.thibault at fnac.net>
Fatal Error: Found [MS-Windows] System -> Repartitioning Disk for Linux...
(By cbbrown at io.org, Christopher Browne)
-------------- next part --------------
--- debian/patches/01-conglomeration.patch.orig 2011-08-06 02:09:55.000000000 +0000
+++ debian/patches/01-conglomeration.patch 2011-08-06 02:16:04.000000000 +0000
@@ -121,9 +121,12 @@
diff -Naurp gpart.orig/src/Makefile gpart/src/Makefile
--- gpart.orig/src/Makefile 2001-01-30 17:01:08.000000000 +0000
+++ gpart/src/Makefile 2008-09-19 06:13:18.000000000 +0000
-@@ -7,6 +7,8 @@ include ../make.defs
+@@ -7,8 +7,10 @@ include ../make.defs
+ include ../make.defs
+
CFLAGS+=-DVERSION=\"$(version)\"
- ifeq ($(shell uname),Linux)
+-ifeq ($(shell uname),Linux)
++ifneq ($(findstring $(shell uname),Linux GNU GNU/kFreeBSD),)
LIBS=-ldl
+CFLAGS += -D__USE_FILE_OFFSET64 -D__USE_LARGEFILE64
+CFLAGS += -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
@@ -189,7 +192,7 @@
*/
+#include <stdint.h>
-+#include <asm/byteorder.h>
++#include <endian.h>
+
#ifndef _GM_NTFS_H
#define _GM_NTFS_H
@@ -231,13 +234,13 @@
-#define NTFS_GETS24(p) (NTFS_GETU24(p) < 0x800000 ? (int)NTFS_GETU24(p) :
-
-+#define CPU_TO_LE16(a) __cpu_to_le16(a)
-+#define CPU_TO_LE32(a) __cpu_to_le32(a)
-+#define CPU_TO_LE64(a) __cpu_to_le64(a)
++#define CPU_TO_LE16(a) htole16(a)
++#define CPU_TO_LE32(a) htole32(a)
++#define CPU_TO_LE64(a) htole64(a)
+
-+#define LE16_TO_CPU(a) __cpu_to_le16(a)
-+#define LE32_TO_CPU(a) __cpu_to_le32(a)
-+#define LE64_TO_CPU(a) __cpu_to_le64(a)
++#define LE16_TO_CPU(a) le16toh(a)
++#define LE32_TO_CPU(a) le32toh(a)
++#define LE64_TO_CPU(a) le64toh(a)
+
+/* Macros reading unsigned integers */
+#define NTFS_GETU8(p) (*(ntfs_u8*)(p))
Reply to: