Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/crypto/external/bsd/openssl/dist Changes between 1.1.1a and ...



details:   https://anonhg.NetBSD.org/src/rev/da20f0ee87f8
branches:  trunk
changeset: 997556:da20f0ee87f8
user:      christos <christos%NetBSD.org@localhost>
date:      Tue Mar 12 16:44:04 2019 +0000

description:
Changes between 1.1.1a and 1.1.1b [26 Feb 2019]

  *) Added SCA hardening for modular field inversion in EC_GROUP through
     a new dedicated field_inv() pointer in EC_METHOD.
     This also addresses a leakage affecting conversions from projective
     to affine coordinates.
     [Billy Bob Brumley, Nicola Tuveri]

  *) Change the info callback signals for the start and end of a post-handshake
     message exchange in TLSv1.3. In 1.1.1/1.1.1a we used SSL_CB_HANDSHAKE_START
     and SSL_CB_HANDSHAKE_DONE. Experience has shown that many applications get
     confused by this and assume that a TLSv1.2 renegotiation has started. This
     can break KeyUpdate handling. Instead we no longer signal the start and end
     of a post handshake message exchange (although the messages themselves are
     still signalled). This could break some applications that were expecting
     the old signals. However without this KeyUpdate is not usable for many
     applications.
     [Matt Caswell]

  *) Fix a bug in the computation of the endpoint-pair shared secret used
     by DTLS over SCTP. This breaks interoperability with older versions
     of OpenSSL like OpenSSL 1.1.0 and OpenSSL 1.0.2. There is a runtime
     switch SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG (off by default) enabling
     interoperability with such broken implementations. However, enabling
     this switch breaks interoperability with correct implementations.

  *) Fix a use after free bug in d2i_X509_PUBKEY when overwriting a
     re-used X509_PUBKEY object if the second PUBKEY is malformed.
     [Bernd Edlinger]

  *) Move strictness check from EVP_PKEY_asn1_new() to EVP_PKEY_asn1_add0().
     [Richard Levitte]

  *) Remove the 'dist' target and add a tarball building script.  The
     'dist' target has fallen out of use, and it shouldn't be
     necessary to configure just to create a source distribution.
     [Richard Levitte]

diffstat:

 crypto/external/bsd/openssl/dist/CONTRIBUTING                                          |     2 +-
 crypto/external/bsd/openssl/dist/Configurations/00-base-templates.conf                 |     2 +-
 crypto/external/bsd/openssl/dist/Configurations/10-main.conf                           |    13 +-
 crypto/external/bsd/openssl/dist/Configurations/15-android.conf                        |    20 +-
 crypto/external/bsd/openssl/dist/Configurations/50-win-onecore.conf                    |     2 +-
 crypto/external/bsd/openssl/dist/Configurations/README                                 |     4 +-
 crypto/external/bsd/openssl/dist/Configurations/README.design                          |     8 +-
 crypto/external/bsd/openssl/dist/Configurations/descrip.mms.tmpl                       |    50 +-
 crypto/external/bsd/openssl/dist/Configurations/unix-Makefile.tmpl                     |    34 +-
 crypto/external/bsd/openssl/dist/INSTALL                                               |    33 +-
 crypto/external/bsd/openssl/dist/LICENSE                                               |    16 +-
 crypto/external/bsd/openssl/dist/NOTES.ANDROID                                         |    16 +-
 crypto/external/bsd/openssl/dist/NOTES.DJGPP                                           |     4 +-
 crypto/external/bsd/openssl/dist/NOTES.VMS                                             |     2 +-
 crypto/external/bsd/openssl/dist/apps/apps.c                                           |     6 +-
 crypto/external/bsd/openssl/dist/apps/ct_log_list.cnf                                  |     4 +-
 crypto/external/bsd/openssl/dist/apps/demoSRP/srp_verifier.txt                         |     2 +-
 crypto/external/bsd/openssl/dist/apps/dh1024.pem                                       |     2 +-
 crypto/external/bsd/openssl/dist/apps/dh2048.pem                                       |     4 +-
 crypto/external/bsd/openssl/dist/apps/dh4096.pem                                       |     4 +-
 crypto/external/bsd/openssl/dist/apps/openssl-vms.cnf                                  |     4 +-
 crypto/external/bsd/openssl/dist/apps/pkcs12.c                                         |     9 +-
 crypto/external/bsd/openssl/dist/apps/rehash.c                                         |    22 +-
 crypto/external/bsd/openssl/dist/apps/s_cb.c                                           |     6 +-
 crypto/external/bsd/openssl/dist/apps/verify.c                                         |    15 +-
 crypto/external/bsd/openssl/dist/config                                                |    18 +-
 crypto/external/bsd/openssl/dist/crypto/aes/asm/aesv8-armx.pl                          |     4 +-
 crypto/external/bsd/openssl/dist/crypto/aes/asm/bsaes-x86_64.pl                        |     8 +-
 crypto/external/bsd/openssl/dist/crypto/aes/asm/vpaes-armv8.pl                         |    20 +-
 crypto/external/bsd/openssl/dist/crypto/aes/asm/vpaes-x86_64.pl                        |    28 +-
 crypto/external/bsd/openssl/dist/crypto/asn1/a_digest.c                                |    12 +-
 crypto/external/bsd/openssl/dist/crypto/asn1/a_sign.c                                  |    32 +-
 crypto/external/bsd/openssl/dist/crypto/asn1/a_verify.c                                |    18 +-
 crypto/external/bsd/openssl/dist/crypto/asn1/ameth_lib.c                               |    28 +-
 crypto/external/bsd/openssl/dist/crypto/asn1/charmap.h                                 |     2 +-
 crypto/external/bsd/openssl/dist/crypto/asn1/charmap.pl                                |     2 +-
 crypto/external/bsd/openssl/dist/crypto/asn1/d2i_pu.c                                  |     4 +-
 crypto/external/bsd/openssl/dist/crypto/bio/b_addr.c                                   |     7 +-
 crypto/external/bsd/openssl/dist/crypto/bio/bss_mem.c                                  |    26 +-
 crypto/external/bsd/openssl/dist/crypto/bn/asm/armv8-mont.pl                           |     6 +-
 crypto/external/bsd/openssl/dist/crypto/bn/asm/ia64.S                                  |     6 +-
 crypto/external/bsd/openssl/dist/crypto/bn/asm/rsaz-avx2.pl                            |     8 +-
 crypto/external/bsd/openssl/dist/crypto/bn/asm/sparcv8plus.S                           |     6 +-
 crypto/external/bsd/openssl/dist/crypto/bn/asm/x86_64-mont5.pl                         |     4 +-
 crypto/external/bsd/openssl/dist/crypto/bn/bn_ctx.c                                    |     8 +-
 crypto/external/bsd/openssl/dist/crypto/bn/bn_depr.c                                   |     4 +-
 crypto/external/bsd/openssl/dist/crypto/bn/bn_div.c                                    |   327 +-
 crypto/external/bsd/openssl/dist/crypto/bn/bn_prime.h                                  |     2 +-
 crypto/external/bsd/openssl/dist/crypto/bn/bn_prime.pl                                 |     2 +-
 crypto/external/bsd/openssl/dist/crypto/bn/bn_shift.c                                  |   130 +-
 crypto/external/bsd/openssl/dist/crypto/chacha/asm/chacha-armv8.pl                     |    10 +-
 crypto/external/bsd/openssl/dist/crypto/cms/cms_kari.c                                 |     7 +-
 crypto/external/bsd/openssl/dist/crypto/conf/conf_def.h                                |     2 +-
 crypto/external/bsd/openssl/dist/crypto/conf/conf_lib.c                                |    28 +-
 crypto/external/bsd/openssl/dist/crypto/conf/conf_mod.c                                |     5 +-
 crypto/external/bsd/openssl/dist/crypto/conf/conf_sap.c                                |    25 +-
 crypto/external/bsd/openssl/dist/crypto/conf/conf_ssl.c                                |     4 +-
 crypto/external/bsd/openssl/dist/crypto/conf/keysets.pl                                |     2 +-
 crypto/external/bsd/openssl/dist/crypto/des/asm/des_enc.m4                             |     6 +-
 crypto/external/bsd/openssl/dist/crypto/ec/asm/ecp_nistz256-armv8.pl                   |    30 +-
 crypto/external/bsd/openssl/dist/crypto/ec/asm/ecp_nistz256-x86_64.pl                  |    36 +-
 crypto/external/bsd/openssl/dist/crypto/ec/curve25519.c                                |  4609 +++++----
 crypto/external/bsd/openssl/dist/crypto/ec/curve448/eddsa.c                            |    30 +-
 crypto/external/bsd/openssl/dist/crypto/ec/curve448/point_448.h                        |    16 +-
 crypto/external/bsd/openssl/dist/crypto/ec/ec_err.c                                    |     9 +-
 crypto/external/bsd/openssl/dist/crypto/ec/ecp_nistp224.c                              |     3 +-
 crypto/external/bsd/openssl/dist/crypto/ec/ecp_nistp256.c                              |     3 +-
 crypto/external/bsd/openssl/dist/crypto/ec/ecp_nistp521.c                              |     3 +-
 crypto/external/bsd/openssl/dist/crypto/ec/ecp_nistz256.c                              |     3 +-
 crypto/external/bsd/openssl/dist/crypto/ec/ecx_meth.c                                  |     3 +-
 crypto/external/bsd/openssl/dist/crypto/engine/README                                  |     2 +-
 crypto/external/bsd/openssl/dist/crypto/err/err.c                                      |   112 +-
 crypto/external/bsd/openssl/dist/crypto/err/openssl.txt                                |     9 +-
 crypto/external/bsd/openssl/dist/crypto/evp/evp_err.c                                  |     2 +
 crypto/external/bsd/openssl/dist/crypto/evp/p_lib.c                                    |     2 +-
 crypto/external/bsd/openssl/dist/crypto/include/internal/bn_int.h                      |     9 +-
 crypto/external/bsd/openssl/dist/crypto/init.c                                         |   135 +-
 crypto/external/bsd/openssl/dist/crypto/modes/asm/ghash-x86_64.pl                      |    14 +-
 crypto/external/bsd/openssl/dist/crypto/objects/obj_dat.h                              |     2 +-
 crypto/external/bsd/openssl/dist/crypto/objects/obj_dat.pl                             |     2 +-
 crypto/external/bsd/openssl/dist/crypto/objects/obj_xref.h                             |     2 +-
 crypto/external/bsd/openssl/dist/crypto/objects/objects.pl                             |     2 +-
 crypto/external/bsd/openssl/dist/crypto/objects/objxref.pl                             |     2 +-
 crypto/external/bsd/openssl/dist/crypto/pem/pem_info.c                                 |     4 +-
 crypto/external/bsd/openssl/dist/crypto/perlasm/x86_64-xlate.pl                        |    19 +-
 crypto/external/bsd/openssl/dist/crypto/poly1305/asm/poly1305-armv8.pl                 |     4 +-
 crypto/external/bsd/openssl/dist/crypto/ppc_arch.h                                     |     4 +-
 crypto/external/bsd/openssl/dist/crypto/rsa/rsa_ameth.c                                |     9 +-
 crypto/external/bsd/openssl/dist/crypto/rsa/rsa_ossl.c                                 |    17 +-
 crypto/external/bsd/openssl/dist/crypto/rsa/rsa_ssl.c                                  |   131 +-
 crypto/external/bsd/openssl/dist/crypto/rsa/rsa_x931g.c                                |     2 +
 crypto/external/bsd/openssl/dist/crypto/sha/asm/keccak1600-armv8.pl                    |    16 +-
 crypto/external/bsd/openssl/dist/crypto/sha/asm/sha512-armv8.pl                        |     4 +-
 crypto/external/bsd/openssl/dist/crypto/srp/srp_lib.c                                  |     6 +-
 crypto/external/bsd/openssl/dist/crypto/srp/srp_vfy.c                                  |    25 +-
 crypto/external/bsd/openssl/dist/crypto/x509/x_crl.c                                   |    14 +-
 crypto/external/bsd/openssl/dist/crypto/x509/x_pubkey.c                                |     3 +-
 crypto/external/bsd/openssl/dist/crypto/x509/x_x509.c                                  |    25 +-
 crypto/external/bsd/openssl/dist/demos/bio/accept.cnf                                  |     2 +-
 crypto/external/bsd/openssl/dist/demos/bio/connect.cnf                                 |     2 +-
 crypto/external/bsd/openssl/dist/demos/bio/descrip.mms                                 |     2 +-
 crypto/external/bsd/openssl/dist/demos/certs/README                                    |     2 +-
 crypto/external/bsd/openssl/dist/demos/certs/apps/mkxcerts.sh                          |     2 +-
 crypto/external/bsd/openssl/dist/demos/certs/mkcerts.sh                                |     2 +-
 crypto/external/bsd/openssl/dist/doc/HOWTO/certificates.txt                            |     2 +-
 crypto/external/bsd/openssl/dist/doc/HOWTO/proxy_certificates.txt                      |     2 +-
 crypto/external/bsd/openssl/dist/doc/fingerprints.txt                                  |     2 +-
 crypto/external/bsd/openssl/dist/doc/man1/ca.pod                                       |     6 +-
 crypto/external/bsd/openssl/dist/doc/man1/ciphers.pod                                  |     2 +-
 crypto/external/bsd/openssl/dist/doc/man1/cms.pod                                      |    10 +-
 crypto/external/bsd/openssl/dist/doc/man1/dgst.pod                                     |     6 +-
 crypto/external/bsd/openssl/dist/doc/man1/ec.pod                                       |     6 +-
 crypto/external/bsd/openssl/dist/doc/man1/enc.pod                                      |     2 +-
 crypto/external/bsd/openssl/dist/doc/man1/genpkey.pod                                  |     6 +-
 crypto/external/bsd/openssl/dist/doc/man1/ocsp.pod                                     |     2 +-
 crypto/external/bsd/openssl/dist/doc/man1/pkcs12.pod                                   |     5 +-
 crypto/external/bsd/openssl/dist/doc/man1/pkcs8.pod                                    |     2 +-
 crypto/external/bsd/openssl/dist/doc/man1/req.pod                                      |     2 +-
 crypto/external/bsd/openssl/dist/doc/man1/s_client.pod                                 |    30 +-
 crypto/external/bsd/openssl/dist/doc/man1/s_server.pod                                 |    29 +-
 crypto/external/bsd/openssl/dist/doc/man1/smime.pod                                    |     2 +-
 crypto/external/bsd/openssl/dist/doc/man1/storeutl.pod                                 |     2 +-
 crypto/external/bsd/openssl/dist/doc/man1/verify.pod                                   |     2 +-
 crypto/external/bsd/openssl/dist/doc/man1/x509.pod                                     |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/ASN1_INTEGER_get_int64.pod                   |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/ASYNC_WAIT_CTX_new.pod                       |     8 +-
 crypto/external/bsd/openssl/dist/doc/man3/ASYNC_start_job.pod                          |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/BIO_new_CMS.pod                              |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/BN_generate_prime.pod                        |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/BN_rand.pod                                  |     3 +-
 crypto/external/bsd/openssl/dist/doc/man3/BN_security_bits.pod                         |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/BUF_MEM_new.pod                              |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/CMS_get0_type.pod                            |     9 +-
 crypto/external/bsd/openssl/dist/doc/man3/CONF_modules_load_file.pod                   |    12 +-
 crypto/external/bsd/openssl/dist/doc/man3/CRYPTO_get_ex_new_index.pod                  |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/CTLOG_STORE_get0_log_by_id.pod               |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/DH_size.pod                                  |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/DTLS_get_data_mtu.pod                        |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/DTLS_set_timer_cb.pod                        |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/DTLSv1_listen.pod                            |     6 +-
 crypto/external/bsd/openssl/dist/doc/man3/EC_GROUP_copy.pod                            |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_DigestInit.pod                           |     8 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_DigestSignInit.pod                       |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_DigestVerifyInit.pod                     |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_EncryptInit.pod                          |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_CTX_ctrl.pod                        |     5 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_CTX_new.pod                         |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_asn1_get_count.pod                  |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_decrypt.pod                         |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_derive.pod                          |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_encrypt.pod                         |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_get_default_digest_nid.pod          |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_keygen.pod                          |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_new.pod                             |     9 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_print_private.pod                   |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_sign.pod                            |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_verify.pod                          |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_PKEY_verify_recover.pod                  |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/EVP_SignInit.pod                             |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/HMAC.pod                                     |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/OPENSSL_init_crypto.pod                      |    48 +-
 crypto/external/bsd/openssl/dist/doc/man3/OPENSSL_malloc.pod                           |     8 +-
 crypto/external/bsd/openssl/dist/doc/man3/OPENSSL_secure_malloc.pod                    |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/OSSL_STORE_INFO.pod                          |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/OSSL_STORE_LOADER.pod                        |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/OSSL_STORE_SEARCH.pod                        |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/OSSL_STORE_expect.pod                        |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/OSSL_STORE_open.pod                          |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/PEM_read_bio_ex.pod                          |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/PEM_write_bio_CMS_stream.pod                 |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/PEM_write_bio_PKCS7_stream.pod               |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/PKCS12_parse.pod                             |     3 +-
 crypto/external/bsd/openssl/dist/doc/man3/PKCS7_sign.pod                               |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/PKCS7_sign_add_signer.pod                    |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/RAND_bytes.pod                               |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/RIPEMD160_Init.pod                           |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/RSA_get0_key.pod                             |     1 +
 crypto/external/bsd/openssl/dist/doc/man3/RSA_padding_add_PKCS1_type_1.pod             |     7 +-
 crypto/external/bsd/openssl/dist/doc/man3/RSA_size.pod                                 |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CIPHER_get_name.pod                      |    14 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_COMP_add_compression_method.pod          |     5 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CONF_CTX_new.pod                         |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CONF_CTX_set1_prefix.pod                 |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CONF_CTX_set_flags.pod                   |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CONF_CTX_set_ssl_ctx.pod                 |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CONF_cmd.pod                             |    18 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CONF_cmd_argv.pod                        |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_add1_chain_cert.pod                  |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_config.pod                           |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_dane_enable.pod                      |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_get0_param.pod                       |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set0_CA_list.pod                     |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set1_curves.pod                      |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set1_verify_cert_store.pod           |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_ctlog_list_file.pod              |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_default_passwd_cb.pod            |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_info_callback.pod                |    16 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_mode.pod                         |    13 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_msg_callback.pod                 |     3 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_num_tickets.pod                  |     8 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_options.pod                      |     6 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_record_padding_callback.pod      |     6 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_security_level.pod               |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_session_ticket_cb.pod            |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_split_send_fragment.pod          |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_ssl_version.pod                  |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_tlsext_status_cb.pod             |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_CTX_set_tlsext_ticket_key_cb.pod         |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_SESSION_free.pod                         |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_SESSION_get0_cipher.pod                  |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_SESSION_get0_hostname.pod                |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_SESSION_get0_id_context.pod              |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_SESSION_get_protocol_version.pod         |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_SESSION_has_ticket.pod                   |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_SESSION_is_resumable.pod                 |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_SESSION_set1_id.pod                      |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_export_keying_material.pod               |     5 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_extension_supported.pod                  |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_get_all_async_fds.pod                    |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_get_error.pod                            |    17 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_get_version.pod                          |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_key_update.pod                           |     6 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_read.pod                                 |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_read_early_data.pod                      |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_set1_host.pod                            |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_shutdown.pod                             |     4 +
 crypto/external/bsd/openssl/dist/doc/man3/SSL_want.pod                                 |     3 +-
 crypto/external/bsd/openssl/dist/doc/man3/SSL_write.pod                                |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/UI_create_method.pod                         |     5 +-
 crypto/external/bsd/openssl/dist/doc/man3/UI_new.pod                                   |     5 +-
 crypto/external/bsd/openssl/dist/doc/man3/X509_NAME_ENTRY_get_object.pod               |     3 -
 crypto/external/bsd/openssl/dist/doc/man3/X509_STORE_CTX_new.pod                       |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/X509_STORE_CTX_set_verify_cb.pod             |     3 +-
 crypto/external/bsd/openssl/dist/doc/man3/X509_STORE_new.pod                           |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/X509_STORE_set_verify_cb_func.pod            |     7 +-
 crypto/external/bsd/openssl/dist/doc/man3/X509_VERIFY_PARAM_set_flags.pod              |     8 +-
 crypto/external/bsd/openssl/dist/doc/man3/X509_get0_signature.pod                      |    10 +-
 crypto/external/bsd/openssl/dist/doc/man3/X509_get_serialNumber.pod                    |     5 +-
 crypto/external/bsd/openssl/dist/doc/man3/X509_get_subject_name.pod                    |     4 +-
 crypto/external/bsd/openssl/dist/doc/man3/X509_sign.pod                                |     8 +-
 crypto/external/bsd/openssl/dist/doc/man3/d2i_PrivateKey.pod                           |    18 +-
 crypto/external/bsd/openssl/dist/doc/man3/i2d_CMS_bio_stream.pod                       |     2 +-
 crypto/external/bsd/openssl/dist/doc/man3/i2d_PKCS7_bio_stream.pod                     |     2 +-
 crypto/external/bsd/openssl/dist/doc/man5/config.pod                                   |     9 +-
 crypto/external/bsd/openssl/dist/doc/man7/ct.pod                                       |     4 +-
 crypto/external/bsd/openssl/dist/engines/e_dasync.c                                    |    21 +-
 crypto/external/bsd/openssl/dist/include/internal/conf.h                               |    11 +-
 crypto/external/bsd/openssl/dist/include/internal/constant_time_locl.h                 |     6 +
 crypto/external/bsd/openssl/dist/include/internal/cryptlib.h                           |     4 +-
 crypto/external/bsd/openssl/dist/include/internal/sockets.h                            |     8 +-
 crypto/external/bsd/openssl/dist/include/internal/thread_once.h                        |    94 +-
 crypto/external/bsd/openssl/dist/include/openssl/crypto.h                              |    18 +-
 crypto/external/bsd/openssl/dist/include/openssl/e_os2.h                               |     9 +-
 crypto/external/bsd/openssl/dist/include/openssl/ecerr.h                               |     6 +-
 crypto/external/bsd/openssl/dist/include/openssl/evp.h                                 |    13 +-
 crypto/external/bsd/openssl/dist/include/openssl/evperr.h                              |     1 +
 crypto/external/bsd/openssl/dist/include/openssl/lhash.h                               |    55 +-
 crypto/external/bsd/openssl/dist/include/openssl/obj_mac.h                             |     2 +-
 crypto/external/bsd/openssl/dist/include/openssl/opensslv.h                            |     4 +-
 crypto/external/bsd/openssl/dist/include/openssl/ssl.h                                 |    35 +-
 crypto/external/bsd/openssl/dist/include/openssl/sslerr.h                              |     3 +-
 crypto/external/bsd/openssl/dist/include/openssl/x509_vfy.h                            |     6 +-
 crypto/external/bsd/openssl/dist/ms/uplink.c                                           |     4 +-
 crypto/external/bsd/openssl/dist/ssl/record/rec_layer_d1.c                             |    15 +-
 crypto/external/bsd/openssl/dist/ssl/record/rec_layer_s3.c                             |    10 +-
 crypto/external/bsd/openssl/dist/ssl/ssl_init.c                                        |    19 +-
 crypto/external/bsd/openssl/dist/ssl/statem/extensions.c                               |    17 +-
 crypto/external/bsd/openssl/dist/ssl/statem/statem.c                                   |     8 +-
 crypto/external/bsd/openssl/dist/ssl/statem/statem_clnt.c                              |    30 +-
 crypto/external/bsd/openssl/dist/ssl/statem/statem_lib.c                               |    44 +-
 crypto/external/bsd/openssl/dist/ssl/statem/statem_locl.h                              |     5 +-
 crypto/external/bsd/openssl/dist/ssl/statem/statem_srvr.c                              |    39 +-
 crypto/external/bsd/openssl/dist/ssl/tls13_enc.c                                       |    81 +-
 crypto/external/bsd/openssl/dist/test/README.external                                  |     2 +-
 crypto/external/bsd/openssl/dist/test/bio_memleak_test.c                               |    54 +
 crypto/external/bsd/openssl/dist/test/build.info                                       |    13 +-
 crypto/external/bsd/openssl/dist/test/certs/root-cert-rsa2.pem                         |    18 +
 crypto/external/bsd/openssl/dist/test/cipherlist_test.c                                |    37 +-
 crypto/external/bsd/openssl/dist/test/clienthellotest.c                                |     5 +-
 crypto/external/bsd/openssl/dist/test/crltest.c                                        |    17 +-
 crypto/external/bsd/openssl/dist/test/drbg_cavs_test.c                                 |    29 +-
 crypto/external/bsd/openssl/dist/test/drbgtest.c                                       |    18 +-
 crypto/external/bsd/openssl/dist/test/dtlstest.c                                       |    16 +-
 crypto/external/bsd/openssl/dist/test/ec_internal_test.c                               |   205 +
 crypto/external/bsd/openssl/dist/test/handshake_helper.c                               |    35 +-
 crypto/external/bsd/openssl/dist/test/rdrand_sanitytest.c                              |     6 +-
 crypto/external/bsd/openssl/dist/test/recipes/02-test_errstr.t                         |   121 +
 crypto/external/bsd/openssl/dist/test/recipes/03-test_internal_ec.t                    |    19 +
 crypto/external/bsd/openssl/dist/test/recipes/25-test_verify.t                         |     4 +-
 crypto/external/bsd/openssl/dist/test/recipes/30-test_evp_data/evppkey.txt             |    15 +
 crypto/external/bsd/openssl/dist/test/recipes/70-test_sslextension.t                   |    34 +-
 crypto/external/bsd/openssl/dist/test/recipes/70-test_sslrecords.t                     |   104 +-
 crypto/external/bsd/openssl/dist/test/recipes/80-test_ssl_new.t                        |     5 +-
 crypto/external/bsd/openssl/dist/test/recipes/90-test_bio_memleak.t                    |    12 +
 crypto/external/bsd/openssl/dist/test/recipes/90-test_gost.t                           |     8 +-
 crypto/external/bsd/openssl/dist/test/recipes/90-test_includes.t                       |     4 +-
 crypto/external/bsd/openssl/dist/test/recipes/90-test_includes_data/includes-eq-ws.cnf |     5 +
 crypto/external/bsd/openssl/dist/test/recipes/90-test_includes_data/includes-eq.cnf    |     5 +
 crypto/external/bsd/openssl/dist/test/recipes/90-test_shlibload.t                      |    49 +-
 crypto/external/bsd/openssl/dist/test/servername_test.c                                |     4 +-
 crypto/external/bsd/openssl/dist/test/shlibloadtest.c                                  |   209 +-
 crypto/external/bsd/openssl/dist/test/ssl-tests/29-dtls-sctp-label-bug.conf            |   116 +
 crypto/external/bsd/openssl/dist/test/ssl-tests/29-dtls-sctp-label-bug.conf.in         |    67 +
 crypto/external/bsd/openssl/dist/test/ssl_test_ctx.c                                   |     6 +-
 crypto/external/bsd/openssl/dist/test/ssl_test_ctx.h                                   |     6 +-
 crypto/external/bsd/openssl/dist/test/sslapitest.c                                     |   154 +-
 crypto/external/bsd/openssl/dist/test/ssltest_old.c                                    |    53 +-
 crypto/external/bsd/openssl/dist/test/ssltestlib.c                                     |    53 +-
 crypto/external/bsd/openssl/dist/test/ssltestlib.h                                     |     5 +-
 crypto/external/bsd/openssl/dist/test/tls13secretstest.c                               |     6 +-
 crypto/external/bsd/openssl/dist/test/x509aux.c                                        |    11 +-
 crypto/external/bsd/openssl/dist/util/indent.pro                                       |     2 +-
 crypto/external/bsd/openssl/dist/util/libcrypto.num                                    |     2 +
 crypto/external/bsd/openssl/dist/util/local_shlib.com.in                               |     2 +-
 crypto/external/bsd/openssl/dist/util/openssl-format-source                            |    30 +-
 crypto/external/bsd/openssl/dist/util/perl/TLSProxy/Alert.pm                           |     4 +-
 crypto/external/bsd/openssl/dist/util/perl/TLSProxy/Certificate.pm                     |     7 +-
 crypto/external/bsd/openssl/dist/util/perl/TLSProxy/ClientHello.pm                     |     9 +-
 crypto/external/bsd/openssl/dist/util/perl/TLSProxy/EncryptedExtensions.pm             |     7 +-
 crypto/external/bsd/openssl/dist/util/perl/TLSProxy/Message.pm                         |    22 +-
 crypto/external/bsd/openssl/dist/util/perl/TLSProxy/Proxy.pm                           |     4 +-
 crypto/external/bsd/openssl/dist/util/perl/TLSProxy/Record.pm                          |     4 +-
 crypto/external/bsd/openssl/dist/util/perl/TLSProxy/ServerHello.pm                     |     8 +-
 crypto/external/bsd/openssl/dist/util/perl/TLSProxy/ServerKeyExchange.pm               |     4 +-
 324 files changed, 5782 insertions(+), 3509 deletions(-)

diffs (truncated from 16744 to 300 lines):

diff -r 2b43aec9b798 -r da20f0ee87f8 crypto/external/bsd/openssl/dist/CONTRIBUTING
--- a/crypto/external/bsd/openssl/dist/CONTRIBUTING     Tue Mar 12 15:14:02 2019 +0000
+++ b/crypto/external/bsd/openssl/dist/CONTRIBUTING     Tue Mar 12 16:44:04 2019 +0000
@@ -57,7 +57,7 @@
     7.  For user visible changes (API changes, behaviour changes, ...),
     consider adding a note in CHANGES.  This could be a summarising
     description of the change, and could explain the grander details.
-    Have a look through existing entries for inspiration. 
+    Have a look through existing entries for inspiration.
     Please note that this is NOT simply a copy of git-log oneliners.
     Also note that security fixes get an entry in CHANGES.
     This file helps users get more in depth information of what comes
diff -r 2b43aec9b798 -r da20f0ee87f8 crypto/external/bsd/openssl/dist/Configurations/00-base-templates.conf
--- a/crypto/external/bsd/openssl/dist/Configurations/00-base-templates.conf    Tue Mar 12 15:14:02 2019 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/00-base-templates.conf    Tue Mar 12 16:44:04 2019 +0000
@@ -306,7 +306,7 @@
        sha1_asm_src    => "sha1-armv4-large.S sha256-armv4.S sha512-armv4.S",
        modes_asm_src   => "ghash-armv4.S ghashv8-armx.S",
        chacha_asm_src  => "chacha-armv4.S",
-       poly1305_asm_src=> "poly1305-armv4.S", 
+       poly1305_asm_src=> "poly1305-armv4.S",
        keccak1600_asm_src      => "keccak1600-armv4.S",
        perlasm_scheme  => "void"
     },
diff -r 2b43aec9b798 -r da20f0ee87f8 crypto/external/bsd/openssl/dist/Configurations/10-main.conf
--- a/crypto/external/bsd/openssl/dist/Configurations/10-main.conf      Tue Mar 12 15:14:02 2019 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/10-main.conf      Tue Mar 12 16:44:04 2019 +0000
@@ -360,7 +360,7 @@
         inherit_from     => [ "BASE_unix" ],
         template         => 1,
         cppflags         => threads("-D_SGI_MP_SOURCE"),
-        lib_cppflags     => "-DB_ENDIAN -DBN_DIV3W",
+        lib_cppflags     => "-DB_ENDIAN",
         ex_libs          => add(threads("-lpthread")),
         thread_scheme    => "pthreads",
         dso_scheme       => "dlfcn",
@@ -651,7 +651,7 @@
         dso_scheme       => "dlfcn",
         shared_target    => "linux-shared",
         shared_cflag     => "-fPIC",
-        shared_ldflag    => "-Wl,-znodelete",
+        shared_ldflag    => sub { $disabled{pinshared} ? () : "-Wl,-znodelete" },
         shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
         enable           => [ "afalgeng" ],
     },
@@ -733,7 +733,6 @@
         inherit_from     => [ "linux-generic32", asm("mips32_asm") ],
         cflags           => add("-mabi=32"),
         cxxflags         => add("-mabi=32"),
-        lib_cppflags     => add("-DBN_DIV3W"),
         perlasm_scheme   => "o32",
     },
     # mips32 and mips64 below refer to contemporary MIPS Architecture
@@ -742,7 +741,6 @@
         inherit_from     => [ "linux-generic32", asm("mips64_asm") ],
         cflags           => add("-mabi=n32"),
         cxxflags         => add("-mabi=n32"),
-        lib_cppflags     => add("-DBN_DIV3W"),
         bn_ops           => "SIXTY_FOUR_BIT RC4_CHAR",
         perlasm_scheme   => "n32",
         multilib         => "32",
@@ -751,7 +749,6 @@
         inherit_from     => [ "linux-generic64", asm("mips64_asm") ],
         cflags           => add("-mabi=64"),
         cxxflags         => add("-mabi=64"),
-        lib_cppflags     => add("-DBN_DIV3W"),
         perlasm_scheme   => "64",
         multilib         => "64",
     },
@@ -1115,7 +1112,7 @@
         dso_scheme       => "dlfcn",
         shared_target    => "self",
         module_ldflags   => "-Wl,-G,-bsymbolic,-bexpall",
-        shared_ldflag    => "-Wl,-G,-bsymbolic",
+        shared_ldflag    => "-Wl,-G,-bsymbolic,-bnoentry",
         shared_defflag   => "-Wl,-bE:",
         shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
         dso_extension    => ".so",
@@ -1747,6 +1744,8 @@
         asflags          => sub { vms_info()->{asflags} },
         perlasm_scheme   => sub { vms_info()->{perlasm_scheme} },
 
+        disable          => add('pinshared'),
+
         apps_aux_src     => "vms_term_sock.c",
         apps_init_src    => "vms_decc_init.c",
     },
@@ -1782,7 +1781,7 @@
     },
     "vms-ia64" => {
         inherit_from     => [ "vms-generic",
-                              sub { vms_info()->{as}
+                              sub { vms_info()->{AS}
                                         ? asm("ia64_asm")->() : () } ],
         bn_ops           => "SIXTY_FOUR_BIT RC4_INT",
         pointer_size     => "",
diff -r 2b43aec9b798 -r da20f0ee87f8 crypto/external/bsd/openssl/dist/Configurations/15-android.conf
--- a/crypto/external/bsd/openssl/dist/Configurations/15-android.conf   Tue Mar 12 15:14:02 2019 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/15-android.conf   Tue Mar 12 16:44:04 2019 +0000
@@ -22,13 +22,19 @@
                 return $android_ndk = { bn_ops => "BN_AUTO" };
             }
 
-            my $ndk = $ENV{ANDROID_NDK};
-            die "\$ANDROID_NDK is not defined"  if (!$ndk);
+            my $ndk_var;
+            my $ndk;
+            foreach (qw(ANDROID_NDK_HOME ANDROID_NDK)) {
+                $ndk_var = $_;
+                $ndk = $ENV{$ndk_var};
+                last if defined $ndk;
+            }
+            die "\$ANDROID_NDK_HOME is not defined"  if (!$ndk);
             if (!-d "$ndk/platforms" && !-f "$ndk/AndroidVersion.txt") {
                 # $ndk/platforms is traditional "all-inclusive" NDK, while
                 # $ndk/AndroidVersion.txt is so-called standalone toolchain
                 # tailored for specific target down to API level.
-                die "\$ANDROID_NDK=$ndk is invalid";
+                die "\$ANDROID_NDK_HOME=$ndk is invalid";
             }
             $ndk = canonpath($ndk);
 
@@ -90,7 +96,7 @@
                 (my $tridefault = $triarch) =~ s/^arm-/$arm-/;
                 (my $tritools   = $triarch) =~ s/(?:x|i6)86(_64)?-.*/x86$1/;
                 $cflags .= " -target $tridefault "
-                        .  "-gcc-toolchain \$(ANDROID_NDK)/toolchains"
+                        .  "-gcc-toolchain \$($ndk_var)/toolchains"
                         .  "/$tritools-4.9/prebuilt/$host";
                 $user{CC} = "clang" if ($user{CC} !~ m|clang|);
                 $user{CROSS_COMPILE} = undef;
@@ -127,13 +133,13 @@
                 die "no $incroot/$triarch" if (!-d "$incroot/$triarch");
                 $incroot =~ s|^$ndk/||;
                 $cppflags  = "-D__ANDROID_API__=$api";
-                $cppflags .= " -isystem \$(ANDROID_NDK)/$incroot/$triarch";
-                $cppflags .= " -isystem \$(ANDROID_NDK)/$incroot";
+                $cppflags .= " -isystem \$($ndk_var)/$incroot/$triarch";
+                $cppflags .= " -isystem \$($ndk_var)/$incroot";
             }
 
             $sysroot =~ s|^$ndk/||;
             $android_ndk = {
-                cflags   => "$cflags --sysroot=\$(ANDROID_NDK)/$sysroot",
+                cflags   => "$cflags --sysroot=\$($ndk_var)/$sysroot",
                 cppflags => $cppflags,
                 bn_ops   => $arch =~ m/64$/ ? "SIXTY_FOUR_BIT_LONG"
                                             : "BN_LLONG",
diff -r 2b43aec9b798 -r da20f0ee87f8 crypto/external/bsd/openssl/dist/Configurations/50-win-onecore.conf
--- a/crypto/external/bsd/openssl/dist/Configurations/50-win-onecore.conf       Tue Mar 12 15:14:02 2019 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/50-win-onecore.conf       Tue Mar 12 16:44:04 2019 +0000
@@ -4,7 +4,7 @@
 # Mobile[?] Windows editions. It's a set up "umbrella" libraries that
 # export subset of Win32 API that are common to all Windows 10 devices.
 #
-# OneCore Configuration temporarly dedicated for console applications 
+# OneCore Configuration temporarly dedicated for console applications
 # due to disabled event logging, which is incompatible with one core.
 # Error messages are provided via standard error only.
 # TODO: extend error handling to use ETW based eventing
diff -r 2b43aec9b798 -r da20f0ee87f8 crypto/external/bsd/openssl/dist/Configurations/README
--- a/crypto/external/bsd/openssl/dist/Configurations/README    Tue Mar 12 15:14:02 2019 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/README    Tue Mar 12 16:44:04 2019 +0000
@@ -118,7 +118,7 @@
                            '<unistd.h>'.  This is very rarely needed.
 
         shared_extension => File name extension used for shared
-                            libraries. 
+                            libraries.
         obj_extension   => File name extension used for object files.
                            On unix, this defaults to ".o" (NOTE: this
                            is here for future use, it's not
@@ -518,7 +518,7 @@
 not to generate them with the use of OVERRIDES, for example:
 
     SOURCE[libfoo]=foo.c bar.c
-    
+
     OVERRIDES=bar.o
     BEGINRAW[Makefile(unix)]
     bar.o: bar.c
diff -r 2b43aec9b798 -r da20f0ee87f8 crypto/external/bsd/openssl/dist/Configurations/README.design
--- a/crypto/external/bsd/openssl/dist/Configurations/README.design     Tue Mar 12 15:14:02 2019 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/README.design     Tue Mar 12 16:44:04 2019 +0000
@@ -86,7 +86,7 @@
     LIBS=../libcrypto
     SOURCE[../libcrypto]=aes.c evp.c cversion.c
     DEPEND[cversion.o]=buildinf.h
-    
+
     GENERATE[buildinf.h]=../util/mkbuildinf.pl "$(CC) $(CFLAGS)" "$(PLATFORM)"
     DEPEND[buildinf.h]=../Makefile
     DEPEND[../util/mkbuildinf.pl]=../util/Foo.pm
@@ -101,7 +101,7 @@
 This build.info file informs us that 'libcrypto' is built from a few
 source files, 'crypto/aes.c', 'crypto/evp.c' and 'crypto/cversion.c'.
 It also shows us that building the object file inferred from
-'crypto/cversion.c' depends on 'crypto/buildinf.h'.  Finally, it 
+'crypto/cversion.c' depends on 'crypto/buildinf.h'.  Finally, it
 also shows the possibility to declare how some files are generated
 using some script, in this case a perl script, and how such scripts
 can be declared to depend on other files, in this case a perl module.
@@ -152,7 +152,7 @@
     SOURCE[libssl]=ssl/tls.c
     INCLUDE[libssl]=include
     DEPEND[libssl]=libcrypto
-    
+
     PROGRAMS=apps/openssl
     SOURCE[apps/openssl]=apps/openssl.c
     INCLUDE[apps/openssl]=. include
@@ -167,7 +167,7 @@
     SOURCE[engines/ossltest]=engines/e_ossltest.c
     DEPEND[engines/ossltest]=libcrypto.a
     INCLUDE[engines/ossltest]=include
-    
+
     GENERATE[crypto/buildinf.h]=util/mkbuildinf.pl "$(CC) $(CFLAGS)" "$(PLATFORM)"
     DEPEND[crypto/buildinf.h]=Makefile
     DEPEND[util/mkbuildinf.pl]=util/Foo.pm
diff -r 2b43aec9b798 -r da20f0ee87f8 crypto/external/bsd/openssl/dist/Configurations/descrip.mms.tmpl
--- a/crypto/external/bsd/openssl/dist/Configurations/descrip.mms.tmpl  Tue Mar 12 15:14:02 2019 +0000
+++ b/crypto/external/bsd/openssl/dist/Configurations/descrip.mms.tmpl  Tue Mar 12 16:44:04 2019 +0000
@@ -795,10 +795,10 @@
        $generator \$\@-S
         \@ $incs_on
        PIPE \$(CPP) $cppflags \$\@-S | -
-        \$(PERL) -ne "/^#(\\s*line)?\\s*[0-9]+\\s+""/ or print" > \$\@-i
+             \$(PERL) -ne "/^#(\\s*line)?\\s*[0-9]+\\s+""/ or print" > \$\@-i
         \@ $incs_off
         RENAME \$\@-i \$\@
-        DELETE \$\@-S
+        DELETE \$\@-S;
 EOF
               }
               # Otherwise....
@@ -840,19 +840,6 @@
       my $before = $unified_info{before}->{$obj.".OBJ"} || "\@ !";
       my $after = $unified_info{after}->{$obj.".OBJ"} || "\@ !";
 
-      if ($srcs[0] =~ /\.asm$/) {
-          my $asflags = { lib => ' $(LIB_ASFLAGS)',
-                         dso => ' $(DSO_ASFLAGS)',
-                         bin => ' $(BIN_ASFLAGS)' } -> {$args{intent}};
-          return <<"EOF";
-$obj.OBJ : $deps
-        ${before}
-        SET DEFAULT $forward
-        \$(AS) $asflags \$(ASOUTFLAG)${objd}${objn}.OBJ $srcs
-        SET DEFAULT $backward
-EOF
-      }
-
       my $cflags;
       if ($args{installed}) {
           $cflags = { lib => '$(LIB_CFLAGS)',
@@ -866,6 +853,9 @@
       $cflags .= { lib => '$(LIB_CPPFLAGS)',
                   dso => '$(DSO_CPPFLAGS)',
                   bin => '$(BIN_CPPFLAGS)' } -> {$args{intent}};
+      my $asflags = { lib => ' $(LIB_ASFLAGS)',
+                     dso => ' $(DSO_ASFLAGS)',
+                     bin => ' $(BIN_ASFLAGS)' } -> {$args{intent}};
 
       my @incs_cmds = includes({ lib => '$(LIB_INCLUDES)',
                                  dso => '$(DSO_INCLUDES)',
@@ -877,6 +867,34 @@
                                } @{$args{incs}});
       my $incs_on = join("\n\t\@ ", @{$incs_cmds[0]}) || '!';
       my $incs_off = join("\n\t\@ ", @{$incs_cmds[1]}) || '!';
+
+      if ($srcs[0] =~ /\.asm$/) {
+          return <<"EOF";
+$obj.OBJ : $deps
+        ${before}
+        SET DEFAULT $forward
+        \$(AS) $asflags \$(ASOUTFLAG)${objd}${objn}.OBJ $srcs
+        SET DEFAULT $backward
+        ${after}
+        - PURGE $obj.OBJ
+EOF
+      } elsif ($srcs[0] =~ /.S$/) {
+         return <<"EOF";
+$obj.OBJ : $deps
+        ${before}
+        SET DEFAULT $forward
+        \@ $incs_on
+        PIPE \$(CPP) ${cflags} $srcs | -
+             \$(PERL) -ne "/^#(\\s*line)?\\s*[0-9]+\\s+""/ or print" -
+             > ${objd}${objn}.asm
+        \@ $incs_off
+        SET DEFAULT $backward
+        ${after}
+        \$(AS) $asflags \$(ASOUTFLAG)$obj.OBJ $obj.asm
+        - PURGE $obj.OBJ
+EOF
+      }
+
       my $depbuild = $disabled{makedepend} ? ""
           : " /MMS=(FILE=${objd}${objn}.D,TARGET=$obj.OBJ)";




Home | Main Index | Thread Index | Old Index