As steve mentioned, its inline.  But I don't understand how that would even 
compile if its not in rdma_cma.h.  Iflink will catch it, but I'm still a little 
uneasy not understanding why it passes the compile...

-jms
Sent from my PDA.  No type good.

 -----Original Message-----
From:   Pak Lui [mailto:pak....@sun.com]
Sent:   Sunday, May 04, 2008 11:44 AM Eastern Standard Time
To:     Open MPI Developers
Subject:        Re: [OMPI devel] undefined references forrdma_get_peer_addr     
&       rdma_get_local_addr

Jeff Squyres wrote:
> Jon / Steve -- can you comment?
> 
> I tested with OFED 1.2.5 (which is what I assume you meant) and got:
> 
> checking for rdma_get_peer_addr... no
> 
> Because that function is not defined in OFED 1.2.5.  Running with OFED  
> 1.3 (where the function does exist), I get:
> 
> checking for rdma_get_peer_addr... yes

For me it seems to be running with 1.2.5.

login3% /opt/ofed/bin/ofed_info | head -1
OFED-1.2.5.5

No rmda_get_peer_addr or rmda_get_local_addr in these .so's, assumingly 
they are coming from there.

login3% ls librdmacm.so*
librdmacm.so  librdmacm.so.1  librdmacm.so.1.0.0  librdmacm.so.1.0.2

login3% nm librdmacm.so* | grep rdma_get_
0000000000003470 T rdma_get_cm_event
0000000000001a20 T rdma_get_devices
0000000000003470 T rdma_get_cm_event
0000000000001a20 T rdma_get_devices
0000000000003470 T rdma_get_cm_event
0000000000001a20 T rdma_get_devices
0000000000003470 T rdma_get_cm_event
0000000000001a20 T rdma_get_devices

And I don't see rdma_get_peer_addr appeared in the 
/opt/ofed/include/rdma/rdma_cma.h either. Not knowing how it actually 
know about the interface (and it's not inline) there.

> 
> Outside of all the configure complexity, can you write a simple  
> program that calls that function and have it compile and link properly?

These are the references of rmda_get_peer_addr from the config.log:
   47858 configure:120941: checking for rdma_get_peer_addr
   47859 configure:120966: pgcc -c -g   -D_REENTRANT 
-I/opt/ofed/include conftest.c >&5
   47860 PGC-W-0155-Pointer value created from a nonlong integral type 
(conftest        .c: 412)
   47861 PGC/x86-64 Linux 7.1-2: compilation completed with warnings
   47862 configure:120972: $? = 0
   47863 configure:120987: result: yes
...
   48355 configure:123600: checking for rdma_get_peer_addr
   48356 configure:123625: pgcc -c -g   -D_REENTRANT 
-I/opt/ofed/include conftes        t.c >&5
   48357 PGC-W-0155-Pointer value created from a nonlong integral type 
(conftest        .c: 423)
   48358 PGC/x86-64 Linux 7.1-2: compilation completed with warnings
   48359 configure:123631: $? = 0
   48360 configure:123646: result: yes

Here's my program, not sure if it's doing it correctly. I am no m4 
expert, so how do I run the ompi_check_openib.m4 independently and see 
the conftest.c??

login3% cat mytest.c
#include "rdma/rdma_cma.h"
int main (void) {
     void *ret = (void*) rdma_get_peer_addr((struct rdma_cm_id*)0);
     return 0;
}

It gives me a warning if I just try to create an object, which is what I 
see in the config.log.

login3% pgcc -c -g   -D_REENTRANT  -I/opt/ofed/include mytest.c
PGC-W-0155-Pointer value created from a nonlong integral type  (mytest.c: 3)
PGC/x86-64 Linux 7.1-2: compilation completed with warnings
login3% echo $?
0

But trying to create an executable would give me the error.

login3% pgcc -g -D_REENTRANT -I/opt/ofed/include mytest.c -o mytest
PGC-W-0155-Pointer value created from a nonlong integral type  (mytest.c: 3)
PGC/x86-64 Linux 7.1-2: compilation completed with warnings
/tmp/pgccjF6BryhFmWS.o: In function `main':
/share/home/00951/paklui/ompi-trunk5/config-data1-debug/mytest.c:3: 
undefined reference to `rdma_get_peer_addr'

Hmm, any clues, comments?

> 
> I suppose we could change the AC_COMPILE_IFELSE in config/ 
> ompi_check_openib.m4 to OMPI_LINK_IFELSE, but I'm a little confused as  
> to why it would compile successfully if the symbol rdma_get_peer_addr  
> is not declared anywhere (which it shouldn't be in OFED 1.2 or 1.2.5,  
> AFAIK)...
> 
> 
> 
> On May 3, 2008, at 10:56 AM, Pak Lui wrote:
> 
>> Sure Jeff, see attached.
>>
>> Jeff Squyres wrote:
>>> (moving to devel so that others are aware)
>>> Crud.  Can you send me your config.log?  I don't know why it's able  
>>> to  find rdma_get_peer_addr() in configure, but then later not able  
>>> to  find it during the build - I'd like to see what happened  
>>> during  configure.
>>> On May 2, 2008, at 7:09 PM, Pak Lui wrote:
>>>> Hi Jeff,
>>>>
>>>> It seems that the cpc3 merge causes my Ranger build to break. I   
>>>> believe it is using OFED 1.2 but I don't know how to check. It   
>>>> passes the ompi_check_openib.m4 that you added in for the   
>>>> rdma_get_peer_addr. Is there a missing #include for openib/ofed   
>>>> related somewhere?
>>>>
>>>>
>>>>  1236 checking rdma/rdma_cma.h usability... yes
>>>>  1237 checking rdma/rdma_cma.h presence... yes
>>>>  1238 checking for rdma/rdma_cma.h... yes
>>>>  1239 checking for rdma_create_id in -lrdmacm... yes
>>>>  1240 checking for rdma_get_peer_addr... yes
>>>>
>>>>
>>>> pgCC -DHAVE_CONFIG_H -I. -I../../../../ompi/tools/ompi_info -  
>>>> I../../../opal/include -I../../../orte/include -I../../../ompi/  
>>>> include -I../../../opal/mca/paffinity/linux/plpa/src/libplpa -  
>>>> DOMPI_CONFIGURE_USER="\"paklui\"" -  
>>>> DOMPI_CONFIGURE_HOST="\"login4.ranger.tacc.utexas.edu\"" -  
>>>> DOMPI_CONFIGURE_DATE="\"Fri May  2 17:07:01 CDT 2008\"" -  
>>>> DOMPI_BUILD_USER="\"$USER\"" -DOMPI_BUILD_HOST="\"`hostname`\"" -  
>>>> DOMPI_BUILD_DATE="\"`date`\"" -DOMPI_BUILD_CFLAGS="\"-O -DNDEBUG    
>>>> \"" -DOMPI_BUILD_CPPFLAGS="\"-I../../../.. -I../../.. - 
>>>> I../../../../ opal/include -I../../../../orte/include - 
>>>> I../../../../ompi/include  - D_REENTRANT\"" - 
>>>> DOMPI_BUILD_CXXFLAGS="\"-O -DNDEBUG  \"" -  
>>>> DOMPI_BUILD_CXXCPPFLAGS="\"-I../../../.. -I../../.. -I../../../../  
>>>> opal/include -I../../../../orte/include -I../../../../ompi/ 
>>>> include  - D_REENTRANT\"" -DOMPI_BUILD_FFLAGS="\"\"" -  
>>>> DOMPI_BUILD_FCFLAGS="\"\"" -DOMPI_BUILD_LDFLAGS="\" \"" -  
>>>> DOMPI_BUILD_LIBS="\"-lnsl -lutil  -lpthread\"" -  
>>>> DOMPI_CC_ABSOLUTE="\"/opt/apps/pgi/7.1/linux86-64/7.1-2/bin/pgcc 
>>>> \"" - DOMPI_CXX_ABSOLUTE="\"/opt/apps/pgi/7.1/linux86-64/7.1-2/bin/ 
>>>> pgCC\""  -DOMPI_F77_ABSOLUTE="\"/opt/apps/pgi/7.1/linux86-64/7.1-2/ 
>>>> bin/ pgf77\"" -DOMPI_F90_ABSOLUTE="\"/opt/apps/pgi/7.1/ 
>>>> linux86-64/7.1-2/ bin/pgf95\"" -DOMPI_F90_BUILD_SIZE="\"small\"" - 
>>>> I../../../.. - I../../.. -I../../../../opal/include -I../../../../ 
>>>> orte/include - I../../../../ompi/include  -D_REENTRANT  -O - 
>>>> DNDEBUG   -c -o  version.o ../../../../ompi/tools/ompi_info/ 
>>>> version.cc
>>>> /bin/sh ../../../libtool --tag=CXX   --mode=link pgCC  -O -DNDEBUG  
>>>> - o ompi_info components.o ompi_info.o output.o param.o   
>>>> version.o ../../../ompi/libmpi.la -lnsl -lutil  -lpthread
>>>> libtool: link: pgCC -O -DNDEBUG -o .libs/ompi_info components.o   
>>>> ompi_info.o output.o param.o version.o  ../../../ompi/.libs/  
>>>> libmpi.so -L/opt/ofed/lib64 -libcm -lrdmacm -libverbs -lrt /share/  
>>>> home/00951/paklui/ompi-trunk5/config-data1/orte/.libs/libopen-  
>>>> rte.so /share/home/00951/paklui/ompi-trunk5/config-data1/ 
>>>> opal/.libs/ libopen-pal.so -lnuma -ldl -lnsl -lutil -lpthread - 
>>>> Wl,--rpath -Wl,/ share/home/00951/paklui/ompi-trunk5/shared- 
>>>> install1/lib
>>>>
>>>> [1]    Exit 2                        make install >&   
>>>> make.install.log.0
>>>> ../../../ompi/.libs/libmpi.so: undefined reference to   
>>>> `rdma_get_peer_addr'
>>>> ../../../ompi/.libs/libmpi.so: undefined reference to   
>>>> `rdma_get_local_addr'
>>>> make[2]: *** [ompi_info] Error 2
>>>> make[2]: Leaving directory `/share/home/00951/paklui/ompi-trunk5/  
>>>> config-data1/ompi/tools/ompi_info'
>>>> make[1]: *** [install-recursive] Error 1
>>>> make[1]: Leaving directory `/share/home/00951/paklui/ompi-trunk5/  
>>>> config-data1/ompi'
>>>> make: *** [install-recursive] Error 1
>>>>
>>>>
>>>>
>>>>
>>>> -- 
>>>>
>>>> - Pak Lui
>>>> pak....@sun.com
>>
>> -- 
>>
>>
>> - Pak Lui
>> pak....@sun.com
>> <config.log.bz2><mime-attachment.txt>
> 
> 


-- 


- Pak Lui
pak....@sun.com
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

Reply via email to