[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#225823: mklibs 0.1.13 fails on ia64



Package: mklibs
Version: 0.1.13
tags: d-i

Trying to build debian-installer-20031230:

...
...
Object: ./tmp/cdrom/tree/lib/libm.so.6.1-so-stripped
Object: ./tmp/cdrom/tree/lib/libdebconfclient.so.0-so-stripped
Object: ./tmp/cdrom/tree/lib/libslang.so.1-UTF8-so-stripped
Object: ./tmp/cdrom/tree/lib/ld-linux-ia64.so.2-so-stripped
557 symbols, 20 unresolved
Moving libresolv.so.2 to libresolv.so.2.
Unlinking libnss_dns.so.2.
Moving libtextwrap.so.1 to libtextwrap.so.1.
Moving libdebian-installer.so.4 to libdebian-installer.so.4.
Moving libresolv-2.3.2.so to libresolv.so.2.
Moving libnss_dns-2.3.2.so to libnss_dns.so.2.
Moving libdiscover.so.1 to libdiscover.so.1.
Moving libc.so.6.1 to libc.so.6.1.
Unlinking libdiscover.so.
Moving ld-linux-ia64.so.2 to ld-linux-ia64.so.2.
Moving libnewt.so.0.51 to libnewt.so.0.51.
Moving libdl.so.2 to libdl.so.2.
Moving libm.so.6.1 to libm.so.6.1.
Moving libdebconfclient.so.0 to libdebconfclient.so.0.
Moving libdiscover.so.1.0.0 to libdiscover.so.1.
Command failed with status 1 : objcopy --strip-unneeded -R .note -R .comment  ./tmp/cdrom/tree/lib/
With output: objcopy: ./tmp/cdrom/tree/lib/: File format not recognized
make[2]: *** [cdrom-tree-stamp] Error 1
make[2]: Leaving directory `/root/debian-installer-20031230'
make[1]: *** [all_images] Error 2
make[1]: Leaving directory `/root/debian-installer-20031230'
make: *** [build-stamp] Error 2
chilly:~/debian-installer-20031230# 



Looking at the end of mklibs.py:

   # Canonicalize library names.
   for lib in regexpfilter(os.listdir(dest_path), "(.*so[.\d]*)$").elems():
       lib_path = dest_path + "/" + lib
       if os.path.islink(lib_path):
           debug(DEBUG_VERBOSE, "Unlinking %s." % lib)
           os.remove(lib_path)
           continue
       soname = extract_soname(lib_path)
       if soname:
           debug(DEBUG_VERBOSE, "Moving %s to %s." % (lib, soname))
           os.rename(dest_path + "/" + lib, dest_path + "/" + soname)
   
   # Make sure the dynamic linker is present and is executable
   ld_file = find_lib(ldlib)
   ld_file_name = os.path.basename(ld_file)
   
   if not os.access(dest_path + "/" + lib, os.F_OK):
       command(target + "objcopy", "--strip-unneeded -R .note -R .comment",
               ld_file, dest_path + "/" + ld_file_name)
   
   os.chmod(dest_path + "/" + ld_file_name, 0755)


That for-loop corrupts global lib_path, which makes find_lib() fail.

That "if not os.access(..." line is testing for 'lib' which never exists
as it just moved it.   I believe it should be using ldlib:

-  if not os.access(dest_path + "/" + lib, os.F_OK):
+  if not os.access(dest_path + "/" + ldlib, os.F_OK):


Richard




Reply to: