Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: [OMPI devel] 1.7.5: OpenShmem symbols are not weak
From: Bert Wesarg (Bert.Wesarg_at_[hidden])
Date: 2014-03-31 04:14:19


Hi all,

while working on support for OpenShmem in our next Score-P measurement
[1] release, we noticed that the liboshmem.so library from Open MPI does
not mark the symbols as weak as one would expect. Here is an output of
liboshmem.so on my 64bit ubuntu system. Lets try shmem_init:

$ readelf -W --dyn-syms liboshmem.so.1.0.0 |grep 'shmem_init$'
   1098: 000000000001dac2 141 FUNC GLOBAL DEFAULT 11 shmem_init
   1228: 000000000001c73a 236 FUNC GLOBAL DEFAULT 11
oshmem_shmem_init

Oh, no pshmem_init. Maybe missing, but its legacy anyway. Lets try
shmem_broadcast:

$ readelf -W --dyn-syms liboshmem.so.1.0.0 |grep 'shmem_broadcast$'
    555: 000000000002769a 92 FUNC GLOBAL DEFAULT 11 pshmem_broadcast
    577: 000000000001ed82 92 FUNC GLOBAL DEFAULT 11 shmem_broadcast

Ok, we see the pshmem_broadcast and the shmem_broadcast symbol, but the
latter is not WEAK. Btw, this function is not in the standard. Thus
(finally) take a symbol from the standard:

$ readelf -W --dyn-syms liboshmem.so.1.0.0 |grep 'shmem_barrier$'
    511: 000000000001d47e 24 FUNC GLOBAL DEFAULT 11
oshmem_shmem_barrier
    525: 000000000001f250 217 FUNC GLOBAL DEFAULT 11 shmem_barrier
   1099: 0000000000027b68 217 FUNC GLOBAL DEFAULT 11 pshmem_barrier

Again, no WEAK for shmem_barrier.

For reference, the output for MPI_Init:

$ readelf -W --dyn-syms libmpi.so.1.4.0 |grep 'MPI_Init$'
   1383: 00000000000841ff 484 FUNC WEAK DEFAULT 11 MPI_Init
   2051: 00000000000841ff 484 FUNC GLOBAL DEFAULT 11 PMPI_Init

HTH,
Bert

[1] http://www.vi-hps.org/projects/score-p

-- 
Dipl.-Inf. Bert Wesarg
wiss. Mitarbeiter
Technische Universität Dresden
Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH)
01062 Dresden
Tel.: +49 (351) 463-42451
Fax: +49 (351) 463-37773
E-Mail: Bert.Wesarg_at_[hidden]