FYI, the components branch seems (almost) in good shape. OS support status: * Linux OK * Solaris OK * AIX: configure aborts if you --enable-plugins because libltdl is known to be broken. One guy is working at fixing libltdl. We may reenable this later. * Windows fails to link because hwloc symbols disappear when linking with libltdl. The reason is that ltdl symbols are marked with LT_SCOPE:
/* DLL building support on win32 hosts; mostly to workaround their ridiculous implementation of data symbol exporting. */ #if !defined(LT_SCOPE) # if defined(__WINDOWS__) || defined(__CYGWIN__) # if defined(DLL_EXPORT) /* defined by libtool (if required) */ # define LT_SCOPE extern __declspec(dllexport) # endif # if defined(LIBLTDL_DLL_IMPORT) /* define if linking with this dll */ /* note: cygwin/mingw compilers can rely instead on auto-import */ # define LT_SCOPE extern __declspec(dllimport) # endif # endif # if !defined(LT_SCOPE) /* static linking or !__WINDOWS__ */ # define LT_SCOPE extern # endif #endif Changing HWLOC_DECLSPEC into "extern __declspec(dllexport)" solves the problem. Visibility is currently totally disabled on mingw/cygwin in hwloc, so it looks like we could add a cygwin/mingw case that use dllexport. We didn't need dllexport until now because we generate a ".def" file. I hope having both won't break things. I am far from having a patch yet, I hope we're not going to break unrelated things. The "dllimport" thing above looks like an optimization from what I read in google, so we may ignore this. We'll see. I haven't tested on Win64 (don't have such a machine). Plugins are disabled by default, so all the above is not too bad anyway. I am thinking of adding a fake plugin that does nothing. This will guarantee that we'd always have at least one plugin to build/load for testing (you need libxml2 or libpci if you want at least one plugin to be built). I need to find a good way to add this to make check. Brice