rubyjs / libv8

Ruby gem binary distribution of the V8 JavaScript engine
269 stars 121 forks source link

V8 5.4.500.31 requires binutils 2.26 #227

Closed ignisf closed 7 years ago

ignisf commented 8 years ago

It seems that V8 now requires binutils 2.26 to build. The result of this is that one cannot build it on Ubuntu 14.04 (and anything under 16.04 really).

Error message:

/usr/bin/ld.gold: error: /home/travis/build/cowboyd/libv8/vendor/v8/out/x64.release/obj.target/mkpeephole/src/interpreter/bytecodes.o: unsupported reloc 42 against global symbol v8::internal::interpreter::BytecodeTraits<(v8::internal::interpreter::AccumulatorUse)2, (v8::internal::interpreter::OperandType)4>::GetOperandTypes()::operand_types

Full error log: https://travis-ci.org/cowboyd/libv8/jobs/167891871

Possible courses of action:

@samsaffron, thoughts?

SamSaffron commented 8 years ago

I think documenting should be fine, the reality is that very very very few people go about compiling libv8

On Mon, Oct 17, 2016 at 8:38 AM, Petko Bordjukov notifications@github.com wrote:

It seems that V8 now requires binutils 2.26 to build. The result of this is that one cannot build Ubuntu 14.04 and (anything under 16.04 really).

Error message:

/usr/bin/ld.gold: error: /home/travis/build/cowboyd/libv8/vendor/v8/out/x64.release/obj.target/mkpeephole/src/interpreter/bytecodes.o: unsupported reloc 42 against global symbol v8::internal::interpreter::BytecodeTraits<(v8::internal::interpreter::AccumulatorUse)2, (v8::internal::interpreter::OperandType)4>::GetOperandTypes()::operand_types

Full error log: https://travis-ci.org/cowboyd/libv8/jobs/167891871

Possible courses of action:

  • Document the dependency on binutils >= 2.26 and go ahead without further actions. Pros: easy for maintaining. Cons: possibly an avalanche of unhappy users.
  • Check the version of binutils on build time and decide between using the system version or the Google-provided binary version. Pros: easy for implementation. Cons: depending on a binary provided by a third party.
  • Find and patch whatever imposes a dependency on reloc 42. Pros: cleanest solution. Cons: hard.

@samsaffron https://github.com/samsaffron, thoughts?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/cowboyd/libv8/issues/227, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAUXdUIIsyINjFchNTh3Is1xMO-4lghks5q0pltgaJpZM4KYF2r .

seanmakesgames commented 7 years ago

Here is one vote for 'customer that is fine with documentation route'

ignisf commented 7 years ago

Hey, unfortunately this bugs Alpine linux builds... :( Have to think of something better

ignisf commented 7 years ago

HA! I think I've cracked it!!! https://github.com/cowboyd/libv8/commit/a79d642a3bef972eefd3f4d961cd78e8608ae80b

ignisf commented 7 years ago

Seems that the build system falls back to the sysroot it downloads instead of using the system binutils......

ignisf commented 7 years ago

Fixed by https://github.com/cowboyd/libv8/commit/bb06abe6d71240da00c8c8a3b542f39049a8647f