libqmi: musl compat canonicalize_file_name
authorMatt Weber <matthew.weber@rockwellcollins.com>
Tue, 2 May 2017 01:29:06 +0000 (20:29 -0500)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 4 May 2017 15:13:06 +0000 (17:13 +0200)
Adds an inline equivalent of canonicalize_file_name
using realpath().

Bug report (origin of this patch):
https://bugs.freedesktop.org/show_bug.cgi?id=99944

Resolves:
http://autobuild.buildroot.net/results/afa/afa4b97e012586585b11be1e70ed3c63a7c48a4d/

  CCLD     test-generated
  CCLD     test-utils
  CCLD     test-message
../../../src/libqmi-glib/.libs/libqmi-glib.so: undefined reference to `canonicalize_file_name'
collect2: error: ld returned 1 exit status
Makefile:440: recipe for target 'test-generated' failed

Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/libqmi/0001-musl-compat-canonicalize_file_name.patch [new file with mode: 0644]

diff --git a/package/libqmi/0001-musl-compat-canonicalize_file_name.patch b/package/libqmi/0001-musl-compat-canonicalize_file_name.patch
new file mode 100644 (file)
index 0000000..5656d55
--- /dev/null
@@ -0,0 +1,48 @@
+From 2f44edc9fbcbf2202174aec723e8a8d191c13d2f Mon Sep 17 00:00:00 2001
+From: Matt Weber <matthew.weber@rockwellcollins.com>
+Date: Mon, 1 May 2017 19:55:07 -0500
+Subject: [PATCH] musl compat canonicalize_file_name()
+
+Adds an inline equivalent of canonicalize_file_name
+using realpath().
+
+Bug report (origin of this patch):
+https://bugs.freedesktop.org/show_bug.cgi?id=99944
+
+Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
+---
+ src/libqmi-glib/qmi-utils.h | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/src/libqmi-glib/qmi-utils.h b/src/libqmi-glib/qmi-utils.h
+index 4fd5199..4869da5 100644
+--- a/src/libqmi-glib/qmi-utils.h
++++ b/src/libqmi-glib/qmi-utils.h
+@@ -29,6 +29,24 @@
+ #error "Only <libqmi-glib.h> can be included directly."
+ #endif
++#ifndef HAVE_CANONICALIZE_FILE_NAME
++#include <limits.h>
++#include <string.h>
++#include <stdlib.h>
++#include <stdio.h>
++static char * canonicalize_file_name(const char *path)
++{
++       char buf[PATH_MAX] = { };
++
++       snprintf(buf, sizeof(buf) - 1, "%s", path);
++
++       if (!realpath(path, buf))
++               return NULL;
++
++       return strdup(buf);
++}
++#endif
++
+ #include <glib.h>
+ G_BEGIN_DECLS
+-- 
+1.9.1
+