dunglas / frankenphp

🧟 The modern PHP app server
https://frankenphp.dev
MIT License
6.31k stars 200 forks source link

undefined reference to `libssh2_version' when installing extensions #664

Open Issa-projects opened 3 months ago

Issa-projects commented 3 months ago

What happened?

I am trying to install extra extensions for laravel octane:

Steps to reproduce:

git clone https://github.com/dunglas/frankenphp
cd frankenphp
docker buildx bake --load --set "*.platform=linux/amd64" --set static-builder.args.PHP_EXTENSIONS=bcmath,ctype,curl,dom,fileinfo,filter,gd,intl,gmp,iconv,imagick,mbstring,mysqli,mysqlnd,openssl,pdo,pdo_mysql,session,simplexml,ssh2,token
izer,xml,zlib static-builder

Output:

462.3 [09:16:44] [INFO] [EXEC] make INSTALL_ROOT=/go/src/app/dist/static-php-cli/buildroot -j6 EXTRA_CFLAGS='-g0 -Os -fno-ident -fPIE ' EXTRA_LIBS='/go/src/app/dist/static-php-cli/buildroot/lib/liblz4.a /go/src/app/dist/static-php-cli/buildroot/lib/libMagick++-7.Q16HDRI.
a /go/src/app/dist/static-php-cli/buildroot/lib/libMagickWand-7.Q16HDRI.a /go/src/app/dist/static-php-cli/buildroot/lib/libMagickCore-7.Q16HDRI.a /go/src/app/dist/static-php-cli/buildroot/lib/libzip.a /go/src/app/dist/static-php-cli/buildroot/lib/libtiff.a /go/src/app/di
st/static-php-cli/buildroot/lib/libgmp.a /go/src/app/dist/static-php-cli/buildroot/lib/libfreetype.a /go/src/app/dist/static-php-cli/buildroot/lib/libbz2.a /go/src/app/dist/static-php-cli/buildroot/lib/libjpeg.a /go/src/app/dist/static-php-cli/buildroot/lib/libturbojpeg.
a /go/src/app/dist/static-php-cli/buildroot/lib/libwebp.a /go/src/app/dist/static-php-cli/buildroot/lib/libwebpdecoder.a /go/src/app/dist/static-php-cli/buildroot/lib/libwebpdemux.a /go/src/app/dist/static-php-cli/buildroot/lib/libwebpmux.a /go/src/app/dist/static-php-cl
i/buildroot/lib/libsharpyuv.a /go/src/app/dist/static-php-cli/buildroot/lib/libavif.a /go/src/app/dist/static-php-cli/buildroot/lib/libpng16.a /go/src/app/dist/static-php-cli/buildroot/lib/libcurl.a /go/src/app/dist/static-php-cli/buildroot/lib/libxml2.a /go/src/app/dist
/static-php-cli/buildroot/lib/libiconv.a /go/src/app/dist/static-php-cli/buildroot/lib/libcharset.a /go/src/app/dist/static-php-cli/buildroot/lib/libbrotlidec.a /go/src/app/dist/static-php-cli/buildroot/lib/libbrotlienc.a /go/src/app/dist/static-php-cli/buildroot/lib/lib
brotlicommon.a /go/src/app/dist/static-php-cli/buildroot/lib/libssh2.a /go/src/app/dist/static-php-cli/buildroot/lib/libssl.a /go/src/app/dist/static-php-cli/buildroot/lib/libcrypto.a /go/src/app/dist/static-php-cli/buildroot/lib/libz.a  -lgomp  ' EXTRA_LDFLAGS_PROGRAM='
 -all-static' install
569.6 [09:18:31] [INFO] Build complete, used 499.384 s !
569.6 [09:18:31] [INFO] License path: /go/src/app/dist/static-php-cli/buildroot/license/
569.9 GO111MODULE=''
569.9 GOARCH='amd64'
569.9 GOBIN=''
569.9 GOCACHE='/root/.cache/go-build'
569.9 GOENV='/root/.config/go/env'
569.9 GOEXE=''
569.9 GOEXPERIMENT=''
569.9 GOFLAGS=''
569.9 GOHOSTARCH='amd64'
569.9 GOHOSTOS='linux'
569.9 GOINSECURE=''
569.9 GOMODCACHE='/go/pkg/mod'
569.9 GONOPROXY=''
569.9 GONOSUMDB=''
569.9 GOOS='linux'
569.9 GOPATH='/go'
569.9 GOPRIVATE=''
569.9 GOPROXY='https://proxy.golang.org,direct'
569.9 GOROOT='/usr/local/go'
569.9 GOSUMDB='sum.golang.org'
569.9 GOTMPDIR=''
569.9 GOTOOLCHAIN='local'
569.9 GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
569.9 GOVCS=''
569.9 GOVERSION='go1.22.1'
569.9 GCCGO='gccgo'
569.9 GOAMD64='v1'
569.9 AR='ar'
569.9 CC='gcc'
569.9 CXX='g++'
569.9 CGO_ENABLED='1'
569.9 GOMOD='/go/src/app/caddy/go.mod'
569.9 GOWORK=''
569.9 CGO_CFLAGS='-DFRANKENPHP_VERSION=dev -I/go/src/app/dist/static-php-cli/buildroot/include/ -I/go/src/app/dist/static-php-cli/buildroot/include/php -I/go/src/app/dist/static-php-cli/buildroot/include/php/main -I/go/src/app/dist/static-php-cli/buildroot/include/php/TS
RM -I/go/src/app/dist/static-php-cli/buildroot/include/php/Zend -I/go/src/app/dist/static-php-cli/buildroot/include/php/ext -I/go/src/app/dist/static-php-cli/buildroot/include/php/ext/date/lib'
569.9 CGO_CPPFLAGS=''
569.9 CGO_CXXFLAGS='-O2 -g'
569.9 CGO_FFLAGS='-O2 -g'
569.9 CGO_LDFLAGS='/go/src/app/dist/static-php-cli/buildroot/lib/libbrotlicommon.a /go/src/app/dist/static-php-cli/buildroot/lib/libbrotlienc.a /go/src/app/dist/static-php-cli/buildroot/lib/libbrotlidec.a -L/go/src/app/dist/static-php-cli/buildroot//go/src/app/dist/stati
c-php-cli/buildroot/lib -L/go/src/app/dist/static-php-cli/buildroot/lib /go/src/app/dist/static-php-cli/buildroot/lib/libz.a /go/src/app/dist/static-php-cli/buildroot/lib/libssl.a /go/src/app/dist/static-php-cli/buildroot/lib/libcrypto.a /go/src/app/dist/static-php-cli/b
uildroot/lib/libz.a /go/src/app/dist/static-php-cli/buildroot/lib/libssh2.a /go/src/app/dist/static-php-cli/buildroot/lib/libssl.a /go/src/app/dist/static-php-cli/buildroot/lib/libcrypto.a /go/src/app/dist/static-php-cli/buildroot/lib/libz.a -lgomp -lgomp -liconv -lgmp -
lrt -lm -ldl -lpthread -lpthread -lxml2 -liconv -lm -lz -lssl -lcrypto -lz -lcurl -lxml2 -liconv -lm -lz -lz -lpng16 -lavif -lwebp -lsharpyuv -ljpeg -lfreetype -lz -lpng16 -lMagickWand-7.Q16HDRI -ltiff -lm -lfreetype -lpng16 -lz -ljpeg -lpng16 -lz -lwebpmux -lwebpdemux -
lwebp -lsharpyuv -lwebp -lsharpyuv -lxml2 -liconv -lm -lz -lzip -lbz2 -lssl -lcrypto -lz -lm -lpthread -lm -lMagickCore-7.Q16HDRI -ltiff -lm -lfreetype -lpng16 -lz -ljpeg -lpng16 -lz -lwebpmux -lwebpdemux -lwebp -lsharpyuv -lwebp -lsharpyuv -lxml2 -liconv -lm -lz -lzip -
lbz2 -lssl -lcrypto -lz -lm -lpthread -lm -lxml2 -liconv -lm -lz -lxml2 -liconv -lm -lz -lz -lssl -lcrypto'
569.9 PKG_CONFIG='pkg-config'
569.9 GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build3783268429=/tmp/go-build -gno-record-gcc-switches'
606.3 # github.com/dunglas/frankenphp/caddy/frankenphp
606.3 /usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
606.3 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: /go/src/app/dist/static-php-cli/buildroot/lib/libcurl.a(libssh2.c.o): in function `ssh_statemach_act':
606.3 libssh2.c:(.text+0x5fd): undefined reference to `libssh2_knownhost_free'
606.3 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: libssh2.c:(.text+0x2f9c): undefined reference to `libssh2_knownhost_get'
606.3 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: libssh2.c:(.text+0x35a6): undefined reference to `libssh2_knownhost_checkp'
606.3 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: libssh2.c:(.text+0x369c): undefined reference to `libssh2_knownhost_add'
606.3 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: libssh2.c:(.text+0x4832): undefined reference to `libssh2_version'
606.3 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: libssh2.c:(.text+0x497f): undefined reference to `libssh2_knownhost_del'
606.3 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: libssh2.c:(.text+0x49bc): undefined reference to `libssh2_knownhost_writefile'
606.3 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: /go/src/app/dist/static-php-cli/buildroot/lib/libcurl.a(libssh2.c.o): in function `ssh_connect':
606.3 libssh2.c:(.text+0x56e8): undefined reference to `libssh2_knownhost_init'
606.3 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: libssh2.c:(.text+0x570c): undefined reference to `libssh2_knownhost_readfile'
606.3 /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: /go/src/app/dist/static-php-cli/buildroot/lib/libcurl.a(libssh2.c.o): in function `Curl_ssh_version':
606.3 libssh2.c:(.text+0x5b2f): undefined reference to `libssh2_version'
606.3 collect2: error: ld returned 1 exit status

Build Type

Official static build

Worker Mode

No

Operating System

GNU/Linux

CPU Architecture

x86_64

PHP configuration

not relevant

Relevant log output

No response

withinboredom commented 3 months ago

I believe this might be an upstream bug: https://github.com/crazywhalecc/static-php-cli/issues

Issa-projects commented 3 months ago

It works in embed mode, but not when i try to create an executable