[yoshimi] Re: buildlog explained - Re: A demanding distro

  • From: Edgar Aichinger <edgar.aichinger@xxxxxx>
  • To: yoshimi@xxxxxxxxxxxxx
  • Date: Sun, 13 Jan 2019 16:50:53 +0100

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





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

Other related posts: