apache / skywalking

APM, Application Performance Monitoring System
https://skywalking.apache.org/
Apache License 2.0
23.72k stars 6.5k forks source link

[Bug] skywalking php agent install process error in Centos 7.8 #9976

Closed chongfenghao closed 1 year ago

chongfenghao commented 1 year ago

Search before asking

Apache SkyWalking Component

PHP (apache/skywalking-php)

What happened

Error,show in how to reproduce section

enviroment describe: skywalking_php_agent 0.1.0 php:7.3.24-1.el7.remi.x86_64 clang:5.0.1

What you expected to happen

No errors.

How to reproduce

pecl install skywalking_agent-0.1.0.tgz

pecl install skywalking_agent WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update downloading skywalking_agent-0.1.0.tgz ... Starting to download skywalking_agent-0.1.0.tgz (58,878 bytes) ..............done: 58,878 bytes 51 source files, building running: phpize Configuring for: PHP Api Version: 20180731 Zend Module Api No: 20180731 Zend Extension Api No: 320180731 enable cargo debug? [no] : building in /var/tmp/pear-build-defaultuserQu1PKy/skywalking_agent-0.1.0 running: /var/tmp/skywalking_agent/configure --with-php-config=/usr/bin/php-config --enable-cargo-debug=no checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for a sed that does not truncate output... /usr/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 -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib checking for PHP extension directory... /usr/lib64/php/modules checking for PHP installed headers prefix... /usr/include/php 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... gawk checking whether to enable skywalking_agent support... yes, shared checking whether to enable cargo debug mode... no checking for cargo... /usr/bin/cargo checking for protoc... /usr/local/bin/protoc checking how to print strings... printf checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for fgrep... /usr/bin/grep -F checking for ld used by cc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking for gawk... (cached) gawk checking command to parse /usr/bin/nm -B output from cc object... ok checking for sysroot... no checking for mt... no checking if : is a manifest tool... no checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if cc supports -fno-rtti -fno-exceptions... no checking for cc option to produce PIC... -fPIC -DPIC checking if cc PIC flag -fPIC -DPIC works... yes checking if cc static flag -static works... no checking if cc supports -c -o file.o... yes checking if cc supports -c -o file.o... (cached) yes checking whether the cc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no configure: creating ./config.status config.status: creating config.h config.status: linking /var/tmp/skywalking_agent/.rustfmt.toml to .rustfmt.toml config.status: linking /var/tmp/skywalking_agent/Cargo.lock to Cargo.lock config.status: linking /var/tmp/skywalking_agent/Cargo.toml to Cargo.toml config.status: linking /var/tmp/skywalking_agent/LICENSE to LICENSE config.status: linking /var/tmp/skywalking_agent/NOTICE to NOTICE config.status: linking /var/tmp/skywalking_agent/README.md to README.md config.status: linking /var/tmp/skywalking_agent/build.rs to build.rs config.status: linking /var/tmp/skywalking_agent/docker-compose.yml to docker-compose.yml config.status: linking /var/tmp/skywalking_agent/docs to docs config.status: linking /var/tmp/skywalking_agent/scripts to scripts config.status: linking /var/tmp/skywalking_agent/src to src config.status: linking /var/tmp/skywalking_agent/tests to tests config.status: executing libtool commands running: make PHP_CONFIG=/usr/bin/php-config cargo build --release Compiling proc-macro2 v1.0.43 Compiling unicode-ident v1.0.3 Compiling libc v0.2.132 Compiling quote v1.0.21 Compiling autocfg v1.1.0 Compiling syn v1.0.99 Compiling memchr v2.5.0 Compiling log v0.4.17 Compiling cfg-if v1.0.0 Compiling indexmap v1.9.1 Compiling either v1.8.0 Compiling once_cell v1.14.0 Compiling hashbrown v0.12.3 Compiling regex-syntax v0.6.27 Compiling aho-corasick v0.7.19 Compiling which v4.3.0 Compiling smallvec v1.9.0 Compiling regex v1.6.0 Compiling lazy_static v1.4.0 Compiling lock_api v0.4.8 Compiling parking_lot_core v0.9.3 Compiling pin-project-lite v0.2.9 Compiling glob v0.3.0 Compiling scopeguard v1.1.0 Compiling cc v1.0.73 Compiling clang-sys v1.3.3 Compiling bytes v1.2.1 Compiling futures-core v0.3.24 Compiling atty v0.2.14 Compiling os_str_bytes v6.3.0 Compiling minimal-lexical v0.2.1 Compiling termcolor v1.1.3 Compiling nom v7.1.1 Compiling clap_lex v0.2.4 Compiling libloading v0.7.3 Compiling tracing-core v0.1.29 Compiling bitflags v1.3.2 Compiling humantime v2.1.0 Compiling textwrap v0.15.0 Compiling bindgen v0.60.1 Compiling strsim v0.10.0 Compiling clap v3.2.20 Compiling env_logger v0.9.0 Compiling cexpr v0.6.0 Compiling tokio v1.21.0 Compiling rustc-hash v1.1.0 Compiling lazycell v1.3.0 Compiling shlex v1.1.0 Compiling peeking_take_while v0.1.2 Compiling itoa v1.0.3 Compiling tokio-macros v1.8.0 Compiling parking_lot v0.12.1 Compiling mio v0.8.4 Compiling num_cpus v1.13.1 Compiling socket2 v0.4.7 Compiling signal-hook-registry v1.4.0 Compiling slab v0.4.7 Compiling anyhow v1.0.64 Compiling futures-task v0.3.24 Compiling tracing-attributes v0.1.22 Compiling futures-util v0.3.24 Compiling futures-macro v0.3.24 Compiling tracing v0.1.36 Compiling itertools v0.10.3 Compiling pin-utils v0.1.0 Compiling fnv v1.0.7 Compiling http v0.2.8 Compiling phper-sys v0.5.1 ^@ Compiling prost-derive v0.11.0 Compiling getrandom v0.2.7 Compiling futures-sink v0.3.24 Compiling version_check v0.9.4 Compiling tokio-util v0.7.4 Compiling tower-service v0.3.2 Compiling heck v0.4.0 error: failed to run custom build command for phper-sys v0.5.1

Caused by: process didn't exit successfully: /var/tmp/pear-build-defaultuserQu1PKy/skywalking_agent-0.1.0/target/release/build/phper-sys-a38ae7f65109f591/build-script-build (exit status: 101) --- stdout cargo:rerun-if-changed=php_wrapper.c cargo:rerun-if-env-changed=PHP_CONFIG TARGET = Some("x86_64-unknown-linux-gnu") OPT_LEVEL = Some("0") HOST = Some("x86_64-unknown-linux-gnu") CC_x86_64-unknown-linux-gnu = None CC_x86_64_unknown_linux_gnu = None HOST_CC = None CC = None CFLAGS_x86_64-unknown-linux-gnu = None CFLAGS_x86_64_unknown_linux_gnu = None HOST_CFLAGS = None CFLAGS = None CRATE_CC_NO_DEFAULTS = None DEBUG = Some("false") CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2") running: "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-Wall" "-Wextra" "-I/usr/include/php" "-I/usr/include/php/main" "-I/usr/include/php/TSRM" "-I/usr/include/php/Zend" "-I/usr/include/php/ext" "-I/usr/include/php/ext/date/lib" "-o" "/var/tmp/pear-build-defaultuserQu1PKy/skywalking_agent-0.1.0/target/release/build/phper-sys-5fb2850fac55766a/out/php_wrapper.o" "-c" "php_wrapper.c" exit status: 0 AR_x86_64-unknown-linux-gnu = None AR_x86_64_unknown_linux_gnu = None HOST_AR = None AR = None running: "ar" "cq" "/var/tmp/pear-build-defaultuserQu1PKy/skywalking_agent-0.1.0/target/release/build/phper-sys-5fb2850fac55766a/out/libphpwrapper.a" "/var/tmp/pear-build-defaultuserQu1PKy/skywalking_agent-0.1.0/target/release/build/phper-sys-5fb2850fac55766a/out/php_wrapper.o" exit status: 0 running: "ar" "s" "/var/tmp/pear-build-defaultuserQu1PKy/skywalking_agent-0.1.0/target/release/build/phper-sys-5fb2850fac55766a/out/libphpwrapper.a" exit status: 0 cargo:rustc-link-lib=static=phpwrapper cargo:rustc-link-search=native=/var/tmp/pear-build-defaultuserQu1PKy/skywalking_agent-0.1.0/target/release/build/phper-sys-5fb2850fac55766a/out cargo:include=/usr/include/php cargo:include=/usr/include/php/main cargo:include=/usr/include/php/TSRM cargo:include=/usr/include/php/Zend cargo:include=/usr/include/php/ext cargo:include=/usr/include/php/ext/date/lib

--- stderr /usr/include/php/Zend/zend_operators.h:487:10: error: 'asm goto' constructs are not supported yet /usr/include/php/Zend/zend_operators.h:537:10: error: 'asm goto' constructs are not supported yet /usr/include/php/Zend/zend_operators.h:594:10: error: 'asm goto' constructs are not supported yet /usr/include/php/Zend/zend_operators.h:684:10: error: 'asm goto' constructs are not supported yet thread 'main' panicked at 'Unable to generate bindings: ClangDiagnostic("/usr/include/php/Zend/zend_operators.h:487:10: error: 'asm goto' constructs are not supported yet\n/usr/include/php/Zend/zend_operators.h:537:10: error: 'asm goto' constructs are not supported yet\n/usr/include/php/Zend/zend_operators.h:594:10: error: 'asm goto' constructs are not supported yet\n/usr/include/php/Zend/zend_operators.h:684:10: error: 'asm goto' constructs are not supported yet\n")', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/phper-sys-0.5.1/build.rs:760:10 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace warning: build failed, waiting for other jobs to finish... make: *** [modules/skywalking_agent.so] Error 101 ERROR: `make' failed

Anything else

nothing

Are you willing to submit PR?

Code of Conduct

chongfenghao commented 1 year ago

Linux system version:CentOS Linux release 7.8.2003 (Core)

wu-sheng commented 1 year ago

No title.

chongfenghao commented 1 year ago

/usr/include/php/Zend/zend_operators.h : There is no following content:

define ZEND USE ASM_ ARITHMETIC 0

chongfenghao commented 1 year ago

No title.

Sorry,Added

chongfenghao commented 1 year ago

No title.

Can you reopen this issue?

jmjoy commented 1 year ago

The requirement of Clang version is 5.0+, so maybe you can use scl in centos.

chongfenghao commented 1 year ago

Clang version is 5.0.1,show blow,also not work.

scl enable llvm-toolset-7 bash

clang --version

clang version 5.0.1 (tags/RELEASE_501/final) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /opt/rh/llvm-toolset-7/root/usr/bin

jmjoy commented 1 year ago

How about the libclang-devel version?

chongfenghao commented 1 year ago

How about the libclang-devel version?

5.0.1 =# rpm -qa|grep -i clang llvm-toolset-7-clang-devel-5.0.1-4.el7.x86_64 llvm-toolset-7-clang-5.0.1-4.el7.x86_64 llvm-toolset-7-clang-tools-extra-5.0.1-4.el7.x86_64 llvm-toolset-7-clang-libs-5.0.1-4.el7.x86_64

jmjoy commented 1 year ago

/usr/include/php/Zend/zend_operators.h:487:10: error: 'asm goto' constructs are not supported yet /usr/include/php/Zend/zend_operators.h:537:10: error: 'asm goto' constructs are not supported yet /usr/include/php/Zend/zend_operators.h:594:10: error: 'asm goto' constructs are not supported yet /usr/include/php/Zend/zend_operators.h:684:10: error: 'asm goto' constructs are not supported yet

It seems that clang-devel 5.0+is not enough. Try upgrading to 9.0+.

chongfenghao commented 1 year ago

/usr/include/php/Zend/zend_operators.h:487:10: error: 'asm goto' constructs are not supported yet /usr/include/php/Zend/zend_operators.h:537:10: error: 'asm goto' constructs are not supported yet /usr/include/php/Zend/zend_operators.h:594:10: error: 'asm goto' constructs are not supported yet /usr/include/php/Zend/zend_operators.h:684:10: error: 'asm goto' constructs are not supported yet

It seems that clang-devel 5.0+is not enough. Try upgrading to 9.0+.

Amazing,it works. Thank you .

more /etc/yum.repos.d/c7-llvm.repo [c7-llvm-toolset-9] name=c7-llvm-toolset-9 baseurl=https://buildlogs.centos.org/c7-llvm-toolset-9.0.x86_64/ gpgcheck=0 enabled=1 sslverify=0

then execute the following command:

yum install llvm-toolset-9.0 source /opt/rh/llvm-toolset-9.0/enable pecl intall skywalking_agent

Hope can help other guys~