Can't build 5 ports in arm64/aarch64 on PBP

From: KIRIYAMA Kazuhiko <kiri_at_truefc.org>
Date: Wed, 19 Jan 2022 01:30:23 UTC
Hi, lists

I've tried to build arm64/aarch64 packages on Pinebook Pro (PBP). 15 ports
out of 80 were failed. Besides ports which could not be built in
arm64/aarch64 in the first place, 9 ports remained. 4 ports out of the 9 are
textproc/smartdoc-devel, print/pdftk, japanese/libreoffice,
java/icedtea-web. These could be built by upgrade Jave version from 8 to 12.
Eventually, followng 5 ports remained with CANNOT BUILD PORTS :

1) japanese/tgif, graphics/inkscape, japanese/xv

These were failed with linker error at graphics/jasper :

ld: error: undefined symbol: glutSetWindowTitle
>>> referenced by jiv.c
>>>               src/appl/CMakeFiles/jiv.dir/jiv.c.o:(loadimage)

ld: error: undefined symbol: glutTimerFunc
>>> referenced by jiv.c
>>>               src/appl/CMakeFiles/jiv.dir/jiv.c.o:(loadimage)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[4]: stopped in /var/ports/lpbpkx/graphics/jasper

2) www/firefox

Failed at devel/llvm13 :

[ 65% 4725/7265] /usr/bin/c++ -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/ports/work/usr/ports/devel/llvm13/work/.build/tools/flang/lib/Evaluate -I/var/ports/work/usr/ports/devel/llvm13/work/llvm-project-13.0.0.src/flang/lib/Evaluate -I/var/ports/work/usr/ports/devel/llvm13/work/llvm-project-13.0.0.src/flang/include -I/var/ports/work/usr/ports/devel/llvm13/work/.build/tools/flang/include -I/var/ports/work/usr/ports/devel/llvm13/work/.build/include -I/var/ports/work/usr/ports/devel/llvm13/work/llvm-project-13.0.0.src/llvm/include -isystem /var/ports/work/usr/ports/devel/llvm13/work/llvm-project-13.0.0.src/llvm/../mlir/include -isystem /var/ports/work/usr/ports/devel/llvm13/work/.build/tools/mlir/include -isystem /var/ports/work/usr/ports/devel/llvm13/work/.build/tools/clang/include -isystem /var/ports/work/usr/ports/devel/llvm13/work/llvm-project-13.0.0.src/llvm/../clang/include -O2 -pipe -DNDEBUG -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -DNDEBUG -isystem /usr/local/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-string-conversion -Wno-unused-command-line-argument -Wstring-conversion           -Wcovered-switch-default -Wno-nested-anon-types -O2 -pipe -DNDEBUG -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -DNDEBUG -isystem /usr/local/include  -fno-exceptions -std=c++17 -MD -MT tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/check-expression.cpp.o -MF tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/check-expression.cpp.o.d -o tools/flang/lib/Evaluate/CMakeFiles/obj.FortranEvaluate.dir/check-expression.cpp.o -c /var/ports/work/usr/ports/devel/llvm13/work/llvm-project-13.0.0.src/flang/lib/Evaluate/check-expression.cpp
ninja: build stopped: subcommand failed.
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[3]: stopped in /var/ports/lpbpkx/devel/llvm13
*** Error code 1

Stop.
make[2]: stopped in /var/ports/lpbpkx/devel/wasi-libc
*** Error code 1

Stop.
make[1]: stopped in /var/ports/lpbpkx/devel/wasi-libcxx
*** Error code 1

Stop.
make: stopped in /usr/ports/www/firefox

3) www/chromium

Failed with "'__CPUELT' is invalid in C99" at sysutils/flock :

libtool: compile:  cc -DHAVE_CONFIG_H -I. -include config.h -I./include -DLOCALEDIR=\"/usr/local/share/locale\" -D_PATH_LOCALSTATEDIR=\"/var\" -I/usr/local/include -fsigned-char -fno-common -Wall -Werror=sequence-point -Wextra -Wextra-se
mi -Wembedded-directive -Wmissing-declarations -Wmissing-prototypes -Wno-missing-field-initializers -Wredundant-decls -Wsign-compare -Wtype-limits -Wuninitialized -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -W
unused-result -Wunused-variable -Wnested-externs -Wpointer-arith -Wstrict-prototypes -Wformat-security -Wimplicit-function-declaration -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -MT lib/libcommon_la-parse-date.lo -MD -MP -MF
 lib/.deps/libcommon_la-parse-date.Tpo -c lib/parse-date.c -o lib/libcommon_la-parse-date.o >/dev/null 2>&1
