wasmerio / wasmer-php

🐘🕸️ WebAssembly runtime for PHP
https://wasmerio.github.io/wasmer-php/wasm/
MIT License
1k stars 42 forks source link

Compile failed in different situation #146

Closed sc0Vu closed 1 year ago

sc0Vu commented 2 years ago

Hi, thanks for this great library, I saw multiple changes and try to build on my computer. But got different errors:

  1. `./configure --enable-wasmer'
--enable-wasmer options not found

After checkout configure file, does it be --enable-wasm?

  1. make succeed, but the make test didn't work:
FAIL WAT: wat2wasm [tests/api/wat/02-wat2wasm.phpt] 
FAIL WAT: wat2wasm (error) [tests/api/wat/02-wat2wasm_error.phpt] 
FAIL Wasmer PHP - Exceptions [tests/exceptions.phpt] 
FAIL Wasmer PHP [tests/extension.phpt] 
=====================================================================
TIME END 2022-03-12 08:38:44

=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped    :    0
Exts tested     :   33
---------------------------------------------------------------------

Number of tests :  186               175
Tests skipped   :   11 (  5.9%) --------
Tests warned    :    0 (  0.0%) (  0.0%)
Tests failed    :  175 ( 94.1%) (100.0%)
Tests passed    :    0 (  0.0%) (  0.0%)
---------------------------------------------------------------------
Time taken      :   10 seconds
=====================================================================

=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Config API functions [tests/api/config/00-functions.phpt]
Config API functions arguments information [tests/api/config/01-arginfo.phpt]
Config API: wasm_config_delete [tests/api/config/02-wasm_config_delete.phpt]
Config API: wasm_config_new [tests/api/config/02-wasm_config_new.phpt]
Config API: wasm_config_set_compiler [tests/api/config/02-wasm_config_set_compiler.phpt]
Config API: wasm_config_set_engine [tests/api/config/02-wasm_config_set_engine.phpt]
Engine API functions [tests/api/engine/00-functions.phpt]
Engine API functions arguments information [tests/api/engine/01-arginfo.phpt]
Engine API: wasm_engine_delete [tests/api/engine/02-wasm_engine_delete.phpt]
Engine API: wasm_engine_new [tests/api/engine/02-wasm_engine_new.phpt]
Engine API: wasm_engine_new_with_config [tests/api/engine/02-wasm_engine_new_with_config.phpt]
Engine API: wasm_engine_new_with_config (LLVM) [tests/api/engine/02-wasm_engine_new_with_config_compiler_LLVM.phpt]
Engine API: wasm_engine_new_with_config (Cranelift) [tests/api/engine/02-wasm_engine_new_with_config_compiler_cranelift.phpt]
Engine API: wasm_engine_new_with_config (Cranelift, JIT) [tests/api/engine/02-wasm_engine_new_with_config_compiler_cranelift_JIT.phpt]
Engine API: wasm_engine_new_with_config (Cranelift, Native) [tests/api/engine/02-wasm_engine_new_with_config_compiler_cranelift_native.phpt]
Engine API: wasm_engine_new_with_config (Cranelift, Object File) [tests/api/engine/02-wasm_engine_new_with_config_compiler_cranelift_object_file.phpt]
Engine API: wasm_engine_new_with_config (Singlepass) [tests/api/engine/02-wasm_engine_new_with_config_compiler_singlepass.phpt]
Engine API: wasm_engine_new_with_config (JIT) [tests/api/engine/02-wasm_engine_new_with_config_engine_JIT.phpt]
Engine API: wasm_engine_new_with_config (Native) [tests/api/engine/02-wasm_engine_new_with_config_engine_native.phpt]
Engine API: wasm_engine_new_with_config (Object File) [tests/api/engine/02-wasm_engine_new_with_config_engine_object_file.phpt]
Extern API functions [tests/api/objects/extern/00-functions.phpt]
Extern API functions arguments information [tests/api/objects/extern/01-arginfo.phpt]
Extern API: wasm_extern_as_func [tests/api/objects/extern/02-wasm_extern_as_func.phpt]
Extern API: wasm_extern_as_global [tests/api/objects/extern/02-wasm_extern_as_global.phpt]
Extern API: wasm_extern_delete [tests/api/objects/extern/02-wasm_extern_delete.phpt]
Extern API: wasm_extern_kind [tests/api/objects/extern/02-wasm_extern_kind.phpt]
Extern API: wasm_extern_type [tests/api/objects/extern/02-wasm_extern_type.phpt]
Extern API: Wasm\Vec\Extern (clone) [tests/api/objects/extern/02-wasm_vec_extern___clone.phpt]
Extern API: Wasm\Vec\Extern::construct() [tests/api/objects/extern/02-wasm_vec_extern___construct.phpt]
Extern API: Wasm\Vec\Extern::offsetExists() [tests/api/objects/extern/02-wasm_vec_extern_offsetExists.phpt]
Extern API: Wasm\Vec\Extern::offsetGet() [tests/api/objects/extern/02-wasm_vec_extern_offsetGet.phpt]
Extern API: Wasm\Vec\Extern::offsetSet() [tests/api/objects/extern/02-wasm_vec_extern_offsetSet.phpt]
Func API functions [tests/api/objects/func/00-functions.phpt]
Func API functions arguments information [tests/api/objects/func/01-arginfo.phpt]
Func API: wasm_func_as_extern [tests/api/objects/func/02-wasm_func_as_extern.phpt]
Func API: wasm_func_call (guest) [tests/api/objects/func/02-wasm_func_call_guest.phpt]
Func API: wasm_func_call (trap) [tests/api/objects/func/02-wasm_func_call_with_trap.phpt]
Func API: wasm_func_delete [tests/api/objects/func/02-wasm_func_delete.phpt]
Func API: wasm_func_new [tests/api/objects/func/02-wasm_func_new.phpt]
Func API: wasm_func_type [tests/api/objects/func/02-wasm_func_type.phpt]
Global API: wasm_global_as_extern [tests/api/objects/global/02-wasm_global_as_extern.phpt]
Global API: wasm_global_copy [tests/api/objects/global/02-wasm_global_copy.phpt]
Global API: wasm_global_delete [tests/api/objects/global/02-wasm_global_delete.phpt]
Global API: wasm_global_get (guest) [tests/api/objects/global/02-wasm_global_get_guest.phpt]
Global API: wasm_global_get (host) [tests/api/objects/global/02-wasm_global_get_host.phpt]
Global API: wasm_global_new [tests/api/objects/global/02-wasm_global_new.phpt]
Global API: wasm_global_same [tests/api/objects/global/02-wasm_global_same.phpt]
Global API: wasm_global_set (guest) [tests/api/objects/global/02-wasm_global_set_guest.phpt]
Global API: wasm_global_set (host) [tests/api/objects/global/02-wasm_global_set_host.phpt]
Global API: wasm_global_type [tests/api/objects/global/02-wasm_global_type.phpt]
Instance API: wasm_instance_delete [tests/api/objects/instance/02-wasm_instance_delete.phpt]
Instance API: wasm_instance_exports [tests/api/objects/instance/02-wasm_instance_exports.phpt]
Instance API: wasm_instance_new [tests/api/objects/instance/02-wasm_instance_new.phpt]
Instance API: wasm_instance_new (trap) [tests/api/objects/instance/02-wasm_instance_new_with_trap.phpt]
Memory API functions [tests/api/objects/memory/00-functions.phpt]
Memory API: wasm_memory_as_extern [tests/api/objects/memory/02-wasm_memory_as_extern.phpt]
Memory API: wasm_memory_data [tests/api/objects/memory/02-wasm_memory_data.phpt]
Memory API: wasm_memory_data_size [tests/api/objects/memory/02-wasm_memory_data_size.phpt]
Memory API: wasm_memory_delete [tests/api/objects/memory/02-wasm_memory_delete.phpt]
Memory API: wasm_memory_grow [tests/api/objects/memory/02-wasm_memory_grow.phpt]
Memory API: wasm_memory_new [tests/api/objects/memory/02-wasm_memory_new.phpt]
Memory API: wasm_memory_same [tests/api/objects/memory/02-wasm_memory_same.phpt]
Memory API: wasm_memory_size [tests/api/objects/memory/02-wasm_memory_size.phpt]
Memory API: wasm_memory_type [tests/api/objects/memory/02-wasm_memory_type.phpt]
Module API functions [tests/api/objects/module/00-functions.phpt]
Module API functions arguments information [tests/api/objects/module/01-arginfo.phpt]
Module API: wasm_module_delete [tests/api/objects/module/02-wasm_module_delete.phpt]
Module API: wasm_module_exports [tests/api/objects/module/02-wasm_module_exports.phpt]
Module API: wasm_module_imports [tests/api/objects/module/02-wasm_module_imports.phpt]
Module API: wasm_module_name [tests/api/objects/module/02-wasm_module_name.phpt]
Module API: wasm_module_new [tests/api/objects/module/02-wasm_module_new.phpt]
Module API: wasm_module_new (Cranelift, JIT) [tests/api/objects/module/02-wasm_module_new_cranelift_JIT.phpt]
Module API: wasm_module_new (Cranelift, Object File) [tests/api/objects/module/02-wasm_module_new_cranelift_object_file.phpt]
Module API: wasm_module_serialize and wasm_module_deserialize [tests/api/objects/module/02-wasm_module_ser_deser.phpt]
Module API: wasm_module_set_name [tests/api/objects/module/02-wasm_module_set_name.phpt]
Module API: wasm_module_validate [tests/api/objects/module/02-wasm_module_validate.phpt]
Trap API functions [tests/api/objects/trap/00-functions.phpt]
Trap API functions arguments information [tests/api/objects/trap/01-arginfo.phpt]
Trap API: wasm_trap_delete [tests/api/objects/trap/02-wasm_trap_delete.phpt]
Trap API: wasm_trap_message [tests/api/objects/trap/02-wasm_trap_message.phpt]
Trap API: wasm_trap_new [tests/api/objects/trap/02-wasm_trap_new.phpt]
Trap API: wasm_trap_origin [tests/api/objects/trap/02-wasm_trap_origin.phpt]
Trap API: wasm_trap_trace [tests/api/objects/trap/02-wasm_trap_trace.phpt]
Val API functions [tests/api/objects/val/00-functions.phpt]
Val API functions arguments information [tests/api/objects/val/01-arginfo.phpt]
Val API: wasm_val_i*/wasm_val_f* [tests/api/objects/val/02-wasm_val.phpt]
Val API: wasm_val_delete [tests/api/objects/val/02-wasm_val_delete.phpt]
Val API: wasm_val_kind [tests/api/objects/val/02-wasm_val_kind.phpt]
Val API [tests/api/objects/val/02-wasm_val_value.phpt]
Val API: Wasm\Vec\Val::construct() [tests/api/objects/val/02-wasm_vec_val___construct.phpt]
Val API: Wasm\Vec\Val::offsetGet() [tests/api/objects/val/02-wasm_vec_val_offsetGet.phpt]
Val API: Wasm\Vec\Val::offsetSet() [tests/api/objects/val/02-wasm_vec_val_offsetSet.phpt]
Store API functions [tests/api/store/00-functions.phpt]
Store API functions arguments information [tests/api/store/01-arginfo.phpt]
Store API: wasm_store_delete [tests/api/store/02-wasm_store_delete.phpt]
Store API: wasm_store_new [tests/api/store/02-wasm_store_new.phpt]
ExportType API functions [tests/api/types/exporttype/00-functions.phpt]
ExportType API functions arguments information [tests/api/types/exporttype/01-arginfo.phpt]
ExportType API: wasm_exporttype_module [tests/api/types/exporttype/02-wasm_exporttype_name.phpt]
ExportType API: wasm_exporttype_new [tests/api/types/exporttype/02-wasm_exporttype_new.phpt]
ExportType API: wasm_exporttype_new [tests/api/types/exporttype/02-wasm_exporttype_type.phpt]
ExternType API functions [tests/api/types/externtype/00-functions.phpt]
ExternType API functions arguments information [tests/api/types/externtype/01-arginfo.phpt]
ExternType API: wasm_externtype_delete [tests/api/types/externtype/02-wasm_externtype_delete.phpt]
FuncType API functions [tests/api/types/functype/00-functions.phpt]
FuncType API functions arguments information [tests/api/types/functype/01-arginfo.phpt]
FuncType API: wasm_functype_copy [tests/api/types/functype/02-wasm_functype_copy.phpt]
FuncType API: wasm_functype_delete [tests/api/types/functype/02-wasm_functype_delete.phpt]
FuncType API: wasm_functype_new [tests/api/types/functype/02-wasm_functype_new.phpt]
FuncType API: wasm_functype_params [tests/api/types/functype/02-wasm_functype_params.phpt]
FuncType API: wasm_functype_results [tests/api/types/functype/02-wasm_functype_results.phpt]
FuncType API: Wasm\Vec\FuncType::construct() [tests/api/types/functype/02-wasm_vec_functype___construct.phpt]
FuncType API: Wasm\Vec\FuncType::offsetGet() [tests/api/types/functype/02-wasm_vec_functype_offsetGet.phpt]
FuncType API: Wasm\Vec\FuncType::offsetSet() [tests/api/types/functype/02-wasm_vec_functype_offsetSet.phpt]
GlobalType API functions [tests/api/types/globaltype/00-functions.phpt]
GlobalType API functions arguments information [tests/api/types/globaltype/01-arginfo.phpt]
GlobalType API: wasm_globaltype_as_externtype [tests/api/types/globaltype/02-wasm_globaltype_as_externtype.phpt]
GlobalType API: wasm_globaltype_content [tests/api/types/globaltype/02-wasm_globaltype_content.phpt]
GlobalType API: wasm_globaltype_delete [tests/api/types/globaltype/02-wasm_globaltype_delete.phpt]
GlobalType API: wasm_globaltype_mutability [tests/api/types/globaltype/02-wasm_globaltype_mutability.phpt]
GlobalType API: wasm_globaltype_new [tests/api/types/globaltype/02-wasm_globaltype_new.phpt]
GlobalType API: Wasm\Vec\GlobalType::construct() [tests/api/types/globaltype/02-wasm_vec_globaltype___construct.phpt]
GlobalType API: Wasm\Vec\GlobalType::offsetGet() [tests/api/types/globaltype/02-wasm_vec_globaltype_offsetGet.phpt]
GlobalType API: Wasm\Vec\GlobalType::offsetSet() [tests/api/types/globaltype/02-wasm_vec_globaltype_offsetSet.phpt]
ImportType API functions [tests/api/types/importtype/00-functions.phpt]
ImportType API functions arguments information [tests/api/types/importtype/01-arginfo.phpt]
ImportType API: wasm_importtype_module [tests/api/types/importtype/02-wasm_importtype_module.phpt]
ImportType API: wasm_importtype_module [tests/api/types/importtype/02-wasm_importtype_name.phpt]
ImportType API: wasm_importtype_new [tests/api/types/importtype/02-wasm_importtype_new.phpt]
ImportType API: wasm_importtype_new [tests/api/types/importtype/02-wasm_importtype_type.phpt]
Limits API functions [tests/api/types/limits/00-functions.phpt]
Limits API functions arguments information [tests/api/types/limits/01-arginfo.phpt]
Limits API: wasm_limits_max [tests/api/types/limits/02-wasm_limits_max.phpt]
Limits API: wasm_limits_min [tests/api/types/limits/02-wasm_limits_min.phpt]
Limits API: wasm_limits_new [tests/api/types/limits/02-wasm_limits_new.phpt]
MemoryType API functions [tests/api/types/memorytype/00-functions.phpt]
MemoryType API functions arguments information [tests/api/types/memorytype/01-arginfo.phpt]
MemoryType API: wasm_memorytype_as_externtype [tests/api/types/memorytype/02-wasm_memorytype_as_externtype.phpt]
MemoryType API: wasm_memorytype_delete [tests/api/types/memorytype/02-wasm_memorytype_delete.phpt]
MemoryType API: wasm_memorytype_limits [tests/api/types/memorytype/02-wasm_memorytype_limits.phpt]
MemoryType API: wasm_memorytype_new [tests/api/types/memorytype/02-wasm_memorytype_new.phpt]
TableType API functions [tests/api/types/tabletype/00-functions.phpt]
TableType API functions arguments information [tests/api/types/tabletype/01-arginfo.phpt]
TableType API: wasm_tabletype_as_externtype [tests/api/types/tabletype/02-wasm_tabletype_as_externtype.phpt]
TableType API: wasm_tabletype_delete [tests/api/types/tabletype/02-wasm_tabletype_delete.phpt]
TableType API: wasm_tabletype_element [tests/api/types/tabletype/02-wasm_tabletype_element.phpt]
TableType API: wasm_tabletype_limits [tests/api/types/tabletype/02-wasm_tabletype_limits.phpt]
TableType API: wasm_tabletype_new [tests/api/types/tabletype/02-wasm_tabletype_new.phpt]
TableType API: Wasm\Vec\TableType::construct() [tests/api/types/tabletype/02-wasm_vec_tabletype___construct.phpt]
TableType API: Wasm\Vec\TableType::offsetGet() [tests/api/types/tabletype/02-wasm_vec_tabletype_offsetGet.phpt]
TableType API: Wasm\Vec\TableType::offsetSet() [tests/api/types/tabletype/02-wasm_vec_tabletype_offsetSet.phpt]
ValKind API functions [tests/api/types/valkind/00-functions.phpt]
ValKind API functions arguments information [tests/api/types/valkind/01-arginfo.phpt]
ValKind API: wasm_valkind_is_num [tests/api/types/valkind/02-wasm_valtype_is_num.phpt]
ValKind API: wasm_valkind_is_ref [tests/api/types/valkind/02-wasm_valtype_is_ref.phpt]
ValType API classes [tests/api/types/valtype/00-classes.phpt]
ValType API functions [tests/api/types/valtype/00-functions.phpt]
ValType API functions arguments information [tests/api/types/valtype/01-arginfo.phpt]
ValType API: wasm_valtype_delete [tests/api/types/valtype/02-wasm_valtype_delete.phpt]
ValType API: wasm_valtype_is_num [tests/api/types/valtype/02-wasm_valtype_is_num.phpt]
ValType API: wasm_valtype_is_ref [tests/api/types/valtype/02-wasm_valtype_is_ref.phpt]
ValType API: wasm_valtype_kind [tests/api/types/valtype/02-wasm_valtype_kind.phpt]
ValType API: wasm_valtype_new [tests/api/types/valtype/02-wasm_valtype_new.phpt]
ValType API: Wasm\Vec\ValType::construct() [tests/api/types/valtype/02-wasm_vec_valtype___construct.phpt]
ValType API: Wasm\Vec\ValType::offsetGet() [tests/api/types/valtype/02-wasm_vec_valtype_offsetGet.phpt]
ValType API: Wasm\Vec\ValType::offsetSet() [tests/api/types/valtype/02-wasm_vec_valtype_offsetSet.phpt]
Wasmer: wasmer_version [tests/api/wasmer/wasmer_version.phpt]
Wasmer: wasmer_version_major [tests/api/wasmer/wasmer_version_major.phpt]
Wasmer: wasmer_version_minor [tests/api/wasmer/wasmer_version_minor.phpt]
Wasmer: wasmer_version_patch [tests/api/wasmer/wasmer_version_patch.phpt]
Wasmer: wasmer_version_pre [tests/api/wasmer/wasmer_version_pre.phpt]
WAT: wat2wasm [tests/api/wat/02-wat2wasm.phpt]
WAT: wat2wasm (error) [tests/api/wat/02-wat2wasm_error.phpt]
Wasmer PHP - Exceptions [tests/exceptions.phpt]
Wasmer PHP [tests/extension.phpt]
=====================================================================

You may have found a problem in PHP.
This report can be automatically sent to the PHP QA team at
http://qa.php.net/reports and http://news.php.net/php.qa.reports
This gives us a better understanding of PHP's behavior.
If you don't want to send the report immediately you can choose
option "s" to save it.  You can then email it to qa-reports@lists.php.net later.
Do you want to send this report now? [Yns]: n
make: *** [Makefile:132: test] Error 1
  1. After execute make clean, I always got:
cc -shared  src/api/.libs/config.o src/api/.libs/engine.o src/api/.libs/store.o src/api/.libs/wasmer.o src/api/.libs/wat.o src/api/objects/.libs/extern.o src/api/objects/.libs/foreign.o src/api/objects/.libs/func.o src/api/objects/.libs/frame.o src/api/objects/.libs/global.o src/api/objects/.libs/instance.o src/api/objects/.libs/memory.o src/api/objects/.libs/module.o src/api/objects/.libs/table.o src/api/objects/.libs/trap.o src/api/objects/.libs/val.o src/api/types/.libs/exporttype.o src/api/types/.libs/externtype.o src/api/types/.libs/functype.o src/api/types/.libs/globaltype.o src/api/types/.libs/importtype.o src/api/types/.libs/limits.o src/api/types/.libs/memorytype.o src/api/types/.libs/tabletype.o src/api/types/.libs/valkind.o src/api/types/.libs/valtype.o src/.libs/wasm.o  -L/app/wasmer-php/ext/lib -lwasmer  -Wl,-rpath -Wl,/app/wasmer-php/ext/lib -Wl,-soname -Wl,wasm.so -o .libs/wasm.so
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find -lwasmer
collect2: error: ld returned 1 exit status
make: *** [Makefile:303: wasm.la] Error 1

Maybe the previous build was failed?

OS: alpine in docker PHPVersion: 8.0

The compilation worked in the previous 6x commits, looking forward to your help.