mirror of
https://git.freebsd.org/ports.git
synced 2025-06-05 12:56:28 -04:00
WWW: http://people.redhat.com/jakub/prelink/ PR: ports/176283 Submitted by: Damjan Jovanovic <damjan.jov@gmail.com>
109 lines
2.2 KiB
C
109 lines
2.2 KiB
C
diff -Nur src/gather.c src/gather.c
|
|
--- src/gather.c 2013-02-19 23:54:34.000000000 +0200
|
|
+++ src/gather.c 2013-02-19 23:50:31.000000000 +0200
|
|
@@ -235,7 +235,8 @@
|
|
}
|
|
}
|
|
|
|
- depends[ndepends] = strdupa (p);
|
|
+ depends[ndepends] = alloca (strlen(p) + 1);
|
|
+ strcpy(depends[ndepends], p);
|
|
++ndepends;
|
|
} while (!feof (f));
|
|
|
|
@@ -495,7 +496,11 @@
|
|
}
|
|
|
|
static int
|
|
+#if __LINUX__
|
|
gather_exec (DSO *dso, const struct stat64 *st)
|
|
+#else
|
|
+gather_exec (DSO *dso, const struct stat *st)
|
|
+#endif
|
|
{
|
|
int i, j;
|
|
Elf_Data *data;
|
|
@@ -635,7 +640,11 @@
|
|
}
|
|
|
|
static int
|
|
+#if __LINUX__
|
|
gather_func (const char *name, const struct stat64 *st, int type,
|
|
+#else
|
|
+gather_func (const char *name, const struct stat *st, int type,
|
|
+#endif
|
|
struct FTW *ftwp)
|
|
{
|
|
unsigned char e_ident [sizeof (Elf64_Ehdr) + sizeof (Elf64_Phdr)];
|
|
@@ -901,7 +910,11 @@
|
|
}
|
|
|
|
static int
|
|
+#if __LINUX__
|
|
gather_binlib (const char *name, const struct stat64 *st)
|
|
+#else
|
|
+gather_binlib (const char *name, const struct stat *st)
|
|
+#endif
|
|
{
|
|
unsigned char e_ident [EI_NIDENT + 2];
|
|
int fd, type;
|
|
@@ -1014,9 +1027,17 @@
|
|
int
|
|
gather_object (const char *name, int deref, int onefs)
|
|
{
|
|
+#if __LINUX__
|
|
struct stat64 st;
|
|
+#else
|
|
+ struct stat st;
|
|
+#endif
|
|
|
|
+#if __LINUX__
|
|
if (stat64 (name, &st) < 0)
|
|
+#else
|
|
+ if (stat (name, &st) < 0)
|
|
+#endif
|
|
{
|
|
if (implicit)
|
|
return 0;
|
|
@@ -1039,7 +1060,11 @@
|
|
if (!all && implicit && ! deref)
|
|
return 0;
|
|
++implicit;
|
|
+#if __LINUX__
|
|
ret = nftw64 (name, gather_func, 20, flags | FTW_ACTIONRETVAL);
|
|
+#else
|
|
+ ret = nftw (name, gather_func, 20, flags | FTW_ACTIONRETVAL);
|
|
+#endif
|
|
--implicit;
|
|
if (ret < 0)
|
|
error (0, errno, "Failed searching %s", name);
|
|
@@ -1300,9 +1325,17 @@
|
|
const char *canon_name;
|
|
struct prelink_dir *path;
|
|
size_t len;
|
|
+#if __LINUX__
|
|
struct stat64 st;
|
|
+#else
|
|
+ struct stat st;
|
|
+#endif
|
|
|
|
+#if __LINUX__
|
|
if (stat64 (name, &st) < 0)
|
|
+#else
|
|
+ if (stat (name, &st) < 0)
|
|
+#endif
|
|
{
|
|
if (implicit)
|
|
return 0;
|
|
@@ -1421,7 +1454,11 @@
|
|
{
|
|
glob_t g;
|
|
|
|
+#ifdef GLOB_PERIOD
|
|
if (!glob (p, GLOB_BRACE | GLOB_PERIOD, NULL, &g))
|
|
+#else
|
|
+ if (!glob (p, GLOB_BRACE, NULL, &g))
|
|
+#endif
|
|
{
|
|
size_t n;
|
|
|