Open MPI logo

Hardware Locality Development Mailing List Archives

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

Subject: Re: [hwloc-devel] hwloc-1.4 build failure w/ Solaris Studio compilers
From: Brice Goglin (Brice.Goglin_at_[hidden])
Date: 2012-02-01 07:47:25


Thanks, this should be fixed in trunk >= r4230, I'll backport in other
branches soon. We didn't need add -lm for fabs() because gcc uses an
intrinsics, and libxml2 depends on libm, quite lucky.
Brice

Le 01/02/2012 03:48, Paul H. Hargrove a écrit :
> The problem I described below is ALSO present in hwloc-1.4
> -Paul
>
> On 1/31/2012 4:48 PM, Paul H. Hargrove wrote:
>> When Jeff Squyres indicated that ompi-1.5.5 will use hwloc-1.3.x, I
>> started putting hwloc-1.3.1 through my testing gauntlet.
>> I am sorry I didn't find this in the 1.3.1rc2, but when it came out
>> Dec 15 I wasn't setup as well for testing as I am now.
>>
>> What I have found is that with the Solaris Studio 12.2 and 12.3
>> compilers I see link failures in util/ from "make all".
>> This has been seen on both Solaris/x86-64 and Linux/x86-64, but
>> Solaris/SPARC seems to be OK.
>>
>> Here is what I see with "make V=1" on Solaris:
>>> /bin/sh ../libtool --tag=CC --mode=link cc -m32
>>> -I/home/phargrov/OMPI/hwloc-1.3.1-solaris11-x86-ib-ss12u2/hwloc-1.3.1/include
>>> -L/home/phargrov/OMPI/hwloc-1.3.1-solaris11-x86-ib-ss12u2/BLD/src
>>> -o hwloc-calc hwloc-calc.o
>>> /home/phargrov/OMPI/hwloc-1.3.1-solaris11-x86-ib-ss12u2/BLD/src/libhwloc.la
>>> -lkstat -llgrp
>>> libtool: link: cc -m32
>>> -I/home/phargrov/OMPI/hwloc-1.3.1-solaris11-x86-ib-ss12u2/hwloc-1.3.1/include
>>> -o .libs/hwloc-calc hwloc-calc.o
>>> -L/home/phargrov/OMPI/hwloc-1.3.1-solaris11-x86-ib-ss12u2/BLD/src
>>> /home/phargrov/OMPI/hwloc-1.3.1-solaris11-x86-ib-ss12u2/BLD/src/.libs/libhwloc.so
>>> -lkstat -llgrp
>>> -R/home/phargrov/OMPI/hwloc-1.3.1-solaris11-x86-ib-ss12u2/INST/lib
>>> Undefined first referenced
>>> symbol in file
>>> fabsf
>>> /home/phargrov/OMPI/hwloc-1.3.1-solaris11-x86-ib-ss12u2/BLD/src/.libs/libhwloc.so
>>> ld: fatal: symbol referencing errors. No output written to
>>> .libs/hwloc-calc
>>
>> Here is Linux:
>>> /bin/bash ../libtool --tag=CC --mode=link cc
>>> -I/home/phargrov/OMPI/hwloc-1.3.1-linux-x86_64-ss12u3/hwloc-1.3.1/include
>>> -L/home/phargrov/OMPI/hwloc-1.3.1-linux-x86_64-ss12u3/BLD/src -o
>>> hwloc-calc hwloc-calc.o
>>> /home/phargrov/OMPI/hwloc-1.3.1-linux-x86_64-ss12u3/BLD/src/libhwloc.la
>>> libtool: link: cc
>>> -I/home/phargrov/OMPI/hwloc-1.3.1-linux-x86_64-ss12u3/hwloc-1.3.1/include
>>> -o .libs/hwloc-calc hwloc-calc.o
>>> -L/home/phargrov/OMPI/hwloc-1.3.1-linux-x86_64-ss12u3/BLD/src
>>> /home/phargrov/OMPI/hwloc-1.3.1-linux-x86_64-ss12u3/BLD/src/.libs/libhwloc.so
>>> -lpci -Wl,-rpath
>>> -Wl,/home/phargrov/OMPI/hwloc-1.3.1-linux-x86_64-ss12u3/INST/lib
>>> /home/phargrov/OMPI/hwloc-1.3.1-linux-x86_64-ss12u3/BLD/src/.libs/libhwloc.so:
>>> undefined reference to `fabsf'
>>> collect2: ld returned 1 exit status
>>
>> The problem in both cases appears to be that libhwloc.so needs libm
>> for fabsf(), but the library dependency is not resolved.
>> Though the Solaris build above was configured w/ CFLAGS=-m32, setting
>> CFLAGS=-m64 fails in the same way.
>>
>> I *can* build hwloc-1.3.1 w/ gcc on the hosts where the SS12.x
>> compilers fail.
>>
>> -Paul
>>
>