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

Reply via email to