简体   繁体   English

在 aarch64 docker 容器中编译 clisp 源代码

[英]compile clisp source code in aarch64 docker container

I want to compile clisp source code before compiling xindy in Ubuntu16.04 aarch64 docker container(which started in aarch64 server).我想在 Ubuntu16.04 aarch64 docker 容器(在 aarch64 服务器中启动)中编译 xindy 之前编译 clisp 源代码。 The gcc is: 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.

The OS information is:操作系统信息是:

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

When I run the commands below当我运行以下命令时

cd clisp-clisp_2_49_60-2017-06-25
./configure --ignore-absence-of-libsigsegv
cd src
make

the error shows that:该错误表明:

    ./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:

How could I do to compile clisp source code(clisp-clisp_2_49_60-2017-06-25) in a aarch64 docker container?我该如何在 aarch64 docker 容器中编译 clisp 源代码(clisp-clisp_2_49_60-2017-06-25)?

The problem that you have with clisp_2_49_60-2017-06-25 is fixed in clisp 2.49.92 (from 2018-02-18). clisp_2_49_60-2017-06-25 的问题已在 clisp 2.49.92(从 2018-02-18 开始)中得到修复。

You can download it from https://alpha.gnu.org/gnu/clisp/ .您可以从https://alpha.gnu.org/gnu/clisp/下载它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM