Skip to content

Cross-compiling Node for Mips32/OpenWRT fails with "assembler.cc:(.text._ZN2v88internalL23f32_nearest_int_wrapperEPf+0x18): undefined reference to `nearbyintf'" #7316

@kmandov

Description

@kmandov

I am trying to cross-compile Node for Mips32 using the OpenWRT toolchain. The target architecture is ar71xx with NAND. I am following the instructions here.

I am using the following config:

./configure --without-snapshot --without-npm --without-intl --dest-cpu=mips --dest-os=linux

I get the following error:

...
/root/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/gcc/mips-openwrt-linux-uclibc/4.8.3/../../../../mips-openwrt-linux-uclibc/bin/ld: Warning: /root/node/out/Release/node uses -msoft-float (set by /root/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/gcc/mips-openwrt-linux-uclibc/4.8.3/crtbegin.o), /root/node/out/Release/obj.target/deps/v8/tools/gyp/libv8_nosnapshot.a(experimental-extras-libraries.o) uses -mhard-float
/root/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/gcc/mips-openwrt-linux-uclibc/4.8.3/../../../../mips-openwrt-linux-uclibc/bin/ld: Warning: /root/node/out/Release/node uses -msoft-float (set by /root/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/gcc/mips-openwrt-linux-uclibc/4.8.3/crtbegin.o), /root/node/out/Release/obj.target/deps/v8/tools/gyp/libv8_nosnapshot.a(snapshot-empty.o) uses -mhard-float
/root/node/out/Release/obj.target/deps/v8/tools/gyp/libv8_base.a(assembler.o): In function v8::internal::f32_nearest_int_wrapper(float*)': assembler.cc:(.text._ZN2v88internalL23f32_nearest_int_wrapperEPf+0x18): undefined reference tonearbyintf'
collect2: error: ld returned 1 exit status
node.target.mk:206: recipe for target '/root/node/out/Release/node' failed
make[1]: *** [/root/node/out/Release/node] Error 1
rm _root_node_deps_v8_inspector_platform_inspector_protocol_protocol_gyp_protocol_sources_target_generateInspectorProtocolBackendSources.intermediate
make[1]: Leaving directory '/root/node/out'
Makefile:66: recipe for target 'node' failed
make: *** [node] Error 2

Here are the contents of config.gypi:

{ 'target_defaults': { 'cflags': [],
'default_configuration': 'Release',
'defines': [],
'include_dirs': [],
'libraries': []},
'variables': { 'asan': 0,
'gas_version': '2.24',
'host_arch': 'mips',
'icu_small': 'false',
'mips_arch_variant': 'r2',
'mips_fpu_mode': 'fp32',
'node_byteorder': 'little',
'node_enable_v8_vtunejit': 'false',
'node_install_npm': 'false',
'node_no_browser_globals': 'false',
'node_prefix': '/usr/local',
'node_release_urlbase': '',
'node_shared_cares': 'false',
'node_shared_http_parser': 'false',
'node_shared_libuv': 'false',
'node_shared_openssl': 'false',
'node_shared_zlib': 'false',
'node_tag': '',
'node_use_dtrace': 'false',
'node_use_etw': 'false',
'node_use_lttng': 'false',
'node_use_openssl': 'true',
'node_use_perfctr': 'false',
'openssl_fips': '',
'openssl_no_asm': 0,
'target_arch': 'mips',
'uv_parent_path': '/deps/uv/',
'uv_use_dtrace': 'false',
'v8_can_use_fpu_instructions': 'true',
'v8_enable_gdbjit': 0,
'v8_enable_i18n_support': 0,
'v8_inspector': 'true',
'v8_no_strict_aliasing': 1,
'v8_optimized_debug': 0,
'v8_random_seed': 0,
'v8_use_mips_abi_hardfloat': 'true',
'v8_use_snapshot': 'false',
'want_separate_host_toolset': 0}}

Is this a known issue or I am doing something wrong?
Thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildIssues and PRs related to build files or the CI.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions