conan-io / conan-center-index

Recipes for the ConanCenter repository
https://conan.io/center
MIT License
921 stars 1.66k forks source link

openssl/1.1.1q does not honor no_async #18022

Closed klausholstjacobsen closed 1 year ago

klausholstjacobsen commented 1 year ago

Description

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

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 = {
        "openssl/*:no_async":True,
        "openssl/*:shared":True
    }

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:

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
klausholstjacobsen commented 1 year ago

My mistake. Had the configure method defined twice in the recipe. No error, but only the last one is used!