As I have already commented, I may be running into this issue shortly, as I am planning on using a Razberry, a RPi dongle for use with Z-Wave home automation devices.
The partial answer to your question, and I am paraphrasing it heavily, "Is lib8 on my machine, and if not how do I get it on there?", may be found in a small, typo riddled, article from the Razberry support pages, Will Z-Way run on my specific platform?/How to check is v8 runs on my platform?[sic]
How to check is v8 runs on my platform?
Take a copy of v8 source code (we use a specific commit) and compile
it. Once done, go to v8/out/XXX.release/
and run d8
binary. If it
runs, your platform is 99% supported by Z-Way. If not, read further.
May be some advices would help you.
The snipplet below shows commands you need to execute for most common
cases.
git clone https://github.com/v8/v8
(cd v8 && git checkout 38d2d515ddeace8ea4719938f86edf316d29b576)
make -C v8 dependencies
LINK="g++" LD="g++" make -C v8 i18nsupport=off library=shared x64.release
Change x64 to ia32 or arm or mipsel depending on your CPU. MIPS big
endian is not supported by v8, but we have our own port to this
platform tested on some CPUs. Please contact us if you need MIPS big
endian.
If you are using cross-compilation, prior to compilation you need to
define CC, CXX, AR and RANLIB environment variables and CFLAGS and
LDFLAGS.
For the RPi
export CFLAGS = -march=armv6 -mfpu=vfp -mfloat-abi=hard
export CXXFLAGS = -march=armv6 -mfpu=vfp -mfloat-abi=hard
In this example we define specific ARM EABI and set VFP variant. You
need to compile arm.release armv7=false hardfp=on snapshot=off
armfpu=vfp armfloatabi=hard
(these params instructs v8 to build the
code with hardfp EABI).
For some ARMv6 processors you will need to apply our patch:
patch -p0 <<END
--- v8/src/cpu.cc 2014-02-11 13:02:05.810134031 +0400
+++ v8/src/cpu.cc 2014-02-11 13:04:09.118128534 +0400
@@ -379,7 +379,12 @@ CPU::CPU() : stepping_(0),
// an ARMv6-one. For example, the Raspberry Pi is one popular
// ARMv6 device that reports architecture 7.
if (architecture_ == 7) {
- char* processor = cpu_info.ExtractField("Processor");
+ char* processor;
+ processor = cpu_info.ExtractField("Processor");
+ if (HasListItem(processor, "(v6l)")) {
+ architecture_ = 6;
+ }
+ processor = cpu_info.ExtractField("model name");
if (HasListItem(processor, "(v6l)")) {
architecture_ = 6;
}
END