OK we just got /another/ report of this in the issue tracker,
 someone packaging for Mandriva.

Hm. So IIUC this problem may be because of my (our?) habit,
 perhaps incorrect, of forward referencing a lot of stuff
 in header files, so that I don't have to bring in a lot of other
 headers in that header file, so that changing one small thing
 in some small header somewhere doesn't cause a big recompilation.

For example look at song.h, there are a lot of forward references.

I had always assumed this was OK, since the symbols are eventually
 found within the .cpp file.

Ironically though, I was thinking heavily about the consequences
 the other day - wondering if this habit might cause problems.

And here we are.

Does all this sound correct?

If so, then we have a *lot* of changing to do.

Or should we? Should the packagers do as the issue tracker
 poster suggested he /could/ do and remove that strict
 -no-undefined? He said this:

"Since all the involved references are internal to the muse sources. this means that muse is actually rather underlinked. I can workaround the issue by forcing our build system to pass only "-Wl,--as-needed"

"Perhaps this situation is safe, because all the needed symbols are provided by other muse internal modules and consequently they are always present, ruling out the chance of any runtime error; but I would argue that it is better to have a properly linked program, if this is doable..."


Tim.


On 01/13/2018 02:20 PM, Sebastian wrote:
On 01/13/2018 05:35 PM, Robert Jonsson wrote:
Thanks for packaging MusE.
First, if possible, add rtaudio as a dependency as it will allow running MusE with other backends than Jack.
I can't as rtaudio is not available in official openSUSE repositories (I guess because of license issues, it's only in a third-party repo)
As for the error I'm not sure what is going on, MusEGlobal::config seems defined to me.. I see this is happening while you try to create the package, does it occur already when running ./compile_muse.sh ?

Tim, you run openSUSE, right? Seen anything similar?
This is not an openSUSE issue. The problem occurs during linking (not /compiling/). I'm not a C/C++ programmer but AFAI found out, the /--no-undefined/ during linking makes the linking process more strict. Without that flag, compilation works because the undefined references are /ignored/. Which does not mean that they exist, they reference may work after later linking steps but how that works is beyond my knowledge. As this flag is used for all packages in openSUSE that use cmake, I guess that muse Try building muse with the cmake parameter DCMAKE_SHARED_LINKER_FLAGS=-Wl,--no-undefined and you should get the same errors.

Sebastian

P.S.: I don't see an issue with the comma, removing it gives this:
c++: error: unrecognized command line option '-Wl'; did you mean '-W'?
c++: error: unrecognized command line option '--no-undefined'; did you mean '-Wno-undef'?

--
python programming - mail server - photo - video -https://sebix.at
cryptographic key athttps://sebix.at/DC9B463B.asc  and on public keyservers


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-user mailing list
Lmuse-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lmuse-user

Reply via email to