ksh: Build fails on FreeBSD aarch64

It might be rather nooby problem(as I am not a programmer) but I have a problem with compiling any ksh on Freebsd 12.2 aarch64. I have tried att/ast one and this repo as it is marked as broken for arm64 architecture in ports. When I run package make, ends at the error shown below. I have read both open and closed issues but could not found the similar one so I am posting here. Any ideas how to make it compile? Thank you for your help.

package: make start at Tue Jan 12 17:26:27 UTC 2021 in /home/freebsd/ksh/arch/freebsd12.arm64-64
CC=cc
SHELL=/usr/local/bin/bash
HOSTTYPE=freebsd12.arm64-64
NPROC=4
PACKAGEROOT=/home/freebsd/ksh
INSTALLROOT=/home/freebsd/ksh/arch/freebsd12.arm64-64
PATH=/home/freebsd/ksh/arch/freebsd12.arm64-64/bin/ok:/home/freebsd/ksh/arch/freebsd12.arm64-64/bin:/home/freebsd/ksh/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/freebsd/bin
+ mamake -r '*/*' install
+ mamake -C cmd/INIT install
+ test '' = ignore
+ /usr/bin/cmp -s ignore /home/freebsd/ksh/bin/ignore
+ test '' = mamprobe
+ /usr/bin/cmp -s mamprobe /home/freebsd/ksh/bin/mamprobe
+ test '' = package
+ /usr/bin/cmp -s package /home/freebsd/ksh/bin/package
+ test '' = silent
+ /usr/bin/cmp -s silent /home/freebsd/ksh/bin/silent
+ test '' = package.mk
+ /usr/bin/cmp -s /home/freebsd/ksh/src/cmd/INIT/package.mk /home/freebsd/ksh/arch/freebsd12.arm64-64/lib/make/package.mk
+ test '' = mamake
+ /usr/bin/cmp -s mamake /home/freebsd/ksh/arch/freebsd12.arm64-64/bin/mamake
+ test '' = proto
+ /usr/bin/cmp -s proto /home/freebsd/ksh/arch/freebsd12.arm64-64/bin/proto
+ test '' = ratz
+ /usr/bin/cmp -s ratz /home/freebsd/ksh/arch/freebsd12.arm64-64/bin/ratz
+ test '' = release
+ /usr/bin/cmp -s release /home/freebsd/ksh/arch/freebsd12.arm64-64/bin/release
+ test '!' -x /home/freebsd/ksh/arch/freebsd12.arm64-64/bin/mkdir -a -x /bin/mkdir
+ mkdir -p
+ :
+ test -d ./-p
+ test '' = mprobe
+ /usr/bin/cmp -s mprobe /home/freebsd/ksh/arch/freebsd12.arm64-64/lib/probe/C/mam/probe
+ test '' = probe
+ /usr/bin/cmp -s probe /home/freebsd/ksh/arch/freebsd12.arm64-64/lib/probe/C/make/probe
+ test '' = prototyped.h
+ /usr/bin/cmp -s prototyped.h /home/freebsd/ksh/arch/freebsd12.arm64-64/include/ast/prototyped.h
+ test '' = dl.req
+ /usr/bin/cmp -s dl.req /home/freebsd/ksh/arch/freebsd12.arm64-64/lib/lib/dl
+ mamake -C lib/libast install
+ test '' = man/LIBAST.3
+ /usr/bin/cmp -s /home/freebsd/ksh/src/lib/libast/man/LIBAST.3 /home/freebsd/ksh/arch/freebsd12.arm64-64/man/man3/LIBAST.3
+ test '' = ast.req
+ /usr/bin/cmp -s ast.req /home/freebsd/ksh/arch/freebsd12.arm64-64/lib/lib/ast
+ proto -p -s -l /home/freebsd/ksh/lib/package/ast.lic '-o since=1985,author=gsf+dgk+kpv' ast_common.h
+ cmp -s /home/freebsd/ksh/arch/freebsd12.arm64-64/include/ast/ast_common.h 1.1819.x
+ rm -f 1.1819.x
+ case freebsd12.arm64-64 in
+ silent grep -l 'define[ 	][ 	]*_[hl][di][rb]_fmtmsg' ast_lib.h
+ case freebsd12.arm64-64 in
+ silent grep -l 'define[ 	][ 	]*_[hl][di][rb]_libgen' ast_lib.h
+ case freebsd12.arm64-64 in
+ silent grep -l 'define[ 	][ 	]*_[hl][di][rb]_syslog' ast_lib.h
+ mamake -C lib/libdll install
+ cc -D_BLD_DLL -fPIC '-D_AST_git_commit="4d5e21de"' -I. -I/home/freebsd/ksh/src/lib/libdll -I/home/freebsd/ksh/arch/freebsd12.arm64-64/include/ast -D_PACKAGE_ast -D_BLD_dll -c /home/freebsd/ksh/src/lib/libdll/dllplug.c
/home/freebsd/ksh/src/lib/libdll/dllplug.c:41:2: error: unknown type name 'Dllscan_t'; did you mean 'Dllstate_t'?
        Dllscan_t*      dls;
        ^~~~~~~~~
        Dllstate_t
/home/freebsd/ksh/src/lib/libdll/dlllib.h:32:3: note: 'Dllstate_t' declared here
} Dllstate_t;
  ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:42:2: error: use of undeclared identifier 'Dllent_t'
        Dllent_t*       dle;
        ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:42:12: error: use of undeclared identifier 'dle'
        Dllent_t*       dle;
                        ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:47:13: warning: implicit declaration of function 'dllsopen' is invalid in C99 [-Wimplicit-function-declaration]
                if (dls = dllsopen(lib, name, ver))
                          ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:47:11: warning: incompatible integer to pointer conversion assigning to 'Dllstate_t *' (aka 'struct Dllstate_s *') from 'int' [-Wint-conversion]
                if (dls = dllsopen(lib, name, ver))
                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~
/home/freebsd/ksh/src/lib/libdll/dllplug.c:49:17: warning: implicit declaration of function 'dllsread' is invalid in C99 [-Wimplicit-function-declaration]
                        while (dle = dllsread(dls))
                                     ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:49:11: error: use of undeclared identifier 'dle'
                        while (dle = dllsread(dls))
                               ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:55:15: warning: implicit declaration of function 'dllopen' is invalid in C99 [-Wimplicit-function-declaration]
                                if (dll = dllopen(dle->path, flags|RTLD_GLOBAL|RTLD_PARENT))
                                          ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:55:40: error: use of undeclared identifier 'RTLD_GLOBAL'
                                if (dll = dllopen(dle->path, flags|RTLD_GLOBAL|RTLD_PARENT))
                                                                   ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:55:52: error: use of undeclared identifier 'RTLD_PARENT'
                                if (dll = dllopen(dle->path, flags|RTLD_GLOBAL|RTLD_PARENT))
                                                                               ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:55:23: error: use of undeclared identifier 'dle'
                                if (dll = dllopen(dle->path, flags|RTLD_GLOBAL|RTLD_PARENT))
                                                  ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:57:11: warning: implicit declaration of function 'dllcheck' is invalid in C99 [-Wimplicit-function-declaration]
                                        if (!dllcheck(dll, dle->path, rel, cur))
                                             ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:57:25: error: use of undeclared identifier 'dle'
                                        if (!dllcheck(dll, dle->path, rel, cur))
                                                           ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:60:7: warning: implicit declaration of function 'dlclose' is invalid in C99 [-Wimplicit-function-declaration]
                                                dlclose(dll);
                                                ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:65:21: error: use of undeclared identifier 'dle'
                                                strlcpy(path, dle->path, size);
                                                              ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:93:74: warning: implicit declaration of function 'dllerror' is invalid in C99 [-Wimplicit-function-declaration]
                                        errorf("dll", NiL, 1, "dllplugin: %s dlopen failed: %s", dle->path, dllerror(1));
                                                                                                            ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:93:63: error: use of undeclared identifier 'dle'
                                        errorf("dll", NiL, 1, "dllplugin: %s dlopen failed: %s", dle->path, dllerror(1));
                                                                                                 ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:97:4: warning: implicit declaration of function 'dllsclose' is invalid in C99 [-Wimplicit-function-declaration]
                        dllsclose(dls);
                        ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:109:12: warning: implicit declaration of function 'dllopen' is invalid in C99 [-Wimplicit-function-declaration]
        if (dll = dllopen(name, flags))
                  ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:109:10: warning: incompatible integer to pointer conversion assigning to 'void *' from 'int' [-Wint-conversion]
        if (dll = dllopen(name, flags))
                ^ ~~~~~~~~~~~~~~~~~~~~
/home/freebsd/ksh/src/lib/libdll/dllplug.c:111:8: warning: implicit declaration of function 'dllcheck' is invalid in C99 [-Wimplicit-function-declaration]
                if (!dllcheck(dll, name, rel, cur))
                     ^
/home/freebsd/ksh/src/lib/libdll/dllplug.c:113:4: warning: implicit declaration of function 'dlclose' is invalid in C99 [-Wimplicit-function-declaration]
                        dlclose(dll);
                        ^
12 warnings and 10 errors generated.
mamake [lib/libdll]: *** exit code 1 making dllplug.o
mamake: *** exit code 1 making lib/libdll
mamake: *** exit code 1 making all
package: make done  at Tue Jan 12 17:26:28 UTC 2021 in /home/freebsd/ksh/arch/freebsd12.arm64-64

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 26

Commits related to this issue

Most upvoted comments

It has compiled successfully. Thank you again!

@McDutchie To assist in these efforts, I can give you temporary access to a FreeBSD arm64 little box. Just message me under the #ksh channel on https://freenode.net/ using the https://webchat.freenode.net/ or another compatible IRC app.