mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-12-24 17:41:01 +03:00
Merge pull request #10382 from ronald-cron-arm/deprecate-make
Deprecate Make build system and remove MS visual studio files
This commit is contained in:
2
ChangeLog.d/make-visualc.txt
Normal file
2
ChangeLog.d/make-visualc.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Removals
|
||||
* Drop support for the GNU Make and Microsoft Visual Studio build systems.
|
||||
75
README.md
75
README.md
@@ -10,7 +10,7 @@ Configuration
|
||||
|
||||
Mbed TLS should build out of the box on most systems. Some platform specific options are available in the fully documented configuration file `include/mbedtls/mbedtls_config.h`, which is also the place where features can be selected. This file can be edited manually, or in a more programmatic way using the Python 3 script `scripts/config.py` (use `--help` for usage instructions).
|
||||
|
||||
Compiler options can be set using conventional environment variables such as `CC` and `CFLAGS` when using the Make and CMake build system (see below).
|
||||
Compiler options can be set using conventional environment variables such as `CC` and `CFLAGS`.
|
||||
|
||||
We provide some non-standard configurations focused on specific use cases in the `configs/` directory. You can read more about those in `configs/README.txt`
|
||||
|
||||
@@ -24,7 +24,9 @@ Documentation for the PSA Cryptography API is available [on GitHub](https://arm-
|
||||
To generate a local copy of the library documentation in HTML format, tailored to your compile-time configuration:
|
||||
|
||||
1. Make sure that [Doxygen](http://www.doxygen.nl/) is installed.
|
||||
1. Run `make apidoc`.
|
||||
1. Run `mkdir /path/to/build_dir && cd /path/to/build_dir`
|
||||
1. Run `cmake /path/to/mbedtls/source`
|
||||
1. Run `make apidoc`
|
||||
1. Browse `apidoc/index.html` or `apidoc/modules.html`.
|
||||
|
||||
For other sources of documentation, see the [SUPPORT](SUPPORT.md) document.
|
||||
@@ -32,26 +34,17 @@ For other sources of documentation, see the [SUPPORT](SUPPORT.md) document.
|
||||
Compiling
|
||||
---------
|
||||
|
||||
There are currently three active build systems used within Mbed TLS releases:
|
||||
|
||||
- GNU Make
|
||||
- CMake
|
||||
- Microsoft Visual Studio
|
||||
|
||||
The main systems used for development are CMake and GNU Make. Those systems are always complete and up-to-date. The others should reflect all changes present in the CMake and Make build system, although features may not be ported there automatically.
|
||||
|
||||
The Make and CMake build systems create three libraries: libmbedcrypto/libtfpsacrypto, libmbedx509, and libmbedtls. Note that libmbedtls depends on libmbedx509 and libmbedcrypto/libtfpsacrypto, and libmbedx509 depends on libmbedcrypto/libtfpsacrypto. As a result, some linkers will expect flags to be in a specific order, for example the GNU linker wants `-lmbedtls -lmbedx509 -lmbedcrypto`.
|
||||
We use CMake to configure and drive our build process. Three libraries are built: libtfpsacrypto, libmbedx509, and libmbedtls. Note that libmbedtls depends on libmbedx509 and libtfpsacrypto, and libmbedx509 depends on libtfpsacrypto. As a result, some linkers will expect flags to be in a specific order, for example the GNU linker wants `-lmbedtls -lmbedx509 -ltfpsacrypto`.
|
||||
|
||||
### Tool versions
|
||||
|
||||
You need the following tools to build the library with the provided makefiles:
|
||||
You need the following tools to build the library:
|
||||
|
||||
* GNU Make 3.82 or a build tool that CMake supports.
|
||||
* CMake 3.10.2 or later.
|
||||
* A build system that CMake supports.
|
||||
* A C99 toolchain (compiler, linker, archiver). We actively test with GCC 5.4, Clang 3.8, Arm Compiler 6, IAR 8 and Visual Studio 2017. More recent versions should work. Slightly older versions may work.
|
||||
* Python 3.8 to generate the test code. Python is also needed to integrate PSA drivers and to build the development branch (see next section).
|
||||
* Perl to run the tests, and to generate some source files in the development branch.
|
||||
* CMake 3.10.2 or later (if using CMake).
|
||||
* Microsoft Visual Studio 2017 or later (if using Visual Studio).
|
||||
* Doxygen 1.8.11 or later (if building the documentation; slightly older versions should work).
|
||||
|
||||
### Git usage
|
||||
@@ -82,47 +75,12 @@ Note: If you have multiple toolchains installed, it is recommended to set `CC` o
|
||||
|
||||
Any of the following methods are available to generate the configuration-independent files:
|
||||
|
||||
* If not cross-compiling, running `make` with any target, or just `make`, will automatically generate required files.
|
||||
* On non-Windows systems, when not cross-compiling, CMake will generate the required files automatically.
|
||||
* Run `make generated_files` to generate all the configuration-independent files.
|
||||
* On Unix/POSIX systems, run `framework/scripts/make_generated_files.py` to generate all the configuration-independent files.
|
||||
* On Windows, run `scripts\make_generated_files.bat` to generate all the configuration-independent files.
|
||||
|
||||
### Make
|
||||
|
||||
We require GNU Make. To build the library and the sample programs, GNU Make and a C compiler are sufficient. Some of the more advanced build targets require some Unix/Linux tools.
|
||||
|
||||
We intentionally only use a minimum of functionality in the makefiles in order to keep them as simple and independent of different toolchains as possible, to allow users to more easily move between different platforms. Users who need more features are recommended to use CMake.
|
||||
|
||||
In order to build from the source code using GNU Make, just enter at the command line:
|
||||
|
||||
make
|
||||
|
||||
In order to run the tests, enter:
|
||||
|
||||
make check
|
||||
|
||||
The tests need Python to be built and Perl to be run. If you don't have one of them installed, you can skip building the tests with:
|
||||
|
||||
make no_test
|
||||
|
||||
You'll still be able to run a much smaller set of tests with:
|
||||
|
||||
programs/test/selftest
|
||||
|
||||
In order to build for a Windows platform, you should use `WINDOWS_BUILD=1` if the target is Windows but the build environment is Unix-like (for instance when cross-compiling, or compiling from an MSYS shell), and `WINDOWS=1` if the build environment is a Windows shell (for instance using mingw32-make) (in that case some targets will not be available).
|
||||
|
||||
Setting the variable `SHARED` in your environment will build shared libraries in addition to the static libraries. Setting `DEBUG` gives you a debug build. You can override `CFLAGS` and `LDFLAGS` by setting them in your environment or on the make command line; compiler warning options may be overridden separately using `WARNING_CFLAGS`. Some directory-specific options (for example, `-I` directives) are still preserved.
|
||||
|
||||
Please note that setting `CFLAGS` overrides its default value of `-O2` and setting `WARNING_CFLAGS` overrides its default value (starting with `-Wall -Wextra`), so if you just want to add some warning options to the default ones, you can do so by setting `CFLAGS=-O2 -Werror` for example. Setting `WARNING_CFLAGS` is useful when you want to get rid of its default content (for example because your compiler doesn't accept `-Wall` as an option). Directory-specific options cannot be overridden from the command line.
|
||||
|
||||
Depending on your platform, you might run into some issues. Please check the Makefiles in `library/`, `programs/` and `tests/` for options to manually add or remove for specific platforms. You can also check [the Mbed TLS Knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/) for articles on your platform or issue.
|
||||
|
||||
In case you find that you need to do something else as well, please let us know what, so we can add it to the [Mbed TLS Knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/).
|
||||
* On non-Windows systems, when not cross-compiling, CMake generates the required files automatically.
|
||||
* Run `framework/scripts/make_generated_files.py` to generate all the configuration-independent files.
|
||||
|
||||
### CMake
|
||||
|
||||
In order to build the source using CMake in a separate directory (recommended), just enter at the command line:
|
||||
In order to build the libraries using CMake in a separate directory (recommended), just enter at the command line:
|
||||
|
||||
mkdir /path/to/build_dir && cd /path/to/build_dir
|
||||
cmake /path/to/mbedtls_source
|
||||
@@ -144,7 +102,7 @@ To configure CMake for building shared libraries, use:
|
||||
|
||||
cmake -DUSE_SHARED_MBEDTLS_LIBRARY=On /path/to/mbedtls_source
|
||||
|
||||
There are many different build modes available within the CMake buildsystem. Most of them are available for gcc and clang, though some are compiler-specific:
|
||||
There are many different build types available with CMake. Most of them are available for gcc and clang, though some are compiler-specific:
|
||||
|
||||
- `Release`. This generates the default code without any unnecessary information in the binary files.
|
||||
- `Debug`. This generates debug information and disables optimization of the code.
|
||||
@@ -155,7 +113,7 @@ There are many different build modes available within the CMake buildsystem. Mos
|
||||
- `MemSanDbg`. Same as MemSan but slower, with debug information, better stack traces and origin tracking.
|
||||
- `Check`. This activates the compiler warnings that depend on optimization and treats all warnings as errors.
|
||||
|
||||
Switching build modes in CMake is simple. For debug mode, enter at the command line:
|
||||
Switching build types in CMake is simple. For debug mode, enter at the command line:
|
||||
|
||||
cmake -D CMAKE_BUILD_TYPE=Debug /path/to/mbedtls_source
|
||||
|
||||
@@ -175,9 +133,10 @@ If you already invoked cmake and want to change those settings, you need to
|
||||
remove the build directory and create it again.
|
||||
|
||||
Note that it is possible to build in-place; this will however overwrite the
|
||||
provided Makefiles (see `scripts/tmp_ignore_makefiles.sh` if you want to
|
||||
prevent `git status` from showing them as modified). In order to do so, from
|
||||
the Mbed TLS source directory, use:
|
||||
legacy Makefiles still used for testing purposes (see
|
||||
`scripts/tmp_ignore_makefiles.sh` if you want to prevent `git status` from
|
||||
showing them as modified). In order to do so, from the Mbed TLS source
|
||||
directory, use:
|
||||
|
||||
cmake .
|
||||
make
|
||||
|
||||
Submodule framework updated: 92f5d45b22...59d77ef052
@@ -233,8 +233,14 @@ class AbiChecker:
|
||||
my_environment["SHARED"] = "1"
|
||||
if os.path.exists(os.path.join(git_worktree_path, "crypto")):
|
||||
my_environment["USE_CRYPTO_SUBMODULE"] = "1"
|
||||
|
||||
if os.path.exists(os.path.join(git_worktree_path, "scripts", "legacy.make")):
|
||||
command = [self.make_command, "-f", "scripts/legacy.make", "lib"]
|
||||
else:
|
||||
command = [self.make_command, "lib"]
|
||||
|
||||
make_output = subprocess.check_output(
|
||||
[self.make_command, "lib"],
|
||||
command,
|
||||
env=my_environment,
|
||||
cwd=git_worktree_path,
|
||||
stderr=subprocess.STDOUT
|
||||
|
||||
@@ -143,6 +143,3 @@ scripts/generate_query_config.pl
|
||||
[ $VERBOSE ] && echo "Re-generating library/version_features.c"
|
||||
scripts/generate_features.pl
|
||||
|
||||
[ $VERBOSE ] && echo "Re-generating visualc files"
|
||||
scripts/generate_visualc_files.pl
|
||||
|
||||
|
||||
@@ -1,352 +0,0 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
# Generate main file, individual apps and solution files for
|
||||
# MS Visual Studio 2017
|
||||
#
|
||||
# Must be run from Mbed TLS root or scripts directory.
|
||||
# Takes no argument.
|
||||
#
|
||||
# Copyright The Mbed TLS Contributors
|
||||
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
|
||||
|
||||
use warnings;
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use Digest::MD5 'md5_hex';
|
||||
|
||||
# Declare variables for options
|
||||
my $vsx_dir = "visualc/VS2017";
|
||||
my $list = 0; # Default off
|
||||
|
||||
GetOptions(
|
||||
"directory=s" => \$vsx_dir, # Target directory
|
||||
"list" => \$list # Only list generated files
|
||||
) or die "Invalid options\n";
|
||||
|
||||
my $vsx_ext = "vcxproj";
|
||||
my $vsx_app_tpl_file = "scripts/data_files/vs2017-app-template.$vsx_ext";
|
||||
my $vsx_main_tpl_file = "scripts/data_files/vs2017-main-template.$vsx_ext";
|
||||
my $vsx_main_file = "$vsx_dir/mbedTLS.$vsx_ext";
|
||||
my $vsx_sln_tpl_file = "scripts/data_files/vs2017-sln-template.sln";
|
||||
my $vsx_sln_file = "$vsx_dir/mbedTLS.sln";
|
||||
|
||||
my $mbedtls_programs_dir = "programs";
|
||||
my $framework_programs_dir = "framework/tests/programs";
|
||||
my $tfpsacrypto_programs_dir = "tf-psa-crypto/programs";
|
||||
|
||||
my $mbedtls_header_dir = 'include/mbedtls';
|
||||
my $drivers_builtin_header_dir = 'tf-psa-crypto/drivers/builtin/include/mbedtls';
|
||||
my $psa_header_dir = 'tf-psa-crypto/include/psa';
|
||||
my $tls_source_dir = 'library';
|
||||
my $crypto_core_source_dir = 'tf-psa-crypto/core';
|
||||
my $crypto_source_dir = 'tf-psa-crypto/drivers/builtin/src';
|
||||
my $tls_test_source_dir = 'tests/src';
|
||||
my $tls_test_header_dir = 'tests/include/test';
|
||||
my $crypto_test_source_dir = 'tf-psa-crypto/tests/src';
|
||||
my $crypto_test_header_dir = 'tf-psa-crypto/tests/include/test';
|
||||
my $test_source_dir = 'framework/tests/src';
|
||||
my $test_header_dir = 'framework/tests/include/test';
|
||||
my $test_drivers_header_dir = 'framework/tests/include/test/drivers';
|
||||
my $test_drivers_source_dir = 'framework/tests/src/drivers';
|
||||
|
||||
my @thirdparty_header_dirs = qw(
|
||||
tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest
|
||||
);
|
||||
my @thirdparty_source_dirs = qw(
|
||||
tf-psa-crypto/drivers/everest/library
|
||||
tf-psa-crypto/drivers/everest/library/kremlib
|
||||
tf-psa-crypto/drivers/everest/library/legacy
|
||||
);
|
||||
|
||||
# Directories to add to the include path.
|
||||
# Order matters in case there are files with the same name in more than
|
||||
# one directory: the compiler will use the first match.
|
||||
my @include_directories = qw(
|
||||
include
|
||||
tf-psa-crypto/include
|
||||
tf-psa-crypto/drivers/builtin/include
|
||||
tf-psa-crypto/drivers/everest/include/
|
||||
tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest
|
||||
tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/vs2013
|
||||
tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlib
|
||||
tests/include
|
||||
tf-psa-crypto/tests/include
|
||||
framework/tests/include
|
||||
framework/tests/programs
|
||||
);
|
||||
my $include_directories = join(';', map {"../../$_"} @include_directories);
|
||||
|
||||
# Directories to add to the include path when building the libraries, but not
|
||||
# when building tests or applications.
|
||||
my @library_include_directories = qw(
|
||||
library
|
||||
tf-psa-crypto/core
|
||||
tf-psa-crypto/drivers/builtin/src
|
||||
);
|
||||
my $library_include_directories =
|
||||
join(';', map {"../../$_"} (@library_include_directories,
|
||||
@include_directories));
|
||||
|
||||
my @excluded_files = qw(
|
||||
tf-psa-crypto/drivers/everest/library/Hacl_Curve25519.c
|
||||
);
|
||||
my %excluded_files = ();
|
||||
foreach (@excluded_files) { $excluded_files{$_} = 1 }
|
||||
|
||||
my $vsx_hdr_tpl = <<EOT;
|
||||
<ClInclude Include="..\\..\\{NAME}" />
|
||||
EOT
|
||||
my $vsx_src_tpl = <<EOT;
|
||||
<ClCompile Include="..\\..\\{NAME}" />
|
||||
EOT
|
||||
|
||||
my $vsx_sln_app_entry_tpl = <<EOT;
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "{APPNAME}", "{APPNAME}.vcxproj", "{GUID}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
EOT
|
||||
|
||||
my $vsx_sln_conf_entry_tpl = <<EOT;
|
||||
{GUID}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{GUID}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{GUID}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{GUID}.Debug|x64.Build.0 = Debug|x64
|
||||
{GUID}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{GUID}.Release|Win32.Build.0 = Release|Win32
|
||||
{GUID}.Release|x64.ActiveCfg = Release|x64
|
||||
{GUID}.Release|x64.Build.0 = Release|x64
|
||||
EOT
|
||||
|
||||
exit( main() );
|
||||
|
||||
sub check_dirs {
|
||||
foreach my $d (@thirdparty_header_dirs, @thirdparty_source_dirs) {
|
||||
if (not (-d $d)) { return 0; }
|
||||
}
|
||||
return -d $vsx_dir
|
||||
&& -d $mbedtls_header_dir
|
||||
&& -d $drivers_builtin_header_dir
|
||||
&& -d $psa_header_dir
|
||||
&& -d $tls_source_dir
|
||||
&& -d $crypto_core_source_dir
|
||||
&& -d $crypto_source_dir
|
||||
&& -d $test_source_dir
|
||||
&& -d $tls_test_source_dir
|
||||
&& -d $crypto_test_source_dir
|
||||
&& -d $test_drivers_source_dir
|
||||
&& -d $test_header_dir
|
||||
&& -d $tls_test_header_dir
|
||||
&& -d $crypto_test_header_dir
|
||||
&& -d $test_drivers_header_dir
|
||||
&& -d $mbedtls_programs_dir
|
||||
&& -d $framework_programs_dir
|
||||
&& -d $tfpsacrypto_programs_dir;
|
||||
}
|
||||
|
||||
sub slurp_file {
|
||||
my ($filename) = @_;
|
||||
|
||||
local $/ = undef;
|
||||
open my $fh, '<:crlf', $filename or die "Could not read $filename\n";
|
||||
my $content = <$fh>;
|
||||
close $fh;
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
sub content_to_file {
|
||||
my ($content, $filename) = @_;
|
||||
|
||||
open my $fh, '>:crlf', $filename or die "Could not write to $filename\n";
|
||||
print $fh $content;
|
||||
close $fh;
|
||||
}
|
||||
|
||||
sub gen_app_guid {
|
||||
my ($path) = @_;
|
||||
|
||||
my $guid = md5_hex( "mbedTLS:$path" );
|
||||
$guid =~ s/(.{8})(.{4})(.{4})(.{4})(.{12})/\U{$1-$2-$3-$4-$5}/;
|
||||
|
||||
return $guid;
|
||||
}
|
||||
|
||||
sub gen_app {
|
||||
my ($path, $template, $dir, $ext) = @_;
|
||||
|
||||
my $guid = gen_app_guid( $path );
|
||||
$path =~ s!/!\\!g;
|
||||
(my $appname = $path) =~ s/.*\\//;
|
||||
my $is_test_app = ($path =~ m/^test\\/);
|
||||
|
||||
my $srcs;
|
||||
if( $appname eq "metatest" or $appname eq "query_compile_time_config" or
|
||||
$appname eq "query_included_headers" or $appname eq "zeroize" ) {
|
||||
$srcs = "<ClCompile Include=\"..\\..\\framework\\tests\\programs\\$appname.c\" \/>";
|
||||
} else {
|
||||
$srcs = "<ClCompile Include=\"..\\..\\programs\\$path.c\" \/>";
|
||||
}
|
||||
|
||||
if( $appname eq "ssl_client2" or $appname eq "ssl_server2" or
|
||||
$appname eq "query_compile_time_config" ) {
|
||||
$srcs .= "\n <ClCompile Include=\"..\\..\\programs\\test\\query_config.c\" \/>";
|
||||
}
|
||||
if( $appname eq "ssl_client2" or $appname eq "ssl_server2" ) {
|
||||
$srcs .= "\n <ClCompile Include=\"..\\..\\programs\\ssl\\ssl_test_lib.c\" \/>";
|
||||
}
|
||||
|
||||
my $content = $template;
|
||||
$content =~ s/<SOURCES>/$srcs/g;
|
||||
$content =~ s/<APPNAME>/$appname/g;
|
||||
$content =~ s/<GUID>/$guid/g;
|
||||
$content =~ s/INCLUDE_DIRECTORIES\n/($is_test_app ?
|
||||
$library_include_directories :
|
||||
$include_directories)/ge;
|
||||
|
||||
content_to_file( $content, "$dir/$appname.$ext" );
|
||||
}
|
||||
|
||||
sub get_app_list {
|
||||
my $makefile_contents = slurp_file('programs/Makefile');
|
||||
$makefile_contents =~ /\n\s*APPS\s*=[\\\s]*(.*?)(?<!\\)[\#\n]/s
|
||||
or die "Cannot find APPS = ... in programs/Makefile\n";
|
||||
return split /(?:\s|\\)+/, $1;
|
||||
}
|
||||
|
||||
sub gen_app_files {
|
||||
my @app_list = @_;
|
||||
|
||||
my $vsx_tpl = slurp_file( $vsx_app_tpl_file );
|
||||
|
||||
for my $app ( @app_list ) {
|
||||
gen_app( $app, $vsx_tpl, $vsx_dir, $vsx_ext );
|
||||
}
|
||||
}
|
||||
|
||||
sub gen_entry_list {
|
||||
my ($tpl, @names) = @_;
|
||||
|
||||
my $entries;
|
||||
for my $name (@names) {
|
||||
(my $entry = $tpl) =~ s/{NAME}/$name/g;
|
||||
$entries .= $entry;
|
||||
}
|
||||
|
||||
return $entries;
|
||||
}
|
||||
|
||||
sub gen_main_file {
|
||||
my ($headers, $sources,
|
||||
$hdr_tpl, $src_tpl,
|
||||
$main_tpl, $main_out) = @_;
|
||||
|
||||
my $header_entries = gen_entry_list( $hdr_tpl, @$headers );
|
||||
my $source_entries = gen_entry_list( $src_tpl, @$sources );
|
||||
|
||||
my $out = slurp_file( $main_tpl );
|
||||
$out =~ s/SOURCE_ENTRIES\n/$source_entries/m;
|
||||
$out =~ s/HEADER_ENTRIES\n/$header_entries/m;
|
||||
$out =~ s/INCLUDE_DIRECTORIES\n/$library_include_directories/g;
|
||||
|
||||
content_to_file( $out, $main_out );
|
||||
}
|
||||
|
||||
sub gen_vsx_solution {
|
||||
my (@app_names) = @_;
|
||||
|
||||
my ($app_entries, $conf_entries);
|
||||
for my $path (@app_names) {
|
||||
my $guid = gen_app_guid( $path );
|
||||
(my $appname = $path) =~ s!.*/!!;
|
||||
|
||||
my $app_entry = $vsx_sln_app_entry_tpl;
|
||||
$app_entry =~ s/{APPNAME}/$appname/g;
|
||||
$app_entry =~ s/{GUID}/$guid/g;
|
||||
|
||||
$app_entries .= $app_entry;
|
||||
|
||||
my $conf_entry = $vsx_sln_conf_entry_tpl;
|
||||
$conf_entry =~ s/{GUID}/$guid/g;
|
||||
|
||||
$conf_entries .= $conf_entry;
|
||||
}
|
||||
|
||||
my $out = slurp_file( $vsx_sln_tpl_file );
|
||||
$out =~ s/APP_ENTRIES\n/$app_entries/m;
|
||||
$out =~ s/CONF_ENTRIES\n/$conf_entries/m;
|
||||
|
||||
content_to_file( $out, $vsx_sln_file );
|
||||
}
|
||||
|
||||
sub del_vsx_files {
|
||||
unlink glob "'$vsx_dir/*.$vsx_ext'";
|
||||
unlink $vsx_main_file;
|
||||
unlink $vsx_sln_file;
|
||||
}
|
||||
|
||||
sub main {
|
||||
if( ! check_dirs() ) {
|
||||
chdir '..' or die;
|
||||
check_dirs or die "Must be run from Mbed TLS root or scripts dir\n";
|
||||
}
|
||||
|
||||
# Remove old files to ensure that, for example, project files from deleted
|
||||
# apps are not kept
|
||||
if (not $list) {
|
||||
del_vsx_files();
|
||||
}
|
||||
|
||||
my @app_list = get_app_list();
|
||||
my @header_dirs = (
|
||||
$mbedtls_header_dir,
|
||||
$drivers_builtin_header_dir,
|
||||
$psa_header_dir,
|
||||
$test_header_dir,
|
||||
$tls_test_header_dir,
|
||||
$crypto_test_header_dir,
|
||||
$test_drivers_header_dir,
|
||||
$tls_source_dir,
|
||||
$crypto_core_source_dir,
|
||||
$crypto_source_dir,
|
||||
$framework_programs_dir,
|
||||
@thirdparty_header_dirs,
|
||||
);
|
||||
my @headers = (map { <$_/*.h> } @header_dirs);
|
||||
my @source_dirs = (
|
||||
$tls_source_dir,
|
||||
$crypto_core_source_dir,
|
||||
$crypto_source_dir,
|
||||
$test_source_dir,
|
||||
$tls_test_source_dir,
|
||||
$crypto_test_source_dir,
|
||||
$test_drivers_source_dir,
|
||||
@thirdparty_source_dirs,
|
||||
);
|
||||
my @sources = (map { <$_/*.c> } @source_dirs);
|
||||
|
||||
@headers = grep { ! $excluded_files{$_} } @headers;
|
||||
@sources = grep { ! $excluded_files{$_} } @sources;
|
||||
map { s!/!\\!g } @headers;
|
||||
map { s!/!\\!g } @sources;
|
||||
|
||||
if ($list) {
|
||||
foreach my $app (@app_list) {
|
||||
$app =~ s/.*\///;
|
||||
print "$vsx_dir/$app.$vsx_ext\n";
|
||||
}
|
||||
print "$vsx_main_file\n";
|
||||
print "$vsx_sln_file\n";
|
||||
} else {
|
||||
gen_app_files( @app_list );
|
||||
|
||||
gen_main_file( \@headers, \@sources,
|
||||
$vsx_hdr_tpl, $vsx_src_tpl,
|
||||
$vsx_main_tpl_file, $vsx_main_file );
|
||||
|
||||
gen_vsx_solution( @app_list );
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -62,7 +62,6 @@ tests/%: FORCE
|
||||
generated_files: library/generated_files
|
||||
generated_files: programs/generated_files
|
||||
generated_files: tests/generated_files
|
||||
generated_files: visualc_files
|
||||
|
||||
# Set GEN_FILES to the empty string to disable dependencies on generated
|
||||
# source files. Then `make generated_files` will only build files that
|
||||
@@ -87,26 +86,6 @@ else
|
||||
gen_file_dep = |
|
||||
endif
|
||||
|
||||
.PHONY: visualc_files
|
||||
VISUALC_FILES = visualc/VS2017/mbedTLS.sln visualc/VS2017/mbedTLS.vcxproj
|
||||
# TODO: $(app).vcxproj for each $(app) in programs/
|
||||
visualc_files: $(VISUALC_FILES)
|
||||
|
||||
# Ensure that the .c files that generate_visualc_files.pl enumerates are
|
||||
# present before it runs. It doesn't matter if the files aren't up-to-date,
|
||||
# they just need to be present.
|
||||
$(VISUALC_FILES): | library/generated_files
|
||||
$(VISUALC_FILES): | programs/generated_files
|
||||
$(VISUALC_FILES): | tests/generated_files
|
||||
$(VISUALC_FILES): $(gen_file_dep) scripts/generate_visualc_files.pl
|
||||
$(VISUALC_FILES): $(gen_file_dep) scripts/data_files/vs2017-app-template.vcxproj
|
||||
$(VISUALC_FILES): $(gen_file_dep) scripts/data_files/vs2017-main-template.vcxproj
|
||||
$(VISUALC_FILES): $(gen_file_dep) scripts/data_files/vs2017-sln-template.sln
|
||||
# TODO: also the list of .c and .h source files, but not their content
|
||||
$(VISUALC_FILES):
|
||||
echo " Gen $@ ..."
|
||||
$(PERL) scripts/generate_visualc_files.pl
|
||||
|
||||
ifndef WINDOWS
|
||||
install: no_test
|
||||
mkdir -p $(DESTDIR)/include/mbedtls
|
||||
@@ -159,12 +138,6 @@ neat: clean_more_on_top
|
||||
$(MAKE) -C library neat
|
||||
$(MAKE) -C programs neat
|
||||
$(MAKE) -C tests neat
|
||||
ifndef WINDOWS
|
||||
rm -f visualc/VS2017/*.vcxproj visualc/VS2017/mbedTLS.sln
|
||||
else
|
||||
if exist visualc\VS2017\*.vcxproj del /Q /F visualc\VS2017\*.vcxproj
|
||||
if exist visualc\VS2017\mbedTLS.sln del /Q /F visualc\VS2017\mbedTLS.sln
|
||||
endif
|
||||
|
||||
ifndef PSASIM
|
||||
check: lib
|
||||
@@ -18,14 +18,14 @@ component_check_recursion () {
|
||||
|
||||
component_check_generated_files () {
|
||||
msg "Check make_generated_files.py consistency"
|
||||
make neat
|
||||
$MAKE_COMMAND neat
|
||||
$FRAMEWORK/scripts/make_generated_files.py
|
||||
$FRAMEWORK/scripts/make_generated_files.py --check
|
||||
make neat
|
||||
$MAKE_COMMAND neat
|
||||
|
||||
msg "Check files generated with make"
|
||||
MBEDTLS_ROOT_DIR="$PWD"
|
||||
make generated_files
|
||||
$MAKE_COMMAND generated_files
|
||||
$FRAMEWORK/scripts/make_generated_files.py --check
|
||||
|
||||
cd $TF_PSA_CRYPTO_ROOT_DIR
|
||||
@@ -39,12 +39,6 @@ component_check_generated_files () {
|
||||
make
|
||||
cd "$MBEDTLS_ROOT_DIR"
|
||||
|
||||
# Files for MS Visual Studio are not generated with cmake thus copy the
|
||||
# ones generated with make to pacify make_generated_files.py check.
|
||||
# Files for MS Visual Studio are rather on their way out thus not adding
|
||||
# support for them with cmake.
|
||||
cp -Rf visualc "$OUT_OF_SOURCE_DIR"
|
||||
|
||||
$FRAMEWORK/scripts/make_generated_files.py --root "$OUT_OF_SOURCE_DIR" --check
|
||||
|
||||
cd $TF_PSA_CRYPTO_ROOT_DIR
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
component_test_make_shared () {
|
||||
msg "build/test: make shared" # ~ 40s
|
||||
make SHARED=1 TEST_CPP=1 all check
|
||||
$MAKE_COMMAND SHARED=1 TEST_CPP=1 all check
|
||||
ldd programs/util/strerror | grep libmbedcrypto
|
||||
$FRAMEWORK/tests/programs/dlopen_demo.sh
|
||||
}
|
||||
@@ -58,7 +58,7 @@ support_test_cmake_out_of_source () {
|
||||
component_test_cmake_out_of_source () {
|
||||
# Remove existing generated files so that we use the ones cmake
|
||||
# generates
|
||||
make neat
|
||||
$MAKE_COMMAND neat
|
||||
|
||||
msg "build: cmake 'out-of-source' build"
|
||||
MBEDTLS_ROOT_DIR="$PWD"
|
||||
@@ -90,7 +90,7 @@ component_test_cmake_out_of_source () {
|
||||
component_test_cmake_as_subdirectory () {
|
||||
# Remove existing generated files so that we use the ones CMake
|
||||
# generates
|
||||
make neat
|
||||
$MAKE_COMMAND neat
|
||||
|
||||
msg "build: cmake 'as-subdirectory' build"
|
||||
cd programs/test/cmake_subproject
|
||||
@@ -107,7 +107,7 @@ support_test_cmake_as_subdirectory () {
|
||||
component_test_cmake_as_package () {
|
||||
# Remove existing generated files so that we use the ones CMake
|
||||
# generates
|
||||
make neat
|
||||
$MAKE_COMMAND neat
|
||||
|
||||
msg "build: cmake 'as-package' build"
|
||||
root_dir="$(pwd)"
|
||||
@@ -132,7 +132,7 @@ support_test_cmake_as_package () {
|
||||
component_test_cmake_as_package_install () {
|
||||
# Remove existing generated files so that we use the ones CMake
|
||||
# generates
|
||||
make neat
|
||||
$MAKE_COMMAND neat
|
||||
|
||||
msg "build: cmake 'as-installed-package' build"
|
||||
cd programs/test/cmake_package_install
|
||||
|
||||
@@ -27,13 +27,13 @@ test_build_opt () {
|
||||
$cc --version
|
||||
for opt in "$@"; do
|
||||
msg "build/test: $cc $opt, $info" # ~ 30s
|
||||
make CC="$cc" CFLAGS="$opt -std=c99 -pedantic -Wall -Wextra -Werror"
|
||||
$MAKE_COMMAND CC="$cc" CFLAGS="$opt -std=c99 -pedantic -Wall -Wextra -Werror"
|
||||
# We're confident enough in compilers to not run _all_ the tests,
|
||||
# but at least run the unit tests. In particular, runs with
|
||||
# optimizations use inline assembly whereas runs with -O0
|
||||
# skip inline assembly.
|
||||
make test # ~30s
|
||||
make clean
|
||||
$MAKE_COMMAND test # ~30s
|
||||
$MAKE_COMMAND clean
|
||||
done
|
||||
}
|
||||
|
||||
@@ -94,10 +94,10 @@ component_test_gcc15_drivers_opt () {
|
||||
loc_cflags="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_CONFIG_ADJUST_TEST_ACCELERATORS"
|
||||
loc_cflags="${loc_cflags} -I../framework/tests/include -O2"
|
||||
|
||||
make CC=$GCC_15 CFLAGS="${loc_cflags}" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=$GCC_15 CFLAGS="${loc_cflags}" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: GCC 15: full + test drivers dispatching to builtins"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_gcc_earliest_opt () {
|
||||
@@ -111,21 +111,21 @@ support_test_gcc_earliest_opt () {
|
||||
|
||||
component_build_mingw () {
|
||||
msg "build: Windows cross build - mingw64, make (Link Library)" # ~ 30s
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS='-Werror -Wall -Wextra -maes -msse2 -mpclmul' WINDOWS_BUILD=1 lib programs
|
||||
$MAKE_COMMAND CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS='-Werror -Wall -Wextra -maes -msse2 -mpclmul' WINDOWS_BUILD=1 lib programs
|
||||
|
||||
# note Make tests only builds the tests, but doesn't run them
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS='-Werror -maes -msse2 -mpclmul' WINDOWS_BUILD=1 tests
|
||||
make WINDOWS_BUILD=1 clean
|
||||
$MAKE_COMMAND CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS='-Werror -maes -msse2 -mpclmul' WINDOWS_BUILD=1 tests
|
||||
$MAKE_COMMAND WINDOWS_BUILD=1 clean
|
||||
|
||||
msg "build: Windows cross build - mingw64, make (DLL)" # ~ 30s
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS='-Werror -Wall -Wextra -maes -msse2 -mpclmul' WINDOWS_BUILD=1 SHARED=1 lib programs
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS='-Werror -Wall -Wextra -maes -msse2 -mpclmul' WINDOWS_BUILD=1 SHARED=1 tests
|
||||
make WINDOWS_BUILD=1 clean
|
||||
$MAKE_COMMAND CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS='-Werror -Wall -Wextra -maes -msse2 -mpclmul' WINDOWS_BUILD=1 SHARED=1 lib programs
|
||||
$MAKE_COMMAND CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS='-Werror -Wall -Wextra -maes -msse2 -mpclmul' WINDOWS_BUILD=1 SHARED=1 tests
|
||||
$MAKE_COMMAND WINDOWS_BUILD=1 clean
|
||||
|
||||
msg "build: Windows cross build - mingw64, make (Library only, default config without MBEDTLS_AESNI_C)" # ~ 30s
|
||||
./scripts/config.py unset MBEDTLS_AESNI_C #
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 lib
|
||||
make WINDOWS_BUILD=1 clean
|
||||
$MAKE_COMMAND CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 lib
|
||||
$MAKE_COMMAND WINDOWS_BUILD=1 clean
|
||||
}
|
||||
|
||||
support_build_mingw () {
|
||||
@@ -141,7 +141,7 @@ component_build_zeroize_checks () {
|
||||
scripts/config.py full
|
||||
|
||||
# Only compile - we're looking for sizeof-pointer-memaccess warnings
|
||||
make CFLAGS="'-DTF_PSA_CRYPTO_USER_CONFIG_FILE=\"$TF_PSA_CRYPTO_ROOT_DIR/tests/configs/user-config-zeroize-memset.h\"' -DMBEDTLS_TEST_DEFINES_ZEROIZE -Werror -Wsizeof-pointer-memaccess"
|
||||
$MAKE_COMMAND CFLAGS="'-DTF_PSA_CRYPTO_USER_CONFIG_FILE=\"$TF_PSA_CRYPTO_ROOT_DIR/tests/configs/user-config-zeroize-memset.h\"' -DMBEDTLS_TEST_DEFINES_ZEROIZE -Werror -Wsizeof-pointer-memaccess"
|
||||
}
|
||||
|
||||
component_test_zeroize () {
|
||||
@@ -162,12 +162,12 @@ component_test_zeroize () {
|
||||
for optimization_flag in -O2 -O3 -Ofast -Os; do
|
||||
for compiler in clang gcc; do
|
||||
msg "test: $compiler $optimization_flag, mbedtls_platform_zeroize()"
|
||||
make programs CC="$compiler" DEBUG=1 CFLAGS="$optimization_flag"
|
||||
$MAKE_COMMAND programs CC="$compiler" DEBUG=1 CFLAGS="$optimization_flag"
|
||||
gdb -ex "$gdb_disable_aslr" -x $FRAMEWORK/tests/programs/test_zeroize.gdb -nw -batch -nx 2>&1 | tee test_zeroize.log
|
||||
grep "The buffer was correctly zeroized" test_zeroize.log
|
||||
not grep -i "error" test_zeroize.log
|
||||
rm -f test_zeroize.log
|
||||
make clean
|
||||
$MAKE_COMMAND clean
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ component_test_crypto_with_static_key_slots() {
|
||||
scripts/config.py unset MBEDTLS_PSA_KEY_STORE_DYNAMIC
|
||||
|
||||
msg "test: crypto full + MBEDTLS_PSA_STATIC_KEY_SLOTS"
|
||||
make CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS" test
|
||||
$MAKE_COMMAND CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS" test
|
||||
}
|
||||
|
||||
# check_renamed_symbols HEADER LIB
|
||||
@@ -67,7 +67,7 @@ component_build_psa_crypto_spm () {
|
||||
# We can only compile, not link, since our test and sample programs
|
||||
# aren't equipped for the modified names used when MBEDTLS_PSA_CRYPTO_SPM
|
||||
# is active.
|
||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../framework/tests/include/spe' lib
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-Werror -Wall -Wextra -I../framework/tests/include/spe' lib
|
||||
|
||||
# Check that if a symbol is renamed by crypto_spe.h, the non-renamed
|
||||
# version is not present.
|
||||
@@ -138,16 +138,16 @@ component_test_psa_crypto_without_heap() {
|
||||
helper_libtestdriver1_make_main "$loc_accel_list" tests
|
||||
|
||||
msg "crypto without heap: test"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_no_rsa_key_pair_generation () {
|
||||
msg "build: default config minus PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE"
|
||||
scripts/config.py unset PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: default config minus PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_no_pem_no_fs () {
|
||||
@@ -241,10 +241,10 @@ component_test_psa_external_rng_no_drbg_use_psa () {
|
||||
scripts/config.py unset MBEDTLS_CTR_DRBG_C
|
||||
scripts/config.py unset MBEDTLS_HMAC_DRBG_C
|
||||
scripts/config.py unset PSA_WANT_ALG_DETERMINISTIC_ECDSA # Requires HMAC_DRBG
|
||||
make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: PSA_CRYPTO_EXTERNAL_RNG minus *_DRBG, PSA crypto - main suites"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "test: PSA_CRYPTO_EXTERNAL_RNG minus *_DRBG, PSA crypto - ssl-opt.sh (subset)"
|
||||
tests/ssl-opt.sh -f 'Default\|opaque'
|
||||
@@ -257,10 +257,10 @@ component_test_psa_external_rng_use_psa_crypto () {
|
||||
scripts/config.py unset MBEDTLS_CTR_DRBG_C
|
||||
scripts/config.py unset MBEDTLS_ENTROPY_NV_SEED
|
||||
scripts/config.py unset MBEDTLS_PLATFORM_NV_SEED_ALT
|
||||
make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: full + PSA_CRYPTO_EXTERNAL_RNG + USE_PSA_CRYPTO minus CTR_DRBG/NV_SEED"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "test: full + PSA_CRYPTO_EXTERNAL_RNG + USE_PSA_CRYPTO minus CTR_DRBG/NV_SEED"
|
||||
tests/ssl-opt.sh -f 'Default\|opaque'
|
||||
@@ -273,14 +273,14 @@ component_full_no_pkparse_pkwrite () {
|
||||
scripts/config.py unset MBEDTLS_PK_PARSE_C
|
||||
scripts/config.py unset MBEDTLS_PK_WRITE_C
|
||||
|
||||
make CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
# Ensure that PK_[PARSE|WRITE]_C were not re-enabled accidentally (additive config).
|
||||
not grep mbedtls_pk_parse_key ${BUILTIN_SRC_PATH}/pkparse.o
|
||||
not grep mbedtls_pk_write_key_der ${BUILTIN_SRC_PATH}/pkwrite.o
|
||||
|
||||
msg "test: full without pkparse and pkwrite"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_crypto_full_md_light_only () {
|
||||
@@ -300,14 +300,14 @@ component_test_crypto_full_md_light_only () {
|
||||
|
||||
# Note: MD-light is auto-enabled in build_info.h by modules that need it,
|
||||
# which we haven't disabled, so no need to explicitly enable it.
|
||||
make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
# Make sure we don't have the HMAC functions, but the hashing functions
|
||||
not grep mbedtls_md_hmac ${BUILTIN_SRC_PATH}/md.o
|
||||
grep mbedtls_md ${BUILTIN_SRC_PATH}/md.o
|
||||
|
||||
msg "test: crypto_full with only the light subset of MD"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_full_no_cipher () {
|
||||
@@ -334,13 +334,13 @@ component_test_full_no_cipher () {
|
||||
# The following modules directly depends on CIPHER_C
|
||||
scripts/config.py unset MBEDTLS_NIST_KW_C
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
# Ensure that CIPHER_C was not re-enabled
|
||||
not grep mbedtls_cipher_init ${BUILTIN_SRC_PATH}/cipher.o
|
||||
|
||||
msg "test: full no CIPHER"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_full_no_ccm () {
|
||||
@@ -359,10 +359,10 @@ component_test_full_no_ccm () {
|
||||
# PSA_WANT_ALG_CCM to be re-enabled.
|
||||
scripts/config.py unset PSA_WANT_ALG_CCM
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: full no PSA_WANT_ALG_CCM"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_full_no_ccm_star_no_tag () {
|
||||
@@ -390,13 +390,13 @@ component_test_full_no_ccm_star_no_tag () {
|
||||
scripts/config.py unset PSA_WANT_ALG_CBC_NO_PADDING
|
||||
scripts/config.py unset PSA_WANT_ALG_CBC_PKCS7
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
# Ensure MBEDTLS_PSA_BUILTIN_CIPHER was not enabled
|
||||
not grep mbedtls_psa_cipher ${PSA_CORE_PATH}/psa_crypto_cipher.o
|
||||
|
||||
msg "test: full no PSA_WANT_ALG_CCM_STAR_NO_TAG"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_config_symmetric_only () {
|
||||
@@ -444,10 +444,10 @@ component_test_everest_curve25519_only () {
|
||||
scripts/config.py unset-all "PSA_WANT_ECC_[0-9A-Z_a-z]*$"
|
||||
scripts/config.py set PSA_WANT_ECC_MONTGOMERY_255
|
||||
|
||||
make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: Everest ECDH context, only Curve25519" # ~ 50s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_psa_collect_statuses () {
|
||||
@@ -491,14 +491,14 @@ component_test_crypto_for_psa_service () {
|
||||
scripts/config.py unset MBEDTLS_PK_C
|
||||
scripts/config.py unset MBEDTLS_PK_PARSE_C
|
||||
scripts/config.py unset MBEDTLS_PK_WRITE_C
|
||||
make CFLAGS='-O1 -Werror' all test
|
||||
$MAKE_COMMAND CFLAGS='-O1 -Werror' all test
|
||||
are_empty_libraries library/libmbedx509.* library/libmbedtls.*
|
||||
}
|
||||
|
||||
component_build_crypto_baremetal () {
|
||||
msg "build: make, crypto only, baremetal config"
|
||||
scripts/config.py crypto_baremetal
|
||||
make CFLAGS="-O1 -Werror -I$PWD/framework/tests/include/baremetal-override/"
|
||||
$MAKE_COMMAND CFLAGS="-O1 -Werror -I$PWD/framework/tests/include/baremetal-override/"
|
||||
are_empty_libraries library/libmbedx509.* library/libmbedtls.*
|
||||
}
|
||||
|
||||
@@ -543,10 +543,10 @@ component_test_psa_crypto_config_ffdh_2048_only () {
|
||||
scripts/config.py unset PSA_WANT_DH_RFC7919_6144
|
||||
scripts/config.py unset PSA_WANT_DH_RFC7919_8192
|
||||
|
||||
make CFLAGS="$ASAN_CFLAGS -Werror" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CFLAGS="$ASAN_CFLAGS -Werror" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: full config - only DH 2048"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt: full config - only DH 2048"
|
||||
tests/ssl-opt.sh -f "ffdh"
|
||||
@@ -587,7 +587,7 @@ component_test_psa_crypto_config_accel_ecdsa () {
|
||||
# -------------
|
||||
|
||||
msg "test: accelerated ECDSA"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_psa_crypto_config_accel_ecdh () {
|
||||
@@ -623,7 +623,7 @@ component_test_psa_crypto_config_accel_ecdh () {
|
||||
# -------------
|
||||
|
||||
msg "test: accelerated ECDH"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_psa_crypto_config_accel_ffdh () {
|
||||
@@ -654,7 +654,7 @@ component_test_psa_crypto_config_accel_ffdh () {
|
||||
# -------------
|
||||
|
||||
msg "test: full with accelerated FFDH"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt: full with accelerated FFDH alg"
|
||||
tests/ssl-opt.sh -f "ffdh"
|
||||
@@ -666,10 +666,10 @@ component_test_psa_crypto_config_reference_ffdh () {
|
||||
# Start with full (USE_PSA and TLS 1.3)
|
||||
helper_libtestdriver1_adjust_config "full"
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test suites: full with non-accelerated FFDH alg"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt: full with non-accelerated FFDH alg"
|
||||
tests/ssl-opt.sh -f "ffdh"
|
||||
@@ -704,7 +704,7 @@ component_test_psa_crypto_config_accel_pake () {
|
||||
# -------------
|
||||
|
||||
msg "test: full with accelerated PAKE"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_psa_crypto_config_accel_ecc_some_key_types () {
|
||||
@@ -758,7 +758,7 @@ component_test_psa_crypto_config_accel_ecc_some_key_types () {
|
||||
# -------------
|
||||
|
||||
msg "test suites: full with accelerated EC algs and some key types"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
# Run tests with only (non-)Weierstrass accelerated
|
||||
@@ -864,7 +864,7 @@ common_test_psa_crypto_config_accel_ecc_some_curves () {
|
||||
# -------------
|
||||
|
||||
msg "test suites: crypto_full minus PK with accelerated EC algs and $desc curves"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_psa_crypto_config_accel_ecc_weierstrass_curves () {
|
||||
@@ -938,7 +938,7 @@ component_test_psa_crypto_config_accel_ecc_ecp_light_only () {
|
||||
# -------------
|
||||
|
||||
msg "test suites: full with accelerated EC algs"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt: full with accelerated EC algs"
|
||||
tests/ssl-opt.sh
|
||||
@@ -950,10 +950,10 @@ component_test_psa_crypto_config_reference_ecc_ecp_light_only () {
|
||||
|
||||
config_psa_crypto_config_ecp_light_only 0
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test suites: full with non-accelerated EC algs"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt: full with non-accelerated EC algs"
|
||||
tests/ssl-opt.sh
|
||||
@@ -1034,7 +1034,7 @@ component_test_psa_crypto_config_accel_ecc_no_ecp_at_all () {
|
||||
# -------------
|
||||
|
||||
msg "test: full + accelerated EC algs - ECP"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt: full + accelerated EC algs - ECP"
|
||||
tests/ssl-opt.sh
|
||||
@@ -1048,10 +1048,10 @@ component_test_psa_crypto_config_reference_ecc_no_ecp_at_all () {
|
||||
|
||||
config_psa_crypto_no_ecp_at_all 0
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: full + non accelerated EC algs"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt: full + non accelerated EC algs"
|
||||
tests/ssl-opt.sh
|
||||
@@ -1183,7 +1183,7 @@ common_test_psa_crypto_config_accel_ecc_ffdh_no_bignum () {
|
||||
|
||||
msg "test suites: full + accelerated $accel_text algs + USE_PSA - $removed_text - BIGNUM"
|
||||
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt: full + accelerated $accel_text algs + USE_PSA - $removed_text - BIGNUM"
|
||||
tests/ssl-opt.sh
|
||||
@@ -1214,10 +1214,10 @@ common_test_psa_crypto_config_reference_ecc_ffdh_no_bignum () {
|
||||
|
||||
config_psa_crypto_config_accel_ecc_ffdh_no_bignum 0 "$test_target"
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test suites: full + non accelerated EC algs + USE_PSA"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt: full + non accelerated $accel_text algs + USE_PSA"
|
||||
tests/ssl-opt.sh
|
||||
@@ -1273,7 +1273,7 @@ component_test_tfm_config_p256m_driver_accel_ec () {
|
||||
common_tfm_config
|
||||
|
||||
# Build crypto library
|
||||
make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS -I../framework/tests/include/spe" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS -I../framework/tests/include/spe" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
# Make sure any built-in EC alg was not re-enabled by accident (additive config)
|
||||
not grep mbedtls_ecdsa_ ${BUILTIN_SRC_PATH}/ecdsa.o
|
||||
@@ -1292,7 +1292,7 @@ component_test_tfm_config_p256m_driver_accel_ec () {
|
||||
|
||||
# Run the tests
|
||||
msg "test: TF-M config + p256m driver + accel ECDH(E)/ECDSA"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
# Keep this in sync with component_test_tfm_config_p256m_driver_accel_ec() as
|
||||
@@ -1306,7 +1306,7 @@ component_test_tfm_config_no_p256m () {
|
||||
scripts/config.py -f "$CRYPTO_CONFIG_H" unset MBEDTLS_PSA_P256M_DRIVER_ENABLED
|
||||
|
||||
msg "build: TF-M config without p256m"
|
||||
make CFLAGS='-Werror -Wall -Wextra -I../framework/tests/include/spe' tests
|
||||
$MAKE_COMMAND CFLAGS='-Werror -Wall -Wextra -I../framework/tests/include/spe' tests
|
||||
|
||||
# Check that p256m was not built
|
||||
not grep p256_ecdsa_ library/libmbedcrypto.a
|
||||
@@ -1316,7 +1316,7 @@ component_test_tfm_config_no_p256m () {
|
||||
not grep mbedtls_cipher ${BUILTIN_SRC_PATH}/cipher.o
|
||||
|
||||
msg "test: TF-M config without p256m"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
# This is an helper used by:
|
||||
@@ -1340,10 +1340,10 @@ build_and_test_psa_want_key_pair_partial () {
|
||||
# crypto_config.h so we just disable the one we don't want.
|
||||
scripts/config.py unset "$disabled_psa_want"
|
||||
|
||||
make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: $base_config - ${disabled_psa_want}"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_psa_ecc_key_pair_no_derive () {
|
||||
@@ -1405,7 +1405,7 @@ component_test_psa_crypto_config_accel_rsa_crypto () {
|
||||
# -------------
|
||||
|
||||
msg "test: crypto_full with accelerated RSA"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_psa_crypto_config_reference_rsa_crypto () {
|
||||
@@ -1417,12 +1417,12 @@ component_test_psa_crypto_config_reference_rsa_crypto () {
|
||||
|
||||
# Build
|
||||
# -----
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
# Run the tests
|
||||
# -------------
|
||||
msg "test: crypto_full with non-accelerated RSA"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
# This is a temporary test to verify that full RSA support is present even when
|
||||
@@ -1452,10 +1452,10 @@ component_test_new_psa_want_key_pair_symbol () {
|
||||
scripts/config.py unset PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT
|
||||
scripts/config.py unset PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "Test: crypto config - PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
# Parse only 1 relevant line from the outcome file, i.e. a test which is
|
||||
# performing RSA signature.
|
||||
@@ -1499,7 +1499,7 @@ component_test_psa_crypto_config_accel_hash () {
|
||||
# -------------
|
||||
|
||||
msg "test: accelerated hash"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
# Auxiliary function to build config for hashes with and without drivers
|
||||
@@ -1548,7 +1548,7 @@ component_test_psa_crypto_config_accel_hash_use_psa () {
|
||||
# -------------
|
||||
|
||||
msg "test: full with accelerated hashes"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
# This is mostly useful so that we can later compare outcome files with
|
||||
# the reference config in analyze_outcomes.py, to check that the
|
||||
@@ -1571,10 +1571,10 @@ component_test_psa_crypto_config_reference_hash_use_psa () {
|
||||
|
||||
config_psa_crypto_hash_use_psa 0
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: full without accelerated hashes"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "test: ssl-opt.sh, full without accelerated hashes"
|
||||
tests/ssl-opt.sh
|
||||
@@ -1632,7 +1632,7 @@ component_test_psa_crypto_config_accel_hmac () {
|
||||
# -------------
|
||||
|
||||
msg "test: full with accelerated hmac"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_psa_crypto_config_reference_hmac () {
|
||||
@@ -1640,10 +1640,10 @@ component_test_psa_crypto_config_reference_hmac () {
|
||||
|
||||
config_psa_crypto_hmac_use_psa 0
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: full without accelerated hmac"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_psa_crypto_config_accel_aead () {
|
||||
@@ -1677,7 +1677,7 @@ component_test_psa_crypto_config_accel_aead () {
|
||||
# -------------
|
||||
|
||||
msg "test: accelerated AEAD"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
# This is a common configuration function used in:
|
||||
@@ -1734,7 +1734,7 @@ component_test_psa_crypto_config_accel_cipher_aead_cmac () {
|
||||
# -------------
|
||||
|
||||
msg "test: full config with accelerated cipher inc. AEAD and CMAC"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt: full config with accelerated cipher inc. AEAD and CMAC"
|
||||
# Exclude password-protected key tests — they require built-in CBC and AES.
|
||||
@@ -1752,10 +1752,10 @@ component_test_psa_crypto_config_reference_cipher_aead_cmac () {
|
||||
# This can be removed once we remove DES from the library.
|
||||
scripts/config.py unset PSA_WANT_KEY_TYPE_DES
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: full config with non-accelerated cipher inc. AEAD and CMAC"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt: full config with non-accelerated cipher inc. AEAD and CMAC"
|
||||
# Exclude password-protected key tests as in test_psa_crypto_config_accel_cipher_aead_cmac.
|
||||
@@ -1826,7 +1826,7 @@ component_test_full_block_cipher_psa_dispatch_static_keystore () {
|
||||
# -------------
|
||||
|
||||
msg "test: full + PSA dispatch in block_cipher with static keystore"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_full_block_cipher_psa_dispatch () {
|
||||
@@ -1857,7 +1857,7 @@ component_test_full_block_cipher_psa_dispatch () {
|
||||
# -------------
|
||||
|
||||
msg "test: full + PSA dispatch in block_cipher"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
# This is the reference component of component_test_full_block_cipher_psa_dispatch
|
||||
@@ -1866,20 +1866,20 @@ component_test_full_block_cipher_legacy_dispatch () {
|
||||
|
||||
common_block_cipher_dispatch 0
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: full + legacy dispatch in block_cipher"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_aead_chachapoly_disabled () {
|
||||
msg "build: full minus CHACHAPOLY"
|
||||
scripts/config.py full
|
||||
scripts/config.py unset PSA_WANT_ALG_CHACHA20_POLY1305
|
||||
make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: full minus CHACHAPOLY"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_aead_only_ccm () {
|
||||
@@ -1887,10 +1887,10 @@ component_test_aead_only_ccm () {
|
||||
scripts/config.py full
|
||||
scripts/config.py unset PSA_WANT_ALG_CHACHA20_POLY1305
|
||||
scripts/config.py unset PSA_WANT_ALG_GCM
|
||||
make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: full minus CHACHAPOLY and GCM"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_ccm_aes_sha256 () {
|
||||
@@ -1900,9 +1900,9 @@ component_test_ccm_aes_sha256 () {
|
||||
echo '#define MBEDTLS_CONFIG_H ' >"$CONFIG_H"
|
||||
cp tf-psa-crypto/configs/crypto-config-ccm-aes-sha256.h "$CRYPTO_CONFIG_H"
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
msg "test: CCM + AES + SHA256 configuration"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
# Test that the given .o file builds with all (valid) combinations of the given options.
|
||||
@@ -2044,12 +2044,12 @@ END
|
||||
END
|
||||
|
||||
msg "all loops unrolled"
|
||||
make clean
|
||||
$MAKE_COMMAND clean
|
||||
make -C tests ../tf-psa-crypto/tests/test_suite_shax CFLAGS="-DMBEDTLS_SHA3_THETA_UNROLL=1 -DMBEDTLS_SHA3_PI_UNROLL=1 -DMBEDTLS_SHA3_CHI_UNROLL=1 -DMBEDTLS_SHA3_RHO_UNROLL=1"
|
||||
./tf-psa-crypto/tests/test_suite_shax
|
||||
|
||||
msg "all loops rolled up"
|
||||
make clean
|
||||
$MAKE_COMMAND clean
|
||||
make -C tests ../tf-psa-crypto/tests/test_suite_shax CFLAGS="-DMBEDTLS_SHA3_THETA_UNROLL=0 -DMBEDTLS_SHA3_PI_UNROLL=0 -DMBEDTLS_SHA3_CHI_UNROLL=0 -DMBEDTLS_SHA3_RHO_UNROLL=0"
|
||||
./tf-psa-crypto/tests/test_suite_shax
|
||||
}
|
||||
@@ -2091,10 +2091,10 @@ component_test_aes_only_128_bit_keys () {
|
||||
scripts/config.py set MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
scripts/config.py set MBEDTLS_PSA_CRYPTO_RNG_STRENGTH 128
|
||||
|
||||
make CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
$MAKE_COMMAND CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
|
||||
msg "test: default config + AES_ONLY_128_BIT_KEY_LENGTH"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_no_ctr_drbg_aes_only_128_bit_keys () {
|
||||
@@ -2103,10 +2103,10 @@ component_test_no_ctr_drbg_aes_only_128_bit_keys () {
|
||||
scripts/config.py set MBEDTLS_PSA_CRYPTO_RNG_STRENGTH 128
|
||||
scripts/config.py unset MBEDTLS_CTR_DRBG_C
|
||||
|
||||
make CC=clang CFLAGS='-Werror -Wall -Wextra'
|
||||
$MAKE_COMMAND CC=clang CFLAGS='-Werror -Wall -Wextra'
|
||||
|
||||
msg "test: default config + AES_ONLY_128_BIT_KEY_LENGTH - CTR_DRBG_C"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_aes_only_128_bit_keys_have_builtins () {
|
||||
@@ -2116,10 +2116,10 @@ component_test_aes_only_128_bit_keys_have_builtins () {
|
||||
scripts/config.py unset MBEDTLS_AESNI_C
|
||||
scripts/config.py unset MBEDTLS_AESCE_C
|
||||
|
||||
make CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
$MAKE_COMMAND CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
|
||||
msg "test: default config + AES_ONLY_128_BIT_KEY_LENGTH - AESNI_C - AESCE_C"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "selftest: default config + AES_ONLY_128_BIT_KEY_LENGTH - AESNI_C - AESCE_C"
|
||||
programs/test/selftest
|
||||
@@ -2131,38 +2131,38 @@ component_test_gcm_largetable () {
|
||||
scripts/config.py unset MBEDTLS_AESNI_C
|
||||
scripts/config.py unset MBEDTLS_AESCE_C
|
||||
|
||||
make CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
$MAKE_COMMAND CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
|
||||
msg "test: default config - GCM_LARGE_TABLE - AESNI_C - AESCE_C"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_aes_fewer_tables () {
|
||||
msg "build: default config with AES_FEWER_TABLES enabled"
|
||||
scripts/config.py set MBEDTLS_AES_FEWER_TABLES
|
||||
make CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
$MAKE_COMMAND CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
|
||||
msg "test: AES_FEWER_TABLES"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_aes_rom_tables () {
|
||||
msg "build: default config with AES_ROM_TABLES enabled"
|
||||
scripts/config.py set MBEDTLS_AES_ROM_TABLES
|
||||
make CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
$MAKE_COMMAND CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
|
||||
msg "test: AES_ROM_TABLES"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_aes_fewer_tables_and_rom_tables () {
|
||||
msg "build: default config with AES_ROM_TABLES and AES_FEWER_TABLES enabled"
|
||||
scripts/config.py set MBEDTLS_AES_FEWER_TABLES
|
||||
scripts/config.py set MBEDTLS_AES_ROM_TABLES
|
||||
make CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
$MAKE_COMMAND CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||
|
||||
msg "test: AES_FEWER_TABLES + AES_ROM_TABLES"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
# helper for component_test_block_cipher_no_decrypt_aesni() which:
|
||||
@@ -2200,8 +2200,8 @@ helper_block_cipher_no_decrypt_build_test () {
|
||||
[ -n "$unset_opts" ] && echo "Disabling: $unset_opts" && scripts/config.py unset-all $unset_opts
|
||||
|
||||
msg "build: default config + BLOCK_CIPHER_NO_DECRYPT${set_opts:+ + $set_opts}${unset_opts:+ - $unset_opts} with $cflags${ldflags:+, $ldflags}"
|
||||
make clean
|
||||
make CFLAGS="-O2 $cflags" LDFLAGS="$ldflags"
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND CFLAGS="-O2 $cflags" LDFLAGS="$ldflags"
|
||||
|
||||
# Make sure we don't have mbedtls_xxx_setkey_dec in AES/ARIA/CAMELLIA
|
||||
not grep mbedtls_aes_setkey_dec ${BUILTIN_SRC_PATH}/aes.o
|
||||
@@ -2213,7 +2213,7 @@ helper_block_cipher_no_decrypt_build_test () {
|
||||
not grep mbedtls_aesni_inverse_key ${BUILTIN_SRC_PATH}/aesni.o
|
||||
|
||||
msg "test: default config + BLOCK_CIPHER_NO_DECRYPT${set_opts:+ + $set_opts}${unset_opts:+ - $unset_opts} with $cflags${ldflags:+, $ldflags}"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "selftest: default config + BLOCK_CIPHER_NO_DECRYPT${set_opts:+ + $set_opts}${unset_opts:+ - $unset_opts} with $cflags${ldflags:+, $ldflags}"
|
||||
programs/test/selftest
|
||||
@@ -2352,10 +2352,10 @@ component_test_full_static_keystore () {
|
||||
msg "build: full config - MBEDTLS_PSA_KEY_STORE_DYNAMIC"
|
||||
scripts/config.py full
|
||||
scripts/config.py unset MBEDTLS_PSA_KEY_STORE_DYNAMIC
|
||||
make CC=clang CFLAGS="$ASAN_CFLAGS -Os" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=clang CFLAGS="$ASAN_CFLAGS -Os" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: full config - MBEDTLS_PSA_KEY_STORE_DYNAMIC"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_psa_crypto_drivers () {
|
||||
@@ -2373,20 +2373,20 @@ component_test_psa_crypto_drivers () {
|
||||
loc_cflags="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_CONFIG_ADJUST_TEST_ACCELERATORS"
|
||||
loc_cflags="${loc_cflags} -I../framework/tests/include"
|
||||
|
||||
make CC=$ASAN_CC CFLAGS="${loc_cflags}" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=$ASAN_CC CFLAGS="${loc_cflags}" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: full + test drivers dispatching to builtins"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_build_psa_config_file () {
|
||||
msg "build: make with TF_PSA_CRYPTO_CONFIG_FILE" # ~40s
|
||||
cp "$CRYPTO_CONFIG_H" psa_test_config.h
|
||||
echo '#error "TF_PSA_CRYPTO_CONFIG_FILE is not working"' >"$CRYPTO_CONFIG_H"
|
||||
make CFLAGS="-I '$PWD' -DTF_PSA_CRYPTO_CONFIG_FILE='\"psa_test_config.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="-I '$PWD' -DTF_PSA_CRYPTO_CONFIG_FILE='\"psa_test_config.h\"'"
|
||||
# Make sure this feature is enabled. We'll disable it in the next phase.
|
||||
programs/test/query_compile_time_config PSA_WANT_ALG_CMAC
|
||||
make clean
|
||||
$MAKE_COMMAND clean
|
||||
|
||||
msg "build: make with TF_PSA_CRYPTO_CONFIG_FILE + TF_PSA_CRYPTO_USER_CONFIG_FILE" # ~40s
|
||||
# In the user config, disable one feature and its dependencies, which will
|
||||
@@ -2394,7 +2394,7 @@ component_build_psa_config_file () {
|
||||
# query_compile_time_config.
|
||||
echo '#undef PSA_WANT_ALG_CMAC' >psa_user_config.h
|
||||
echo '#undef PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128' >> psa_user_config.h
|
||||
make CFLAGS="-I '$PWD' -DTF_PSA_CRYPTO_CONFIG_FILE='\"psa_test_config.h\"' -DTF_PSA_CRYPTO_USER_CONFIG_FILE='\"psa_user_config.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="-I '$PWD' -DTF_PSA_CRYPTO_CONFIG_FILE='\"psa_test_config.h\"' -DTF_PSA_CRYPTO_USER_CONFIG_FILE='\"psa_user_config.h\"'"
|
||||
not programs/test/query_compile_time_config PSA_WANT_ALG_CMAC
|
||||
|
||||
rm -f psa_test_config.h psa_user_config.h
|
||||
@@ -2410,7 +2410,7 @@ component_build_psa_alt_headers () {
|
||||
# Build the library and some programs.
|
||||
# Don't build the fuzzers to avoid having to go through hoops to set
|
||||
# a correct include path for programs/fuzz/Makefile.
|
||||
make CFLAGS="-I ../framework/tests/include/alt-extra -DMBEDTLS_PSA_CRYPTO_PLATFORM_FILE='\"psa/crypto_platform_alt.h\"' -DMBEDTLS_PSA_CRYPTO_STRUCT_FILE='\"psa/crypto_struct_alt.h\"'" lib
|
||||
$MAKE_COMMAND CFLAGS="-I ../framework/tests/include/alt-extra -DMBEDTLS_PSA_CRYPTO_PLATFORM_FILE='\"psa/crypto_platform_alt.h\"' -DMBEDTLS_PSA_CRYPTO_STRUCT_FILE='\"psa/crypto_struct_alt.h\"'" lib
|
||||
make -C programs -o fuzz CFLAGS="-I ../framework/tests/include/alt-extra -DMBEDTLS_PSA_CRYPTO_PLATFORM_FILE='\"psa/crypto_platform_alt.h\"' -DMBEDTLS_PSA_CRYPTO_STRUCT_FILE='\"psa/crypto_struct_alt.h\"'"
|
||||
|
||||
# Check that we're getting the alternative include guards and not the
|
||||
|
||||
@@ -28,11 +28,11 @@ component_test_psa_driver_get_entropy()
|
||||
scripts/config.py unset MBEDTLS_ENTROPY_NV_SEED
|
||||
scripts/config.py set MBEDTLS_PSA_DRIVER_GET_ENTROPY
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
# Run all the tests
|
||||
msg "test: default - MBEDTLS_PSA_BUILTIN_GET_ENTROPY + MBEDTLS_PSA_DRIVER_GET_ENTROPY"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_build_no_sockets () {
|
||||
@@ -43,7 +43,7 @@ component_build_no_sockets () {
|
||||
scripts/config.py unset MBEDTLS_NET_C # getaddrinfo() undeclared, etc.
|
||||
scripts/config.py unset MBEDTLS_PSA_BUILTIN_GET_ENTROPY # prevent syscall() on GNU/Linux
|
||||
scripts/config.py set MBEDTLS_PSA_DRIVER_GET_ENTROPY
|
||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -O1 -std=c99 -pedantic' lib
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-Werror -Wall -Wextra -O1 -std=c99 -pedantic' lib
|
||||
}
|
||||
|
||||
component_test_no_date_time () {
|
||||
@@ -73,10 +73,10 @@ component_test_have_int32 () {
|
||||
scripts/config.py unset MBEDTLS_HAVE_ASM
|
||||
scripts/config.py unset MBEDTLS_AESNI_C
|
||||
scripts/config.py unset MBEDTLS_AESCE_C
|
||||
make CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra -DMBEDTLS_HAVE_INT32'
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra -DMBEDTLS_HAVE_INT32'
|
||||
|
||||
msg "test: gcc, force 32-bit bignum limbs"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_have_int64 () {
|
||||
@@ -84,10 +84,10 @@ component_test_have_int64 () {
|
||||
scripts/config.py unset MBEDTLS_HAVE_ASM
|
||||
scripts/config.py unset MBEDTLS_AESNI_C
|
||||
scripts/config.py unset MBEDTLS_AESCE_C
|
||||
make CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra -DMBEDTLS_HAVE_INT64'
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra -DMBEDTLS_HAVE_INT64'
|
||||
|
||||
msg "test: gcc, force 64-bit bignum limbs"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_have_int32_cmake_new_bignum () {
|
||||
@@ -97,28 +97,28 @@ component_test_have_int32_cmake_new_bignum () {
|
||||
scripts/config.py unset MBEDTLS_AESCE_C
|
||||
scripts/config.py set MBEDTLS_TEST_HOOKS
|
||||
scripts/config.py set MBEDTLS_ECP_WITH_MPI_UINT
|
||||
make CC=gcc CFLAGS="$ASAN_CFLAGS -Werror -Wall -Wextra -DMBEDTLS_HAVE_INT32" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=gcc CFLAGS="$ASAN_CFLAGS -Werror -Wall -Wextra -DMBEDTLS_HAVE_INT32" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: gcc, force 32-bit bignum limbs, new bignum interface, test hooks (ASan build)"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_no_udbl_division () {
|
||||
msg "build: MBEDTLS_NO_UDBL_DIVISION native" # ~ 10s
|
||||
scripts/config.py full
|
||||
scripts/config.py set MBEDTLS_NO_UDBL_DIVISION
|
||||
make CFLAGS='-Werror -O1'
|
||||
$MAKE_COMMAND CFLAGS='-Werror -O1'
|
||||
|
||||
msg "test: MBEDTLS_NO_UDBL_DIVISION native" # ~ 10s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_no_64bit_multiplication () {
|
||||
msg "build: MBEDTLS_NO_64BIT_MULTIPLICATION native" # ~ 10s
|
||||
scripts/config.py full
|
||||
scripts/config.py set MBEDTLS_NO_64BIT_MULTIPLICATION
|
||||
make CFLAGS='-Werror -O1'
|
||||
$MAKE_COMMAND CFLAGS='-Werror -O1'
|
||||
|
||||
msg "test: MBEDTLS_NO_64BIT_MULTIPLICATION native" # ~ 10s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
@@ -67,10 +67,10 @@ component_test_tls1_2_default_stream_cipher_only () {
|
||||
scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION
|
||||
scripts/config.py unset MBEDTLS_SSL_TICKET_C
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: default with only stream cipher use psa"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
# Not running ssl-opt.sh because most tests require a non-NULL ciphersuite.
|
||||
}
|
||||
@@ -95,10 +95,10 @@ component_test_tls1_2_default_cbc_legacy_cipher_only () {
|
||||
scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION
|
||||
scripts/config.py unset MBEDTLS_SSL_TICKET_C
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: default with only CBC-legacy cipher use psa"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "test: default with only CBC-legacy cipher use psa - ssl-opt.sh (subset)"
|
||||
tests/ssl-opt.sh -f "TLS 1.2"
|
||||
@@ -124,10 +124,10 @@ component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only () {
|
||||
scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION
|
||||
scripts/config.py unset MBEDTLS_SSL_TICKET_C
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: default with only CBC-legacy and CBC-EtM ciphers use psa"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "test: default with only CBC-legacy and CBC-EtM ciphers use psa - ssl-opt.sh (subset)"
|
||||
tests/ssl-opt.sh -f "TLS 1.2"
|
||||
@@ -245,7 +245,7 @@ build_full_minus_something_and_test_tls () {
|
||||
scripts/config.py unset $sym
|
||||
done
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: full minus something, test TLS"
|
||||
( cd tests; ./test_suite_ssl )
|
||||
@@ -272,14 +272,14 @@ component_build_no_ssl_srv () {
|
||||
msg "build: full config except SSL server, make, gcc" # ~ 30s
|
||||
scripts/config.py full
|
||||
scripts/config.py unset MBEDTLS_SSL_SRV_C
|
||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -O1 -Wmissing-prototypes'
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-Werror -Wall -Wextra -O1 -Wmissing-prototypes'
|
||||
}
|
||||
|
||||
component_build_no_ssl_cli () {
|
||||
msg "build: full config except SSL client, make, gcc" # ~ 30s
|
||||
scripts/config.py full
|
||||
scripts/config.py unset MBEDTLS_SSL_CLI_C
|
||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -O1 -Wmissing-prototypes'
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-Werror -Wall -Wextra -O1 -Wmissing-prototypes'
|
||||
}
|
||||
|
||||
component_test_no_max_fragment_length () {
|
||||
@@ -370,10 +370,10 @@ component_test_when_no_ciphersuites_have_mac () {
|
||||
|
||||
scripts/config.py unset MBEDTLS_SSL_NULL_CIPHERSUITES
|
||||
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
|
||||
msg "test: !MBEDTLS_SSL_SOME_SUITES_USE_MAC"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "test ssl-opt.sh: !MBEDTLS_SSL_SOME_SUITES_USE_MAC"
|
||||
tests/ssl-opt.sh -f 'Default\|EtM' -e 'without EtM'
|
||||
@@ -401,10 +401,10 @@ component_test_tls13_only () {
|
||||
scripts/config.py set MBEDTLS_SSL_RECORD_SIZE_LIMIT
|
||||
|
||||
scripts/config.py set MBEDTLS_TEST_HOOKS
|
||||
make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
|
||||
msg "test: TLS 1.3 only, all key exchange modes enabled"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "ssl-opt.sh: TLS 1.3 only, all key exchange modes enabled"
|
||||
tests/ssl-opt.sh
|
||||
@@ -438,7 +438,7 @@ component_test_tls13_only_psk () {
|
||||
scripts/config.py unset PSA_WANT_DH_RFC7919_6144
|
||||
scripts/config.py unset PSA_WANT_DH_RFC7919_8192
|
||||
|
||||
make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
|
||||
msg "test_suite_ssl: TLS 1.3 only, only PSK key exchange mode enabled"
|
||||
cd tests; ./test_suite_ssl; cd ..
|
||||
@@ -454,7 +454,7 @@ component_test_tls13_only_ephemeral () {
|
||||
scripts/config.py unset MBEDTLS_SSL_EARLY_DATA
|
||||
|
||||
scripts/config.py set MBEDTLS_TEST_HOOKS
|
||||
make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
|
||||
msg "test_suite_ssl: TLS 1.3 only, only ephemeral key exchange mode"
|
||||
cd tests; ./test_suite_ssl; cd ..
|
||||
@@ -473,7 +473,7 @@ component_test_tls13_only_ephemeral_ffdh () {
|
||||
scripts/config.py set MBEDTLS_TEST_HOOKS
|
||||
scripts/config.py unset PSA_WANT_ALG_ECDH
|
||||
|
||||
make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
|
||||
msg "test_suite_ssl: TLS 1.3 only, only ephemeral ffdh key exchange mode"
|
||||
cd tests; ./test_suite_ssl; cd ..
|
||||
@@ -498,7 +498,7 @@ component_test_tls13_only_psk_ephemeral () {
|
||||
scripts/config.py unset PSA_WANT_ALG_RSA_OAEP
|
||||
scripts/config.py unset PSA_WANT_ALG_RSA_PSS
|
||||
|
||||
make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
|
||||
msg "test_suite_ssl: TLS 1.3 only, only PSK ephemeral key exchange mode"
|
||||
cd tests; ./test_suite_ssl; cd ..
|
||||
@@ -524,7 +524,7 @@ component_test_tls13_only_psk_ephemeral_ffdh () {
|
||||
scripts/config.py unset PSA_WANT_ALG_RSA_OAEP
|
||||
scripts/config.py unset PSA_WANT_ALG_RSA_PSS
|
||||
|
||||
make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
|
||||
msg "test_suite_ssl: TLS 1.3 only, only PSK ephemeral ffdh key exchange mode"
|
||||
cd tests; ./test_suite_ssl; cd ..
|
||||
@@ -548,7 +548,7 @@ component_test_tls13_only_psk_all () {
|
||||
scripts/config.py unset PSA_WANT_ALG_RSA_OAEP
|
||||
scripts/config.py unset PSA_WANT_ALG_RSA_PSS
|
||||
|
||||
make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
|
||||
msg "test_suite_ssl: TLS 1.3 only, PSK and PSK ephemeral key exchange modes"
|
||||
cd tests; ./test_suite_ssl; cd ..
|
||||
@@ -563,7 +563,7 @@ component_test_tls13_only_ephemeral_all () {
|
||||
scripts/config.py set MBEDTLS_SSL_EARLY_DATA
|
||||
|
||||
scripts/config.py set MBEDTLS_TEST_HOOKS
|
||||
make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
|
||||
|
||||
msg "test_suite_ssl: TLS 1.3 only, ephemeral and PSK ephemeral key exchange modes"
|
||||
cd tests; ./test_suite_ssl; cd ..
|
||||
|
||||
@@ -14,10 +14,10 @@ component_test_no_x509_info () {
|
||||
scripts/config.py full
|
||||
scripts/config.py unset MBEDTLS_MEMORY_BACKTRACE # too slow for tests
|
||||
scripts/config.py set MBEDTLS_X509_REMOVE_INFO
|
||||
make CFLAGS='-Werror -O2'
|
||||
$MAKE_COMMAND CFLAGS='-Werror -O2'
|
||||
|
||||
msg "test: full + MBEDTLS_X509_REMOVE_INFO" # ~ 10s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "test: ssl-opt.sh, full + MBEDTLS_X509_REMOVE_INFO" # ~ 1 min
|
||||
tests/ssl-opt.sh
|
||||
@@ -28,8 +28,8 @@ component_test_sw_inet_pton () {
|
||||
|
||||
# MBEDTLS_TEST_HOOKS required for x509_crt_parse_cn_inet_pton
|
||||
scripts/config.py set MBEDTLS_TEST_HOOKS
|
||||
make CFLAGS="-DMBEDTLS_TEST_SW_INET_PTON"
|
||||
$MAKE_COMMAND CFLAGS="-DMBEDTLS_TEST_SW_INET_PTON"
|
||||
|
||||
msg "test: default plus MBEDTLS_TEST_SW_INET_PTON"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
@@ -11,12 +11,12 @@
|
||||
|
||||
component_test_default_out_of_box () {
|
||||
msg "build: make, default config (out-of-box)" # ~1min
|
||||
make
|
||||
$MAKE_COMMAND
|
||||
# Disable fancy stuff
|
||||
unset MBEDTLS_TEST_OUTCOME_FILE
|
||||
|
||||
msg "test: main suites make, default config (out-of-box)" # ~10s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "selftest: make, default config (out-of-box)" # ~10s
|
||||
programs/test/selftest
|
||||
@@ -160,19 +160,19 @@ component_test_default_no_deprecated () {
|
||||
# configuration leaves something consistent.
|
||||
msg "build: make, default + MBEDTLS_DEPRECATED_REMOVED" # ~ 30s
|
||||
scripts/config.py set MBEDTLS_DEPRECATED_REMOVED
|
||||
make CFLAGS='-O -Werror -Wall -Wextra'
|
||||
$MAKE_COMMAND CFLAGS='-O -Werror -Wall -Wextra'
|
||||
|
||||
msg "test: make, default + MBEDTLS_DEPRECATED_REMOVED" # ~ 5s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_full_no_deprecated () {
|
||||
msg "build: make, full_no_deprecated config" # ~ 30s
|
||||
scripts/config.py full_no_deprecated
|
||||
make CFLAGS='-O -Werror -Wall -Wextra'
|
||||
$MAKE_COMMAND CFLAGS='-O -Werror -Wall -Wextra'
|
||||
|
||||
msg "test: make, full_no_deprecated config" # ~ 5s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "test: ensure that X509 has no direct dependency on BIGNUM_C"
|
||||
not grep mbedtls_mpi library/libmbedx509.a
|
||||
@@ -186,10 +186,10 @@ component_test_full_no_deprecated_deprecated_warning () {
|
||||
scripts/config.py full_no_deprecated
|
||||
scripts/config.py unset MBEDTLS_DEPRECATED_REMOVED
|
||||
scripts/config.py set MBEDTLS_DEPRECATED_WARNING
|
||||
make CFLAGS='-O -Werror -Wall -Wextra'
|
||||
$MAKE_COMMAND CFLAGS='-O -Werror -Wall -Wextra'
|
||||
|
||||
msg "test: make, full_no_deprecated config, MBEDTLS_DEPRECATED_WARNING" # ~ 5s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_full_deprecated_warning () {
|
||||
@@ -201,17 +201,17 @@ component_test_full_deprecated_warning () {
|
||||
# Expect warnings from '#warning' directives in check_config.h.
|
||||
# Note that gcc is required to allow the use of -Wno-error=cpp, which allows us to
|
||||
# display #warning messages without them being treated as errors.
|
||||
make CC=gcc CFLAGS='-O -Werror -Wall -Wextra -Wno-error=cpp' lib programs
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-O -Werror -Wall -Wextra -Wno-error=cpp' lib programs
|
||||
|
||||
msg "build: make tests, full config + MBEDTLS_DEPRECATED_WARNING, expect warnings" # ~ 30s
|
||||
# Set MBEDTLS_TEST_DEPRECATED to enable tests for deprecated features.
|
||||
# By default those are disabled when MBEDTLS_DEPRECATED_WARNING is set.
|
||||
# Expect warnings from '#warning' directives in check_config.h and
|
||||
# from the use of deprecated functions in test suites.
|
||||
make CC=gcc CFLAGS='-O -Werror -Wall -Wextra -Wno-error=deprecated-declarations -Wno-error=cpp -DMBEDTLS_TEST_DEPRECATED' tests
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-O -Werror -Wall -Wextra -Wno-error=deprecated-declarations -Wno-error=cpp -DMBEDTLS_TEST_DEPRECATED' tests
|
||||
|
||||
msg "test: full config + MBEDTLS_TEST_DEPRECATED" # ~ 30s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "program demos: full config + MBEDTLS_TEST_DEPRECATED" # ~10s
|
||||
tests/scripts/run_demos.py
|
||||
@@ -220,7 +220,7 @@ component_test_full_deprecated_warning () {
|
||||
component_build_baremetal () {
|
||||
msg "build: make, baremetal config"
|
||||
scripts/config.py baremetal
|
||||
make CFLAGS="-O1 -Werror -I$PWD/framework/tests/include/baremetal-override/"
|
||||
$MAKE_COMMAND CFLAGS="-O1 -Werror -I$PWD/framework/tests/include/baremetal-override/"
|
||||
}
|
||||
|
||||
support_build_baremetal () {
|
||||
@@ -240,20 +240,20 @@ component_build_tfm () {
|
||||
cp tf-psa-crypto/configs/ext/crypto_config_profile_medium.h "$CRYPTO_CONFIG_H"
|
||||
|
||||
msg "build: TF-M config, clang, armv7-m thumb2"
|
||||
make lib CC="clang" CFLAGS="--target=arm-linux-gnueabihf -march=armv7-m -mthumb -Os -std=c99 -Werror -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral -Wshadow -Wasm-operand-widths -Wunused -I../framework/tests/include/spe"
|
||||
$MAKE_COMMAND lib CC="clang" CFLAGS="--target=arm-linux-gnueabihf -march=armv7-m -mthumb -Os -std=c99 -Werror -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral -Wshadow -Wasm-operand-widths -Wunused -I../framework/tests/include/spe"
|
||||
|
||||
msg "build: TF-M config, gcc native build"
|
||||
make clean
|
||||
make lib CC="gcc" CFLAGS="-Os -std=c99 -Werror -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral -Wshadow -Wformat-signedness -Wlogical-op -I../framework/tests/include/spe"
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND lib CC="gcc" CFLAGS="-Os -std=c99 -Werror -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral -Wshadow -Wformat-signedness -Wlogical-op -I../framework/tests/include/spe"
|
||||
}
|
||||
|
||||
component_test_malloc_0_null () {
|
||||
msg "build: malloc(0) returns NULL (ASan+UBSan build)"
|
||||
scripts/config.py full
|
||||
make CC=$ASAN_CC CFLAGS="'-DTF_PSA_CRYPTO_USER_CONFIG_FILE=\"$PWD/tests/configs/user-config-malloc-0-null.h\"' $ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=$ASAN_CC CFLAGS="'-DTF_PSA_CRYPTO_USER_CONFIG_FILE=\"$PWD/tests/configs/user-config-malloc-0-null.h\"' $ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: malloc(0) returns NULL (ASan+UBSan build)"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "selftest: malloc(0) returns NULL (ASan+UBSan build)"
|
||||
# Just the calloc selftest. "make test" ran the others as part of the
|
||||
@@ -288,24 +288,24 @@ component_test_no_platform () {
|
||||
scripts/config.py set MBEDTLS_PSA_DRIVER_GET_ENTROPY
|
||||
# Note, _DEFAULT_SOURCE needs to be defined for platforms using glibc version >2.19,
|
||||
# to re-enable platform integration features otherwise disabled in C99 builds
|
||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -std=c99 -pedantic -Os -D_DEFAULT_SOURCE' lib programs
|
||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -Os' test
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-Werror -Wall -Wextra -std=c99 -pedantic -Os -D_DEFAULT_SOURCE' lib programs
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-Werror -Wall -Wextra -Os' test
|
||||
}
|
||||
|
||||
component_build_mbedtls_config_file () {
|
||||
msg "build: make with MBEDTLS_CONFIG_FILE" # ~40s
|
||||
scripts/config.py -w full_config.h full
|
||||
echo '#error "MBEDTLS_CONFIG_FILE is not working"' >"$CONFIG_H"
|
||||
make CFLAGS="-I '$PWD' -DMBEDTLS_CONFIG_FILE='\"full_config.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="-I '$PWD' -DMBEDTLS_CONFIG_FILE='\"full_config.h\"'"
|
||||
# Make sure this feature is enabled. We'll disable it in the next phase.
|
||||
programs/test/query_compile_time_config MBEDTLS_SSL_ALL_ALERT_MESSAGES
|
||||
make clean
|
||||
$MAKE_COMMAND clean
|
||||
|
||||
msg "build: make with MBEDTLS_CONFIG_FILE + MBEDTLS_USER_CONFIG_FILE"
|
||||
# In the user config, disable one feature (for simplicity, pick a feature
|
||||
# that nothing else depends on).
|
||||
echo '#undef MBEDTLS_SSL_ALL_ALERT_MESSAGES' >user_config.h
|
||||
make CFLAGS="-I '$PWD' -DMBEDTLS_CONFIG_FILE='\"full_config.h\"' -DMBEDTLS_USER_CONFIG_FILE='\"user_config.h\"'"
|
||||
$MAKE_COMMAND CFLAGS="-I '$PWD' -DMBEDTLS_CONFIG_FILE='\"full_config.h\"' -DMBEDTLS_USER_CONFIG_FILE='\"user_config.h\"'"
|
||||
not programs/test/query_compile_time_config MBEDTLS_SSL_ALL_ALERT_MESSAGES
|
||||
|
||||
rm -f user_config.h full_config.h
|
||||
@@ -319,10 +319,10 @@ component_test_no_strings () {
|
||||
scripts/config.py unset MBEDTLS_ERROR_C
|
||||
scripts/config.py set MBEDTLS_ERROR_STRERROR_DUMMY
|
||||
scripts/config.py unset MBEDTLS_VERSION_FEATURES
|
||||
make CFLAGS='-Werror -Os'
|
||||
$MAKE_COMMAND CFLAGS='-Werror -Os'
|
||||
|
||||
msg "test: no strings" # ~ 10s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
component_test_memory_buffer_allocator_backtrace () {
|
||||
|
||||
@@ -19,10 +19,10 @@ component_test_m32_no_asm () {
|
||||
scripts/config.py full
|
||||
scripts/config.py unset MBEDTLS_HAVE_ASM
|
||||
scripts/config.py unset MBEDTLS_AESNI_C # AESNI for 32-bit is tested in test_aesni_m32
|
||||
make CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
||||
|
||||
msg "test: i386, make, gcc, no asm (ASan build)"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
support_test_m32_no_asm () {
|
||||
@@ -38,10 +38,10 @@ component_test_m32_o2 () {
|
||||
msg "build: i386, make, gcc -O2 (ASan build)" # ~ 30s
|
||||
scripts/config.py full
|
||||
scripts/config.py unset MBEDTLS_AESNI_C # AESNI for 32-bit is tested in test_aesni_m32
|
||||
make CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
||||
|
||||
msg "test: i386, make, gcc -O2 (ASan build)"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "test ssl-opt.sh, i386, make, gcc-O2"
|
||||
tests/ssl-opt.sh
|
||||
@@ -55,10 +55,10 @@ component_test_m32_everest () {
|
||||
msg "build: i386, Everest ECDH context (ASan build)" # ~ 6 min
|
||||
scripts/config.py set MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
|
||||
scripts/config.py unset MBEDTLS_AESNI_C # AESNI for 32-bit is tested in test_aesni_m32
|
||||
make CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
||||
$MAKE_COMMAND CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
||||
|
||||
msg "test: i386, Everest ECDH context - main suites (inc. selftests) (ASan build)" # ~ 50s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "test: i386, Everest ECDH context - ECDH-related part of ssl-opt.sh (ASan build)" # ~ 5s
|
||||
tests/ssl-opt.sh -f ECDH
|
||||
@@ -75,10 +75,10 @@ support_test_m32_everest () {
|
||||
component_test_mx32 () {
|
||||
msg "build: 64-bit ILP32, make, gcc" # ~ 30s
|
||||
scripts/config.py full
|
||||
make CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra -mx32' LDFLAGS='-mx32'
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra -mx32' LDFLAGS='-mx32'
|
||||
|
||||
msg "test: 64-bit ILP32, make, gcc"
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
}
|
||||
|
||||
support_test_mx32 () {
|
||||
@@ -118,16 +118,16 @@ component_test_aesni () { # ~ 60s
|
||||
|
||||
# test the intrinsics implementation
|
||||
msg "AES tests, test intrinsics"
|
||||
make clean
|
||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -mpclmul -msse2 -maes'
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-Werror -Wall -Wextra -mpclmul -msse2 -maes'
|
||||
# check that the intrinsics implementation is in use - this should be used by default when
|
||||
# supported by the compiler
|
||||
./tf-psa-crypto/programs/test/which_aes | grep -q "AESNI INTRINSICS"
|
||||
|
||||
# test the asm implementation
|
||||
msg "AES tests, test assembly"
|
||||
make clean
|
||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -mno-pclmul -mno-sse2 -mno-aes'
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-Werror -Wall -Wextra -mno-pclmul -mno-sse2 -mno-aes'
|
||||
# check that the assembly implementation is in use - this should be used if the compiler
|
||||
# does not support intrinsics
|
||||
./tf-psa-crypto/programs/test/which_aes | grep -q "AESNI ASSEMBLY"
|
||||
@@ -136,8 +136,8 @@ component_test_aesni () { # ~ 60s
|
||||
scripts/config.py unset MBEDTLS_AESNI_C
|
||||
scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY
|
||||
msg "AES tests, plain C"
|
||||
make clean
|
||||
make CC=gcc CFLAGS='-O2 -Werror'
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-O2 -Werror'
|
||||
# check that the plain C implementation is present and the AESNI one is not
|
||||
grep -q mbedtls_internal_aes_encrypt ./tf-psa-crypto/drivers/builtin/src/aes.o
|
||||
not grep -q mbedtls_aesni_crypt_ecb ./tf-psa-crypto/drivers/builtin/src/aesni.o
|
||||
@@ -148,8 +148,8 @@ component_test_aesni () { # ~ 60s
|
||||
scripts/config.py set MBEDTLS_AESNI_C
|
||||
scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
|
||||
msg "AES tests, test AESNI only"
|
||||
make clean
|
||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -mpclmul -msse2 -maes'
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-Werror -Wall -Wextra -mpclmul -msse2 -maes'
|
||||
# check that the AESNI implementation is present and the plain C one is not
|
||||
grep -q mbedtls_aesni_crypt_ecb ./tf-psa-crypto/drivers/builtin/src/aesni.o
|
||||
not grep -q mbedtls_internal_aes_encrypt ./tf-psa-crypto/drivers/builtin/src/aes.o
|
||||
@@ -172,8 +172,8 @@ component_test_aesni_m32 () { # ~ 60s
|
||||
|
||||
# test the intrinsics implementation with gcc
|
||||
msg "AES tests, test intrinsics (gcc)"
|
||||
make clean
|
||||
make CC=gcc CFLAGS='-m32 -Werror -Wall -Wextra' LDFLAGS='-m32'
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-m32 -Werror -Wall -Wextra' LDFLAGS='-m32'
|
||||
# check that we built intrinsics - this should be used by default when supported by the compiler
|
||||
./tf-psa-crypto/programs/test/which_aes | grep -q "AESNI INTRINSICS"
|
||||
# check that both the AESNI and plain C implementations are present
|
||||
@@ -184,8 +184,8 @@ component_test_aesni_m32 () { # ~ 60s
|
||||
scripts/config.py set MBEDTLS_AESNI_C
|
||||
scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
|
||||
msg "AES tests, test AESNI only"
|
||||
make clean
|
||||
make CC=gcc CFLAGS='-m32 -Werror -Wall -Wextra -mpclmul -msse2 -maes' LDFLAGS='-m32'
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND CC=gcc CFLAGS='-m32 -Werror -Wall -Wextra -mpclmul -msse2 -maes' LDFLAGS='-m32'
|
||||
./tf-psa-crypto/programs/test/which_aes | grep -q "AESNI"
|
||||
# check that the AESNI implementation is present and the plain C one is not
|
||||
grep -q mbedtls_aesni_crypt_ecb ./tf-psa-crypto/drivers/builtin/src/aesni.o
|
||||
@@ -206,8 +206,8 @@ component_test_aesni_m32_clang () {
|
||||
|
||||
# test the intrinsics implementation with clang
|
||||
msg "AES tests, test intrinsics (clang)"
|
||||
make clean
|
||||
make CC=clang CFLAGS='-m32 -Werror -Wall -Wextra' LDFLAGS='-m32'
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND CC=clang CFLAGS='-m32 -Werror -Wall -Wextra' LDFLAGS='-m32'
|
||||
# check that we built intrinsics - this should be used by default when supported by the compiler
|
||||
./tf-psa-crypto/programs/test/which_aes | grep -q "AESNI INTRINSICS"
|
||||
# check that both the AESNI and plain C implementations are present
|
||||
@@ -227,51 +227,51 @@ component_build_aes_armce () {
|
||||
scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
|
||||
|
||||
msg "MBEDTLS_AES_USE_HARDWARE_ONLY, clang, aarch64"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto"
|
||||
msg "clang, test aarch64 crypto instructions built"
|
||||
grep -E 'aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.s
|
||||
|
||||
msg "MBEDTLS_AES_USE_HARDWARE_ONLY, clang, arm"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
|
||||
msg "clang, test A32 crypto instructions built"
|
||||
grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.s
|
||||
|
||||
msg "MBEDTLS_AES_USE_HARDWARE_ONLY, clang, thumb"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
|
||||
msg "clang, test T32 crypto instructions built"
|
||||
grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.s
|
||||
|
||||
scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY
|
||||
|
||||
msg "MBEDTLS_AES_USE_both, clang, aarch64"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto"
|
||||
msg "clang, test aarch64 crypto instructions built"
|
||||
grep -E 'aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.s
|
||||
|
||||
msg "MBEDTLS_AES_USE_both, clang, arm"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
|
||||
msg "clang, test A32 crypto instructions built"
|
||||
grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.s
|
||||
|
||||
msg "MBEDTLS_AES_USE_both, clang, thumb"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
|
||||
msg "clang, test T32 crypto instructions built"
|
||||
grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.s
|
||||
|
||||
scripts/config.py unset MBEDTLS_AESCE_C
|
||||
|
||||
msg "no MBEDTLS_AESCE_C, clang, aarch64"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a"
|
||||
msg "clang, test aarch64 crypto instructions not built"
|
||||
not grep -E 'aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.s
|
||||
|
||||
msg "no MBEDTLS_AESCE_C, clang, arm"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72 -marm"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72 -marm"
|
||||
msg "clang, test A32 crypto instructions not built"
|
||||
not grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.s
|
||||
|
||||
msg "no MBEDTLS_AESCE_C, clang, thumb"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32 -mthumb"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/aesce.o library/../${BUILTIN_SRC_PATH}/aesce.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32 -mthumb"
|
||||
msg "clang, test T32 crypto instructions not built"
|
||||
not grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.s
|
||||
}
|
||||
@@ -287,44 +287,44 @@ component_build_sha_armce () {
|
||||
# Test variations of SHA256 Armv8 crypto extensions
|
||||
scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
|
||||
msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, aarch64"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/sha256.o library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/sha256.o library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto"
|
||||
msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, test aarch64 crypto instructions built"
|
||||
grep -E 'sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.s
|
||||
|
||||
msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, arm"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/sha256.o library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/sha256.o library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
|
||||
msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, test A32 crypto instructions built"
|
||||
grep -E 'sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.s
|
||||
scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
|
||||
|
||||
scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
|
||||
msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT clang, aarch64"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/sha256.o library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/sha256.o library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto"
|
||||
msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT clang, test aarch64 crypto instructions built"
|
||||
grep -E 'sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.s
|
||||
scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
|
||||
|
||||
# examine the disassembly for absence of SHA instructions
|
||||
msg "clang, test A32 crypto instructions not built"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72 -marm"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72 -marm"
|
||||
not grep -E 'sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.s
|
||||
|
||||
msg "clang, test T32 crypto instructions not built"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32 -mthumb"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32 -mthumb"
|
||||
not grep -E 'sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.s
|
||||
|
||||
msg "clang, test aarch64 crypto instructions not built"
|
||||
make -B library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a"
|
||||
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/sha256.s CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a"
|
||||
not grep -E 'sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.s
|
||||
}
|
||||
|
||||
component_test_arm_linux_gnueabi_gcc_arm5vte () {
|
||||
# Mimic Debian armel port
|
||||
msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=arm5vte, default config" # ~4m
|
||||
make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" AR="${ARM_LINUX_GNUEABI_GCC_PREFIX}ar" CFLAGS='-Werror -Wall -Wextra -march=armv5te -O1'
|
||||
$MAKE_COMMAND CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" AR="${ARM_LINUX_GNUEABI_GCC_PREFIX}ar" CFLAGS='-Werror -Wall -Wextra -march=armv5te -O1'
|
||||
|
||||
msg "test: main suites make, default config (out-of-box)" # ~7m 40s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "selftest: make, default config (out-of-box)" # ~0s
|
||||
programs/test/selftest
|
||||
@@ -341,10 +341,10 @@ support_test_arm_linux_gnueabi_gcc_arm5vte () {
|
||||
# Some Thumb 1 asm is sensitive to optimisation level, so test both -O0 and -Os
|
||||
component_test_arm_linux_gnueabi_gcc_thumb_1_opt_0 () {
|
||||
msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -O0, thumb 1, default config" # ~2m 10s
|
||||
make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O0 -mcpu=arm1136j-s -mthumb'
|
||||
$MAKE_COMMAND CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O0 -mcpu=arm1136j-s -mthumb'
|
||||
|
||||
msg "test: main suites make, default config (out-of-box)" # ~36m
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "selftest: make, default config (out-of-box)" # ~10s
|
||||
programs/test/selftest
|
||||
@@ -359,10 +359,10 @@ support_test_arm_linux_gnueabi_gcc_thumb_1_opt_0 () {
|
||||
|
||||
component_test_arm_linux_gnueabi_gcc_thumb_1_opt_s () {
|
||||
msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -Os, thumb 1, default config" # ~3m 10s
|
||||
make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -Os -mcpu=arm1136j-s -mthumb'
|
||||
$MAKE_COMMAND CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -Os -mcpu=arm1136j-s -mthumb'
|
||||
|
||||
msg "test: main suites make, default config (out-of-box)" # ~21m 10s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "selftest: make, default config (out-of-box)" # ~2s
|
||||
programs/test/selftest
|
||||
@@ -377,10 +377,10 @@ support_test_arm_linux_gnueabi_gcc_thumb_1_opt_s () {
|
||||
|
||||
component_test_arm_linux_gnueabihf_gcc_armv7 () {
|
||||
msg "test: ${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc -O2, A32, default config" # ~4m 30s
|
||||
make CC="${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O2 -march=armv7-a -marm'
|
||||
$MAKE_COMMAND CC="${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O2 -march=armv7-a -marm'
|
||||
|
||||
msg "test: main suites make, default config (out-of-box)" # ~3m 30s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "selftest: make, default config (out-of-box)" # ~0s
|
||||
programs/test/selftest
|
||||
@@ -395,10 +395,10 @@ support_test_arm_linux_gnueabihf_gcc_armv7 () {
|
||||
|
||||
component_test_arm_linux_gnueabihf_gcc_thumb_2 () {
|
||||
msg "test: ${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc -Os, thumb 2, default config" # ~4m
|
||||
make CC="${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -Os -march=armv7-a -mthumb'
|
||||
$MAKE_COMMAND CC="${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -Os -march=armv7-a -mthumb'
|
||||
|
||||
msg "test: main suites make, default config (out-of-box)" # ~3m 40s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "selftest: make, default config (out-of-box)" # ~0s
|
||||
programs/test/selftest
|
||||
@@ -413,10 +413,10 @@ support_test_arm_linux_gnueabihf_gcc_thumb_2 () {
|
||||
|
||||
component_test_aarch64_linux_gnu_gcc () {
|
||||
msg "test: ${AARCH64_LINUX_GNU_GCC_PREFIX}gcc -O2, default config" # ~3m 50s
|
||||
make CC="${AARCH64_LINUX_GNU_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O2'
|
||||
$MAKE_COMMAND CC="${AARCH64_LINUX_GNU_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O2'
|
||||
|
||||
msg "test: main suites make, default config (out-of-box)" # ~1m 50s
|
||||
make test
|
||||
$MAKE_COMMAND test
|
||||
|
||||
msg "selftest: make, default config (out-of-box)" # ~0s
|
||||
programs/test/selftest
|
||||
@@ -433,7 +433,7 @@ support_test_aarch64_linux_gnu_gcc () {
|
||||
component_build_arm_none_eabi_gcc () {
|
||||
msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -O1, baremetal+debug" # ~ 10s
|
||||
scripts/config.py baremetal
|
||||
make CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra -O1' lib
|
||||
$MAKE_COMMAND CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra -O1' lib
|
||||
|
||||
msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -O1, baremetal+debug"
|
||||
${ARM_NONE_EABI_GCC_PREFIX}size -t library/*.o
|
||||
@@ -449,7 +449,7 @@ component_build_arm_linux_gnueabi_gcc_arm5vte () {
|
||||
# See https://github.com/Mbed-TLS/mbedtls/pull/2169 and comments.
|
||||
# Build everything including programs, see for example
|
||||
# https://github.com/Mbed-TLS/mbedtls/pull/3449#issuecomment-675313720
|
||||
make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" AR="${ARM_LINUX_GNUEABI_GCC_PREFIX}ar" CFLAGS='-Werror -Wall -Wextra -march=armv5te -O1' LDFLAGS='-march=armv5te'
|
||||
$MAKE_COMMAND CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" AR="${ARM_LINUX_GNUEABI_GCC_PREFIX}ar" CFLAGS='-Werror -Wall -Wextra -march=armv5te -O1' LDFLAGS='-march=armv5te'
|
||||
|
||||
msg "size: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=armv5te -O1, baremetal+debug"
|
||||
${ARM_LINUX_GNUEABI_GCC_PREFIX}size -t library/*.o
|
||||
@@ -467,7 +467,7 @@ component_build_arm_none_eabi_gcc_arm5vte () {
|
||||
# This is an imperfect substitute for
|
||||
# component_build_arm_linux_gnueabi_gcc_arm5vte
|
||||
# in case the gcc-arm-linux-gnueabi toolchain is not available
|
||||
make CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" CFLAGS='-std=c99 -Werror -Wall -Wextra -march=armv5te -O1' LDFLAGS='-march=armv5te' SHELL='sh -x' lib
|
||||
$MAKE_COMMAND CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" CFLAGS='-std=c99 -Werror -Wall -Wextra -march=armv5te -O1' LDFLAGS='-march=armv5te' SHELL='sh -x' lib
|
||||
|
||||
msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -march=armv5te -O1, baremetal+debug"
|
||||
${ARM_NONE_EABI_GCC_PREFIX}size -t library/*.o
|
||||
@@ -478,7 +478,7 @@ component_build_arm_none_eabi_gcc_arm5vte () {
|
||||
component_build_arm_none_eabi_gcc_m0plus () {
|
||||
msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -mthumb -mcpu=cortex-m0plus, baremetal_size" # ~ 10s
|
||||
scripts/config.py baremetal_size
|
||||
make CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra -mthumb -mcpu=cortex-m0plus -Os' lib
|
||||
$MAKE_COMMAND CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra -mthumb -mcpu=cortex-m0plus -Os' lib
|
||||
|
||||
msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -mthumb -mcpu=cortex-m0plus -Os, baremetal_size"
|
||||
${ARM_NONE_EABI_GCC_PREFIX}size -t library/*.o
|
||||
@@ -494,7 +494,7 @@ component_build_arm_none_eabi_gcc_no_udbl_division () {
|
||||
msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -DMBEDTLS_NO_UDBL_DIVISION, make" # ~ 10s
|
||||
scripts/config.py baremetal
|
||||
scripts/config.py set MBEDTLS_NO_UDBL_DIVISION
|
||||
make CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra' lib
|
||||
$MAKE_COMMAND CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra' lib
|
||||
echo "Checking that software 64-bit division is not required"
|
||||
not grep __aeabi_uldiv library/*.o
|
||||
not grep __aeabi_uldiv ${PSA_CORE_PATH}/*.o
|
||||
@@ -505,7 +505,7 @@ component_build_arm_none_eabi_gcc_no_64bit_multiplication () {
|
||||
msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc MBEDTLS_NO_64BIT_MULTIPLICATION, make" # ~ 10s
|
||||
scripts/config.py baremetal
|
||||
scripts/config.py set MBEDTLS_NO_64BIT_MULTIPLICATION
|
||||
make CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -O1 -march=armv6-m -mthumb' lib
|
||||
$MAKE_COMMAND CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -O1 -march=armv6-m -mthumb' lib
|
||||
echo "Checking that software 64-bit multiplication is not required"
|
||||
not grep __aeabi_lmul library/*.o
|
||||
not grep __aeabi_lmul ${PSA_CORE_PATH}/*.o
|
||||
@@ -518,17 +518,17 @@ component_build_arm_clang_thumb () {
|
||||
scripts/config.py baremetal
|
||||
|
||||
msg "build: clang thumb 2, make"
|
||||
make clean
|
||||
make CC="clang" CFLAGS='-std=c99 -Werror -Os --target=arm-linux-gnueabihf -march=armv7-m -mthumb' lib
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND CC="clang" CFLAGS='-std=c99 -Werror -Os --target=arm-linux-gnueabihf -march=armv7-m -mthumb' lib
|
||||
|
||||
# Some Thumb 1 asm is sensitive to optimisation level, so test both -O0 and -Os
|
||||
msg "build: clang thumb 1 -O0, make"
|
||||
make clean
|
||||
make CC="clang" CFLAGS='-std=c99 -Werror -O0 --target=arm-linux-gnueabihf -mcpu=arm1136j-s -mthumb' lib
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND CC="clang" CFLAGS='-std=c99 -Werror -O0 --target=arm-linux-gnueabihf -mcpu=arm1136j-s -mthumb' lib
|
||||
|
||||
msg "build: clang thumb 1 -Os, make"
|
||||
make clean
|
||||
make CC="clang" CFLAGS='-std=c99 -Werror -Os --target=arm-linux-gnueabihf -mcpu=arm1136j-s -mthumb' lib
|
||||
$MAKE_COMMAND clean
|
||||
$MAKE_COMMAND CC="clang" CFLAGS='-std=c99 -Werror -Os --target=arm-linux-gnueabihf -mcpu=arm1136j-s -mthumb' lib
|
||||
}
|
||||
|
||||
component_build_armcc () {
|
||||
|
||||
@@ -83,7 +83,7 @@ component_test_suite_with_psasim()
|
||||
helper_psasim_build client
|
||||
|
||||
msg "build test suites"
|
||||
make PSASIM=1 CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS" tests
|
||||
$MAKE_COMMAND PSASIM=1 CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS" tests
|
||||
|
||||
helper_psasim_server start
|
||||
|
||||
@@ -93,7 +93,7 @@ component_test_suite_with_psasim()
|
||||
export SKIP_TEST_SUITES
|
||||
|
||||
msg "run test suites"
|
||||
make PSASIM=1 test
|
||||
$MAKE_COMMAND PSASIM=1 test
|
||||
|
||||
helper_psasim_server kill
|
||||
}
|
||||
|
||||
@@ -439,8 +439,9 @@ class DomainData:
|
||||
# pylint: disable=too-many-locals
|
||||
def __init__(self, options, conf):
|
||||
"""Gather data about the library and establish a list of domains to test."""
|
||||
build_command = [options.make_command, 'CFLAGS=-Werror -O2']
|
||||
build_and_test = [build_command, [options.make_command, 'test']]
|
||||
build_command = [options.make_command, '-f', 'scripts/legacy.make', 'CFLAGS=-Werror -O2']
|
||||
build_and_test = [build_command, [options.make_command, '-f',
|
||||
'scripts/legacy.make', 'test']]
|
||||
self.all_config_symbols = set(conf.settings.keys())
|
||||
psa_info = psa_information.Information().constructors
|
||||
algs = {crypto_knowledge.Algorithm(alg): symbol
|
||||
@@ -523,7 +524,7 @@ A name can either be the name of a domain or the name of one specific job."""
|
||||
|
||||
def run(options, job, conf, colors=NO_COLORS):
|
||||
"""Run the specified job (a Job instance)."""
|
||||
subprocess.check_call([options.make_command, 'clean'])
|
||||
subprocess.check_call([options.make_command, '-f', 'scripts/legacy.make', 'clean'])
|
||||
job.announce(colors, None)
|
||||
if not job.configure(conf, colors):
|
||||
job.announce(colors, False)
|
||||
|
||||
@@ -78,23 +78,25 @@ def collect_status_logs(options):
|
||||
os.remove(options.log_file)
|
||||
if not os.path.exists(options.log_file):
|
||||
if options.clean_before:
|
||||
subprocess.check_call(['make', 'clean'],
|
||||
subprocess.check_call(['make', '-f', 'scripts/legacy.make', 'clean'],
|
||||
cwd='tests',
|
||||
stdout=sys.stderr)
|
||||
with open(os.devnull, 'w') as devnull:
|
||||
make_q_ret = subprocess.call(['make', '-q', 'lib', 'tests'],
|
||||
make_q_ret = subprocess.call(['make', '-f', 'scripts/legacy.make',
|
||||
'-q', 'lib', 'tests'],
|
||||
stdout=devnull, stderr=devnull)
|
||||
if make_q_ret != 0:
|
||||
subprocess.check_call(['make', 'RECORD_PSA_STATUS_COVERAGE_LOG=1'],
|
||||
subprocess.check_call(['make', '-f', 'scripts/legacy.make',
|
||||
'RECORD_PSA_STATUS_COVERAGE_LOG=1'],
|
||||
stdout=sys.stderr)
|
||||
rebuilt = True
|
||||
subprocess.check_call(['make', 'test'],
|
||||
subprocess.check_call(['make', '-f', 'scripts/legacy.make', 'test'],
|
||||
stdout=sys.stderr)
|
||||
data = Statuses()
|
||||
data.collect_log(options.log_file)
|
||||
data.get_constant_names(options.psa_constant_names)
|
||||
if rebuilt and options.clean_after:
|
||||
subprocess.check_call(['make', 'clean'],
|
||||
subprocess.check_call(['make', '-f', 'scripts/legacy.make', 'clean'],
|
||||
cwd='tests',
|
||||
stdout=sys.stderr)
|
||||
return data
|
||||
|
||||
16
visualc/VS2017/.gitignore
vendored
16
visualc/VS2017/.gitignore
vendored
@@ -1,16 +0,0 @@
|
||||
# Files that may be left over from make_generated-files.py --check
|
||||
/*.bak
|
||||
|
||||
# Visual Studio artifacts
|
||||
/.localhistory/
|
||||
/.vs/
|
||||
/Debug/
|
||||
/Release/
|
||||
/*.vcxproj.filters
|
||||
/*.vcxproj.user
|
||||
|
||||
###START_GENERATED_FILES###
|
||||
# Files automatically generated by generate_visualc_files.pl
|
||||
/mbedTLS.sln
|
||||
/*.vcxproj
|
||||
###END_GENERATED_FILES###
|
||||
Reference in New Issue
Block a user