i patch mklibs.py to make it work in a crosscompile environment. please review the patch and include it if you want. bastian -- Conquest is easy. Control is not. -- Kirk, "Mirror, Mirror", stardate unknown
--- mklibs.py.orig Sat Jan 12 20:21:46 2002
+++ mklibs.py Sat Jan 12 20:28:52 2002
@@ -199,6 +199,8 @@
## -v, --verbose Print additional progress information.
## -V, --version Print the version number and exit.
## -h, --help Print this help and exit.
+## --ldlib-name Name of dynamic linker (overwrites environment variable ldlib)
+## --libc-extras-dir Directory for libc extra files
##
## -d, --dest-dir DIRECTORY Create libraries in DIRECTORY.
##
@@ -207,25 +209,35 @@
# Argument parsing
opts = "L:D:nvVhd:"
longopts = ["no-default-lib", "dry-run", "verbose", "version", "help",
- "dest-dir="]
+ "dest-dir=", "ldlib-name=", "libc-extras-dir="]
optlist, proglist = getopt.getopt(sys.argv[1:], opts, longopts)
# some global variables
lib_path = "/lib/", "/usr/lib/", "/usr/X11R6/lib/"
dest_path = "DEST"
+ldlib_name = "LDLIB"
+libc_extras_dir = "/usr/lib/libc_pic"
so_pattern = re.compile("(.*)\.so(\.\d+)+")
script_pattern = re.compile("^#!\s*/")
for opt, arg in optlist:
- if opt == "-v":
- debuglevel = DEBUG_VERBOSE
+ if opt in ("-v", "--verbose"):
+ if debuglevel < DEBUG_SPAM:
+ debuglevel += 1
elif opt == "-L":
lib_path = string.split(arg, ":")
elif opt in ("-d", "--dest-dir"):
dest_path = arg
+ elif opt == "--ldlib-name":
+ ldlib_name = arg
+ elif opt == "--libc-extras-dir":
+ libc_extras_dir = arg
else:
print "WARNING: unknown option: " + opt + "\targ: " + arg
+if ldlib_name == "LDLIB":
+ ldlib_name = os.getenv("ldlib")
+
objects = {} # map from inode to filename
for prog in proglist:
inode = os.stat(prog)[ST_INO]
@@ -352,9 +364,9 @@
base_name = so_pattern.match(library).group(1)
# libc needs its soinit.o and sofini.o as well as the pic
if base_name == "libc":
- extra_flags = find_lib(os.getenv("ldlib"))
- extra_pre_obj = "/usr/lib/libc_pic/soinit.o"
- extra_post_obj = "/usr/lib/libc_pic/sofini.o"
+ extra_flags = find_lib(ldlib_name)
+ extra_pre_obj = libc_extras_dir + "/soinit.o"
+ extra_post_obj = libc_extras_dir + "/sofini.o"
else:
extra_flags = ""
extra_pre_obj = ""
@@ -396,6 +408,6 @@
os.remove(dest_path + "/" + lib)
# Make the dynamic linker executable
-ld_file = find_lib(os.getenv("ldlib"))
+ld_file = find_lib(ldlib_name)
ld_file_name = os.path.basename(ld_file)
os.chmod(dest_path + "/" + ld_file_name, 0755)
Attachment:
pgpxwKdmfP91b.pgp
Description: PGP signature