On Mon, 2 Mar 2015, Marcus Meissner wrote:
On Mon, Mar 02, 2015 at 05:13:19PM +0100, Richard Biener wrote:
On Mon, 2 Mar 2015, Marcus Meissner wrote:
On Mon, Mar 02, 2015 at 02:45:32PM +0100, Richard Biener wrote:
On Mon, 2 Mar 2015, Ilya Chernykh wrote:
It seems the Xine headers aren't compatible with the new GCC.
[ 498s] In file included from /usr/include/xine/audio_out.h:30:0, [ 498s] from audio_fifo_out.c:22: [ 498s] /usr/include/xine/xineutils.h:149:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'https://build.opensuse.org/package/live_build_log/KDE:KDE3/kdemultimedia3/op...
Sounds like they are eventually auto-generated by preprocessing and $stuff where $stuff doesn't expect extra #line directives GCC now emits. The fix is to do the preprocessign step with -P (do not emit #line directives).
I tried building it, and that specific line has
static inline void somefunction()
and I think it chokes on the inline.
Did you look at preprocessed source?
In file included from /usr/include/xine/audio_out.h:30:0, from audio_fifo_out.c:22: /usr/include/xine/xineutils.h:149:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ static inline void _x_freep(void *ptr) { ^
code around that is:
void *xine_xcalloc(size_t nmemb, size_t size) __attribute__((__malloc__)) ;
static inline void _x_freep(void *ptr) { void **p = (void **)ptr; free (*p); *p = ((void *)0); }
it is building with: -std=iso9899:1990
gcc -DHAVE_CONFIG_H -I. -I.. -I/opt/kde3/include/arts -I/opt/kde3/include -I/usr/lib/qt3/include -I. -DQT_THREAD_SUPPORT -D_REENTRANT -U__STRICT_ANSI__ -std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -DNDEBUG -O2 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -fno-strict-aliasing -Wformat-security -Wmissing-format-attribute -MT audio_fifo_out.lo -MD -MP -MF .deps/audio_fifo_out.Tpo -c -o audio_fifo_out.lo audio_fifo_out.c
The above std setting blocks the "inline" keyword, if I remove it from the gcc line, it builds.
The C89 standard doesn't have inline. You'd get inline with -std=gnu89
though.
Richard.
--
Richard Biener