From c45bf277a1522a2eef94904f1c8ae18237c49a01 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Fri, 23 Mar 2018 01:02:08 +0100 Subject: [PATCH] Move the handling of dso_scheme to dso_conf.h The macros resulting from the dso_scheme attribute were defined for libraries only, but there's a test program that uses the macros as well. The easier way is to move the handling of this macro to crypto/include/internal/dso_conf.h and having the modules that need it include it. Reviewed-by: Andy Polyakov (Merged from https://github.com/openssl/openssl/pull/5733) --- Configure | 23 ----------------------- crypto/include/internal/dso_conf.h.in | 17 ++++++++++++++++- 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/Configure b/Configure index ce33f488d6..7a2ef9bae4 100755 --- a/Configure +++ b/Configure @@ -1232,29 +1232,6 @@ if ($target =~ /linux.*-mips/ && !$disabled{asm} unshift @{$config{cxxflags}}, $value if $config{CXX}; } -# The DSO code currently always implements all functions so that no -# applications will have to worry about that from a compilation point -# of view. However, the "method"s may return zero unless that platform -# has support compiled in for them. Currently each method is enabled -# by a define "DSO_" ... we translate the "dso_scheme" config -# string entry into using the following logic; -if (!$disabled{dso} && $target{dso_scheme} ne "") - { - $target{dso_scheme} =~ tr/[a-z]/[A-Z]/; - if ($target{dso_scheme} eq "DLFCN") - { - unshift @{$config{lib_defines}}, "DSO_DLFCN", "HAVE_DLFCN_H"; - } - elsif ($target{dso_scheme} eq "DLFCN_NO_H") - { - unshift @{$config{lib_defines}}, "DSO_DLFCN"; - } - else - { - unshift @{$config{lib_defines}}, "DSO_$target{dso_scheme}"; - } - } - # If threads aren't disabled, check how possible they are unless ($disabled{threads}) { if ($auto_threads) { diff --git a/crypto/include/internal/dso_conf.h.in b/crypto/include/internal/dso_conf.h.in index daa5e247a3..ded87ca5cc 100644 --- a/crypto/include/internal/dso_conf.h.in +++ b/crypto/include/internal/dso_conf.h.in @@ -10,6 +10,21 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H - +{- output_off() if $disabled{dso} -} +{- # The DSO code currently always implements all functions so that no + # applications will have to worry about that from a compilation point + # of view. However, the "method"s may return zero unless that platform + # has support compiled in for them. Currently each method is enabled + # by a define "DSO_" ... we translate the "dso_scheme" config + # string entry into using the following logic; + my $scheme = uc $target{dso_scheme}; + my @macros = ( "DSO_$scheme" ); + if ($scheme eq 'DLFCN') { + @macros = ( "DSO_DLFCN", "HAVE_DLFCN_H" ); + } elsif ($scheme eq "DLFCN_NO_H") { + @macros = ( "DSO_DLFCN" ); + } + join("\n", map { "# define $_" } @macros); -} # define DSO_EXTENSION "{- $target{dso_extension} -}" +{- output_on() if $disabled{dso} -} #endif -- 2.25.1