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
* 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(__WINDOWS__) || defined(__CYGWIN__)
# if defined(DLL_EXPORT) /* defined by libtool (if required) */
# define LT_SCOPE extern __declspec(dllexport)
# 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)
# if !defined(LT_SCOPE) /* static linking or !__WINDOWS__ */
# define LT_SCOPE extern
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.