summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin/chrpath/files/chrpath-0.13-multilib.patch')
-rw-r--r--app-admin/chrpath/files/chrpath-0.13-multilib.patch160
1 files changed, 0 insertions, 160 deletions
diff --git a/app-admin/chrpath/files/chrpath-0.13-multilib.patch b/app-admin/chrpath/files/chrpath-0.13-multilib.patch
deleted file mode 100644
index e7db0a124053..000000000000
--- a/app-admin/chrpath/files/chrpath-0.13-multilib.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-Index: chrpath-0.13/Makefile.am
-===================================================================
---- chrpath-0.13.orig/Makefile.am
-+++ chrpath-0.13/Makefile.am
-@@ -12,12 +12,19 @@ debs:
- fakeroot debian/rules binary
-
- chrpath_SOURCES = \
-- chrpath.c \
-- killrpath.c \
- main.c \
-- elf.c \
- protos.h
-
-+chrpath_LDADD = $(LDLIBS)
-+
-+lib_LTLIBRARIES = libchrpath32.la libchrpath64.la
-+libchrpath32_la_SOURCES = chrpath.c killrpath.c elf.c protos.h
-+libchrpath32_la_CFLAGS = -DSIZEOF_VOID_P=4
-+libchrpath32_la_LDFLAGS = -avoid-version
-+libchrpath64_la_SOURCES = chrpath.c killrpath.c elf.c protos.h
-+libchrpath64_la_CFLAGS = -DSIZEOF_VOID_P=8
-+libchrpath64_la_LDFLAGS = -avoid-version
-+
- EXTRA_DIST = ChangeLog.usermap $(man_MANS)
-
- CLEANFILES = *.bb *.bbg *.da *.gcov testsuite/*.bb testsuite/*.bbg
-Index: chrpath-0.13/configure.ac
-===================================================================
---- chrpath-0.13.orig/configure.ac
-+++ chrpath-0.13/configure.ac
-@@ -16,6 +16,7 @@ CHRPATH_LDRPATH_OPTION
- dnl Checks for programs.
- AC_PROG_CC
- AC_PROG_INSTALL
-+AC_PROG_LIBTOOL
-
- dnl Checks for libraries.
-
-@@ -26,11 +27,19 @@ AC_CHECK_HEADERS([getopt.h elf.h fcntl.h
- dnl Checks for typedefs, structures, and compiler characteristics.
- AC_C_CONST
- AC_C_BIGENDIAN
--AC_CHECK_SIZEOF(void *)
-
- dnl Checks for library functions.
- AC_CHECK_FUNCS(getopt_long)
-
-+dnl See if we need -ldl on this platform for dlopen
-+LDLIBS=
-+save_LIBS="$LIBS"
-+LIBS=
-+AC_SEARCH_LIBS([dlopen], [dl])
-+LDLIBS=${LIBS}
-+LIBS="${save_LIBS}"
-+AC_SUBST([LDLIBS])
-+
- if eval "test x$GCC = xyes"; then
- for flag in \
- -ansi \
-Index: chrpath-0.13/main.c
-===================================================================
---- chrpath-0.13.orig/main.c
-+++ chrpath-0.13/main.c
-@@ -12,13 +12,19 @@
- # include "config.h"
- #endif
-
-+#include <dlfcn.h>
-+#include <elf.h>
-+#include <fcntl.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#include <string.h>
- #include <unistd.h>
- #ifdef HAVE_GETOPT_H
- #include <getopt.h>
- #endif
--#include "protos.h"
-+
-+typedef int (*killrpath_t)(const char *filename);
-+typedef int (*chrpath_t)(const char *filename, const char *newpath, int convert);
-
- #ifdef HAVE_GETOPT_LONG
- # define GETOPT_LONG getopt_long
-@@ -61,6 +67,30 @@ usage(char *progname)
- printf("\n");
- }
-
-+static unsigned
-+elf_class(const char *filename)
-+{
-+ Elf32_Ehdr ehdr;
-+ int fd;
-+
-+ fd = open(filename, O_RDONLY);
-+ if (fd == -1)
-+ return 0;
-+ if (read(fd, &ehdr, sizeof(ehdr)) != sizeof(ehdr))
-+ {
-+ close(fd);
-+ return 0;
-+ }
-+ close(fd);
-+ if ((memcmp(ehdr.e_ident, ELFMAG, SELFMAG) != 0)
-+ || (ehdr.e_ident[EI_VERSION] != EV_CURRENT))
-+ {
-+ fprintf(stderr, "`%s' probably isn't an ELF file.\n", filename);
-+ return 0;
-+ }
-+ return ehdr.e_ident[EI_CLASS];
-+}
-+
- int
- main(int argc, char * const argv[])
- {
-@@ -73,6 +103,9 @@ main(int argc, char * const argv[])
- #ifdef HAVE_GETOPT_LONG
- int option_index = 0;
- #endif /* HAVE_GETOPT_LONG */
-+ void* dll[2];
-+ killrpath_t killrpath[2];
-+ chrpath_t chrpath[2];
-
- if (argc < 2)
- {
-@@ -116,14 +149,31 @@ main(int argc, char * const argv[])
- }
- } while (-1 != opt);
-
-+ dll[0] = dlopen("libchrpath32.so", RTLD_LAZY);
-+ killrpath[0] = (killrpath_t)dlsym(dll[0], "killrpath");
-+ chrpath[0] = (chrpath_t)dlsym(dll[0], "chrpath");
-+
-+ dll[1] = dlopen("libchrpath64.so", RTLD_LAZY);
-+ killrpath[1] = (killrpath_t)dlsym(dll[1], "killrpath");
-+ chrpath[1] = (chrpath_t)dlsym(dll[1], "chrpath");
-+
- while (optind < argc && (!retval || keep_going))
- {
-+ const char* program = argv[optind++];
-+ unsigned eclass = elf_class(program);
-+ if (!eclass)
-+ {
-+ retval = 1;
-+ continue;
-+ }
- if (remove)
-- retval |= killrpath(argv[optind++]);
-+ retval |= killrpath[eclass - ELFCLASS32](program);
- else
- /* list by default, replace if path is set */
-- retval |= chrpath(argv[optind++], newpath, convert);
-+ retval |= chrpath[eclass - ELFCLASS32](program, newpath, convert);
- }
-
-+ dlclose(dll[0]);
-+ dlclose(dll[1]);
- return retval;
- }