From d6baf09fe0c9efe4fe87e16fed088b9ce2b4c3f1 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Wed, 31 Jan 2018 14:15:52 +0100 Subject: [PATCH] Apps: divide the modules in direct command modules, support library and init Most modules are direct implementations of openssl application sub-commands, but some constitute a support library, which can be used by more than one program (and is, incidently, by test/uitest). For practical purposes, we place the support library modules in a private, static library. Finally, there are some modules that don't have direct references in the rest of the apps code, but are still crucial. See them as some kind of extra crt0 or similar for your platform. Inspiration from David von Oheimb Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/5222) --- Configurations/00-base-templates.conf | 3 ++- Configurations/10-main.conf | 3 ++- Configurations/README | 10 ++++++++-- Configurations/windows-checker.pm | 2 +- apps/build.info | 28 ++++++++++++++++----------- 5 files changed, 30 insertions(+), 16 deletions(-) diff --git a/Configurations/00-base-templates.conf b/Configurations/00-base-templates.conf index 72cbde203f..0d0f8b8a7f 100644 --- a/Configurations/00-base-templates.conf +++ b/Configurations/00-base-templates.conf @@ -11,6 +11,7 @@ my %targets=( thread_defines => [], apps_aux_src => "", + apps_init_src => "", cpuid_asm_src => "mem_clr.c", uplink_aux_src => "", bn_asm_src => "bn_asm.c", @@ -134,7 +135,7 @@ my %targets=( uplink_common => { template => 1, - apps_aux_src => add("../ms/applink.c"), + apps_init_src => add("../ms/applink.c"), uplink_aux_src => add("../ms/uplink.c"), defines => add("OPENSSL_USE_APPLINK"), }, diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 62fbb60f1e..70b01046e7 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -1852,7 +1852,8 @@ my %targets = ( dso_scheme => "vms", thread_scheme => "pthreads", - apps_aux_src => "vms_decc_init.c vms_term_sock.c", + apps_aux_src => "vms_term_sock.c", + apps_init_src => "vms_decc_init.c", }, "vms-alpha" => { diff --git a/Configurations/README b/Configurations/README index aa0c5fba8b..26cd0c6e44 100644 --- a/Configurations/README +++ b/Configurations/README @@ -212,8 +212,14 @@ In each table entry, the following keys are significant: export vars as accessor functions. - apps_extra_src => Extra source to build apps/openssl, as - needed by the target. + apps_aux_src => Extra source to build apps/openssl and other + apps, as needed by the target and that can be + collected in a library. + apps_init_src => Init source to build apps/openssl and other + apps, as needed by the target. This code + cannot be placed in a library, as the rest + of the code isn't expected to link to it + explicitely. cpuid_asm_src => assembler implementation of cpuid code as well as OPENSSL_cleanse(). Default to mem_clr.c diff --git a/Configurations/windows-checker.pm b/Configurations/windows-checker.pm index de46fbc1df..4b7105df33 100644 --- a/Configurations/windows-checker.pm +++ b/Configurations/windows-checker.pm @@ -6,7 +6,7 @@ use Config; # we expect for the platform use File::Spec::Functions qw(:DEFAULT rel2abs); -if (rel2abs('.') !~ m|\\|) { +if (!$ENV{CONFIGURE_INSIST} && rel2abs('.') !~ m|\\|) { die <