The branch master has been updated via 284d19c2ced0264bd46de61718aa4a60efa8d175 (commit) via 26a053d195d5cc8a5cd648da3f05d3ff0e47f776 (commit) via ac4033d658e4dc210ed4552b88069b57532ba3d7 (commit) from ff825807bc9bda996058df070f8ec23f7167e1a6 (commit)
- Log ----------------------------------------------------------------- commit 284d19c2ced0264bd46de61718aa4a60efa8d175 Author: Richard Levitte <levi...@openssl.org> Date: Fri Mar 1 11:54:07 2019 +0100 Add advice on setting CXX at the same time as CC Reviewed-by: Paul Dale <paul.d...@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8370) commit 26a053d195d5cc8a5cd648da3f05d3ff0e47f776 Author: Richard Levitte <levi...@openssl.org> Date: Thu Feb 28 13:35:32 2019 +0100 Travis: use enable-buildtest-c++ Reviewed-by: Paul Dale <paul.d...@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8370) commit ac4033d658e4dc210ed4552b88069b57532ba3d7 Author: Richard Levitte <levi...@openssl.org> Date: Thu Feb 28 13:28:43 2019 +0100 Configure: make C++ build tests optional and configurable Disabled by default Fixes #8360 Reviewed-by: Paul Dale <paul.d...@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8370) ----------------------------------------------------------------------- Summary of changes: .travis.yml | 2 +- CHANGES | 8 ++++++++ Configure | 6 ++++-- INSTALL | 18 ++++++++++++++++++ test/build.info | 2 +- test/certs/root-ed25519.privkey.pem | 3 +++ test/certs/root-ed25519.pubkey.pem | 3 +++ 7 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 test/certs/root-ed25519.privkey.pem create mode 100644 test/certs/root-ed25519.pubkey.pem diff --git a/.travis.yml b/.travis.yml index 3184308..c79040d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,7 @@ compiler: env: - CONFIG_OPTS="" DESTDIR="_install" - CONFIG_OPTS="no-asm -Werror --debug no-afalgeng no-shared enable-crypto-mdebug enable-rc5 enable-md2" - - CONFIG_OPTS="no-asm no-makedepend --strict-warnings -D_DEFAULT_SOURCE" BUILDONLY="yes" CHECKDOCS="yes" GENERATE="yes" CPPFLAGS="-ansi" + - CONFIG_OPTS="no-asm no-makedepend enable-buildtest-c++ --strict-warnings -D_DEFAULT_SOURCE" BUILDONLY="yes" CHECKDOCS="yes" GENERATE="yes" CPPFLAGS="-ansi" matrix: include: diff --git a/CHANGES b/CHANGES index 5fcf667..ff61ff4 100644 --- a/CHANGES +++ b/CHANGES @@ -9,6 +9,14 @@ Changes between 1.1.1 and 3.0.0 [xx XXX xxxx] + *) Added build tests for C++. These are generated files that only do one + thing, to include one public OpenSSL head file each. This tests that + the public header files can be usefully included in a C++ application. + + This test isn't enabled by default. It can be enabled with the option + 'enable-buildtest-c++'. + [Richard Levitte] + *) Added property based algorithm implementation selection framework to the core. [Paul Dale] diff --git a/Configure b/Configure index 0c9037b..707e8b9 100755 --- a/Configure +++ b/Configure @@ -341,6 +341,7 @@ my @disablables = ( "autoload-config", "bf", "blake2", + "buildtest-c++", "camellia", "capieng", "cast", @@ -444,6 +445,7 @@ my %deprecated_disablables = ( our %disabled = ( # "what" => "comment" "asan" => "default", + "buildtest-c++" => "default", "crypto-mdebug" => "default", "crypto-mdebug-backtrace" => "default", "devcryptoeng" => "default", @@ -1208,8 +1210,8 @@ foreach my $what (sort keys %disabled) { $config{options} .= " no-$what"; - if (!grep { $what eq $_ } ( 'dso', 'threads', 'shared', 'pic', - 'dynamic-engine', 'makedepend', + if (!grep { $what eq $_ } ( 'buildtest-c++', 'dso', 'threads', 'shared', + 'pic', 'dynamic-engine', 'makedepend', 'zlib-dynamic', 'zlib', 'sse2' )) { (my $WHAT = uc $what) =~ s|-|_|g; my $skipdir = $what; diff --git a/INSTALL b/INSTALL index be0ce9d..d8c5dc5 100644 --- a/INSTALL +++ b/INSTALL @@ -296,6 +296,19 @@ Typically OpenSSL will automatically load a system config file which configures default ssl options. + enable-buildtest-c++ + While testing, generate C++ buildtest files that + simply check that the public OpenSSL header files + are usable standalone with C++. + + Enabling this option demands extra care. For any + compiler flag given directly as configuration + option, you must ensure that it's valid for both + the C and the C++ compiler. If not, the C++ build + test will most likely break. As an alternative, + you can use the language specific variables, CFLAGS + and CXXFLAGS. + no-capieng Don't build the CAPI engine. This option will be forced if on a platform that does not support CAPI. @@ -676,6 +689,11 @@ CC=gcc CROSS_COMPILE=x86_64-w64-mingw32- \ ./config -DCOOKIE + If CC is set, it is advisable to also set CXX to ensure + both C and C++ compilers are in the same "family". This + becomes relevant with 'enable-external-tests' and + 'enable-buildtest-c++'. + reconf reconfigure Reconfigure from earlier data. This fetches the previous diff --git a/test/build.info b/test/build.info index 372f9be..5bf6fd0 100644 --- a/test/build.info +++ b/test/build.info @@ -602,7 +602,7 @@ ENDIF INCLUDE[buildtest_c_$name]=../include DEPEND[buildtest_c_$name]=../libssl ../libcrypto _____ - $OUT .= <<"_____" if $config{CXX}; + $OUT .= <<"_____" if $config{CXX} && !$disabled{"buildtest-c++"}; PROGRAMS{noinst}=buildtest_cc_$name SOURCE[buildtest_cc_$name]=buildtest_$name.cc diff --git a/test/certs/root-ed25519.privkey.pem b/test/certs/root-ed25519.privkey.pem new file mode 100644 index 0000000..e447080 --- /dev/null +++ b/test/certs/root-ed25519.privkey.pem @@ -0,0 +1,3 @@ +-----BEGIN PRIVATE KEY----- +MC4CAQAwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC +-----END PRIVATE KEY----- diff --git a/test/certs/root-ed25519.pubkey.pem b/test/certs/root-ed25519.pubkey.pem new file mode 100644 index 0000000..41b0218 --- /dev/null +++ b/test/certs/root-ed25519.pubkey.pem @@ -0,0 +1,3 @@ +-----BEGIN PUBLIC KEY----- +MCowBQYDK2VwAyEAGb9ECWmEzf6FQbrBZ9w7lshQhqowtrbLDFw4rXAxZuE= +-----END PUBLIC KEY-----