phpv8 / v8js

V8 Javascript Engine for PHP — This PHP extension embeds the Google V8 Javascript Engine
http://pecl.php.net/package/v8js
MIT License
1.83k stars 200 forks source link

Debian 9 build faild accourding README.Linux.md #335

Closed mhf-ir closed 6 years ago

mhf-ir commented 6 years ago
root@aasaam-ms:/tmp/v8js# ./configure --with-v8js=/opt/v8
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for PHP prefix... /usr
checking for PHP includes... -I/usr/include/php/20170718 -I/usr/include/php/20170718/main -I/usr/include/php/20170718/TSRM -I/usr/include/php/20170718/Zend -I/usr/include/php/20170718/ext -I/usr/include/php/20170718/ext/date/lib
checking for PHP extension directory... /usr/lib/php/20170718
checking for PHP installed headers prefix... /usr/include/php/20170718
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... no
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
checking for gawk... no
checking for nawk... nawk
checking if nawk is broken... no
checking for V8 Javascript Engine... yes, shared
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking for C standard version... c++11
checking how to allow c++11 narrowing... -Wno-narrowing
checking for libv8_libplatform... found
checking for V8 version... NONE
configure: error: could not determine libv8 version
root@aasaam-ms:/tmp/v8js# tree /opt/v8/
/opt/v8/
├── include
│   ├── DEPS
│   ├── OWNERS
│   ├── libplatform
│   │   ├── DEPS
│   │   ├── libplatform-export.h
│   │   ├── libplatform.h
│   │   └── v8-tracing.h
│   ├── v8-debug.h
│   ├── v8-experimental.h
│   ├── v8-inspector-protocol.h
│   ├── v8-inspector.h
│   ├── v8-platform.h
│   ├── v8-profiler.h
│   ├── v8-testing.h
│   ├── v8-util.h
│   ├── v8-version.h
│   ├── v8.h
│   └── v8config.h
└── lib
    ├── icudtl.dat
    ├── libicui18n.so
    ├── libicuuc.so
    ├── libv8.so
    ├── libv8_libbase.so
    ├── libv8_libplatform.a
    ├── libv8_libplatform.so
    ├── natives_blob.bin
    └── snapshot_blob.bin

3 directories, 26 files
stesie commented 6 years ago

what does config.log file say?

HanXHX commented 6 years ago

I confirm this issue. See config.log

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ ./configure --with-v8js=/opt/v8

## --------- ##
## Platform. ##
## --------- ##

hostname = stretch
uname -m = x86_64
uname -r = 4.9.0-3-amd64
uname -s = Linux
uname -v = #1 SMP Debian 4.9.30-2 (2017-06-12)

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /tmp/depot_tools
PATH: /usr/local/bin
PATH: /usr/bin
PATH: /bin
PATH: /usr/local/games
PATH: /usr/games

## ----------- ##
## Core tests. ##
## ----------- ##

configure:2271: checking for grep that handles long lines and -e
configure:2329: result: /bin/grep
configure:2334: checking for egrep
configure:2396: result: /bin/grep -E
configure:2401: checking for a sed that does not truncate output
configure:2465: result: /bin/sed
configure:2604: checking for cc
configure:2620: found /usr/bin/cc
configure:2631: result: cc
configure:2662: checking for C compiler version
configure:2671: cc --version >&5
cc (Debian 6.3.0-18) 6.3.0 20170516
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2682: $? = 0
configure:2671: cc -v >&5
Using built-in specs.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 6.3.0-18' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 6.3.0 20170516 (Debian 6.3.0-18) 
configure:2682: $? = 0
configure:2671: cc -V >&5
cc: error: unrecognized command line option '-V'
cc: fatal error: no input files
compilation terminated.
configure:2682: $? = 1
configure:2671: cc -qversion >&5
cc: error: unrecognized command line option '-qversion'; did you mean '--version'?
cc: fatal error: no input files
compilation terminated.
configure:2682: $? = 1
configure:2702: checking whether the C compiler works
configure:2724: cc    conftest.c  >&5
configure:2728: $? = 0
configure:2776: result: yes
configure:2779: checking for C compiler default output file name
configure:2781: result: a.out
configure:2787: checking for suffix of executables
configure:2794: cc -o conftest    conftest.c  >&5
configure:2798: $? = 0
configure:2820: result: 
configure:2842: checking whether we are cross compiling
configure:2850: cc -o conftest    conftest.c  >&5
configure:2854: $? = 0
configure:2861: ./conftest
configure:2865: $? = 0
configure:2880: result: no
configure:2885: checking for suffix of object files
configure:2907: cc -c   conftest.c >&5
configure:2911: $? = 0
configure:2932: result: o
configure:2936: checking whether we are using the GNU C compiler
configure:2955: cc -c   conftest.c >&5
configure:2955: $? = 0
configure:2964: result: yes
configure:2973: checking whether cc accepts -g
configure:2993: cc -c -g  conftest.c >&5
configure:2993: $? = 0
configure:3034: result: yes
configure:3051: checking for cc option to accept ISO C89
configure:3114: cc  -c -g -O2  conftest.c >&5
configure:3114: $? = 0
configure:3127: result: none needed
configure:3153: checking how to run the C preprocessor
configure:3184: cc -E  conftest.c
configure:3184: $? = 0
configure:3198: cc -E  conftest.c
conftest.c:9:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:3198: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3223: result: cc -E
configure:3243: cc -E  conftest.c
configure:3243: $? = 0
configure:3257: cc -E  conftest.c
conftest.c:9:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:3257: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3288: checking for icc
configure:3297: result: no
configure:3311: checking for suncc
configure:3320: result: no
configure:3338: checking whether cc understands -c and -o together
configure:3366: cc -c conftest.c -o conftest2.o >&5
configure:3370: $? = 0
configure:3376: cc -c conftest.c -o conftest2.o >&5
configure:3380: $? = 0
configure:3435: result: yes
configure:3449: checking for system library directory
configure:3464: result: lib
configure:3471: checking if compiler supports -R
configure:3490: cc -o conftest -g -O2   conftest.c -R /usr/lib  >&5
cc: error: unrecognized command line option '-R'; did you mean '-R'?
configure:3490: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:3500: result: no
configure:3505: checking if compiler supports -Wl,-rpath,
configure:3524: cc -o conftest -g -O2   conftest.c -Wl,-rpath,/usr/lib  >&5
configure:3524: $? = 0
configure:3534: result: yes
configure:3579: checking build system type
configure:3593: result: x86_64-pc-linux-gnu
configure:3613: checking host system type
configure:3626: result: x86_64-pc-linux-gnu
configure:3646: checking target system type
configure:3659: result: x86_64-pc-linux-gnu
configure:3762: checking for PHP prefix
configure:3764: result: /usr
configure:3766: checking for PHP includes
configure:3768: result: -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib
configure:3770: checking for PHP extension directory
configure:3772: result: /usr/lib/php/20151012
configure:3774: checking for PHP installed headers prefix
configure:3776: result: /usr/include/php/20151012
configure:3779: checking if debug is enabled
configure:3805: result: no
configure:3808: checking if zts is enabled
configure:3834: result: no
configure:3905: checking for re2c
configure:3935: result: no
configure:3960: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
configure:3974: checking for gawk
configure:3991: found /usr/bin/gawk
configure:4002: result: gawk
configure:4045: checking for V8 Javascript Engine
configure:4085: result: yes, shared
configure:4323: checking for g++
configure:4339: found /usr/bin/g++
configure:4350: result: g++
configure:4377: checking for C++ compiler version
configure:4386: g++ --version >&5
g++ (Debian 6.3.0-18) 6.3.0 20170516
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:4397: $? = 0
configure:4386: g++ -v >&5
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 6.3.0-18' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 6.3.0 20170516 (Debian 6.3.0-18) 
configure:4397: $? = 0
configure:4386: g++ -V >&5
g++: error: unrecognized command line option '-V'
g++: fatal error: no input files
compilation terminated.
configure:4397: $? = 1
configure:4386: g++ -qversion >&5
g++: error: unrecognized command line option '-qversion'; did you mean '--version'?
g++: fatal error: no input files
compilation terminated.
configure:4397: $? = 1
configure:4401: checking whether we are using the GNU C++ compiler
configure:4420: g++ -c   conftest.cpp >&5
configure:4420: $? = 0
configure:4429: result: yes
configure:4438: checking whether g++ accepts -g
configure:4458: g++ -c -g  conftest.cpp >&5
configure:4458: $? = 0
configure:4499: result: yes
configure:4527: checking how to run the C++ preprocessor
configure:4554: g++ -E  conftest.cpp
configure:4554: $? = 0
configure:4568: g++ -E  conftest.cpp
conftest.cpp:10:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:4568: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PHP_V8_EXEC_PATH "/opt/v8/lib/libv8.so"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:4593: result: g++ -E
configure:4613: g++ -E  conftest.cpp
configure:4613: $? = 0
configure:4627: g++ -E  conftest.cpp
conftest.cpp:10:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:4627: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PHP_V8_EXEC_PATH "/opt/v8/lib/libv8.so"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:4671: checking for C standard version
configure:4696: g++ -o conftest -g -O2 -std=c++11  -Wl,--rpath=/opt/v8/lib conftest.cpp -lstdc++  >&5
configure:4696: $? = 0
configure:4696: ./conftest
configure:4696: $? = 0
configure:4714: result: c++11
configure:4717: checking how to allow c++11 narrowing
configure:4746: g++ -o conftest -std=c++11   -Wl,--rpath=/opt/v8/lib conftest.cpp -lstdc++  >&5
conftest.cpp: In function 'int main()':
conftest.cpp:11:45: error: narrowing conversion of '-1' from 'int' to 'unsigned int' inside { } [-Wnarrowing]
         struct { unsigned int x; } foo = {-1};
                                             ^
configure:4746: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PHP_V8_EXEC_PATH "/opt/v8/lib/libv8.so"
| /* end confdefs.h.  */
| int main() {
|         struct { unsigned int x; } foo = {-1};
|         (void) foo;
|         return 0;
|     }
configure:4765: g++ -o conftest -Wno-c++11-narrowing -std=c++11   -Wl,--rpath=/opt/v8/lib conftest.cpp -lstdc++  >&5
conftest.cpp: In function 'int main()':
conftest.cpp:11:49: error: narrowing conversion of '-1' from 'int' to 'unsigned int' inside { } [-Wnarrowing]
             struct { unsigned int x; } foo = {-1};
                                                 ^
At global scope:
cc1plus: warning: unrecognized command line option '-Wno-c++11-narrowing'
configure:4765: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PHP_V8_EXEC_PATH "/opt/v8/lib/libv8.so"
| /* end confdefs.h.  */
| int main() {
|             struct { unsigned int x; } foo = {-1};
|             (void) foo;
|             return 0;
|         }
configure:4784: g++ -o conftest -Wno-narrowing -std=c++11   -Wl,--rpath=/opt/v8/lib conftest.cpp -lstdc++  >&5
configure:4784: $? = 0
configure:4784: ./conftest
configure:4784: $? = 0
configure:4816: result: -Wno-narrowing
configure:4835: checking for libv8_libplatform
configure:4855: g++ -o conftest -g -O2  -I/opt/v8/include -std=c++11  -Wl,--rpath=/opt/v8/lib -L/opt/v8/lib conftest.cpp -lstdc++   -lv8_libplatform -lv8 >&5
configure:4855: $? = 0
configure:4857: result: found
configure:4905: checking for V8 version
configure:4933: g++ -o conftest -g -O2  -I/opt/v8/include -std=c++11  -Wl,--rpath=/opt/v8/lib -L/opt/v8/lib conftest.cpp -lstdc++   -lv8_libplatform -Wl,-rpath,/opt/v8/lib -L/opt/v8/lib -lv8  >&5
configure:4933: $? = 0
configure:4933: ./conftest
./conftest: error while loading shared libraries: libv8_libbase.so: cannot open shared object file: No such file or directory
configure:4933: $? = 127
configure: program exited with status 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PHP_V8_EXEC_PATH "/opt/v8/lib/libv8.so"
| /* end confdefs.h.  */
| #include <v8.h>
| #include <iostream>
| #include <fstream>
| using namespace std;
| 
| int main ()
| {
|   ofstream testfile ("conftestval");
|   if (testfile.is_open()) {
|       testfile << v8::V8::GetVersion();
|       testfile << "\n";
|       testfile.close();
|       return 0;
|   }
|   return 1;
| }
configure:4944: result: NONE
configure:4967: error: could not determine libv8 version

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-pc-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
configure:4933: $? = 127
configure: program exited with status 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PHP_V8_EXEC_PATH "/opt/v8/lib/libv8.so"
| /* end confdefs.h.  */
| #include <v8.h>
| #include <iostream>
| #include <fstream>
| using namespace std;
| 
| int main ()
| {
|   ofstream testfile ("conftestval");
|   if (testfile.is_open()) {
|       testfile << v8::V8::GetVersion();
|       testfile << "\n";
|       testfile.close();
|       return 0;
|   }
|   return 1;
| }
configure:4944: result: NONE
configure:4967: error: could not determine libv8 version

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-pc-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_LT_SYS_LIBRARY_PATH_set=
ac_cv_env_LT_SYS_LIBRARY_PATH_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_host=x86_64-pc-linux-gnu
ac_cv_objext=o
ac_cv_path_EGREP='/bin/grep -E'
ac_cv_path_GREP=/bin/grep
ac_cv_path_SED=/bin/sed
ac_cv_prog_AWK=gawk
ac_cv_prog_CPP='cc -E'
ac_cv_prog_CXXCPP='g++ -E'
ac_cv_prog_ac_ct_CC=cc
ac_cv_prog_ac_ct_CXX=g++
ac_cv_prog_cc_c89=
ac_cv_prog_cc_cc_c_o=yes
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=yes
ac_cv_target=x86_64-pc-linux-gnu
ac_cv_v8_cstd=c++11
ac_cv_v8_narrowing=-Wno-narrowing
ac_cv_v8_version=NONE
php_cv_cc_dashr=no
php_cv_cc_rpath=yes

