Skip to content
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

Extra warning about Requires.private in builds using HWLOC_PCI=enable #26002

Closed
jabraham17 opened this issue Sep 26, 2024 · 0 comments · Fixed by #26008
Closed

Extra warning about Requires.private in builds using HWLOC_PCI=enable #26002

jabraham17 opened this issue Sep 26, 2024 · 0 comments · Fixed by #26008

Comments

@jabraham17
Copy link
Member

Since #25839, if CHPL_HWLOC_PCI=enable then printchplenv --internal reports the following warning

Warning: Simple pkg-config parser does not handle Requires.private
Warning: in CHPL_HOME/third-party/hwloc/install/linux64-x86_64-native-llvm-none-gpu-enable/lib/pkgconfig/hwloc.pc

This occurs frequently in the build output of make, as printchplenv is invoked frequently. While this warning does not seem to impact correctness, it does clutter the output of make and printchplenv.

This affects many configs, although not the default. CHPL_HWLOC_PCI=enable is the default with multi-locale support or gpu support

It may be the correct solution is to just silence the warning, although maybe we can just properly handle Requires.private in our simple pkg-config parser

jabraham17 added a commit that referenced this issue Sep 30, 2024
…26008)

Tightens up the logic for when we should warn about 'Requires.private'
(and also 'Requires'). We only need to warn when the compiler/linker
flags are not already handled by 'Cflags'/`Libs`.

Details:

`Requires`/`Requires.private` list what other pkg-config libraries are
needed, so that `pkg-config` can pull in the need dependencies/flags.
This ends up being a recursive operation (i.e. 'A' has 'Requires: B', so
we must process 'B.pc'). But if we already have the information needed,
this is unnecessary. So if we have 'Requires: B', but 'B' is already
listed in 'Libs', then for our purposes we have satisfied the
'Requires.'

Our simple pkg-config parser is used only for bundled third-party libs,
and we do not need to ability to recursively search other .pc files to
satisfy the requirements. So this PR uses the above logic to avoid
warning about `Requires`/`Requires.private` not being handled

This should resolve #26002

[Reviewed by @mppf  and @jhh67]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant