Skip to content

Comments

Change visibilty to hidden on OSX/clang#40677

Open
rosswhitfield wants to merge 41 commits intomantidproject:mainfrom
rosswhitfield:clang_visibility
Open

Change visibilty to hidden on OSX/clang#40677
rosswhitfield wants to merge 41 commits intomantidproject:mainfrom
rosswhitfield:clang_visibility

Conversation

@rosswhitfield
Copy link
Member

@rosswhitfield rosswhitfield commented Jan 23, 2026

Description of work

This sets CMAKE_CXX_VISIBILITY_PRESET=hidden for clang/OSX so it matches Linux/Windows.

There are a number of fixes that were needed to make this work as you can see:

  • Added missing export macros
  • Change some checks for exceptions in tests to base class because of slicing
  • Implement destructors when needed in cpp so this forces the vtable and typeinfo for it to be anchored in libMantid* and exported with correct visibility.
  • Removed the unused LogManager::getInvalidValuesFilter
  • Lot of other small things to make it work

It may require a clean build on OSX.

Closes #39159

To test:

CI + code review

This does not require release notes because internal change only not visible to users.


Reviewer

Your comments will be used as part of the gatekeeper process. Comment clearly on what you have checked and tested during your review. Provide an audit trail for any changes requested.

As per the review guidelines:

  • Is the code of an acceptable quality? (Code standards/GUI standards)
  • Has a thorough functional test been performed? Do the changes handle unexpected input/situations?
  • Are appropriately scoped unit and/or system tests provided?
  • Do the release notes conform to the guidelines and describe the changes appropriately?
  • Has the relevant (user and developer) documentation been added/updated?
  • If the PR author isn’t in the mantid-developers or mantid-contributors teams, add a review comment rerun ci to authorize/rerun the CI

Gatekeeper

As per the gatekeeping guidelines:

  • Has a thorough first line review been conducted, including functional testing?
  • At a high-level, is the code quality sufficient?
  • Are the base, milestone and labels correct?

@rosswhitfield rosswhitfield added this to the Release 6.16 milestone Jan 23, 2026
@rosswhitfield rosswhitfield marked this pull request as ready for review January 23, 2026 06:27
@peterfpeterson
Copy link
Member

Since it messes with the state of OSX builders, this is going to wait until after the v6.14 release

@rosswhitfield rosswhitfield added Technical Debt Marks a piece of work to address technical debt introduced to solve a problem quickly Framework Issues and pull requests related to components in the Framework labels Feb 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Framework Issues and pull requests related to components in the Framework Technical Debt Marks a piece of work to address technical debt introduced to solve a problem quickly

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add compiler option to clang to change LTO visibility to hidden

2 participants