[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: