Gilles,

With the additional information you provided about "dependency_libs", I
agree that that either of the fixes you propose sound safe.

-Paul

On Mon, Jul 25, 2016 at 6:26 PM, Gilles Gouaillardet <gil...@rist.or.jp>
wrote:

> Paul,
>
> in my environment, libslurm.la contains
>
> # Linker flags that can not go in dependency_libs.
> inherited_linker_flags=' -pthread'
>
> # Libraries that this one depends upon.
> dependency_libs=' -ldl -lpthread'
>
>
> so bottom line, it invokes the compiler with both -pthread and -lpthread
>
>
> iirc, -pthread does two things :
>
> - invoke the compiler with -D_REENTRANT (so it uses the thread-safe errno
> and so on)
>
> - invoke the linker with -lpthread
>
> OpenMPI has its own way to pass -D_REENTRANT or similar anyway, and
> libslurm.la is used only for for linking.
>
> since -lpthread is pulled anyway from libslurm.la (or it was already set
> by OpenMPI), then yes, discarding -pthread should do the trick.
>
>
> Cheers,
>
>
> Gilles
>
> On 7/26/2016 10:11 AM, Paul Hargrove wrote:
>
> Gilles,
>
> My initial thought is that libslurm probably does require linking
> libpthread, either for for linking pthread_* symbols, or for proper
> *operation* (such as thread-safe versions of functions which override weak
> definitions in libc).
>
> If so, then neither omitting "-pthread" nor telling pgcc not to complain
> about "-pthread" is going to be a good solution.
> Instead the "-pthread" needs to be replaced by "-lpthread", or similar.
>
> -Paul
>
> On Mon, Jul 25, 2016 at 6:03 PM, Gilles Gouaillardet <gil...@rist.or.jp>
> wrote:
>
>> Folks,
>>
>>
>> This is a followup of a thread that initially started at
>> http://www.open-mpi.org/community/lists/users/2016/07/29635.php
>>
>>
>> The user is trying to build Open MPI with PGI compiler and
>> libslurm.la/libpmi.la support, and slurm was built with gcc compiler.
>>
>>
>> At first, it fails because the "-pthread" flag is pulled from
>> libslurm.la/libpmi.la, but this flag is not supported by PGI compilers.
>>
>> A workaround is to pass the -noswitcherror flag to the PGI compiler (so
>> the -pthread flag is discarded and a warning message is issued, but PGI
>> compiler does not fail). Unfortunatly, that does not work because libtool
>> does does not pass this flag to the PGI compiler.
>>
>>
>> Of course, one option is to tell the user to rebuild slurm with PGI, so
>> libslurm.la/libpmi.la do not have the "-pthread" flag.
>>
>> A nicer though arguable option is to hack libtool to silently drop the
>> "-pthread" flag with PGI compiler is used (i made a proof of concept, and
>> this is a two lines patch).
>>
>> An other cleaner option is to hack libtool so it pass -noswitcherror to
>> PGI compiler, but i do not know how to achieve this.
>>
>>
>> Any thoughts ?
>>
>>
>> Cheers
>>
>> _______________________________________________
>> devel mailing list
>> de...@open-mpi.org
>> Subscription: https://www.open-mpi.org/mailman/listinfo.cgi/devel
>> Link to this post:
>> http://www.open-mpi.org/community/lists/devel/2016/07/19278.php
>>
>
>
>
> --
> Paul H. Hargrove                          phhargr...@lbl.gov
> Computer Languages & Systems Software (CLaSS) Group
> Computer Science Department               Tel: +1-510-495-2352
> Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900
>
>
> _______________________________________________
> devel mailing listde...@open-mpi.org
> Subscription: https://www.open-mpi.org/mailman/listinfo.cgi/devel
>
> Link to this post: 
> http://www.open-mpi.org/community/lists/devel/2016/07/19279.php
>
>
>
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> Subscription: https://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post:
> http://www.open-mpi.org/community/lists/devel/2016/07/19280.php
>



-- 
Paul H. Hargrove                          phhargr...@lbl.gov
Computer Languages & Systems Software (CLaSS) Group
Computer Science Department               Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900

Reply via email to