From: John Spencer <maillist-mdadm@barfooze.de>
To: neilb@suse.de
Cc: linux-raid@vger.kernel.org
Subject: [PATCH] mdadm: fix portability issues encountered while building against musl libc
Date: Sun, 10 Feb 2013 00:15:51 +0100 [thread overview]
Message-ID: <5116D8A7.6070409@barfooze.de> (raw)
[-- Attachment #1: Type: text/plain, Size: 0 bytes --]
[-- Attachment #2: 0001-platform-intel-canonicalize_file_name-is-not-portabl.patch --]
[-- Type: text/x-patch, Size: 1330 bytes --]
From 23114b8c77982717cc3ce3d437321c7fb0b1c918 Mon Sep 17 00:00:00 2001
From: John Spencer <maillist-mdadm@barfooze.de>
Date: Sat, 2 Feb 2013 17:26:45 +0100
Subject: [PATCH 1/3] platform-intel: canonicalize_file_name() is not portable
this is a GLIBC specific feature and should not be used.
according to its manpage:
"The call canonicalize_file_name(path) is equivalent
to the call realpath(path, NULL)."
thus, we use realpath so it works everywhere.
Signed-off-by: John Spencer <maillist-mdadm@barfooze.de>
---
platform-intel.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/platform-intel.c b/platform-intel.c
index 0dcf07c..d8d4942 100644
--- a/platform-intel.c
+++ b/platform-intel.c
@@ -116,7 +116,7 @@ struct sys_dev *find_driver_devices(const char *bus, const char *driver)
list->dev_id = (__u16) dev_id;
list->type = type;
- list->path = canonicalize_file_name(path);
+ list->path = realpath(path, NULL);
list->next = NULL;
if ((list->pci_id = strrchr(list->path, '/')) != NULL)
list->pci_id++;
@@ -459,7 +459,7 @@ char *devt_to_devpath(dev_t dev)
char device[46];
sprintf(device, "/sys/dev/block/%d:%d/device", major(dev), minor(dev));
- return canonicalize_file_name(device);
+ return realpath(device, NULL);
}
char *diskfd_to_devpath(int fd)
--
1.7.3.4
[-- Attachment #3: 0002-mdadm.h-fix-ugly-glibc-specific-ifdeffery.patch --]
[-- Type: text/x-patch, Size: 934 bytes --]
From 9467d1dcef907addbd9ef4f0f9068766674fd587 Mon Sep 17 00:00:00 2001
From: John Spencer <maillist-mdadm@barfooze.de>
Date: Sat, 2 Feb 2013 17:37:55 +0100
Subject: [PATCH 2/3] mdadm.h: fix ugly glibc specific ifdeffery
the code that was exposed on anything else than dietlibc and klibc
is entirely glibc specific and broke the build on musl libc.
Signed-off-by: John Spencer <maillist-mdadm@barfooze.de>
---
mdadm.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mdadm.h b/mdadm.h
index f1352e3..addd423 100644
--- a/mdadm.h
+++ b/mdadm.h
@@ -25,9 +25,9 @@
#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
#include <unistd.h>
-#if !defined(__dietlibc__) && !defined(__KLIBC__)
+#ifdef __GLIBC__
extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
-#else
+#elif !defined(lseek64)
# if defined(__NO_STAT64) || __WORDSIZE != 32
# define lseek64 lseek
# endif
--
1.7.3.4
[-- Attachment #4: 0003-remove-Werror-from-Makefile.patch --]
[-- Type: text/x-patch, Size: 954 bytes --]
From eb55533b387c0805ac11134bab1404108851ef04 Mon Sep 17 00:00:00 2001
From: John Spencer <maillist-mdadm@barfooze.de>
Date: Sat, 2 Feb 2013 17:40:20 +0100
Subject: [PATCH 3/3] remove -Werror from Makefile
using -Werror breaks the build for any libc/compiler combination
the author didnt test yet, so it is insane to use it by default.
fixes build on musl libc.
Signed-off-by: John Spencer <maillist-mdadm@barfooze.de>
---
Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index b9787d6..0169824 100644
--- a/Makefile
+++ b/Makefile
@@ -42,7 +42,7 @@ KLIBC_GCC = gcc -nostdinc -iwithprefix include -I$(KLIBC)/klibc/include -I$(KLIB
CC = $(CROSS_COMPILE)gcc
CXFLAGS = -ggdb
-CWFLAGS = -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter
+CWFLAGS = -Wall -Wstrict-prototypes -Wextra -Wno-unused-parameter
ifdef WARN_UNUSED
CWFLAGS += -Wp,-D_FORTIFY_SOURCE=2 -O
endif
--
1.7.3.4
next reply other threads:[~2013-02-09 23:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-09 23:15 John Spencer [this message]
2013-02-09 23:40 ` [PATCH] mdadm: fix portability issues encountered while building against musl libc Joseph Glanville
2013-02-10 4:45 ` NeilBrown
2013-02-11 19:34 ` John Spencer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5116D8A7.6070409@barfooze.de \
--to=maillist-mdadm@barfooze.de \
--cc=linux-raid@vger.kernel.org \
--cc=neilb@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox