HD Видеоконференции на OpenMCU



02.02.2015. Разыскивается картинка для заставки. Это необычная "хотелка", в данном случае требуется помощь от пользователей, желающих помочь. Нужна картинка-заставка (она же "logo") для использования по умолчанию. Формат любой, лучше без потерь. Соотношение сторон 16:9, чтобы при любых разрешениях она была видна полностью.

Автор Тема: ptlib vs bison 3  (Прочитано 5834 раз)

rayanAyar

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1231
  • Карма: 58
ptlib vs bison 3
« : 04 Мая 2014, 07:46:49 »
Ещё пару месяцев назад пробовал собирать на Arch и споткнулся на какой-то непонятной для меня ошибке:

Arch:
cc  -D_REENTRANT -fno-exceptions -I/opt/openmcu-ru/include -Wall  -fPIC -DPIC -DNDEBUG -I/root/openmcu-ru-oci_3.49-beta/build/openmcu-
ru/ptlib/include -c ../common/getdate.tab.c -o /root/openmcu-ru-oci_3.49-beta/build/openmcu-ru/ptlib/lib/obj_linux_x86_r/getdate.tab.o
../common/getdate.y:112:18: error: conflicting types for ‘PTime_yyparse’
 #define yyparse  PTime_yyparse
                  ^
../common/getdate.tab.c:264:5: note: in expansion of macro ‘yyparse’
 int yyparse (void);
     ^
../common/getdate.y:112:18: note: previous declaration of ‘PTime_yyparse’ was here
 #define yyparse  PTime_yyparse
                  ^
../common/getdate.y:116:12: note: in expansion of macro ‘yyparse’
 static int yyparse(void *);
            ^
../common/getdate.y: In function ‘PTime_yyparse’:
../common/getdate.y:105:38: error: ‘parseParam’ undeclared (first use in this function)
 #define VARIABLE ((struct Variables*)parseParam)
                                      ^
../common/getdate.y:154:6: note: in expansion of macro ‘VARIABLE’
      VARIABLE->yyHaveTime++;
      ^
../common/getdate.y:105:38: note: each undeclared identifier is reported only once for each function it appears in
 #define VARIABLE ((struct Variables*)parseParam)
                                      ^
../common/getdate.y:154:6: note: in expansion of macro ‘VARIABLE’
      VARIABLE->yyHaveTime++;
      ^
../common/getdate.y: In function ‘PTimeParse’:
../common/getdate.y:971:5: error: too many arguments to function ‘PTime_yyparse’
     yyparse(&var);
     ^
../common/getdate.y:112:18: note: declared here
 #define yyparse  PTime_yyparse
                  ^
../common/getdate.tab.c:1150:1: note: in expansion of macro ‘yyparse’
 yyparse (void)
 ^
Makefile:804: recipe for target '/root/openmcu-ru-oci_3.49-beta/build/openmcu-ru/ptlib/lib/obj_linux_x86_r/getdate.tab.o' failed
make[2]: *** [/root/openmcu-ru-oci_3.49-beta/build/openmcu-ru/ptlib/lib/obj_linux_x86_r/getdate.tab.o] Error 1
make[2]: Leaving directory '/root/openmcu-ru-oci_3.49-beta/build/openmcu-ru/ptlib/src/ptlib/unix'
Makefile:239: recipe for target 'opt' failed
make[1]: *** [opt] Error 2
make[1]: Leaving directory '/root/openmcu-ru-oci_3.49-beta/build/openmcu-ru/ptlib'
Makefile:876: recipe for target 'all' failed
make: *** [all] Error 2

Так как Arch - не самый востребованный дистрибутив для серверов, то я это дело забросил временно отложил. Но на днях стал собирать на свежей версии Ubuntu (вышла в прошлом месяце) и ошибка та же самая:

Ubuntu 14.04 (Trusty):
cc  -D_REENTRANT -fno-exceptions -I/opt/openmcu-ru/include -Wall  -fPIC -DPIC -DNDEBUG -I/root/openmcu-ru-oci_3.49-beta/build/openmcu-ru/ptlib/include -c ../common/getdate.tab.c -o /root/openmcu-ru-oci_3.49-beta/build/openmcu-ru/ptlib/lib/obj_linux_x86_r/getdate.tab.o
../common/getdate.y:112:18: error: conflicting types for ‘PTime_yyparse’
 #define yyparse  PTime_yyparse
                  ^
../common/getdate.tab.c:264:5: note: in expansion of macro ‘yyparse’
 int yyparse (void);
     ^
../common/getdate.y:112:18: note: previous declaration of ‘PTime_yyparse’ was here
 #define yyparse  PTime_yyparse
                  ^
../common/getdate.y:116:12: note: in expansion of macro ‘yyparse’
 static int yyparse(void *);
            ^
../common/getdate.y: In function ‘PTime_yyparse’:
../common/getdate.y:105:38: error: ‘parseParam’ undeclared (first use in this function)
 #define VARIABLE ((struct Variables*)parseParam)
                                      ^
../common/getdate.y:154:6: note: in expansion of macro ‘VARIABLE’
      VARIABLE->yyHaveTime++;
      ^
../common/getdate.y:105:38: note: each undeclared identifier is reported only once for each function it appears in
 #define VARIABLE ((struct Variables*)parseParam)
                                      ^
../common/getdate.y:154:6: note: in expansion of macro ‘VARIABLE’
      VARIABLE->yyHaveTime++;
      ^
../common/getdate.y: In function ‘PTimeParse’:
../common/getdate.y:971:5: error: too many arguments to function ‘PTime_yyparse’
     yyparse(&var);
     ^
../common/getdate.y:112:18: note: declared here
 #define yyparse  PTime_yyparse
                  ^
../common/getdate.tab.c:1150:1: note: in expansion of macro ‘yyparse’
 yyparse (void)
 ^
make[2]: *** [/root/openmcu-ru-oci_3.49-beta/build/openmcu-ru/ptlib/lib/obj_linux_x86_r/getdate.tab.o] Ошибка 1
make[2]: Выход из каталога `/root/openmcu-ru-oci_3.49-beta/build/openmcu-ru/ptlib/src/ptlib/unix'
make[1]: *** [opt] Ошибка 2
make[1]: Выход из каталога `/root/openmcu-ru-oci_3.49-beta/build/openmcu-ru/ptlib'
make: *** [all] Ошибка 2

Есть подозрения, что опять "виновата" обновлённая версия gcc. В этих дистрибутивах - gcc 4.8.2.

Самое интересное, что на Launchpad под Ubuntu Trusty без проблем собралось (build.log):
g++ -D_REENTRANT -fno-exceptions  -Wall  -fPIC -DPIC -DNDEBUG -I/build/buildd/openmcu-ru-3.49.0.717/ptlib/include -Os    -c ../../ptclib/guid.cxx -o /build/buildd/openmcu-ru-3.49.0.717/ptlib/lib/obj_linux_x86_r/guid.o
cc  -D_REENTRANT -fno-exceptions  -Wall  -fPIC -DPIC -DNDEBUG -I/build/buildd/openmcu-ru-3.49.0.717/ptlib/include -c ../common/getdate.tab.c -o /build/buildd/openmcu-ru-3.49.0.717/ptlib/lib/obj_linux_x86_r/getdate.tab.o
g++ -D_REENTRANT -fno-exceptions  -Wall  -fPIC -DPIC -DNDEBUG -I/build/buildd/openmcu-ru-3.49.0.717/ptlib/include -Os    -c uicmp.cxx -o /build/buildd/openmcu-ru-3.49.0.717/ptlib/lib/obj_linux_x86_r/uicmp.o
« Последнее редактирование: 04 Мая 2014, 15:02:50 от rayanAyar »

kay27

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3065
  • Карма: 58
Re: gcc 4.8.2 ?
« Ответ #1 : 04 Мая 2014, 13:08:52 »
Есть подозрения, что опять "виновата" обновлённая версия gcc. В этих дистрибутивах - gcc 4.8.2.

не пробовал сравнить версию bison?

rayanAyar

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1231
  • Карма: 58
Re: gcc 4.8.2 ?
« Ответ #2 : 04 Мая 2014, 13:11:02 »
Да, отличается. В Trusty и в Arch - 3.*

kay27

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3065
  • Карма: 58

rayanAyar

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1231
  • Карма: 58
Re: gcc 4.8.2 ?
« Ответ #4 : 04 Мая 2014, 13:16:00 »
Может я чего-то не понял... Судя по треду в ссылке - решения для Bison 3 нет?

kay27

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3065
  • Карма: 58
Re: gcc 4.8.2 ?
« Ответ #5 : 04 Мая 2014, 13:28:34 »
Может я чего-то не понял... Судя по треду в ссылке - решения для Bison 3 нет?

можно проверить, собирается ли с bison 3* самый свежий ptlib от opalvoip, если да - можно позаимствовать из него опции командной строки для bison или исправления, если нет - видимо, придётся что-то изобретать.
там, в треде, вроде, заканчивается тем, что это бизон стал вести себя неправильно)

rayanAyar

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1231
  • Карма: 58
Re: gcc 4.8.2 ?
« Ответ #6 : 04 Мая 2014, 13:56:57 »
Самое непонятное мне - каким образом на Launchpad-е собралось?! Там ведь тоже третий bison на сборочной ферме.

kay27

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3065
  • Карма: 58
Re: gcc 4.8.2 ?
« Ответ #7 : 04 Мая 2014, 14:24:11 »
у меня пока нет времени поразбираться :(

Цитата: ptlib/ReadMe.txt
Bison problem under Unix

The bison.simple file on many releases will not compile with the options used
by the PTLib getdate.y grammar. The options are required to make the date
parser thread safe so it is necessary to edit the bison.simple file to fix the
problem.

The file is usually at /usr/lib/bison.simple but in the tradition of unix
could actually be anywhere. We leave it up to you to find it.

The code:

   /* Prevent warning if -Wstrict-prototypes. */
   #ifdef __GNUC__
   int yyparse (void);
   #endif

should be changed to

   /* Prevent warning if -Wstrict-prototypes. */
   #ifdef __GNUC__
   #ifndef YYPARSE_PARAM
   int yyparse (void);
   #endif
   #endif

To prevent the incorrect function prototype from being defined. The getdate.y
should then produce a getdate.tab.c file that will actually compile.

rayanAyar

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1231
  • Карма: 58
Re: gcc 4.8.2 ?
« Ответ #8 : 04 Мая 2014, 14:43:31 »
у меня пока нет времени поразбираться :(
Не горит. Пускай багрепорт здесь висит до лучших времён.

ptlib/ReadMe.txt
Проверю рецепт.

schmel

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 572
  • Карма: 30
Re: ptlib vs bison 3
« Ответ #9 : 01 Марта 2017, 14:17:14 »
https://www.openmamba.org/download.html?file=/pub/openmamba/devel/SRPMS.base/ptlib-2.10.11-1mamba.src.rpm
Решил я для автоматизации собрать версию 3.48 под 14.04 и 16.04.
Ошибка при сборке точно такая же.
В версии 4 это решено?
Нужный человек не в том месте может перевернуть мир (Gman, Half-Life2)