aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/systemtap/systemtap/0001-sysroot-handle-symbolic-links-with-absolute-name-rel.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel/systemtap/systemtap/0001-sysroot-handle-symbolic-links-with-absolute-name-rel.patch')
-rw-r--r--meta/recipes-kernel/systemtap/systemtap/0001-sysroot-handle-symbolic-links-with-absolute-name-rel.patch117
1 files changed, 0 insertions, 117 deletions
diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-sysroot-handle-symbolic-links-with-absolute-name-rel.patch b/meta/recipes-kernel/systemtap/systemtap/0001-sysroot-handle-symbolic-links-with-absolute-name-rel.patch
deleted file mode 100644
index 8a3d39a5b8..0000000000
--- a/meta/recipes-kernel/systemtap/systemtap/0001-sysroot-handle-symbolic-links-with-absolute-name-rel.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From 2041085d1a700201dc088991ca8136e7935bf42f Mon Sep 17 00:00:00 2001
-From: Victor Kamensky <kamensky@cisco.com>
-Date: Wed, 21 Mar 2018 11:35:26 -0500
-Subject: [PATCH] sysroot: handle symbolic links with absolute name relative to
- sysroot
-
-In case of symbolic link found under sysroot point to absolute path,
-instead of trying to look for such absolute path in host system,
-apply sysroot prefix first.
-
-Upstream-Status: Backport
-Signed-off-by: Victor Kamensky <kamensky@cisco.com>
----
- util.cxx | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 76 insertions(+)
-
-Index: git/util.cxx
-===================================================================
---- git.orig/util.cxx
-+++ git/util.cxx
-@@ -441,6 +441,64 @@ split_lines(const char *buf, size_t n)
- return lines;
- }
-
-+static string
-+follow_link(const string& name, const string& sysroot)
-+{
-+ char *linkname;
-+ ssize_t r;
-+ string retpath;
-+ struct stat st;
-+
-+ const char *f = name.c_str();
-+
-+ lstat(f, &st);
-+
-+ linkname = (char *) malloc(st.st_size + 1);
-+
-+ if (linkname)
-+ {
-+ r = readlink(f, linkname, st.st_size + 1);
-+ linkname[st.st_size] = '\0';
-+ /*
-+ * If we have non-empty sysroot and we got link that
-+ * points to absolute path name, we need to look at
-+ * this path relative to sysroot itself. access and
-+ * stat will follow symbolic links correctly only in
-+ * case with empty sysroot.
-+ */
-+ while (r != -1 && linkname && linkname[0] == '/')
-+ {
-+ string fname1 = sysroot + linkname;
-+ const char *f1 = fname1.c_str();
-+ if (access(f1, X_OK) == 0
-+ && stat(f1, &st) == 0
-+ && S_ISREG(st.st_mode))
-+ {
-+ retpath = fname1;
-+ break;
-+ }
-+ else if (lstat(f1, &st) == 0
-+ && S_ISLNK(st.st_mode))
-+ {
-+ free(linkname);
-+ linkname = (char *) malloc(st.st_size + 1);
-+ if (linkname)
-+ {
-+ r = readlink(f1, linkname, st.st_size + 1);
-+ linkname[st.st_size] = '\0';
-+ }
-+ }
-+ else
-+ {
-+ break;
-+ }
-+ }
-+ }
-+ free(linkname);
-+
-+ return retpath;
-+}
-+
- // Resolve an executable name to a canonical full path name, with the
- // same policy as execvp(). A program name not containing a slash
- // will be searched along the $PATH.
-@@ -465,6 +523,14 @@ string find_executable(const string& nam
- if (name.find('/') != string::npos) // slash in the path already?
- {
- retpath = sysroot + name;
-+
-+ const char *f = retpath.c_str();
-+ if (sysroot != ""
-+ && lstat(f, &st) == 0
-+ && S_ISLNK(st.st_mode))
-+ {
-+ retpath = follow_link(f, sysroot);
-+ }
- }
- else // Nope, search $PATH.
- {
-@@ -493,6 +559,16 @@ string find_executable(const string& nam
- retpath = fname;
- break;
- }
-+ else if (sysroot != ""
-+ && lstat(f, &st) == 0
-+ && S_ISLNK(st.st_mode))
-+ {
-+ retpath = follow_link(f, sysroot);
-+ if (retpath != "")
-+ {
-+ break;
-+ }
-+ }
- }
- }
- }