| 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 <Yuanjie.Huang@windriver.com> |
| 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) |