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

Bug#562906: mklibs: fails on libc on hurd-i386



Package: mklibs
Version: 0.1.29
Severity: important
Tags: patch

Hello,

On hurd-i386, when applying mklibs on libc, link fails with

/usr/lib//libc_pic.a(dtable.os): In function `init_dtable':
(.text+0x192): undefined reference to `__start__hurd_fd_subinit'

This is due to the DEFINE_HOOK() mecanism that uses symbols which only
eventually get defined in the shlib.lds script. Linux & kfreebsd are
lucky that d-i seemingly never uses atexit and thus doesn't need it, but
hurd-i386 does.

I guess the simple solution would be to have libc*-pic provide
/usr/lib/libc-pic/shlib.lds and mklibs just use it as the attached patch
suggests (at least it seems to work on hurd-i386).

Samuel

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages mklibs depends on:
ii  binutils                      2.20-4     The GNU assembler, linker and bina
ii  gcc                           4:4.3.4-1  The GNU C compiler
ii  mklibs-copy                   0.1.29     Shared library reduction script
ii  python                        2.5.4-4    An interactive high-level object-o

Versions of packages mklibs recommends:
ii  libc6-pic                     2.10.2-2   GNU C Library: PIC archive library

mklibs suggests no packages.

-- no debconf information

-- 
Samuel Thibault <samuel.thibault@fnac.net>
"...[Linux's] capacity to talk via any medium except smoke signals."
(By Dr. Greg Wettstein, Roger Maris Cancer Center)
--- src/mklibs.py.original	2009-12-29 01:25:09.000000000 +0000
+++ src/mklibs.py	2009-12-29 01:45:21.000000000 +0000
@@ -596,6 +596,7 @@
             cmd.extend(["-o", dest_path + "/" + so_file_name + "-so"])
             cmd.extend(extra_pre_obj)
             cmd.append(pic_file)
+            cmd.extend(["-T", "/usr/lib/libc_pic/shlib.lds"])
             cmd.extend(extra_post_obj)
             cmd.extend(extra_flags)
             cmd.append("-lgcc")

Reply to: