Blame assumeexec.diff

ef651c
--- tools/elfdeps.c.orig	2014-06-26 06:51:55.768815677 +0000
ef651c
+++ tools/elfdeps.c	2014-08-04 13:02:16.981081591 +0000
Bernhard M. Wiedemann 1250f9
@@ -17,6 +17,7 @@ int soname_only = 0;
Bernhard M. Wiedemann 1250f9
 int fake_soname = 1;
Bernhard M. Wiedemann 1250f9
 int filter_soname = 1;
Bernhard M. Wiedemann 1250f9
 int require_interp = 0;
Bernhard M. Wiedemann 1250f9
+int assume_exec = 0;
Bernhard M. Wiedemann 1250f9
 
Bernhard M. Wiedemann 1250f9
 typedef struct elfInfo_s {
Bernhard M. Wiedemann 1250f9
     Elf *elf;
Bernhard M. Wiedemann 1250f9
@@ -299,7 +300,7 @@ static int processFile(const char *fn, i
Bernhard M. Wiedemann 1250f9
     if (ehdr->e_type == ET_DYN || ehdr->e_type == ET_EXEC) {
Bernhard M. Wiedemann 1250f9
 	ei->marker = mkmarker(ehdr);
Bernhard M. Wiedemann 1250f9
     	ei->isDSO = (ehdr->e_type == ET_DYN);
Bernhard M. Wiedemann 1250f9
-	ei->isExec = (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH));
Bernhard M. Wiedemann 1250f9
+	ei->isExec = assume_exec || (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH));
Bernhard M. Wiedemann 1250f9
 
Bernhard M. Wiedemann 1250f9
 	processProgHeaders(ei, ehdr);
Bernhard M. Wiedemann 1250f9
 	processSections(ei);
Bernhard M. Wiedemann 1250f9
@@ -364,6 +365,7 @@ int main(int argc, char *argv[])
Bernhard M. Wiedemann 1250f9
 	{ "no-fake-soname", 0, POPT_ARG_VAL, &fake_soname, 0, NULL, NULL },
Bernhard M. Wiedemann 1250f9
 	{ "no-filter-soname", 0, POPT_ARG_VAL, &filter_soname, 0, NULL, NULL },
Bernhard M. Wiedemann 1250f9
 	{ "require-interp", 0, POPT_ARG_VAL, &require_interp, -1, NULL, NULL },
Bernhard M. Wiedemann 1250f9
+	{ "assume-exec", 0, POPT_ARG_VAL, &assume_exec, -1, NULL, NULL },
Bernhard M. Wiedemann 1250f9
 	POPT_AUTOHELP 
Bernhard M. Wiedemann 1250f9
 	POPT_TABLEEND
Bernhard M. Wiedemann 1250f9
     };