Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] compilation error with pgcc Unknown switch
From: Gustavo Correa (gus_at_[hidden])
Date: 2012-02-15 15:22:21


On Feb 15, 2012, at 1:58 PM, Abhinav Sarje wrote:

> Hi Gus,
> I have not added any flags that include static, but when I do a
> verbose compilation output for the point where error occurs, I see
> that there are some -Bstatic flags. I tried to manually remove the
> -Bstatic included just before the libopen-pal.so library, and that
> particular line then compiled without error. But then while doing
> overall build, the same error occurs at multiple points.
>
> I will try to use the latest nightly tarball and see if it works.
>
> Thanks a lot.
>

Hi Abhinav

For what it is worth, I built here OpenMPI 1.4.4 on Linux x86-64 CentOS 5.2 [a bit old]
with the PGI 11.7 compilers.
I didn't even use the -noswitcherror switch [which I had to use in some of the
previous versions of OpenMPI and PGI].

How about forcing the use of shared libraries with -Bdynamic along with that -noswitcherror,
in the CC, FC, etc declarations?

Still, this looks strange, and my guess is that this may be some twist in your compiler
installation/configuration.

But it may come also from the OpenMPI configure script.
Could the OpenMPI configure pick and use the PGI -Bstatic flag, perhaps?
This type of thing only the developers can tell.
Better hear from them.

I hope this helps,
Gus Correa

> Abhinav
>
> On Wed, Feb 15, 2012 at 7:42 AM, Gustavo Correa <gus_at_[hidden]> wrote:
>> Hi Abhinav
>>
>> Did you add to your compiler flags -Bstatic [or perhaps -static],
>> or any optimization flags that may include -Bstatic/-static?
>> Check also the compiler configuration, and any possible user customization
>> [~/.mypggcc and friends] to see if -Bstatic is there, maybe inadvertently, and is set by default.
>> That is all I can think of.
>> Maybe it will require Jeff and the Open MPI developers to sort
>> the problem out.
>>
>> Gus Correa
>>
>> On Feb 15, 2012, at 12:19 AM, Abhinav Sarje wrote:
>>
>>> Hi Gus, I had tried with the -noswitcherror flags, which removed the
>>> 'unknown-switch' error, but then I am still getting the "attempted
>>> static link of dynamic object" error as I reported earlier.
>>>
>>> Thanks.
>>>
>>> On Fri, Feb 10, 2012 at 5:57 AM, Gustavo Correa <gus_at_[hidden]> wrote:
>>>> Hi Abhinav
>>>>
>>>> Setting CC='pgcc --noswitcherror', FC='pgfortran --noswitcherror', etc, may prevent the
>>>> error message [but not sure it will prevent any actual and unreported error].
>>>> Check details with 'man pgfortran'.
>>>>
>>>> I hope this helps,
>>>> Gus Corea
>>>>
>>>> .
>>>>
>>>> On Feb 10, 2012, at 2:03 AM, Abhinav Sarje wrote:
>>>>
>>>>> I tried with 1.5.4 and same compilers, and got the exact same error.
>>>>> I also tried PGI version 11.10.0, and got the same thing.
>>>>>
>>>>>
>>>>> On Wed, Feb 8, 2012 at 3:04 AM, Jeff Squyres (jsquyres)
>>>>> <jsquyres_at_[hidden]> wrote:
>>>>>> Can you try building 1.5.4 with the same compilers?
>>>>>>
>>>>>> Sent from my phone. No type good.
>>>>>>
>>>>>> On Feb 7, 2012, at 3:14 PM, "Abhinav Sarje" <asarje_at_[hidden]> wrote:
>>>>>>
>>>>>>> I am trying to build open-mpi 1.4.4 (latest stable from open-mpi.org)
>>>>>>> using PGI compilers on a cray platform. PGI compilers' version is
>>>>>>> 11.9.0. I get the following error while building:
>>>>>>> -------------------------------------
>>>>>>> Making all in tools/wrappers
>>>>>>> make[2]: Entering directory `{my_installation_directory}/opal/tools/wrappers'
>>>>>>> source='opal_wrapper.c' object='opal_wrapper.o' libtool=no \
>>>>>>> DEPDIR=.deps depmode=none /bin/sh ../../../config/depcomp \
>>>>>>> cc "-DEXEEXT=\"\"" -I. -I../../../opal/include
>>>>>>> -I../../../orte/include -I../../../ompi/include
>>>>>>> -I../../../opal/mca/paffinity/linux/plpa/src/libplpa -I../../..
>>>>>>> -D_REENTRANT -O -DNDEBUG -fPIC -c -o opal_wrapper.o opal_wrapper.c
>>>>>>> /bin/sh ../../../libtool --tag=CC --mode=link cc -O -DNDEBUG -fPIC
>>>>>>> -export-dynamic -o opal_wrapper opal_wrapper.o
>>>>>>> ../../../opal/libopen-pal.la -lnsl -lutil
>>>>>>> libtool: link: cc -O -DNDEBUG -fPIC -o .libs/opal_wrapper
>>>>>>> opal_wrapper.o --export-dynamic ../../../opal/.libs/libopen-pal.so
>>>>>>> -ldl -lnsl -lutil -rpath {my_installation_directory}/lib
>>>>>>> pgcc-Error-Unknown switch: --export-dynamic
>>>>>>> make[2]: *** [opal_wrapper] Error 1
>>>>>>> make[2]: Leaving directory `{my_installation_directory}/opal/tools/wrappers'
>>>>>>> make[1]: *** [all-recursive] Error 1
>>>>>>> make[1]: Leaving directory `{my_installation_directory}/opal'
>>>>>>> make: *** [all-recursive] Error 1
>>>>>>> -------------------------------------
>>>>>>>
>>>>>>> I see that the libtool packaged with open-mpi is 2.2.6b
>>>>>>> When I try to compile this particular part with libtool versions 2.2.6
>>>>>>> or 2.4, I get the following error:
>>>>>>> -------------------------------------
>>>>>>> $ libtool --tag=CC --mode=link cc -O -DNDEBUG -fPIC
>>>>>>> -export-dynamic -o opal_wrapper opal_wrapper.o
>>>>>>> ../../../opal/libopen-pal.la -lnsl -lutil
>>>>>>> libtool: link: cc -O -DNDEBUG -fPIC -o .libs/opal_wrapper
>>>>>>> opal_wrapper.o -Wl,--export-dynamic
>>>>>>> ../../../opal/.libs/libopen-pal.so -ldl -lnsl -lutil -Wl,-rpath
>>>>>>> -Wl,{my_installation_directory}/lib
>>>>>>> /usr/bin/ld: attempted static link of dynamic object
>>>>>>> `../../../opal/.libs/libopen-pal.so'
>>>>>>> -------------------------------------
>>>>>>>
>>>>>>> Looking at earlier posts, apparently there was a bug with libtool a
>>>>>>> couple of years ago because of which the above error occurred. This
>>>>>>> was fixed in newer releases, but I am getting similar errors.
>>>>>>>
>>>>>>> Does anyone have any information on how to fix this, or if I am doing
>>>>>>> something wrong here?
>>>>>>>
>>>>>>> Thanks!
>>>>>>> _______________________________________________
>>>>>>> users mailing list
>>>>>>> users_at_[hidden]
>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>>>
>>>>>> _______________________________________________
>>>>>> users mailing list
>>>>>> users_at_[hidden]
>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>>
>>>>> _______________________________________________
>>>>> users mailing list
>>>>> users_at_[hidden]
>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>
>>>>
>>>> _______________________________________________
>>>> users mailing list
>>>> users_at_[hidden]
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>>
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users