Swoole-src: Cannot cross-compiling using buildroot

Created on 19 Oct 2018  ·  12Comments  ·  Source: swoole/swoole-src

Please answer these questions before submitting your issue. Thanks!

  1. What did you do? If possible, provide a simple script for reproducing the error.
    I tried cross-compiling swoole using buildroot modified by me
    Targing ARMv7
    I have seen #866, however that issue is closed without a solution that fits my target.
    I have also posted images and steps to reproduce the error in Swoole官方3群.

  2. What did you expect to see?
    Compile successfully.
    Static linked executable is what I expected.
    I cannot accept a dynamical library.

  3. What did you see instead?
    Compile failed.

In file included from ext/swoole/php_swoole.h:58:0,
                 from /home/peratx/buildroot/output/build/php-7.2.10/ext/swoole/src/protocol/websocket.c:21:
/home/peratx/buildroot/output/build/php-7.2.10/ext/swoole/include/client.h:143:5: error: unknown type name ‘SSL_CT
’
     SSL_CTX *ssl_context;
     ^~~~~~~
/home/peratx/buildroot/output/build/php-7.2.10/ext/swoole/include/client.h:144:5: error: unknown type name ‘swSSL_option’
     swSSL_option ssl_option;

So I commented #ifdef SW_USE_OPENSSL in connection.h
Then I got this.

/bin/bash /home/peratx/buildroot/output/build/php-7.2.10/libtool --silent --preserve-dup-deps --mode=link /home/peratx/buildroot/output/build/php-7.2.10/meta_ccld -export-dynamic -Wall -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -static -DHAVE_SHM_IPC -DHAVE_SHM_MMAP_ANON -DHAVE_SHM_MMAP_ZERO -DHAVE_SHM_MMAP_POSIX -DHAVE_SHM_MMAP_FILE -DSQLITE_OMIT_LOAD_EXTENSION -fvisibility=hidden -pthread -DZTS -DZEND_SIGNALS   -L/home/peratx/buildroot/output/host/arm-buildroot-linux-musleabihf/sysroot/usr/lib -L/home/peratx/buildroot/output/host/bin/../arm-buildroot-linux-musleabihf/sysroot/usr/lib -L/home/peratx/buildroot/output/host/bin/../arm-buildroot-linux-musleabihf/sysroot/usr//lib   ext/date/php_date.lo ext/date/lib/astro.lo ext/date/lib/dow.lo ext/date/lib/parse_date.lo ext/date/lib/parse_tz.lo ext/date/lib/timelib.lo ext/date/lib/tm2unixtime.lo ext/date/lib/unixtime2tm.lo ext/date/lib/parse_iso_intervals.lo ext/date/lib/interval.lo ext/libxml/libxml.lo ext/openssl/openssl.lo ext/openssl/xp_ssl.lo ext/pcre/pcrelib/pcre_chartables.lo ext/pcre/pcrelib/pcre_ucd.lo ext/pcre/pcrelib/pcre_compile.lo ext/pcre/pcrelib/pcre_config.lo ext/pcre/pcrelib/pcre_exec.lo ext/pcre/pcrelib/pcre_fullinfo.lo ext/pcre/pcrelib/pcre_get.lo ext/pcre/pcrelib/pcre_globals.lo ext/pcre/pcrelib/pcre_maketables.lo ext/pcre/pcrelib/pcre_newline.lo ext/pcre/pcrelib/pcre_ord2utf8.lo ext/pcre/pcrelib/pcre_refcount.lo ext/pcre/pcrelib/pcre_study.lo ext/pcre/pcrelib/pcre_tables.lo ext/pcre/pcrelib/pcre_valid_utf8.lo ext/pcre/pcrelib/pcre_version.lo ext/pcre/pcrelib/pcre_xclass.lo ext/pcre/pcrelib/pcre_jit_compile.lo ext/pcre/php_pcre.lo ext/sqlite3/sqlite3.lo ext/zlib/zlib.lo ext/zlib/zlib_fopen_wrapper.lo ext/zlib/zlib_filter.lo ext/bcmath/bcmath.lo ext/bcmath/libbcmath/src/add.lo ext/bcmath/libbcmath/src/div.lo ext/bcmath/libbcmath/src/init.lo ext/bcmath/libbcmath/src/neg.lo ext/bcmath/libbcmath/src/outofmem.lo ext/bcmath/libbcmath/src/raisemod.lo ext/bcmath/libbcmath/src/rt.lo ext/bcmath/libbcmath/src/sub.lo ext/bcmath/libbcmath/src/compare.lo ext/bcmath/libbcmath/src/divmod.lo ext/bcmath/libbcmath/src/int2num.lo ext/bcmath/libbcmath/src/num2long.lo ext/bcmath/libbcmath/src/output.lo ext/bcmath/libbcmath/src/recmul.lo ext/bcmath/libbcmath/src/sqrt.lo ext/bcmath/libbcmath/src/zero.lo ext/bcmath/libbcmath/src/debug.lo ext/bcmath/libbcmath/src/doaddsub.lo ext/bcmath/libbcmath/src/nearzero.lo ext/bcmath/libbcmath/src/num2str.lo ext/bcmath/libbcmath/src/raise.lo ext/bcmath/libbcmath/src/rmzero.lo ext/bcmath/libbcmath/src/str2num.lo ext/bz2/bz2.lo ext/bz2/bz2_filter.lo ext/calendar/calendar.lo ext/calendar/dow.lo ext/calendar/french.lo ext/calendar/gregor.lo ext/calendar/jewish.lo ext/calendar/julian.lo ext/calendar/easter.lo ext/calendar/cal_unix.lo ext/ctype/ctype.lo ext/curl/interface.lo ext/curl/multi.lo ext/curl/share.lo ext/curl/curl_file.lo ext/dom/php_dom.lo ext/dom/attr.lo ext/dom/document.lo ext/dom/domerrorhandler.lo ext/dom/domstringlist.lo ext/dom/domexception.lo ext/dom/namelist.lo ext/dom/processinginstruction.lo ext/dom/cdatasection.lo ext/dom/documentfragment.lo ext/dom/domimplementation.lo ext/dom/element.lo ext/dom/node.lo ext/dom/string_extend.lo ext/dom/characterdata.lo ext/dom/documenttype.lo ext/dom/domimplementationlist.lo ext/dom/entity.lo ext/dom/nodelist.lo ext/dom/text.lo ext/dom/comment.lo ext/dom/domconfiguration.lo ext/dom/domimplementationsource.lo ext/dom/entityreference.lo ext/dom/notation.lo ext/dom/xpath.lo ext/dom/dom_iterators.lo ext/dom/typeinfo.lo ext/dom/domerror.lo ext/dom/domlocator.lo ext/dom/namednodemap.lo ext/dom/userdatahandler.lo ext/exif/exif.lo ext/fileinfo/fileinfo.lo ext/fileinfo/libmagic/apprentice.lo ext/fileinfo/libmagic/apptype.lo ext/fileinfo/libmagic/ascmagic.lo ext/fileinfo/libmagic/cdf.lo ext/fileinfo/libmagic/cdf_time.lo ext/fileinfo/libmagic/compress.lo ext/fileinfo/libmagic/encoding.lo ext/fileinfo/libmagic/fsmagic.lo ext/fileinfo/libmagic/funcs.lo ext/fileinfo/libmagic/is_tar.lo ext/fileinfo/libmagic/magic.lo ext/fileinfo/libmagic/print.lo ext/fileinfo/libmagic/readcdf.lo ext/fileinfo/libmagic/softmagic.lo ext/fileinfo/libmagic/der.lo ext/ftp/php_ftp.lo ext/ftp/ftp.lo ext/gd/gd.lo ext/gd/libgd/gd.lo ext/gd/libgd/gd_gd.lo ext/gd/libgd/gd_gd2.lo ext/gd/libgd/gd_io.lo ext/gd/libgd/gd_io_dp.lo ext/gd/libgd/gd_io_file.lo ext/gd/libgd/gd_ss.lo ext/gd/libgd/gd_io_ss.lo ext/gd/libgd/gd_webp.lo ext/gd/libgd/gd_png.lo ext/gd/libgd/gd_jpeg.lo ext/gd/libgd/gdxpm.lo ext/gd/libgd/gdfontt.lo ext/gd/libgd/gdfonts.lo ext/gd/libgd/gdfontmb.lo ext/gd/libgd/gdfontl.lo ext/gd/libgd/gdfontg.lo ext/gd/libgd/gdtables.lo ext/gd/libgd/gdft.lo ext/gd/libgd/gdcache.lo ext/gd/libgd/gdkanji.lo ext/gd/libgd/wbmp.lo ext/gd/libgd/gd_wbmp.lo ext/gd/libgd/gdhelpers.lo ext/gd/libgd/gd_topal.lo ext/gd/libgd/gd_gif_in.lo ext/gd/libgd/gd_xbm.lo ext/gd/libgd/gd_gif_out.lo ext/gd/libgd/gd_security.lo ext/gd/libgd/gd_filter.lo ext/gd/libgd/gd_pixelate.lo ext/gd/libgd/gd_rotate.lo ext/gd/libgd/gd_color_match.lo ext/gd/libgd/gd_transform.lo ext/gd/libgd/gd_crop.lo ext/gd/libgd/gd_interpolation.lo ext/gd/libgd/gd_matrix.lo ext/gd/libgd/gd_bmp.lo ext/gmp/gmp.lo ext/hash/hash.lo ext/hash/hash_md.lo ext/hash/hash_sha.lo ext/hash/hash_ripemd.lo ext/hash/hash_haval.lo ext/hash/hash_tiger.lo ext/hash/hash_gost.lo ext/hash/hash_snefru.lo ext/hash/hash_whirlpool.lo ext/hash/hash_adler32.lo ext/hash/hash_crc32.lo ext/hash/hash_fnv.lo ext/hash/hash_joaat.lo ext/hash/sha3/generic32lc/KeccakP-1600-inplace32BI.lo ext/hash/sha3/generic32lc/KeccakHash.lo ext/hash/sha3/generic32lc/KeccakSponge.lo ext/hash/hash_sha3.lo ext/iconv/iconv.lo ext/json/json.lo ext/json/json_encoder.lo ext/json/json_parser.lo ext/json/json_scanner.lo ext/mbstring/oniguruma/src/ascii.lo ext/mbstring/oniguruma/src/big5.lo ext/mbstring/oniguruma/src/cp1251.lo ext/mbstring/oniguruma/src/euc_jp.lo ext/mbstring/oniguruma/src/euc_jp_prop.lo ext/mbstring/oniguruma/src/euc_kr.lo ext/mbstring/oniguruma/src/euc_tw.lo ext/mbstring/oniguruma/src/gb18030.lo ext/mbstring/oniguruma/src/iso8859_1.lo ext/mbstring/oniguruma/src/iso8859_10.lo ext/mbstring/oniguruma/src/iso8859_11.lo ext/mbstring/oniguruma/src/iso8859_13.lo ext/mbstring/oniguruma/src/iso8859_14.lo ext/mbstring/oniguruma/src/iso8859_15.lo ext/mbstring/oniguruma/src/iso8859_16.lo ext/mbstring/oniguruma/src/iso8859_2.lo ext/mbstring/oniguruma/src/iso8859_3.lo ext/mbstring/oniguruma/src/iso8859_4.lo ext/mbstring/oniguruma/src/iso8859_5.lo ext/mbstring/oniguruma/src/iso8859_6.lo ext/mbstring/oniguruma/src/iso8859_7.lo ext/mbstring/oniguruma/src/iso8859_8.lo ext/mbstring/oniguruma/src/iso8859_9.lo ext/mbstring/oniguruma/src/koi8.lo ext/mbstring/oniguruma/src/koi8_r.lo ext/mbstring/oniguruma/src/onig_init.lo ext/mbstring/oniguruma/src/regcomp.lo ext/mbstring/oniguruma/src/regenc.lo ext/mbstring/oniguruma/src/regerror.lo ext/mbstring/oniguruma/src/regexec.lo ext/mbstring/oniguruma/src/regext.lo ext/mbstring/oniguruma/src/reggnu.lo ext/mbstring/oniguruma/src/regparse.lo ext/mbstring/oniguruma/src/regposerr.lo ext/mbstring/oniguruma/src/regposix.lo ext/mbstring/oniguruma/src/regsyntax.lo ext/mbstring/oniguruma/src/regtrav.lo ext/mbstring/oniguruma/src/regversion.lo ext/mbstring/oniguruma/src/sjis.lo ext/mbstring/oniguruma/src/sjis_prop.lo ext/mbstring/oniguruma/src/st.lo ext/mbstring/oniguruma/src/unicode.lo ext/mbstring/oniguruma/src/unicode_fold1_key.lo ext/mbstring/oniguruma/src/unicode_fold2_key.lo ext/mbstring/oniguruma/src/unicode_fold3_key.lo ext/mbstring/oniguruma/src/unicode_unfold_key.lo ext/mbstring/oniguruma/src/utf16_be.lo ext/mbstring/oniguruma/src/utf16_le.lo ext/mbstring/oniguruma/src/utf32_be.lo ext/mbstring/oniguruma/src/utf32_le.lo ext/mbstring/oniguruma/src/utf8.lo ext/mbstring/libmbfl/filters/html_entities.lo ext/mbstring/libmbfl/filters/mbfilter_7bit.lo ext/mbstring/libmbfl/filters/mbfilter_ascii.lo ext/mbstring/libmbfl/filters/mbfilter_base64.lo ext/mbstring/libmbfl/filters/mbfilter_big5.lo ext/mbstring/libmbfl/filters/mbfilter_byte2.lo ext/mbstring/libmbfl/filters/mbfilter_byte4.lo ext/mbstring/libmbfl/filters/mbfilter_cp1251.lo ext/mbstring/libmbfl/filters/mbfilter_cp1252.lo ext/mbstring/libmbfl/filters/mbfilter_cp1254.lo ext/mbstring/libmbfl/filters/mbfilter_cp5022x.lo ext/mbstring/libmbfl/filters/mbfilter_cp51932.lo ext/mbstring/libmbfl/filters/mbfilter_cp850.lo ext/mbstring/libmbfl/filters/mbfilter_cp866.lo ext/mbstring/libmbfl/filters/mbfilter_cp932.lo ext/mbstring/libmbfl/filters/mbfilter_cp936.lo ext/mbstring/libmbfl/filters/mbfilter_gb18030.lo ext/mbstring/libmbfl/filters/mbfilter_euc_cn.lo ext/mbstring/libmbfl/filters/mbfilter_euc_jp.lo ext/mbstring/libmbfl/filters/mbfilter_euc_jp_2004.lo ext/mbstring/libmbfl/filters/mbfilter_euc_jp_win.lo ext/mbstring/libmbfl/filters/mbfilter_euc_kr.lo ext/mbstring/libmbfl/filters/mbfilter_euc_tw.lo ext/mbstring/libmbfl/filters/mbfilter_htmlent.lo ext/mbstring/libmbfl/filters/mbfilter_hz.lo ext/mbstring/libmbfl/filters/mbfilter_iso2022_jp_ms.lo ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_2004.lo ext/mbstring/libmbfl/filters/mbfilter_iso2022jp_mobile.lo ext/mbstring/libmbfl/filters/mbfilter_iso2022_kr.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_1.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_10.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_13.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_14.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_15.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_16.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_2.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_3.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_4.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_5.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_6.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_7.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_8.lo ext/mbstring/libmbfl/filters/mbfilter_iso8859_9.lo ext/mbstring/libmbfl/filters/mbfilter_jis.lo ext/mbstring/libmbfl/filters/mbfilter_koi8r.lo ext/mbstring/libmbfl/filters/mbfilter_armscii8.lo ext/mbstring/libmbfl/filters/mbfilter_qprint.lo ext/mbstring/libmbfl/filters/mbfilter_sjis.lo ext/mbstring/libmbfl/filters/mbfilter_sjis_open.lo ext/mbstring/libmbfl/filters/mbfilter_sjis_mobile.lo ext/mbstring/libmbfl/filters/mbfilter_sjis_mac.lo ext/mbstring/libmbfl/filters/mbfilter_sjis_2004.lo ext/mbstring/libmbfl/filters/mbfilter_tl_jisx0201_jisx0208.lo ext/mbstring/libmbfl/filters/mbfilter_ucs2.lo ext/mbstring/libmbfl/filters/mbfilter_ucs4.lo ext/mbstring/libmbfl/filters/mbfilter_uhc.lo ext/mbstring/libmbfl/filters/mbfilter_utf16.lo ext/mbstring/libmbfl/filters/mbfilter_utf32.lo ext/mbstring/libmbfl/filters/mbfilter_utf7.lo ext/mbstring/libmbfl/filters/mbfilter_utf7imap.lo ext/mbstring/libmbfl/filters/mbfilter_utf8.lo ext/mbstring/libmbfl/filters/mbfilter_utf8_mobile.lo ext/mbstring/libmbfl/filters/mbfilter_uuencode.lo ext/mbstring/libmbfl/filters/mbfilter_koi8u.lo ext/mbstring/libmbfl/mbfl/mbfilter.lo ext/mbstring/libmbfl/mbfl/mbfilter_8bit.lo ext/mbstring/libmbfl/mbfl/mbfilter_pass.lo ext/mbstring/libmbfl/mbfl/mbfilter_wchar.lo ext/mbstring/libmbfl/mbfl/mbfl_convert.lo ext/mbstring/libmbfl/mbfl/mbfl_encoding.lo ext/mbstring/libmbfl/mbfl/mbfl_filter_output.lo ext/mbstring/libmbfl/mbfl/mbfl_ident.lo ext/mbstring/libmbfl/mbfl/mbfl_language.lo ext/mbstring/libmbfl/mbfl/mbfl_memory_device.lo ext/mbstring/libmbfl/mbfl/mbfl_string.lo ext/mbstring/libmbfl/mbfl/mbfl_allocators.lo ext/mbstring/libmbfl/nls/nls_de.lo ext/mbstring/libmbfl/nls/nls_en.lo ext/mbstring/libmbfl/nls/nls_ja.lo ext/mbstring/libmbfl/nls/nls_kr.lo ext/mbstring/libmbfl/nls/nls_neutral.lo ext/mbstring/libmbfl/nls/nls_ru.lo ext/mbstring/libmbfl/nls/nls_uni.lo ext/mbstring/libmbfl/nls/nls_zh.lo ext/mbstring/libmbfl/nls/nls_hy.lo ext/mbstring/libmbfl/nls/nls_tr.lo ext/mbstring/libmbfl/nls/nls_ua.lo ext/mbstring/mbstring.lo ext/mbstring/php_unicode.lo ext/mbstring/mb_gpc.lo ext/mbstring/php_mbregex.lo ext/pcntl/pcntl.lo ext/pcntl/php_signal.lo ext/pdo/pdo.lo ext/pdo/pdo_dbh.lo ext/pdo/pdo_stmt.lo ext/pdo/pdo_sql_parser.lo ext/pdo/pdo_sqlstate.lo ext/pdo_mysql/pdo_mysql.lo ext/pdo_mysql/mysql_driver.lo ext/pdo_mysql/mysql_statement.lo ext/pdo_sqlite/pdo_sqlite.lo ext/pdo_sqlite/sqlite_driver.lo ext/pdo_sqlite/sqlite_statement.lo ext/phar/util.lo ext/phar/tar.lo ext/phar/zip.lo ext/phar/stream.lo ext/phar/func_interceptors.lo ext/phar/dirstream.lo ext/phar/phar.lo ext/phar/phar_object.lo ext/phar/phar_path_check.lo ext/posix/posix.lo ext/pthreads/php_pthreads.lo ext/pthreads/src/monitor.lo ext/pthreads/src/stack.lo ext/pthreads/src/globals.lo ext/pthreads/src/prepare.lo ext/pthreads/src/store.lo ext/pthreads/src/resources.lo ext/pthreads/src/handlers.lo ext/pthreads/src/object.lo ext/pthreads/src/socket.lo ext/reflection/php_reflection.lo ext/session/mod_user_class.lo ext/session/session.lo ext/session/mod_files.lo ext/session/mod_mm.lo ext/session/mod_user.lo ext/sockets/sockets.lo ext/sockets/multicast.lo ext/sockets/conversions.lo ext/sockets/sockaddr_conv.lo ext/sockets/sendrecvmsg.lo ext/spl/php_spl.lo ext/spl/spl_functions.lo ext/spl/spl_engine.lo ext/spl/spl_iterators.lo ext/spl/spl_array.lo ext/spl/spl_directory.lo ext/spl/spl_exceptions.lo ext/spl/spl_observer.lo ext/spl/spl_dllist.lo ext/spl/spl_heap.lo ext/spl/spl_fixedarray.lo ext/standard/crypt_freesec.lo ext/standard/crypt_blowfish.lo ext/standard/crypt_sha512.lo ext/standard/crypt_sha256.lo ext/standard/php_crypt_r.lo ext/standard/array.lo ext/standard/base64.lo ext/standard/basic_functions.lo ext/standard/browscap.lo ext/standard/crc32.lo ext/standard/crypt.lo ext/standard/cyr_convert.lo ext/standard/datetime.lo ext/standard/dir.lo ext/standard/dl.lo ext/standard/dns.lo ext/standard/exec.lo ext/standard/file.lo ext/standard/filestat.lo ext/standard/flock_compat.lo ext/standard/formatted_print.lo ext/standard/fsock.lo ext/standard/head.lo ext/standard/html.lo ext/standard/image.lo ext/standard/info.lo ext/standard/iptc.lo ext/standard/lcg.lo ext/standard/link.lo ext/standard/mail.lo ext/standard/math.lo ext/standard/md5.lo ext/standard/metaphone.lo ext/standard/microtime.lo ext/standard/pack.lo ext/standard/pageinfo.lo ext/standard/quot_print.lo ext/standard/rand.lo ext/standard/mt_rand.lo ext/standard/soundex.lo ext/standard/string.lo ext/standard/scanf.lo ext/standard/syslog.lo ext/standard/type.lo ext/standard/uniqid.lo ext/standard/url.lo ext/standard/var.lo ext/standard/versioning.lo ext/standard/assert.lo ext/standard/strnatcmp.lo ext/standard/levenshtein.lo ext/standard/incomplete_class.lo ext/standard/url_scanner_ex.lo ext/standard/ftp_fopen_wrapper.lo ext/standard/http_fopen_wrapper.lo ext/standard/php_fopen_wrapper.lo ext/standard/credits.lo ext/standard/css.lo ext/standard/var_unserializer.lo ext/standard/ftok.lo ext/standard/sha1.lo ext/standard/user_filters.lo ext/standard/uuencode.lo ext/standard/filters.lo ext/standard/proc_open.lo ext/standard/streamsfuncs.lo ext/standard/http.lo ext/standard/password.lo ext/standard/random.lo ext/swoole/swoole.lo ext/swoole/swoole_server.lo ext/swoole/swoole_server_port.lo ext/swoole/swoole_atomic.lo ext/swoole/swoole_lock.lo ext/swoole/swoole_client.lo ext/swoole/swoole_client_coro.lo ext/swoole/swoole_coroutine.lo ext/swoole/swoole_coroutine_util.lo ext/swoole/swoole_event.lo ext/swoole/swoole_socket_coro.lo ext/swoole/swoole_timer.lo ext/swoole/swoole_async.lo ext/swoole/swoole_process.lo ext/swoole/swoole_process_pool.lo ext/swoole/swoole_serialize.lo ext/swoole/swoole_buffer.lo ext/swoole/swoole_table.lo ext/swoole/swoole_http_server.lo ext/swoole/swoole_http_v2_server.lo ext/swoole/swoole_http_v2_client.lo ext/swoole/swoole_http_v2_client_coro.lo ext/swoole/swoole_websocket_server.lo ext/swoole/swoole_http_client.lo ext/swoole/swoole_http_client_coro.lo ext/swoole/swoole_mysql.lo ext/swoole/swoole_mysql_coro.lo ext/swoole/swoole_postgresql_coro.lo ext/swoole/swoole_redis.lo ext/swoole/swoole_redis_coro.lo ext/swoole/swoole_redis_server.lo ext/swoole/swoole_mmap.lo ext/swoole/swoole_channel.lo ext/swoole/swoole_channel_coro.lo ext/swoole/swoole_ringqueue.lo ext/swoole/swoole_msgqueue.lo ext/swoole/swoole_trace.lo ext/swoole/swoole_runtime.lo ext/swoole/swoole_memory_pool.lo ext/swoole/thirdparty/swoole_http_parser.lo ext/swoole/thirdparty/multipart_parser.lo ext/swoole/src/core/base.lo ext/swoole/src/core/log.lo ext/swoole/src/core/hashmap.lo ext/swoole/src/core/ring_queue.lo ext/swoole/src/core/channel.lo ext/swoole/src/core/string.lo ext/swoole/src/core/array.lo ext/swoole/src/core/socket.lo ext/swoole/src/core/list.lo ext/swoole/src/core/heap.lo ext/swoole/src/core/error.lo ext/swoole/src/coroutine/base.lo ext/swoole/src/coroutine/boost.lo ext/swoole/src/coroutine/context.lo ext/swoole/src/coroutine/ucontext.lo ext/swoole/src/coroutine/socket.lo ext/swoole/src/coroutine/channel.lo ext/swoole/src/coroutine/hook.lo ext/swoole/src/memory/shared_memory.lo ext/swoole/src/memory/global_memory.lo ext/swoole/src/memory/ring_buffer.lo ext/swoole/src/memory/fixed_pool.lo ext/swoole/src/memory/malloc.lo ext/swoole/src/memory/table.lo ext/swoole/src/memory/buffer.lo ext/swoole/src/factory/base.lo ext/swoole/src/factory/thread.lo ext/swoole/src/factory/process.lo ext/swoole/src/reactor/base.lo ext/swoole/src/reactor/select.lo ext/swoole/src/reactor/poll.lo ext/swoole/src/reactor/epoll.lo ext/swoole/src/reactor/kqueue.lo ext/swoole/src/pipe/base.lo ext/swoole/src/pipe/eventfd.lo ext/swoole/src/pipe/unix_socket.lo ext/swoole/src/lock/semaphore.lo ext/swoole/src/lock/mutex.lo ext/swoole/src/lock/rw_lock.lo ext/swoole/src/lock/spin_lock.lo ext/swoole/src/lock/file_lock.lo ext/swoole/src/lock/cond.lo ext/swoole/src/network/server.lo ext/swoole/src/network/task_worker.lo ext/swoole/src/network/client.lo ext/swoole/src/network/connection.lo ext/swoole/src/network/process_pool.lo ext/swoole/src/network/thread_pool.lo ext/swoole/src/network/reactor_thread.lo ext/swoole/src/network/reactor_process.lo ext/swoole/src/network/manager.lo ext/swoole/src/network/worker.lo ext/swoole/src/network/timer.lo ext/swoole/src/network/port.lo ext/swoole/src/network/dns.lo ext/swoole/src/network/stream.lo ext/swoole/src/os/base.lo ext/swoole/src/os/msg_queue.lo ext/swoole/src/os/sendfile.lo ext/swoole/src/os/signal.lo ext/swoole/src/os/timer.lo ext/swoole/src/protocol/base.lo ext/swoole/src/protocol/ssl.lo ext/swoole/src/protocol/http.lo ext/swoole/src/protocol/http2.lo ext/swoole/src/protocol/websocket.lo ext/swoole/src/protocol/mqtt.lo ext/swoole/src/protocol/socks5.lo ext/swoole/src/protocol/mime_types.lo ext/swoole/src/protocol/redis.lo ext/swoole/src/protocol/base64.lo ext/swoole/thirdparty/boost/asm/make_arm_aapcs_elf_gas.lo ext/swoole/thirdparty/boost/asm/jump_arm_aapcs_elf_gas.lo ext/tokenizer/tokenizer.lo ext/tokenizer/tokenizer_data.lo ext/xml/xml.lo ext/xml/compat.lo ext/xmlreader/php_xmlreader.lo ext/xmlwriter/php_xmlwriter.lo ext/yaml/yaml.lo ext/yaml/parse.lo ext/yaml/emit.lo ext/yaml/detect.lo ext/zip/php_zip.lo ext/zip/zip_stream.lo ext/zip/lib/zip_add.lo ext/zip/lib/zip_add_dir.lo ext/zip/lib/zip_add_entry.lo ext/zip/lib/zip_buffer.lo ext/zip/lib/zip_file_set_mtime.lo ext/zip/lib/zip_io_util.lo ext/zip/lib/zip_source_begin_write.lo ext/zip/lib/zip_source_call.lo ext/zip/lib/zip_source_commit_write.lo ext/zip/lib/zip_source_is_deleted.lo ext/zip/lib/zip_source_remove.lo ext/zip/lib/zip_source_rollback_write.lo ext/zip/lib/zip_source_seek.lo ext/zip/lib/zip_source_seek_write.lo ext/zip/lib/zip_source_supports.lo ext/zip/lib/zip_source_tell.lo ext/zip/lib/zip_source_tell_write.lo ext/zip/lib/zip_source_write.lo ext/zip/lib/zip_close.lo ext/zip/lib/zip_delete.lo ext/zip/lib/zip_dir_add.lo ext/zip/lib/zip_dirent.lo ext/zip/lib/zip_discard.lo ext/zip/lib/zip_entry.lo ext/zip/lib/zip_err_str.lo ext/zip/lib/zip_error.lo ext/zip/lib/zip_error_clear.lo ext/zip/lib/zip_error_get.lo ext/zip/lib/zip_error_get_sys_type.lo ext/zip/lib/zip_error_strerror.lo ext/zip/lib/zip_error_to_str.lo ext/zip/lib/zip_extra_field.lo ext/zip/lib/zip_extra_field_api.lo ext/zip/lib/zip_fclose.lo ext/zip/lib/zip_fdopen.lo ext/zip/lib/zip_file_add.lo ext/zip/lib/zip_file_error_clear.lo ext/zip/lib/zip_file_error_get.lo ext/zip/lib/zip_file_get_comment.lo ext/zip/lib/zip_file_get_offset.lo ext/zip/lib/zip_file_rename.lo ext/zip/lib/zip_file_replace.lo ext/zip/lib/zip_file_set_comment.lo ext/zip/lib/zip_file_strerror.lo ext/zip/lib/zip_filerange_crc.lo ext/zip/lib/zip_fopen.lo ext/zip/lib/zip_file_get_external_attributes.lo ext/zip/lib/zip_file_set_external_attributes.lo ext/zip/lib/zip_fopen_encrypted.lo ext/zip/lib/zip_fopen_index.lo ext/zip/lib/zip_fopen_index_encrypted.lo ext/zip/lib/zip_fread.lo ext/zip/lib/zip_get_archive_comment.lo ext/zip/lib/zip_get_archive_flag.lo ext/zip/lib/zip_get_compression_implementation.lo ext/zip/lib/zip_get_encryption_implementation.lo ext/zip/lib/zip_get_file_comment.lo ext/zip/lib/zip_get_name.lo ext/zip/lib/zip_get_num_entries.lo ext/zip/lib/zip_get_num_files.lo ext/zip/lib/zip_memdup.lo ext/zip/lib/zip_name_locate.lo ext/zip/lib/zip_new.lo ext/zip/lib/zip_open.lo ext/zip/lib/zip_rename.lo ext/zip/lib/zip_replace.lo ext/zip/lib/zip_hash.lo ext/zip/lib/zip_set_archive_comment.lo ext/zip/lib/zip_set_archive_flag.lo ext/zip/lib/zip_set_default_password.lo ext/zip/lib/zip_set_file_comment.lo ext/zip/lib/zip_set_file_compression.lo ext/zip/lib/zip_set_name.lo ext/zip/lib/zip_source_buffer.lo ext/zip/lib/zip_source_close.lo ext/zip/lib/zip_source_crc.lo ext/zip/lib/zip_source_deflate.lo ext/zip/lib/zip_source_error.lo ext/zip/lib/zip_source_file.lo ext/zip/lib/zip_source_filep.lo ext/zip/lib/zip_source_free.lo ext/zip/lib/zip_source_function.lo ext/zip/lib/zip_source_layered.lo ext/zip/lib/zip_source_open.lo ext/zip/lib/zip_source_pkware.lo ext/zip/lib/zip_source_read.lo ext/zip/lib/zip_source_stat.lo ext/zip/lib/zip_source_window.lo ext/zip/lib/zip_source_zip.lo ext/zip/lib/zip_source_zip_new.lo ext/zip/lib/zip_stat.lo ext/zip/lib/zip_stat_index.lo ext/zip/lib/zip_stat_init.lo ext/zip/lib/zip_strerror.lo ext/zip/lib/zip_string.lo ext/zip/lib/zip_unchange.lo ext/zip/lib/zip_unchange_all.lo ext/zip/lib/zip_unchange_archive.lo ext/zip/lib/zip_unchange_data.lo ext/zip/lib/zip_utf-8.lo ext/zip/lib/mkstemp.lo ext/mysqlnd/mysqlnd_connection.lo ext/mysqlnd/mysqlnd_alloc.lo ext/mysqlnd/mysqlnd_charset.lo ext/mysqlnd/mysqlnd_wireprotocol.lo ext/mysqlnd/mysqlnd_loaddata.lo ext/mysqlnd/mysqlnd_reverse_api.lo ext/mysqlnd/mysqlnd_vio.lo ext/mysqlnd/mysqlnd_protocol_frame_codec.lo ext/mysqlnd/mysqlnd_statistics.lo ext/mysqlnd/mysqlnd_driver.lo ext/mysqlnd/mysqlnd_ext_plugin.lo ext/mysqlnd/mysqlnd_auth.lo ext/mysqlnd/mysqlnd_result.lo ext/mysqlnd/mysqlnd_result_meta.lo ext/mysqlnd/mysqlnd_debug.lo ext/mysqlnd/mysqlnd_commands.lo ext/mysqlnd/mysqlnd_block_alloc.lo ext/mysqlnd/mysqlnd_read_buffer.lo ext/mysqlnd/mysqlnd_plugin.lo ext/mysqlnd/php_mysqlnd.lo ext/mysqlnd/mysqlnd_ps.lo ext/mysqlnd/mysqlnd_ps_codec.lo TSRM/TSRM.lo TSRM/tsrm_strtok_r.lo main/main.lo main/snprintf.lo main/spprintf.lo main/php_sprintf.lo main/fopen_wrappers.lo main/alloca.lo main/php_scandir.lo main/php_ini.lo main/SAPI.lo main/rfc1867.lo main/php_content_types.lo main/strlcpy.lo main/strlcat.lo main/explicit_bzero.lo main/mergesort.lo main/reentrancy.lo main/php_variables.lo main/php_ticks.lo main/network.lo main/php_open_temporary_file.lo main/output.lo main/getopt.lo main/streams/streams.lo main/streams/cast.lo main/streams/memory.lo main/streams/filter.lo main/streams/plain_wrapper.lo main/streams/userspace.lo main/streams/transports.lo main/streams/xp_socket.lo main/streams/mmap.lo main/streams/glob_wrapper.lo Zend/zend_language_parser.lo Zend/zend_language_scanner.lo Zend/zend_ini_parser.lo Zend/zend_ini_scanner.lo Zend/zend_alloc.lo Zend/zend_compile.lo Zend/zend_constants.lo Zend/zend_dtrace.lo Zend/zend_execute_API.lo Zend/zend_highlight.lo Zend/zend_llist.lo Zend/zend_vm_opcodes.lo Zend/zend_opcode.lo Zend/zend_operators.lo Zend/zend_ptr_stack.lo Zend/zend_stack.lo Zend/zend_variables.lo Zend/zend.lo Zend/zend_API.lo Zend/zend_extensions.lo Zend/zend_hash.lo Zend/zend_list.lo Zend/zend_builtin_functions.lo Zend/zend_sprintf.lo Zend/zend_ini.lo Zend/zend_sort.lo Zend/zend_multibyte.lo Zend/zend_ts_hash.lo Zend/zend_stream.lo Zend/zend_iterators.lo Zend/zend_interfaces.lo Zend/zend_exceptions.lo Zend/zend_strtod.lo Zend/zend_gc.lo Zend/zend_closures.lo Zend/zend_float.lo Zend/zend_string.lo Zend/zend_signal.lo Zend/zend_generators.lo Zend/zend_virtual_cwd.lo Zend/zend_ast.lo Zend/zend_objects.lo Zend/zend_object_handlers.lo Zend/zend_objects_API.lo Zend/zend_default_classes.lo Zend/zend_inheritance.lo Zend/zend_smart_str.lo Zend/zend_execute.lo main/internal_functions_cli.lo sapi/cli/php_cli.lo sapi/cli/php_http_parser.lo sapi/cli/php_cli_server.lo sapi/cli/ps_title.lo sapi/cli/php_cli_process_title.lo -lpthread -lz -lyaml -lstdc++ -lhiredis -lssl -lrt -lsqlite3 -lgmp -lpng -lz -ljpeg -lcrypto -lssl -lcrypto -lbz2 -lz -lsqlite3 -lcrypto -lssl -lcrypto -lm -lpthread -L/home/peratx/buildroot/output/host/bin/../arm-buildroot-linux-musleabihf/sysroot/usr//lib -lssl -lz -L/home/peratx/buildroot/output/host/bin/../arm-buildroot-linux-musleabihf/sysroot/usr//lib -lz -lcrypto -lz -L/home/peratx/buildroot/output/host/bin/../arm-buildroot-linux-musleabihf/sysroot/usr/lib -lsqlite3 -lz -lpthread -lxml2 -lz -lm -lcurl -lssl -lcrypto -lz -lz -lcrypto -lz -lz -lssl -lz -lz -lcrypto -lz -lxml2 -lz -lm -lfreetype -lpng16 -lbz2 -lpng16 -lz -lz -lrt -lssl -lcrypto -lhiredis -lz -lstdc++ -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lssl -lz -lz -lcrypto -lz  -o sapi/cli/php
ext/swoole/.libs/swoole_server_port.o: In function `zim_swoole_server_port_set':
swoole_server_port.c:(.text+0xfdc): undefined reference to `swPort_enable_ssl_encrypt'
ext/swoole/.libs/swoole_lock.o: In function `zim_swoole_lock___construct':
swoole_lock.c:(.text+0x730): undefined reference to `swRWLock_create'
swoole_lock.c:(.text+0x814): undefined reference to `swSpinLock_create'
ext/swoole/.libs/swoole_client.o: In function `zim_swoole_client_verifyPeerCert':
swoole_client.c:(.text+0xad0): undefined reference to `swClient_ssl_verify'
ext/swoole/.libs/swoole_client.o: In function `zim_swoole_client_getPeerCert':
swoole_client.c:(.text+0x14dc): undefined reference to `swSSL_get_client_certificate'
ext/swoole/.libs/swoole_client.o: In function `zim_swoole_client_enableSSL':
swoole_client.c:(.text+0x3c1c): undefined reference to `swClient_enable_ssl_encrypt'
swoole_client.c:(.text+0x3db0): undefined reference to `swClient_ssl_handshake'
ext/swoole/.libs/swoole_client_coro.o: In function `zim_swoole_client_coro_verifyPeerCert(_zend_execute_data*, _zval_struct*)':
swoole_client_coro.cc:(.text+0x86c): undefined reference to `swoole::Socket::ssl_verify(bool)'
ext/swoole/.libs/swoole_client_coro.o: In function `zim_swoole_client_coro_getPeerCert(_zend_execute_data*, _zval_struct*)':
swoole_client_coro.cc:(.text+0xaf8): undefined reference to `swSSL_get_client_certificate'
ext/swoole/.libs/swoole_client_coro.o: In function `zim_swoole_client_coro_enableSSL(_zend_execute_data*, _zval_struct*)':
swoole_client_coro.cc:(.text+0x2130): undefined reference to `swoole::Socket::ssl_handshake()'
ext/swoole/.libs/swoole_event.o: In function `php_swoole_event_wait':
swoole_event.c:(.text+0x774): undefined reference to `swSignalfd_setup'
ext/swoole/.libs/swoole_event.o: In function `zif_swoole_event_dispatch':
swoole_event.c:(.text+0x19fc): undefined reference to `swSignalfd_setup'
ext/swoole/.libs/swoole_http_client_coro.o: In function `http_client_coro_execute(_zval_struct*, http_client_coro_property*, char*, unsigned int)':
swoole_http_client_coro.cc:(.text+0x1cec): undefined reference to `swoole::Socket::ssl_handshake()'
ext/swoole/.libs/swoole_runtime.o: In function `socket_set_option(_php_stream*, int, int, void*)':
swoole_runtime.cc:(.text+0x278c): undefined reference to `swoole::Socket::ssl_handshake()'
collect2: error: ld returned 1 exit status
Makefile:273: recipe for target 'sapi/cli/php' failed
make[2]: *** [sapi/cli/php] Error 1
package/pkg-generic.mk:229: recipe for target '/home/peratx/buildroot/output/build/php-7.2.10/.stamp_built' failed
make[1]: *** [/home/peratx/buildroot/output/build/php-7.2.10/.stamp_built] Error 2
Makefile:79: recipe for target '_all' failed
make: *** [_all] Error 2

