Repository: node
Issue: Cross compiling target aarch64-linux on host x86_64-macOS
Labels: build,macos

* **Version**: v14.15.5 
* **Platform**: Darwin MacBook-Pro.lan 19.6.0 Darwin Kernel Version 19.6.0: Tue Jan 12 22:13:05 PST 2021; root:xnu-6153.141.16~1/RELEASE_X86_64 x86_64 i386 MacBookPro11,4 Darwin
* **Subsystem**: build system/gyp

### What steps will reproduce the bug?
I have a aarch64 openwrt toolchain (/Volumes/data/src/lienol-openwrt/staging_dir/toolchain-aarch64_cortex-a72_gcc-8.4.0_musl), cross compiling node.js:
```shell
export PATH=/Volumes/data/src/lienol-openwrt/staging_dir/toolchain-aarch64_cortex-a72_gcc-8.4.0_musl/bin:$PATH
export STAGING_DIR=/Volumes/data/src/lienol-openwrt/staging_dir/target-aarch64_cortex-a72_musl
export PKG_CONFIG_PATH=$STAGING_DIR/usr/lib/pkgconfig:$STAGING_DIR/usr/share/pkgconfig
export PKG_CONFIG_LIBDIR=$PKG_CONFIG_PATH

CC="aarch64-openwrt-linux-musl-gcc -Os -pipe" CXX="aarch64-openwrt-linux-musl-g++ -Os -pipe" CC_host="gcc " CXX_host="g++ "  ./configure --dest-cpu=arm64 --dest-os=linux --cross-compiling --shared-zlib --shared-openssl --shared-nghttp2 --shared-libuv --shared-cares --with-intl=none     --prefix=/usr

CFLAGS="-Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -fmacro-prefix-map=/Volumes/data/src/node/node-v14.15.5=node-v14.15.5 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro  -I/Volumes/data/src/lienol-openwrt/staging_dir/toolchain-aarch64_cortex-a72_gcc-8.4.0_musl/usr/include -I/Volumes/data/src/lienol-openwrt/staging_dir/toolchain-aarch64_cortex-a72_gcc-8.4.0_musl/include/fortify -I/Volumes/data/src/lienol-openwrt/staging_dir/toolchain-aarch64_cortex-a72_gcc-8.4.0_musl/include " CXXFLAGS="-Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -fmacro-prefix-map=/Volumes/data/src/node/node-v14.15.5=node-v14.15.5 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro  -I/Volumes/data/src/lienol-openwrt/staging_dir/toolchain-aarch64_cortex-a72_gcc-8.4.0_musl/usr/include -I/Volumes/data/src/lienol-openwrt/staging_dir/toolchain-aarch64_cortex-a72_gcc-8.4.0_musl/include/fortify -I/Volumes/data/src/lienol-openwrt/staging_dir/toolchain-aarch64_cortex-a72_gcc-8.4.0_musl/include " LDFLAGS="-L/Volumes/data/src/lienol-openwrt/staging_dir/toolchain-aarch64_cortex-a72_gcc-8.4.0_musl/usr/lib -L/Volumes/data/src/lienol-openwrt/staging_dir/toolchain-aarch64_cortex-a72_gcc-8.4.0_musl/lib -znow -zrelro " DESTCPU=arm64 NO_LOAD='cctest.target.mk embedtest.target.mk node_mksnapshot.target.mk' LD_LIBRARY_PATH=/Volumes/data/src/lienol-openwrt/staging_dir/hostpkg/share/icu/current/lib make  -C /Volumes/data/src/node/node-v14.15.5/. AR="aarch64-openwrt-linux-musl-gcc-ar" AS="aarch64-openwrt-linux-musl-gcc -c -Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -fmacro-prefix-map=/Volumes/data/src/node/node-v14.15.5=node-v14.15.5 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro" LD=aarch64-openwrt-linux-musl-ld NM="aarch64-openwrt-linux-musl-gcc-nm" CC="aarch64-openwrt-linux-musl-gcc" GCC="aarch64-openwrt-linux-musl-gcc" CXX="aarch64-openwrt-linux-musl-g++" RANLIB="aarch64-openwrt-linux-musl-gcc-ranlib" STRIP=aarch64-openwrt-linux-musl-strip OBJCOPY=aarch64-openwrt-linux-musl-objcopy OBJDUMP=aarch64-openwrt-linux-musl-objdump SIZE=aarch64-openwrt-linux-musl-size CROSS="aarch64-openwrt-linux-musl-" ARCH="aarch64"
```

<!--
Enter details about your bug, preferably a simple code snippet that can be
run using `node` directly without installing third-party dependencies.
-->

### How often does it reproduce? Is there a required condition?
Everytime

### What is the expected behavior?
Build node.js successful.

<!--
If possible please provide textual output instead of screenshots.
-->

### What do you see instead?
```
  g++  -o /Volumes/data/src/node/node-v14.15.5/out/Release/obj.host/v8_libbase/deps/v8/src/base/platform/platform-linux.o ../deps/v8/src/base/platform/platform-linux.cc '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D__STDC_FORMAT_MACROS' '-DV8_TARGET_ARCH_ARM64' '-DV8_EMBEDDER_STRING="-node.18"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DENABLE_MINOR_MC' '-DOBJECT_PRINT' '-DV8_CONCURRENT_MARKING' '-DV8_ARRAY_BUFFER_EXTENSION' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_SNAPSHOT_COMPRESSION' '-DBUILDING_V8_BASE_SHARED' -I/usr/include -I../deps/v8 -I../deps/v8/include  -pthread -Wno-unused-parameter -Wno-return-type -fno-strict-aliasing -m64 -O3 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++1y -MMD -MF /Volumes/data/src/node/node-v14.15.5/out/Release/.deps//Volumes/data/src/node/node-v14.15.5/out/Release/obj.host/v8_libbase/deps/v8/src/base/platform/platform-linux.o.d.raw   -c
../deps/v8/src/base/platform/platform-linux.cc:13:10: fatal error: 'sys/prctl.h' file not found
#include <sys/prctl.h>
         ^~~~~~~~~~~~~
1 error generated.
make[1]: *** [tools/v8_gypfiles/v8_libbase.host.mk:149: /Volumes/data/src/node/node-v14.15.5/out/Release/obj.host/v8_libbase/deps/v8/src/base/platform/platform-linux.o] Error 1
make: *** [Makefile:104: node] Error 2
make: Leaving directory '/Volumes/data/src/node/node-v14.15.5'

```

<!--
If possible please provide textual output instead of screenshots.
-->

### Additional information
1.v8_libbase.host.mk link platform-linux.o, should be platform-macos.o
2.clang does not support '-Wl,--start-group'

I have a PR in https://github.com/openwrt/packages/pull/14829 , but it may not suitable for others.


Is `host` files necessary when cross compiling, is there a way to avoid compile `host` files? (only build target)

<!--
Tell us anything else you think we should know.
-->