On 2025/12/03 19:36, Gordon Messmer wrote:
Let me see if I follow what you're suggesting...
Well the only actionable thing is to fix the flags so that the compiler
can build its stuff correctly :). The source of that is however a fun mess.
My usual approach to this is to nuke anything that touches
`CMAKE_*_FLAGS`, that is simply not right to edit. Well probably should
actually check the flags, but who has the time for that :). The main
things that I try to recover are setting appropriate `CMAKE_*_STANDARD`
and `CMAKE_POSITION_INDEPENDENT_CODE`.
It might be interesting to check the status of the non-LEGACY_BUILD. It
seems like it is nowhere near finished, but hopefully they can fix much
of the legacy baggage they have there.
Btw, you can totally drop `CMAKE_MODULE_PATH`. It is already handled in
the `aws-c-common-config.cmake`.
In both cases, the strace data shows that cmake checks
"access("/usr/aws-c-common-config.cmake")". In the failing case, just
after checking that path, cmake attempts "openat(..
"/usr/lib/cmake"..) and then does not check for the file under the
CMAKE_MODULE_PATH specified on the command line, which was
/usr/lib64/cmake/aws-c-common. But in the successful case, cmake
attempts "openat(.. "/usr/lib64/cmake"..)" and then checks the prefix
specified on the command line.
Yeah, it just goes through all of the candidates. The --debug-find-pkg
shows you everything that it tries. The order and logic of how it tries
is black magic lost to human kind :).
Is it reasonable to conclude that cmake is normalizing the path given
on the command line from /usr/lib64/cmake/aws-c-common to
/usr/lib64/cmake/aws-c-common for some reason (possibly because it
can't determine the sizeof void*)? I can't think of another reason why
it would not check the path given as a command line argument.
Maybe you had a typo there :). But no `CMAKE_MODULE_PATH` (which is the
only thing that you've passed iiuc) is not used at all for finding
*-config.cmake, so that is a red herring. It does however have a whole
list of paths that it tries like `/usr/lib`, `/usr/lib64`, `/usr/lib32`?
and so on which depends on if a language is enabled, what OS it detected
to be on, and just way too many other things. This is where it seems to
have failed iiuc.
(CMake does path normalization from windows style to unix, but that's
not what you were considering right?)
--
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it:
https://pagure.io/fedora-infrastructure/new_issue