public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Anthony G. Basile" <blueness@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/elfix:master commit in: scripts/
Date: Mon, 17 Oct 2011 19:28:28 +0000 (UTC)	[thread overview]
Message-ID: <f1097c9e8fc1624799f7a08c7e510e24903f1f7d.blueness@gentoo> (raw)

commit:     f1097c9e8fc1624799f7a08c7e510e24903f1f7d
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 17 19:28:22 2011 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Oct 17 19:28:22 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/elfix.git;a=commit;h=f1097c9e

scripts/{paxmodule.c,revdep-pax}: add code to set pax flags

---
 scripts/paxmodule.c |  183 +++++++++++----------------------------------------
 scripts/revdep-pax  |  100 +++++++++++++++++-----------
 2 files changed, 101 insertions(+), 182 deletions(-)

diff --git a/scripts/paxmodule.c b/scripts/paxmodule.c
index eac774a..32c8768 100644
--- a/scripts/paxmodule.c
+++ b/scripts/paxmodule.c
@@ -1,6 +1,5 @@
 #include <Python.h>
 
-#include <stdio.h> //remove when you remove printf
 #include <string.h>
 
 #include <gelf.h>
@@ -53,14 +52,13 @@ static PyObject *
 pax_getflags(PyObject *self, PyObject *args)
 {
 	const char *f_name;
-	int fd, sts;
+	int fd;
 	Elf *elf;
 
 	char pax_buf[BUF_SIZE];
+	uint16_t pax_flags;
 
 	GElf_Ehdr ehdr;
-	uint16_t ei_flags;
-
 	GElf_Phdr phdr;
 	char found_pt_pax;
 	size_t i, phnum;
@@ -102,6 +100,8 @@ pax_getflags(PyObject *self, PyObject *args)
 
 
 	found_pt_pax = 0;
+	pax_flags = 0;
+
 	elf_getphdrnum(elf, &phnum);
 	for(i=0; i<phnum; ++i)
 	{
@@ -116,24 +116,25 @@ pax_getflags(PyObject *self, PyObject *args)
 		if(phdr.p_type == PT_PAX_FLAGS)
 		{
 			found_pt_pax = 1;
+			pax_flags = phdr.p_flags;
 
-			pax_buf[0] = phdr.p_flags & PF_PAGEEXEC ? 'P' :
-				phdr.p_flags & PF_NOPAGEEXEC ? 'p' : '-' ;
+			pax_buf[0] = pax_flags & PF_PAGEEXEC ? 'P' :
+				pax_flags & PF_NOPAGEEXEC ? 'p' : '-' ;
 
-			pax_buf[1] = phdr.p_flags & PF_SEGMEXEC   ? 'S' : 
-				phdr.p_flags & PF_NOSEGMEXEC ? 's' : '-';
+			pax_buf[1] = pax_flags & PF_SEGMEXEC   ? 'S' : 
+				pax_flags & PF_NOSEGMEXEC ? 's' : '-';
 
-			pax_buf[2] = phdr.p_flags & PF_MPROTECT   ? 'M' :
-				phdr.p_flags & PF_NOMPROTECT ? 'm' : '-';
+			pax_buf[2] = pax_flags & PF_MPROTECT   ? 'M' :
+				pax_flags & PF_NOMPROTECT ? 'm' : '-';
 
-			pax_buf[3] = phdr.p_flags & PF_EMUTRAMP   ? 'E' :
-				phdr.p_flags & PF_NOEMUTRAMP ? 'e' : '-';
+			pax_buf[3] = pax_flags & PF_EMUTRAMP   ? 'E' :
+				pax_flags & PF_NOEMUTRAMP ? 'e' : '-';
 
-			pax_buf[4] = phdr.p_flags & PF_RANDMMAP   ? 'R' :
-				phdr.p_flags & PF_NORANDMMAP ? 'r' : '-';
+			pax_buf[4] = pax_flags & PF_RANDMMAP   ? 'R' :
+				pax_flags & PF_NORANDMMAP ? 'r' : '-';
 
-			pax_buf[5] = phdr.p_flags & PF_RANDEXEC   ? 'X' :
-				phdr.p_flags & PF_NORANDEXEC ? 'x' : '-';
+			pax_buf[5] = pax_flags & PF_RANDEXEC   ? 'X' :
+				pax_flags & PF_NORANDEXEC ? 'x' : '-';
 		}
 	}
 
@@ -147,20 +148,20 @@ pax_getflags(PyObject *self, PyObject *args)
 			return NULL;
 		}
 
-		ei_flags = ehdr.e_ident[EI_PAX] + (ehdr.e_ident[EI_PAX + 1] << 8);
+		pax_flags = ehdr.e_ident[EI_PAX] + (ehdr.e_ident[EI_PAX + 1] << 8);
 
-  		pax_buf[0] = ei_flags & HF_PAX_PAGEEXEC ? 'p' : 'P';
-		pax_buf[1] = ei_flags & HF_PAX_SEGMEXEC ? 's' : 'S';
-		pax_buf[2] = ei_flags & HF_PAX_MPROTECT ? 'm' : 'M';
-		pax_buf[3] = ei_flags & HF_PAX_EMUTRAMP ? 'E' : 'e';
-		pax_buf[4] = ei_flags & HF_PAX_RANDMMAP ? 'r' : 'R';
-		pax_buf[5] = ei_flags & HF_PAX_RANDEXEC ? 'X' : 'x';
+  		pax_buf[0] = pax_flags & HF_PAX_PAGEEXEC ? 'p' : 'P';
+		pax_buf[1] = pax_flags & HF_PAX_SEGMEXEC ? 's' : 'S';
+		pax_buf[2] = pax_flags & HF_PAX_MPROTECT ? 'm' : 'M';
+		pax_buf[3] = pax_flags & HF_PAX_EMUTRAMP ? 'E' : 'e';
+		pax_buf[4] = pax_flags & HF_PAX_RANDMMAP ? 'r' : 'R';
+		pax_buf[5] = pax_flags & HF_PAX_RANDEXEC ? 'X' : 'x';
 	}
 
 	elf_end(elf);
 	close(fd);
 
-	return Py_BuildValue("s", pax_buf);
+	return Py_BuildValue("si", pax_buf, pax_flags);
 }
 
 
@@ -168,10 +169,11 @@ static PyObject *
 pax_setflags(PyObject *self, PyObject *args)
 {
 	const char *f_name;
-	int pax_flags;
-	int fd, sts;
+	uint16_t pax_flags;
+	int fd;
 
 	Elf *elf;
+
 	GElf_Ehdr ehdr;
 	uint16_t ei_flags;
 
@@ -190,13 +192,13 @@ pax_setflags(PyObject *self, PyObject *args)
 		return NULL;
 	}
 
-	if((fd = open(f_name, O_RDONLY)) < 0)
+	if((fd = open(f_name, O_RDWR)) < 0)
 	{
 		PyErr_SetString(PaxError, "pax_setflags: open() failed");
 		return NULL;
 	}
 
-	if((elf = elf_begin(fd, ELF_C_READ_MMAP, NULL)) == NULL)
+	if((elf = elf_begin(fd, ELF_C_RDWR_MMAP, NULL)) == NULL)
 	{
 		close(fd);
 		PyErr_SetString(PaxError, "pax_setflags: elf_begin() failed");
@@ -211,8 +213,6 @@ pax_setflags(PyObject *self, PyObject *args)
 		return NULL;
 	}
 
-
-
 	if(gelf_getehdr(elf, &ehdr) != &ehdr)
 	{
 		elf_end(elf);
@@ -223,54 +223,48 @@ pax_setflags(PyObject *self, PyObject *args)
 
 	ei_flags = ehdr.e_ident[EI_PAX] + (ehdr.e_ident[EI_PAX + 1] << 8);
 
+	ei_flags &= ~HF_PAX_PAGEEXEC;
+	ei_flags &= ~HF_PAX_SEGMEXEC;
+	ei_flags &= ~HF_PAX_MPROTECT;
+	ei_flags |= HF_PAX_EMUTRAMP;
+	ei_flags &= ~HF_PAX_RANDMMAP;
+	ei_flags |= HF_PAX_RANDEXEC;
+
 	//PAGEEXEC
 	if(pax_flags & PF_PAGEEXEC)
 		ei_flags &= ~HF_PAX_PAGEEXEC;
 	if(pax_flags & PF_NOPAGEEXEC)
 		ei_flags |= HF_PAX_PAGEEXEC;
-	if((pax_flags & PF_PAGEEXEC) && (pax_flags & PF_NOPAGEEXEC))
-		ei_flags &= ~HF_PAX_PAGEEXEC;
 
 	//SEGMEXEC
 	if(pax_flags & PF_SEGMEXEC)
 		ei_flags &= ~HF_PAX_SEGMEXEC;
 	if(pax_flags & PF_NOSEGMEXEC)
 		ei_flags |= HF_PAX_SEGMEXEC;
-	if((pax_flags & PF_SEGMEXEC) && (pax_flags & PF_NOSEGMEXEC))
-		ei_flags &= ~HF_PAX_SEGMEXEC;
 
 	//MPROTECT
 	if(pax_flags & PF_MPROTECT)
 		ei_flags &= ~HF_PAX_MPROTECT;
 	if(pax_flags & PF_NOMPROTECT)
 		ei_flags |= HF_PAX_MPROTECT;
-	if((pax_flags & PF_MPROTECT) && (pax_flags & PF_NOMPROTECT))
-		ei_flags &= ~HF_PAX_MPROTECT;
 
 	//EMUTRAMP
 	if(pax_flags & PF_EMUTRAMP)
 		ei_flags |= HF_PAX_EMUTRAMP;
 	if(pax_flags & PF_NOEMUTRAMP)
 		ei_flags &= ~HF_PAX_EMUTRAMP;
-	if((pax_flags & PF_EMUTRAMP) && (pax_flags & PF_NOEMUTRAMP))
-		ei_flags &= ~HF_PAX_EMUTRAMP;
 
 	//RANDMMAP
 	if(pax_flags & PF_RANDMMAP)
 		ei_flags &= ~HF_PAX_RANDMMAP;
 	if(pax_flags & PF_NORANDMMAP)
 		ei_flags |= HF_PAX_RANDMMAP;
-	if((pax_flags & PF_RANDMMAP) && (pax_flags & PF_NORANDMMAP))
-		ei_flags &= ~HF_PAX_RANDMMAP;
 
 	//RANDEXEC
 	if(pax_flags & PF_RANDEXEC)
 		ei_flags |= HF_PAX_RANDEXEC;
 	if(pax_flags & PF_NORANDEXEC)
 		ei_flags &= ~HF_PAX_RANDEXEC;
-	if((pax_flags & PF_RANDEXEC) && (pax_flags & PF_NORANDEXEC))
-		ei_flags |= HF_PAX_RANDEXEC;
-
 
 	ehdr.e_ident[EI_PAX] = (uint8_t)ei_flags  ;
 	ehdr.e_ident[EI_PAX + 1] = (uint8_t)(ei_flags >> 8) ;
@@ -283,6 +277,7 @@ pax_setflags(PyObject *self, PyObject *args)
 		return NULL;
 	}
 
+
 	elf_getphdrnum(elf, &phnum);
 	for(i=0; i<phnum; ++i)
 	{
@@ -296,107 +291,7 @@ pax_setflags(PyObject *self, PyObject *args)
 
 		if(phdr.p_type == PT_PAX_FLAGS)
 		{
-			//PAGEEXEC
-			if(pax_flags & PF_PAGEEXEC)
-			{
-				phdr.p_flags |= PF_PAGEEXEC;
-				phdr.p_flags &= ~PF_NOPAGEEXEC;
-			}
-			if(pax_flags & PF_NOPAGEEXEC)
-			{
-				phdr.p_flags &= ~PF_PAGEEXEC;
-				phdr.p_flags |= PF_NOPAGEEXEC;
-			}
-			if((pax_flags & PF_PAGEEXEC) && (pax_flags & PF_NOPAGEEXEC))
-			{
-				phdr.p_flags &= ~PF_PAGEEXEC;
-				phdr.p_flags &= ~PF_NOPAGEEXEC;
-			}
-
-			//SEGMEXEC
-			if(pax_flags & PF_SEGMEXEC)
-			{
-				phdr.p_flags |= PF_SEGMEXEC;
-				phdr.p_flags &= ~PF_NOSEGMEXEC;
-			}
-			if(pax_flags & PF_NOSEGMEXEC)
-			{
-				phdr.p_flags &= ~PF_SEGMEXEC;
-				phdr.p_flags |= PF_NOSEGMEXEC;
-			}
-			if((pax_flags & PF_SEGMEXEC) && (pax_flags & PF_NOSEGMEXEC))
-			{
-				phdr.p_flags &= ~PF_SEGMEXEC;
-				phdr.p_flags &= ~PF_NOSEGMEXEC;
-			}
-
-			//MPROTECT
-			if(pax_flags & PF_MPROTECT)
-			{
-				phdr.p_flags |= PF_MPROTECT;
-				phdr.p_flags &= ~PF_NOMPROTECT;
-			}
-			if(pax_flags & PF_NOMPROTECT)
-			{
-				phdr.p_flags &= ~PF_MPROTECT;
-				phdr.p_flags |= PF_NOMPROTECT;
-			}
-			if((pax_flags & PF_MPROTECT) && (pax_flags & PF_NOMPROTECT))
-			{
-				phdr.p_flags &= ~PF_MPROTECT;
-				phdr.p_flags &= ~PF_NOMPROTECT;
-			}
-
-			//EMUTRAMP
-			if(pax_flags & PF_EMUTRAMP)
-			{
-				phdr.p_flags |= PF_EMUTRAMP;
-				phdr.p_flags &= ~PF_NOEMUTRAMP;
-			}
-			if(pax_flags & PF_NOEMUTRAMP)
-			{
-				phdr.p_flags &= ~PF_EMUTRAMP;
-				phdr.p_flags |= PF_NOEMUTRAMP;
-			}
-			if((pax_flags & PF_EMUTRAMP) && (pax_flags & PF_NOEMUTRAMP))
-			{
-				phdr.p_flags &= ~PF_EMUTRAMP;
-				phdr.p_flags &= ~PF_NOEMUTRAMP;
-			}
-
-			//RANDMMAP
-			if(pax_flags & PF_RANDMMAP)
-			{
-				phdr.p_flags |= PF_RANDMMAP;
-				phdr.p_flags &= ~PF_NORANDMMAP;
-			}
-			if(pax_flags & PF_NORANDMMAP)
-			{
-				phdr.p_flags &= ~PF_RANDMMAP;
-				phdr.p_flags |= PF_NORANDMMAP;
-			}
-			if((pax_flags & PF_RANDMMAP) && (pax_flags & PF_NORANDMMAP))
-			{
-				phdr.p_flags &= ~PF_RANDMMAP;
-				phdr.p_flags &= ~PF_NORANDMMAP;
-			}
-
-			//RANDEXEC
-			if(pax_flags & PF_RANDEXEC)
-			{
-				phdr.p_flags |= PF_RANDEXEC;
-				phdr.p_flags &= ~PF_NORANDEXEC;
-			}
-			if(pax_flags & PF_NORANDEXEC)
-			{
-				phdr.p_flags &= ~PF_RANDEXEC;
-				phdr.p_flags |= PF_NORANDEXEC;
-			}
-			if((pax_flags & PF_RANDEXEC) && (pax_flags & PF_NORANDEXEC))
-			{
-				phdr.p_flags &= ~PF_RANDEXEC;
-				phdr.p_flags &= ~PF_NORANDEXEC;
-			}
+			phdr.p_flags = pax_flags;
 
 			if(!gelf_update_phdr(elf, i, &phdr))
 			{

diff --git a/scripts/revdep-pax b/scripts/revdep-pax
index 326007e..7a8da3e 100755
--- a/scripts/revdep-pax
+++ b/scripts/revdep-pax
@@ -8,7 +8,6 @@ import re
 import pax
 
 def get_ldd_linkings(binary):
-
 	try:
 		#TODO: when subprocess.DEVNULL makes it to python, change this: http://bugs.python.org/issue5870
 		ldd_output = subprocess.check_output(['/usr/bin/ldd', binary], stderr=subprocess.PIPE)
@@ -83,8 +82,8 @@ def print_forward_linkings( forward_linkings, so2library_mappings, verbose ):
 	for binary in forward_linkings:
 
 		try:
-			binary_flags = pax.getflags(binary)
-			sv = "%s ( %s )" % ( binary, binary_flags )
+			( binary_flags, binary_pax_flags ) = pax.getflags(binary)
+			sv = '%s ( %s )' % ( binary, binary_flags )
 			s = sv
 		except:
 			missing_binaries.append(binary)
@@ -94,10 +93,10 @@ def print_forward_linkings( forward_linkings, so2library_mappings, verbose ):
 		for soname in forward_linkings[binary]:
 			try:
 				library = so2library_mappings[soname]
-				library_flags = pax.getflags(library)
-				sv = "%s\n\t%s\t%s ( %s )" % ( sv, soname, library, library_flags )
+				( library_flags, library_pax_flags ) = pax.getflags(library)
+				sv = '%s\n\t%s\t%s ( %s )' % ( sv, soname, library, library_flags )
 				if binary_flags != library_flags:
-					s = "%s\n\t%s\t%s ( %s )" % ( s, soname, library, library_flags )
+					s = '%s\n\t%s\t%s ( %s )' % ( s, soname, library, library_flags )
 					count = count + 1
 			except:
 				missing_links.append(soname)
@@ -145,8 +144,8 @@ def print_reverse_linkings( reverse_linkings, so2library_mappings, verbose ):
 
 		try:
 			library = so2library_mappings[soname]
-			library_flags = pax.getflags(library)
-			sv = "%s\t%s ( %s )" % ( soname, library, library_flags )
+			( library_flags, library_pax_flags ) = pax.getflags(library)
+			sv = '%s\t%s ( %s )' % ( soname, library, library_flags )
 			s = sv
 		except:
 			missing_sonames.append(soname)
@@ -155,10 +154,10 @@ def print_reverse_linkings( reverse_linkings, so2library_mappings, verbose ):
 		count = 0
 		for binary in reverse_linkings[soname]:
 			try:
-				binary_flags = pax.getflags(binary)
-				sv = "%s\n\t%s ( %s )" % ( sv, binary, binary_flags )
+				( binary_flags, binary_pax_flags ) = pax.getflags(binary)
+				sv = '%s\n\t%s ( %s )' % ( sv, binary, binary_flags )
 				if library_flags != binary_flags:
-					s = "%s\n\t%s ( %s )" % ( s, binary, binary_flags )
+					s = '%s\n\t%s ( %s )' % ( s, binary, binary_flags )
 					count = count + 1
 			except:
 				missing_links.append(binary)
@@ -203,12 +202,13 @@ def run_usage():
 	print 'Program Name : revdep-pax'
 	print 'Description  : Get or set pax flags on an ELF object'
 	print
-	print 'Usage        : revdep-pax -f [-v]         print out all forward mappings for all system binaries'
-	print '             : revdep-pax -r [-v]         print out all reverse mappints for all system sonames'
-	print '             : revdep-pax -b BINARY [-v]  print all forward mappings only for BINARY'
-	print '             : revdep-pax -s SONAME [-v]  print all reverse mappings only for SONAME'
-	print '             : revdep-pax [-h]            print out this help'
-	print '             : -v                         verbose, otherwise just print mismatched flags'
+	print 'Usage        : revdep-pax -f [-mv]         print out all forward mappings for all system binaries'
+	print '             : revdep-pax -r [-mv]         print out all reverse mappints for all system sonames'
+	print '             : revdep-pax -b BINARY [-mv]  print all forward mappings only for BINARY'
+	print '             : revdep-pax -s SONAME [-mv]  print all reverse mappings only for SONAME'
+	print '             : revdep-pax [-h]             print out this help'
+	print '             : -v                          verbose, otherwise just print mismatched flags'
+	print '             : -m                          prompt to mark the found objects'
 	print
 
 
@@ -225,28 +225,28 @@ def run_reverse(verbose):
 	print
 
 
-def run_binary(binary, verbose):
+def run_binary(binary, verbose, mark):
 	( linkings, mappings ) = get_ldd_linkings(binary)
-
-	binary_flags = pax.getflags(binary)
-	print binary, '(', binary_flags, ')'
+	( binary_flags, binary_pax_flags ) = pax.getflags(binary)
+	print '%s (%s)' % ( binary, binary_flags )
 	print
 
-	count = 0
+	mismatched_libraries = []
+
 	for soname in linkings:
 		try:
 			library = mappings[soname]
-			library_flags = pax.getflags(library)
+			( library_flags, library_pax_flags ) = pax.getflags(library)
 			if verbose:
-				print '\t', soname, '\t', library, '(', library_flags, ')'
-			else:
-				if binary_flags != library_flags:
-					print '\t', soname, '\t', library, '(', library_flags, ')'
-					count = count + 1
+				print '\t%s\t%s ( %s )' % ( soname, library, library_flags )
+			if binary_flags != library_flags:
+				mismatched_libraries.append(library)
+				if not verbose:
+					print '\t%s\t%s ( %s )' % ( soname, library, library_flags )
 		except:
-			print "file for soname %s not found" % soname
+			print 'file for soname %s not found' % soname
 
-	if count == 0:
+	if len(mismatched_libraries) == 0:
 		print
 		print '\tNo mismatches'
 		print
@@ -254,6 +254,27 @@ def run_binary(binary, verbose):
 		print
 		print '\tMismatches'
 		print
+		if mark:
+			print '\tWill mark libraries with %s' % binary_flags
+			print
+			for library in mismatched_libraries:
+				do_marking = False
+				while True:
+					ans = raw_input('\tSet flags for %s (y/n): ' % library)
+					if ans == 'y':
+						do_marking = True
+						break
+					elif ans == 'n':
+						do_marking = False
+						break
+					else:
+						print '\t\tPlease enter y or n'
+
+				if do_marking:
+					pax.setflags(library, binary_pax_flags)
+					( library_flags, library_pax_flags ) = pax.getflags(library)
+					print '\t%s ( %s )' % ( library, library_flags )
+					print
 
 
 def invert_so2library_mappings( so2library_mappings ):
@@ -263,7 +284,7 @@ def invert_so2library_mappings( so2library_mappings ):
 	return library2soname_mappings
 
 
-def run_soname(name, verbose, use_soname):
+def run_soname(name, verbose, use_soname, mark):
 	( forward_linkings, so2library_mappings ) = get_forward_linkings()
 	reverse_linkings = invert_linkings( forward_linkings )
 
@@ -276,14 +297,14 @@ def run_soname(name, verbose, use_soname):
 	linkings = reverse_linkings[soname]
 	library = so2library_mappings[soname]
 
-	library_flags = pax.getflags(library)
+	( library_flags, library_pax_flags ) = pax.getflags(library)
 	print soname, '\t', library, '(', library_flags, ')'
 	print
 
 	count = 0
 	for binary in linkings:
 		try:
-			binary_flags = pax.getflags(binary)
+			( binary_flags, binary_pax_flags ) = pax.getflags(binary)
 			if verbose:
 				print '\t', binary, '(', binary_flags, ')'
 			else:
@@ -291,7 +312,7 @@ def run_soname(name, verbose, use_soname):
 					print '\t', binary, '(', binary_flags, ')'
 					count = count + 1
 		except:
-			print "cannot obtain pax flags for %s" % binary
+			print 'cannot obtain pax flags for %s' % binary
 
 	if count == 0:
 		print
@@ -305,7 +326,7 @@ def run_soname(name, verbose, use_soname):
 
 def main():
 	try:
-		opts, args = getopt.getopt(sys.argv[1:], 'hfrb:s:l:v')
+		opts, args = getopt.getopt(sys.argv[1:], 'hfrb:s:l:vm')
 	except getopt.GetoptError, err:
 		print str(err) # will print something like 'option -a not recognized'
 		run_usage()
@@ -324,6 +345,7 @@ def main():
 	library = None
 
 	verbose = False
+	mark = False
 
 	opt_count = 0
 
@@ -348,6 +370,8 @@ def main():
 			opt_count += 1
 		elif o == '-v':
 			verbose = True
+		elif o == '-m':
+			mark = True
 		else:
 			print 'Option included in getopt but not handled here!'
 			print 'Please file a bug'
@@ -361,12 +385,12 @@ def main():
 	elif do_reverse:
 		run_reverse(verbose)
 	elif binary != None:
-		run_binary(binary, verbose)
+		run_binary(binary, verbose, mark)
 	elif soname != None:
-		run_soname(soname, verbose, True)
+		run_soname(soname, verbose, True, mark)
 	elif library != None:
 		library = os.path.realpath(library)
-		run_soname(library, verbose, False)
+		run_soname(library, verbose, False, mark)
 
 if __name__ == '__main__':
     main()



             reply	other threads:[~2011-10-17 19:28 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-17 19:28 Anthony G. Basile [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-11-18 18:21 [gentoo-commits] proj/elfix:master commit in: scripts/ Anthony G. Basile
2019-04-22 22:14 Anthony G. Basile
2015-10-27 19:37 Anthony G. Basile
2015-01-04 15:42 Anthony G. Basile
2014-12-22 17:29 Anthony G. Basile
2014-10-17 20:02 Anthony G. Basile
2014-01-23 16:22 Anthony G. Basile
2014-01-20 22:44 Anthony G. Basile
2013-05-20 19:47 Anthony G. Basile
2013-03-14  2:39 Anthony G. Basile
2013-01-06 17:19 Anthony G. Basile
2012-12-28 19:34 Anthony G. Basile
2012-12-23  3:49 Anthony G. Basile
2012-12-23  2:36 Anthony G. Basile
2012-12-23  1:04 Anthony G. Basile
2012-12-22 22:20 Anthony G. Basile
2012-12-22 20:17 Anthony G. Basile
2012-12-22 19:42 Anthony G. Basile
2012-12-22 19:29 Anthony G. Basile
2012-12-22 19:02 Anthony G. Basile
2012-12-22 18:31 Anthony G. Basile
2012-12-22 16:36 Anthony G. Basile
2012-12-22  1:04 Anthony G. Basile
2012-12-20  4:26 Anthony G. Basile
2012-12-19  4:09 Anthony G. Basile
2012-12-19  3:51 Anthony G. Basile
2012-12-15 20:03 Anthony G. Basile
2012-12-14  2:19 Anthony G. Basile
2012-12-14  2:16 Anthony G. Basile
2012-12-14  2:04 Anthony G. Basile
2012-12-14  1:59 Anthony G. Basile
2012-12-14  1:26 Anthony G. Basile
2012-12-14  1:20 Anthony G. Basile
2012-07-27 22:01 Anthony G. Basile
2012-07-23 19:18 Anthony G. Basile
2012-07-23 15:46 Anthony G. Basile
2012-07-23 15:27 Anthony G. Basile
2012-07-23 14:58 Anthony G. Basile
2012-07-23 14:15 Anthony G. Basile
2012-07-23 13:06 Anthony G. Basile
2012-07-23 11:47 Anthony G. Basile
2012-07-22 23:11 Anthony G. Basile
2012-07-22 22:22 Anthony G. Basile
2012-07-21 16:28 Anthony G. Basile
2012-07-21 15:44 Anthony G. Basile
2012-07-21 15:41 Anthony G. Basile
2012-07-21 13:53 Anthony G. Basile
2011-12-28 23:19 Anthony G. Basile
2011-12-28 23:18 Anthony G. Basile
2011-12-28 16:37 Anthony G. Basile
2011-12-28 15:39 Anthony G. Basile
2011-12-28 15:31 Anthony G. Basile
2011-12-26 22:24 Anthony G. Basile
2011-12-26 20:25 Anthony G. Basile
2011-12-04 21:43 Anthony G. Basile
2011-11-27  0:17 Anthony G. Basile
2011-11-26 22:08 Anthony G. Basile
2011-11-26 21:15 Anthony G. Basile
2011-11-26 19:08 Anthony G. Basile
2011-11-26 19:07 Anthony G. Basile
2011-10-17 20:55 Anthony G. Basile
2011-10-17 20:15 Anthony G. Basile
2011-10-16 18:27 Anthony G. Basile
2011-10-16 18:27 Anthony G. Basile
2011-10-16 18:04 Anthony G. Basile
2011-10-13  4:36 Anthony G. Basile
2011-10-13  2:27 Anthony G. Basile
2011-10-13  0:36 Anthony G. Basile
2011-10-11  0:50 Anthony G. Basile
2011-10-10 23:42 Anthony G. Basile
2011-10-10 23:21 Anthony G. Basile
2011-10-10 17:30 Anthony G. Basile
2011-10-10 17:29 Anthony G. Basile
2011-10-08 18:35 Anthony G. Basile
2011-10-08  2:03 Anthony G. Basile
2011-10-08  0:46 Anthony G. Basile
2011-10-07 22:14 Anthony G. Basile
2011-10-07 19:58 Anthony G. Basile
2011-10-07  1:56 Anthony G. Basile
2011-10-06 23:39 Anthony G. Basile
2011-10-06 20:14 Anthony G. Basile
2011-10-06 19:46 Anthony G. Basile
2011-10-06  4:19 Anthony G. Basile
2011-10-06  4:07 Anthony G. Basile
2011-10-06  3:14 Anthony G. Basile
2011-10-06  3:13 Anthony G. Basile
2011-10-06  2:20 Anthony G. Basile
2011-09-08 23:50 Anthony G. Basile

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f1097c9e8fc1624799f7a08c7e510e24903f1f7d.blueness@gentoo \
    --to=blueness@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox