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