-
Notifications
You must be signed in to change notification settings - Fork 360
freemheg: update visibility of MHCreateEngine & MHSetLogging #1153
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
Conversation
-lmythfreemheg-35 is used when build libmythtv.35.so, so the visibility of MHCreateEngine & MHSetLogging should be different depends on "-DMTV_API", otherwise build is failed with: > /usr/bin/x86_64-pc-linux-gnu-ld.bfd: obj/mhi.o: in function MHIContext:: MHIContext(InteractiveTV*)': > /var/tmp/portage/media-tv/mythtv-35.0-r1/work/mythtv-35.0/mythtv/libs/libmythtv/mheg/mhi.cpp: 80:(.text+0xec): undefined reference to MHCreateEngine(MHContext*)' > /usr/bin/x86_64-pc-linux-gnu-ld.bfd: obj/interactivetv.o: in function InteractiveTV::InteractiveTV(MythPlayerCaptionsUI*)': > /var/tmp/portage/media-tv/mythtv-35.0-r1/work/mythtv-35.0/mythtv/libs/libmythtv/mheg/interactivetv.cpp: (.text+0x17b): undefined reference to MHSetLogging(_IO_FILE*, unsigned int)' > /usr/bin/x86_64-pc-linux-gnu-ld.bfd: libmythtv-35.so.35.0.0: protected symbol _Z12MHSetLoggingP8_IO_FILEj' isn't defined > /usr/bin/x86_64-pc-linux-gnu-ld.bfd: final link failed: bad value Signed-off-by: Z. Liu <[email protected]>
|
I'm very surprised that this problem has never come up before. Thank you for the patch. I've tweaked it slightly so that the decision doesn't depend on anything external to the libmythfreemheg directory, but depends on a new MHEG_API define that's part of that directory. |
|
What system are you compiling for? Reading through qcompilerdetection.h, Q_DECL_EXPORT and Q_DECL_IMPORT only appear to be different for windows compilers (or old hpux compilers). |
Gentoo |
|
I haven't noticed any problem on my gentoo builder. I'll have to go double check it. Is this a recent problem? |
I find this problem when try to fix https://bugs.gentoo.org/960489, which is related to Qt6.9. |
|
That's it. Qt6 has a QT_USE_PROTECTED_VISIBILITY define that changes Q_DECL_EXPORT from "default" to "protected" visibility. Gentoo must have started building qt6 with the "no_direct_extern_access" feature, which is what causes that define to get set. |
should be this commit: gentoo/gentoo@496ea7a |
-lmythfreemheg-35 is used when build libmythtv.35.so, so the visibility of MHCreateEngine & MHSetLogging should be different depends on "-DMTV_API", otherwise build is failed with:
Thank you for contributing to MythTV!
Please review the checklist below to ensure that your contribution
to MythTV is ready for review by our developers.
It is helpful to regularly rebase your pull request to ensure changes
apply cleanly to the current MythTV development branch.
Checklist