Thread (4 messages) 4 messages, 3 authors, 2013-02-11

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 2001
From: 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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help