I have also checked confdefs.h in config.log
It had #define SW_USE_OPENSSL 1.

  1. What version of Swoole are you using (show your php --ri swoole)?
    4.2.1

  2. What is your machine environment used (including version of kernel & php & gcc) ?
    Ubuntu 18.04 LTS (4.15.0)
    php 7.2.10
    tried gcc 7.3.0 (musl/uclibc-ng) and gcc 4.9.4

installation

All 12 comments

SW_USE_OPENSSL defined in C but not in C++?

抱歉,我并没有理解您说的,我不是很会C/C++

检查是否缺少openssl依赖

可以肯定不是OpenSSL的问题,可见日志中检查openssl全部都是yes的。
而且注释connection.h中的#ifdef SW_USE_OPENSSL就不会卡在SSL_CTX找不到。
同样的,在client.h中添加#include <openssl/ssl.h>也不会提示找不到SSL_CTX,只会提示找不到swSSL_option
当时在#866中给出的方案是采用动态链接库so的形式,但是我现在是把swoole放在php的ext目录下编译的。

没看懂 你失败的编译方式是什么?
和php-src一起静态编译?

是的,和php一起静态编译

尝试使用这个示例编译了吗? 还是有什么特殊需求

git clone -b PHP-7.2 --depth 1 https://github.com/php/php-src.git
cd php-src/
git clone -b master --depth 1 https://github.com/swoole/swoole-src.git ext/swoole
./buildconf --force
./configure --prefix=/usr/local/php7 --disable-all --enable-cli --disable-cgi --disable-fpm --disable-phpdbg --enable-bcmath --enable-hash --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --enable-sockets --enable-pdo --with-sodium --with-password-argon2 --with-sqlite3 --with-pdo-sqlite --with-pcre-regex --with-zlib --with-openssl-dir --enable-swoole-static --enable-openssl --with-swoole
time make -j `cat /proc/cpuinfo | grep processor | wc -l`
sudo make install
ifeq ($(BR2_PACKAGE_PHP_EXT_SWOOLE),y)
#PHP_SWOOLE_VERSION = 4.2.3
#PHP_EXTRA_DOWNLOADS += https://pecl.php.net/get/swoole-$(PHP_SWOOLE_VERSION).tgz
PHP_CONF_OPTS += \
        --with-swoole \
        --enable-async-redis \
        --enable-openssl \
        --with-hiredis-dir=$(STAGING_DIR)/usr \
        --with-openssl-dir=$(STAGING_DIR)/usr \
        --enable-swoole-static
PHP_DEPENDENCIES += hiredis openssl
define SWOOLE_UNPACK
git clone -b master --depth 1 https://github.com/swoole/swoole-src.git $(@D)/ext/swoole
#mkdir -p $(@D)/ext/swoole
#tar -xvf $(BR2_DL_DIR)/swoole-$(PHP_SWOOLE_VERSION).tgz -C $(@D)/ext/swoole --strip-components=1
endef
PHP_PRE_CONFIGURE_HOOKS := SWOOLE_UNPACK $(PHP_PRE_CONFIGURE_HOOKS)
endif

使用这个配置的话,swoole完全不会被编译了
查看了config.m4,当中是--enable-swoole,并没有--enable-swoole-static --with-swoole

可能是 @matyhtf 修改了参数没有更新文档

你的--with-xxx-dir的几个参数好像不对, 为什么最后是/usr结尾? 应该指定依赖库的安装位置, 比如在mac下它是这样的, 请检查
image

在buildroot里,就是这样的。
已经确定openssl/hiredis依赖没有问题,configure的时候也能找到

问题并没有解决

无法支持的问题。在 Ubuntu 环境下是正常的。请尝试修改编译脚本 自行解决

Was this page helpful?
0 / 5 - 0 ratings

Related issues

AndyChanCode picture AndyChanCode  ·  3Comments

kings36503 picture kings36503  ·  3Comments

morozovsk picture morozovsk  ·  3Comments

sshymko picture sshymko  ·  3Comments

rovico picture rovico  ·  4Comments