perl - 在 ARM 上编译 Perl : Undefined reference to '__stack_chk_guard'

标签 perl arm

对,所以我正在 ARM 设备上编译 perl。它配置良好,所以我开始编译过程。完成依赖项后,我得到以下输出:

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 的源代码,以便我可以自己编译它并手动链接到它,但找不到它

有什么想法吗?

最佳答案

发布答案以将此问题从“未回答”列表中删除...

根据 @Alex 对原始问题的评论,解决方案是运行

./Configure -Accflags="-fno-stack-protector"

然后重建。重要的一点是,您必须使用 -fno-stack-protector编译每个源文件,以消除对 __stack_chk_guard 的调用。在链接阶段手动传递-fno-stack-protector不会做任何有用的事情。

关于perl - 在 ARM 上编译 Perl : Undefined reference to '__stack_chk_guard' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291082/

相关文章:

linux - 如何重写这个多重 OR 条件,以便它使用 Perl "for"循环?

selenium - Selenium 的最小 perl 脚本是什么?

c++ - 获取无效参数错误 (22)

c - 在 arm-none-eabi-gcc 中使用显式字节顺序进行复制的优化

ios - 在 iOS 上使用 NEON 改进代码 - 使用 VCEQ 然后使用 VBIT

linux - 是否可以在 big endian、arm32、linux=2.6.34 上运行 docker?

perl - Perl如何与正在运行的脚本进行交互?

perl - 对使用 perl 合并哈希输出感到困惑

perl - Perl 代码中的依赖关系

c - 使用数组和指针算法闪烁 LED