I have another patch now that allows mpfr to compile properly - time will tell as to whether disabling rpath will create any errors down the road, but I can't imagine that being the case, since it's basically just a compile-time override for LD_LIBRARY_PATH. As long as that is set properly by the environment, then any application should have no problems linking dynamically.

http://forums.gentoo.org/viewtopic-p-4775252.html#4775252

~/Chris

Christopher Friedt wrote:
Hi everyone,

I'm cross compiling using arm-softfloat-linux-gnu, with the usual procedure using a SYSROOT of /usr/arm-softfloat-linux-gnu and the xmerge script.

First of all, I should ask - has anyone found a fix for cross-compiling mpfr already? If so how? ... would something like ECONF_EXTRA="--with-gmp-lib=DIR" work?

The original problem is exactly related to Simon's here:

http://forums.gentoo.org/viewtopic-t-639572.html?sid=acbcac0d727bdaafa52ffc784641c0e7

Mpfr would originally not compile because it linked to /usr/lib/libgmp.so always, instead of the libgmp.so in the compiler's search path.

That was due to -rpath /usr/lib being present, so i created a very simple patch to remove the rpath (was that a bad idea?).

In any event, mpfr-2.3.0_p3.ebuild now looks like [1], while mpfr-2.3.0_p3-disable-rpath-patch looks like [2].

The patch applies perfectly and the compile is successful, but then during the install phase, the installer bails out with message [3].

There is no .libs/libmpfr.lai file at all, but there is of course a .libs/libmpfr.la file.

Why would the .la file suddenly be named .lai? Is it just a copy?

It seems like an easy enough patch to just copy from one directory to another in Makefile.in, but I thought I'd write the list first and see if anyone else has a more elegant solution.

~/Chris


=======================================[1]======================================
src_compile()
{
...
tc-is-cross-compiler && epatch "${FILESDIR}"/${PN}-${MY_PV}_p${PLEVEL}-disable-rpath.patch || die "disable rpath failed"
}

========================================[2]=====================================
--- Makefile.in_old     2008-01-25 02:59:01.000000000 +0100
+++ Makefile.in 2008-01-25 02:59:21.000000000 +0100
@@ -394,7 +394,7 @@
          rm -f "$${dir}/so_locations"; \
        done
 libmpfr.la: $(libmpfr_la_OBJECTS) $(libmpfr_la_DEPENDENCIES)
- $(LINK) -rpath $(libdir) $(libmpfr_la_LDFLAGS) $(libmpfr_la_OBJECTS) $(libmpfr_la_LIBADD) $(LIBS) + $(LINK) $(libmpfr_la_LDFLAGS) $(libmpfr_la_OBJECTS) $(libmpfr_la_LIBADD) $(LIBS)
 tuneup$(EXEEXT): $(tuneup_OBJECTS) $(tuneup_DEPENDENCIES)
        @rm -f tuneup$(EXEEXT)
        $(LINK) $(tuneup_LDFLAGS) $(tuneup_OBJECTS) $(tuneup_LDADD) $(LIBS)


=================================[3]================================
 >>> Source compiled.
 >>> Test phase [not enabled]: dev-libs/mpfr-2.3.0_p3

>>> Install mpfr-2.3.0_p3 into /var/tmp/portage/dev-libs/mpfr-2.3.0_p3/image/ category dev-libs
.......
/usr/bin/install -c .libs/libmpfr.lai /var/tmp/portage/dev-libs/mpfr-2.3.0_p3/image//usr/lib/libmpfr.la /usr/bin/install: cannot stat `.libs/libmpfr.lai': No such file or directory
make[2]: *** [install-libLTLIBRARIES] Error 1


--
[email protected] mailing list

Reply via email to