Skip to content

v8: fix build on aarch64#68550

Merged
worldofpeace merged 1 commit intoNixOS:masterfrom
WilliButz:v8/fix-aarch64-build
Sep 12, 2019
Merged

v8: fix build on aarch64#68550
worldofpeace merged 1 commit intoNixOS:masterfrom
WilliButz:v8/fix-aarch64-build

Conversation

@WilliButz
Copy link
Copy Markdown
Member

Motivation for this change

Before this, the build on aarch64 failed with:

/bin/sh: aarch64-linux-gnu-g++: not found
[...]
ninja: build stopped: subcommand failed.
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS (aarch64-linux)
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@lheckemann lheckemann added this to the 19.09 milestone Sep 12, 2019
@ofborg ofborg bot requested review from cstrahan and matthewbauer September 12, 2019 12:38
@ofborg ofborg bot added 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. labels Sep 12, 2019
@worldofpeace worldofpeace merged commit 6b92321 into NixOS:master Sep 12, 2019
@worldofpeace
Copy link
Copy Markdown
Contributor

backported in e0b7f1e

@WilliButz WilliButz deleted the v8/fix-aarch64-build branch September 12, 2019 16:45
@matthewbauer
Copy link
Copy Markdown
Member

For future reference, we eventually want to make ${targetPrefix}g++ available by default: #44583 /cc @Ericson2314

@flokli
Copy link
Copy Markdown
Member

flokli commented Oct 31, 2019

@WilliButz v8_3_14 and v8_3_16_14 still seem to be broken on aarch64, causing gitlab to fail on aarch64 currently:

  /nix/store/myghnb5wj43dvkkyg1y31lm2ch6ngzb9-v8-3.16.14.11.drv
  /nix/store/2bdgdq5fyb0996fkqwzy8588z7f0jqam-ruby2.6.5-execjs-2.6.0.drv
  /nix/store/vxx6rchnw2sff2ldgbbqhp8qw5777jx7-ruby2.6.5-uglifier-2.7.2.drv
  /nix/store/czp90k3rn42anwsnkl1s2w2j96aj1437-gitlab-env-12.4.1.drv

Any idea what needs to be fixed here?

make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/extensions/statistics-extension.o] Error 1
In file included from ../src/macro-assembler.h:67:0,
                 from ../src/ic.h:31,
                 from ../src/ic-inl.h:31,
                 from ../src/x64/codegen-x64.h:32,
                 from ../src/codegen.h:75,
                 from ../src/code-stubs.h:33,
                 from ../src/debug.cc:33:
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_uint32(int64_t)':
../src/x64/assembler-x64.h:49:60: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxUInt32 = V8_UINT64_C(0xffffffff);
                                                            ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_int32(int64_t)':
../src/x64/assembler-x64.h:54:58: error: 'V8_INT64_C' was not declared in this scope
   static const int64_t kMinInt32 = -V8_INT64_C(0x80000000);
                                                          ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::uint_is_int32(uint64_t)':
../src/x64/assembler-x64.h:59:59: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxInt32 = V8_UINT64_C(0x7fffffff);
                                                           ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_uint32(uint64_t)':
../src/x64/assembler-x64.h:64:60: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxUInt32 = V8_UINT64_C(0xffffffff);
                                                            ^
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/cpu-profiler.o] Error 1
../src/x64/assembler-x64.h: In static member function 'static bool v8::internal::CpuFeatures::IsSupported(v8::internal::CpuFeature)':
../src/x64/assembler-x64.h:468:40: error: 'V8_UINT64_C' was not declared in this scope
     return (supported_ & (V8_UINT64_C(1) << f)) != 0;
                                        ^
In file included from ../src/macro-assembler.h:67:0,
                 from ../src/ic.h:31,
                 from ../src/ic-inl.h:31,
                 from ../src/x64/code-stubs-x64.h:31,
                 from ../src/code-stubs.h:307,
                 from ../src/codegen.h:31,
                 from ../src/compiler.cc:33:
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_uint32(int64_t)':
../src/x64/assembler-x64.h:49:60: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxUInt32 = V8_UINT64_C(0xffffffff);
                                                            ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_int32(int64_t)':
../src/x64/assembler-x64.h:54:58: error: 'V8_INT64_C' was not declared in this scope
   static const int64_t kMinInt32 = -V8_INT64_C(0x80000000);
                                                          ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::uint_is_int32(uint64_t)':
../src/x64/assembler-x64.h:59:59: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxInt32 = V8_UINT64_C(0x7fffffff);
                                                           ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_uint32(uint64_t)':
../src/x64/assembler-x64.h:64:60: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxUInt32 = V8_UINT64_C(0xffffffff);
                                                            ^
../src/x64/assembler-x64.h: In static member function 'static bool v8::internal::CpuFeatures::IsSupported(v8::internal::CpuFeature)':
../src/x64/assembler-x64.h:468:40: error: 'V8_UINT64_C' was not declared in this scope
     return (supported_ & (V8_UINT64_C(1) << f)) != 0;
                                        ^
In file included from ../src/macro-assembler.h:67:0,
                 from ../src/ic.h:31,
                 from ../src/ic-inl.h:31,
                 from ../src/x64/codegen-x64.h:32,
                 from ../src/codegen.h:75,
                 from ../src/code-stubs.h:33,
                 from ../src/code-stubs-hydrogen.cc:30:
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_uint32(int64_t)':
../src/x64/assembler-x64.h:49:60: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxUInt32 = V8_UINT64_C(0xffffffff);
                                                            ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_int32(int64_t)':
../src/x64/assembler-x64.h:54:58: error: 'V8_INT64_C' was not declared in this scope
   static const int64_t kMinInt32 = -V8_INT64_C(0x80000000);
                                                          ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::uint_is_int32(uint64_t)':
../src/x64/assembler-x64.h:59:59: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxInt32 = V8_UINT64_C(0x7fffffff);
                                                           ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_uint32(uint64_t)':
../src/x64/assembler-x64.h:64:60: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxUInt32 = V8_UINT64_C(0xffffffff);
                                                            ^
../src/x64/assembler-x64.h: In static member function 'static bool v8::internal::CpuFeatures::IsSupported(v8::internal::CpuFeature)':
../src/x64/assembler-x64.h:468:40: error: 'V8_UINT64_C' was not declared in this scope
     return (supported_ & (V8_UINT64_C(1) << f)) != 0;
                                        ^
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/func-name-inferrer.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/accessors.o] Error 1
In file included from ../src/macro-assembler.h:67:0,
                 from ../src/deoptimizer.h:34,
                 from ../src/frames.cc:31:
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_uint32(int64_t)':
../src/x64/assembler-x64.h:49:60: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxUInt32 = V8_UINT64_C(0xffffffff);
                                                            ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_int32(int64_t)':
../src/x64/assembler-x64.h:54:58: error: 'V8_INT64_C' was not declared in this scope
   static const int64_t kMinInt32 = -V8_INT64_C(0x80000000);
                                                          ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::uint_is_int32(uint64_t)':
../src/x64/assembler-x64.h:59:59: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxInt32 = V8_UINT64_C(0x7fffffff);
                                                           ^
../src/x64/assembler-x64.h: In function 'bool v8::internal::is_uint32(uint64_t)':
../src/x64/assembler-x64.h:64:60: error: 'V8_UINT64_C' was not declared in this scope
   static const uint64_t kMaxUInt32 = V8_UINT64_C(0xffffffff);
                                                            ^
../src/x64/assembler-x64.h: In static member function 'static bool v8::internal::CpuFeatures::IsSupported(v8::internal::CpuFeature)':
../src/x64/assembler-x64.h:468:40: error: 'V8_UINT64_C' was not declared in this scope
     return (supported_ & (V8_UINT64_C(1) << f)) != 0;
                                        ^
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/elements.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/factory.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/data-flow.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/code-stubs.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/bootstrapper.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/disassembler.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/assembler.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/full-codegen.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/builtins.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/execution.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/codegen.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/ast.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/deoptimizer.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/debug.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/frames.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/api.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/code-stubs-hydrogen.o] Error 1
make: *** [tools/gyp/v8_base.target.mk:225: /build/v8-3.16.14.11/out/Release/obj.target/v8_base/src/compiler.o] Error 1
make: Leaving directory '/build/v8-3.16.14.11/out'
builder for '/nix/store/myghnb5wj43dvkkyg1y31lm2ch6ngzb9-v8-3.16.14.11.drv' failed with exit code 2
cannot build derivation '/nix/store/2bdgdq5fyb0996fkqwzy8588z7f0jqam-ruby2.6.5-execjs-2.6.0.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/czp90k3rn42anwsnkl1s2w2j96aj1437-gitlab-env-12.4.1.drv': 1 dependencies couldn't be built
error: build of '/nix/store/czp90k3rn42anwsnkl1s2w2j96aj1437-gitlab-env-12.4.1.drv' failed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants