DeaDBeeF-Player / deadbeef

DeaDBeeF Player
https://deadbeef.sourceforge.io/
Other
1.61k stars 175 forks source link

Last.FM plugin won’t compile: unrecognised command line option '-fblocks' #2702

Closed Fifis closed 2 years ago

Fifis commented 2 years ago

Steps to reproduce the problem

./configure --enable-threads=posix
make -j6

Problem description

Compilation halts due to unrecognized command line option '-fblocks':

make -j6
make  all-recursive
make[1]: Entering directory '/home/fifis/Pictures/deadbeef-1.8.8'
Making all in pixmaps
make[2]: Entering directory '/home/fifis/Pictures/deadbeef-1.8.8/pixmaps'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/fifis/Pictures/deadbeef-1.8.8/pixmaps'
Making all in icons
make[2]: Entering directory '/home/fifis/Pictures/deadbeef-1.8.8/icons'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/fifis/Pictures/deadbeef-1.8.8/icons'
Making all in external
make[2]: Entering directory '/home/fifis/Pictures/deadbeef-1.8.8/external'
  CC       mp4p/src/libmp4p_la-mp4p.lo
  CC       mp4p/src/libmp4p_la-mp4patomdata.lo
  CC       mp4p/src/libmp4p_la-mp4pfile.lo
  CCLD     libmp4p.la
ar: `u' modifier ignored since `D' is the default (see `U')
make[2]: Leaving directory '/home/fifis/Pictures/deadbeef-1.8.8/external'
Making all in shared
make[2]: Entering directory '/home/fifis/Pictures/deadbeef-1.8.8/shared'
  CC       libmp4tagutil_la-mp4tagutil.lo
  CC       libtrkpropertiesutil_la-trkproperties_shared.lo
  CC       libeqpreset_la-eqpreset.lo
  CC       libctmap_la-ctmap.lo
  CC       libdeletefromdisk_la-deletefromdisk.lo
  CC       libtftintutil_la-tftintutil.lo
deletefromdisk.c: In function '_warningCallback':
deletefromdisk.c:261:9: warning: 'OUTPUT_STATE_PLAYING' is deprecated: since deadbeef API 1.11 [-Wdeprecated-declarations]
  261 |         && deadbeef->get_output ()->state () == OUTPUT_STATE_PLAYING) {
      |         ^~
In file included from deletefromdisk.h:12,
                 from deletefromdisk.c:11:
../deadbeef.h:353:5: note: declared here
  353 |     OUTPUT_STATE_PLAYING DEPRECATED_111 = 1,
      |     ^~~~~~~~~~~~~~~~~~~~
  CCLD     libctmap.la
  CCLD     libeqpreset.la
  CCLD     libtftintutil.la
  CCLD     libdeletefromdisk.la
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
  CCLD     libtrkpropertiesutil.la
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
  CCLD     libmp4tagutil.la
ar: `u' modifier ignored since `D' is the default (see `U')
make[2]: Leaving directory '/home/fifis/Pictures/deadbeef-1.8.8/shared'
Making all in plugins/liboggedit
make[2]: Entering directory '/home/fifis/Pictures/deadbeef-1.8.8/plugins/liboggedit'
  CC       oggedit_internal.lo
  CC       oggedit_utils.lo
  CC       oggedit_art.lo
  CC       oggedit_opus.lo
  CC       oggedit_vorbis.lo
  CC       oggedit_flac.lo
  CCLD     liboggedit.la
ar: `u' modifier ignored since `D' is the default (see `U')
make[2]: Leaving directory '/home/fifis/Pictures/deadbeef-1.8.8/plugins/liboggedit'
Making all in plugins/libparser
make[2]: Entering directory '/home/fifis/Pictures/deadbeef-1.8.8/plugins/libparser'
  CC       libparser_la-parser.lo
  CCLD     libparser.la
ar: `u' modifier ignored since `D' is the default (see `U')
make[2]: Leaving directory '/home/fifis/Pictures/deadbeef-1.8.8/plugins/libparser'
Making all in plugins/lastfm
make[2]: Entering directory '/home/fifis/Pictures/deadbeef-1.8.8/plugins/lastfm'
  CC       lastfm_la-lastfm.lo
gcc: error: unrecognized command line option '-fblocks'
make[2]: *** [Makefile:553: lastfm_la-lastfm.lo] Error 1
make[2]: Leaving directory '/home/fifis/Pictures/deadbeef-1.8.8/plugins/lastfm'
make[1]: *** [Makefile:825: all-recursive] Error 1
make[1]: Leaving directory '/home/fifis/Pictures/deadbeef-1.8.8'
make: *** [Makefile:610: all] Error 2

If configured with --disable-sid --disable-vfs-curl --disable-lfm --disable-gme --enable-converter to save the effort, it produces the same error compiling the notification-daemon support plug-in. An extra --disable-notify solves the issue.

Information about the software

Deadbeef version: 1.8.8 OS: Linux Mint 20.2 based on Ubuntu 20.04

kuba160 commented 2 years ago

gcc doesn't support blocks extension which is required for building deadbeef. Install clang and compile by following steps in README.md.

@Alexey-Yakovenko I suggest to add check for -fblocks in configure.ac that will fail if compiler doesn't support it and tell to use a compiler like clang.

Oleksiy-Yakovenko commented 2 years ago

duplicate of #2516 and of #2449

Oleksiy-Yakovenko commented 2 years ago

@kuba160 here's another suggestion how to detect it: https://github.com/DeaDBeeF-Player/deadbeef/issues/2449#issuecomment-699500533

Oleksiy-Yakovenko commented 2 years ago

I'm adding the check. This error would be displayed:

checking whether C compiler accepts -fblocks... no
configure: error: Clang is required to build DeaDBeeF. Please check the README file.