[openssl] master update
Richard Levitte
levitte at openssl.org
Wed Feb 27 17:49:55 UTC 2019
The branch master has been updated
via 8e7984e5783877c58cddc7b4e668401580ab4467 (commit)
via 874f785988c17991051d36a0407a87b36c463a94 (commit)
via e373c70a3e535b560f6b6bade914a724aa975c55 (commit)
via 9f27d4bf32c0465270e1922365b21825a0f7a42a (commit)
from 4ca00f934f0b86dc1112c360f4b2ce3bd7ab8c93 (commit)
- Log -----------------------------------------------------------------
commit 8e7984e5783877c58cddc7b4e668401580ab4467
Author: Richard Levitte <levitte at openssl.org>
Date: Tue Feb 26 23:18:02 2019 +0100
Configure: support a few more "make variables" defaulting from env
CFLAGS, CXXFLAGS, CPPFLAGS, LDFLAGS, and LDLIBS
Reviewed-by: Paul Dale <paul.dale at oracle.com>
(Merged from https://github.com/openssl/openssl/pull/8325)
commit 874f785988c17991051d36a0407a87b36c463a94
Author: Richard Levitte <levitte at openssl.org>
Date: Tue Feb 26 09:34:00 2019 +0100
.travis.yml: change -std=c89 to -ansi
For C, -ansi is equivalent to -std=c90
For C++, -ansi is equivalent to -std=c++98
We also place -ansi in CPPFLAGS instead of the usual command line config,
to avoid getting it when linking (clang complains)
Reviewed-by: Paul Dale <paul.dale at oracle.com>
(Merged from https://github.com/openssl/openssl/pull/8325)
commit e373c70a3e535b560f6b6bade914a724aa975c55
Author: Richard Levitte <levitte at openssl.org>
Date: Tue Feb 26 09:32:52 2019 +0100
Configuration: divide devteam flags into language specific sets
Some of the devteam flags are not for C++
Reviewed-by: Paul Dale <paul.dale at oracle.com>
(Merged from https://github.com/openssl/openssl/pull/8325)
commit 9f27d4bf32c0465270e1922365b21825a0f7a42a
Author: Richard Levitte <levitte at openssl.org>
Date: Mon Feb 25 11:43:00 2019 +0100
Do buildtests on our public header files with C++ as well
This ensures that we don't mistakenly use C++ keywords anywhere public.
Related to #8313
Reviewed-by: Paul Dale <paul.dale at oracle.com>
(Merged from https://github.com/openssl/openssl/pull/8325)
-----------------------------------------------------------------------
Summary of changes:
.travis.yml | 2 +-
Configurations/90-team.norelease.conf | 10 ++-
Configure | 117 ++++++++++++++++++++--------------
test/build.info | 16 +++--
4 files changed, 90 insertions(+), 55 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 0124368..3184308 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 -std=c89 -D_DEFAULT_SOURCE" BUILDONLY="yes" CHECKDOCS="yes" GENERATE="yes"
+ - CONFIG_OPTS="no-asm no-makedepend --strict-warnings -D_DEFAULT_SOURCE" BUILDONLY="yes" CHECKDOCS="yes" GENERATE="yes" CPPFLAGS="-ansi"
matrix:
include:
diff --git a/Configurations/90-team.norelease.conf b/Configurations/90-team.norelease.conf
index 7849fdb..77dad97 100644
--- a/Configurations/90-team.norelease.conf
+++ b/Configurations/90-team.norelease.conf
@@ -18,7 +18,8 @@ my %targets = (
"debug-erbridge" => {
inherit_from => [ 'BASE_unix', "x86_64_asm" ],
cc => "gcc",
- cflags => combine("$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -m64 -DL_ENDIAN -DTERMIO -g",
+ cflags => combine(join(' ', @{$gcc_devteam_warn{CFLAGS}}),
+ "-DBN_DEBUG -DCONF_DEBUG -m64 -DL_ENDIAN -DTERMIO -g",
threads("-D_REENTRANT")),
ex_libs => add(" ","-ldl"),
bn_ops => "SIXTY_FOUR_BIT_LONG",
@@ -80,7 +81,8 @@ my %targets = (
"debug-test-64-clang" => {
inherit_from => [ 'BASE_unix', "x86_64_asm" ],
cc => "clang",
- cflags => combine("$gcc_devteam_warn -Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
+ cflags => combine(join(' ', @{$gcc_devteam_warn{CFLAGS}}),
+ "-Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
threads("${BSDthreads}")),
bn_ops => "SIXTY_FOUR_BIT_LONG",
thread_scheme => "pthreads",
@@ -92,7 +94,9 @@ my %targets = (
"darwin64-debug-test-64-clang" => {
inherit_from => [ 'BASE_unix', "x86_64_asm" ],
cc => "clang",
- cflags => combine("-arch x86_64 -DL_ENDIAN $gcc_devteam_warn -Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
+ cflags => combine("-arch x86_64 -DL_ENDIAN",
+ join(' ', @{$gcc_devteam_warn{CFLAGS}}),
+ "-Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe",
threads("${BSDthreads}")),
sys_id => "MACOSX",
bn_ops => "SIXTY_FOUR_BIT_LONG",
diff --git a/Configure b/Configure
index 2765639..0e0e115 100755
--- a/Configure
+++ b/Configure
@@ -120,22 +120,27 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lx
# code, so we just tell compiler to be pedantic about everything
# but 'long long' type.
-my $gcc_devteam_warn = "-DDEBUG_UNUSED"
- . " -DPEDANTIC -pedantic -Wno-long-long"
- . " -Wall"
- . " -Wextra"
- . " -Wno-unused-parameter"
- . " -Wno-missing-field-initializers"
- . " -Wswitch"
- . " -Wsign-compare"
- . " -Wmissing-prototypes"
- . " -Wstrict-prototypes"
- . " -Wshadow"
- . " -Wformat"
- . " -Wtype-limits"
- . " -Wundef"
- . " -Werror"
- ;
+my %gcc_devteam_warn = ();
+{
+ my @common = qw( -DDEBUG_UNUSED
+ -DPEDANTIC -pedantic -Wno-long-long
+ -Wall
+ -Wextra
+ -Wno-unused-parameter
+ -Wno-missing-field-initializers
+ -Wswitch
+ -Wsign-compare
+ -Wshadow
+ -Wformat
+ -Wtype-limits
+ -Wundef
+ -Werror );
+ %gcc_devteam_warn = (
+ CFLAGS => [ @common, qw( -Wmissing-prototypes
+ -Wstrict-prototypes ) ],
+ CXXFLAGS => [ @common ]
+ );
+}
# These are used in addition to $gcc_devteam_warn when the compiler is clang.
# TODO(openssl-team): fix problems and investigate if (at least) the
@@ -145,16 +150,20 @@ my $gcc_devteam_warn = "-DDEBUG_UNUSED"
# -Wlanguage-extension-token -- no, we use asm()
# -Wunused-macros -- no, too tricky for BN and _XOPEN_SOURCE etc
# -Wextended-offsetof -- no, needed in CMS ASN1 code
-my $clang_devteam_warn = ""
- . " -Wswitch-default"
- . " -Wno-parentheses-equality"
- . " -Wno-language-extension-token"
- . " -Wno-extended-offsetof"
- . " -Wconditional-uninitialized"
- . " -Wincompatible-pointer-types-discards-qualifiers"
- . " -Wmissing-variable-declarations"
- . " -Wno-unknown-warning-option"
- ;
+my %clang_devteam_warn = ();
+{
+ my @common = qw( -Wswitch-default
+ -Wno-parentheses-equality
+ -Wno-language-extension-token
+ -Wno-extended-offsetof
+ -Wconditional-uninitialized
+ -Wincompatible-pointer-types-discards-qualifiers
+ -Wno-unknown-warning-option );
+ %clang_devteam_warn = (
+ CFLAGS => [ @common, qw( -Wmissing-variable-declarations ) ],
+ CXXFLAGS => [ @common ]
+ );
+}
# This adds backtrace information to the memory leak info. Is only used
# when crypto-mdebug-backtrace is enabled.
@@ -545,18 +554,18 @@ my %user = (
AS => undef,
ASFLAGS => [],
CC => env('CC'),
- CFLAGS => [],
+ CFLAGS => [ env('CFLAGS') || () ],
CXX => env('CXX'),
- CXXFLAGS => [],
+ CXXFLAGS => [ env('CXXFLAGS') || () ],
CPP => undef,
- CPPFLAGS => [], # -D, -I, -Wp,
+ CPPFLAGS => [ env('CPPFLAGS') || () ], # -D, -I, -Wp,
CPPDEFINES => [], # Alternative for -D
CPPINCLUDES => [], # Alternative for -I
CROSS_COMPILE => env('CROSS_COMPILE'),
HASHBANGPERL=> env('HASHBANGPERL') || env('PERL'),
LD => undef,
- LDFLAGS => [], # -L, -Wl,
- LDLIBS => [], # -l
+ LDFLAGS => [ env('LDFLAGS') || () ], # -L, -Wl,
+ LDLIBS => [ env('LDLIBS') || () ], # -l
MT => undef,
MTFLAGS => [],
PERL => env('PERL') || ($^O ne "VMS" ? $^X : "perl"),
@@ -1422,7 +1431,10 @@ unless ($disabled{asm}) {
}
}
-my %predefined = compiler_predefined($config{CROSS_COMPILE}.$config{CC});
+my %predefined_C = compiler_predefined($config{CROSS_COMPILE}.$config{CC});
+my %predefined_CXX = $config{CXX}
+ ? compiler_predefined($config{CROSS_COMPILE}.$config{CXX})
+ : ();
# Check for makedepend capabilities.
if (!$disabled{makedepend}) {
@@ -1430,8 +1442,8 @@ if (!$disabled{makedepend}) {
# For VC- and vms- targets, there's nothing more to do here. The
# functionality is hard coded in the corresponding build files for
# cl (Windows) and CC/DECC (VMS).
- } elsif (($predefined{__GNUC__} // -1) >= 3
- && !($predefined{__APPLE_CC__} && !$predefined{__clang__})) {
+ } elsif (($predefined_C{__GNUC__} // -1) >= 3
+ && !($predefined_C{__APPLE_CC__} && !$predefined_C{__clang__})) {
# We know that GNU C version 3 and up as well as all clang
# versions support dependency generation, but Xcode did not
# handle $cc -M before clang support (but claims __GNUC__ = 3)
@@ -1444,9 +1456,9 @@ if (!$disabled{makedepend}) {
}
}
-if (!$disabled{asm} && !$predefined{__MACH__} && $^O ne 'VMS') {
+if (!$disabled{asm} && !$predefined_C{__MACH__} && $^O ne 'VMS') {
# probe for -Wa,--noexecstack option...
- if ($predefined{__clang__}) {
+ if ($predefined_C{__clang__}) {
# clang has builtin assembler, which doesn't recognize --help,
# but it apparently recognizes the option in question on all
# supported platforms even when it's meaningless. In other words
@@ -1504,24 +1516,35 @@ $config{openssl_api_defines} = [
"OPENSSL_MIN_API=".($apitable->{$config{api} // ""} // -1)
];
-my @strict_warnings_collection=();
+my %strict_warnings_collection=( CFLAGS => [], CXXFLAGS => []);
if ($strict_warnings)
{
my $wopt;
- my $gccver = $predefined{__GNUC__} // -1;
+ my $gccver = $predefined_C{__GNUC__} // -1;
+ my $gxxver = $predefined_CXX{__GNUC__} // -1;
- die "ERROR --strict-warnings requires gcc[>=4] or gcc-alike"
+ warn "WARNING --strict-warnings requires gcc[>=4] or gcc-alike"
unless $gccver >= 4;
- push @strict_warnings_collection, (split /\s+/, $gcc_devteam_warn);
- push @strict_warnings_collection, (split /\s+/, $clang_devteam_warn)
- if (defined($predefined{__clang__}));
+ warn "WARNING --strict-warnings requires g++[>=4] or g++-alike"
+ unless $gxxver >= 4;
+ foreach (qw(CFLAGS CXXFLAGS))
+ {
+ push @{$strict_warnings_collection{$_}},
+ @{$gcc_devteam_warn{$_}};
+ }
+ push @{$strict_warnings_collection{CFLAGS}},
+ @{$clang_devteam_warn{CFLAGS}}
+ if (defined($predefined_C{__clang__}));
+ push @{$strict_warnings_collection{CXXFLAGS}},
+ @{$clang_devteam_warn{CXXFLAGS}}
+ if (defined($predefined_CXX{__clang__}));
}
-foreach (qw(CFLAGS CXXFLAGS))
+foreach my $idx (qw(CFLAGS CXXFLAGS))
{
- $useradd{$_} = [ map { $_ eq '--ossl-strict-warnings'
- ? @strict_warnings_collection
- : ( $_ ) }
- @{$useradd{$_}} ];
+ $useradd{$idx} = [ map { $_ eq '--ossl-strict-warnings'
+ ? @{$strict_warnings_collection{$idx}}
+ : ( $_ ) }
+ @{$useradd{$idx}} ];
}
unless ($disabled{"crypto-mdebug-backtrace"})
diff --git a/test/build.info b/test/build.info
index db4e1a7..1a47463 100644
--- a/test/build.info
+++ b/test/build.info
@@ -593,11 +593,19 @@ ENDIF
next if grep { lc("$name.h") =~ m/$_/i } @nogo_headers_re;
$OUT .= <<"_____";
- PROGRAMS{noinst}=buildtest_$name
+ PROGRAMS{noinst}=buildtest_c_$name
+ SOURCE[buildtest_c_$name]=buildtest_$name.c
GENERATE[buildtest_$name.c]=generate_buildtest.pl $name
- SOURCE[buildtest_$name]=buildtest_$name.c
- INCLUDE[buildtest_$name]=../include
- DEPEND[buildtest_$name]=../libssl ../libcrypto
+ INCLUDE[buildtest_c_$name]=../include
+ DEPEND[buildtest_c_$name]=../libssl ../libcrypto
+_____
+ $OUT .= <<"_____" if $config{CXX};
+
+ PROGRAMS{noinst}=buildtest_cc_$name
+ SOURCE[buildtest_cc_$name]=buildtest_$name.cc
+ GENERATE[buildtest_$name.cc]=generate_buildtest.pl $name
+ INCLUDE[buildtest_cc_$name]=../include
+ DEPEND[buildtest_cc_$name]=../libssl ../libcrypto
_____
}
-}
More information about the openssl-commits
mailing list