Компиляция TCL 7.6.2 с использованием gcc 3.4.5 - PullRequest
0 голосов
/ 09 июня 2011

Я компилирую TCL 7.6p2, используя gcc 3.4.5. Я использую CentOS 5.5. Я получаю следующую ошибку во время команды make:

./../generic/tclPosixStr.c: In function `Tcl_ErrnoId':
./../generic/tclPosixStr.c:340: error: duplicate case value
./../generic/tclPosixStr.c:328: error: previously used here
./../generic/tclPosixStr.c: In function `Tcl_ErrnoMsg':
./../generic/tclPosixStr.c:787: error: duplicate case value
./../generic/tclPosixStr.c:775: error: previously used here
make: *** [tclPosixStr.o] Error 1

Любые советы будут с благодарностью. Спасибо.

1 Ответ

2 голосов
/ 09 июня 2011

Вы пытаетесь использовать древнюю версию, которая не поддерживалась много лет. Таким образом, ваш лучший подход - взломать исходный код, чтобы закомментировать оскорбительные случаи из этих switch утверждений. Или переключитесь на что-то, что кто-то может потрудиться поддержать (но это ваш звонок).

Подробно: похоже, что EOPNOTSUPP имеет то же значение, что и ENOTSUP; закомментируйте каждую группу из трех строк (или, по крайней мере, строк с case; окружающий механизм #ifdef не представляет опасности), связанных с EOPNOTSUPP, чтобы устранить проблему. Или вы можете сделать бэкпорт изменения, которое присутствует во всех не допотопных версиях, что должно улучшить строки #ifdef до этого:

#if defined(EOPNOTSUPP) &&  (!defined(ENOTSUP) || (ENOTSUP != EOPNOTSUPP))

Не беспокойтесь, сообщив об этом как об ошибке. Tcl 7.6p2 не поддерживается.

...