realm / realm-js

Realm is a mobile database: an alternative to SQLite & key-value stores
https://realm.io
Apache License 2.0
5.78k stars 575 forks source link

Attempting to Cross-Compile realm-js to ARM64 -- Error: unsupported ELF machine number 62 #5088

Closed jayademola closed 1 year ago

jayademola commented 1 year ago

How frequently does the bug occur?

All the time

Description

Hi!

I am attempting to build realm from source for an ARM64 processor. Host machine is Ubuntu (x86_64). Toolchain is : gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz

The target system is: AArch64 GNU/Linux target (aarch64-none-linux-gnu) The host system is: Ubuntu - x86_64

Ran -- export REALM_USE_SYSTEM_OPENSSL=1 git clone https://github.com/realm/realm-js cd realm-js git submodule update --init --recursive npm install --ignore-scripts npx cmake-js rebuild

Building seems to work till 100% (last step) but the linker fails with unsupported ELF machine number 62

Full Error Dump:

[100%] Building CXX object src/node/CMakeFiles/realm-js.dir/platform.cpp.o
[100%] Linking CXX shared library ../../Release/realm.node
/home/jayademola/Downloads/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/10.3.1/../../../../aarch64-none-linux-gnu/bin/ld.gold: fatal error: ../../vendor/realm-core/openssl/lib/libssl.a(methods.o): unsupported ELF machine number 62

collect2: error: ld returned 1 exit status
gmake[2]: *** [src/node/CMakeFiles/realm-js.dir/build.make:121: Release/realm.node] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:518: src/node/CMakeFiles/realm-js.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2
ERR! OMG Process terminated: 2

Am I missing something? Cheers!

Stacktrace & log output

{code:shell} npx cmake-js rebuild [ '/home/jayademola/.nvm/versions/node/v14.18.1/bin/node', '/home/jayademola/Desktop/realm-js/node_modules/.bin/cmake-js', 'rebuild' ] info TOOL Using Unix Makefiles generator. info CMD CLEAN info RUN cmake E remove_directory "/home/jayademola/Desktop/realmjs/build" info CMD CONFIGURE info RUN cmake "/home/jayademola/Desktop/realm-js" --no-warn-unused-cli G"Unix Makefiles" DCMAKE_JS_VERSION="6.1.0" DCMAKE_BUILD_TYPE="Release" DCMAKE_LIBRARY_OUTPUT_DIRECTORY="/home/jayademola/Desktop/realm-js/build/Release" DCMAKE_JS_INC="/home/jayademola/.cmakejs/node-x64/v14.18.1/include/node" -DCMAKE_JS_SRC="" DNODE_RUNTIME="node" -DNODE_RUNTIMEVERSION="14.18.1" DNODE_ARCH="x64" Not searching for unused variables given on the command line.

kneth commented 1 year ago

unsupported ELF machine number 62

ELF machine number 62 is x86_64

Getting http://static.realm.io/downloads/openssl/1.1.1n/Linux/x86_64/openssl.tar.gz...

It looks like our x86_64 OpenSSL prebuild is downloaded. My guess is that either your cross-compilation toolchain doesn't pick up OpenSSL for ARM or CMake doesn't detect it correctly.

jayademola commented 1 year ago

Thanks for the feedback @kneth , I commented out a bunch of stuff in vendor/realm-core/CMakeLists.txt and was able to force the build process to use the host's OpenSSL find_package(OpenSSL REQUIRED). Unfortunately, it didn't help much as the error remains but I can see the build process using the host's OpenSSL.

===========================================================================================

npx cmake-js rebuild
[
  '/home/jayademola/.nvm/versions/node/v14.18.1/bin/node',
  '/home/jayademola/Desktop/realm-js/node_modules/.bin/cmake-js',
  'rebuild'
]
info TOOL Using Unix Makefiles generator.
info CMD CLEAN
info RUN cmake -E remove_directory "/home/jayademola/Desktop/realm-js/build"
info CMD CONFIGURE
info RUN cmake "/home/jayademola/Desktop/realm-js" --no-warn-unused-cli -G"Unix Makefiles" -DCMAKE_JS_VERSION="6.1.0" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_LIBRARY_OUTPUT_DIRECTORY="/home/jayademola/Desktop/realm-js/build/Release" -DCMAKE_JS_INC="/home/jayademola/.cmake-js/node-x64/v14.18.1/include/node" -DCMAKE_JS_SRC="" -DNODE_RUNTIME="node" -DNODE_RUNTIMEVERSION="14.18.1" -DNODE_ARCH="x64"
Not searching for unused variables given on the command line.
-- The C compiler identification is GNU 10.3.1
-- The CXX compiler identification is GNU 10.3.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/jayademola/Downloads/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/jayademola/Downloads/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Dependencies: PACKAGE_NAME=realm-core;VERSION=12.11.0;OPENSSL_VERSION=1.1.1n;MDBREALM_TEST_SERVER_TAG=2022-10-10
-- Performing Test HAVE-Wpsabi
-- Performing Test HAVE-Wpsabi - Success
-- Performing Test HAVE-Wpartial-availability
-- Performing Test HAVE-Wpartial-availability - Failed
-- Performing Test HAVE-Wredundant-move
-- Performing Test HAVE-Wredundant-move - Success
-- Performing Test HAVE_LINKER_lld
-- Performing Test HAVE_LINKER_lld - Failed
-- Performing Test HAVE_LINKER_gold
-- Performing Test HAVE_LINKER_gold - Success
-- Using linker gold
-- Looking for readdir64
-- Looking for readdir64 - found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.a (found version "3.0.2")  
-- Looking for epoll_create
-- Looking for epoll_create - found
-- Performing Test HAVE-Wunused-but-set-variable
-- Performing Test HAVE-Wunused-but-set-variable - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jayademola/Desktop/realm-js/build
info CMD BUILD
info RUN cmake --build "/home/jayademola/Desktop/realm-js/build" --config Release
[  0%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid128.c.o
[  0%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid128_compare.c.o
[  1%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid128_mul.c.o
[  1%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid128_div.c.o
[  2%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid128_add.c.o
[  2%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid128_fma.c.o
[  2%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid128_string.c.o
[  3%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid128_2_str_tables.c.o
[  3%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid64_to_bid128.c.o
[  4%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid128_to_int64.c.o
[  4%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid128_quantize.c.o
[  4%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid_convert_data.c.o
[  6%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid_decimal_data.c.o
[  6%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid_decimal_globals.c.o
[  7%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid_from_int.c.o
[  7%] Building C object vendor/realm-core/src/external/IntelRDFPMathLib20U2/CMakeFiles/Bid.dir/LIBRARY/src/bid_round.c.o
[  7%] Built target Bid
[  7%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/query.cpp.o
[  8%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array.cpp.o
[  8%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_with_find.cpp.o
[  9%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/alloc.cpp.o
[  9%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/alloc_slab.cpp.o
[  9%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_backlink.cpp.o
[ 10%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_binary.cpp.o
[ 10%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_blob.cpp.o
[ 12%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_blobs_small.cpp.o
[ 12%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_blobs_big.cpp.o
[ 12%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_decimal128.cpp.o
[ 13%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_fixed_bytes.cpp.o
[ 13%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_integer.cpp.o
[ 14%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_key.cpp.o
[ 14%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_mixed.cpp.o
[ 14%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_unsigned.cpp.o
[ 15%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_string.cpp.o
[ 15%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_string_short.cpp.o
[ 16%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/array_timestamp.cpp.o
[ 16%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/bplustree.cpp.o
[ 16%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/chunked_binary.cpp.o
[ 18%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/cluster.cpp.o
[ 18%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/collection.cpp.o
[ 19%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/cluster_tree.cpp.o
[ 19%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/error_codes.cpp.o
[ 20%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/table_cluster_tree.cpp.o
[ 20%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/column_binary.cpp.o
[ 20%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/decimal128.cpp.o
[ 21%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/dictionary.cpp.o
[ 21%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/disable_sync_to_disk.cpp.o
[ 22%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/exceptions.cpp.o
[ 22%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/group.cpp.o
[ 22%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/db.cpp.o
[ 24%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/group_writer.cpp.o
[ 24%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/history.cpp.o
[ 25%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/impl/copy_replication.cpp.o
[ 25%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/impl/output_stream.cpp.o
[ 25%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/impl/simulated_failure.cpp.o
[ 26%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/impl/transact_log.cpp.o
[ 26%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/index_string.cpp.o
[ 27%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/link_translator.cpp.o
[ 27%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/list.cpp.o
[ 27%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/node.cpp.o
[ 28%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/mixed.cpp.o
[ 28%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/obj.cpp.o
[ 30%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/object_converter.cpp.o
[ 30%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/global_key.cpp.o
[ 30%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/query_engine.cpp.o
[ 31%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/query_expression.cpp.o
[ 31%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/query_value.cpp.o
[ 32%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/replication.cpp.o
[ 32%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/set.cpp.o
[ 32%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/spec.cpp.o
[ 33%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/string_data.cpp.o
[ 33%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/table.cpp.o
[ 34%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/table_ref.cpp.o
[ 34%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/obj_list.cpp.o
[ 34%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/object_id.cpp.o
[ 36%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/table_view.cpp.o
[ 36%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/transaction.cpp.o
[ 37%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/sort_descriptor.cpp.o
[ 37%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/status.cpp.o
[ 37%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/unicode.cpp.o
[ 38%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/utilities.cpp.o
[ 38%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/uuid.cpp.o
[ 39%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/version.cpp.o
[ 39%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/backup_restore.cpp.o
[ 40%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/metrics/metrics.cpp.o
[ 40%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/metrics/metric_timer.cpp.o
[ 40%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/metrics/query_info.cpp.o
[ 42%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/metrics/transaction_info.cpp.o
[ 42%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/interprocess_mutex.cpp.o
[ 43%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/backtrace.cpp.o
[ 43%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/base64.cpp.o
[ 43%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/basic_system_errors.cpp.o
[ 44%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/cli_args.cpp.o
[ 44%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/compression.cpp.o
[ 45%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/encrypted_file_mapping.cpp.o
[ 45%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/fifo_helper.cpp.o
[ 45%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/file.cpp.o
[ 46%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/file_mapper.cpp.o
[ 46%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/interprocess_condvar.cpp.o
[ 48%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/logger.cpp.o
[ 48%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/memory_stream.cpp.o
[ 48%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/platform_info.cpp.o
[ 49%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/misc_errors.cpp.o
[ 49%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/serializer.cpp.o
[ 50%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/sha_crypto.cpp.o
[ 50%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/terminate.cpp.o
[ 50%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/time.cpp.o
[ 51%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/timestamp_formatter.cpp.o
[ 51%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/timestamp_logger.cpp.o
[ 53%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/thread.cpp.o
[ 53%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/to_string.cpp.o
[ 53%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/demangle.cpp.o
[ 54%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/duplicating_logger.cpp.o
[ 54%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/enum.cpp.o
[ 55%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/http.cpp.o
[ 55%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/json_parser.cpp.o
[ 55%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/load_file.cpp.o
[ 56%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/misc_ext_errors.cpp.o
[ 56%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/parent_dir.cpp.o
[ 57%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/random.cpp.o
[ 57%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/resource_limits.cpp.o
[ 57%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/substitute.cpp.o
[ 59%] Building CXX object vendor/realm-core/src/realm/CMakeFiles/Storage.dir/util/uri.cpp.o
[ 59%] Linking CXX static library librealm.a
[ 59%] Built target Storage
[ 60%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/config.cpp.o
[ 60%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/noinst/changeset_index.cpp.o
[ 61%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/noinst/client_history_impl.cpp.o
[ 61%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/noinst/client_impl_base.cpp.o
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/noinst/protocol_codec.hpp:25,
                 from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/noinst/client_impl_base.hpp:22,
                 from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/noinst/client_impl_base.cpp:18:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp: In instantiation of ‘std::string nlohmann::detail::lexer<BasicJsonType>::get_token_string() const [with BasicJsonType = nlohmann::basic_json<>; std::string = std::__cxx11::basic_string<char>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8745:57:   required from ‘void nlohmann::detail::parser<BasicJsonType>::parse(bool, BasicJsonType&) [with BasicJsonType = nlohmann::basic_json<>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:20882:79:   required from ‘static nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer> nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parse(IteratorType, IteratorType, nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t, bool) [with IteratorType = const char*; typename std::enable_if<std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<_InputIterator>::iterator_category>::value, int>::type <anonymous> = 0; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t = std::function<bool(int, nlohmann::detail::parser<nlohmann::basic_json<> >::parse_event_t, nlohmann::basic_json<>&)>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:22700:42:   required from here
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8494:24: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 8494 |             if ('\x00' <= c and c <= '\x1F')
      |                 ~~~~~~~^~~~
[ 61%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/noinst/client_reset.cpp.o
[ 62%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/noinst/client_reset_operation.cpp.o
[ 62%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/noinst/client_reset_recovery.cpp.o
[ 63%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/noinst/compact_changesets.cpp.o
[ 63%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/noinst/pending_bootstrap_store.cpp.o
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/noinst/protocol_codec.hpp:25,
                 from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/noinst/pending_bootstrap_store.hpp:26,
                 from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/noinst/pending_bootstrap_store.cpp:19:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp: In instantiation of ‘std::string nlohmann::detail::lexer<BasicJsonType>::get_token_string() const [with BasicJsonType = nlohmann::basic_json<>; std::string = std::__cxx11::basic_string<char>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8745:57:   required from ‘void nlohmann::detail::parser<BasicJsonType>::parse(bool, BasicJsonType&) [with BasicJsonType = nlohmann::basic_json<>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:20882:79:   required from ‘static nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer> nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parse(IteratorType, IteratorType, nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t, bool) [with IteratorType = const char*; typename std::enable_if<std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<_InputIterator>::iterator_category>::value, int>::type <anonymous> = 0; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t = std::function<bool(int, nlohmann::detail::parser<nlohmann::basic_json<> >::parse_event_t, nlohmann::basic_json<>&)>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:22700:42:   required from here
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8494:24: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 8494 |             if ('\x00' <= c and c <= '\x1F')
      |                 ~~~~~~~^~~~
[ 63%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/noinst/protocol_codec.cpp.o
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/noinst/protocol_codec.hpp:25,
                 from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/noinst/protocol_codec.cpp:4:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp: In instantiation of ‘std::string nlohmann::detail::lexer<BasicJsonType>::get_token_string() const [with BasicJsonType = nlohmann::basic_json<>; std::string = std::__cxx11::basic_string<char>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8745:57:   required from ‘void nlohmann::detail::parser<BasicJsonType>::parse(bool, BasicJsonType&) [with BasicJsonType = nlohmann::basic_json<>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:20882:79:   required from ‘static nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer> nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parse(IteratorType, IteratorType, nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t, bool) [with IteratorType = const char*; typename std::enable_if<std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<_InputIterator>::iterator_category>::value, int>::type <anonymous> = 0; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t = std::function<bool(int, nlohmann::detail::parser<nlohmann::basic_json<> >::parse_event_t, nlohmann::basic_json<>&)>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:22700:42:   required from here
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8494:24: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 8494 |             if ('\x00' <= c and c <= '\x1F')
      |                 ~~~~~~~^~~~
[ 65%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/noinst/sync_metadata_schema.cpp.o
[ 65%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/changeset_encoder.cpp.o
[ 66%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/changeset_parser.cpp.o
[ 66%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/changeset.cpp.o
[ 66%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/client.cpp.o
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/noinst/protocol_codec.hpp:25,
                 from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/noinst/client_impl_base.hpp:22,
                 from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/client.cpp:12:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp: In instantiation of ‘std::string nlohmann::detail::lexer<BasicJsonType>::get_token_string() const [with BasicJsonType = nlohmann::basic_json<>; std::string = std::__cxx11::basic_string<char>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8745:57:   required from ‘void nlohmann::detail::parser<BasicJsonType>::parse(bool, BasicJsonType&) [with BasicJsonType = nlohmann::basic_json<>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:20882:79:   required from ‘static nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer> nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parse(IteratorType, IteratorType, nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t, bool) [with IteratorType = const char*; typename std::enable_if<std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<_InputIterator>::iterator_category>::value, int>::type <anonymous> = 0; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t = std::function<bool(int, nlohmann::detail::parser<nlohmann::basic_json<> >::parse_event_t, nlohmann::basic_json<>&)>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:22700:42:   required from here
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8494:24: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 8494 |             if ('\x00' <= c and c <= '\x1F')
      |                 ~~~~~~~^~~~
[ 67%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/history.cpp.o
[ 67%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/instruction_applier.cpp.o
[ 68%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/instruction_replication.cpp.o
[ 68%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/instructions.cpp.o
[ 68%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/object_id.cpp.o
[ 69%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/protocol.cpp.o
[ 69%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/subscriptions.cpp.o
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/subscriptions.cpp:21:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp: In instantiation of ‘std::string nlohmann::detail::lexer<BasicJsonType>::get_token_string() const [with BasicJsonType = nlohmann::basic_json<>; std::string = std::__cxx11::basic_string<char>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8745:57:   required from ‘void nlohmann::detail::parser<BasicJsonType>::parse(bool, BasicJsonType&) [with BasicJsonType = nlohmann::basic_json<>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:20882:79:   required from ‘static nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer> nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parse(IteratorType, IteratorType, nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t, bool) [with IteratorType = const char*; typename std::enable_if<std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<_InputIterator>::iterator_category>::value, int>::type <anonymous> = 0; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t = std::function<bool(int, nlohmann::detail::parser<nlohmann::basic_json<> >::parse_event_t, nlohmann::basic_json<>&)>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:22700:42:   required from here
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8494:24: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 8494 |             if ('\x00' <= c and c <= '\x1F')
      |                 ~~~~~~~^~~~
[ 71%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/transform.cpp.o
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/noinst/protocol_codec.hpp:25,
                 from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/sync/transform.cpp:28:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp: In instantiation of ‘std::string nlohmann::detail::lexer<BasicJsonType>::get_token_string() const [with BasicJsonType = nlohmann::basic_json<>; std::string = std::__cxx11::basic_string<char>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8745:57:   required from ‘void nlohmann::detail::parser<BasicJsonType>::parse(bool, BasicJsonType&) [with BasicJsonType = nlohmann::basic_json<>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:20882:79:   required from ‘static nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer> nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parse(IteratorType, IteratorType, nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t, bool) [with IteratorType = const char*; typename std::enable_if<std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<_InputIterator>::iterator_category>::value, int>::type <anonymous> = 0; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t = std::function<bool(int, nlohmann::detail::parser<nlohmann::basic_json<> >::parse_event_t, nlohmann::basic_json<>&)>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:22700:42:   required from here
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8494:24: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 8494 |             if ('\x00' <= c and c <= '\x1F')
      |                 ~~~~~~~^~~~
[ 71%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/__/util/network_ssl.cpp.o
[ 71%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/__/util/network.cpp.o
[ 72%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/__/util/websocket.cpp.o
[ 72%] Building CXX object vendor/realm-core/src/realm/sync/CMakeFiles/Sync.dir/__/util/ez_websocket.cpp.o
[ 73%] Linking CXX static library librealm-sync.a
[ 73%] Built target Sync
[ 74%] Building CXX object vendor/realm-core/src/realm/parser/CMakeFiles/QueryParser.dir/driver.cpp.o
[ 74%] Building CXX object vendor/realm-core/src/realm/parser/CMakeFiles/QueryParser.dir/keypath_mapping.cpp.o
[ 74%] Building CXX object vendor/realm-core/src/realm/parser/CMakeFiles/QueryParser.dir/generated/query_flex.cpp.o
[ 75%] Building CXX object vendor/realm-core/src/realm/parser/CMakeFiles/QueryParser.dir/generated/query_bison.cpp.o
[ 75%] Linking CXX static library librealm-parser.a
[ 75%] Built target QueryParser
[ 75%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/binding_callback_thread_observer.cpp.o
[ 77%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/collection.cpp.o
[ 77%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/collection_notifications.cpp.o
[ 78%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/dictionary.cpp.o
[ 78%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/index_set.cpp.o
[ 78%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/list.cpp.o
[ 79%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/object.cpp.o
[ 79%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/object_changeset.cpp.o
[ 80%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/object_schema.cpp.o
[ 80%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/object_store.cpp.o
[ 80%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/results.cpp.o
[ 81%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/schema.cpp.o
[ 81%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sectioned_results.cpp.o
[ 83%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/set.cpp.o
[ 83%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/shared_realm.cpp.o
[ 83%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/thread_safe_reference.cpp.o
[ 84%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/impl/collection_change_builder.cpp.o
[ 84%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/impl/collection_notifier.cpp.o
[ 85%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/impl/deep_change_checker.cpp.o
[ 85%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/impl/list_notifier.cpp.o
[ 85%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/impl/object_notifier.cpp.o
[ 86%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/impl/realm_coordinator.cpp.o
[ 86%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/impl/results_notifier.cpp.o
[ 87%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/impl/transact_log_handler.cpp.o
[ 87%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/impl/weak_realm_notifier.cpp.o
[ 89%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/util/scheduler.cpp.o
[ 89%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/util/uuid.cpp.o
[ 89%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/app.cpp.o
[ 90%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/app_utils.cpp.o
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/sync/app_utils.cpp:23:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp: In instantiation of ‘std::string nlohmann::detail::lexer<BasicJsonType>::get_token_string() const [with BasicJsonType = nlohmann::basic_json<>; std::string = std::__cxx11::basic_string<char>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8745:57:   required from ‘void nlohmann::detail::parser<BasicJsonType>::parse(bool, BasicJsonType&) [with BasicJsonType = nlohmann::basic_json<>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:20882:79:   required from ‘static nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer> nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parse(IteratorType, IteratorType, nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t, bool) [with IteratorType = const char*; typename std::enable_if<std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<_InputIterator>::iterator_category>::value, int>::type <anonymous> = 0; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t = std::function<bool(int, nlohmann::detail::parser<nlohmann::basic_json<> >::parse_event_t, nlohmann::basic_json<>&)>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:22700:42:   required from here
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8494:24: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 8494 |             if ('\x00' <= c and c <= '\x1F')
      |                 ~~~~~~~^~~~
[ 90%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/app_credentials.cpp.o
[ 91%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/generic_network_transport.cpp.o
[ 91%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/async_open_task.cpp.o
[ 91%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/sync_manager.cpp.o
[ 92%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/sync_session.cpp.o
[ 92%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/sync_user.cpp.o
[ 93%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/mongo_client.cpp.o
[ 93%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/mongo_collection.cpp.o
[ 93%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/mongo_database.cpp.o
[ 95%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/push_client.cpp.o
[ 95%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/impl/sync_file.cpp.o
[ 96%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/sync/impl/sync_metadata.cpp.o
[ 96%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/util/bson/bson.cpp.o
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/util/bson/bson.cpp:21:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp: In instantiation of ‘std::string nlohmann::detail::lexer<BasicJsonType>::get_token_string() const [with BasicJsonType = nlohmann::basic_json<>; std::string = std::__cxx11::basic_string<char>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8745:57:   required from ‘void nlohmann::detail::parser<BasicJsonType>::parse(bool, BasicJsonType&) [with BasicJsonType = nlohmann::basic_json<>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:20882:79:   required from ‘static nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer> nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parse(IteratorType, IteratorType, nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t, bool) [with IteratorType = const char*; typename std::enable_if<std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<_InputIterator>::iterator_category>::value, int>::type <anonymous> = 0; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t = std::function<bool(int, nlohmann::detail::parser<nlohmann::basic_json<> >::parse_event_t, nlohmann::basic_json<>&)>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:22700:42:   required from here
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8494:24: warning: comparison is always true due to limited range of data type [-Wtype-limits]
 8494 |             if ('\x00' <= c and c <= '\x1F')
      |                 ~~~~~~~^~~~
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp: In instantiation of ‘std::string nlohmann::detail::lexer<BasicJsonType>::get_token_string() const [with BasicJsonType = nlohmann::basic_json<realm::bson::{anonymous}::{anonymous}::LinearMap>; std::string = std::__cxx11::basic_string<char>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8745:57:   required from ‘void nlohmann::detail::parser<BasicJsonType>::parse(bool, BasicJsonType&) [with BasicJsonType = nlohmann::basic_json<realm::bson::{anonymous}::{anonymous}::LinearMap>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:20750:46:   required from ‘static nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer> nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parse(nlohmann::detail::input_adapter&&, nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t, bool) [with ObjectType = realm::bson::{anonymous}::{anonymous}::LinearMap; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::parser_callback_t = std::function<bool(int, nlohmann::detail::parser<nlohmann::basic_json<realm::bson::{anonymous}::{anonymous}::LinearMap> >::parse_event_t, nlohmann::basic_json<realm::bson::{anonymous}::{anonymous}::LinearMap>&)>]’
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/util/bson/bson.cpp:794:45:   required from here
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/external/json/json.hpp:8494:24: warning: comparison is always true due to limited range of data type [-Wtype-limits]
[ 96%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/util/bson/regular_expression.cpp.o
[ 97%] Building CXX object vendor/realm-core/src/realm/object-store/CMakeFiles/ObjectStore.dir/impl/epoll/external_commit_helper.cpp.o
[ 97%] Linking CXX static library librealm-object-store.a
[ 97%] Built target ObjectStore
[ 98%] Building CXX object src/CMakeFiles/realm-js-shared.dir/js_realm.cpp.o
[ 98%] Built target realm-js-shared
[ 98%] Building CXX object src/node/CMakeFiles/realm-js.dir/node_init.cpp.o
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/object_accessor.hpp:26,
                 from /home/jayademola/Desktop/realm-js/src/js_realm_object.hpp:30,
                 from /home/jayademola/Desktop/realm-js/src/js_list.hpp:23,
                 from /home/jayademola/Desktop/realm-js/src/js_object_accessor.hpp:26,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.hpp:32,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.cpp:20:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/dictionary.hpp: In member function ‘void realm::object_store::Dictionary::insert(Context&, realm::StringData, T&&, realm::CreatePolicy) [with T = Napi::Value&; Context = realm::js::NativeAccessor<realm::node::Types>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/dictionary.hpp:175:6: note: parameter passing for argument of type ‘realm::CreatePolicy’ changed in GCC 9.1
  175 | void Dictionary::insert(Context& ctx, StringData key, T&& value, CreatePolicy policy)
      |      ^~~~~~~~~~
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/dictionary.hpp: In member function ‘void realm::object_store::Dictionary::assign(Context&, T&&, realm::CreatePolicy) [with T = Napi::Value&; Context = realm::js::NativeAccessor<realm::node::Types>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/dictionary.hpp:201:6: note: parameter passing for argument of type ‘realm::CreatePolicy’ changed in GCC 9.1
  201 | void Dictionary::assign(Context& ctx, T&& values, CreatePolicy policy)
      |      ^~~~~~~~~~
In file included from /home/jayademola/Desktop/realm-js/src/js_realm_object.hpp:30,
                 from /home/jayademola/Desktop/realm-js/src/js_list.hpp:23,
                 from /home/jayademola/Desktop/realm-js/src/js_object_accessor.hpp:26,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.hpp:32,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.cpp:20:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/object_accessor.hpp: In member function ‘void realm::Object::set_property_value_impl(ContextType&, const realm::Property&, ValueType, realm::CreatePolicy, bool) [with ValueType = Napi::Value; ContextType = realm::js::NativeAccessor<realm::node::Types>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/object_accessor.hpp:122:6: note: parameter passing for argument of type ‘realm::CreatePolicy’ changed in GCC 9.1
  122 | void Object::set_property_value_impl(ContextType& ctx, const Property& property, ValueType value, CreatePolicy policy,
      |      ^~~~~~
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/object_accessor.hpp: In static member function ‘static realm::Object realm::Object::create(ContextType&, const std::shared_ptr<realm::Realm>&, const realm::ObjectSchema&, ValueType, realm::CreatePolicy, realm::ObjKey, realm::Obj*) [with ValueType = Napi::Value; ContextType = realm::js::NativeAccessor<realm::node::Types>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/object_accessor.hpp:256:8: note: parameter passing for argument of type ‘realm::CreatePolicy’ changed in GCC 9.1
  256 | Object Object::create(ContextType& ctx, std::shared_ptr<Realm> const& realm, ObjectSchema const& object_schema,
      |        ^~~~~~
In file included from /home/jayademola/Desktop/realm-js/src/node/node_init.hpp:32,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.cpp:20:
/home/jayademola/Desktop/realm-js/src/js_object_accessor.hpp: In static member function ‘static realm::Obj realm::js::_impl::Unbox<JSEngine, realm::Obj>::call(realm::js::NativeAccessor<T>*, const typename JSEngine::Value&, realm::CreatePolicy, realm::ObjKey) [with JSEngine = realm::node::Types]’:
/home/jayademola/Desktop/realm-js/src/js_object_accessor.hpp:569:16: note: parameter passing for argument of type ‘realm::CreatePolicy’ changed in GCC 9.1
  569 |     static Obj call(NativeAccessor<JSEngine>* native_accessor, typename JSEngine::Value const& value,
      |                ^~~~
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/object_accessor.hpp:27,
                 from /home/jayademola/Desktop/realm-js/src/js_realm_object.hpp:30,
                 from /home/jayademola/Desktop/realm-js/src/js_list.hpp:23,
                 from /home/jayademola/Desktop/realm-js/src/js_object_accessor.hpp:26,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.hpp:32,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.cpp:20:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/set.hpp: In member function ‘void realm::object_store::Set::assign(Context&, T&&, realm::CreatePolicy) [with T = Napi::Value&; Context = realm::js::NativeAccessor<realm::node::Types>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/set.hpp:191:6: note: parameter passing for argument of type ‘realm::CreatePolicy’ changed in GCC 9.1
  191 | void Set::assign(Context& ctx, T&& values, CreatePolicy policy)
      |      ^~~
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/list.hpp:22,
                 from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/object_accessor.hpp:25,
                 from /home/jayademola/Desktop/realm-js/src/js_realm_object.hpp:30,
                 from /home/jayademola/Desktop/realm-js/src/js_list.hpp:23,
                 from /home/jayademola/Desktop/realm-js/src/js_object_accessor.hpp:26,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.hpp:32,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.cpp:20:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/collection.hpp: In function ‘void realm::object_store::Collection::validate_embedded(Context&, T&&, realm::CreatePolicy) const [with T = Napi::Value&; Context = realm::js::NativeAccessor<realm::node::Types>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/collection.hpp:169:6: note: parameter passing for argument of type ‘realm::CreatePolicy’ changed in GCC 9.1
  169 | void Collection::validate_embedded(Context& ctx, T&& value, CreatePolicy policy) const
      |      ^~~~~~~~~~
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/object_accessor.hpp:25,
                 from /home/jayademola/Desktop/realm-js/src/js_realm_object.hpp:30,
                 from /home/jayademola/Desktop/realm-js/src/js_list.hpp:23,
                 from /home/jayademola/Desktop/realm-js/src/js_object_accessor.hpp:26,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.hpp:32,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.cpp:20:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/list.hpp: In member function ‘void realm::List::set_if_different(Context&, size_t, T&&, realm::CreatePolicy) [with T = Napi::Value&; Context = realm::js::NativeAccessor<realm::node::Types>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/list.hpp:223:6: note: parameter passing for argument of type ‘realm::CreatePolicy’ changed in GCC 9.1
  223 | void List::set_if_different(Context& ctx, size_t row_ndx, T&& value, CreatePolicy policy)
      |      ^~~~
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/list.hpp: In member function ‘void realm::List::set(Context&, size_t, T&&, realm::CreatePolicy) [with T = Napi::Value&; Context = realm::js::NativeAccessor<realm::node::Types>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/list.hpp:207:6: note: parameter passing for argument of type ‘realm::CreatePolicy’ changed in GCC 9.1
  207 | void List::set(Context& ctx, size_t list_ndx, T&& value, CreatePolicy policy)
      |      ^~~~
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/list.hpp: In member function ‘void realm::List::assign(Context&, T&&, realm::CreatePolicy) [with T = Napi::Value&; Context = realm::js::NativeAccessor<realm::node::Types>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/list.hpp:249:6: note: parameter passing for argument of type ‘realm::CreatePolicy’ changed in GCC 9.1
  249 | void List::assign(Context& ctx, T&& values, CreatePolicy policy)
      |      ^~~~
In file included from /home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/object_accessor.hpp:26,
                 from /home/jayademola/Desktop/realm-js/src/js_realm_object.hpp:30,
                 from /home/jayademola/Desktop/realm-js/src/js_list.hpp:23,
                 from /home/jayademola/Desktop/realm-js/src/js_object_accessor.hpp:26,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.hpp:32,
                 from /home/jayademola/Desktop/realm-js/src/node/node_init.cpp:20:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/dictionary.hpp: In member function ‘void realm::object_store::Dictionary::insert(Context&, realm::StringData, T&&, realm::CreatePolicy) [with T = Napi::Value; Context = realm::js::NativeAccessor<realm::node::Types>]’:
/home/jayademola/Desktop/realm-js/vendor/realm-core/src/realm/object-store/dictionary.hpp:175:6: note: parameter passing for argument of type ‘realm::CreatePolicy’ changed in GCC 9.1
  175 | void Dictionary::insert(Context& ctx, StringData key, T&& value, CreatePolicy policy)
      |      ^~~~~~~~~~
[100%] Building CXX object src/node/CMakeFiles/realm-js.dir/platform.cpp.o
[100%] Linking CXX shared library ../../Release/realm.node
/home/jayademola/Downloads/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/10.3.1/../../../../aarch64-none-linux-gnu/bin/ld.gold: fatal error: /usr/lib/x86_64-linux-gnu/libssl.a(libssl-lib-methods.o): unsupported ELF machine number 62
collect2: error: ld returned 1 exit status
gmake[2]: *** [src/node/CMakeFiles/realm-js.dir/build.make:121: Release/realm.node] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:518: src/node/CMakeFiles/realm-js.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2
ERR! OMG Process terminated: 2
kneth commented 1 year ago

We have just merged https://github.com/realm/realm-js/pull/5038 and for next release we will produce binaries for 32 bit ARM - not exactly what you are looking for.

Notice that we install libssl-dev:armhf. I don't know if enable multiarch support - and install libssl-dev:arm64 - is the best approach for you.

fealebenpae commented 1 year ago

Hey @jayademola, when cross-compiling you need to pass the --arch=arm64 flag to cmake-js. As soon as Realm Core realizes it's not building for x86_64 it won't try to use our prebuilt OpenSSL so you won't need to edit CMakeLists.txt manually to disable that. But to handle dependencies like that properly you really need a CMake toolchain file, which you pass to cmake-js with --CDCMAKE_TOOLCHAIN_FILE="path/to/toolchain.cmake". When cross-compiling on a Debian system we use multiarch to install dependencies like OpenSSL for the right architecture and a CMake toolchain file like this (for 32bit ARM, adjust accordingly for aarch64).

But ideally if your target platform has a cross-compilation toolchain you should be using that coupled with CMake's cross-compilation support via toolchain files to describe the compiler tools and location of dependencies built for the target platform.

kneth commented 1 year ago

In our recent releases we have added Linux ARM (32 bit and 64 bit) binaries. I am closing the issue and if you experience any issues, please create a new issue.