MIPS32 Dynamic Linker Characteristics ...no

Mr. Miyagi waxinwaxout at hotmail.com
Fri May 11 08:47:04 PDT 2007




>From: Mike Frysinger <vapier at gentoo.org>
>To: uclibc at uclibc.org
>CC: "Mr. Miyagi" <waxinwaxout at hotmail.com>
>Subject: Re: MIPS32 Dynamic Linker Characteristics ...no
>Date: Thu, 10 May 2007 19:49:44 -0400
>
>On Wednesday 09 May 2007, Mr. Miyagi wrote:
> > I can't get dynamic shared object loading for C++ sources. Apparently, 
>the
> > linker is not even capable of creating shared libraries for C++ while 
>it's
> > reported being capable of producing shared libraries for C.
>
>incorrect ... you've hit some issues with libtool not recognizing your 
>tuple
>properly, nothing more ... uClibc is fully capable of doing C and C++ code
>(not that it should even really matter ... that's mostly gcc's realm)


Ok, thanks for pointing this out. This helped me find the problem/solution 
(below).


>
> > The build of the toolchain produced libstdc++ (6.0.3) which is reported 
>to
> > be an ELF 32bit LSB shared object, MIPS, version 1 (SYSV).
> >
> > 'configure' (on my own sources) reports (below) shared libraries are
> > possible when using ...gcc as the linker, but not when using ...g++ as 
>the
> > linker, although the same linker is apparently used in both instances.
>
>this is probably partly libtool's fault and partly file's fault and partly
>other random autotool stuff
>
>your best bet is to update to the very latest package
>of "file", "libtool", "automake", and "autoconf" and then regenerate all 
>the
>autotool files in the package you're trying to compile


That's a money-making bet.

I'm using libtool 1.5.22, autoconf 2.59. I have a src dir (top_srcdir) and 
then separte build dirs per target. I actually regenerate most of the 
autotools files in the top_srcdir from my own script which takes global 
parameters/directives to generate the autotool files.

The problem is that after running configure, a libtool script is installed 
in $top_builddir (apparently) coming from the host (x86_32). This works fine 
when targetting the host architecture (produces shared libraries and 
dynamically loadable modules) but this script prevents shared libraries from 
being built when targetting MIPS. (After a whole lot of investigating) I 
found the libtool script from the (OpenWRT) SDK (in it's 'bin' directory), 
copied that to the top_builddir pertaining to a MIPS build (after running 
$top_srcdir/configure) and voila, shared libraries, dynamically shared 
modules and sliced bread.

That was a great tip, thanks for this.

Miyagi

_________________________________________________________________
Now you can see trouble…before he arrives 
http://newlivehotmail.com/?ocid=TXT_TAGHM_migration_HM_viral_protection_0507



More information about the uClibc mailing list