libtool
[Top][All Lists]
Advanced

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

Re: Libtool 1.5 && 1.4.3


From: Michel LESPINASSE
Subject: Re: Libtool 1.5 && 1.4.3
Date: Wed, 9 Oct 2002 15:41:31 -0700
User-agent: Mutt/1.4i

On Wed, Oct 09, 2002 at 02:57:39PM -0500, Robert Boehne wrote:
> I intend to spin a release 1.4.3 this weekend from the branch-1-4
> sources.

There is a bug in libtool 1.4.2 when using -prefer-non-pic on hppa:
libtool does not pass the -fPIC flag, and then the linker complains
about that. Alexandre Oliva confirmed to me that this counts as a bug,
as -prefer-non-pic should be ignored (i.e. we should still pass the
-fPIC flag) if the target architecture requires -fPIC.

For an example of a build failing because of that bug, see
http://buildd.debian.org/fetch.php?&pkg=mpeg2dec&ver=0.2.1-2&arch=hppa&stamp=1031760849&file=log&as=raw

Alexandre's proposed fix was to try removing the 'hppa* | ' from the
line just before 'lt_cv_deplibs_check_method=pass_all ;;' ; I have not
been able to test this yet as I dont have easy access to an hppa system.

It is possible to work around this by making the configure script test
for libtool bugs like in the example below, however I guess you'll all
agree this is really ugly:

dnl AC_LIBTOOL_NON_PIC ([ACTION-IF-WORKS], [ACTION-IF-FAILS])
dnl check for nonbuggy libtool -prefer-non-pic
AC_DEFUN([AC_LIBTOOL_NON_PIC],
    [AC_MSG_CHECKING([if libtool supports -prefer-non-pic flag])
    mkdir ac_test_libtool; cd ac_test_libtool; ac_cv_libtool_non_pic=no
    echo "int g (int i); int f (int i) {return g(i);}" >f.c
    echo "int g (int i) {return i;}" >g.c
    ../libtool --mode=compile $CC $CFLAGS -prefer-non-pic \
                -c f.c >/dev/null 2>&1 && \
        ../libtool --mode=compile $CC $CFLAGS -prefer-non-pic \
                -c g.c >/dev/null 2>&1 && \
        ../libtool --mode=link $CC $CFLAGS -prefer-non-pic -o libfoo.la \
                f.lo g.lo >/dev/null 2>&1 && \
    ac_cv_libtool_non_pic=yes
    cd ..; rm -fr ac_test_libtool; AC_MSG_RESULT([$ac_cv_libtool_non_pic])
    if test x"$ac_cv_libtool_non_pic" = x"yes"; then
        ifelse([$1],[],[:],[$1])
    else
        ifelse([$2],[],[:],[$2])
    fi])

Hope this helps,

-- 
Michel "Walken" LESPINASSE
Is this the best that god can do ? Then I'm not impressed.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]