Open MPI logo

Hardware Locality Development Mailing List Archives

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

Subject: Re: [hwloc-devel] libhwloc.so: undefined reference to `hwloc_hwloc_strncasecmp
From: Brice Goglin (Brice.Goglin_at_[hidden])
Date: 2009-10-01 18:33:43


Applied, thanks a lot Tony!

Brice

Tony Breeds wrote:
> Hello all,
> I wanted to have a look at but hit a small snag the final link ended with:
> libtool: link: gcc -std=gnu99 -g -O2 -o .libs/lstopo lstopo-lstopo.o lstopo-lstopo-color.o lstopo-lstopo-text.o lstopo-lstopo-draw.o lstopo-lstopo-fig.o lstopo-lstopo-cairo.o lstopo-lstopo-xml.o -L/home/OpenHPC/hwloc/src/hwloc/trunk/src -lm ../src/.libs/libhwloc.so -Wl,-rpath -Wl,/home/OpenHPC/hwloc/build/lib
> ../src/.libs/libhwloc.so: undefined reference to `hwloc_hwloc_strncasecmp'
> collect2: ld returned 1 exit status
>
>
> I'm using a fresh svn checkout, svn info shows:
> ---
> Path: .
> URL: http://svn.open-mpi.org/svn/hwloc
> Repository Root: http://svn.open-mpi.org/svn/hwloc
> Repository UUID: 4b44e086-7f34-40ce-a3bd-00e031736276
> Revision: 1090
> Node Kind: directory
> Schedule: normal
> Last Changed Author: sthibaul
> Last Changed Rev: 1090
> Last Changed Date: 2009-10-02 04:32:28 +1000 (Fri, 02 Oct 2009)
> ---
>
> and after runnign autogen.sh I build with:
> ./configure --prefix /home/OpenHPC/hwloc/build ; make ; make install
>
> I suspect that somehow there is one to many "hwloc_" prefixes on that function call?
>
> A svn an and svn log thinks that this revision is the cause:
>
> [tony_at_thor trunk]$ svn log -r 1090 -v
> ------------------------------------------------------------------------
> r1090 | sthibaul | 2009-10-02 04:32:28 +1000 (Fri, 02 Oct 2009) | 1 line
> Changed paths:
> M /trunk/README
> M /trunk/configure.ac
> M /trunk/doc/Makefile.am
> M /trunk/include/hwloc/cpuset-bits.h
> M /trunk/include/hwloc/cpuset.h
> M /trunk/include/hwloc/glibc-sched.h
> M /trunk/include/hwloc/helper.h
> M /trunk/include/hwloc/linux-libnuma.h
> M /trunk/include/hwloc.h
> M /trunk/include/private/private.h
> M /trunk/src/bind.c
> M /trunk/src/topology-hpux.c
> M /trunk/src/topology-synthetic.c
> M /trunk/src/topology.c
> M /trunk/utils/hwloc-mask.h
>
> hp-ux compiler fixes
> ------------------------------------------------------------------------
>
> This quick hack fixes it for me, but I don't know if it will work with hp-ux
> compilers.
>
> Index: trunk/src/topology-synthetic.c
> ===================================================================
> --- trunk/src/topology-synthetic.c (revision 1090)
> +++ trunk/src/topology-synthetic.c (working copy)
> @@ -37,19 +37,19 @@
> break;
>
> if (*pos < '0' || *pos > '9') {
> - if (!hwloc_hwloc_strncasecmp(pos, "machines", 2))
> + if (!hwloc_strncasecmp(pos, "machines", 2))
> type = HWLOC_OBJ_MACHINE;
> - else if (!hwloc_hwloc_strncasecmp(pos, "nodes", 1))
> + else if (!hwloc_strncasecmp(pos, "nodes", 1))
> type = HWLOC_OBJ_NODE;
> - else if (!hwloc_hwloc_strncasecmp(pos, "sockets", 1))
> + else if (!hwloc_strncasecmp(pos, "sockets", 1))
> type = HWLOC_OBJ_SOCKET;
> - else if (!hwloc_hwloc_strncasecmp(pos, "cores", 2))
> + else if (!hwloc_strncasecmp(pos, "cores", 2))
> type = HWLOC_OBJ_CORE;
> - else if (!hwloc_hwloc_strncasecmp(pos, "caches", 2))
> + else if (!hwloc_strncasecmp(pos, "caches", 2))
> type = HWLOC_OBJ_CACHE;
> - else if (!hwloc_hwloc_strncasecmp(pos, "procs", 1))
> + else if (!hwloc_strncasecmp(pos, "procs", 1))
> type = HWLOC_OBJ_PROC;
> - else if (!hwloc_hwloc_strncasecmp(pos, "misc", 2))
> + else if (!hwloc_strncasecmp(pos, "misc", 2))
> type = HWLOC_OBJ_MISC;
>
> next_pos = strchr(pos, ':');
>
>
> Yours Tony
> _______________________________________________
> hwloc-devel mailing list
> hwloc-devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel
>