Open MPI logo

Hardware Locality Users' Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Hardware Locality Users mailing list

Subject: Re: [hwloc-users] Compiling hwloc into a static library on Windows and Linux
From: Andrew Helwer (Andrew.Helwer_at_[hidden])
Date: 2012-01-11 20:12:25


> To be clear: I think you're misunderstanding what --enable-embedded-
> mode is for. Per Samuel's comment, I think you want --enable-static
> (and possibly --disable-shared).

Ah yes, I was misunderstanding the purpose of --enable-embedded-mode. I understand now, and also use the --enable-static and --disable-shared flags. I have been able to successfully compile into only a static library with headers on Linux, but Windows is still giving me some trouble.

I've installed MinGW and Cygwin, and specified HWLOC_MS_LIB as the path to the VS lib tool when running configure. Make works just fine (although the include directory isn't set properly, but that's easy to work around) until the Windows library linking stage:

C:\hwloc-1.3.1>make
Making all in src
make[1]: Entering directory `/cygdrive/c/hwloc-1.3.1/src'
  CC topology.lo
  CC traversal.lo
  CC distances.lo
  CC topology-synthetic.lo
  CC topology-xml.lo
  CC bind.lo
  CC cpuset.lo
  CC misc.lo
  CC topology-windows.lo
topology-windows.c: In function 'hwloc_win_get_VirtualAllocExNumaProc':
topology-windows.c:323:30: warning: assignment from incompatible pointer type [e
nabled by default]
topology-windows.c:328:28: warning: assignment from incompatible pointer type [e
nabled by default]
topology-windows.c: In function 'hwloc_look_windows':
topology-windows.c:469:36: warning: assignment from incompatible pointer type [e
nabled by default]
topology-windows.c:470:38: warning: assignment from incompatible pointer type [e
nabled by default]
  CCLD libhwloc_embedded.la
copying selected object files to avoid basename conflicts...
  CCLD libhwloc.la
libtool: link: warning: `-version-info/-version-number' is ignored for convenien
ce libraries
copying selected object files to avoid basename conflicts...
gcc -I/cygdrive/c/hwloc-1.3.1/include -I/cygdrive/c/hwloc-1.3.1/include -I/cygdr
ive/c/hwloc-1.3.1/include dolib.c -o dolib
./dolib "/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/lib
" X86 .libs/libhwloc.def libhwloc- .libs/libhwloc.lib
The system cannot find the path specified.
"/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/lib" /machi
ne:X86 /def:.libs/libhwloc.def /name:libhwloc- /out:.libs/libhwloc.lib failed
Makefile:758: recipe for target `.libs/libhwloc.lib' failed
make[1]: *** [.libs/libhwloc.lib] Error 1
make[1]: Leaving directory `/cygdrive/c/hwloc-1.3.1/src'
Makefile:450: recipe for target `all-recursive' failed
make: *** [all-recursive] Error 1

If I run the command manually, it can't find the libhwloc.def file. Which is reasonable, as it does not appear to exist in the .lib directory. Am I missing something?

Thanks,

Andrew Helwer
Software Developer  - Intern
Acceleware Ltd. (TSX-V:AXE)
www.acceleware.com

Phone: +1.403.249.9099  ext. 348
Fax: +1.403.249.9881
Email: andrew.helwer_at_[hidden]

Get superpowered!
Acceleware gets your products to market faster, better and stronger!                        

This e-mail may contain information that is privileged and confidential and subject to legal restrictions and penalties regarding its unauthorized disclosure or use. You are prohibited from copying, distributing or otherwise using this information if you are not the intended recipient. If you have received this e-mail in error, please notify us immediately by return e-mail and delete this e-mail and its attachments from your system. Thank you.
© 2012 Acceleware Ltd., All Rights Reserved