[Buildroot] [PATCH v2] libmbim: fix build with musl libc

Aleksander Morgado aleksander at aleksander.es
Mon Sep 11 08:55:33 UTC 2017


This is now failing because the libgudev dependency is optional and
the build will only use if it's found during the configure checks.

Imported the same patch that has been applied in the upstream libmbim
git repository:
  https://cgit.freedesktop.org/libmbim/libmbim/commit/?id=417b0b80023dc30d61c111ec0a54da2884d3a541

Signed-off-by: Aleksander Morgado <aleksander at aleksander.es>
---

v2 with Signed-off-by in the patch itself.

---
 ...-prefer-realpath-to-canonicalize_file_nam.patch | 37 ++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 package/libmbim/0001-mbim-device-prefer-realpath-to-canonicalize_file_nam.patch

diff --git a/package/libmbim/0001-mbim-device-prefer-realpath-to-canonicalize_file_nam.patch b/package/libmbim/0001-mbim-device-prefer-realpath-to-canonicalize_file_nam.patch
new file mode 100644
index 000000000..ff178dd61
--- /dev/null
+++ b/package/libmbim/0001-mbim-device-prefer-realpath-to-canonicalize_file_nam.patch
@@ -0,0 +1,37 @@
+From 6b043b9b676e88a80e3d4013863c5e970fdde1df Mon Sep 17 00:00:00 2001
+From: Aleksander Morgado <aleksander at aleksander.es>
+Date: Mon, 11 Sep 2017 09:31:03 +0200
+Subject: [PATCH] mbim-device: prefer realpath() to canonicalize_file_name()
+
+Usually the canonicalize_file_name() GNU extension is preferred to the
+POSIX realpath(), as it covers some of the limitations the latter has.
+But this extension isn't available in lots of platforms or in other
+c library implementations (e.g. musl), so just default to the POSIX
+method to improve portability.
+
+Note that the check for canonicalize_file_name() availability during
+configure isn't as trivial as adding a new AC_CHECK_FUNCS(), and
+importing a gnulib module seems overkill just for this one liner.
+
+(cherry picked from commit 417b0b80023dc30d61c111ec0a54da2884d3a541)
+Signed-off-by: Aleksander Morgado <aleksander at aleksander.es>
+---
+ src/libmbim-glib/mbim-device.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libmbim-glib/mbim-device.c b/src/libmbim-glib/mbim-device.c
+index e1f32a6..20e64af 100644
+--- a/src/libmbim-glib/mbim-device.c
++++ b/src/libmbim-glib/mbim-device.c
+@@ -867,7 +867,7 @@ get_descriptors_filepath (MbimDevice *self)
+          *    /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:2.0
+          */
+         tmp = g_strdup_printf ("/sys/class/%s/%s/device", subsystems[i], device_basename);
+-        path = canonicalize_file_name (tmp);
++        path = realpath (tmp, NULL);
+         g_free (tmp);
+
+         if (g_file_test (path, G_FILE_TEST_EXISTS)) {
+--
+2.13.1
+
--
2.13.1



More information about the buildroot mailing list