Closed klausholstjacobsen closed 1 year ago
Cross compiling for qnx 7.0
my conanfile.py:
... def configure(self): #Default options self.options["openssl/*"].shared=True self.options["openssl/*"].no_async=True def requirements(self): self.requires("openssl/1.1.1q") ...
But, conan tries to build with async anyway....and fails
Build command: conan create -pr:b aaa -pr:h bbb conanfile.py --version "1.0.0" --update --build=openssl/1.1.1q
conan create -pr:b aaa -pr:h bbb conanfile.py --version "1.0.0" --update --build=openssl/1.1.1q
If I look at the recipe then no_async only appear once namely in the options sections, but it is never used explicitly in the recipe. Is that that way it is supposed to be?
As you can see from the configdata output below, async is enabled!
Compile error:
ib.o crypto/x509v3/pcy_map.o crypto/x509v3/pcy_node.o crypto/x509v3/pcy_tree.o crypto/x509v3/v3_addr.o crypto/x509v3/v3_admis.o crypto/x509v3/v3_akey.o crypto/x509v3/v3_akeya.o crypto/x509v3/v3_alt.o crypto/x509v3/v3_asid.o crypto/x509v3/v3_bcons.o crypto/x509v3/v3_bitst.o crypto/x509v3/v3_conf.o crypto/x509v3/v3_cpols.o crypto/x509v3/v3_crld.o crypto/x509v3/v3_enum.o crypto/x509v3/v3_extku.o crypto/x509v3/v3_genn.o crypto/x509v3/v3_ia5.o crypto/x509v3/v3_info.o crypto/x509v3/v3_int.o crypto/x509v3/v3_lib.o crypto/x509v3/v3_ncons.o crypto/x509v3/v3_pci.o crypto/x509v3/v3_pcia.o crypto/x509v3/v3_pcons.o crypto/x509v3/v3_pku.o crypto/x509v3/v3_pmaps.o crypto/x509v3/v3_prn.o crypto/x509v3/v3_purp.o crypto/x509v3/v3_skey.o crypto/x509v3/v3_sxnet.o crypto/x509v3/v3_tlsf.o crypto/x509v3/v3_utl.o crypto/x509v3/v3err.o engines/e_capi.o engines/e_padlock.o ar: creating libcrypto.a ar r libssl.a ssl/bio_ssl.o ssl/d1_lib.o ssl/d1_msg.o ssl/d1_srtp.o ssl/methods.o ssl/packet.o ssl/pqueue.o ssl/record/dtls1_bitmap.o ssl/record/rec_layer_d1.o ssl/record/rec_layer_s3.o ssl/record/ssl3_buffer.o ssl/record/ssl3_record.o ssl/record/ssl3_record_tls13.o ssl/s3_cbc.o ssl/s3_enc.o ssl/s3_lib.o ssl/s3_msg.o ssl/ssl_asn1.o ssl/ssl_cert.o ssl/ssl_ciph.o ssl/ssl_conf.o ssl/ssl_err.o ssl/ssl_init.o ssl/ssl_lib.o ssl/ssl_mcnf.o ssl/ssl_rsa.o ssl/ssl_sess.o ssl/ssl_stat.o ssl/ssl_txt.o ssl/ssl_utst.o ssl/statem/extensions.o ssl/statem/extensions_clnt.o ssl/statem/extensions_cust.o ssl/statem/extensions_srvr.o ssl/statem/statem.o ssl/statem/statem_clnt.o ssl/statem/statem_dtls.o ssl/statem/statem_lib.o ssl/statem/statem_srvr.o ssl/t1_enc.o ssl/t1_lib.o ssl/t1_trce.o ssl/tls13_enc.o ssl/tls_srp.o ar: creating libssl.a ranlib libssl.a || echo Never mind. ranlib libcrypto.a || echo Never mind. rm -f apps/openssl ${LDCMD:-/home/khj/.conan2/p/b/sdk-x9a7ea47501e1a/p/gcc_wrapper} -m64 -fPIC --sysroot /home/khj/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 -O3 -I/home/khj/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/usr/include/io-pkt -m64 -fPIC --sysroot /home/khj/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 -O3 -I/home/khj/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/usr/include/io-pkt -fPIC -L. -m64 --sysroot /home/khj/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 -m64 --sysroot /home/khj/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 \ -o apps/openssl apps/asn1pars.o apps/ca.o apps/ciphers.o apps/cms.o apps/crl.o apps/crl2p7.o apps/dgst.o apps/dhparam.o apps/dsa.o apps/dsaparam.o apps/ec.o apps/ecparam.o apps/enc.o apps/engine.o apps/errstr.o apps/gendsa.o apps/genpkey.o apps/genrsa.o apps/nseq.o apps/ocsp.o apps/openssl.o apps/passwd.o apps/pkcs12.o apps/pkcs7.o apps/pkcs8.o apps/pkey.o apps/pkeyparam.o apps/pkeyutl.o apps/prime.o apps/rand.o apps/rehash.o apps/req.o apps/rsa.o apps/rsautl.o apps/s_client.o apps/s_server.o apps/s_time.o apps/sess_id.o apps/smime.o apps/speed.o apps/spkac.o apps/srp.o apps/storeutl.o apps/ts.o apps/verify.o apps/version.o apps/x509.o \ apps/libapps.a -lssl -lcrypto -lsocket -latomic ./libcrypto.a(async_posix.o): In function `ASYNC_is_capable': async_posix.c:(.text+0x21): undefined reference to `getcontext' ./libcrypto.a(async_posix.o): In function `async_fibre_makecontext': async_posix.c:(.text+0x77): undefined reference to `getcontext' async_posix.c:(.text+0xe9): undefined reference to `makecontext' ./libcrypto.a(async.o): In function `async_fibre_swapcontext.constprop.3': async.c:(.text+0x35): undefined reference to `setcontext' collect2: error: ld returned 1 exit status make[1]: *** [Makefile:6190: apps/openssl] Error 1 make[1]: Leaving directory '/home/khj/.conan2/p/b/opensc15c4a1a1a9c2/b/src' make: *** [Makefile:174: all] Error 2
The error indicate linking errors while linking async.
If I put the options in default_options it works:
default_options
default_options = { "openssl/*:no_async":True, "openssl/*:shared":True }
Regards Klaus
OS: wsl ubuntu 20.04 Conan 2.0.6 Recipe openssl/1.1.1q#28308d3a11508fc1b0e2be7cd34139b6
None
Output from perl configdata.pm --dump:
perl configdata.pm --dump
Command line (with current working directory = [home_dir]/.conan2/p/b/opensc15c4a1a1a9c2/b/src): perl ./Configure conan-Release-Neutrino-x86_64-gcc-5.4 no-shared --prefix=/ --openssldir=res no-unit-test threads PERL=perl no-tests --release --libdir=lib -fPIC no-md2 no-asm -lsocket -latomic Perl information: /usr/bin/perl 5.34.0 for x86_64-linux-gnu-thread-multi Enabled features: aria async autoalginit autoerrinit autoload-config bf blake2 camellia capieng cast chacha cmac cms comp ct deprecated des dgram dh dsa dso dtls ec ec2m ecdh ecdsa engine err filenames gost hw(-.+)? idea makedepend md4 mdc2 multiblock nextprotoneg pinshared ocb ocsp poly1305 posix-io psk rc2 rc4 rdrand rfc3779 rmd160 scrypt seed siphash sm2 sm3 sm4 sock srp srtp sse2 ssl static-engine stdio threads tls ts ui-console whirlpool tls1 tls1-method tls1_1 tls1_1-method tls1_2 tls1_2-method tls1_3 dtls1 dtls1-method dtls1_2 dtls1_2-method Disabled features: afalgeng [not-linux] OPENSSL_NO_AFALGENG asan [default] OPENSSL_NO_ASAN asm [option] OPENSSL_NO_ASM buildtest-c++ [default] crypto-mdebug [default] OPENSSL_NO_CRYPTO_MDEBUG crypto-mdebug-backtrace [default] OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE devcryptoeng [default] OPENSSL_NO_DEVCRYPTOENG dynamic-engine [cascade] ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 egd [default] OPENSSL_NO_EGD external-tests [default] OPENSSL_NO_EXTERNAL_TESTS fuzz-libfuzzer [default] OPENSSL_NO_FUZZ_LIBFUZZER fuzz-afl [default] OPENSSL_NO_FUZZ_AFL heartbeats [default] OPENSSL_NO_HEARTBEATS md2 [option] OPENSSL_NO_MD2 (skip crypto/md2) msan [default] OPENSSL_NO_MSAN pic [no-shared-target] rc5 [default] OPENSSL_NO_RC5 (skip crypto/rc5) sctp [default] OPENSSL_NO_SCTP shared [option] ssl-trace [default] OPENSSL_NO_SSL_TRACE tests [option] OPENSSL_NO_TESTS ubsan [default] OPENSSL_NO_UBSAN unit-test [option] OPENSSL_NO_UNIT_TEST weak-ssl-ciphers [default] OPENSSL_NO_WEAK_SSL_CIPHERS zlib [default] zlib-dynamic [default] ssl3 [default] OPENSSL_NO_SSL3 ssl3-method [default] OPENSSL_NO_SSL3_METHOD Config target attributes: AR => "ar", ARFLAGS => "r", CC => "cc", HASHBANGPERL => "/usr/bin/env perl", RANLIB => "ranlib", RC => "windres", aes_asm_src => "aes_core.c aes_cbc.c", aes_obj => "aes_core.o aes_cbc.o", apps_aux_src => "", apps_init_src => "", apps_obj => "", bf_asm_src => "bf_enc.c", bf_obj => "bf_enc.o", bn_asm_src => "bn_asm.c", bn_obj => "bn_asm.o", build_file => "Makefile", build_scheme => [ "unified", "unix" ], cast_asm_src => "c_enc.c", cast_obj => "c_enc.o", cflags => "-m64 -fPIC --sysroot [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 -O3 -I[home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/usr/include/io-pkt", chacha_asm_src => "chacha_enc.c", chacha_obj => "chacha_enc.o", cmll_asm_src => "camellia.c cmll_misc.c cmll_cbc.c", cmll_obj => "camellia.o cmll_misc.o cmll_cbc.o", cppflags => "", cpuid_asm_src => "mem_clr.c", cpuid_obj => "mem_clr.o", cxxflags => "-m64 -fPIC --sysroot [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 -O3 -I[home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/usr/include/io-pkt", defines => [ "NDEBUG", "_QNX_SOURCE", "QNX", "QNX700", "__QNX__", "QNX700x64" ], des_asm_src => "des_enc.c fcrypt_b.c", des_obj => "des_enc.o fcrypt_b.o", disable => [ ], dso_extension => ".so", ec_asm_src => "", ec_obj => "", enable => [ ], exe_extension => "", includes => [ ], keccak1600_asm_src => "keccak1600.c", keccak1600_obj => "keccak1600.o", lflags => "-m64 --sysroot [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64", lib_cflags => "", lib_cppflags => "", lib_defines => [ ], md5_asm_src => "", md5_obj => "", modes_asm_src => "", modes_obj => "", module_cflags => "", module_cppflags => "", module_cxxflags => "", module_defines => "", module_includes => "", module_ldflags => "", module_lflags => "", padlock_asm_src => "", padlock_obj => "", poly1305_asm_src => "", poly1305_obj => "", rc4_asm_src => "rc4_enc.c rc4_skey.c", rc4_obj => "rc4_enc.o rc4_skey.o", rc5_asm_src => "rc5_enc.c", rc5_obj => "rc5_enc.o", rmd160_asm_src => "", rmd160_obj => "", shared_cflag => "", shared_cppflag => "", shared_cxxflag => "", shared_defines => "", shared_extension => ".so", shared_extension_simple => ".so", shared_includes => "", shared_ldflag => "", shared_rcflag => "", shared_target => "", thread_defines => [ ], thread_scheme => "(unknown)", unistd => "<unistd.h>", uplink_aux_src => "", uplink_obj => "", wp_asm_src => "wp_block.c", wp_obj => "wp_block.o", Recorded environment: AR = BUILDFILE = CC = [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/gcc_wrapper CFLAGS = -m64 -fPIC --sysroot [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 -O3 -I[home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/usr/include/io-pkt CPPFLAGS = -DNDEBUG -D_QNX_SOURCE -DQNX -DQNX700 -D__QNX__ -DQNX700x64 CROSS_COMPILE = CXX = [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/cxx_wrapper CXXFLAGS = -m64 -fPIC --sysroot [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 -O3 -I[home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/usr/include/io-pkt HASHBANGPERL = LDFLAGS = -m64 --sysroot [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 LDLIBS = OPENSSL_LOCAL_CONFIG_DIR = PERL = perl RANLIB = RC = RCFLAGS = WINDRES = __CNF_CFLAGS = __CNF_CPPDEFINES = __CNF_CPPFLAGS = __CNF_CPPINCLUDES = __CNF_CXXFLAGS = __CNF_LDFLAGS = __CNF_LDLIBS = Makevars: AR = ar ARFLAGS = r CC = [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/gcc_wrapper CFLAGS = -m64 -fPIC --sysroot [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 -O3 -I[home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/usr/include/io-pkt -fPIC CPPDEFINES = CPPFLAGS = -DNDEBUG -D_QNX_SOURCE -DQNX -DQNX700 -D__QNX__ -DQNX700x64 CPPINCLUDES = CXX = [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/cxx_wrapper CXXFLAGS = -m64 -fPIC --sysroot [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 -O3 -I[home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/usr/include/io-pkt -fPIC HASHBANGPERL = perl LDFLAGS = -m64 --sysroot [home_dir]/.conan2/p/b/sdk-x9a7ea47501e1a/p/sdk/target/qnx7/x86_64 LDLIBS = -lsocket -latomic PERL = perl RANLIB = ranlib RC = windres RCFLAGS = NOTE: These variables only represent the configuration view. The build file template may have processed these variables further, please have a look at the build file for more exact data: [home_dir]/.conan2/p/b/opensc15c4a1a1a9c2/b/src/Makefile build file: [home_dir]/.conan2/p/b/opensc15c4a1a1a9c2/b/src/Makefile build file templates: [home_dir]/.conan2/p/b/opensc15c4a1a1a9c2/b/src/Configurations/common0.tmpl [home_dir]/.conan2/p/b/opensc15c4a1a1a9c2/b/src/Configurations/unix-Makefile.tmpl [home_dir]/.conan2/p/b/opensc15c4a1a1a9c2/b/src/Configurations/common.tmpl
My mistake. Had the configure method defined twice in the recipe. No error, but only the last one is used!
Description
Cross compiling for qnx 7.0
my conanfile.py:
But, conan tries to build with async anyway....and fails
Build command:
conan create -pr:b aaa -pr:h bbb conanfile.py --version "1.0.0" --update --build=openssl/1.1.1q
If I look at the recipe then no_async only appear once namely in the options sections, but it is never used explicitly in the recipe. Is that that way it is supposed to be?
As you can see from the configdata output below, async is enabled!
Compile error:
The error indicate linking errors while linking async.
If I put the options in
default_options
it works:Regards Klaus
Package and Environment Details
OS: wsl ubuntu 20.04 Conan 2.0.6 Recipe openssl/1.1.1q#28308d3a11508fc1b0e2be7cd34139b6
Conan profile
None
Steps to reproduce
None
Logs
Output from
perl configdata.pm --dump
: