LINUX.ORG.RU

vlc не компилируется в buildroot

 ,


0

1

Доброго вечера всем, при использовании утилиты buildroot не компилируется vlc, использую internal toolchain, ядро самое последнее, все прочие проблемы устранил, теперь вот проблемы с vlc и как из решить мне не очень понятно, вот что пишется в логе:

In file included from ../config.h:799:0,
                 from misc/picture.c:32:
../include/vlc_fixups.h:243:33: error: expected identifier or ‘(’ before ‘void’
 # define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); }))
                                 ^
../include/vlc_fixups.h:244:24: note: in expansion of macro ‘_Static_assert’
 # define static_assert _Static_assert
                        ^
misc/picture.c:43:1: note: in expansion of macro ‘static_assert’
 static_assert(sizeof (uintptr_t) == sizeof (atomic_uintptr_t),
 ^
../include/vlc_fixups.h:243:39: error: expected ‘)’ before ‘sizeof’
 # define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); }))
                                       ^
../include/vlc_fixups.h:244:24: note: in expansion of macro ‘_Static_assert’
 # define static_assert _Static_assert
                        ^
misc/picture.c:43:1: note: in expansion of macro ‘static_assert’
 static_assert(sizeof (uintptr_t) == sizeof (atomic_uintptr_t),
 ^
../include/vlc_fixups.h:243:33: error: expected identifier or ‘(’ before ‘void’
 # define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); }))
                                 ^
../include/vlc_fixups.h:244:24: note: in expansion of macro ‘_Static_assert’
 # define static_assert _Static_assert
                        ^
misc/picture.c:45:1: note: in expansion of macro ‘static_assert’
 static_assert(alignof (uintptr_t) == alignof (atomic_uintptr_t),
 ^
../include/vlc_fixups.h:243:39: error: expected ‘)’ before ‘sizeof’
 # define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); }))
                                       ^
../include/vlc_fixups.h:244:24: note: in expansion of macro ‘_Static_assert’
 # define static_assert _Static_assert
                        ^
misc/picture.c:45:1: note: in expansion of macro ‘static_assert’
 static_assert(alignof (uintptr_t) == alignof (atomic_uintptr_t),
 ^
make[5]: *** [misc/picture.lo] Error 1
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [all] Error 2
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [/home/sergei/embedded/buildroot/output/build/vlc-2.2.4/.stamp_built] Error 2
make: *** [_all] Error 2

Может быть кто-то может подсказать как именно решить эту проблему и на каком уровне ее вообще обычно решают? Нужно переписывать код самого vlc? Или же в builroot есть какая-то возможность устранять подобные проблемы? Дополнительные опции для компилятора или вроде того? Буду признателен за любую помощь или подсказку

Версия buildroot стабильная? Какая она и откуда взята?

I-Love-Microsoft ★★★★★
()

Запускаемый компилятор (gcc) не понимает новомодные фичи, которые используются в исходниках.

Варианты: У вас внезапно жутко протухший gcc (как минимум для vlc), где-то потерялись флажки типа -std=gnu11, в vlc остался какой-то левый конфиг с привязкой другому компилятору.

ly
()
Ответ на: комментарий от ly

Ответил бы сразу, но потерялся пароль, снова. В общем проблему я решил вот таким образом:

Было:

# define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); }))
# define static_assert _Static_assert

Стало:

# define static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); }))
# define static_assert _Static_assert

Понимаю что наверное костыль страшный, но что поделать.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.