Open MPI logo

Hardware Locality Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: Re: [hwloc-devel] stop embedding libltdl
From: Brice Goglin (Brice.Goglin_at_[hidden])
Date: 2013-05-14 08:32:01


Here's a patch that seems to work. I stole the code that libtool.m4 uses
to find ltdl dependencies, put it inside a new HWLOC_CHECK_LTDL_DEPS
that stores these dependencies in HWLOC_LIBS_PRIVATE. It properly adds
-ldl on Linux and nothing on FreeBSD.

The rest of the patch is similar to Jeff's, with things moved inside
HWLOC_SETUP_CORE.

Brice

Le 14/05/2013 10:27, Brice Goglin a écrit :
> I am reviving this thread since I interrupted it to discuss "enabling
> plugins vs embedding hwloc" (1) but we didn't close the discussion
> about "not embedding libltdl anymore" (2).
>
> We committed a fix for (1) that (sometimes) generates tarballs without
> src/libltdl directory. It doesn't always happen, I don't understand
> why, but it certainly makes those tarballs unusable (configure
> complains that a Makefile.in is missing). My original patch for (1)
> fixed the problem, but (2) is a better way to avoid any such issue.
>
> The patch below does pretty much what we need, except putting the
> right ltdl static libs in hwloc.pc
>
> I am going to look at this before releasing v1.7.1
>
> Brice
>
>
>
>
> Le 08/05/2013 02:47, Jeff Squyres (jsquyres) a écrit :
>> How's this patch?
>>
>> The only question I have is: how do we figure out what libraries to put in the .pc file in the --disable-shared --enable-static case?
>>
>>
>> On May 7, 2013, at 8:24 PM, Samuel Thibault <samuel.thibault_at_[hidden]> wrote:
>>
>>> > Jeff Squyres (jsquyres), le Wed 08 May 2013 02:21:02 +0200, a écrit :
>>>> >> On May 7, 2013, at 6:25 PM, Brice Goglin <Brice.Goglin_at_[hidden]> wrote:
>>>> >>
>>>>> >>> I don't have anything against this. What was the reason for not using
>>>>> >>> the default/system libltdl in OMPI? libtool was buggy when you started
>>>>> >>> using it?
>>>> >>
>>>> >>
>>>> >> I neglected to answer this.
>>>> >>
>>>> >> Yes, plus libltdl grew new functionality that we needed (global/local symbol visibility).
>>>> >>
>>>> >> We might be getting to the point soon where we can rely on the installed libltdl to be new enough everywhere, but we haven't had that conversation.
>>> >
>>> > We could already check that the installed version is new enough for our
>>> > needs.
>>> >
>>> > Samuel
>>> > _______________________________________________
>>> > hwloc-devel mailing list
>>> > hwloc-devel_at_[hidden]
>>> > http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel
>> -- Jeff Squyres jsquyres_at_[hidden] For corporate legal information go
>> to: http://www.cisco.com/web/about/doing_business/legal/cri/
>>
>> no-embed-libltdl.diff
>>
>>
>> Index: configure.ac
>> ===================================================================
>> --- configure.ac (revision 5606)
>> +++ configure.ac (working copy)
>> @@ -168,30 +168,25 @@
>> AM_DISABLE_STATIC
>> AM_PROG_LIBTOOL([dlopen win32-dll])
>> LT_LANG([C])
>> -LT_CONFIG_LTDL_DIR([src/libltdl])
>> -LTDL_INIT([recursive convenience])
>> -AC_CONFIG_FILES([src/libltdl/Makefile])
>>
>> -# Workarounds for libtool LT_CONFIG_H bug
>> -#CPPFLAGS="$CPPFLAGS -I$HWLOC_top_builddir"
>> -AC_CONFIG_COMMANDS_PRE([LT_CONFIG_H=`expr "$LT_CONFIG_H" : '.*/\(.*\)'`])
>> +# If we want plugins, look for ltdl.h and libltdl
>> +LIBLTDL=
>> +AS_IF([test "$enable_plugins" = "yes"],
>> + [AC_CHECK_HEADER([ltdl.h], [],
>> + [AC_MSG_WARN([Plugin support requested, but could not find ltdl.h])
>> + AC_MSG_ERROR([Cannot continue])])
>> + AC_CHECK_LIB([ltdl], [lt_dlopenext], [],
>> + [AC_MSG_WARN([Plugin support requested, but could not find libltdl])
>> + AC_MSG_ERROR([Cannot continue])])
>> + ])
>> +AC_SUBST(LIBLTDL)
>>
>> # Add libltdl static-build dependencies to hwloc.pc
>> if test "x$hwloc_have_plugins" = xyes; then
>> - if test "x$with_included_ltdl" = xno; then
>> - HWLOC_LIBS_PRIVATE="$HWLOC_LIBS_PRIVATE $LIBLTDL"
>> - fi
>> + # JMS What to put here for static builds?
>> HWLOC_LIBS_PRIVATE="$HWLOC_LIBS_PRIVATE $lt_cv_dlopen_libs"
>> fi
>>
>> -# Is ltdl included?
>> -HWLOC_LTDL_SUBDIR=
>> -AS_IF([test "x$with_included_ltdl" = xyes],
>> - [HWLOC_LIBLTDL_SUBDIR=libltdl])
>> -AC_SUBST(HWLOC_LIBLTDL_SUBDIR)
>> -dnl AM_CONDITIONAL([HWLOC_LTDL_INCLUDED], [test "x$with_included_ltdl" = xyes])
>> -
>> -
>> # Party on
>> AC_OUTPUT
>>
>> Index: src
>> ===================================================================
>> --- src (revision 5606)
>> +++ src (working copy)
>>
>> Property changes on: src
>> ___________________________________________________________________
>> Modified: svn:ignore
>> ## -1,5 +1,4 ##
>> .deps
>> Makefile.in
>> Makefile
>> -libltdl
>> static-components.h
>> Index: src/Makefile.am
>> ===================================================================
>> --- src/Makefile.am (revision 5606)
>> +++ src/Makefile.am (working copy)
>> @@ -207,8 +207,6 @@
>> AM_CPPFLAGS += $(LTDLINCL)
>> libhwloc_la_LDFLAGS += -export-dynamic
>> libhwloc_la_LIBADD = $(LIBLTDL)
>> -libhwloc_la_DEPENDENCIES = $(LTDLDEPS)
>> -SUBDIRS = $(HWLOC_LIBLTDL_SUBDIR)
>> endif
>>
>> # Embedded library (note the lack of a .so version number -- that
>>
>>
>> _______________________________________________
>> hwloc-devel mailing list
>> hwloc-devel_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel
>
>
>
> _______________________________________________
> hwloc-devel mailing list
> hwloc-devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel