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

[Core][Apps] Making visibility hidden by default #13060

Open
wants to merge 19 commits into
base: master
Choose a base branch
from

Conversation

roigcarlo
Copy link
Member

@roigcarlo roigcarlo commented Jan 29, 2025

📝 Description
This PR aims to unify the windows and Linux behavior making all symbols in Linux (gcc and llvm based compilers) hidden by default. This will probably help with linking times and linking restrictions (see llvm in win refusing to link targets with more than 65K symbols)

Since exporting template classes with definitions in sources works a bit different (finally i figured out how to make them visible!), some additional decorators will need to be added to several explicit instantiations.

Comments:

  • Changes in find_global_nodal_neighbours_for_entities_process.cpp are not strictly necessary, but is better this way (imo).
  • @KratosMultiphysics/dem DEM application was failing due to a forward declaration of the SphereElement. Please take a look (0e8e547)
  • @KratosMultiphysics/mpi There was an error in the AMGCSolve function as the header was never being used. I made it so it uses the header declaration and the source definition instead of using the definition as a header in the source. Please confirm this was the intended behavior.
  • @AlejandroCornejo CL is mostly yours check everything needed is exposed, I really don't know what is used from outside so I treid to make everything visible but maybe I am missing something used in other apps I don't have access to.

@loumalouomega
Copy link
Member

You don't need to kodify KRATOS_API for non MSVC ?

@matekelemen
Copy link
Contributor

Oh yes thank you! I got back into compile-heavy development again and was about to tear my nonexistent hair out during linking.

CMakeLists.txt Outdated Show resolved Hide resolved
@loumalouomega
Copy link
Member

Almost compiled, just Metis is failing apparently

@roigcarlo
Copy link
Member Author

KRATOS_API

Should work as it is rn, I foresaw this when I did the Kratos api, but if some application gets grumpy I will touch it.

@roigcarlo roigcarlo marked this pull request as ready for review January 30, 2025 11:54
@roigcarlo roigcarlo requested review from a team as code owners January 30, 2025 11:54
@roigcarlo roigcarlo requested a review from a team as a code owner January 30, 2025 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants