libtool-patches
[Top][All Lists]
Advanced

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

Re: HEAD: Kill two showstoppers at once


From: Gary V. Vaughan
Subject: Re: HEAD: Kill two showstoppers at once
Date: Tue, 30 Aug 2005 18:37:15 +0100


On 30 Aug 2005, at 17:51, Ralf Wildenhues wrote:
Hi Gary,

Hawdy!

* Gary V. Vaughan wrote on Tue, Aug 30, 2005 at 06:31:42PM CEST:
Ralf Wildenhues wrote:
Just a slight cleanup of your suggestion.  Changes: change
m4_fatal to m4_warn, because we want to be forward compatible,

Agreed.

I also had to add a few newlines, else we'd end up with

| # Set options
| enable_dlopen=yesenable_win32_dll=yes

see updated patch at end.

Oops.  Thanks!

But there is another problem with respect to macro ordering: The
settings set by the LT_INIT options appear too late in the configure
script.  If I set AC_LIBTOOL_DLOPEN, everything is OK; but if I use
LT_INIT([dlopen]), it appears after a macro which might override
enable_dlopen.


Which macro is that?

LT_SYS_DLOPEN_SELF, but basically all the hundreds of require'ments of
_LT_SETUP are expanded before LT_INIT as well..

Ah, okay. We just need to move the _LT_SET_OPTIONS up the expansion stack. If it didn't take arguments we could just AC_REQUIRE a wrapper, but it does
so we're stuck with tweaking the call in LT_INIT to:

  _LT_SHELL_INIT([_LT_SET_OPTIONS([$1])])

Should do the trick (untested!).

The fix belongs there I think.

Are you sure?

Absolutely! ;-)

The _LT_SETUP macro is instantiated after _LT_SET_OPTIONS in LT_INIT,
but all its requirements are expanded before LT_INIT; see
http://lists.gnu.org/archive/html/autoconf/2005-08/msg00100.html
for a nice explanation about AC_REQUIRE.  :)

(I wouldn't have guessed I could tell the M4 maintainer something
about macro expansion.. ;-)

Have you seen the implementation of m4_require?  I'm thinking of doing
a C version for m4-2.0... the autoconf version is way hairy! ;-)

Does moving _LT_SET_OPTIONS([$1])dnl up to being the first line of
LT_INIT work?

No, why should it?

It shouldn't. Just checking that I wasn't missing something in the provide
chain.

Is this bug description comprehensible? (I guess a couple of m4_require and/or AC_REQUIRE are needed, I'm sure you'll know the correct answer
right away.)

Maybe. Or perhaps LT_INIT needs splitting, or _LT_SET_OPTIONS running
in a diversion... If you tell me the macro that is getting emitted
before the _LT_SET_OPTIONS expansion I should be able to figure it out.

Have fun.  :)

With m4?  How could it be otherwise? :-b

2005-08-30  Gary V. Vaughan <address@hidden>,
            Ralf Wildenhues <address@hidden>

        * libltdl/m4/ltoptions.m4 (_LT_SET_OPTIONS): Move option macro
        dipatch..
        (_LT_SET_OPTION): here.  Do not fail but warn on unknown
        options.
        (_LT_UNLESS_OPTIONS(win32-dll), LT_OPTION_DEFINE(dlopen)):
        Add whitespace.
        Reported by Robert Ă–gren <address@hidden> and
        Akim Demaille <address@hidden>.

Cheers,
    Gary.
--
Gary V. Vaughan ())_. gary@ {lilith.warpmail.net,gnu.org},address@hidden
Research Scientist   ( '/   http://www.tkd.kicks-ass.net
GNU Hacker           / )=   http://www.gnu.org/software/{libtool,m4}
Technical Author   `(_~)_   http://sources.redhat.com/autobook



Attachment: PGP.sig
Description: This is a digitally signed message part


reply via email to

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