Anyone tried Anbox-4-arm64 yet?
#1
I'm curious (yes, I know I could make another SD , and I just might) if anyone using the Debian or Ubuntu builds has tried out Anbox-arm64 yet?

I tried messing with some pkgbuilds in Manjaro to get the correct android.img to download, but hit an error, closed it out, and promptly forgot what happened. :/
I have snapd installed, but the wifi just crapped out (connected, but with ? in the icon for each connect I try.) If I have time tonight, I'm going to try to install the snap. I figured I'd reach out here and see if anyone got this idea in their head and whether the succeeded or failed, and potentially why.
  Reply
#2
I'd be interested to know how this runs as well, haven't received my PBP yet, so I can't give it a try...
  Reply
#3
I was just doing it. The problem right now are the kernel modules. While building them, it shows me:
Quote:DKMS make.log for anbox-1 for kernel 4.4.190-1233-rockchip-ayufan-gd3f1be0ed310 (aarch64)
Sun Dec 22 10:35:49 CET 2019
make: Entering directory '/var/lib/dkms/anbox/1/build/ashmem'
make -C /lib/modules/4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/build V=0 M=$PWD
make[1]: Entering directory '/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310'
LD /var/lib/dkms/anbox/1/build/ashmem/built-in.o
CC [M] /var/lib/dkms/anbox/1/build/ashmem/deps.o
CC [M] /var/lib/dkms/anbox/1/build/ashmem/ashmem.o
gcc: error: unrecognized command line option '-mgeneral-regs-only'
gcc: error: unrecognized command line option '-mcmodel=large'
scripts/Makefile.build:277: recipe for target '/var/lib/dkms/anbox/1/build/ashmem/ashmem.o' failed
make[2]: *** [/var/lib/dkms/anbox/1/build/ashmem/ashmem.o] Error 1
make[2]: *** Waiting for unfinished jobs....
gcc: error: unrecognized command line option '-mgeneral-regs-only'
gcc: error: unrecognized command line option '-mcmodel=large'
scripts/Makefile.build:277: recipe for target '/var/lib/dkms/anbox/1/build/ashmem/deps.o' failed
make[2]: *** [/var/lib/dkms/anbox/1/build/ashmem/deps.o] Error 1
Makefile:1479: recipe for target '_module_/var/lib/dkms/anbox/1/build/ashmem' failed
make[1]: *** [_module_/var/lib/dkms/anbox/1/build/ashmem] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310'
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2
make: Leaving directory '/var/lib/dkms/anbox/1/build/ashmem'

If you have any solution to this, I'll be happy to try this out!
  Reply
#4
I wish I did! I've been trying on Manjaro. I was able to install the kernel headers from the AUR. Though using packages from Reborn OS helped. Maybe you can try their Anbox kernel modules. They have me no issues installing.
  Reply
#5
tophneal - did you get Anbox working in the end?
  Reply
#6
Not yet. In fact, after having so many issues that I couldn't troubleshoot effectively while using Anbox-Reborn from the AUR (I may still revisit it, as there is an arm64 Android build buried in the Anbox repo, and I believe the issue was caused by Anbox-Reborn wanting to use the standard x86 img,) I came across another potential option: SPURV. It's supposed to be like Anbox, but for Wayland (which I use.)

Since it builds Android, I've been using this guide to allow compiling Google Android sources on aarch64. I haven't made it very far into the guide, just got my Go and Ninja installed. I'm a bit stuck right now, as it calls for using emerge to replace the specific tools provided by Google with the locally installed versions. I've never run across the emerge command before, so I'm still looking into its proper usage in this case, so I don't bork my efforts.

My initial Anbox efforts were actually cut short, due to running out of free space. I should have some more/new externals to download source to, later this week. Once I do, I'm going to give building Anbox from scratch another shot, since there appears to be some tiny bit of arm64 support that has slowly crept into it over the last 6 months.

(Links to my resources added for anyone else curious to try.)

(12-22-2019, 03:42 AM)brent.thierens Wrote: I was just doing it. The problem right now are the kernel modules. While building them, it shows me:
Quote:DKMS make.log for anbox-1 for kernel 4.4.190-1233-rockchip-ayufan-gd3f1be0ed310 (aarch64)
Sun Dec 22 10:35:49 CET 2019
make: Entering directory '/var/lib/dkms/anbox/1/build/ashmem'
make -C /lib/modules/4.4.190-1233-rockchip-ayufan-gd3f1be0ed310/build V=0 M=$PWD
make[1]: Entering directory '/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310'
  LD      /var/lib/dkms/anbox/1/build/ashmem/built-in.o
  CC [M]  /var/lib/dkms/anbox/1/build/ashmem/deps.o
  CC [M]  /var/lib/dkms/anbox/1/build/ashmem/ashmem.o
gcc: error: unrecognized command line option '-mgeneral-regs-only'
gcc: error: unrecognized command line option '-mcmodel=large'
scripts/Makefile.build:277: recipe for target '/var/lib/dkms/anbox/1/build/ashmem/ashmem.o' failed
make[2]: *** [/var/lib/dkms/anbox/1/build/ashmem/ashmem.o] Error 1
make[2]: *** Waiting for unfinished jobs....
gcc: error: unrecognized command line option '-mgeneral-regs-only'
gcc: error: unrecognized command line option '-mcmodel=large'
scripts/Makefile.build:277: recipe for target '/var/lib/dkms/anbox/1/build/ashmem/deps.o' failed
make[2]: *** [/var/lib/dkms/anbox/1/build/ashmem/deps.o] Error 1
Makefile:1479: recipe for target '_module_/var/lib/dkms/anbox/1/build/ashmem' failed
make[1]: *** [_module_/var/lib/dkms/anbox/1/build/ashmem] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.4.190-1233-rockchip-ayufan-gd3f1be0ed310'
Makefile:8: recipe for target 'all' failed
make: *** [all] Error 2
make: Leaving directory '/var/lib/dkms/anbox/1/build/ashmem'

If you have any solution to this, I'll be happy to try this out!

I just remembered the Reborn OS packages would be a bigger headache for you, since it's Arch based.

Are you building the modules yourself, or from the morphis/anbox-support PPA?
  Reply
#7
Very cool! Please keep us posted!
  Reply
#8
So I've had what at least feels like progress today, with anbox.

After adding the mirror for Reborn OS to pacman, I had access to anbox-reborn and anbox-modules-dkms-git. I edited the pkgbuild for anbox-image for aarch64 and pointed it toward the android arm64 image (linked in a previous post.)

Afterward, I had to get anbox-git installed. I opted for the version in the AUR over Reborn's, as for some reason I couldn't edit the pkgbuild of anbox-git from Reborn.

Here is the pkgbuild so far:

Code:
# Maintainer: Iwan Timmer <irtimmer@gmail.com>

pkgname=('anbox-git' 'anbox-modules-dkms-git')
_pkgname=anbox
pkgver=r1126.0a49ae0
pkgrel=1
epoch=1
arch=('aarch64')
url="http://anbox.io/"
license=('GPL3')
makedepends=('cmake' 'git' 'glm' 'lxc' 'sdl2_image' 'protobuf' 'boost' 'properties-cpp' 'gtest' 'python2')
source=("git+https://github.com/anbox/anbox.git"
"git+https://github.com/anbox/anbox-modules.git"
'anbox-container-manager.service'
'anbox-session-manager.service'
'99-anbox.rules'
'anbox.conf'
'anbox.desktop'
'anbox-bridge.network'
'anbox-bridge.netdev')
sha256sums=('SKIP'
           'SKIP'
           '5be94b63dc30d141f15ca7d1be6e3e81f26ef33f844614975537562f5d08236c'
           '1f22dbb5a3ca6925bbf62899cd0f0bbaa0b77c879adcdd12ff9d43adfa61b1d8'
           '210eb93342228168f7bb632c8b93d9bfda6f53f62459a6b74987fa1e17530475'
           '3e07dc524a827c1651857cce28a06c1565bc5188101c140ed213bbafedc5abff'
           '7332d09865be553a259a53819cebddd21f661c7a251d78c2f46acd75c66676b6'
           '44899328725667041e6e84912da81c1d0147b708006eb2c2bb6503f271629ff0'
           '559190df4d6d595480b30d8b13b862081fc4aac52790e33eb24cf7fbcb8003b8')

pkgver() {
 cd "$srcdir/$_pkgname"
 ( set -o pipefail
   git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' ||
   printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
 )
}

prepare() {
 cd "$srcdir/${_pkgname}"

 # Don't build tests
 truncate -s 0 cmake/FindGMock.cmake
 truncate -s 0 tests/CMakeLists.txt
}

build() {
 mkdir -p "$srcdir/${_pkgname}/build"
 cd "$srcdir/${_pkgname}/build"

 cmake .. -DCMAKE_INSTALL_LIBDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_CXX_FLAGS="-Wno-error=implicit-fallthrough -Wno-error=missing-field-initializers" -DCMAKE_BUILD_TYPE=Release
 make
}

package_anbox-git() {
 depends=('lxc' 'sdl2_image' 'protobuf' 'anbox-image' 'libsystemd' 'boost-libs')
 optdepends=('anbox-modules-dkms-git: Required Android kernel modules')
 pkgdesc="Running Android in a container"

 cd "$srcdir/${_pkgname}"
 make -C build DESTDIR="$pkgdir" install

 install -Dm 644 -t $pkgdir/usr/lib/systemd/system $srcdir/anbox-container-manager.service
 install -Dm 644 -t $pkgdir/usr/lib/systemd/user $srcdir/anbox-session-manager.service
 install -Dm 644 $srcdir/anbox-bridge.network $pkgdir/usr/lib/systemd/network/80-anbox-bridge.network
 install -Dm 644 $srcdir/anbox-bridge.netdev $pkgdir/usr/lib/systemd/network/80-anbox-bridge.netdev
 install -Dm 644 -t $pkgdir/usr/lib/udev/rules.d $srcdir/99-anbox.rules
 install -Dm 644 -t $pkgdir/usr/share/applications $srcdir/anbox.desktop
 install -Dm 644 snap/gui/icon.png $pkgdir/usr/share/pixmaps/anbox.png
}

package_anbox-modules-dkms-git() {
 pkgdesc="Required kernel module sources for Android"
 depends=('dkms')
 arch=('any')

 cd "$srcdir/anbox-modules"
 modules=(ashmem binder)
 for mod in "${modules[@]}"; do
   install -dm 755 $pkgdir/usr/src
   cp -a $mod $pkgdir/usr/src/anbox-modules-$mod-$pkgver
 done;

 install -Dm 644 -t $pkgdir/usr/lib/modules-load.d $srcdir/anbox.conf
}

Unfortunately, this has only gotten me so far:

Code:
Edit anbox-git build files

Cloning anbox-git build files...
Checking anbox-git dependencies...
Preparing...

