Skip to content

@ in opal.pc pkg-config file #1343

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
marksantcroos opened this issue Feb 5, 2016 · 8 comments · Fixed by open-mpi/ompi-release#951
Closed

@ in opal.pc pkg-config file #1343

marksantcroos opened this issue Feb 5, 2016 · 8 comments · Fixed by open-mpi/ompi-release#951
Labels
Milestone

Comments

@marksantcroos
Copy link
Contributor

The @{libdir} that is used "internally" by OpenMPI also ends up in the pkg-config file. There is some conversion code in opal_setup_wrappers.m4, but shouldnt that be used before it ends up in the .pc file?

An innocent external consumer of the pkg-config information (like myself) now falls over the unsupported @.

@hppritcha hppritcha added the bug label Feb 5, 2016
@hppritcha hppritcha added this to the v2.0.1 milestone Feb 5, 2016
@ggouaillardet
Copy link
Contributor

@marksantcroos i cannot see any @ in my .pc files.
which ompi version are you using and what is your configure command line ?

@marksantcroos
Copy link
Contributor Author

This is with ~HEAD. I encounter it on multiple systems, but not all of them.
Both for dynamic and static builds, and all configured basically like:

../configure --enable-orterun-prefix-by-default --prefix=$PREFIX --with-devel-headers --enable-debug

@ggouaillardet
Copy link
Contributor

You meant latest master, right ?
Can you please give the details of a system on which .pc are broken ?
(Distro and compiler version ?)

@marksantcroos
Copy link
Contributor Author

Yes, latest master, but it isn't a recent thing.

E.g. Comet @ SDSC:

  • CentOS release 6.6
  • gcc version 4.9.2
  • pkg-config version 0.23
  • automake (GNU automake) 1.13.3
  • autoconf (GNU Autoconf) 2.69
  • m4 (GNU M4) 1.4.16

@jsquyres
Copy link
Member

jsquyres commented Feb 8, 2016

@marksantcroos Can you show exactly what you're seeing?

When I install from the git master, this is the ompi.pc file that I see:

# Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
#
Name: Open MPI
Description: Portable high-performance MPI implementation
Version: 3.0.0a1
URL: http://www.open-mpi.org/
#
prefix=/home/jsquyres/bogus
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
#
# Note that -lopen-pal and all the EXTRA_LIBS are only necessary when
# static linking (they're pulled in by libopen-rte.so's implicit
# dependencies), so only list these in Libs.private.
#
Libs: -L${libdir}     -Wl,-rpath -Wl,${libdir} -Wl,--enable-new-dtags -lmpi
Libs.private: -lm -lnuma -lpciaccess -ldl -lutil -lrt 
#
Cflags: -I${includedir}     -pthread 

And if I use it:

$ PKG_CONFIG_PATH=$bogus/lib/pkgconfig pkg-config ompi --libs
-L/home/jsquyres/bogus/lib -Wl,-rpath -Wl,/home/jsquyres/bogus/lib -Wl,--enable-new-dtags -lmpi 

which looks ok to me.

The other .pc files in the $libdir/pkgconfig dir look similar.

@marksantcroos
Copy link
Contributor Author

Libs: -L${libdir}     -Wl,-rpath -Wl,@{libdir} -Wl,--enable-new-dtags -lopen-pal

Note that I only see it in the opal.pc, not in the orte.pc.

@jsquyres
Copy link
Member

jsquyres commented Feb 8, 2016

Got it. Easy typo to fix; thanks!

jsquyres added a commit to jsquyres/ompi-release that referenced this issue Feb 8, 2016
As reported by @marksantcroos, this substitution in opal.pc was
incorrect -- it left @{libdir} in the string (vs. ${libdir}).  The fix
is simple: use the proper substitution variable in opal.pc (it was
never updated to reflect the new/correct name that was created just
for the pkg-config files).

Fixes open-mpi/ompi#1343.

(cherry picked from commit open-mpi/ompi@8558def)
jsquyres added a commit to jsquyres/ompi-release that referenced this issue Feb 8, 2016
As reported by @marksantcroos, this substitution in opal.pc was
incorrect -- it left @{libdir} in the string (vs. ${libdir}).  The fix
is simple: use the proper substitution variable in opal.pc (it was
never updated to reflect the new/correct name that was created just
for the pkg-config files).

Fixes open-mpi/ompi#1343.

(cherry picked from commit 8558def)
jsquyres added a commit to jsquyres/ompi-release that referenced this issue Feb 8, 2016
As reported by @marksantcroos, this substitution in opal.pc was
incorrect -- it left @{libdir} in the string (vs. ${libdir}).  The fix
is simple: use the proper substitution variable in opal.pc (it was
never updated to reflect the new/correct name that was created just
for the pkg-config files).

Fixes open-mpi/ompi#1343.

(cherry picked from commit open-mpi/ompi@8558def)
@marksantcroos
Copy link
Contributor Author

Thanks!

@jsquyres jsquyres modified the milestones: v1.10.3, v2.0.1 Feb 8, 2016
hjelmn pushed a commit to hjelmn/ompi that referenced this issue Sep 13, 2016
bosilca pushed a commit to bosilca/ompi that referenced this issue Oct 3, 2016
As reported by @marksantcroos, this substitution in opal.pc was
incorrect -- it left @{libdir} in the string (vs. ${libdir}).  The fix
is simple: use the proper substitution variable in opal.pc (it was
never updated to reflect the new/correct name that was created just
for the pkg-config files).

Fixes open-mpi#1343.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants