#perl #arm
#perl #arm
Вопрос:
Правильно, итак, я компилирую perl на устройстве ARM. Он настраивается нормально, поэтому я запускаю процесс компиляции. После завершения зависимостей я получаю этот вывод:
cc -L/lib -L/usr/lib -L/usr/local/lib -o miniperl
gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o keywords.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o
miniperlmain.o opmini.o perlmini.o -lnsl -ldl -lm -lcrypt -lutil -lc
gv.o: In function `Perl_gv_stashpvn':
gv.c:(.text 0x5794): undefined reference to `__stack_chk_fail'
gv.c:(.text 0x5798): undefined reference to `__stack_chk_guard'
то же самое и для загрузки других файлов. Я пытался:
- -fno-stack-protector, -fstack-protector, -fstack-protector-all: никакого эффекта
- -lssp: не удается найти файл. В моей системе нет файла с именем ‘libssp’
- Ищу исходный код для libssp, чтобы я мог скомпилировать его сам и ссылаться на него вручную, не могу его найти
Есть идеи?
Комментарии:
1. Возможно, вы захотите предоставить дополнительную информацию, версию perl, OS amp; version, флаги в ./Configure.
2. Хорошо … perl 5.14.0, linux 2.6.12.6-arm1, нет флагов/Configure
3. возможно, вам повезет с запуском ./Configure -Accflags=»-fno-stack-protector», затем восстановление. если нет, я бы подумал об отправке отчета об ошибке на p5p. (добавление -fno-stack-protector только к строке выше не сработает, поскольку это всего лишь ссылка).
4. Возможно, вы захотите проверить версию среды выполнения GCC. Смотрите обсуждение на discussy. joyent.com/viewtopic.php?id=26834 .
Ответ №1:
Публикую ответ, чтобы исключить этот вопрос из списка «без ответа»…
Согласно комментарию @Alex к исходному вопросу, решением было запустить
./Configure -Accflags="-fno-stack-protector"
а затем перестроить. Важным моментом является то, что вы должны скомпилировать каждый исходный файл с -fno-stack-protector
, чтобы избавиться от вызовов __stack_chk_guard
. Передача вручную -fno-stack-protector
на этапе связывания ничего полезного не дает.