Closed djamez closed 3 months ago
This looks similar to #840. Could you try to set the PHP_EXTENSIONS
explicitly while we're working on fixing the script, please? cc @crazywhalecc
@dunglas Core,hash,json,Reflection,SPL,standard
should be skipped, is this correct? https://github.com/crazywhalecc/static-php-cli/pull/473
This looks similar to #840. Could you try to set the
PHP_EXTENSIONS
explicitly while we're working on fixing the script, please? cc @crazywhalecc
Even with PHP_EXTENSIONS
:
EMBED=/data/src/laravel/project ./build-static.sh PHP_EXTENSIONS=ctype,curl,dom,fileinfo,filter,hash,mbstring,openssl,pcre,session,pdo,pdo_mysql,pdo_sqlite
...it still fails with the same error. Adding NO_COMPRESS=true
does not affect the output either.
@djamez Remove hash
. Hash is an internal extension, it will be enabled whether you use. But the previous spc prohibits passing in any unsupported extensions (including hash).
After https://github.com/crazywhalecc/static-php-cli/pull/473 merged, you can pass hash
without any interrupt.
@djamez Remove
hash
. Hash is an internal extension, it will be enabled whether you use. But the previous spc prohibits passing in any unsupported extensions (including hash).After crazywhalecc/static-php-cli#473 merged, you can pass
hash
without any interrupt.
After removing hash
(and pcre
), the compilation process starts. Progress...
However, towards the tail end of the process, now I have this:
....
go: downloading github.com/mattn/go-colorable v0.1.13
go: downloading github.com/bits-and-blooms/bitset v1.13.0
# github.com/dunglas/frankenphp/caddy/frankenphp
/usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(zend_extensions.o): in function `zend_load_extension':
/frankenphp/dist/static-php-cli/source/php-src/Zend/zend_extensions.c:33: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(filestat.o): in function `php_get_gid_by_name':
/frankenphp/dist/static-php-cli/source/php-src/ext/standard/filestat.c:288: warning: Using 'getgrnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(fopen_wrappers.o): in function `php_fopen_primary_script':
/frankenphp/dist/static-php-cli/source/php-src/main/fopen_wrappers.c:396: warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(main.o): in function `php_get_current_user':
/frankenphp/dist/static-php-cli/source/php-src/main/main.c:1480: warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(network.o): in function `php_network_getaddresses':
/frankenphp/dist/static-php-cli/source/php-src/main/network.c:198: warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libxml2.a(nanohttp.c.o): in function `xmlNanoHTTPConnectHost':
nanohttp.c:(.text+0x53b): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(network.o): in function `gethostname_re':
/frankenphp/dist/static-php-cli/source/php-src/main/network.c:1273: warning: Using 'gethostbyname_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(basic_functions.o): in function `zif_getprotobynumber':
/frankenphp/dist/static-php-cli/source/php-src/ext/standard/basic_functions.c:2291: warning: Using 'getprotobynumber' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(basic_functions.o): in function `zif_getprotobyname':
/frankenphp/dist/static-php-cli/source/php-src/ext/standard/basic_functions.c:2269: warning: Using 'getprotobyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(basic_functions.o): in function `zif_getservbyname':
/frankenphp/dist/static-php-cli/source/php-src/ext/standard/basic_functions.c:2212: warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(basic_functions.o): in function `zif_getservbyport':
/frankenphp/dist/static-php-cli/source/php-src/ext/standard/basic_functions.c:2246: warning: Using 'getservbyport' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(main.o): in function `php_request_startup':
/frankenphp/dist/static-php-cli/source/php-src/main/main.c:1770: undefined reference to `sigsetjmp'
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(main.o): in function `php_request_shutdown':
/frankenphp/dist/static-php-cli/source/php-src/main/main.c:1859: undefined reference to `sigsetjmp'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/main/main.c:1864: undefined reference to `sigsetjmp'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/main/main.c:1869: undefined reference to `sigsetjmp'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/main/main.c:1879: undefined reference to `sigsetjmp'
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(main.o):/frankenphp/dist/static-php-cli/source/php-src/main/main.c:1889: more undefined references to `sigsetjmp' follow
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(zend_strtod.o): in function `zend_strtod':
/frankenphp/dist/static-php-cli/source/php-src/Zend/zend_strtod.c:2777: undefined reference to `__flt_rounds'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/Zend/zend_strtod.c:3420: undefined reference to `__flt_rounds'
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(mod_user.o): in function `ps_open_user':
/frankenphp/dist/static-php-cli/source/php-src/ext/session/mod_user.c:93: undefined reference to `sigsetjmp'
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(mod_user.o): in function `ps_close_user':
/frankenphp/dist/static-php-cli/source/php-src/ext/session/mod_user.c:123: undefined reference to `sigsetjmp'
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(dns.o): in function `php_parserr':
/frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:465: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:466: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:467: undefined reference to `ns_get32'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:468: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:509: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:619: undefined reference to `ns_get32'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:621: undefined reference to `ns_get32'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:623: undefined reference to `ns_get32'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:625: undefined reference to `ns_get32'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:627: undefined reference to `ns_get32'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:634: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:704: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:744: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:746: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:748: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(dns.o):/frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:760: more undefined references to `ns_get16' follow
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(dns.o): in function `zif_dns_check_record':
/frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:423: undefined reference to `res_init'
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(dns.o): in function `zif_dns_get_record':
/frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:955: undefined reference to `res_init'
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(dns.o): in function `zif_dns_get_mx':
/frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:1096: undefined reference to `res_init'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:1120: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:1122: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/source/php-src/ext/standard/dns.c:1127: undefined reference to `ns_get16'
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(mod_user_class.o): in function `zim_SessionHandler_open':
/frankenphp/dist/static-php-cli/source/php-src/ext/session/mod_user_class.c:50: undefined reference to `sigsetjmp'
/usr/bin/ld: /frankenphp/dist/static-php-cli/buildroot/lib/libphp.a(mod_user_class.o): in function `zim_SessionHandler_close':
/frankenphp/dist/static-php-cli/source/php-src/ext/session/mod_user_class.c:78: undefined reference to `sigsetjmp'
collect2: error: ld returned 1 exit status
Seems you are linking wrong libc (glibc). static-php-cli and frankenphp need musl-libc to link, but I'm not sure build-static.sh
and frankenphp workflow may be linked in a wrong libc. cc @dunglas
We strongly recommend using the Docker image we provide to run the script. It's not entirely mandatory, but if you don't you need to install musl etc by yourself.
What happened?
Attempting to build a static Laravel application in Linux PopOS (Ubuntu 22.04 compatible) using the Shell script complains of
Extension [hash] not exist!
.EMBED=/data/src/laravel/project ./build-static.sh
Notice from the
phpinfo()
output that Hash is enabled.System Info:
Please advise how to resolve this issue.
Build Type
Official static build
Worker Mode
No
Operating System
GNU/Linux
CPU Architecture
x86_64
PHP configuration
Relevant log output