diff options
Diffstat (limited to 'sysutils/prelink/files/patch-src-canonicalize.c')
| -rw-r--r-- | sysutils/prelink/files/patch-src-canonicalize.c | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/sysutils/prelink/files/patch-src-canonicalize.c b/sysutils/prelink/files/patch-src-canonicalize.c new file mode 100644 index 000000000000..38d40c3c32b2 --- /dev/null +++ b/sysutils/prelink/files/patch-src-canonicalize.c @@ -0,0 +1,81 @@ +diff -Nur src/canonicalize.c src/canonicalize.c +--- src/canonicalize.c 2013-02-19 23:54:34.000000000 +0200 ++++ src/canonicalize.c 2013-02-19 23:50:31.000000000 +0200 +@@ -73,7 +73,11 @@ + The result is malloc'd. */ + + static char * ++#if __LINUX__ + canon_filename (const char *name, int nested, struct stat64 *stp) ++#else ++canon_filename (const char *name, int nested, struct stat *stp) ++#endif + { + char *rpath, *dest, *extra_buf = NULL; + const char *start, *end, *rpath_limit; +@@ -145,7 +149,11 @@ + if (ep != NULL) + { + char *dirname = (char *) (ep + 1); ++#if __LINUX__ + struct stat64 st; ++#else ++ struct stat st; ++#endif + + ep->dirname = (const char *) dirname; + ep->dirname_len = e.dirname_len; +@@ -182,7 +190,7 @@ + rpath = new_rpath; + rpath_limit = rpath + new_size; + } +- dest = mempcpy (rpath, ep->canon_dirname, ep->canon_dirname_len); ++ dest = memcpy (rpath, ep->canon_dirname, ep->canon_dirname_len) + ep->canon_dirname_len; + *dest = '\0'; + name = end + 1; + } +@@ -238,10 +246,14 @@ + dest = rpath + dest_offset; + } + +- dest = mempcpy (dest, start, end - start); ++ dest = memcpy (dest, start, end - start) + (end-start); + *dest = '\0'; + ++#if __LINUX__ + if (lstat64 (rpath, stp) < 0) ++#else ++ if (lstat (rpath, stp) < 0) ++#endif + goto error; + + stp_initialized = 1; +@@ -294,7 +306,11 @@ + --dest; + *dest = '\0'; + ++#if __LINUX__ + if (!stp_initialized && lstat64 (rpath, stp) < 0) ++#else ++ if (!stp_initialized && lstat (rpath, stp) < 0) ++#endif + goto error; + + if (dest + 1 - rpath <= (rpath_limit - rpath) / 2) +@@ -312,8 +328,16 @@ + } + + char * ++#if __LINUX__ + prelink_canonicalize (const char *name, struct stat64 *stp) ++#else ++prelink_canonicalize (const char *name, struct stat *stp) ++#endif + { ++#if __LINUX__ + struct stat64 st; ++#else ++ struct stat st; ++#endif + return canon_filename (name, 0, stp ? stp : &st); + } |