## ----------------- ##
## Output variables. ##
## ----------------- ##

AR=''
AWK='gawk'
CC='cc'
CFLAGS='-g -O2'
CONFIGURE_COMMAND=' '\''./configure'\''  '\''--with-v8js=/opt/v8'\'''
CONFIGURE_OPTIONS=' '\''--with-v8js=/opt/v8'\'''
CPP='cc -E'
CPPFLAGS=' -I/opt/v8/include -std=c++11'
CXX='g++'
CXXCPP='g++ -E'
CXXFLAGS='-g -O2'
DEFS=''
DLLTOOL=''
DSYMUTIL=''
DUMPBIN=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/bin/grep -E'
EXEEXT=''
FGREP=''
GREP='/bin/grep'
LD=''
LDFLAGS=' -Wl,--rpath=/opt/v8/lib -L/opt/v8/lib'
LIBOBJS=''
LIBS='-lstdc++   -lv8_libplatform -Wl,-rpath,/opt/v8/lib -L/opt/v8/lib -lv8 '
LIBTOOL=''
LIPO=''
LN_S=''
LTLIBOBJS=''
LT_SYS_LIBRARY_PATH=''
MANIFEST_TOOL=''
NM=''
NMEDIT=''
OBJDUMP=''
OBJEXT='o'
OTOOL64=''
OTOOL=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_URL=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
RANLIB=''
RE2C='exit 0;'
SED='/bin/sed'
SHELL='/bin/bash'
SHLIB_DL_SUFFIX_NAME='so'
SHLIB_SUFFIX_NAME='so'
STRIP=''
ac_ct_AR=''
ac_ct_CC='cc'
ac_ct_CXX='g++'
ac_ct_DUMPBIN=''
bindir='${exec_prefix}/bin'
build='x86_64-pc-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='pc'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='NONE'
host='x86_64-pc-linux-gnu'
host_alias='x86_64-pc-linux-gnu'
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='pc'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr'
program_transform_name='s,x,x,'
psdir='${docdir}'
runstatedir='${localstatedir}/run'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target='x86_64-pc-linux-gnu'
target_alias=''
target_cpu='x86_64'
target_os='linux-gnu'
target_vendor='pc'

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#define PHP_V8_EXEC_PATH "/opt/v8/lib/libv8.so"

configure: exit 1
stesie commented 6 years ago
./conftest: error while loading shared libraries: libv8_libbase.so: cannot open shared object file: No such file or directory

does /opt/v8/lib/libv8_libbase.so file exist?

is it readable?

what does ldd /opt/v8/lib/libv8_libbase.so say? is the .so file corrupted maybe?

HanXHX commented 6 years ago
vagrant@stretch:/tmp$ ls /opt/v8/lib/libv8_libbase.so
/opt/v8/lib/libv8_libbase.so
vagrant@stretch:/tmp$ ldd /opt/v8/lib/libv8_libbase.so
    linux-vdso.so.1 (0x00007ffed457f000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f80001fe000)
    libc++.so => not found
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7fffff6000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7fffcf2000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7fff953000)
    /lib64/ld-linux-x86-64.so.2 (0x000056387a7c4000)

I'm trying with compiling v8 with the latest tag (not the master branch).

stesie commented 6 years ago

the library isn't valid, see: libc++.so => not found

... so the libv8 package you've installed is broken

HanXHX commented 6 years ago

OK there is missing dep to compile.

vagrant@stretch:/tmp$ ldd /opt/v8/lib/*.so | grep 'not found'
    libicuuc.so => not found
    libicui18n.so => not found
    libicuuc.so => not found
    libv8_libbase.so => not found
    libv8_libbase.so => not found
    libicui18n.so => not found
    libicuuc.so => not found
    libv8_libbase.so => not found

I install dep and compile again. I think it can be great to add missing package in doc.

HanXHX commented 6 years ago

I added libc++-dev and libicu-dev packages.

But i still have the same issue... "./configure" can't find libv8_libbase.so

vagrant@stretch:/tmp/v8js$ ls -l /opt/v8/lib/
total 44640
-rw-r--r-- 1 root root 10196592 Oct 18 13:01 icudtl.dat
-rwxr-xr-x 1 root root  1229152 Oct 18 13:01 libc++.so
-rwxr-xr-x 1 root root  3010280 Oct 18 13:01 libicui18n.so
-rwxr-xr-x 1 root root  1922888 Oct 18 13:01 libicuuc.so
-rwxr-xr-x 1 root root 13882992 Oct 18 13:01 libv8_for_testing.so
-rwxr-xr-x 1 root root   145800 Oct 18 13:01 libv8_libbase.so
-rwxr-xr-x 1 root root   101456 Oct 18 13:01 libv8_libplatform.so
-rwxr-xr-x 1 root root 13822712 Oct 18 13:01 libv8.so
-rw-r--r-- 1 root root   146165 Oct 18 13:01 natives_blob.bin
-rw-r--r-- 1 root root  1234980 Oct 18 13:01 snapshot_blob.bin
vagrant@stretch:/tmp/v8js$ ldd /opt/v8/lib/*.so
/opt/v8/lib/libc++.so:
    linux-vdso.so.1 (0x00007fffc3ff4000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1a9d6d8000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f1a9d4d0000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1a9d2b9000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1a9cf1a000)
    /lib64/ld-linux-x86-64.so.2 (0x000055e43bd1a000)
/opt/v8/lib/libicui18n.so:
    linux-vdso.so.1 (0x00007ffff3566000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f6780b03000)
    libicuuc.so => /usr/lib/x86_64-linux-gnu/libicuuc.so (0x00007f678075b000)
    libc++.so => /usr/lib/x86_64-linux-gnu/libc++.so (0x00007f6780455000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f6780151000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f677fdb2000)
    /lib64/ld-linux-x86-64.so.2 (0x000055680c013000)
    libicudata.so.57 => /usr/lib/x86_64-linux-gnu/libicudata.so.57 (0x00007f677e333000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f677e12f000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f677ddad000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f677db96000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f677d98e000)
/opt/v8/lib/libicuuc.so:
    linux-vdso.so.1 (0x00007fffc1906000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fad08635000)
    libc++.so => /usr/lib/x86_64-linux-gnu/libc++.so (0x00007fad0832f000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fad0802b000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fad07c8c000)
    /lib64/ld-linux-x86-64.so.2 (0x000055cd54afa000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fad07a84000)
/opt/v8/lib/libv8_for_testing.so:
    linux-vdso.so.1 (0x00007ffc8e585000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f19a8bfc000)
    libicui18n.so => /usr/lib/x86_64-linux-gnu/libicui18n.so (0x00007f19a8782000)
    libicuuc.so => /usr/lib/x86_64-linux-gnu/libicuuc.so (0x00007f19a83da000)
    libv8_libbase.so => not found
    libc++.so => /usr/lib/x86_64-linux-gnu/libc++.so (0x00007f19a80d4000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f19a7eca000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f19a7bc6000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f19a7827000)
    /lib64/ld-linux-x86-64.so.2 (0x000055ed7bd37000)
    libicudata.so.57 => /usr/lib/x86_64-linux-gnu/libicudata.so.57 (0x00007f19a5daa000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f19a5ba6000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f19a5824000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f19a560b000)
/opt/v8/lib/libv8_libbase.so:
    linux-vdso.so.1 (0x00007ffd31f51000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbc737d3000)
    libc++.so => /usr/lib/x86_64-linux-gnu/libc++.so (0x00007fbc734cd000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fbc732c5000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbc72fc1000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbc72c22000)
    /lib64/ld-linux-x86-64.so.2 (0x000055c569826000)
/opt/v8/lib/libv8_libplatform.so:
    linux-vdso.so.1 (0x00007ffcd03f8000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f923836c000)
    libv8_libbase.so => not found
    libc++.so => /usr/lib/x86_64-linux-gnu/libc++.so (0x00007f9238066000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9237d62000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f92379c3000)
    /lib64/ld-linux-x86-64.so.2 (0x000055dde529f000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f92377b9000)
/opt/v8/lib/libv8.so:
    linux-vdso.so.1 (0x00007ffc3c1f4000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd35a484000)
    libicui18n.so => /usr/lib/x86_64-linux-gnu/libicui18n.so (0x00007fd35a00a000)
    libicuuc.so => /usr/lib/x86_64-linux-gnu/libicuuc.so (0x00007fd359c62000)
    libv8_libbase.so => not found
    libc++.so => /usr/lib/x86_64-linux-gnu/libc++.so (0x00007fd35995c000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fd359752000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd35944e000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd3590af000)
    /lib64/ld-linux-x86-64.so.2 (0x000055bac489e000)
    libicudata.so.57 => /usr/lib/x86_64-linux-gnu/libicudata.so.57 (0x00007fd357632000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd35742e000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd3570ac000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd356e93000)
stesie commented 6 years ago

is the pathinfo/rpath of the .so files correct?

I haven't tried compiling on Debian for a while; anything specific you've done? which version? might give it a try tonight and see if I can reproduce it. Yet so far looks like it's a problem with V8 and not php-v8js

HanXHX commented 6 years ago

I only use a debian/stretch64 Vagrant box :)

tillsanders commented 6 years ago

Any updates on this? I have the same error. You can easily reproduce it using this Dockerfile:

FROM debian:stable

RUN apt-get update

# Install dependencies for V8
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential curl git python libglib2.0-dev php7.0-dev

WORKDIR /tmp

# Install depot_tools first (needed for source checkout)
RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
RUN echo ${PATH} "1"
ENV PATH=/tmp/depot_tools:${PATH}
RUN echo ${PATH} "2"

# Download v8
RUN fetch v8
WORKDIR v8

# Setup GN
RUN tools/dev/v8gen.py -vv x64.release -- is_component_build=true

# Build
RUN ninja -C out.gn/x64.release/

# Install to /opt/v8/
RUN mkdir -p /opt/v8/lib
RUN mkdir -p /opt/v8/include
RUN cp out.gn/x64.release/lib*.so out.gn/x64.release/*_blob.bin out.gn/x64.release/icudtl.dat /opt/v8/lib/
RUN cp -R include/* /opt/v8/include/

# Compile php-v8js
WORKDIR /tmp
RUN git clone https://github.com/phpv8/v8js.git
WORKDIR v8js
RUN git checkout 2.0.0
RUN phpize
RUN ./configure --with-v8js=/opt/v8 LDFLAGS="-lstdc++"
RUN make
RUN make test
RUN make install

This will fail with:

Step 22/25 : RUN ./configure --with-v8js=/opt/v8 LDFLAGS="-lstdc++"
 ---> Running in 732ddfda7bc8
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for PHP prefix... /usr
checking for PHP includes... -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib
checking for PHP extension directory... /usr/lib/php/20151012
checking for PHP installed headers prefix... /usr/include/php/20151012
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... no
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
checking for gawk... no
checking for nawk... nawk
checking if nawk is broken... no
checking for V8 Javascript Engine... yes, shared
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking for C standard version... c++11
checking how to allow c++11 narrowing... -Wno-narrowing
checking for libv8_libplatform... found
checking for V8 version... NONE
configure: error: could not determine libv8 version
The command '/bin/sh -c ./configure --with-v8js=/opt/v8 LDFLAGS="-lstdc++"' returned a non-zero code: 1
jakedowns commented 6 years ago

same issue here, Debian 9 debian/stretch64 vagrant box

https://gist.github.com/jakedowns/8401047bffdb4d5904a110984c67d5dd

PHP Version 7.0.19-1
stesie commented 6 years ago

I've now tried with the Dockerfile posted above, as mentioned earlier the problem is with RPATHs on the libraries.

If you run ldd on the shared library you'll notice that Debian has a hard time loading the library's dependencies:

root@7cd7ad336c6f:/tmp/v8js# ldd /opt/v8/lib/libv8.so 
        linux-vdso.so.1 (0x00007ffc5d5d1000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f670a978000)
        libicui18n.so => not found
        libicuuc.so => not found
        libv8_libbase.so => not found
        libc++.so => not found
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f670a770000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f670a46c000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f670a0cd000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f670b640000)

Those dependencies reside in the same directory, interestingly Debian Stretch doesn't load them (opposed to e.g. Ubuntu).

Yet explicitly setting RPATH to $ORIGIN forces Debian's library loader to prefer loading dependencies from the same directory. Simply run for A in /opt/v8/lib/*.so; do patchelf --set-rpath '$ORIGIN' $A;done to force their RPATH to $ORIGIN. Then proceed with configure etc. and it should work (at least did for me locally)