Building anbox-git...
==> Making package: anbox-git 1:r1126.0a49ae0-1 (Fri 27 Dec 2019 03:21:12 PM EST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
 -> Updating anbox git repo...
Fetching origin
 -> Updating anbox-modules git repo...
Fetching origin
 -> Found anbox-container-manager.service
 -> Found anbox-session-manager.service
 -> Found 99-anbox.rules
 -> Found anbox.conf
 -> Found anbox.desktop
 -> Found anbox-bridge.network
 -> Found anbox-bridge.netdev
==> Validating source files with sha256sums...
   anbox ... Skipped
   anbox-modules ... Skipped
   anbox-container-manager.service ... Passed
   anbox-session-manager.service ... Passed
   99-anbox.rules ... Passed
   anbox.conf ... Passed
   anbox.desktop ... Passed
   anbox-bridge.network ... Passed
   anbox-bridge.netdev ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
 -> Creating working copy of anbox git repo...
Cloning into 'anbox'...
done.
 -> Creating working copy of anbox-modules git repo...
Cloning into 'anbox-modules'...
done.
==> Starting prepare()...
==> Starting pkgver()...
==> Removing existing $pkgdir/ directory...
==> Starting build()...
-- The C compiler identification is GNU 9.1.0
-- The CXX compiler identification is GNU 9.1.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Treat warnings as errors
-- Found Boost: /usr/lib/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: filesystem log serialization system thread program_options
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.6.3")
-- Found Threads: TRUE  
-- Found EGL: /usr/lib/libEGL.so  
-- Found GLESv2: /usr/lib/libGLESv2.so  
-- Found Protobuf: /usr/lib/libprotobuf.so;-lpthread (found version "3.11.1")
-- Checking for module 'sdl2'
--   Found sdl2, version 2.0.10
-- Checking for module 'SDL2_image'
--   Found SDL2_image, version 2.0.5
-- Checking for module 'dbus-1'
--   Found dbus-1, version 1.12.16
-- Checking for module 'lxc'
--   Found lxc, version 3.2.1
-- Checking for module 'properties-cpp'
--   Found properties-cpp, version 0.0.1
-- Checking for module 'libsystemd'
--   Found libsystemd, version 244
-- LXC version: 3.2.1
-- Found Boost: /usr/lib/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: iostreams system
-- Found Boost: /usr/lib/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: filesystem system unit_test_framework
-- Found libdw: /usr/lib/libdw.so  
-- Found libbfd: /usr/lib/libbfd.so  
-- Found libdwarf: /usr/lib/libdwarf.so  
-- Found Backward: /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp  
-- Configuring done
-- Generating done
-- Build files have been written to: /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/build
Scanning dependencies of target process-cpp
[  1%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/backtrace.cpp.o
[  1%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/child_process.cpp.o
[  2%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/exec.cpp.o
[  2%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/fork.cpp.o
[  2%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/process.cpp.o
[  3%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/process_group.cpp.o
[  3%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/signal.cpp.o
[  4%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/signalable.cpp.o
[  4%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/standard_stream.cpp.o
[  5%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/wait.cpp.o
[  5%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/this_process.cpp.o
[  5%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/linux/proc/process/oom_adj.cpp.o
[  6%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/linux/proc/process/oom_score.cpp.o
[  6%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/linux/proc/process/oom_score_adj.cpp.o
[  7%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/linux/proc/process/stat.cpp.o
[  7%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/testing/cross_process_sync.cpp.o
[  8%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/testing/fork_and_run.cpp.o
[  8%] Linking CXX static library libprocess-cpp.a
[  8%] Built target process-cpp
Scanning dependencies of target emugen
[  9%] Building CXX object external/android-emugl/host/tools/emugen/CMakeFiles/emugen.dir/ApiGen.cpp.o
[  9%] Building CXX object external/android-emugl/host/tools/emugen/CMakeFiles/emugen.dir/EntryPoint.cpp.o
[ 10%] Building CXX object external/android-emugl/host/tools/emugen/CMakeFiles/emugen.dir/main.cpp.o
[ 10%] Building CXX object external/android-emugl/host/tools/emugen/CMakeFiles/emugen.dir/Parser.cpp.o
[ 11%] Building CXX object external/android-emugl/host/tools/emugen/CMakeFiles/emugen.dir/strUtils.cpp.o
[ 11%] Building CXX object external/android-emugl/host/tools/emugen/CMakeFiles/emugen.dir/TypeFactory.cpp.o
[ 11%] Linking CXX executable emugen
[ 11%] Built target emugen
Scanning dependencies of target OpenglCodecCommon
[ 11%] Building CXX object external/android-emugl/shared/OpenglCodecCommon/CMakeFiles/OpenglCodecCommon.dir/ChecksumCalculator.cpp.o
[ 13%] Building CXX object external/android-emugl/shared/OpenglCodecCommon/CMakeFiles/OpenglCodecCommon.dir/ChecksumCalculatorThreadInfo.cpp.o
[ 13%] Building CXX object external/android-emugl/shared/OpenglCodecCommon/CMakeFiles/OpenglCodecCommon.dir/glUtils.cpp.o
[ 14%] Linking CXX static library libOpenglCodecCommon.a
[ 14%] Built target OpenglCodecCommon
[ 14%] Generating ../include/OpenGLESDispatch/gles1_extensions_functions.h, ../include/OpenGLESDispatch/gles1_only_functions.h, ../include/OpenGLESDispatch/gles2_extensions_functions.h, ../include/OpenGLESDispatch/gles2_only_functions.h, ../include/OpenGLESDispatch/gles3_only_functions.h, ../include/OpenGLESDispatch/gles_common_functions.h, ../include/OpenGLESDispatch/gles_extensions_functions.h, ../include/OpenGLESDispatch/RenderEGL_extensions_functions.h, ../include/OpenGLESDispatch/RenderEGL_functions.h
Generating /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/build/external/android-emugl/host/include/OpenGLESDispatch/RenderEGL_functions.h
Generating /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/build/external/android-emugl/host/include/OpenGLESDispatch/RenderEGL_extensions_functions.h
Generating /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/build/external/android-emugl/host/include/OpenGLESDispatch/gles_common_functions.h
Generating /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/build/external/android-emugl/host/include/OpenGLESDispatch/gles_extensions_functions.h
Generating /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/build/external/android-emugl/host/include/OpenGLESDispatch/gles1_only_functions.h
Generating /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/build/external/android-emugl/host/include/OpenGLESDispatch/gles1_extensions_functions.h
Generating /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/build/external/android-emugl/host/include/OpenGLESDispatch/gles2_only_functions.h
Generating /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/build/external/android-emugl/host/include/OpenGLESDispatch/gles2_extensions_functions.h
Generating /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/build/external/android-emugl/host/include/OpenGLESDispatch/gles3_only_functions.h
[ 15%] Generating GLESv2_dec/gles2_dec.cpp, GLESv2_dec/gles2_opcodes.h, GLESv2_dec/gles2_server_context.cpp
Scanning dependencies of target GLESv2_dec
[ 15%] Building CXX object external/android-emugl/host/libs/CMakeFiles/GLESv2_dec.dir/GLESv2_dec/GLESv2Decoder.cpp.o
[ 16%] Building CXX object external/android-emugl/host/libs/CMakeFiles/GLESv2_dec.dir/GLESv2_dec/gles2_dec.cpp.o
[ 16%] Building CXX object external/android-emugl/host/libs/CMakeFiles/GLESv2_dec.dir/GLESv2_dec/gles2_server_context.cpp.o
[ 17%] Linking CXX static library libGLESv2_dec.a
[ 17%] Built target GLESv2_dec
[ 17%] Generating GLESv1_dec/renderControl_dec.cpp, GLESv1_dec/renderControl_server_context.cpp
Scanning dependencies of target renderControl_dec
[ 18%] Building CXX object external/android-emugl/host/libs/CMakeFiles/renderControl_dec.dir/GLESv1_dec/renderControl_dec.cpp.o
[ 18%] Building CXX object external/android-emugl/host/libs/CMakeFiles/renderControl_dec.dir/GLESv1_dec/renderControl_server_context.cpp.o
[ 19%] Linking CXX static library librenderControl_dec.a
[ 19%] Built target renderControl_dec
[ 19%] Generating GLESv1_dec/gles1_dec.cpp, GLESv1_dec/gles1_opcodes.h, GLESv1_dec/gles1_server_context.cpp
Scanning dependencies of target GLESv1_dec
[ 20%] Building CXX object external/android-emugl/host/libs/CMakeFiles/GLESv1_dec.dir/GLESv1_dec/GLESv1Decoder.cpp.o
[ 20%] Building CXX object external/android-emugl/host/libs/CMakeFiles/GLESv1_dec.dir/GLESv1_dec/gles1_dec.cpp.o
[ 21%] Building CXX object external/android-emugl/host/libs/CMakeFiles/GLESv1_dec.dir/GLESv1_dec/gles1_server_context.cpp.o
[ 21%] Linking CXX static library libGLESv1_dec.a
[ 21%] Built target GLESv1_dec
Scanning dependencies of target emugl_common
[ 22%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/crash_reporter.cpp.o
[ 22%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/id_to_object_map.cpp.o
[ 23%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/lazy_instance.cpp.o
[ 23%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/logging.cpp.o
[ 25%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/message_channel.cpp.o
[ 25%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/mutex_unittest.cpp.o
[ 25%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/pod_vector.cpp.o
[ 26%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/shared_library.cpp.o
[ 26%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/smart_ptr.cpp.o
[ 27%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/sockets.cpp.o
[ 27%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/thread_pthread.cpp.o
[ 28%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/thread_store.cpp.o
[ 28%] Building CXX object external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/thread_unittest.cpp.o
[ 28%] Linking CXX static library libemugl_common.a
[ 28%] Built target emugl_common
Scanning dependencies of target OpenGLESDispatch
[ 29%] Building CXX object external/android-emugl/host/libs/CMakeFiles/OpenGLESDispatch.dir/libOpenGLESDispatch/EGLDispatch.cpp.o
[ 29%] Building CXX object external/android-emugl/host/libs/CMakeFiles/OpenGLESDispatch.dir/libOpenGLESDispatch/GLESv2Dispatch.cpp.o
[ 29%] Building CXX object external/android-emugl/host/libs/CMakeFiles/OpenGLESDispatch.dir/libOpenGLESDispatch/GLESv1Dispatch.cpp.o
[ 30%] Linking CXX static library libOpenGLESDispatch.a
[ 30%] Built target OpenGLESDispatch
Scanning dependencies of target xdg
[ 30%] Building CXX object external/xdg/CMakeFiles/xdg.dir/xdg.cpp.o
[ 31%] Linking CXX static library libxdg.a
[ 31%] Built target xdg
Scanning dependencies of target xdg_test
[ 31%] Building CXX object external/xdg/CMakeFiles/xdg_test.dir/xdg_test.cpp.o
[ 32%] Linking CXX executable xdg_test
[ 32%] Built target xdg_test
Scanning dependencies of target backward
[ 33%] Building CXX object external/backward-cpp/CMakeFiles/backward.dir/backward.cpp.o
In file included from /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.cpp:26:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:3707: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3707 | #pragma clang diagnostic push
     |
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:3708: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3708 | #pragma clang diagnostic ignored "-Wdisabled-macro-expansion"
     |
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:3710: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3710 | #pragma clang diagnostic pop
     |
In file included from /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.cpp:26:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp: In member function ‘backward::ResolvedTrace backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libdw>::resolve(backward::ResolvedTrace)’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:1324:46: warning: use of old-style cast to ‘Dwarf_Addr’ {aka ‘long unsigned int’} [-Wold-style-cast]
1324 |   Dwarf_Addr trace_addr = (Dwarf_Addr) trace.addr;
     |                                              ^~~~
     |                           -----------------------
     |                           reinterpret_cast<Dwarf_Addr> ( trace.addr)
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp: In member function ‘void backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libdw>::inliners_search_cb::operator()(Dwarf_Die*)’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:1507:28: warning: use of old-style cast to ‘unsigned int’ [-Wold-style-cast]
1507 |      sloc.line = (unsigned)line;
     |                            ^~~~
     |                  --------------
     |                  static_cast<unsigned> (line)
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:1508:27: warning: use of old-style cast to ‘unsigned int’ [-Wold-style-cast]
1508 |      sloc.col = (unsigned)col;
     |                           ^~~
     |                 -------------
     |                 static_cast<unsigned> (col)
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:1483:11: warning: switch missing default case [-Wswitch-default]
1483 |    switch (dwarf_tag(die)) {
     |           ^
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp: In static member function ‘static Dwarf_Die* backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libdw>::find_fundie_by_pc(Dwarf_Die*, Dwarf_Addr, Dwarf_Die*)’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:1559:11: warning: switch missing default case [-Wswitch-default]
1559 |    switch (dwarf_tag(die)) {
     |           ^
[ 33%] Linking CXX static library libbackward.a
[ 33%] Built target backward
Scanning dependencies of target backward_object
[ 34%] Building CXX object external/backward-cpp/CMakeFiles/backward_object.dir/backward.cpp.o
In file included from /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.cpp:26:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:3707: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3707 | #pragma clang diagnostic push
     |
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:3708: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3708 | #pragma clang diagnostic ignored "-Wdisabled-macro-expansion"
     |
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:3710: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3710 | #pragma clang diagnostic pop
     |
In file included from /var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.cpp:26:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp: In member function ‘backward::ResolvedTrace backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libdw>::resolve(backward::ResolvedTrace)’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:1324:46: warning: use of old-style cast to ‘Dwarf_Addr’ {aka ‘long unsigned int’} [-Wold-style-cast]
1324 |   Dwarf_Addr trace_addr = (Dwarf_Addr) trace.addr;
     |                                              ^~~~
     |                           -----------------------
     |                           reinterpret_cast<Dwarf_Addr> ( trace.addr)
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp: In member function ‘void backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libdw>::inliners_search_cb::operator()(Dwarf_Die*)’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:1507:28: warning: use of old-style cast to ‘unsigned int’ [-Wold-style-cast]
1507 |      sloc.line = (unsigned)line;
     |                            ^~~~
     |                  --------------
     |                  static_cast<unsigned> (line)
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:1508:27: warning: use of old-style cast to ‘unsigned int’ [-Wold-style-cast]
1508 |      sloc.col = (unsigned)col;
     |                           ^~~
     |                 -------------
     |                 static_cast<unsigned> (col)
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:1483:11: warning: switch missing default case [-Wswitch-default]
1483 |    switch (dwarf_tag(die)) {
     |           ^
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp: In static member function ‘static Dwarf_Die* backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libdw>::find_fundie_by_pc(Dwarf_Die*, Dwarf_Addr, Dwarf_Die*)’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/backward-cpp/backward.hpp:1559:11: warning: switch missing default case [-Wswitch-default]
1559 |    switch (dwarf_tag(die)) {
     |           ^
[ 34%] Built target backward_object
Scanning dependencies of target cpu_features
[ 34%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/linux_features_aggregator.c.o
[ 35%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuid_x86_clang_gcc.c.o
[ 35%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuid_x86_msvc.c.o
[ 35%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_aarch64.c.o
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_aarch64.c: In function ‘GetAarch64FeaturesEnumValue’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_aarch64.c:100:3: warning: switch missing default case [-Wswitch-default]
 100 |   switch (value) {
     |   ^~~~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_aarch64.c: In function ‘GetAarch64FeaturesEnumName’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_aarch64.c:122:3: warning: switch missing default case [-Wswitch-default]
 122 |   switch (value) {
     |   ^~~~~~
[ 36%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_arm.c.o
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c: In function ‘FixErrors’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c:130:32: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 130 |         info->features.idiva = true;
     |                                ^~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c:141:30: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 141 |       info->features.idiva = true;
     |                              ^~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c:142:30: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 142 |       info->features.idivt = true;
     |                              ^~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c:121:3: warning: switch missing default case [-Wswitch-default]
 121 |   switch (GetCpuId(info)) {
     |   ^~~~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c:147:52: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 147 |   if (info->features.vfpv4) info->features.vfpv3 = true;
     |                                                    ^~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c:148:51: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 148 |   if (info->features.neon) info->features.vfpv3 = true;
     |                                                   ^~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c:149:50: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 149 |   if (info->features.vfpv3) info->features.vfp = true;
     |                                                  ^~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c: In function ‘GetArmFeaturesEnumValue’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c:194:3: warning: switch missing default case [-Wswitch-default]
 194 |   switch (value) {
     |   ^~~~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c: In function ‘GetArmFeaturesEnumName’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_arm.c:228:3: warning: switch missing default case [-Wswitch-default]
 228 |   switch (value) {
     |   ^~~~~~
[ 36%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_mips.c.o
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_mips.c: In function ‘GetMipsFeaturesEnumValue’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_mips.c:77:3: warning: switch missing default case [-Wswitch-default]
  77 |   switch (value) {
     |   ^~~~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_mips.c: In function ‘GetMipsFeaturesEnumName’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_mips.c:89:3: warning: switch missing default case [-Wswitch-default]
  89 |   switch (value) {
     |   ^~~~~~
[ 38%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_ppc.c.o
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_ppc.c: In function ‘GetPPCFeaturesEnumValue’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_ppc.c:180:3: warning: switch missing default case [-Wswitch-default]
 180 |   switch (value) {
     |   ^~~~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_ppc.c: In function ‘GetPPCFeaturesEnumName’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_ppc.c:271:3: warning: switch missing default case [-Wswitch-default]
 271 |   switch (value) {
     |   ^~~~~~
[ 38%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_x86.c.o
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_x86.c: In function ‘GetX86FeaturesEnumValue’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_x86.c:264:3: warning: switch missing default case [-Wswitch-default]
 264 |   switch (value) {
     |   ^~~~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_x86.c: In function ‘GetX86FeaturesEnumName’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_x86.c:332:3: warning: switch missing default case [-Wswitch-default]
 332 |   switch (value) {
     |   ^~~~~~
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_x86.c: In function ‘GetX86MicroarchitectureName’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/cpuinfo_x86.c:400:3: warning: switch missing default case [-Wswitch-default]
 400 |   switch (uarch) {
     |   ^~~~~~
[ 39%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/filesystem.c.o
[ 39%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/hwcaps.c.o
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/hwcaps.c: In function ‘GetElfHwcapFromGetauxval’:
/var/tmp/pamac-build-topherneal/anbox-git/src/anbox/external/cpu_features/src/hwcaps.c:94:10: error: ISO C forbids conversion of object pointer to function pointer type [-Werror=pedantic]
  94 |   func = (getauxval_func_t*)dlsym(libc_handle, "getauxval");
     |          ^
cc1: all warnings being treated as errors
make[2]: *** [external/cpu_features/CMakeFiles/cpu_features.dir/build.make:180: external/cpu_features/CMakeFiles/cpu_features.dir/src/hwcaps.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1617: external/cpu_features/CMakeFiles/cpu_features.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
==> ERROR: A failure occurred in build().
   Aborting...


I'm going to try running this through pamac in terminal, to hopefully get a more verbose error, though I fear the issue might lie within soome of the files pamac is receiving (looking at you cpu_features.)

Again, if anyone is familiar with "emerge," I could use your help determining how to use it to tell the SPURV repo to use my local C, Go, and Ninja during compiling. I have a hunch, if I can figure that out, this monstrosity of an idea may see some headway. It seems the biggest hold-up so far has been how ingrained Google's x86 toolchains are. Even though I have all the dependencies I need in aarch64, I can't get Android source to stop looking for the x86 bundles.

I'm done for the day, the PBP is down to 4% battery and the chargers are at home. (If I could find someone willing to make us a fully functioning Chromium OS right now, I would start throwing money at them immediately.)
  Reply
#9
Bit of an update, as I had some progress building the last piece of the puzzle that I couldn't install from AUR by modifying the PKGBUILD: anbox-git.

To overcome the issues in my previous, I simply altered the Makefile to suppress treating warnings as errors. It netted some success (build stops at 90% now and not 37%,) where now the hold up of building this on aarch64 is testing. I'm currently trying to track down where I can disable or correct the tests. My efforts so far admittedly a bit hacky, but I want to try and do what I can in a "best practice" manner.

Here's the current progress:

Code:
$ make
[  7%] Built target process-cpp
[ 10%] Built target emugen
[ 12%] Built target OpenglCodecCommon
[ 15%] Built target GLESv2_dec
[ 17%] Built target renderControl_dec
[ 19%] Built target GLESv1_dec
[ 24%] Built target emugl_common
[ 26%] Built target OpenGLESDispatch
[ 27%] Built target xdg
[ 29%] Built target xdg_test
[ 30%] Built target backward
[ 31%] Built target backward_object
[ 36%] Built target cpu_features
[ 37%] Built target list_cpu_features
[ 40%] Built target anbox-protobuf
[ 89%] Built target anbox-core
[ 90%] Built target anbox
[ 90%] Linking CXX executable intent_tests
/usr/bin/ld: /usr/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/../../../../lib/Scrt1.o: in function `_start':
init.c:(.text+0x18): undefined reference to `main'
/usr/bin/ld: init.c:(.text+0x1c): undefined reference to `main'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/run/media/topherneal/SPACE/anbox/tests/anbox/android/intent_tests.cpp:26: undefined reference to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)'
/usr/bin/ld: /run/media/topherneal/SPACE/anbox/tests/anbox/android/intent_tests.cpp:26: undefined reference to `testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)'
/usr/bin/ld: /run/media/topherneal/SPACE/anbox/tests/anbox/android/intent_tests.cpp:26: undefined reference to `testing::Message::Message()'
/usr/bin/ld: /run/media/topherneal/SPACE/anbox/tests/anbox/android/intent_tests.cpp:26: undefined reference to `testing::internal::AssertHelper::operator=(testing::Message const&) const'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/run/media/topherneal/SPACE/anbox/tests/anbox/android/intent_tests.cpp:26: undefined reference to `testing::internal::AssertHelper::~AssertHelper()'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/run/media/topherneal/SPACE/anbox/tests/anbox/android/intent_tests.cpp:24: undefined reference to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)'
/usr/bin/ld: /run/media/topherneal/SPACE/anbox/tests/anbox/android/intent_tests.cpp:24: undefined reference to `testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)'
/usr/bin/ld: /run/media/topherneal/SPACE/anbox/tests/anbox/android/intent_tests.cpp:24: undefined reference to `testing::Message::Message()'
/usr/bin/ld: /run/media/topherneal/SPACE/anbox/tests/anbox/android/intent_tests.cpp:24: undefined reference to `testing::internal::AssertHelper::operator=(testing::Message const&) const'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*)':


If anything stands out to anyone going through it, let me know! Between work and going through these line-by-line, with a more novice skill set than many, my eyes start feeling burnt out and missing plenty.

Once I figure out how to get past the GTest issues, I'll post another update. Hopefully, it will be with a repo with the changes made so others can try it for themselves.
  Reply
#10
Found this as a potential resource to help me get through the issues I'm having during compiling. Obviously, the parts specific to Raspbian's 32bits will be ignored. Likely still a good starting poiint.
https://skmp.dev/blog/anbox-rpi4/

EDIT: using the above netted some progress, but not as much as I'd have hoped. Below is the output after following the above guide to remove parts of CMake creating problems on aarch64, in case anyone wants to go through it and pick it apart. It looks like cmake isn't finding GMock, and intent_tests are causing an issue during building. I haven't had time yet to go through it closely, though. If you spot anything I may have missed, let me know!

Code:
[topherneal@pbp ~]$ cd anobx/build
bash: cd: anobx/build: No such file or directory
[topherneal@pbp ~]$ cd anbox/build
[topherneal@pbp build]$ cmake ..
CMake Warning (dev) at CMakeLists.txt:1 (project):
 Policy CMP0048 is not set: project() command manages VERSION variables.
 Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy
 command to set the policy and suppress this warning.

 The following variable(s) would be set to empty:

   CMAKE_PROJECT_VERSION
   CMAKE_PROJECT_VERSION_MAJOR
   CMAKE_PROJECT_VERSION_MINOR
   CMAKE_PROJECT_VERSION_PATCH
This warning is for project developers.  Use -Wno-dev to suppress it.

-- No build type selected, default to RelWithDebInfo
-- Found Boost: /usr/lib/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: filesystem log serialization system thread program_options
-- Found Protobuf: /usr/lib/libprotobuf.so;-lpthread (found version "3.11.2")
-- LXC version: 3.2.1
CMake Warning at CMakeLists.txt:95 (find_package):
 By not providing "FindGMock.cmake" in CMAKE_MODULE_PATH this project has
 asked CMake to find a package configuration file provided by "GMock", but
 CMake did not find one.

 Could not find a package configuration file provided by "GMock" with any of
 the following names:

   GMockConfig.cmake
   gmock-config.cmake

 Add the installation prefix of "GMock" to CMAKE_PREFIX_PATH or set
 "GMock_DIR" to a directory containing one of the above files.  If "GMock"
 provides a separate development package or SDK, be sure it has been
 installed.


-- Found Boost: /usr/lib/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: iostreams system
-- Found Boost: /usr/lib/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: filesystem system unit_test_framework
-- Configuring done
-- Generating done
-- Build files have been written to: /home/topherneal/anbox/build
[topherneal@pbp build]$ make
[  1%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/backtrace.cpp.o
[  1%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/child_process.cpp.o
[  2%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/exec.cpp.o
[  2%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/fork.cpp.o
[  2%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/process.cpp.o
[  3%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/process_group.cpp.o
[  3%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/signal.cpp.o
[  3%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/signalable.cpp.o
[  4%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/standard_stream.cpp.o
[  4%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/wait.cpp.o
[  5%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/this_process.cpp.o
[  5%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/linux/proc/process/oom_adj.cpp.o
[  5%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/linux/proc/process/oom_score.cpp.o
[  6%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/linux/proc/process/oom_score_adj.cpp.o
[  6%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/linux/proc/process/stat.cpp.o
[  7%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/testing/cross_process_sync.cpp.o
[  7%] Building CXX object external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/testing/fork_and_run.cpp.o
[  7%] Linking CXX static library libprocess-cpp.a
[  7%] Built target process-cpp
[ 10%] Built target emugen
[ 12%] Built target OpenglCodecCommon
[ 15%] Built target GLESv2_dec
[ 17%] Built target renderControl_dec
[ 19%] Built target GLESv1_dec
[ 24%] Built target emugl_common
[ 26%] Built target OpenGLESDispatch
[ 26%] Building CXX object external/xdg/CMakeFiles/xdg.dir/xdg.cpp.o
[ 27%] Linking CXX static library libxdg.a
[ 27%] Built target xdg
[ 27%] Building CXX object external/xdg/CMakeFiles/xdg_test.dir/xdg_test.cpp.o
[ 29%] Linking CXX executable xdg_test
[ 29%] Built target xdg_test
[ 30%] Building CXX object external/backward-cpp/CMakeFiles/backward.dir/backward.cpp.o
In file included from /home/topherneal/anbox/external/backward-cpp/backward.cpp:26:
/home/topherneal/anbox/external/backward-cpp/backward.hpp:3707: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3707 | #pragma clang diagnostic push
     |
/home/topherneal/anbox/external/backward-cpp/backward.hpp:3708: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3708 | #pragma clang diagnostic ignored "-Wdisabled-macro-expansion"
     |
/home/topherneal/anbox/external/backward-cpp/backward.hpp:3710: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3710 | #pragma clang diagnostic pop
     |
[ 30%] Linking CXX static library libbackward.a
[ 30%] Built target backward
[ 31%] Building CXX object external/backward-cpp/CMakeFiles/backward_object.dir/backward.cpp.o
In file included from /home/topherneal/anbox/external/backward-cpp/backward.cpp:26:
/home/topherneal/anbox/external/backward-cpp/backward.hpp:3707: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3707 | #pragma clang diagnostic push
     |
/home/topherneal/anbox/external/backward-cpp/backward.hpp:3708: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3708 | #pragma clang diagnostic ignored "-Wdisabled-macro-expansion"
     |
/home/topherneal/anbox/external/backward-cpp/backward.hpp:3710: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
3710 | #pragma clang diagnostic pop
     |
[ 31%] Built target backward_object
[ 31%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/linux_features_aggregator.c.o
[ 32%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuid_x86_clang_gcc.c.o
[ 32%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuid_x86_msvc.c.o
[ 33%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_aarch64.c.o
[ 33%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_arm.c.o
/home/topherneal/anbox/external/cpu_features/src/cpuinfo_arm.c: In function ‘FixErrors’:
/home/topherneal/anbox/external/cpu_features/src/cpuinfo_arm.c:130:32: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 130 |         info->features.idiva = true;
     |                                ^~~~
/home/topherneal/anbox/external/cpu_features/src/cpuinfo_arm.c:141:30: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 141 |       info->features.idiva = true;
     |                              ^~~~
/home/topherneal/anbox/external/cpu_features/src/cpuinfo_arm.c:142:30: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 142 |       info->features.idivt = true;
     |                              ^~~~
/home/topherneal/anbox/external/cpu_features/src/cpuinfo_arm.c:147:52: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 147 |   if (info->features.vfpv4) info->features.vfpv3 = true;
     |                                                    ^~~~
/home/topherneal/anbox/external/cpu_features/src/cpuinfo_arm.c:148:51: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 148 |   if (info->features.neon) info->features.vfpv3 = true;
     |                                                   ^~~~
/home/topherneal/anbox/external/cpu_features/src/cpuinfo_arm.c:149:50: warning: overflow in conversion from ‘int’ to ‘signed char:1’ changes value from ‘1’ to ‘-1’ [-Woverflow]
 149 |   if (info->features.vfpv3) info->features.vfp = true;
     |                                                  ^~~~
[ 33%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_mips.c.o
[ 34%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_ppc.c.o
[ 34%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/cpuinfo_x86.c.o
[ 35%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/filesystem.c.o
[ 35%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/hwcaps.c.o
/home/topherneal/anbox/external/cpu_features/src/hwcaps.c: In function ‘GetElfHwcapFromGetauxval’:
/home/topherneal/anbox/external/cpu_features/src/hwcaps.c:94:10: warning: ISO C forbids conversion of object pointer to function pointer type [-Wpedantic]
  94 |   func = (getauxval_func_t*)dlsym(libc_handle, "getauxval");
     |          ^
[ 35%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/stack_line_reader.c.o
[ 36%] Building C object external/cpu_features/CMakeFiles/cpu_features.dir/src/string_view.c.o
[ 36%] Linking C static library libcpu_features.a
[ 36%] Built target cpu_features
[ 36%] Building C object external/cpu_features/CMakeFiles/list_cpu_features.dir/src/utils/list_cpu_features.c.o
[ 37%] Linking C executable list_cpu_features
[ 37%] Built target list_cpu_features
[ 37%] Running cpp protocol buffer compiler on anbox/protobuf/anbox_container.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:646] No syntax specified for the proto file: anbox_container.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
[ 38%] Running cpp protocol buffer compiler on anbox/protobuf/anbox_bridge.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:646] No syntax specified for the proto file: anbox_bridge.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
[ 38%] Running cpp protocol buffer compiler on anbox/protobuf/anbox_rpc.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:646] No syntax specified for the proto file: anbox_rpc.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
Scanning dependencies of target anbox-protobuf
[ 39%] Building CXX object src/CMakeFiles/anbox-protobuf.dir/anbox_bridge.pb.cc.o
[ 39%] Building CXX object src/CMakeFiles/anbox-protobuf.dir/anbox_rpc.pb.cc.o
[ 40%] Building CXX object src/CMakeFiles/anbox-protobuf.dir/anbox_container.pb.cc.o
[ 40%] Building CXX object src/CMakeFiles/anbox-protobuf.dir/anbox/protobuf/google_protobuf_guard.cpp.o
[ 40%] Linking CXX static library libanbox-protobuf.a
[ 40%] Built target anbox-protobuf
Scanning dependencies of target anbox-core
[ 40%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/android/intent.cpp.o
[ 40%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/android/ip_config_builder.cpp.o
[ 41%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/application/database.cpp.o
[ 41%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/application/launcher_storage.cpp.o
[ 43%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/audio/server.cpp.o
[ 43%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/bridge/android_api_stub.cpp.o
[ 43%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/bridge/platform_api_skeleton.cpp.o
[ 44%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/bridge/platform_message_processor.cpp.o
[ 44%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/cmds/container_manager.cpp.o
[ 44%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/cmds/launch.cpp.o
[ 45%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/cmds/session_manager.cpp.o
[ 45%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/cmds/system_info.cpp.o
[ 46%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/cmds/version.cpp.o
[ 46%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/cmds/wait_ready.cpp.o
[ 46%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/cmds/check_features.cpp.o
[ 47%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/common/binary_writer.cpp.o
[ 47%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/common/dispatcher.cpp.o
[ 48%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/common/fd.cpp.o
[ 48%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/common/loop_device_allocator.cpp.o
[ 48%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/common/loop_device.cpp.o
[ 49%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/common/message_channel.cpp.o
[ 49%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/common/mount_entry.cpp.o
[ 50%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/common/wait_handle.cpp.o
[ 50%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/container/client.cpp.o
[ 50%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/container/container.cpp.o
[ 51%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/container/lxc_container.cpp.o
[ 51%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/container/management_api_message_processor.cpp.o
[ 52%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/container/management_api_skeleton.cpp.o
[ 52%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/container/management_api_stub.cpp.o
[ 52%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/container/service.cpp.o
[ 53%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/dbus/bus.cpp.o
[ 53%] Building C object src/CMakeFiles/anbox-core.dir/anbox/dbus/sd_bus_helpers.c.o
[ 54%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/dbus/skeleton/application_manager.cpp.o
[ 54%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/dbus/skeleton/service.cpp.o
[ 54%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/dbus/stub/application_manager.cpp.o
/home/topherneal/anbox/src/anbox/dbus/stub/application_manager.cpp: In member function ‘virtual void anbox::dbus::stub::ApplicationManager::launch(const anbox::android::Intent&, const anbox::graphics::Rect&, const anbox::wm::Stack::Id&)’:
/home/topherneal/anbox/src/anbox/dbus/stub/application_manager.cpp:119:34: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
 119 |   #pragma GCC diagnostic warning "-Wc99-extensions"
     |                                  ^~~~~~~~~~~~~~~~~~
[ 55%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/buffered_io_stream.cpp.o
[ 55%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/buffer_queue.cpp.o
[ 56%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/density.cpp.o
[ 56%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/gl_renderer_server.cpp.o
[ 56%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/layer_composer.cpp.o
[ 58%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/multi_window_composer_strategy.cpp.o
[ 58%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/opengles_message_processor.cpp.o
[ 58%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/program_family.cpp.o
[ 59%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/rect.cpp.o
[ 59%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/single_window_composer_strategy.cpp.o
[ 60%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/ColorBuffer.cpp.o
[ 60%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/DisplayManager.cpp.o
[ 60%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/ReadBuffer.cpp.o
[ 61%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/Renderable.cpp.o
[ 61%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/RenderApi.cpp.o
[ 62%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/RenderContext.cpp.o
[ 62%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/RenderControl.cpp.o
[ 62%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/RendererConfig.cpp.o
[ 63%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/Renderer.cpp.o
[ 63%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/RenderThread.cpp.o
[ 64%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/RenderThreadInfo.cpp.o
[ 64%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/TextureDraw.cpp.o
[ 64%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/TextureResize.cpp.o
[ 65%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/TimeUtils.cpp.o
[ 65%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/graphics/emugl/WindowSurface.cpp.o
[ 66%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/input/device.cpp.o
[ 66%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/input/manager.cpp.o
[ 66%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/base_socket_messenger.cpp.o
[ 67%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/connection_context.cpp.o
[ 67%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/connection_creator.cpp.o
[ 68%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/credentials.cpp.o
[ 68%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/delegate_message_processor.cpp.o
[ 68%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/fd_socket_transmission.cpp.o
[ 69%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/local_socket_messenger.cpp.o
[ 69%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/published_socket_connector.cpp.o
[ 70%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/socket_connection.cpp.o
[ 70%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/socket_helper.cpp.o
[ 70%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/socket_messenger.cpp.o
[ 72%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/tcp_socket_connector.cpp.o
[ 72%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/network/tcp_socket_messenger.cpp.o
[ 72%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/platform/base_platform.cpp.o
[ 73%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/platform/null/platform.cpp.o
[ 73%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/platform/sdl/audio_sink.cpp.o
[ 74%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/platform/sdl/keycode_converter.cpp.o
[ 74%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/platform/sdl/platform.cpp.o
[ 74%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/platform/sdl/window.cpp.o
[ 75%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/protobuf/google_protobuf_guard.cpp.o
[ 75%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/adb_message_processor.cpp.o
[ 76%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/at_parser.cpp.o
[ 76%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/bootanimation_message_processor.cpp.o
[ 76%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/boot_properties_message_processor.cpp.o
[ 77%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/camera_message_processor.cpp.o
[ 77%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/fingerprint_message_processor.cpp.o
[ 78%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/gsm_message_processor.cpp.o
[ 78%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/hwcontrol_message_processor.cpp.o
[ 78%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/null_message_processor.cpp.o
[ 79%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/pipe_connection_creator.cpp.o
[ 79%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/qemud_message_processor.cpp.o
[ 80%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/qemu/sensors_message_processor.cpp.o
[ 80%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/rpc/channel.cpp.o
/home/topherneal/anbox/src/anbox/rpc/channel.cpp: In member function ‘void anbox::rpc::Channel::send_event(const google::protobuf::MessageLite&)’:
/home/topherneal/anbox/src/anbox/rpc/channel.cpp:46:71: warning: ‘int google::protobuf::MessageLite::ByteSize() const’ is deprecated: Please use ByteSizeLong() instead [-Wdeprecated-declarations]
  46 |   VariableLengthArray<2048> buffer{static_cast<size_t>(event.ByteSize())};
     |                                                                       ^
In file included from /usr/include/google/protobuf/generated_enum_util.h:36,
                from /usr/include/google/protobuf/map.h:48,
                from /usr/include/google/protobuf/generated_message_table_driven.h:34,
                from /home/topherneal/anbox/build/src/anbox_rpc.pb.h:26,
                from /home/topherneal/anbox/src/anbox/rpc/channel.cpp:26:
/usr/include/google/protobuf/message_lite.h:402:7: note: declared here
 402 |   int ByteSize() const { return internal::ToIntSize(ByteSizeLong()); }
     |       ^~~~~~~~
/home/topherneal/anbox/src/anbox/rpc/channel.cpp: In member function ‘anbox::protobuf::rpc::Invocation anbox::rpc::Channel::invocation_for(const string&, const google::protobuf::MessageLite*)’:
/home/topherneal/anbox/src/anbox/rpc/channel.cpp:59:45: warning: ‘int google::protobuf::MessageLite::ByteSize() const’ is deprecated: Please use ByteSizeLong() instead [-Wdeprecated-declarations]
  59 |       static_cast<size_t>(request->ByteSize())};
     |                                             ^
In file included from /usr/include/google/protobuf/generated_enum_util.h:36,
                from /usr/include/google/protobuf/map.h:48,
                from /usr/include/google/protobuf/generated_message_table_driven.h:34,
                from /home/topherneal/anbox/build/src/anbox_rpc.pb.h:26,
                from /home/topherneal/anbox/src/anbox/rpc/channel.cpp:26:
/usr/include/google/protobuf/message_lite.h:402:7: note: declared here
 402 |   int ByteSize() const { return internal::ToIntSize(ByteSizeLong()); }
     |       ^~~~~~~~
/home/topherneal/anbox/src/anbox/rpc/channel.cpp: In member function ‘void anbox::rpc::Channel::send_message(const uint8_t&, const google::protobuf::MessageLite&)’:
/home/topherneal/anbox/src/anbox/rpc/channel.cpp:75:40: warning: ‘int google::protobuf::MessageLite::ByteSize() const’ is deprecated: Please use ByteSizeLong() instead [-Wdeprecated-declarations]
  75 |   const size_t size = message.ByteSize();
     |                                        ^
In file included from /usr/include/google/protobuf/generated_enum_util.h:36,
                from /usr/include/google/protobuf/map.h:48,
                from /usr/include/google/protobuf/generated_message_table_driven.h:34,
                from /home/topherneal/anbox/build/src/anbox_rpc.pb.h:26,
                from /home/topherneal/anbox/src/anbox/rpc/channel.cpp:26:
/usr/include/google/protobuf/message_lite.h:402:7: note: declared here
 402 |   int ByteSize() const { return internal::ToIntSize(ByteSizeLong()); }
     |       ^~~~~~~~
[ 80%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/rpc/connection_creator.cpp.o
[ 81%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/rpc/message_processor.cpp.o
/home/topherneal/anbox/src/anbox/rpc/message_processor.cpp: In member function ‘void anbox::rpc::MessageProcessor::send_response(google::protobuf::uint32, google::protobuf::MessageLite*)’:
/home/topherneal/anbox/src/anbox/rpc/message_processor.cpp:90:46: warning: ‘int google::protobuf::MessageLite::ByteSize() const’ is deprecated: Please use ByteSizeLong() instead [-Wdeprecated-declarations]
  90 |       static_cast<size_t>(response->ByteSize()));
     |                                              ^
In file included from /home/topherneal/anbox/src/anbox/rpc/message_processor.h:27,
                from /home/topherneal/anbox/src/anbox/rpc/message_processor.cpp:18:
/usr/include/google/protobuf/message_lite.h:402:7: note: declared here
 402 |   int ByteSize() const { return internal::ToIntSize(ByteSizeLong()); }
     |       ^~~~~~~~
/home/topherneal/anbox/src/anbox/rpc/message_processor.cpp:99:61: warning: ‘int google::protobuf::MessageLite::ByteSize() const’ is deprecated: Please use ByteSizeLong() instead [-Wdeprecated-declarations]
  99 |   send_response_buffer.resize(send_response_result.ByteSize());
     |                                                             ^
In file included from /home/topherneal/anbox/src/anbox/rpc/message_processor.h:27,
                from /home/topherneal/anbox/src/anbox/rpc/message_processor.cpp:18:
/usr/include/google/protobuf/message_lite.h:402:7: note: declared here
 402 |   int ByteSize() const { return internal::ToIntSize(ByteSizeLong()); }
     |       ^~~~~~~~
[ 81%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/rpc/pending_call_cache.cpp.o
[ 82%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/ui/splash_screen.cpp.o
[ 82%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/utils/environment_file.cpp.o
[ 82%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/wm/display.cpp.o
[ 83%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/wm/manager.cpp.o
[ 83%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/wm/multi_window_manager.cpp.o
[ 84%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/wm/single_window_manager.cpp.o
[ 84%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/wm/stack.cpp.o
[ 84%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/wm/task.cpp.o
[ 86%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/wm/window.cpp.o
[ 86%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/wm/window_state.cpp.o
[ 86%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/cli.cpp.o
[ 87%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/daemon.cpp.o
[ 87%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/logger.cpp.o
[ 88%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/not_reachable.cpp.o
[ 88%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/utils.cpp.o
[ 88%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/runtime.cpp.o
[ 89%] Building CXX object src/CMakeFiles/anbox-core.dir/anbox/system_configuration.cpp.o
[ 89%] Linking CXX static library libanbox-core.a
[ 89%] Built target anbox-core
[ 89%] Building CXX object src/CMakeFiles/anbox.dir/main.cpp.o
[ 90%] Linking CXX executable anbox
[ 90%] Built target anbox
[ 91%] Building CXX object tests/anbox/android/CMakeFiles/intent_tests.dir/intent_tests.cpp.o
[ 91%] Linking CXX executable intent_tests
/usr/bin/ld: /usr/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/../../../../lib/Scrt1.o: in function `_start':
init.c:(.text+0x18): undefined reference to `main'
/usr/bin/ld: init.c:(.text+0x1c): undefined reference to `main'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:26: undefined reference to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:26: undefined reference to `testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:26: undefined reference to `testing::Message::Message()'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:26: undefined reference to `testing::internal::AssertHelper::operator=(testing::Message const&) const'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:26: undefined reference to `testing::internal::AssertHelper::~AssertHelper()'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:24: undefined reference to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:24: undefined reference to `testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:24: undefined reference to `testing::Message::Message()'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:24: undefined reference to `testing::internal::AssertHelper::operator=(testing::Message const&) const'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:24: undefined reference to `testing::internal::AssertHelper::~AssertHelper()'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:30: undefined reference to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:30: undefined reference to `testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:30: undefined reference to `testing::Message::Message()'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:30: undefined reference to `testing::internal::AssertHelper::operator=(testing::Message const&) const'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:30: undefined reference to `testing::internal::AssertHelper::~AssertHelper()'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:28: undefined reference to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:28: undefined reference to `testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:28: undefined reference to `testing::Message::Message()'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:28: undefined reference to `testing::internal::AssertHelper::operator=(testing::Message const&) const'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:28: undefined reference to `testing::internal::AssertHelper::~AssertHelper()'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `testing::internal::scoped_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::reset(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/usr/include/gtest/internal/gtest-port.h:1215: undefined reference to `testing::internal::IsTrue(bool)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::TestBody()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:28: undefined reference to `testing::internal::AssertHelper::~AssertHelper()'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:26: undefined reference to `testing::internal::AssertHelper::~AssertHelper()'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:24: undefined reference to `testing::internal::AssertHelper::~AssertHelper()'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:30: undefined reference to `testing::internal::AssertHelper::~AssertHelper()'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::~Intent_IsValid_Test()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:22: undefined reference to `testing::Test::~Test()'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::~Intent_IsValid_Test()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:22: undefined reference to `testing::Test::~Test()'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `Intent_IsValid_Test::Intent_IsValid_Test()':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:22: undefined reference to `testing::Test::Test()'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o: in function `__static_initialization_and_destruction_0':
/home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:22: undefined reference to `testing::internal::GetTestTypeId()'
/usr/bin/ld: /home/topherneal/anbox/tests/anbox/android/intent_tests.cpp:22: undefined reference to `testing::internal::MakeAndRegisterTestInfo(char const*, char const*, char const*, char const*, testing::internal::CodeLocation, void const*, void (*)(), void (*)(), testing::internal::TestFactoryBase*)'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o:(.data.rel.ro._ZTI19Intent_IsValid_Test[_ZTI19Intent_IsValid_Test]+0x10): undefined reference to `typeinfo for testing::Test'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o:(.data.rel.ro._ZTV19Intent_IsValid_Test[_ZTV19Intent_IsValid_Test]+0x20): undefined reference to `testing::Test::SetUp()'
/usr/bin/ld: CMakeFiles/intent_tests.dir/intent_tests.cpp.o:(.data.rel.ro._ZTV19Intent_IsValid_Test[_ZTV19Intent_IsValid_Test]+0x28): undefined reference to `testing::Test::TearDown()'
collect2: error: ld returned 1 exit status
make[2]: *** [tests/anbox/android/CMakeFiles/intent_tests.dir/build.make:110: tests/anbox/android/intent_tests] Error 1
make[1]: *** [CMakeFiles/Makefile2:1889: tests/anbox/android/CMakeFiles/intent_tests.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Compile of Anbox fails because kernel function kallsyms_lookup_name() is unexported Tsvi Bar-David 6 7,490 06-30-2020, 06:41 AM
Last Post: tophneal

Forum Jump:


Users browsing this thread: 1 Guest(s)