Ticket #2421 (closed patch: fixed)
Opened 6 years ago
Last modified 2 years ago
Add GCC >= gcc 4 support for default hidden/explicit public
| Reported by: | awithers | Owned by: | awithers |
|---|---|---|---|
| Priority: | minor | Milestone: | unknown |
| Component: | MythTV - General | Version: | head |
| Severity: | medium | Keywords: | |
| Cc: | Ticket locked: | no |
Description
Submitted largely so people can look it over and make me not commit it.
This patch adds a new --enable-symbol-visibility switch to configure which turns on use_hidesyms which selectively turns on -fvisibility=hidden (currently selectively because only libmyth and libmythtv are close to done, external libs will never be done).
Objectives:
Smaller symbol tables An explicit API
Deficiencies:
Only the symbols I absolutely needed plus reasonable guesses are here (basically most of the stuff that would be exposed through mythtv/ includes). If you use this patch and find some I missed let me know.
Attachments
Change History
comment:1 Changed 6 years ago by awithers
First of n patches to get explicit symbol visibility in myth (for use with newer gcc).
If you do not enable it, this should only make you rebuild everything. To enable it you must run configure with --enable-symbol-visibility.
This commit introduces the new mythpluginapi.h. The purpose of this header is to provide prototypes for the plugin entry points (previously every plugin prototyped them). Existing plugins should include this file (I'll be updating them soon).
If you enable this, expect to find symbols I've somehow missed, report them.
Why? Cleaner, smaller, tables. Everyone likes clean tables.
comment:2 Changed 6 years ago by awithers
comment:3 Changed 6 years ago by greg
comment:4 Changed 6 years ago by anonymous
getting follwing after this commit....
../../libs/libmythui/libmythui-0.20.so: undefined reference to `JoystickMenuClient::Init(QString&)' ../../libs/libmythui/libmythui-0.20.so: undefined reference to `JoystickMenuClient::JoystickMenuClient?(QObject*)' ../../libs/libmythui/libmythui-0.20.so: undefined reference to `JoystickMenuClient::Process()'
comment:5 Changed 5 years ago by awithers
Export ClearChannelLocks? for hidden symbols patch.
comment:6 Changed 5 years ago by awithers
- Export GetInstallPrefixPath?
- Slide in -pedantic fix while I'm here
comment:7 Changed 5 years ago by awithers
export ViewScheduleDiff?
comment:8 Changed 5 years ago by awithers
Export ThemeInfo?
comment:9 Changed 4 years ago by awithers
Mark InputGroupMap? as public, for --enable-symbol-visibility.
comment:10 Changed 4 years ago by awithers
Export ChannelTVFormat for GetFormats?().
comment:11 Changed 4 years ago by awithers
Exports AudioSettings? for --enable-symbol-visibility.
comment:12 Changed 4 years ago by awithers
comment:13 Changed 4 years ago by awithers
comment:15 Changed 3 years ago by awithers
comment:16 Changed 3 years ago by awithers
Export PlayerContex? and MythApplication?.
comment:17 Changed 3 years ago by awithers
comment:18 Changed 3 years ago by awithers
comment:19 Changed 3 years ago by awithers
comment:20 Changed 3 years ago by stuartm
- Component changed from mythtv to MythTV - General
Anduin, is this unfinished or can the ticket now be closed?
comment:21 Changed 2 years ago by awithers
comment:22 Changed 2 years ago by stuarta
- Status changed from assigned to closed
- Resolution set to fixed
We've done lots of symbol visibility fixes. We can deal with any new ones on a case by case basis.
