Re: [PATCH] mdadm: fix portability issues encountered while building against musl libc
From: NeilBrown <hidden>
Date: 2013-02-10 04:45:48
On Sun, 10 Feb 2013 00:15:51 +0100 John Spencer [off-list ref] wrote:
quoted hunk ↗ jump to hunk
quoted
From 23114b8c77982717cc3ce3d437321c7fb0b1c918 Mon Sep 17 00:00:00 2001From: John Spencer <redacted> 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 <redacted> --- 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)
Hi, I've applied this one and the GCC #ifdef - thanks. I haven't applied the last one, but not because I don't appreciate being called insane :-) I like having -Werror as it encourages people to report any warnings they get, and it keeps me "honest". If it is a problem for you, you can easily make CWFLAGS= or set the C Warning FLAGS to whatever you like - they are deliberately kept separate from other CFLAGS. Thanks, NeilBrown
Attachments
- signature.asc [application/pgp-signature] 828 bytes