In many cases, classes (or individual functions) that are used only internally in a library are still marked as DLLPUBLIC. The task is to get rid of such. Please submit each removal as a separate change to gerrit. Sample commits: e9e3124e00676194a10c52ca1a064c44cb668f98 and cbac44cec42985593f27d315266ac43de4dbf3eb .
Don't submit such a change unless you have tested that the code still builds, of course. And in case of platform-specific code (mainly in the vcl module), you need to test build on the affected platform(s).
Alternatively, for extra points, write a Clang plug-in that automates this;)
(In reply to Tor Lillqvist from comment #0)
> Don't submit such a change unless you have tested that the code still builds,
...and passes "make check", as some DLLPUBLICs might only be there for test code to be able to access otherwise internal entities. (In which case those uses of DLLPUBLIC should arguably be commented accordingly.)
Also, note that there is different behaviour between GCC (as typically used on Linux) and Clang (as typically used on Mac OS X, but also on Linux) whether to treat non-exported RTTI of types with identical identifiers as identical. This can e.g. have consequences for uses of dynamic_cast, and can be relevant e.g. when a class in vcl/inc/ has erroneously been marked VCL_DLLPUBLIC instead of VCL_PLUGIN_PUBLIC.
Migrating Whiteboard tags to Keywords: (EasyHack DifficultyBeginner SkillCpp )
JanI is default CC for Easy Hacks (Add Jan; remove LibreOffice Dev List from CC)
A couple of example code pointers, would make it more likely that this easy hack get done. sample commits are good, but a relative high ladder for new people
git log -p -1 e9e3124e00676194a10c52ca1a064c44cb668f98
Tomofumi Yagi committed a patch related to this issue.
It has been pushed to "master":
tdf#96348 Get rid of unnecessary DLLPUBLIC decorations - VclEventListeners
It will be available in 5.2.0.
The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
Affected users are encouraged to test the fix and report feedback.