Errors building from latest source 0.20.21

Need help with MPD?
Post Reply
J.L.C.
Posts: 27
Joined: January 9th, 2017, 10:12 pm

Errors building from latest source 0.20.21

Post by J.L.C. » June 10th, 2018, 8:46 pm

After pulling the latest source and trying `make clean` I get the following errors when running `make`:

Code: Select all

src/neighbor/plugins/UdisksNeighborPlugin.cxx: In instantiation of ‘UdisksNeighborExplorer::HandleMessage(DBusConnection*, DBusMessage*)::<lambda(const char*, auto:4&&)> [with auto:4 = ODBus::ReadMessageIter]’:
./src/lib/dbus/ObjectManager.hxx:59:3:   required from ‘void ODBus::RecurseInterfaceDictEntry(ODBus::ReadMessageIter&&, F&&) [with F = UdisksNeighborExplorer::HandleMessage(DBusConnection*, DBusMessage*)::<lambda(const char*, auto:4&&)>]’
src/neighbor/plugins/UdisksNeighborPlugin.cxx:240:5:   required from here
src/neighbor/plugins/UdisksNeighborPlugin.cxx:235:89: warning: declaration of ‘ODBus::ReadMessageIter&& i’ shadows a parameter [-Wshadow]
 terfaceDictEntry(ReadMessageIter(*message), [this](const char *path, auto &&i){
                                                                              ^
In file included from src/neighbor/plugins/UdisksNeighborPlugin.cxx:28:0:
./src/lib/dbus/ObjectManager.hxx:49:45: note: shadowed declaration is here
 RecurseInterfaceDictEntry(ReadMessageIter &&i, F &&f)
                                             ^
src/neighbor/plugins/UdisksNeighborPlugin.cxx:235:89: warning: declaration of ‘path’ shadows a previous local [-Wshadow]
 terfaceDictEntry(ReadMessageIter(*message), [this](const char *path, auto &&i){
                                                                              ^
In file included from src/neighbor/plugins/UdisksNeighborPlugin.cxx:28:0:
./src/lib/dbus/ObjectManager.hxx:54:14: note: shadowed declaration is here
  const char *path = i.GetString();
              ^
src/neighbor/plugins/UdisksNeighborPlugin.cxx:239:12: error: cannot call member function ‘void UdisksNeighborExplorer::Insert(UDisks2::Object&&)’ without object
      Insert(std::move(o));
            ^
cc1plus: warning: unrecognized command line option ‘-Wno-noexcept-type’
Makefile:13357: recipe for target 'src/neighbor/plugins/libneighbor_a-UdisksNeighborPlugin.o' failed
make[1]: *** [src/neighbor/plugins/libneighbor_a-UdisksNeighborPlugin.o] Error 1
make[1]: Leaving directory '/Storage/Software/MPD/MPD-Main-Branch/MPD'
Makefile:4981: recipe for target 'all' failed
make: *** [all] Error 2
Previous versions have compiled with no problem. Did something change?

max
Forum team
Posts: 801
Joined: January 15th, 2013, 3:43 pm

Re: Errors building from latest source 0.20.21

Post by max » June 10th, 2018, 9:30 pm

- this code does not exist in 0.20.21
- release 0.20.21 doesn't even exist! (yet)

J.L.C.
Posts: 27
Joined: January 9th, 2017, 10:12 pm

Re: Errors building from latest source 0.20.21

Post by J.L.C. » June 11th, 2018, 12:18 am

This is after a `git pull`.

I guessed at the version number based on the commit into `android` 13 days ago:

Image

I wondered if maybe the error is due to the commits in `src/neighbor/plugins/UdisksNeighborPlugin.cxx' from 6 days ago:

Image

that point to`src/lib/dbus/ObjectManager.hxx`, which had a commit 7 days ago:

Image

max
Forum team
Posts: 801
Joined: January 15th, 2013, 3:43 pm

Re: Errors building from latest source 0.20.21

Post by max » June 11th, 2018, 7:21 am

Don't guess stuff. You're looking at the wrong place for the version number. You wrote "after git pull", which is not informational because you did not say where you pulled from. Your screenshots show the master branch. And indeed that is not 0.20.21.

What you're seeing is bogus compiler warnings. Report this problem to your compiler vendor, or make the warnings non-fatal to ignore the symptom.

By default, warnings are not fatal. So you have done something explicitly to make them fatal. But you did not tell me what you did ... I have no information on how you configured your MPD build.

J.L.C.
Posts: 27
Joined: January 9th, 2017, 10:12 pm

Re: Errors building from latest source 0.20.21

Post by J.L.C. » June 11th, 2018, 2:45 pm

My apologies. My environment hasn't changed, so I assumed it was due to a change in the code.

Here are some further details:

From .git/config

Code: Select all

[remote "origin"]
	url = https://github.com/MaxKellermann/MPD.git
Results of autogen script

Code: Select all

user@machine: /MPD/MPD-Main-Branch/MPD$ ./autogen.sh
configure.ac:27: installing 'build/compile'
configure.ac:87: installing 'build/config.guess'
configure.ac:87: installing 'build/config.sub'
configure.ac:12: installing 'build/install-sh'
configure.ac:12: installing 'build/missing'
Makefile.am: installing 'build/depcomp'
parallel-tests: installing 'build/test-driver'
My configure:

Code: Select all

user@machine:/MPD/MPD-Main-Branch/MPD$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking for ranlib... ranlib
checking for ar... ar
checking whether make sets $(MAKE)... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking whether g++ supports C++14 features by default... no
checking whether g++ supports C++14 features with -std=c++14... yes
checking for a sed that does not truncate output... /bin/sed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking whether gcc is Clang... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking for pthread_setname_np... yes
checking for library containing clock_gettime... none required
checking for library containing syslog... none required
configure: auto-detected syslog support
checking for library containing socket... none required
checking for library containing gethostbyname... none required
checking for pipe2... yes
checking for accept4... yes
checking for linkat... yes
checking for getpwnam_r... yes
checking for getpwuid_r... yes
checking for initgroups... yes
checking for fnmatch... yes
checking for strndup... yes
checking for strcasestr... yes
checking for struct sockaddr_in.sin_len... no
checking for eventfd... yes
checking for signalfd... yes
checking for library containing exp... -lm
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking sys/prctl.h usability... yes
checking sys/prctl.h presence... yes
checking for sys/prctl.h... yes
checking for prctl... yes
checking for poll... yes
checking for epoll_create1... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for boostlib >= 1.54... yes
checking for ICU... yes
configure: auto-detected libicu
checking for ipv6... yes
checking for struct ucred... yes
checking for getpeereid... no
checking for SYSTEMD_DAEMON... no
checking for SYSTEMD_DAEMON... no
configure: WARNING: libsystemd not found -- disabling systemd socket activation
checking for LIBMPDCLIENT... no
configure: WARNING: libmpdclient not found -- disabling MPD client library
checking for EXPAT... yes
configure: auto-detected expat XML parser
checking for libgcrypt-config... no
checking for LIBGCRYPT - version >= 1... no
checking for YAJL... no
checking for inotify_init... yes
checking for inotify_init1... yes
checking tcpd.h usability... no
checking tcpd.h presence... no
checking for tcpd.h... no
configure: WARNING: libwrap not found -- disabling libwrap
checking for DBUS... yes
configure: auto-detected D-Bus support
configure: auto-detected support for removable media via udisks2
checking for ID3TAG... no
checking for id3_file_open in -lid3tag... no
configure: WARNING: libid3tag not found -- disabling ID3 support using libid3tag
checking for AVAHI... no
configure: WARNING: avahi-client not found -- disabling avahi client library
checking dns_sd.h usability... no
checking dns_sd.h presence... no
checking for dns_sd.h... no
checking for DNSServiceRegister in -ldns_sd... no
configure: WARNING: No supported Zeroconf backend found, disabling Zeroconf
checking for SQLITE... no
configure: WARNING: sqlite not found -- disabling SQLite database support
checking for LIBSAMPLERATE... no
configure: WARNING: libsamplerate not found -- disabling libsamplerate resampling
checking for SOXR... no
configure: WARNING: libsoxr not found -- disabling libsoxr resampler
checking for CURL... yes
configure: auto-detected libcurl HTTP streaming
checking for SMBCLIENT... no
checking for smbc_init in -lsmbclient... no
configure: WARNING: libsmbclient not found -- disabling smbclient input plugin
checking for NFS... no
configure: WARNING: libnfs not found -- disabling NFS input plugin
configure: WARNING: libyajl not found: disabling Qobuz streaming
configure: WARNING: libyajl not found: disabling soundcloud.com support
configure: WARNING: libyajl not found: disabling Tidal streaming
checking for CDIO_PARANOIA... no
configure: WARNING: libcdio_paranoia not found -- disabling libcdio_paranoia input plugin
checking for MMS... no
configure: WARNING: libmms not found -- disabling libmms mms:// protocol support
configure: auto-detected WebDAV storage plugin
checking for ISO9660... no
configure: WARNING: libiso9660 not found -- disabling libiso9660 archive plugin
checking for ZLIB... yes
configure: auto-detected zlib support
checking for BZ2_bzDecompressInit in -lbz2... yes
configure: auto-detected bzip2 archive plugin
checking for bzip2... /home/jeff/anaconda3/bin/bzip2
checking for UPNP... yes
configure: auto-detected UPnP client support
checking for ADPLUG... no
configure: WARNING: libadplug not found -- disabling AdPlug decoder plugin
checking for AUDIOFILE... yes
configure: auto-detected audiofile decoder plugin
checking for NeAACDecOpen in -lfaad... no
configure: WARNING: libfaad not found -- disabling FAAD decoder plugin
checking for FFMPEG... yes
configure: auto-detected ffmpeg decoder library
checking for FLAC... yes
configure: auto-detected FLAC decoder
checking for FLUIDSYNTH... no
configure: WARNING: fluidsynth not found -- disabling fluidsynth MIDI decoder plugin
checking for GME... no
checking for gme_open_file in -lgme... no
configure: WARNING: libgme not found -- disabling Game Music Emulator decoder plugin
checking for MAD... no
checking for mad_stream_init in -lmad... no
configure: WARNING: libmad not found -- disabling libmad MP3 decoder plugin
checking for SHOUT... no
configure: WARNING: libshout not found -- disabling shout output plugin
checking for MPG123... yes
configure: auto-detected libmpg123 decoder plugin
checking for MODPLUG... no
configure: WARNING: libmodplug not found -- disabling modplug decoder plugin
checking for OPUS... no
configure: WARNING: libopus not found -- disabling opus decoder plugin
checking for SNDFILE... yes
configure: auto-detected libsndfile decoder plugin
checking for mpc_demux_init in -lmpcdec... no
configure: WARNING: libmpcdec not found -- disabling Musepack decoder plugin
checking for VORBIS... yes
configure: auto-detected Ogg Vorbis decoder
checking for SIDPLAY... no
checking for SIDPLAY... no
configure: WARNING: libsidplay2 not found -- disabling sidplay decoder plugin
checking for WAVPACK... no
configure: WARNING: libwavpack not found -- disabling WavPack decoder plugin
checking for WildMidi_Init in -lWildMidi... no
configure: WARNING: libwildmidi not found -- disabling WildMidi decoder plugin
checking for SHINE... no
configure: WARNING: libshine not found -- disabling shine encoder
checking for VORBISENC... yes
configure: auto-detected Ogg Vorbis encoder
checking for lame_init in -lmp3lame... yes
configure: auto-detected LAME encoder plugin
checking for TWOLAME... no
configure: WARNING: libtwolame not found -- disabling TwoLAME encoder plugin
checking for ALSA... yes
configure: auto-detected ALSA output plugin
checking for ROAR... no
configure: WARNING: libroar not found -- disabling RoarAudio output plugin
checking for mkfifo... yes
checking sndio.h usability... no
checking sndio.h presence... no
checking for sndio.h... no
configure: WARNING: sndio output plugin -- disabling SNDIO
checking media/MediaDefs.h usability... no
checking media/MediaDefs.h presence... no
checking for media/MediaDefs.h... no
configure: WARNING: Haiku headers not found -- disabling Haiku output plugin
checking for JACK... no
configure: WARNING: libjack not found -- disabling JACK output plugin
checking for AO... no
configure: WARNING: libao not found -- disabling libao output plugin
checking for OPENAL... no
configure: WARNING: OpenAL not found -- disabling OpenAL output plugin
checking sys/soundcard.h usability... yes
checking sys/soundcard.h presence... yes
checking for sys/soundcard.h... yes
checking for PULSE... yes
configure: auto-detected PulseAudio output plugin
checking for OGG... yes
checking whether C compiler accepts -fvisibility=hidden... yes
checking whether C compiler accepts -ffast-math... yes
checking whether C compiler accepts -ftree-vectorize... yes
checking whether C++ compiler accepts -fvisibility=hidden... yes
checking whether C++ compiler accepts -fno-threadsafe-statics... yes
checking whether C++ compiler accepts -fmerge-all-constants... yes
checking whether C++ compiler accepts -ffast-math... yes
checking whether C++ compiler accepts -ftree-vectorize... yes
checking whether C compiler accepts -ffunction-sections... yes
checking whether C compiler accepts -fdata-sections... yes
checking whether C++ compiler accepts -ffunction-sections... yes
checking whether C++ compiler accepts -fdata-sections... yes
checking whether the linker accepts -Wl,--gc-sections... yes
checking whether C compiler accepts -Wall... yes
checking whether C compiler accepts -Wextra... yes
checking whether C compiler accepts -Wmissing-prototypes... yes
checking whether C compiler accepts -Wshadow... yes
checking whether C compiler accepts -Wpointer-arith... yes
checking whether C compiler accepts -Wstrict-prototypes... yes
checking whether C compiler accepts -Wcast-qual... yes
checking whether C compiler accepts -Wwrite-strings... yes
checking whether C compiler accepts -pedantic... yes
checking whether C++ compiler accepts -Wall... yes
checking whether C++ compiler accepts -Wextra... yes
checking whether C++ compiler accepts -Wmissing-declarations... yes
checking whether C++ compiler accepts -Wshadow... yes
checking whether C++ compiler accepts -Wpointer-arith... yes
checking whether C++ compiler accepts -Wcast-qual... yes
checking whether C++ compiler accepts -Wwrite-strings... yes
checking whether C++ compiler accepts -Wsign-compare... yes
checking whether C++ compiler accepts -Wno-noexcept-type... yes

########### MPD CONFIGURATION ############

Archive support:
	(+bzip2) (-ISO9660) (-ZIP) 
Client support:
	(+IPv6) (+TCP) (+UNIX Domain Sockets) 
Storage support:
	(-NFS) (-SMB) 
File format support:
	(-AAC) (-AdPlug) (+DSD) (-C64 SID) (+FFMPEG) (+FLAC) (-FluidSynth) (-GME) 
	(+libsndfile) (-MikMod) (-MODPLUG) (-MAD) (+MPG123) (-Musepack) 
	(-Opus) (-OggTremor) (+OggVorbis) (+WAVE) (-WavPack) (-WildMidi) 
Other features:
	(-libsamplerate) (-libsoxr) (-libmpdclient) (+inotify) (-SQLite) (+DBUS) (+UDISKS) 
Metadata support:
	(-ID3) 
Playback support:
	(+ALSA) (+FIFO) (-SNDIO) (+File Recorder) (-Haiku) (+HTTP Daemon) (-JACK) 
	(-libao) (+OSS) (-OpenAL) (-OS X) (-Pipeline) 
	(+PulseAudio) (-ROAR) (-SHOUTcast) (-Solaris) (-WinMM) 
Streaming encoder support:
	(+FLAC) (+LAME) (-Shine) (+Ogg Vorbis) (-Opus) (-TwoLAME) (+WAVE) 
Streaming support:
	(-CDIO_PARANOIA) (+CURL) (-Qobuz) (-SMBCLIENT) (-Soundcloud) (-Tidal) 
	(-MMS) 
Event loop:
	epoll

##########################################

Generating files needed for compilation
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/doxygen.conf
config.status: creating systemd/system/mpd.service
config.status: creating systemd/user/mpd.service
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
MPD is ready for compilation, type "make" to begin.
Results of `make clean`:

Code: Select all

user@machine:/MPD/MPD-Main-Branch/MPD$ make clean
test -z "src/mpd" || rm -f src/mpd
test -z "libmpd.a libutil.a libthread.a libnet.a libsystem.a libevent.a libicu.a libpcm.a libbasic.a libconf.a libtag.a libinput.a libfs.a libplaylist_plugins.a libdecoder.a libfilter_api.a libfilter_plugins.a libfilter_glue.a libmixer_plugins.a liboutput_plugins.a libodbus.a  libxiph.a libstorage.a libneighbor.a libdb_plugins.a libarchive.a libffmpeg.a  libencoder_plugins.a libpulse.a" || rm -f libmpd.a libutil.a libthread.a libnet.a libsystem.a libevent.a libicu.a libpcm.a libbasic.a libconf.a libtag.a libinput.a libfs.a libplaylist_plugins.a libdecoder.a libfilter_api.a libfilter_plugins.a libfilter_glue.a libmixer_plugins.a liboutput_plugins.a libodbus.a  libxiph.a libstorage.a libneighbor.a libdb_plugins.a libarchive.a libffmpeg.a  libencoder_plugins.a libpulse.a
test -z "" || rm -f 
rm -f *.o
rm -f src/*.o
rm -f src/AudioCompress/*.o
rm -f src/android/*.o
rm -f src/archive/*.o
rm -f src/archive/plugins/*.o
rm -f src/client/*.o
rm -f src/command/*.o
rm -f src/config/*.o
rm -f src/db/*.o
rm -f src/db/plugins/*.o
rm -f src/db/plugins/simple/*.o
rm -f src/db/plugins/upnp/*.o
rm -f src/db/update/*.o
rm -f src/decoder/*.o
rm -f src/decoder/plugins/*.o
rm -f src/encoder/*.o
rm -f src/encoder/plugins/*.o
rm -f src/event/*.o
rm -f src/filter/*.o
rm -f src/filter/plugins/*.o
rm -f src/fs/*.o
rm -f src/fs/io/*.o
rm -f src/input/*.o
rm -f src/input/plugins/*.o
rm -f src/java/*.o
rm -f src/lib/alsa/*.o
rm -f src/lib/curl/*.o
rm -f src/lib/dbus/*.o
rm -f src/lib/expat/*.o
rm -f src/lib/ffmpeg/*.o
rm -f src/lib/gcrypt/*.o
rm -f src/lib/icu/*.o
rm -f src/lib/nfs/*.o
rm -f src/lib/pulse/*.o
rm -f src/lib/smbclient/*.o
rm -f src/lib/sqlite/*.o
rm -f src/lib/upnp/*.o
rm -f src/lib/xiph/*.o
rm -f src/lib/yajl/*.o
rm -f src/lib/zlib/*.o
rm -f src/mixer/*.o
rm -f src/mixer/plugins/*.o
rm -f src/neighbor/*.o
rm -f src/neighbor/plugins/*.o
rm -f src/net/*.o
rm -f src/output/*.o
rm -f src/output/plugins/*.o
rm -f src/output/plugins/httpd/*.o
rm -f src/output/plugins/sles/*.o
rm -f src/pcm/*.o
rm -f src/pcm/dsd2pcm/*.o
rm -f src/player/*.o
rm -f src/playlist/*.o
rm -f src/playlist/cue/*.o
rm -f src/playlist/plugins/*.o
rm -f src/protocol/*.o
rm -f src/queue/*.o
rm -f src/sticker/*.o
rm -f src/storage/*.o
rm -f src/storage/plugins/*.o
rm -f src/system/*.o
rm -f src/tag/*.o
rm -f src/thread/*.o
rm -f src/unix/*.o
rm -f src/util/*.o
rm -f src/win32/*.o
rm -f src/zeroconf/*.o
rm -f test/*.o
test -z "" || rm -f 
test -z "" || rm -f 
test -z "test-suite.log" || rm -f test-suite.log
Then `make` results in the warnings above, resulting in the error and exit from the first post:

Code: Select all

src/neighbor/plugins/UdisksNeighborPlugin.cxx:239:12: error: cannot call member function ‘void UdisksNeighborExplorer::Insert(UDisks2::Object&&)’ without object
      Insert(std::move(o));

max
Forum team
Posts: 801
Joined: January 15th, 2013, 3:43 pm

Re: Errors building from latest source 0.20.21

Post by max » June 11th, 2018, 4:20 pm

This looks like a compiler bug. Which gcc version is this?

J.L.C.
Posts: 27
Joined: January 9th, 2017, 10:12 pm

Re: Errors building from latest source 0.20.21

Post by J.L.C. » June 11th, 2018, 4:41 pm

max wrote:
June 11th, 2018, 4:20 pm
This looks like a compiler bug. Which gcc version is this?
This is gcc version 5.4.0 20160609

max
Forum team
Posts: 801
Joined: January 15th, 2013, 3:43 pm

Re: Errors building from latest source 0.20.21

Post by max » June 11th, 2018, 4:51 pm

OK, looks like it's this compiler bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77585
Your compiler is already 2 years behind...

J.L.C.
Posts: 27
Joined: January 9th, 2017, 10:12 pm

Re: Errors building from latest source 0.20.21

Post by J.L.C. » June 11th, 2018, 6:10 pm

max wrote:
June 11th, 2018, 4:51 pm
OK, looks like it's this compiler bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77585
Your compiler is already 2 years behind...
Upgrading gcc and g++ to version 7 solved the errors. Thanks!

Post Reply