Ошибка компиляции perlcc на perl 5.28 при компиляции в двоичный файл - PullRequest
0 голосов
/ 03 февраля 2019

Я скомпилировал Perl 5.28 из Source в произвольном пути (/usr/local/perl528) с такими параметрами:

config_args='-des -Dprefix=/usr/local/perl528'

Затем скомпилировал B: CC в perl528 и создал hello.pl со следующим кодом:

#!/usr/local/perl528/bin/perl

use Socket;

print "Hello world";

следующий шаг:

/usr/local/perl528/perlcc -o hello hello.pl

после выполнения ./hello, я получаю следующий код:

panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.

Трассировка для ./привет:

27738 stat("/usr/local/perl528/lib/5.28.1/x86_64-linux/Socket.pm/auto//.so", 0x9ce0a0) = -1 ENOTDIR (Not a directory)

Почему я получаю эту ошибку?

Обновления:

  • Проблема возникает только при использовании модуля.

  • use strict; в порядке и не вызывает ошибок, но другие будут.

  • А код и ошибки - настоящие.(Да, я получаю сообщение об ошибке в строке 26, а у меня всего 6 строк кода.

Спасибо.

1 Ответ

0 голосов
/ 04 февраля 2019

Инструмент perlcc - это довольно нишевая утилита, которая больше не является частью ядра Perl.Для стороннего инструмента, тесно связанного с внутренними средствами perl, вы, скорее всего, увидите некоторую поломку при использовании последней версии perl.

Просмотр документа perlcc Changes поможет здесь:

  • версия 1.55 (последняя стабильная версия) только добавила поддержку perl 5.24
  • в версии 1.55_08 упоминается perl 5.27.3, версия для разработки perl 5.28
  • в perl-compiler Проект GitHub упоминает тесты на 5.28

Поэтому:

  • рассмотрите возможность установки версии perlcc для разработки,
  • или даже установка непосредственно из GitHub.
  • Или рассмотрите возможность использования более старой версии Perl.
  • Или рассмотрите возможность использования cperl, форка perl от сопровождающего Perlcc Рейни Урбана.(Конечно, использование вилки может сломать другие вещи ...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...