Looks good on different distribs and versions of libltdl so I think I'll commit that tomorrow unless somebody complains.
Brice Debian 6.0.6 ltdl = 2.2.6b-2 Debian 7.0 2.4.2-1.2 Ubuntu 8.04 1.5.26-1ubuntu1 Ubuntu 12.04 2.4.2-1ubuntu1 Centos 5.9 1.5.22-7.el5_4 Centos 6.3 2.2.6-15.5.el6 Fedora 17 2.4.2-3.1.fc17 OpenBSD 5.2 2.4.2 FreeBSD 9.1 2.4.2 NetBSD 6.0.1 2.2.6b Le 14/05/2013 14:32, Brice Goglin a écrit : > 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.thiba...@inria.fr> >>> 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.gog...@inria.fr> 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-de...@open-mpi.org >>>> > http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel >>> -- Jeff Squyres jsquy...@cisco.com 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-de...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel >> >> >> >> _______________________________________________ >> hwloc-devel mailing list >> hwloc-de...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel > > > > _______________________________________________ > hwloc-devel mailing list > hwloc-de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel