Проблема после обновления G CC C ++ - PullRequest
1 голос
/ 17 марта 2020

База текущего кода Os- Linux x64, имеет код perl, повышение 1.42, G CC 4.4.7 и другие зависимости как часть кода проекта. Сборка работает нормально.

После обновления G CC до 4.9.2 Мы сделали копию существующего экземпляра Linux ec2 (который работает нормально) и обновили его G CC до 4.9.2. Когда мы пытаемся построить проект, получаем следующую ошибку:

webql/rt/bootstrap: Compiling main.cxx
webql/rt/bootstrap: @/archive/webql/build/al/current/base/dev/general/gfilt -pthread -fPIC -DU_HAVE_NAMESPACE=1 -D_FILE_OFFSET_BITS=64 -D_unix -D_BSD -fexceptions -fmessage-length=0 -I/home/builder/archive/webql/build/al/current/base/dev/perl/core -DQL2_PLATFORM="al" -DJAVA_ARCH="amd64" -fvisibility=hidden -D_XOPEN_SOURCE=500 -I/archive/webql/build/al/current/base/dev/general -I/archive/webql/build/al/current/base/dev/general/include -I. -I/archive/webql/build/al/current/base/dev -I/archive/webql/build/al/current/base/dev/xml -I/archive/webql/build/al/current/base/dev/xml/libxml -I/archive/webql/build/al/current/base/dev/xml/libxslt -I/archive/webql/build/al/current/base/packages/al/inst/include -I/archive/webql/build/al/current/base/dev/zlib -I/archive/webql/build/al/current/base/packages/al/inst/jdk/include -I/archive/webql/build/al/current/base/packages/al/inst/jdk/include/linux -I/usr/java/include -I/usr/java/include/linux -I/mnt/usr/include -ggdb3 -O3 -DNDEBUG -c -o /archive/webql/build/al/current/base/dist/alr/obj/webql/rt/bootstrap/main.o main.cxx

    In file included from ../perlapi/perl.h::,
                     from ../perlapi/Utils.h:,
                     from main.cxx::
    /archive/webql/build/al/current/base/dev/perl/core/perl.h::49: error: declaration of int setresuid(uid_t, uid_t, uid_t) has a different exception specifier
     int setresuid(uid_t ruid, uid_t euid, uid_t suid);

    In file included from main.cxx::
    /mnt/usr/include/unistd.h:: error: from previous declaration int setresuid(__uid_t, __uid_t, __uid_t) throw ()
     extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)

    In file included from ../perlapi/perl.h::,
                     from ../perlapi/Utils.h:,
                     from main.cxx::
    /archive/webql/build/al/current/base/dev/perl/core/perl.h: error: declaration of int setresgid(gid_t, gid_t, gid_t) has a different exception specifier
     int setresgid(gid_t rgid, gid_t egid, gid_t sgid);

    In file included from main.cxx::
    /mnt/usr/include/unistd.h:: error: from previous declaration int setresgid(__gid_t, __gid_t, __gid_t) throw ()
     extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)

make: Leaving directory `/archive/webql/build/al/current/base/dev/webql'

Вещи пробовали Перекомпилирован буст 1.42 и другие зависимости

Ожидание Даже после нескольких попыток ошибка остается прежней. perl .h является частью кода проекта, а unistd.h - системный файл. Очевидно, что perl .h - это код C, следовательно, он не может БРОСИТЬ исключение, которое присутствует в объявлении функции unstd.h. Любая помощь будет оценена.

...