[PATCH 0/4] Fixes for Requires Bugs

Dan Nicholson dbn.lists at gmail.com
Tue May 29 23:05:42 PDT 2012


This patches fix (or partially fix) a couple long-standing bugs with
Requires and Requires.private. The first is that non-l flags are not
ordered correctly with respect to Requires. Typically this is not an
issue because the only non-l flags are -I and -L and a bit of
misordering there is not usually fatal. Bug #34504 does show a case
where this does cause breakage with paths to libraries rather than -l
flags. This does not, however, fix the case where pkg-config splits
linker flags away from their associated -l.

The other fix is an old request to support circular Requires in #7331.
This fix took two distint steps to fix.

Dan Nicholson (4):
  Make sure recursion only happens with requires
  Consistently resolve requires depth-first to fix non-l flag ordering
  Delay converting Requires entries to Packages until after parsing
  Support circular Requires loops

 check/Makefile.am             |   11 ++++-
 check/check-circular-requires |   15 ++++++
 check/check-non-l-flags       |   26 +++++++++++
 check/check-requires-private  |    6 +-
 check/circular-1.pc           |   11 +++++
 check/circular-2.pc           |   11 +++++
 check/circular-3.pc           |   11 +++++
 check/non-l-required.pc       |    5 ++
 check/non-l.pc                |    6 +++
 check/public-dep.pc           |    1 +
 parse.c                       |   76 ++------------------------------
 pkg.c                         |   98 ++++++++++++++++++++++++++++++++++------
 pkg.h                         |    2 +
 13 files changed, 187 insertions(+), 92 deletions(-)
 create mode 100755 check/check-circular-requires
 create mode 100755 check/check-non-l-flags
 create mode 100644 check/circular-1.pc
 create mode 100644 check/circular-2.pc
 create mode 100644 check/circular-3.pc
 create mode 100644 check/non-l-required.pc
 create mode 100644 check/non-l.pc

-- 
1.7.7.6



More information about the pkg-config mailing list