Remove dependency on dpkg Upstream-Status: Submitted Asking the host OS whether it supports multiarch is not useful in a cross-compilation environment, or if the user has specified a libdir explicitly. So this patch, based on the work of Mentor Graphics, removes mklibs's dependency on dpkg package. Signed-off-by: Yuanjie Huang src/mklibs | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/mklibs b/src/mklibs index d9b784b..c5614ea 100755 --- a/src/mklibs +++ b/src/mklibs @@ -261,6 +261,11 @@ def extract_soname(so_file): return "" def multiarch(paths): + # Asking the host OS whether it supports multiarch is not useful + # in a cross-compilation environment, or if the user has specified + # a libdir explicitly. + if sysroot != "" or libdir != "": + return paths devnull = open('/dev/null', 'w') dpkg_architecture = subprocess.Popen( ['dpkg-architecture', '-qDEB_HOST_MULTIARCH'], @@ -340,7 +345,7 @@ lib_path = [] dest_path = "DEST" ldlib = "LDLIB" include_default_lib_path = "yes" -default_lib_path = multiarch(["/lib/", "/usr/lib/", "/usr/X11R6/lib/"]) +default_lib_path = ["/lib/", "/usr/lib/", "/usr/X11R6/lib/"] libc_extras_dir = "/usr/lib/libc_pic" libc_extras_dir_default = True libdir = "lib" @@ -386,7 +391,7 @@ for opt, arg in optlist: elif opt == "--libdir": libdir = arg elif opt in ("--help", "-h"): - usage(0) + usage(0) sys.exit(0) elif opt in ("--version", "-V"): version(vers) @@ -395,6 +400,7 @@ for opt, arg in optlist: print "WARNING: unknown option: " + opt + "\targ: " + arg if include_default_lib_path == "yes": + default_lib_path = multiarch(default_lib_path) lib_path.extend([a.replace("/lib/", "/" + libdir + "/") for a in default_lib_path]) if libc_extras_dir_default: @@ -661,16 +669,16 @@ ld_path_name = os.path.dirname(ldlib) ld_full_path = "../" + ldlib ld_file = find_lib(ld_file_name) -if ld_path_name != "/lib": - if os.access(dest_path + "/" + ld_file_name, os.F_OK): - os.remove(dest_path + "/" + ld_file_name) +#if ld_path_name != "/lib": +# if os.access(dest_path + "/" + ld_file_name, os.F_OK): +# os.remove(dest_path + "/" + ld_file_name) -if not os.path.exists(dest_path + "/../" + ld_path_name): - os.mkdir(dest_path + "/../" + ld_path_name) +#if not os.path.exists(dest_path + "/../" + ld_path_name): +# os.mkdir(dest_path + "/../" + ld_path_name) -if not os.access(dest_path + "/" + ld_full_path, os.F_OK): - debug(DEBUG_NORMAL, "I: stripping and copying dynamic linker to " + ld_full_path) +if not os.access(dest_path + "/" + ld_file_name, os.F_OK): + debug(DEBUG_NORMAL, "I: stripping and copying dynamic linker to " + ld_file_name) command(target + "objcopy", "--strip-unneeded -R .note -R .comment", - ld_file, dest_path + "/" + ld_full_path) + ld_file, dest_path + "/" + ld_file_name) -os.chmod(dest_path + "/" + ld_full_path, 0755) +os.chmod(dest_path + "/" + ld_file_name, 0755)