This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Plugin support for FreeBSD and OS X


One more small thing, currently if it finds dl it adds -ldl to
$pluginlibs in addition to $LIBS, is it possible to do that with the
AC_SEARCH_LIBS macro as well?

Indy

On Mon, Oct 5, 2009 at 5:28 PM, Ian Lance Taylor <iant@google.com> wrote:
> "Nicholas \"Indy\" Ray" <arelius@gmail.com> writes:
>
>> That would probably work, but then the configure script won't test for
>> dlopen functionality, which is required. maybee I should put an
>> additional AC_TRY_LINK in the test failure? is there a better way to
>> do that then just a wholesale duplication of the macro?
>
> AC_SEARCH_LIBS(dlopen, -ldl, found_dlopen=yes, found_dlopen=no)
>
> This will add -ldl to $LIBS if necessary (i.e., don't reset LIBS) and
> set found_dlopen to indicate whether it was found or not.
>
> Ian
>
>> On Mon, Oct 5, 2009 at 4:22 PM, Ian Lance Taylor <iant@google.com> wrote:
>>> "Nicholas \"Indy\" Ray" <arelius@gmail.com> writes:
>>>
>>>> So are you suggesting that the entire block:
>>>>
>>>> ? LIBS="$LIBS -ldl"
>>>> ? AC_MSG_CHECKING([for -ldl])
>>>> ? AC_TRY_LINK(
>>>> ? ? [#include <dlfcn.h>],
>>>> ? ? [volatile int f = 0; if (f) dlopen ("dummy", 0);],
>>>> ? ? [AC_MSG_RESULT([yes]); have_dl=yes],
>>>> ? ? [AC_MSG_RESULT([no])])
>>>> ? if test x"$have_dl" = x"yes"; then
>>>> ? ? pluginlibs="$pluginlibs -ldl"
>>>> ? fi
>>>>
>>>> should be replaced with something based on AC_CHECK_LIB? I'll give that a test!
>>>
>>> I hadn't looked at that code. ?That all looks fine to me, although
>>> AC_CHECK_LIB would be simpler.
>>>
>>> Are you saying that that does not work on FreeBSD? ?How does it fail?
>>>
>>> Wait, I think I see the problem: the code sets LIBS to include -ldl,
>>> but fails to reset it if the test fails. ?Probably all it needs is two
>>> new lines:
>>>
>>> ? if test x"$have_dl" = x"yes"; then
>>> ? ? pluginlibs="$pluginlibs -ldl"
>>> + ?else
>>> + ? ?LIBS="$saved_LIBS"
>>> ? fi
>>>
>>> Ian
>>>
>>>
>>>> On Mon, Oct 5, 2009 at 3:38 PM, Ian Lance Taylor <iant@google.com> wrote:
>>>>> "Nicholas \"Indy\" Ray" <arelius@gmail.com> writes:
>>>>>
>>>>>> The problem is that on FreeBSD -ldl is not available or required, the
>>>>>> functionality is provided by libc
>>>>>
>>>>> I think understand that. ?What I am saying is that the configure
>>>>> script should test for that property--the fact that -ldl is not
>>>>> available or required--rather than test the type of host for which gcc
>>>>> is being configured.
>>>>>
>>>>> Ian
>>>>>
>>>>>
>>>>>> Nicholas "Indy" Ray
>>>>>>
>>>>>> On Mon, Oct 5, 2009 at 3:05 PM, Ian Lance Taylor <iant@google.com> wrote:
>>>>>>> "Nicholas \"Indy\" Ray" <arelius@gmail.com> writes:
>>>>>>>
>>>>>>>> Indeed, I've sent in a small patch for a warning I got on FreeBSD,
>>>>>>>> however I'm not sure how to get autoconf to check the host system,
>>>>>>>> I'll examine other locations in the code and see if I can't cobble a
>>>>>>>> patch together.
>>>>>>>
>>>>>>> When possible, a configure script should test for features, not
>>>>>>> operating systems. ?So, for example, the goal would be not to check
>>>>>>> for FreeBSD, but rather to check for the availability of -ldl, which
>>>>>>> is typically done using AC_CHECK_LIB.
>>>>>>>
>>>>>>> Ian
>>>>>>>
>>>>>
>>>
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]