Hi again,
I took the relevant part from Will's latest commit - just the changes to
CmakeLists.txt, and patched the 1.5.10 source with that.
And indeed, the build succeeds now...
Yay!
Edgar
Am Freitag, 11. Januar 2019, 22:30:59 CET schrieb Ichthyostega:
Am 11.01.19 um 13:34 schrieb Edgar Aichinger:
Is that the same problem I'm seeing here for my Fedora 29 build?
https://build.opensuse.org/package/show/home:edogawa/yoshimi
Hello Edgar,
while I can not tell for sure what's going on there, it seems likely
the problem with our CMake setup, which Will mentioned, might lead to
such a situation.
Somewhere during the last build cycle, I proposed some clean-up and
simplifications to our CMake setup. However, during that celan-up
I made the mistake just to *set* the relevant variable, instead
of *extending* the existing setting.
Now, this variable is typically used by distribution builders
to inject some default compile settings uniformly for all packages.
So the problem is, Yoshimi 1.5.10 as released will just "stomp over"
those default settings and place our project defaults there instead.
The proper behaviour would be just to extend the existing defaults.
For those interested at the details, looking at the above mentioned build log:
[ 160s] ----- building yoshimi.spec (user abuild)
[ 160s] + exec rpmbuild
.....
[ 161s] + CXXFLAGS='-O2 -g -pipe -Wall -Werror=format-security
-Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions
-fstack-protector-strong -grecord-gcc-switches
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
[ 161s] + export CXXFLAGS
...
[ 161s] + /usr/bin/cmake -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG ....
...
[ 167s] /usr/bin/c++ -DDEFAULT_AUDIO=jack_audio -DDEFAULT_MIDI=jack_midi
-DHAVE_ALSA -DJACK_LATENCY -DJACK_SESSION -DMIN_CONFIG_MAJOR=1
-DMIN_CONFIG_MINOR=5 -DYOSHIMI=\"yoshimi\" -DYOSHI_FIFO_DIR=\"\"
-I/home/abuild/rpmbuild/BUILD/yoshimi-1.5.10/src -I/usr/include/alsa
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/uuid
-I/usr/include/Fl -I/usr/include/cairo -I/usr/include/glib-2.0
-I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -ffast-math
-fomit-frame-pointer -O3 -std=gnu++11 -Wall -D'YOSHIMI_VERSION="1.5.10"'
-D'BASE_INSTALL_DIR="/usr"' -lasound -ljack -std=gnu++11 -o
CMakeFiles/yoshimi.dir/Interface/CmdInterface.cpp.o -c
/home/abuild/rpmbuild/BUILD/yoshimi-1.5.10/src/Interface/CmdInterface.cpp
so *NOTE* two details here
* your CXXFLAGS for the build didn't make it into the actual compile
invocation
* there are only the flags from Yoshimi: -ffast-math -fomit-frame-pointer -O3
* the invocation has no -fPIC, and it lacks any platform flag
later on the link step fails:
[ 220s] /usr/bin/ld: CMakeFiles/yoshimi.dir/Interface/CmdInterface.cpp.o:
relocation R_X86_64_32 against `.bss' can not be used when making a PIE
object;
recompile with -fPIC
As said, I do not know enough about the setup of a standard build on Fedora
to judge if the actual error (compiled without PIC = position independent
code)
and our mistake (not using the flags from the build system) are actually
linked.
Yet I'd say, the second is rather likely the cause of the first.
Cheers,
Hermann
Yoshimi source code is available from either:
https://sourceforge.net/projects/yoshimi
Or: https://github.com/Yoshimi/yoshimi
Our list archive is at: https://www.freelists.org/archive/yoshimi
To post, email to yoshimi@xxxxxxxxxxxxx