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

Bug#172828: mklibs : problem on mips



Hi,

I'm writing to you as the authors of mklibs

I'm trying to debug a problem on mips / mipsel, using mklibs to reduce
the debian-installer. (See
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=172828 for details)

The bug manifests itself as a set of symbols, in libc.so.6 on mips, that
aren't resolved properly, causing the mklibs step to loop, failing to
resolve these symbols.

The symbols are:

Still need: _pthread_cleanup_pop_restore
Still need: __pthread_mutexattr_init
Still need: __pthread_mutexattr_destroy
Still need: __pthread_mutexattr_settype
Still need: __pthread_mutex_trylock
Still need: _pthread_cleanup_push_defer
Still need: __pthread_mutex_init 
Still need: __pthread_mutex_unlock
Still need: __pthread_mutex_lock

They are found in libc. Now, in i386, for example, they are of type:
eg. 
  NOTYPE  WEAK   DEFAULT  UND  _pthread_cleanup_pop_restore

But on MIPs, they are all:
mckinstry@repeat:/lib$ readelf -s -W libc.so.6 | grep  WEAK | grep UND |
grep FUNC
  2023: 00000000     0 FUNC    WEAK   DEFAULT  UND
_pthread_cleanup_push_defer
  2024: 000146f0     0 FUNC    WEAK   DEFAULT  UND
__pthread_mutexattr_init
  2053: 00000000     0 FUNC    WEAK   DEFAULT  UND
__pthread_mutex_trylock
  2059: 00000000     0 FUNC    WEAK   DEFAULT  UND
__pthread_mutex_unlock
  2085: 000146e0     0 FUNC    WEAK   DEFAULT  UND
_pthread_cleanup_pop_restore
  2101: 00000000     0 FUNC    WEAK   DEFAULT  UND __pthread_mutex_init
  2118: 000146d0     0 FUNC    WEAK   DEFAULT  UND
__pthread_mutexattr_settype
  2129: 00000000     0 FUNC    WEAK   DEFAULT  UND __pthread_mutex_lock
  2133: 000146c0     0 FUNC    WEAK   DEFAULT  UND
__pthread_mutexattr_destroy


I believe this means they are all weak objects, not "normally" marked as
such.  They will resolve to zero if not found elsewhere, but
undefined_symbols() in mklibs treats them simply as undefined.

Is my analysis correct? Can you provide a patch for mklibs ?
(I'm not confident enough either of my understanding or python to risk
doing it myself. )

This is needed to make the Debian installer build on MIPs and MIPSEL.

Thanks,
Alastair McKinstry



-- 
Alastair McKinstry <mckinstry@computer.org>
GPG Key fingerprint = 9E64 E714 8E08 81F9 F3DC  1020 FA8E 3790 9051 38F4

He that would make his own liberty secure must guard even his enemy from
oppression; for if he violates this duty he establishes a precedent that
will reach to himself.

- --Thomas Paine




Reply to: