From e07ea80805af40c71b5513461020c6081ee49e63 Mon Sep 17 00:00:00 2001 From: Stefan Siegl Date: Wed, 19 Aug 2015 10:46:48 +0200 Subject: [PATCH] Update README.Linux.md common pitfalls * recent V8 versions need to be compiled with snnapshot=off to be usable * use more meaningful destination path --- README.Linux.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/README.Linux.md b/README.Linux.md index 128ce9d..2cd6b2c 100644 --- a/README.Linux.md +++ b/README.Linux.md @@ -28,8 +28,8 @@ cd v8 git checkout 3.32.6 gclient sync -# Build -make native library=shared -j8 +# Build (disable snapshots for V8 > 4.4.9.1) +make native library=shared snapshot=off -j8 # Install to /usr sudo mkdir -p /usr/lib /usr/include @@ -38,13 +38,16 @@ sudo cp -R include/* /usr/include echo -e "create /usr/lib/libv8_libplatform.a\naddlib out/native/obj.target/tools/gyp/libv8_libplatform.a\nsave\nend" | sudo ar -M ``` -If you don't want to overwrite the system copy of v8, replace `/usr` in -the above commands with `/tmp/v8-install` and then add -`--with-v8js=/tmp/v8-install` to the php-v8js `./configure` command below. -If you do that with a v8 library of 4.2 branch or newer, then you need -to fix the RUNPATH header in the v8js.so library so the libicui18n.so -is found. By default it is set to `$ORIGIN/lib.target/`, however the files -lie side by side. Use `chrpath -r '$ORIGIN' libv8.so` to fix. +* If the V8 library is newer than 4.4.9.1 you need to pass `snapshot=off` to + `make`, otherwise the V8 library will not be usable + (see V8 [Issue 4192](https://code.google.com/p/v8/issues/detail?id=4192)) +* If you don't want to overwrite the system copy of v8, replace `/usr` in + the above commands with some other path like `/opt/v8` and then add + `--with-v8js=/opt/v8` to the php-v8js `./configure` command below. +* If you do that with a v8 library of 4.2 branch or newer, then you need + to fix the RUNPATH header in the v8js.so library so the libicui18n.so + is found. By default it is set to `$ORIGIN/lib.target/`, however the files + lie side by side. Use `chrpath -r '$ORIGIN' libv8.so` to fix. `libv8_libplatform.a` should not be copied directly since it's a thin archive, i.e. it contains only pointers to the build objects, which