mv -f lib/.deps/libcommon_la-parse-date.Tpo lib/.deps/libcommon_la-parse-date.Plo
/bin/sh ./libtool  --tag=CC   --mode=compile cc -DHAVE_CONFIG_H -I.  -include config.h  -I./include  -DLOCALEDIR=\"/usr/local/share/locale\"  -D_PATH_LOCALSTATEDIR=\"/var\" -I/usr/local/include -fsigned-char -fno-common -Wall -Werror=seq
uence-point -Wextra -Wextra-semi -Wembedded-directive -Wmissing-declarations -Wmissing-prototypes -Wno-missing-field-initializers -Wredundant-decls -Wsign-compare -Wtype-limits -Wuninitialized -Wunused-but-set-parameter -Wunused-but-set-
variable -Wunused-parameter -Wunused-result -Wunused-variable -Wnested-externs -Wpointer-arith -Wstrict-prototypes -Wformat-security -Wimplicit-function-declaration -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -MT lib/libcomm
on_la-path.lo -MD -MP -MF lib/.deps/libcommon_la-path.Tpo -c -o lib/libcommon_la-path.lo `test -f 'lib/path.c' || echo './'`lib/path.c
libtool: compile:  cc -DHAVE_CONFIG_H -I. -include config.h -I./include -DLOCALEDIR=\"/usr/local/share/locale\" -D_PATH_LOCALSTATEDIR=\"/var\" -I/usr/local/include -fsigned-char -fno-common -Wall -Werror=sequence-point -Wextra -Wextra-se
mi -Wembedded-directive -Wmissing-declarations -Wmissing-prototypes -Wno-missing-field-initializers -Wredundant-decls -Wsign-compare -Wtype-limits -Wuninitialized -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-parameter -W
unused-result -Wunused-variable -Wnested-externs -Wpointer-arith -Wstrict-prototypes -Wformat-security -Wimplicit-function-declaration -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -MT lib/libcommon_la-path.lo -MD -MP -MF lib/.
deps/libcommon_la-path.Tpo -c lib/path.c  -fPIC -DPIC -o lib/.libs/libcommon_la-path.o
In file included from lib/path.c:31:
In file included from ./include/path.h:24:
./include/cpuset.h:80:7: error: expected expression
                if (CPU_ISSET_S(cpu, setsize, ary[i])) {
                    ^
./include/cpuset.h:41:25: note: expanded from macro 'CPU_ISSET_S'
      ? ((((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]              \
                        ^
./include/cpuset.h:80:7: error: use of undeclared identifier '__cpu_mask'
./include/cpuset.h:41:13: note: expanded from macro 'CPU_ISSET_S'
      ? ((((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]              \
            ^
./include/cpuset.h:80:7: warning: implicit declaration of function '__CPUELT' is invalid in C99 [-Wimplicit-function-declaration]
./include/cpuset.h:41:48: note: expanded from macro 'CPU_ISSET_S'
      ? ((((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]              \
                                               ^
./include/cpuset.h:80:7: warning: implicit declaration of function '__CPUMASK' is invalid in C99 [-Wimplicit-function-declaration]
./include/cpuset.h:42:6: note: expanded from macro 'CPU_ISSET_S'
          & __CPUMASK (__cpu))) != 0                                          \
            ^
./include/cpuset.h:80:3: error: statement requires expression of scalar type ('void' invalid)
                if (CPU_ISSET_S(cpu, setsize, ary[i])) {
                ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings and 3 errors generated.
*** Error code 1

Stop.
make[2]: stopped in /var/ports/work/usr/ports/sysutils/flock/work/util-linux-2.30.1
*** Error code 1

Stop.
make[1]: stopped in /var/ports/lpbpkx/sysutils/flock
*** Error code 1

Stop.
make: stopped in /usr/ports/www/chromium


Is there any suggetions ?

My package build machine environments are as follows :

Ports branch is 7216c1d263e8 and others are :

root@kazu:~ # uname -a
FreeBSD kazu.tfc 14.0-CURRENT FreeBSD 14.0-CURRENT #0 n251838-90c89dc67099-dirty: Mon Jan  3 15:41:32 JST 2022     root@tbedfc:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC-DRM  arm64
root@kazu:~ # df -h
Filesystem                                                                         Size    Used   Avail Capacity  Mounted on
/dev/mmcsd0p3                                                                      105G    889M     96G     1%    /
devfs                                                                              1.0K    1.0K      0B   100%    /dev
tmpfs                                                                               11G     52K     11G     0%    /tmp
linprocfs                                                                          4.0K    4.0K      0B   100%    /compat/linux/proc
tmpfs                                                                               11G    4.0K     11G     0%    /compat/linux/dev/shm
linsysfs                                                                           4.0K    4.0K      0B   100%    /compat/linux/sys
devfs                                                                              1.0K    1.0K      0B   100%    /compat/linux/dev
fdescfs                                                                            1.0K    1.0K      0B   100%    /compat/linux/dev/fd
192.168.1.17:/.dake                                                                 12T    965G     11T     8%    /.dake
192.168.1.17:/ds/src/freebsd/current/14.0/90c89dc67099.generic_drm                  11T     70G     11T     1%    /usr/src
192.168.1.17:/ds/obj/freebsd/current/14.0/90c89dc67099.generic_drm                  11T    410G     11T     4%    /usr/obj
192.168.1.17:/ds/ports/freebsd/7216c1d263e8                                         11T    107G     11T     1%    /usr/ports
192.168.1.17:/ds/distfiles                                                          11T     53G     11T     0%    /var/ports/distfiles
192.168.1.17:/ds/packages/freebsd/arm64/aarch64/14.0C/90c89dc67099/7216c1d263e8     11T    114G     11T     1%    /var/ports/packages
root@kazu:~ # cat /etc/make.conf
PORTSDIR=               /var/ports/lpbpkx
INDEXDIR=               /var/ports/lpbpkx
WRKDIRPREFIX=           /var/ports/work
PACKAGES=               /var/ports/packages
DISTDIR=                /var/ports/distfiles
BATCH=                  yes
DEFAULT_VERSIONS=       perl5=5.34 ruby=2.7 java=12
COMPILER_TYPE=          clang
USE_PACKAGE_DEPENDS=    yes
DISABLE_VULNERABILITIES=yes
root@kazu:~ # 

GENERIC-DRM kernel was built by `git subtree add' to 14.0-CURRENT
(08ff54dc5b5d) for Panfrost driver [1] :

First `git subtree add' to 14.0-CURRENT (08ff54dc5b5d) in src server :

root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git checkout 08ff54dc5b5d
HEAD is now at 08ff54dc5b5d aw_spi: improve I/O stability
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git remote add drm-subtree https://github.com/jsm222/drm-subtree.git
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git subtree add --prefix sys/dev/drm/ drm-subtree pinebookpro-test
git fetch drm-subtree pinebookpro-test
remote: Enumerating objects: 794, done.
remote: Counting objects: 100% (794/794), done.
remote: Compressing objects: 100% (518/518), done.
remote: Total 794 (delta 370), reused 685 (delta 264), pack-reused 0
Receiving objects: 100% (794/794), 1.14 MiB | 5.09 MiB/s, done.
Resolving deltas: 100% (370/370), done.
From https://github.com/jsm222/drm-subtree
 * branch                      pinebookpro-test -> FETCH_HEAD
 * [new branch]                pinebookpro-test -> drm-subtree/pinebookpro-test
Added dir 'sys/dev/drm'
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git apply sys/dev/drm/extra_patches/0001-Hook-DRM-to-the-build.patch
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git apply sys/dev/drm/extra_patches/0002-Add-GENERIC-DRM-for-armv7.patch
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git apply sys/dev/drm/extra_patches/0003-drm-Add-rockchip-and-bridges-into-GENERIC-DRM.patch
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/gicv3_its.c-patch
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/mixer.c.patch
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/sys_dev_iicbus_es8316.c
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/GENERIC-DRM.patch
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/sys_modules_dtb_rockchip_Makefile.patch
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/mmc.c.patch
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # git rev-parse --verify --short HEAD
90c89dc67099
root@vm:/ds/src/freebsd/current/14.0/08ff54dc5b5d.generic_drm # cd ..
root@vm:/ds/src/freebsd/current/14.0 # mv 08ff54dc5b5d.generic_drm 90c89dc67099.generic_drm

and then build GENERIC-DRM in PBP :
 
# cd /usr/src
# make buildworld TARGET=arm64
# make buildkernel TARGET=arm64 KERNCONF=GENERIC-DRM

Best regards

[1] https://github.com/jsm222/drm-subtree
---
Kazuhiko Kiriyama <kiri@truefc.org>