/usr/include/libaudcore/audstrings.h:26:28: fatal error: initializer_list:...
sc68 is an Atari ST and Amiga music player
Brought to you by:
benjihan
Hello,
If I try to build sc68 (rev. 630) on Slackware64 14.2 then I got this error:
$ CFLAGS="-O2 -fPIC" ../sc68-svn630/configure --libdir=/usr/lib64 --prefix=/usr [...] $ make [...] make[1]: Entering directory '/tmp/build/sc68-svn630-build/sc68-audacious' make[2]: Entering directory '/tmp/build/sc68-svn630-build/sc68-audacious' /bin/sh ./libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"sc68-audacious\" -DPACKAGE_TARNAME=\"sc68-audacious\" -DPACKAGE_VERSION=\"0.2.0\" -DPACKAGE_STRING=\"sc68-audacious\ 0.2.0\" -DPACKAGE_BUGREPORT=\"http://sourceforge.net/projects/sc68/\" -DPACKAGE_URL=\"http://sc68.atari.org\" -DPACKAGE=\"sc68-audacious\" -DVERSION=\"0.2.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE_DESC=\"Atari\ ST\ and\ Amiga\ audio\ plugin\ for\ audacious.\ It\ is\ part\ of\ the\ sc68\ project.\ Visit\ \<http://sc68.atari.org\>\" -DPACKAGE_VERNUM=020 -DHAVE_LONG_FILE_NAMES=1 -DNDEBUG_SC68_AUDACIOUS=1 -Drestrict=__restrict -DNDEBUG=1 -DHAVE_LIMITS_H=1 -DHAVE_ASSERT_H=1 -DHAVE_PTHREAD_H=1 -DHAVE_SC68_SC68_H=1 -DUSE_SC68=1 -DHAVE_SC68_FILE68_H=1 -DUSE_FILE68=1 -DAUDACIOUS_VERNUM=30702 -I. -I../../sc68-svn630/sc68-audacious -std=gnu99 -pedantic -Wall -I../../sc68-svn630/sc68-audacious/../libsc68 -I./../libsc68 -I../../sc68-svn630/sc68-audacious/../file68 -I./../file68 -O2 -fPIC -MT sc68-aud35.lo -MD -MP -MF .deps/sc68-aud35.Tpo -c -o sc68-aud35.lo ../../sc68-svn630/sc68-audacious/sc68-aud35.c libtool: compile: gcc -DPACKAGE_NAME=\"sc68-audacious\" -DPACKAGE_TARNAME=\"sc68-audacious\" -DPACKAGE_VERSION=\"0.2.0\" "-DPACKAGE_STRING=\"sc68-audacious 0.2.0\"" -DPACKAGE_BUGREPORT=\"http://sourceforge.net/projects/sc68/\" -DPACKAGE_URL=\"http://sc68.atari.org\" -DPACKAGE=\"sc68-audacious\" -DVERSION=\"0.2.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" "-DPACKAGE_DESC=\"Atari ST and Amiga audio plugin for audacious. It is part of the sc68 project. Visit <http://sc68.atari.org>\"" -DPACKAGE_VERNUM=020 -DHAVE_LONG_FILE_NAMES=1 -DNDEBUG_SC68_AUDACIOUS=1 -Drestrict=__restrict -DNDEBUG=1 -DHAVE_LIMITS_H=1 -DHAVE_ASSERT_H=1 -DHAVE_PTHREAD_H=1 -DHAVE_SC68_SC68_H=1 -DUSE_SC68=1 -DHAVE_SC68_FILE68_H=1 -DUSE_FILE68=1 -DAUDACIOUS_VERNUM=30702 -I. -I../../sc68-svn630/sc68-audacious -std=gnu99 -pedantic -Wall -I../../sc68-svn630/sc68-audacious/../libsc68 -I./../libsc68 -I../../sc68-svn630/sc68-audacious/../file68 -I./../file68 -O2 -fPIC -MT sc68-aud35.lo -MD -MP -MF .deps/sc68-aud35.Tpo -c ../../sc68-svn630/sc68-audacious/sc68-aud35.c -fPIC -DPIC -o .libs/sc68-aud35.o In file included from ../../sc68-svn630/sc68-audacious/sc68-aud35.c:36:0: /usr/include/libaudcore/audstrings.h:26:28: fatal error: initializer_list: No such file or directory compilation terminated. Makefile:569: recipe for target 'sc68-aud35.lo' failed make[2]: *** [sc68-aud35.lo] Error 1 make[2]: Leaving directory '/tmp/build/sc68-svn630-build/sc68-audacious' Makefile:591: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/tmp/build/sc68-svn630-build/sc68-audacious' Makefile:430: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1
However, if I am using the "--disable-sc68-audacious" option, it compiles fine.
My operating system is providing audacious-3.7.2 and here you can see exactly how it has been built: http://ftp.slackware.com/pub/slackware/slackware64-14.2/source/xap/audacious/audacious.SlackBuild
Do you know why I must disable the sc68 audacious option in order to build successfully sc68?
Thank you.
Best regards.
To be honest it's a long time I haven't compiled sc68 for Audacious I usually disable all plugins and compile them separattely when needed.
The plugin was developped for audacious-3.5. Unfortunatly Audacious have an habit of breaking its API from one release to the next. May be the configure script should be more conservative when it checks for the presence of audacious on the system.
In that precise case it seems the audacious header <audstrings.h> includes <initializer_list> a C++ standard header. So it seems since 3.6 audacious team has decided to go full C++ mode.
The sc68 plugin is built with a good'ol C compiler. Still it's probably not the only error that would occur.
Ultimatly the solution would be to update the plugin code for the new API but I'm not sure when I'll have some time to do that.
Thank you for the report.