Файлы, сгенерированные protobuf, не компилируются в Solaris SPARC 64

Я пытаюсь скомпилировать несколько сгенерированных файлов proto.cc на Solaris 10 SPARC 64.

И я получаю эти ошибки:

"/apps/pkgs/studio-11.0.13/prod/include/CC/stlport4/stl/_alloc.h", line 134: Error: The function "__stl_new" must have a prototype.
"/apps/pkgs/studio-11.0.13/prod/include/CC/stlport4/stl/_alloc.h", line 135: Error: The function "__stl_delete" must have a prototype.
"/apps/pkgs/studio-11.0.13/prod/include/CC/stlport4/./stdexcept", line 52: Error: _STLP_EXCEPTION_BASE is not defined.

Флаги компилятора:

/apps/pkgs/studio-11.0.13/prod/bin/CC -xarch=v9 -library=stlport4 -library=Crun -features=no%conststrings -library=no%rwtools7 -erroff=nonewline

Флаги компилятора protobuf:

CXXFLAGS = -xmemalign=8s -g0 -xO3 -xlibmil -xdepend -xbuiltin -mt -compat=5 -library=stlport4 -library=Crun -template=no%extdef  -DNDEBUG -m64 -xarch=v9 

protobuf успешно скомпилирован (все тесты пройдены)

Спасибо, Богдан


person Bogdan M.    schedule 17.11.2011    source источник
comment
Однако вы можете получить некоторую помощь здесь, на SO; Насколько я понимаю, основные сопровождающие Google не являются пользователями SO. В этом случае вам может помочь группа Google.   -  person Marc Gravell    schedule 17.11.2011
comment
Кажется, что stlport, используемый в Solaris, слишком устарел даже для studio-11.0.13. Есть ли stlport5?   -  person osgx    schedule 17.11.2011
comment
Нет, пробовал и с studio-12.0.1, там только stlport4   -  person Bogdan M.    schedule 17.11.2011
comment
хорошо, но почему тесты protobuf прошли с использованием stlport4? Проблема не в stlport4. Это может быть конфликт с родным stl, но я не знаю, как этого избежать.   -  person Bogdan M.    schedule 17.11.2011


Ответы (1)


Хорошо, получается, что наш код собран с нативным stl, а это значит, что мы не можем связать его с сборкой protobuf с помощью stlport4. Поэтому мне пришлось собрать protobuf с родным stl.

Вот шаги:

1. You have to apply these patches: https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/pkg/protobuf/trunk/files/

2.Run ./configure with these parameters:

./configure LDFLAGS=-L$PWD/src/solaris --disable-64bit-solaris --prefix=/bogdan/protobuf-2.4.1

If you want to build it on SPARC 64, remove --disable-64bit-solaris and edit protobuf-2.4.1/src/solaris/libstdc++.la file to add the correct dependecies to the linker.

3. Run: make, make check and make install

С уважением, Богдан

person Bogdan M.    schedule 18.11.2011
comment
Из того, что я могу сказать, эти исправления предназначены для 2.3.0, а не для 2.4.1, и не применяются чисто. Приходилось ли вам чинить вышедшие из строя куски вручную? - person grantc; 25.09.2012