如何解决在 aarch64 docker 容器中编译 clisp 源代码
我想在 Ubuntu16.04 aarch64 docker 容器(在 aarch64 服务器中启动)中编译 xindy 之前编译 clisp 源代码。 gcc 是:
gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
copyright (C) 2015 Free Software Foundation,Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or fitness FOR A PARTIculaR PURPOSE.
操作系统信息为:
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
当我运行下面的命令时
cd clisp-clisp_2_49_60-2017-06-25
./configure --ignore-absence-of-libsigsegv
cd src
make
错误表明:
./comment5 arilev1e.d | ./gctrigger | ./varbrace > arilev1e.c
./comment5 arilev1i.d | ./gctrigger | ./varbrace > arilev1i.c
./comment5 genclisph.d | ./gctrigger | ./varbrace > genclisph.c
./comment5 noreadline.d | ./gctrigger | ./varbrace > noreadline.c
./comment5 lispbibl.d | sed -e '/^%% /
{s///;p;d;}
' -e '/^#line /!s/.*//' > gen.lispbibl.c
gcc -I/mnt/clisp-clisp_2_49_60-2017-06-25/src/gllib -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wreturn-type -Wmissing-declarations -Wimplicit -Wno-sign-compare -Wno-format-nonliteral -O2 -fwrapv -fno-strict-aliasing -DENABLE_UNICODE -DDYNAMIC_MODULES -I. -c spvw.c
In file included from spvw.d:23:0:
lispbibl.d:3953:4: error: #error varobject_alignment depends on cpu – readjust varobject_alignment!!
#error varobject_alignment depends on cpu – readjust varobject_alignment!!
^
lispbibl.d:7111:60: error: 'varobject_alignment' undeclared here (not in a function)
typedef int subr_size_check[1 - 2 * (int)(sizeof(subr_t) % varobject_alignment)];
^
In file included from spvw.d:998:0:
spvw_garcol.d:1382:4: error: #error UnkNown value for 'varobject_alignment'!
#error UnkNown value for 'varobject_alignment'!
^
spvw_garcol.d: In function 'gc_sweep2_varobject_page':
spvw_garcol.d:1396:9: error: 'uintVLA' undeclared (first use in this function)
(uintVLA)p2 = (uintVLA)p1; \
^
spvw_garcol.d:1430:6: note: in expansion of macro 'move_aligned_p1_p2'
move_aligned_p1_p2(count); /* relocate and advance */
^
spvw_garcol.d:1396:9: note: each undeclared identifier is reported only once for each function it appears in
(uintVLA)p2 = (uintVLA)p1; \
^
spvw_garcol.d:1430:6: note: in expansion of macro 'move_aligned_p1_p2'
move_aligned_p1_p2(count); /* relocate and advance */
^
spvw_garcol.d:1396:17: error: expected expression before ')' token
(uintVLA)p2 = (uintVLA)p1; \
^
spvw_garcol.d:1430:6: note: in expansion of macro 'move_aligned_p1_p2'
move_aligned_p1_p2(count); /* relocate and advance */
^
spvw_garcol.d:1396:17: error: expected expression before ')' token
(uintVLA)p2 = (uintVLA)p1; \
^
spvw_garcol.d:1490:2: note: in expansion of macro 'move_aligned_p1_p2'
move_aligned_p1_p2(count); /* relocate and advance */
^
spvw.d: In function 'getSP':
spvw.d:1115:10: warning: function returns address of local variable [-Wreturn-local-addr]
return &dummy;
^
spvw.d: At top level:
spvw.d:1346:23: warning: no prevIoUs declaration for 'error_pseudocode_alignment' [-Wmissing-declarations]
global _noreturn void error_pseudocode_alignment (uintP address,const char* prefix,const char* name) {
^
In file included from spvw.d:954:0:
如何在 aarch64 docker 容器中编译 clisp 源代码(clisp-clisp_2_49_60-2017-06-25)?
解决方法
您在使用 clisp_2_49_60-2017-06-25 时遇到的问题已在 clisp 2.49.92(从 2018-02-18 开始)中得到修复。
您可以从 https://alpha.gnu.org/gnu/clisp/ 下载。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。