MusicPlayerDaemon / MPD

Music Player Daemon
https://www.musicpd.org/
GNU General Public License v2.0
2.19k stars 350 forks source link

linking failure with undefined symbol 'pthread_create@@GLIBC_2.2.5 #403

Closed ghost closed 6 years ago

ghost commented 6 years ago

mpd-0.21 fails to build with linking problem at the very last step of compilation. Perhaps -lpthread is missing?

'mpd@exe/src_queue_PlaylistControl.cxx.o' 'mpd@exe/src_queue_PlaylistEdit.cxx.o' 'mpd@exe/src_queue_PlaylistTag.cxx.o' 'mpd@exe/src_queue_PlaylistState.cxx.o' 'mpd@exe/src_ReplayGainGlobal.cxx.o' mpd@exe/src_LocateUri.cxx.o' 'mpd@exe/src_SongUpdate.cxx.o' 'mpd@exe/src_SongLoader.cxx.o' 'mpd@exe/src_SongPrint.cxx.o' 'mpd@exe/src_SongSave.cxx.o' 'mpd@exe/src_StateFile.cxx.o' mpd@exe/src_StateFileConfig.cxx.o' 'mpd@exe/src_Stats.cxx.o' 'mpd@exe/src_TagPrint.cxx.o' 'mpd@exe/src_TagSave.cxx.o' 'mpd@exe/src_TagFile.cxx.o' 'mpd@exe/src_TagStream.cxx.o' mpd@exe/src_TimePrint.cxx.o' 'mpd@exe/src_mixer_Volume.cxx.o' 'mpd@exe/src_PlaylistFile.cxx.o' 'mpd@exe/src_CommandLine.cxx.o' 'mpd@exe/src_unix_SignalHandlers.cxx.o' 'mpd@exe/src_unix_Daemon.cxx.o' mpd@exe/src_queue_PlaylistUpdate.cxx.o' 'mpd@exe/src_command_StorageCommands.cxx.o' 'mpd@exe/src_command_DatabaseCommands.cxx.o' -L/usr/lib64/sidplay/builders -Wl,--no-undefined -Wl,--as-needed -Wl,--gc-sections -march=sandybridge -O2 -pipe -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,--start-group libbasic.a src/config/libfs.a src/fs/libfs.a src/system/libsystem.a src/lib/icu/libicu.a src/util/libutil.a src/net/libnet.a src/event/libevent.a src/thread/libthread.a src/input/libinput_glue.a src/input/plugins/libinput_plugins.a src/lib/alsa/libalsa.a src/lib/yajl/libyajl.a src/input/libinput_api.a src/pcm/libpcm.a src/tag/libtag.a src/output/liboutput_glue.a src/filter/libfilter_glue.a src/filter/plugins/libfilter_plugins.a src/filter/libfilter_api.a src/mixer/plugins/libmixer_plugins.a src/output/plugins/liboutput_plugins.a src/output/liboutput_api.a src/mixer/libmixer_glue.a src/decoder/libdecoder_glue.a src/decoder/plugins/libdecoder_plugins.a src/lib/xiph/libflac.a src/lib/xiph/libxiph.a src/lib/xiph/libogg.a src/decoder/libdecoder_api.a src/encoder/libencoder_glue.a src/encoder/plugins/libencoder_plugins.a src/playlist/libplaylist_glue.a src/playlist/plugins/libplaylist_plugins.a src/playlist/libplaylist_api.a src/db/libdb_glue.a src/db/plugins/libdb_plugins.a src/db/libdb_api.a src/storage/libstorage_api.a src/storage/libstorage_glue.a src/storage/plugins/libstorage_plugins.a src/song/libsong.a /usr/lib64/libyajl.so /usr/lib64/libasound.so /usr/lib64/libshout.so /usr/lib64/libFLAC.so /usr/lib64/libogg.so /usr/lib64/libvorbisenc.so -lmp3lame -Wl,--end-group
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.1/../../../../x86_64-pc-linux-gnu/bin/ld: src/thread/libthread.a(Thread.cxx.o): undefined reference to symbol 'pthread_create@@GLIBC_2.2.5' /lib64/libpthread.so.0: error adding symbols: DSO missing from command line

MaxKellermann commented 6 years ago

Here's the -lpthread: https://github.com/MusicPlayerDaemon/MPD/blob/master/src/thread/meson.build#L7 Upload your meson-logs/meson-log.txt and build.ninja, maybe I can find a hint what went wrong.

ghost commented 6 years ago

build.ninja is here: https://bpaste.net/show/9d7e3121e457

meson-log.txt is here: https://bpaste.net/show/9ee0be955275

MaxKellermann commented 6 years ago

Thanks, this is a Meson bug: https://github.com/mesonbuild/meson/pull/3895