mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-18 21:28:02 +00:00
tools/mklibs: update to 0.1.45
Refresh 2to3 patch. Upstream partially did this against some older python version. This is still needed. Refreshed other patches to be python3 safe. Remove uClibc patches as only musl is present now. Refresh others. Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
parent
038d5bdab1
commit
c8b7065f61
@ -7,11 +7,11 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=mklibs
|
PKG_NAME:=mklibs
|
||||||
PKG_VERSION:=0.1.44
|
PKG_VERSION:=0.1.45
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@DEBIAN/pool/main/m/mklibs/
|
PKG_SOURCE_URL:=@DEBIAN/pool/main/m/mklibs/
|
||||||
PKG_HASH:=3af0b6bd35e5b6fc58d8b68827fbae2ff6b7e20dd2b238ccb9b49d84722066c2
|
PKG_HASH:=dd92a904b3942566f713fe536cd77dd1a5cfc62243c0e0bc6bb5d866e37422f3
|
||||||
|
|
||||||
HOST_FIXUP:=autoreconf
|
HOST_FIXUP:=autoreconf
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
for name in unresolved:
|
for name in unresolved:
|
||||||
if not needed_symbols[name].weak:
|
if not needed_symbols[name].weak:
|
||||||
- raise Exception("Unresolvable symbol %s" % name)
|
- raise Exception("Unresolvable symbol %s" % name)
|
||||||
+ print "WARNING: Unresolvable symbol %s" % name
|
+ print("WARNING: Unresolvable symbol %s" % name)
|
||||||
break
|
break
|
||||||
|
|
||||||
previous_pass_unresolved = unresolved
|
previous_pass_unresolved = unresolved
|
||||||
@ -14,7 +14,7 @@
|
|||||||
if not name in symbol_provider:
|
if not name in symbol_provider:
|
||||||
if not needed_symbols[name].weak:
|
if not needed_symbols[name].weak:
|
||||||
- raise Exception("No library provides non-weak %s" % name)
|
- raise Exception("No library provides non-weak %s" % name)
|
||||||
+ print "WARNING: Unresolvable symbol %s" % name
|
+ print("WARNING: Unresolvable symbol %s" % name)
|
||||||
else:
|
else:
|
||||||
lib = symbol_provider[name]
|
lib = symbol_provider[name]
|
||||||
library_symbols_used[lib].add(library_symbols[lib][name])
|
library_symbols_used[lib].add(library_symbols[lib][name])
|
||||||
|
@ -32,11 +32,11 @@
|
|||||||
- dest_path + "/" + so_file_name + "-so",
|
- dest_path + "/" + so_file_name + "-so",
|
||||||
- dest_path + "/" + so_file_name + "-so-stripped")
|
- dest_path + "/" + so_file_name + "-so-stripped")
|
||||||
## DEBUG
|
## DEBUG
|
||||||
debug(DEBUG_VERBOSE, so_file, "\t", `os.stat(so_file)[ST_SIZE]`)
|
debug(DEBUG_VERBOSE, so_file, "\t", str(os.stat(so_file)[ST_SIZE]))
|
||||||
debug(DEBUG_VERBOSE, dest_path + "/" + so_file_name + "-so", "\t",
|
debug(DEBUG_VERBOSE, dest_path + "/" + so_file_name + "-so", "\t",
|
||||||
`os.stat(dest_path + "/" + so_file_name + "-so")[ST_SIZE]`)
|
str(os.stat(dest_path + "/" + so_file_name + "-so")[ST_SIZE]))
|
||||||
- debug(DEBUG_VERBOSE, dest_path + "/" + so_file_name + "-so-stripped",
|
- debug(DEBUG_VERBOSE, dest_path + "/" + so_file_name + "-so-stripped",
|
||||||
- "\t", `os.stat(dest_path + "/" + so_file_name + "-so-stripped")[ST_SIZE]`)
|
- "\t", str(os.stat(dest_path + "/" + so_file_name + "-so-stripped")[ST_SIZE]))
|
||||||
|
|
||||||
# Finalising libs and cleaning up
|
# Finalising libs and cleaning up
|
||||||
-for lib in regexpfilter(os.listdir(dest_path), "(.*)-so-stripped$"):
|
-for lib in regexpfilter(os.listdir(dest_path), "(.*)-so-stripped$"):
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
for name in needed_symbols:
|
for name in needed_symbols:
|
||||||
- if not name in symbol_provider:
|
- if not name in symbol_provider:
|
||||||
- if not needed_symbols[name].weak:
|
- if not needed_symbols[name].weak:
|
||||||
- print "WARNING: Unresolvable symbol %s" % name
|
- print("WARNING: Unresolvable symbol %s" % name)
|
||||||
- else:
|
- else:
|
||||||
- lib = symbol_provider[name]
|
- lib = symbol_provider[name]
|
||||||
- library_symbols_used[lib].add(library_symbols[lib][name])
|
- library_symbols_used[lib].add(library_symbols[lib][name])
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
--- a/src/mklibs
|
|
||||||
+++ b/src/mklibs
|
|
||||||
@@ -604,6 +604,11 @@ while 1:
|
|
||||||
extra_post_obj.append(sysroot + libc_extras_dir + "/sofini.o")
|
|
||||||
symbols.add(ProvidedSymbol('__dso_handle', None, None, True))
|
|
||||||
|
|
||||||
+ if soname in ("libc.so.0"):
|
|
||||||
+ symbols.add(ProvidedSymbol('__uClibc_init', None, None, True))
|
|
||||||
+ symbols.add(ProvidedSymbol('__uClibc_fini', None, None, True))
|
|
||||||
+ extra_flags.append("-Wl,-init,__uClibc_init")
|
|
||||||
+
|
|
||||||
map_file = find_pic_map(library)
|
|
||||||
if map_file:
|
|
||||||
extra_flags.append("-Wl,--version-script=" + map_file)
|
|
@ -1,6 +1,6 @@
|
|||||||
--- a/src/mklibs
|
--- a/src/mklibs
|
||||||
+++ b/src/mklibs
|
+++ b/src/mklibs
|
||||||
@@ -616,7 +616,7 @@ while 1:
|
@@ -611,7 +611,7 @@ while 1:
|
||||||
# compile in only used symbols
|
# compile in only used symbols
|
||||||
cmd = []
|
cmd = []
|
||||||
cmd.extend(gcc_options)
|
cmd.extend(gcc_options)
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
symbols.update(library_symbols_used[library])
|
symbols.update(library_symbols_used[library])
|
||||||
|
|
||||||
@@ -623,9 +621,10 @@ while 1:
|
@@ -618,9 +616,10 @@ while 1:
|
||||||
cmd.append(pic_file)
|
cmd.append(pic_file)
|
||||||
cmd.extend(extra_post_obj)
|
cmd.extend(extra_post_obj)
|
||||||
cmd.extend(extra_flags)
|
cmd.extend(extra_flags)
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
--- a/src/mklibs
|
|
||||||
+++ b/src/mklibs
|
|
||||||
@@ -173,9 +173,10 @@ def undefined_symbols(obj):
|
|
||||||
return result
|
|
||||||
|
|
||||||
class ProvidedSymbol(Symbol):
|
|
||||||
- def __init__(self, name, version, library, default_version):
|
|
||||||
+ def __init__(self, name, version, library, default_version, weak):
|
|
||||||
super(ProvidedSymbol, self).__init__(name, version, library)
|
|
||||||
self.default_version = default_version
|
|
||||||
+ self.weak = weak
|
|
||||||
|
|
||||||
def base_names(self):
|
|
||||||
ret = []
|
|
||||||
@@ -216,11 +217,15 @@ def provided_symbols(obj):
|
|
||||||
if version_string.lower() not in ('base', 'none'):
|
|
||||||
version = version_string
|
|
||||||
|
|
||||||
+ weak = False
|
|
||||||
+ if weak_string.lower() == 'true':
|
|
||||||
+ weak = True
|
|
||||||
+
|
|
||||||
default_version = False
|
|
||||||
if default_version_string.lower() == 'true':
|
|
||||||
default_version = True
|
|
||||||
|
|
||||||
- result.append(ProvidedSymbol(name, version, library, default_version))
|
|
||||||
+ result.append(ProvidedSymbol(name, version, library, default_version, weak))
|
|
||||||
|
|
||||||
return result
|
|
||||||
|
|
||||||
@@ -509,6 +514,9 @@ while 1:
|
|
||||||
debug(DEBUG_SPAM, "present_symbols adding %s" % symbol)
|
|
||||||
names = symbol.base_names()
|
|
||||||
for name in names:
|
|
||||||
+ if name in present_symbols:
|
|
||||||
+ if symbol.library != present_symbols[name].library:
|
|
||||||
+ needed_symbols[name] = UndefinedSymbol(name, True, symbol.version, symbol.library)
|
|
||||||
present_symbols[name] = symbol
|
|
||||||
|
|
||||||
# are we finished?
|
|
||||||
@@ -600,12 +608,16 @@ while 1:
|
|
||||||
# may segfault in ptmalloc_init due to undefined weak reference
|
|
||||||
extra_pre_obj.append(sysroot + libc_extras_dir + "/soinit.o")
|
|
||||||
extra_post_obj.append(sysroot + libc_extras_dir + "/sofini.o")
|
|
||||||
- symbols.add(ProvidedSymbol('__dso_handle', None, None, True))
|
|
||||||
+ symbols.add(ProvidedSymbol('__dso_handle', None, None, True, True))
|
|
||||||
|
|
||||||
- if soname in ("libc.so.0"):
|
|
||||||
- symbols.add(ProvidedSymbol('__uClibc_init', None, None, True))
|
|
||||||
- symbols.add(ProvidedSymbol('__uClibc_fini', None, None, True))
|
|
||||||
- extra_flags.append("-Wl,-init,__uClibc_init")
|
|
||||||
+ if soname == "libc.so.0":
|
|
||||||
+ symbols.add(ProvidedSymbol('__uClibc_init', None, None, True, True))
|
|
||||||
+ symbols.add(ProvidedSymbol('__uClibc_fini', None, None, True, True))
|
|
||||||
+ extra_pre_obj.append("-Wl,-init,__uClibc_init")
|
|
||||||
+
|
|
||||||
+ if soname == "libpthread.so.0":
|
|
||||||
+ symbols.add(ProvidedSymbol('__pthread_initialize_minimal_internal', None, None, True, True))
|
|
||||||
+ extra_flags.append("-Wl,-z,nodelete,-z,initfirst,-init=__pthread_initialize_minimal_internal")
|
|
||||||
|
|
||||||
map_file = find_pic_map(library)
|
|
||||||
if map_file:
|
|
@ -1,6 +1,6 @@
|
|||||||
--- a/src/mklibs
|
--- a/src/mklibs
|
||||||
+++ b/src/mklibs
|
+++ b/src/mklibs
|
||||||
@@ -274,6 +274,7 @@ def extract_soname(so_file):
|
@@ -269,6 +269,7 @@ def extract_soname(so_file):
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
def multiarch(paths):
|
def multiarch(paths):
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
--- a/src/mklibs
|
--- a/src/mklibs
|
||||||
+++ b/src/mklibs
|
+++ b/src/mklibs
|
||||||
@@ -57,18 +57,18 @@ debuglevel = DEBUG_NORMAL
|
@@ -57,17 +57,17 @@ debuglevel = DEBUG_NORMAL
|
||||||
|
|
||||||
def debug(level, *msg):
|
def debug(level, *msg):
|
||||||
if debuglevel >= level:
|
if debuglevel >= level:
|
||||||
- print string.join(msg)
|
- print(string.join(msg))
|
||||||
+ print(' '.join(msg))
|
+ print(' '.join(msg))
|
||||||
|
|
||||||
# return a list of lines of output of the command
|
# return a list of lines of output of the command
|
||||||
@ -15,82 +15,22 @@
|
|||||||
output = pipe.read().strip()
|
output = pipe.read().strip()
|
||||||
status = pipe.close()
|
status = pipe.close()
|
||||||
if status is not None and os.WEXITSTATUS(status) != 0:
|
if status is not None and os.WEXITSTATUS(status) != 0:
|
||||||
- print "Command failed with status", os.WEXITSTATUS(status), ":", \
|
print("Command failed with status", os.WEXITSTATUS(status), ":", \
|
||||||
- command, string.join(args)
|
- command, string.join(args))
|
||||||
- print "With output:", output
|
|
||||||
+ print("Command failed with status", os.WEXITSTATUS(status), ":", \
|
|
||||||
+ command, ' '.join(args))
|
+ command, ' '.join(args))
|
||||||
+ print("With output:", output)
|
print("With output:", output)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
return [i for i in output.split('\n') if i]
|
return [i for i in output.split('\n') if i]
|
||||||
|
@@ -296,7 +296,7 @@ def usage(was_err):
|
||||||
@@ -204,7 +204,7 @@ class ProvidedSymbol(Symbol):
|
print("Make a set of minimal libraries for FILE(s, file=outfd) in DEST.", file=outfd)
|
||||||
# Return a set of symbols provided by a library
|
print("" , file=outfd)
|
||||||
def provided_symbols(obj):
|
print(" -d, --dest-dir DIRECTORY create libraries in DIRECTORY", file=outfd)
|
||||||
if not os.access(obj, os.F_OK):
|
- print(" -D, --no-default-lib omit default libpath (", ':'.join(default_lib_path, file=outfd), ", file=outfd)", file=outfd)
|
||||||
- raise Exception("Cannot find lib" + obj)
|
|
||||||
+ raise Exception("Cannot find lib " + obj)
|
|
||||||
library = extract_soname(obj)
|
|
||||||
|
|
||||||
output = command("mklibs-readelf", "--print-symbols-provided", obj)
|
|
||||||
@@ -297,27 +297,27 @@ def usage(was_err):
|
|
||||||
outfd = sys.stderr
|
|
||||||
else:
|
|
||||||
outfd = sys.stdout
|
|
||||||
- print >> outfd, "Usage: mklibs [OPTION]... -d DEST FILE ..."
|
|
||||||
- print >> outfd, "Make a set of minimal libraries for FILE(s) in DEST."
|
|
||||||
- print >> outfd, ""
|
|
||||||
- print >> outfd, " -d, --dest-dir DIRECTORY create libraries in DIRECTORY"
|
|
||||||
- print >> outfd, " -D, --no-default-lib omit default libpath (", ':'.join(default_lib_path), ")"
|
|
||||||
- print >> outfd, " -L DIRECTORY[:DIRECTORY]... add DIRECTORY(s) to the library search path"
|
|
||||||
- print >> outfd, " -l LIBRARY add LIBRARY always"
|
|
||||||
- print >> outfd, " --ldlib LDLIB use LDLIB for the dynamic linker"
|
|
||||||
- print >> outfd, " --libc-extras-dir DIRECTORY look for libc extra files in DIRECTORY"
|
|
||||||
- print >> outfd, " --target TARGET prepend TARGET- to the gcc and binutils calls"
|
|
||||||
- print >> outfd, " --root ROOT search in ROOT for library rpaths"
|
|
||||||
- print >> outfd, " --sysroot ROOT prepend ROOT to all paths for libraries"
|
|
||||||
- print >> outfd, " --gcc-options OPTIONS pass OPTIONS to gcc"
|
|
||||||
- print >> outfd, " --libdir DIR use DIR (e.g. lib64) in place of lib in default paths"
|
|
||||||
- print >> outfd, " -v, --verbose explain what is being done"
|
|
||||||
- print >> outfd, " -h, --help display this help and exit"
|
|
||||||
+ print("Usage: mklibs [OPTION]... -d DEST FILE ...", file=outfd)
|
|
||||||
+ print("Make a set of minimal libraries for FILE(s) in DEST.", file=outfd)
|
|
||||||
+ print("", file=outfd)
|
|
||||||
+ print(" -d, --dest-dir DIRECTORY create libraries in DIRECTORY", file=outfd)
|
|
||||||
+ print(" -D, --no-default-lib omit default libpath (", ':'.join(default_lib_path), ")", file=outfd)
|
+ print(" -D, --no-default-lib omit default libpath (", ':'.join(default_lib_path), ")", file=outfd)
|
||||||
+ print(" -L DIRECTORY[:DIRECTORY]... add DIRECTORY(s) to the library search path", file=outfd)
|
print(" -L DIRECTORY[:DIRECTORY]... add DIRECTORY(s, file=outfd) to the library search path", file=outfd)
|
||||||
+ print(" -l LIBRARY add LIBRARY always", file=outfd)
|
print(" -l LIBRARY add LIBRARY always", file=outfd)
|
||||||
+ print(" --ldlib LDLIB use LDLIB for the dynamic linker", file=outfd)
|
print(" --ldlib LDLIB use LDLIB for the dynamic linker", file=outfd)
|
||||||
+ print(" --libc-extras-dir DIRECTORY look for libc extra files in DIRECTORY", file=outfd)
|
@@ -372,7 +372,7 @@ for opt, arg in optlist:
|
||||||
+ print(" --target TARGET prepend TARGET- to the gcc and binutils calls", file=outfd)
|
|
||||||
+ print(" --root ROOT search in ROOT for library rpaths", file=outfd)
|
|
||||||
+ print(" --sysroot ROOT prepend ROOT to all paths for libraries", file=outfd)
|
|
||||||
+ print(" --gcc-options OPTIONS pass OPTIONS to gcc", file=outfd)
|
|
||||||
+ print(" --libdir DIR use DIR (e.g. lib64) in place of lib in default paths", file=outfd)
|
|
||||||
+ print(" -v, --verbose explain what is being done", file=outfd)
|
|
||||||
+ print(" -h, --help display this help and exit", file=outfd)
|
|
||||||
sys.exit(was_err)
|
|
||||||
|
|
||||||
def version(vers):
|
|
||||||
- print "mklibs: version ",vers
|
|
||||||
- print ""
|
|
||||||
+ print("mklibs: version ",vers)
|
|
||||||
+ print("")
|
|
||||||
|
|
||||||
#################### main ####################
|
|
||||||
## Usage: ./mklibs.py [OPTION]... -d DEST FILE ...
|
|
||||||
@@ -368,8 +368,8 @@ script_pattern = re.compile("^#!\s*/")
|
|
||||||
|
|
||||||
try:
|
|
||||||
optlist, proglist = getopt.getopt(sys.argv[1:], opts, longopts)
|
|
||||||
-except getopt.GetoptError, msg:
|
|
||||||
- print >> sys.stderr, msg
|
|
||||||
+except getopt.GetoptError as msg:
|
|
||||||
+ print(msg, file=sys.stderr)
|
|
||||||
usage(1)
|
|
||||||
|
|
||||||
for opt, arg in optlist:
|
|
||||||
@@ -377,7 +377,7 @@ for opt, arg in optlist:
|
|
||||||
if debuglevel < DEBUG_SPAM:
|
if debuglevel < DEBUG_SPAM:
|
||||||
debuglevel = debuglevel + 1
|
debuglevel = debuglevel + 1
|
||||||
elif opt == "-L":
|
elif opt == "-L":
|
||||||
@ -99,7 +39,7 @@
|
|||||||
elif opt in ("-d", "--dest-dir"):
|
elif opt in ("-d", "--dest-dir"):
|
||||||
dest_path = arg
|
dest_path = arg
|
||||||
elif opt in ("-D", "--no-default-lib"):
|
elif opt in ("-D", "--no-default-lib"):
|
||||||
@@ -396,17 +396,17 @@ for opt, arg in optlist:
|
@@ -391,7 +391,7 @@ for opt, arg in optlist:
|
||||||
elif opt in ("-l",):
|
elif opt in ("-l",):
|
||||||
force_libs.append(arg)
|
force_libs.append(arg)
|
||||||
elif opt == "--gcc-options":
|
elif opt == "--gcc-options":
|
||||||
@ -108,19 +48,7 @@
|
|||||||
elif opt == "--libdir":
|
elif opt == "--libdir":
|
||||||
libdir = arg
|
libdir = arg
|
||||||
elif opt in ("--help", "-h"):
|
elif opt in ("--help", "-h"):
|
||||||
- usage(0)
|
@@ -419,17 +419,17 @@ if ldlib == "LDLIB":
|
||||||
+ usage(0)
|
|
||||||
sys.exit(0)
|
|
||||||
elif opt in ("--version", "-V"):
|
|
||||||
version(vers)
|
|
||||||
sys.exit(0)
|
|
||||||
else:
|
|
||||||
- print "WARNING: unknown option: " + opt + "\targ: " + arg
|
|
||||||
+ print("WARNING: unknown option: " + opt + "\targ: " + arg)
|
|
||||||
|
|
||||||
if include_default_lib_path == "yes":
|
|
||||||
lib_path.extend([a.replace("/lib/", "/" + libdir + "/") for a in default_lib_path])
|
|
||||||
@@ -424,22 +424,22 @@ if ldlib == "LDLIB":
|
|
||||||
objects = {} # map from inode to filename
|
objects = {} # map from inode to filename
|
||||||
for prog in proglist:
|
for prog in proglist:
|
||||||
inode = os.stat(prog)[ST_INO]
|
inode = os.stat(prog)[ST_INO]
|
||||||
@ -141,45 +69,20 @@
|
|||||||
output = command("mklibs-readelf", "--print-interp", obj)
|
output = command("mklibs-readelf", "--print-interp", obj)
|
||||||
if output:
|
if output:
|
||||||
ldlib = output.pop()
|
ldlib = output.pop()
|
||||||
- if ldlib:
|
@@ -462,9 +462,9 @@ previous_pass_unresolved = set()
|
||||||
- break
|
|
||||||
+ if ldlib:
|
|
||||||
+ break
|
|
||||||
|
|
||||||
if not ldlib:
|
|
||||||
sys.exit("E: Dynamic linker not found, aborting.")
|
|
||||||
@@ -454,10 +454,10 @@ for obj in sorted(objects.values()):
|
|
||||||
for rpath_elem in rpath_val:
|
|
||||||
if not rpath_elem in lib_rpath:
|
|
||||||
if debuglevel >= DEBUG_VERBOSE:
|
|
||||||
- print "Adding rpath " + rpath_elem + " for " + obj
|
|
||||||
+ print("Adding rpath " + rpath_elem + " for " + obj)
|
|
||||||
lib_rpath.append(rpath_elem)
|
|
||||||
else:
|
|
||||||
- print "warning: " + obj + " may need rpath, but --root not specified"
|
|
||||||
+ print("warning: " + obj + " may need rpath, but --root not specified")
|
|
||||||
|
|
||||||
lib_path.extend(lib_rpath)
|
|
||||||
|
|
||||||
@@ -465,12 +465,12 @@ passnr = 1
|
|
||||||
available_libs = []
|
|
||||||
previous_pass_unresolved = set()
|
|
||||||
while 1:
|
while 1:
|
||||||
- debug(DEBUG_NORMAL, "I: library reduction pass", `passnr`)
|
debug(DEBUG_NORMAL, "I: library reduction pass", str(passnr))
|
||||||
+ debug(DEBUG_NORMAL, "I: library reduction pass", repr(passnr))
|
|
||||||
if debuglevel >= DEBUG_VERBOSE:
|
if debuglevel >= DEBUG_VERBOSE:
|
||||||
- print "Objects:",
|
- print("Objects:",)
|
||||||
- for obj in sorted([x[string.rfind(x, '/') + 1:] for x in objects.values()]):
|
- for obj in sorted([x[string.rfind(x, '/') + 1:] for x in objects.values()]):
|
||||||
- print obj,
|
- print(obj,)
|
||||||
- print
|
|
||||||
+ print("Objects:", end=' ')
|
+ print("Objects:", end=' ')
|
||||||
+ for obj in sorted([x[x.rfind('/') + 1:] for x in list(objects.values())]):
|
+ for obj in sorted([x[x.rfind('/') + 1:] for x in list(objects.values())]):
|
||||||
+ print(obj, end=' ')
|
+ print(obj, end=' ')
|
||||||
+ print()
|
print()
|
||||||
|
|
||||||
passnr = passnr + 1
|
passnr = passnr + 1
|
||||||
# Gather all already reduced libraries and treat them as objects as well
|
@@ -474,7 +474,7 @@ while 1:
|
||||||
@@ -479,7 +479,7 @@ while 1:
|
|
||||||
obj = dest_path + "/" + lib
|
obj = dest_path + "/" + lib
|
||||||
small_libs.append(obj)
|
small_libs.append(obj)
|
||||||
inode = os.stat(obj)[ST_INO]
|
inode = os.stat(obj)[ST_INO]
|
||||||
@ -188,7 +91,7 @@
|
|||||||
debug(DEBUG_SPAM, obj, "is hardlink to", objects[inode])
|
debug(DEBUG_SPAM, obj, "is hardlink to", objects[inode])
|
||||||
else:
|
else:
|
||||||
objects[inode] = obj
|
objects[inode] = obj
|
||||||
@@ -509,7 +509,7 @@ while 1:
|
@@ -504,7 +504,7 @@ while 1:
|
||||||
present_symbols = {}
|
present_symbols = {}
|
||||||
checked_libs = small_libs
|
checked_libs = small_libs
|
||||||
checked_libs.extend(available_libs)
|
checked_libs.extend(available_libs)
|
||||||
@ -197,70 +100,8 @@
|
|||||||
for lib in checked_libs:
|
for lib in checked_libs:
|
||||||
for symbol in provided_symbols(lib):
|
for symbol in provided_symbols(lib):
|
||||||
debug(DEBUG_SPAM, "present_symbols adding %s" % symbol)
|
debug(DEBUG_SPAM, "present_symbols adding %s" % symbol)
|
||||||
@@ -529,8 +529,8 @@ while 1:
|
|
||||||
unresolved.add(name)
|
|
||||||
num_unresolved = num_unresolved + 1
|
|
||||||
|
|
||||||
- debug (DEBUG_NORMAL, `len(needed_symbols)`, "symbols,",
|
|
||||||
- `num_unresolved`, "unresolved")
|
|
||||||
+ debug (DEBUG_NORMAL, repr(len(needed_symbols)), "symbols,",
|
|
||||||
+ repr(num_unresolved), "unresolved")
|
|
||||||
|
|
||||||
if num_unresolved == 0:
|
|
||||||
break
|
|
||||||
@@ -539,7 +539,7 @@ while 1:
|
|
||||||
# No progress in last pass. Verify all remaining symbols are weak.
|
|
||||||
for name in unresolved:
|
|
||||||
if not needed_symbols[name].weak:
|
|
||||||
- print "WARNING: Unresolvable symbol %s" % name
|
|
||||||
+ print("WARNING: Unresolvable symbol %s" % name)
|
|
||||||
break
|
|
||||||
|
|
||||||
previous_pass_unresolved = unresolved
|
|
||||||
@@ -641,9 +641,9 @@ while 1:
|
|
||||||
command(target + "gcc", *cmd)
|
|
||||||
|
|
||||||
## DEBUG
|
|
||||||
- debug(DEBUG_VERBOSE, so_file, "\t", `os.stat(so_file)[ST_SIZE]`)
|
|
||||||
+ debug(DEBUG_VERBOSE, so_file, "\t", repr(os.stat(so_file)[ST_SIZE]))
|
|
||||||
debug(DEBUG_VERBOSE, dest_path + "/" + so_file_name + "-so", "\t",
|
|
||||||
- `os.stat(dest_path + "/" + so_file_name + "-so")[ST_SIZE]`)
|
|
||||||
+ repr(os.stat(dest_path + "/" + so_file_name + "-so")[ST_SIZE]))
|
|
||||||
|
|
||||||
# Finalising libs and cleaning up
|
|
||||||
for lib in regexpfilter(os.listdir(dest_path), "(.*)-so$"):
|
|
||||||
@@ -680,4 +680,4 @@ if not os.access(dest_path + "/" + ld_fu
|
|
||||||
command(target + "objcopy", "--strip-unneeded -R .note -R .comment",
|
|
||||||
ld_file, dest_path + "/" + ld_full_path)
|
|
||||||
|
|
||||||
-os.chmod(dest_path + "/" + ld_full_path, 0755)
|
|
||||||
+os.chmod(dest_path + "/" + ld_full_path, 0o755)
|
|
||||||
--- a/src/mklibs-copy
|
--- a/src/mklibs-copy
|
||||||
+++ b/src/mklibs-copy
|
+++ b/src/mklibs-copy
|
||||||
@@ -51,9 +51,9 @@ def command(command, *args):
|
|
||||||
output = pipe.read().strip()
|
|
||||||
status = pipe.close()
|
|
||||||
if status is not None and os.WEXITSTATUS(status) != 0:
|
|
||||||
- print "Command failed with status", os.WEXITSTATUS(status), ":", \
|
|
||||||
- command, ' '.join(args)
|
|
||||||
- print "With output:", output
|
|
||||||
+ print("Command failed with status", os.WEXITSTATUS(status), ":", \
|
|
||||||
+ command, ' '.join(args))
|
|
||||||
+ print("With output:", output)
|
|
||||||
sys.exit(1)
|
|
||||||
return output.split('\n')
|
|
||||||
|
|
||||||
@@ -134,8 +134,8 @@ def multiarch(paths):
|
|
||||||
return paths
|
|
||||||
|
|
||||||
def version(vers):
|
|
||||||
- print "mklibs: version ",vers
|
|
||||||
- print ""
|
|
||||||
+ print("mklibs: version ",vers)
|
|
||||||
+ print("")
|
|
||||||
|
|
||||||
# Clean the environment
|
|
||||||
vers="0.12"
|
|
||||||
@@ -159,7 +159,7 @@ if include_default_lib_path:
|
@@ -159,7 +159,7 @@ if include_default_lib_path:
|
||||||
objects = {} # map from inode to filename
|
objects = {} # map from inode to filename
|
||||||
for prog in proglist:
|
for prog in proglist:
|
||||||
@ -270,23 +111,15 @@
|
|||||||
logger.debug("%s is a hardlink to %s", prog, objects[inode])
|
logger.debug("%s is a hardlink to %s", prog, objects[inode])
|
||||||
elif so_pattern.match(prog):
|
elif so_pattern.match(prog):
|
||||||
logger.debug("%s is a library", prog)
|
logger.debug("%s is a library", prog)
|
||||||
@@ -169,12 +169,12 @@ for prog in proglist:
|
@@ -169,7 +169,7 @@ for prog in proglist:
|
||||||
logger.debug("%s is no ELF", prog)
|
logger.debug("%s is no ELF", prog)
|
||||||
|
|
||||||
if not ldlib:
|
if not ldlib:
|
||||||
- for obj in objects.values():
|
- for obj in objects.values():
|
||||||
+ for obj in list(objects.values()):
|
+ for obj in list(objects.values()):
|
||||||
output = command("mklibs-readelf", "-i", obj)
|
output = command("mklibs-readelf", "-i", obj)
|
||||||
- for x in output:
|
for x in output:
|
||||||
+ for x in output:
|
ldlib = x
|
||||||
ldlib = x
|
|
||||||
- if ldlib:
|
|
||||||
- break
|
|
||||||
+ if ldlib:
|
|
||||||
+ break
|
|
||||||
|
|
||||||
if not ldlib:
|
|
||||||
sys.exit("E: Dynamic linker not found, aborting.")
|
|
||||||
@@ -182,7 +182,7 @@ if not ldlib:
|
@@ -182,7 +182,7 @@ if not ldlib:
|
||||||
logger.info('Using %s as dynamic linker', ldlib)
|
logger.info('Using %s as dynamic linker', ldlib)
|
||||||
|
|
||||||
@ -319,9 +152,3 @@
|
|||||||
libraries.update(library_depends(obj))
|
libraries.update(library_depends(obj))
|
||||||
|
|
||||||
if libraries == previous_pass_libraries:
|
if libraries == previous_pass_libraries:
|
||||||
@@ -272,4 +272,4 @@ if not os.access(dest_path + "/" + ld_fu
|
|
||||||
command(target + "objcopy", "--strip-unneeded -R .note -R .comment",
|
|
||||||
ld_file, dest_path + "/" + ld_full_path)
|
|
||||||
|
|
||||||
-os.chmod(dest_path + "/" + ld_full_path, 0755)
|
|
||||||
+os.chmod(dest_path + "/" + ld_full_path, 0o755)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user