[yoshimi] buildlog explained - Re: A demanding distro

  • From: Ichthyostega <prg@xxxxxxxxxxxxxxx>
  • To: Edgar Aichinger <edgar.aichinger@xxxxxx>, yoshimi@xxxxxxxxxxxxx
  • Date: Fri, 11 Jan 2019 22:30:59 +0100

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

Other related posts: