Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] 1.4.5rc2 tests on MacOSX Lion (2 pass, 1 FAIL): orte_odls visibility issue
From: Paul Hargrove (phhargrove_at_[hidden])
Date: 2012-01-27 14:46:30


On Fri, Jan 27, 2012 at 5:34 AM, Jeff Squyres <jsquyres_at_[hidden]> wrote:
[snip]
>
>
> I'm not quite sure how that can happen -- orte_odls appears to be
> prototyped properly in orte/mca/odls/odls.h (i.e., it has ORTE_DECLSPEC,
> for visibility), and is properly instantiated in
> orte/mca/odls/base/odls_base_open.c.
>
> Paul: can you run some nm's and see how the orte_odls symbol appears in
> libopen-rte.a?
>
>

In the PGI build directory:

> $ find . -name '*.a' | while read lib; do
> out=`nm $lib 2>/dev/null | grep -w _orte_odls`;
> test -n "$out" && echo -e "${lib}:\n${out}";
> done
> ./orte/.libs/libopen-rte.a:
> U _orte_odls
> U _orte_odls
> U _orte_odls
> 0000000000000038 C _orte_odls
> U _orte_odls
> U _orte_odls
> ./orte/mca/errmgr/.libs/libmca_errmgr.a:
> U _orte_odls
> ./orte/mca/odls/.libs/libmca_odls.a:
> 0000000000000038 C _orte_odls
> U _orte_odls
> ./orte/mca/plm/.libs/libmca_plm.a:
> U _orte_odls

Meanwhile in the GCC build directory the same shell command yields
something quite different:

> ./orte/mca/errmgr/.libs/libmca_errmgr.a:
> U _orte_odls
> ./orte/mca/odls/.libs/libmca_odls.a:
> 00000000000011c0 S _orte_odls
> U _orte_odls
> ./orte/mca/plm/.libs/libmca_plm.a:
> U _orte_odls

So the difference boils down to "C" vs "S".
According to "man nm" on this system
  "C" is "common"
  "S" is "other section not listed above"

I don't know much about visibility attributes and so can't follow the path
any further without some instructions to follow. (Though I will read the
PGI manpages for anything related to common vs noncommon symbols).

Hopefully those are the droids you're looking for,
-Paul

-- 
Paul H. Hargrove                          PHHargrove_at_[hidden]
Future Technologies Group
HPC Research Department                   Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900